gnu: Add emacs-eshell-did-you-mean.
[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 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 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 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019 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 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 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 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 Brett Gilio <brettg@posteo.net>
45 ;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019 LaFreniere, Joseph <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 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 ;;;
59 ;;; This file is part of GNU Guix.
60 ;;;
61 ;;; GNU Guix is free software; you can redistribute it and/or modify it
62 ;;; under the terms of the GNU General Public License as published by
63 ;;; the Free Software Foundation; either version 3 of the License, or (at
64 ;;; your option) any later version.
65 ;;;
66 ;;; GNU Guix is distributed in the hope that it will be useful, but
67 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
68 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69 ;;; GNU General Public License for more details.
70 ;;;
71 ;;; You should have received a copy of the GNU General Public License
72 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
73
74 (define-module (gnu packages emacs-xyz)
75 #:use-module ((guix licenses) #:prefix license:)
76 #:use-module (guix packages)
77 #:use-module (guix cvs-download)
78 #:use-module (guix download)
79 #:use-module (guix git-download)
80 #:use-module (guix build-system gnu)
81 #:use-module (guix build-system cmake)
82 #:use-module (guix build-system emacs)
83 #:use-module (guix build-system glib-or-gtk)
84 #:use-module (guix build-system perl)
85 #:use-module (guix build-system trivial)
86 #:use-module (gnu packages)
87 #:use-module (gnu packages admin)
88 #:use-module (gnu packages audio)
89 #:use-module (gnu packages bash)
90 #:use-module (gnu packages cmake)
91 #:use-module (gnu packages code)
92 #:use-module (gnu packages curl)
93 #:use-module (gnu packages databases)
94 #:use-module (gnu packages dictionaries)
95 #:use-module (gnu packages emacs)
96 #:use-module (gnu packages guile)
97 #:use-module (gnu packages gtk)
98 #:use-module (gnu packages gnome)
99 #:use-module (gnu packages ncurses)
100 #:use-module (gnu packages python)
101 #:use-module (gnu packages python-xyz)
102 #:use-module (gnu packages tex)
103 #:use-module (gnu packages texinfo)
104 #:use-module (gnu packages tcl)
105 #:use-module (gnu packages tls)
106 #:use-module (gnu packages pkg-config)
107 #:use-module (gnu packages xorg)
108 #:use-module (gnu packages lesstif)
109 #:use-module (gnu packages llvm)
110 #:use-module (gnu packages image)
111 #:use-module (gnu packages linux)
112 #:use-module (gnu packages libevent)
113 #:use-module (gnu packages music)
114 #:use-module (gnu packages version-control)
115 #:use-module (gnu packages imagemagick)
116 #:use-module (gnu packages w3m)
117 #:use-module (gnu packages wget)
118 #:use-module (gnu packages autotools)
119 #:use-module (gnu packages base)
120 #:use-module (gnu packages compression)
121 #:use-module (gnu packages node)
122 #:use-module (gnu packages xml)
123 #:use-module (gnu packages glib)
124 #:use-module (gnu packages acl)
125 #:use-module (gnu packages mail)
126 #:use-module (gnu packages package-management)
127 #:use-module (gnu packages perl)
128 #:use-module (gnu packages pdf)
129 #:use-module (gnu packages scheme)
130 #:use-module (gnu packages speech)
131 #:use-module (gnu packages xiph)
132 #:use-module (gnu packages mp3)
133 #:use-module (gnu packages gettext)
134 #:use-module (gnu packages fribidi)
135 #:use-module (gnu packages gd)
136 #:use-module (gnu packages fontutils)
137 #:use-module (gnu packages password-utils)
138 #:use-module (gnu packages pulseaudio)
139 #:use-module (gnu packages sphinx)
140 #:use-module (gnu packages xdisorg)
141 #:use-module (gnu packages shells)
142 #:use-module (gnu packages sqlite)
143 #:use-module (gnu packages gnupg)
144 #:use-module (gnu packages video)
145 #:use-module (gnu packages haskell-xyz)
146 #:use-module (gnu packages wordnet)
147 #:use-module (guix utils)
148 #:use-module (srfi srfi-1)
149 #:use-module (ice-9 match))
150
151 ;;;
152 ;;; Emacs hacking.
153 ;;;
154
155 (define-public emacs-geiser
156 (package
157 (name "emacs-geiser")
158 (version "0.10")
159 (source (origin
160 (method url-fetch)
161 (uri (string-append "mirror://savannah/geiser/" version
162 "/geiser-" version ".tar.gz"))
163 (sha256
164 (base32
165 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
166 (build-system gnu-build-system)
167 (arguments
168 '(#:phases
169 (modify-phases %standard-phases
170 (add-after 'install 'post-install
171 (lambda* (#:key outputs #:allow-other-keys)
172 (symlink "geiser-install.el"
173 (string-append (assoc-ref outputs "out")
174 "/share/emacs/site-lisp/"
175 "geiser-autoloads.el"))
176 #t)))))
177 (inputs `(("guile" ,guile-2.2)))
178 (native-inputs `(("emacs" ,emacs-minimal)))
179 (home-page "https://nongnu.org/geiser/")
180 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
181 (description
182 "Geiser is a collection of Emacs major and minor modes that conspire with
183 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
184 continuously running Scheme interpreter takes the center of the stage in
185 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
186 implementation, Emacs and, ultimately, the schemer, giving them access to live
187 metadata.")
188 (license license:bsd-3)))
189
190 (define-public geiser
191 (deprecated-package "geiser" emacs-geiser))
192
193 (define-public emacs-paredit
194 (package
195 (name "emacs-paredit")
196 (version "24")
197 (source (origin
198 (method url-fetch)
199 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
200 version ".el"))
201 (sha256
202 (base32
203 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
204 (build-system emacs-build-system)
205 (home-page "http://mumble.net/~campbell/emacs/paredit/")
206 (synopsis "Emacs minor mode for editing parentheses")
207 (description
208 "ParEdit (paredit.el) is a minor mode for performing structured editing
209 of S-expression data. The typical example of this would be Lisp or Scheme
210 source code.
211
212 ParEdit helps **keep parentheses balanced** and adds many keys for moving
213 S-expressions and moving around in S-expressions. Its behavior can be jarring
214 for those who may want transient periods of unbalanced parentheses, such as
215 when typing parentheses directly or commenting out code line by line.")
216 (license license:gpl3+)))
217
218 (define-public paredit
219 (deprecated-package "paredit" emacs-paredit))
220
221 (define-public git-modes
222 (package
223 (name "emacs-git-modes")
224 (version "1.2.8")
225 (source (origin
226 (method git-fetch)
227 (uri (git-reference
228 (url "https://github.com/magit/git-modes")
229 (commit version)))
230 (file-name (git-file-name name version))
231 (sha256
232 (base32
233 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
234 (build-system emacs-build-system)
235 (home-page "https://github.com/magit/git-modes")
236 (synopsis "Emacs major modes for Git configuration files")
237 (description
238 "This package provides Emacs major modes for editing various Git
239 configuration files, such as .gitattributes, .gitignore, and .git/config.")
240 (license license:gpl3+)))
241
242 (define-public git-modes/old-name
243 (deprecated-package "git-modes" git-modes))
244
245 (define-public emacs-with-editor
246 (package
247 (name "emacs-with-editor")
248 (version "2.8.3")
249 (source (origin
250 (method git-fetch)
251 (uri (git-reference
252 (url "https://github.com/magit/with-editor.git")
253 (commit (string-append "v" version))))
254 (file-name (git-file-name name version))
255 (sha256
256 (base32
257 "1z2h9casyw1b93ikq2mf9xixyvbl90zddf0s66lqfiyj2y376pq3"))))
258 (build-system emacs-build-system)
259 (propagated-inputs
260 `(("emacs-dash" ,emacs-dash)))
261 (home-page "https://github.com/magit/with-editor")
262 (synopsis "Emacs library for using Emacsclient as EDITOR")
263 (description
264 "This package provides an Emacs library to use the Emacsclient as
265 @code{$EDITOR} of child processes, making sure they know how to call home.
266 For remote processes a substitute is provided, which communicates with Emacs
267 on stdout instead of using a socket as the Emacsclient does.")
268 (license license:gpl3+)))
269
270 (define-public emacs-magit
271 ;; `magit-setup-buffer' macro introduced in c761d28d and required in
272 ;; `emacs-forge'.
273 (let ((commit "c761d28d49e5238037512b898db0ec9b40d85770"))
274 (package
275 (name "emacs-magit")
276 (version (git-version "2.90.1" "2" commit))
277 (source (origin
278 (method git-fetch)
279 (uri (git-reference
280 (url "https://github.com/magit/magit.git")
281 (commit commit)))
282 (file-name (git-file-name name version))
283 (sha256
284 (base32
285 "16qx0404l05q1m6w7y5j8ck1z5nfmpinm00w0p2yh1hn5zzwy6dd"))
286 ;; FIXME: emacs-forge uses a function defined in this patch,
287 ;; which is newer than the current commit.
288 (patches
289 (search-patches
290 "emacs-magit-log-format-author-margin.patch"))
291 (modules '((guix build utils)))
292 (snippet
293 '(begin
294 ;; Fix syntax error
295 (substitute* "lisp/magit-extras.el"
296 (("rev\\)\\)\\)\\)\\)\\)") "rev)))))"))
297 #t))))
298 (build-system gnu-build-system)
299 (native-inputs `(("texinfo" ,texinfo)
300 ("emacs" ,emacs-minimal)))
301 (inputs
302 `(("git" ,git)
303 ("perl" ,perl)))
304 (propagated-inputs
305 `(("dash" ,emacs-dash)
306 ("with-editor" ,emacs-with-editor)
307 ("transient" ,emacs-transient)))
308 (arguments
309 `(#:modules ((guix build gnu-build-system)
310 (guix build utils)
311 (guix build emacs-utils))
312 #:imported-modules (,@%gnu-build-system-modules
313 (guix build emacs-utils))
314 #:test-target "test"
315 #:tests? #f ; tests are not included in the release
316
317 #:make-flags
318 (list (string-append "PREFIX=" %output)
319 ;; Don't put .el files in a sub-directory.
320 (string-append "lispdir=" %output "/share/emacs/site-lisp")
321 (string-append "DASH_DIR="
322 (assoc-ref %build-inputs "dash")
323 "/share/emacs/site-lisp/guix.d/dash-"
324 ,(package-version emacs-dash))
325 (string-append "WITH_EDITOR_DIR="
326 (assoc-ref %build-inputs "with-editor")
327 "/share/emacs/site-lisp/guix.d/with-editor-"
328 ,(package-version emacs-with-editor))
329 (string-append "TRANSIENT_DIR="
330 (assoc-ref %build-inputs "transient")
331 "/share/emacs/site-lisp/guix.d/transient-"
332 ,(package-version emacs-transient)))
333
334 #:phases
335 (modify-phases %standard-phases
336 (add-after 'unpack 'patch
337 (lambda _
338 (chmod "lisp/magit-extras.el" #o644)
339 (emacs-batch-edit-file "lisp/magit-extras.el"
340 `(progn (progn
341 (goto-char (point-min))
342 (re-search-forward "(defun magit-copy-buffer-revision ()")
343 (forward-sexp 2)
344 (kill-sexp)
345 (insert ,(format #f "~S"
346 '(if (use-region-p)
347 (copy-region-as-kill nil nil 'region)
348 (when-let ((rev (cl-case major-mode
349 ((magit-cherry-mode
350 magit-log-select-mode
351 magit-reflog-mode
352 magit-refs-mode
353 magit-revision-mode
354 magit-stash-mode
355 magit-stashes-mode)
356 (car magit-refresh-args))
357 ((magit-diff-mode magit-log-mode)
358 (let ((r (caar magit-refresh-args)))
359 (if (string-match "\\.\\.\\.?\\(.+\\)" r)
360 (match-string 1 r)
361 r)))
362 (magit-status-mode "HEAD"))))
363 (when (magit-commit-p rev)
364 (setq rev (magit-rev-parse rev))
365 (push (list rev default-directory) magit-revision-stack)
366 (kill-new (message "%s" rev))))))))
367 (basic-save-buffer)))
368 #t))
369 (delete 'configure)
370 (add-before
371 'build 'patch-exec-paths
372 (lambda* (#:key inputs #:allow-other-keys)
373 (let ((perl (assoc-ref inputs "perl")))
374 (make-file-writable "lisp/magit-sequence.el")
375 (emacs-substitute-variables "lisp/magit-sequence.el"
376 ("magit-perl-executable" (string-append perl "/bin/perl")))
377 #t))))))
378 (home-page "https://magit.vc/")
379 (synopsis "Emacs interface for the Git version control system")
380 (description
381 "With Magit, you can inspect and modify your Git repositories with Emacs.
382 You can review and commit the changes you have made to the tracked files, for
383 example, and you can browse the history of past changes. There is support for
384 cherry picking, reverting, merging, rebasing, and other common Git
385 operations.")
386 (license license:gpl3+))))
387
388 (define-public magit
389 (deprecated-package "magit" emacs-magit))
390
391 (define-public emacs-magit-svn
392 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
393 (package
394 (name "emacs-magit-svn")
395 (version (git-version "2.2.1" "1" commit))
396 (source (origin
397 (method git-fetch)
398 (uri (git-reference
399 (url "https://github.com/magit/magit-svn")
400 (commit commit)))
401 (file-name (git-file-name name version))
402 (sha256
403 (base32
404 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
405 (build-system trivial-build-system)
406 (native-inputs `(("emacs" ,emacs-minimal)))
407 (propagated-inputs `(("dash" ,emacs-dash)
408 ("with-editor" ,emacs-with-editor)
409 ("magit" ,emacs-magit)
410 ("transient" ,emacs-transient)))
411 (arguments
412 `(#:modules ((guix build utils)
413 (guix build emacs-utils))
414
415 #:builder
416 (begin
417 (use-modules (guix build utils)
418 (guix build emacs-utils))
419
420 (let ((emacs (string-append (assoc-ref %build-inputs "emacs")
421 "/bin/emacs"))
422 (magit (string-append (assoc-ref %build-inputs "magit")
423 "/share/emacs/site-lisp"))
424 (transient (string-append (assoc-ref %build-inputs "transient")
425 "/share/emacs/site-lisp/guix.d/transient-"
426 ,(package-version emacs-transient)))
427 (dash (string-append (assoc-ref %build-inputs "dash")
428 "/share/emacs/site-lisp/guix.d/dash-"
429 ,(package-version emacs-dash)))
430 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
431 "/share/emacs/site-lisp/guix.d/with-editor-"
432 ,(package-version emacs-with-editor)))
433 (source (assoc-ref %build-inputs "source"))
434 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
435
436 (install-file (string-append source "/magit-svn.el")
437 lisp-dir)
438
439 (with-directory-excursion lisp-dir
440 (parameterize ((%emacs emacs))
441 (emacs-generate-autoloads ,name lisp-dir)
442 (setenv "EMACSLOADPATH"
443 (string-append ":" magit ":" transient
444 ":" dash ":" with-editor))
445 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
446 #t))))
447 (home-page "https://github.com/magit/magit-svn")
448 (synopsis "Git-SVN extension to Magit")
449 (description
450 "This package is an extension to Magit, the Git Emacs mode, providing
451 support for Git-SVN.")
452 (license license:gpl3+))))
453
454 (define-public magit-svn
455 (deprecated-package "magit-svn" emacs-magit-svn))
456
457 (define-public emacs-magit-popup
458 (package
459 (name "emacs-magit-popup")
460 (version "2.12.5")
461 (source (origin
462 (method git-fetch)
463 (uri (git-reference
464 (url "https://github.com/magit/magit-popup.git")
465 (commit (string-append "v" version))))
466 (file-name (git-file-name name version))
467 (sha256
468 (base32
469 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
470 (build-system emacs-build-system)
471 (arguments
472 `(#:phases
473 (modify-phases %standard-phases
474 (add-before 'install 'make-info
475 (lambda _
476 (invoke "make" "info"))))))
477 (native-inputs
478 `(("texinfo" ,texinfo)))
479 (propagated-inputs
480 `(("emacs-dash" ,emacs-dash)))
481 (home-page "https://github.com/magit/magit-popup")
482 (synopsis "Define prefix-infix-suffix command combos")
483 (description
484 "This library implements a generic interface for toggling switches and
485 setting options and then invoking an Emacs command which does something with
486 these arguments. The prototypical use is for the command to call an external
487 process, passing on the arguments as command line arguments.")
488 (license license:gpl3+)))
489
490 (define-public emacs-minions
491 (package
492 (name "emacs-minions")
493 (version "0.3.1")
494 (source (origin
495 (method git-fetch)
496 (uri (git-reference
497 (url "https://github.com/tarsius/minions.git")
498 (commit (string-append "v" version))))
499 (file-name (git-file-name name version))
500 (sha256
501 (base32
502 "0q2y37zfxlbfvgdn70ikg3abp8vljna4ir9nyqlz1awmz5i1c43s"))))
503 (build-system emacs-build-system)
504 (propagated-inputs
505 `(("emacs-dash" ,emacs-dash)))
506 (home-page "https://github.com/tarsius/minions")
507 (synopsis "Minor-mode menu for the mode line")
508 (description
509 "This package implements a menu that lists enabled minor-modes, as well
510 as commonly but not currently enabled minor-modes. It can be used to toggle
511 local and global minor-modes, to access mode-specific menus, and to get help
512 about modes.
513
514 This menu is intended as a replacement for the incomplete yet wide list of
515 enabled minor-modes that is displayed in the mode line by default. To use the
516 menu like this, enable Minions mode.
517
518 Alternatively the menu can be bound globally, for example:
519 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
520 (license license:gpl3+)))
521
522 (define-public emacs-treepy
523 (package
524 (name "emacs-treepy")
525 (version "0.1.1")
526 (source (origin
527 (method git-fetch)
528 (uri (git-reference
529 (url "https://github.com/volrath/treepy.el.git")
530 (commit version)))
531 (file-name (git-file-name name version))
532 (sha256
533 (base32
534 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
535 (build-system emacs-build-system)
536 (home-page
537 "https://github.com/volrath/treepy.el")
538 (synopsis "Tree traversal tools")
539 (description
540 "Generic tools for recursive and iterative tree traversal based on
541 clojure.walk and clojure.zip respectively.")
542 (license license:gpl3+)))
543
544 (define-public emacs-graphql
545 (package
546 (name "emacs-graphql")
547 (version "0.1.1")
548 (source (origin
549 (modules '((guix build utils)))
550 ;; Remove examples file with references to external packages as
551 ;; they do not exist at compilation time.
552 (snippet
553 '(begin (delete-file "examples.el")
554 #t))
555 (method git-fetch)
556 (uri (git-reference
557 (url "https://github.com/vermiculus/graphql.el.git")
558 (commit version)))
559 (file-name (git-file-name name version))
560 (sha256
561 (base32
562 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
563 (build-system emacs-build-system)
564 (home-page
565 "https://github.com/vermiculus/graphql.el")
566 (synopsis "GraphQL utilities")
567 (description
568 "GraphQL.el provides a generally-applicable domain-specific language for
569 creating and executing GraphQL queries against your favorite web services.
570 GraphQL is a data query language and runtime designed and used to request and
571 deliver data to mobile and web apps.")
572 (license license:gpl3+)))
573
574 (define-public emacs-ghub
575 ;; We need a newer commit to avoid problems in emacs-forge.
576 (let ((commit "e19cd86ca4768a6d89285123933baa3f1460d696")
577 (revision "2"))
578 (package
579 (name "emacs-ghub")
580 (version (git-version "3.2.0" revision commit))
581 (source (origin
582 (method git-fetch)
583 (uri (git-reference
584 (url "https://github.com/magit/ghub")
585 (commit commit)))
586 (file-name (git-file-name name version))
587 (sha256
588 (base32
589 "1d6f8sxlsl0fpkzwbpnaw77d1a5pkg63zfvf6a2fxir357lbdizx"))))
590 (build-system emacs-build-system)
591 (arguments
592 `(#:phases
593 (modify-phases %standard-phases
594 (add-before 'install 'make-info
595 (lambda _
596 (invoke "make" "info"))))))
597 (native-inputs
598 `(("texinfo" ,texinfo)))
599 (propagated-inputs
600 `(("dash" ,emacs-dash)
601 ("emacs-let-alist" ,emacs-let-alist)
602 ("treepy" ,emacs-treepy)))
603 (home-page "https://github.com/magit/ghub")
604 (synopsis "Emacs client libraries for the APIs of various Git forges")
605 (description
606 "Ghub provides basic support for using the APIs of various Git forges from
607 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
608 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
609 handful of functions that are not resource-specific.")
610 (license license:gpl3+))))
611
612 (define-public emacs-scribble-mode
613 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
614 (revision "2"))
615 (package
616 (name "emacs-scribble-mode")
617 (version (git-version "0.1" revision commit))
618 (source (origin
619 (method git-fetch)
620 (uri (git-reference
621 (url "https://github.com/emacs-pe/scribble-mode.git")
622 (commit commit)))
623 (sha256
624 (base32
625 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
626 (build-system emacs-build-system)
627 (home-page "https://github.com/emacs-pe/scribble-mode")
628 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
629 (description
630 "This package provides basic syntax highlighting and editing support
631 for editing Racket's Scribble documentation syntax in Emacs.")
632 (license license:gpl3+))))
633
634 (define-public emacs-shroud
635 (package
636 (name "emacs-shroud")
637 (version "1.83.4")
638 (source
639 (origin
640 (method git-fetch)
641 (uri (git-reference
642 (url "https://github.com/o-nly/emacs-shroud.git")
643 (commit version)))
644 (file-name (git-file-name name version))
645 (sha256
646 (base32 "1yvdjx0kp4y8w5yz2cbqq9n6xl5splvmsyyx8ld1xv0q1c9872nf"))))
647 (build-system emacs-build-system)
648 (propagated-inputs
649 `(("emacs-bui" ,emacs-bui)
650 ("emacs-dash" ,emacs-dash)
651 ("emacs-f" ,emacs-f)
652 ("emacs-s" ,emacs-s)
653 ("gnupg" ,gnupg)
654 ("shroud" ,shroud)))
655 (home-page "https://github.com/o-nly/emacs-shroud")
656 (synopsis "Emacs interface to the Shroud password manager")
657 (description
658 "This package provides an Emacs interface to the Shroud password manager,
659 using the Buffers User Interface library. You can view, copy, and edit secrets
660 from within Emacs.")
661 (license license:gpl3+)))
662
663 (define-public emacs-unpackaged-el
664 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
665 (revision "3"))
666 (package
667 (name "emacs-unpackaged-el")
668 (version (git-version "0" revision commit))
669 (source
670 (origin
671 (method git-fetch)
672 (uri (git-reference
673 (url "https://github.com/alphapapa/unpackaged.el")
674 (commit commit)))
675 (file-name (git-file-name name version))
676 (sha256
677 (base32
678 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
679 (build-system emacs-build-system)
680 (propagated-inputs
681 `(("emacs-dash" ,emacs-dash)
682 ("emacs-org" ,emacs-org)
683 ("emacs-s" ,emacs-s)
684 ("emacs-hydra" ,emacs-hydra)
685 ("emacs-use-package" ,emacs-use-package)))
686 (arguments
687 `(#:phases
688 (modify-phases %standard-phases
689 (add-after 'unpack 'require-hydra
690 (lambda _
691 (substitute* "unpackaged.el"
692 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
693 #t)))))
694 (home-page "https://github.com/alphapapa/unpackaged.el")
695 (synopsis "Useful snippets of Emacs Lisp code")
696 (description "This package provides Emacs Lisp utilities for a variety
697 of tasks, including version control, task management, and regex-based
698 replacement.")
699 (license license:gpl3+))))
700
701 (define-public emacs-haskell-mode
702 (package
703 (name "emacs-haskell-mode")
704 (version "16.1")
705 (source (origin
706 (method git-fetch)
707 (uri (git-reference
708 (url "https://github.com/haskell/haskell-mode")
709 (commit (string-append "v" version))))
710 (file-name (git-file-name name version))
711 (sha256
712 (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
713 (patches
714 (search-patches ; backport test failure fixes
715 "haskell-mode-unused-variables.patch"
716 "haskell-mode-make-check.patch"))))
717 (inputs
718 `(("emacs-el-search" ,emacs-el-search) ; for tests
719 ("emacs-stream" ,emacs-stream))) ; for tests
720 (propagated-inputs
721 `(("emacs-dash" ,emacs-dash)))
722 (native-inputs
723 `(("emacs" ,emacs-minimal)
724 ("texinfo" ,texinfo)))
725 (build-system gnu-build-system)
726 (arguments
727 `(#:make-flags (list (string-append "EMACS="
728 (assoc-ref %build-inputs "emacs")
729 "/bin/emacs"))
730 #:modules ((ice-9 match)
731 (srfi srfi-26)
732 ,@%gnu-build-system-modules)
733 #:phases
734 (modify-phases %standard-phases
735 (delete 'configure)
736 (add-before
737 'build 'pre-build
738 (lambda* (#:key inputs #:allow-other-keys)
739 (define (el-dir store-dir)
740 (match (find-files store-dir "\\.el$")
741 ((f1 f2 ...) (dirname f1))
742 (_ "")))
743
744 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
745 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
746
747 (setenv "SHELL" "sh")
748 (setenv "EMACSLOADPATH"
749 (string-concatenate
750 (map (match-lambda
751 (((? emacs-prefix? name) . dir)
752 (string-append (el-dir dir) ":"))
753 (_ ""))
754 inputs)))
755 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
756 ;; embed filename to fix test failure
757 (let ((file "tests/haskell-cabal-tests.el"))
758 (substitute* file
759 (("\\(buffer-file-name\\)")
760 (format #f "(or (buffer-file-name) ~s)" file))))
761 #t)))
762 (replace
763 'install
764 (lambda* (#:key outputs #:allow-other-keys)
765 (let* ((out (assoc-ref outputs "out"))
766 (el-dir (string-append out "/share/emacs/site-lisp"))
767 (doc (string-append
768 out "/share/doc/haskell-mode-" ,version))
769 (info (string-append out "/share/info")))
770 (define (copy-to-dir dir files)
771 (for-each (lambda (f)
772 (install-file f dir))
773 files))
774
775 (with-directory-excursion "doc"
776 (invoke "makeinfo" "haskell-mode.texi")
777 (install-file "haskell-mode.info" info))
778 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
779 (copy-to-dir el-dir (find-files "." "\\.elc?"))
780 ;; These are part of other packages.
781 (with-directory-excursion el-dir
782 (for-each delete-file '("dash.el" "ert.el")))
783 #t))))))
784 (home-page "https://github.com/haskell/haskell-mode")
785 (synopsis "Haskell mode for Emacs")
786 (description
787 "This is an Emacs mode for editing, debugging and developing Haskell
788 programs.")
789 (license license:gpl3+)))
790
791 (define-public haskell-mode
792 (deprecated-package "haskell-mode" emacs-haskell-mode))
793
794 (define-public emacs-dante
795 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
796 (revision "3"))
797 (package
798 (name "emacs-dante")
799 (version (git-version "1.5" revision commit))
800 (source (origin
801 (method git-fetch)
802 (uri (git-reference
803 (url "https://github.com/jyp/dante")
804 (commit commit)))
805 (sha256
806 (base32
807 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
808 (file-name (git-file-name name version))))
809 (build-system emacs-build-system)
810 (propagated-inputs
811 `(("emacs-dash" ,emacs-dash)
812 ("emacs-f" ,emacs-f)
813 ("emacs-flycheck" ,emacs-flycheck)
814 ("emacs-haskell-mode" ,emacs-haskell-mode)
815 ("emacs-s" ,emacs-s)
816 ("emacs-company" ,emacs-company)
817 ("emacs-lcr" ,emacs-lcr)))
818 (home-page "https://github.com/jyp/dante")
819 (synopsis "Minor mode for interactive Haskell")
820 (description
821 "This package provides a minor mode for Haskell development that
822 supports type hints, definition-jumping, completion, and more.")
823 (license license:gpl3+))))
824
825 (define-public emacs-flycheck
826 ;; last release version was more than 300 commits ago
827 (let ((commit "0006a59259ebd02c9199ddc87f0e3ce22793a2ea")
828 (revision "1"))
829 (package
830 (name "emacs-flycheck")
831 (version (git-version "31" revision commit))
832 (source (origin
833 (method git-fetch)
834 (uri (git-reference
835 (url "https://github.com/flycheck/flycheck/")
836 (commit commit)))
837 (sha256
838 (base32
839 "09q3h6ldpg528cfbmsbb1x2vf5hmzgm3fshqn6kdy144jxcdjlf1"))
840 (file-name (git-file-name name version))))
841 (build-system emacs-build-system)
842 (propagated-inputs
843 `(("emacs-dash" ,emacs-dash)))
844 (native-inputs
845 `(("emacs-shut-up" ,emacs-shut-up)))
846 (arguments
847 `(#:phases
848 (modify-phases %standard-phases
849 (add-after 'unpack 'change-flycheck-version
850 (lambda _
851 (substitute* "flycheck.el"
852 (("\\(pkg-info-version-info 'flycheck\\)")
853 (string-append "\"" ,version "\"")))
854 #t)))
855 ;; TODO: many failing tests
856 #:tests? #f
857 #:test-command '("emacs" "-Q" "--batch" "-L" "."
858 "--load" "test/flycheck-test"
859 "--load" "test/run.el"
860 "-f" "flycheck-run-tests-main")))
861 (home-page "https://www.flycheck.org")
862 (synopsis "On-the-fly syntax checking")
863 (description
864 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
865 replacement for the older Flymake extension which is part of GNU Emacs, with
866 many improvements and additional features.
867
868 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
869 checking for over 30 programming and markup languages with more than 70
870 different tools. It highlights errors and warnings inline in the buffer, and
871 provides an optional IDE-like error list.")
872 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
873
874 (define-public emacs-a
875 (package
876 (name "emacs-a")
877 (version "0.1.1")
878 (source (origin
879 (method git-fetch)
880 (uri (git-reference
881 (url "https://github.com/plexus/a.el.git")
882 (commit (string-append "v" version))))
883 (file-name (git-file-name name version))
884 (sha256
885 (base32
886 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
887 (build-system emacs-build-system)
888 (home-page "https://github.com/plexus/a.el/")
889 (synopsis
890 "Emacs library for dealing with association lists and hash tables")
891 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
892 with associative structures in a uniform and functional way. These functions
893 can take association lists, hash tables, and in some cases vectors (where the
894 index is considered the key).")
895 (license license:gpl3+)))
896
897 (define-public emacs-ace-jump-mode
898 (package
899 (name "emacs-ace-jump-mode")
900 (version "2.0")
901 (home-page "https://github.com/winterTTr/ace-jump-mode")
902 (source (origin
903 (method git-fetch)
904 (uri (git-reference
905 (url home-page)
906 (commit (string-append "v" version))))
907 (sha256
908 (base32
909 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
910 (file-name (git-file-name name version))))
911 (build-system emacs-build-system)
912 (synopsis "Cursor location minor mode for fast navigation")
913 (description "Ace-jump-mode is a fast/direct cursor location minor
914 mode. It creates an N-Branch search tree internally and marks all
915 the possible position with predefined keys in within the whole Emacs
916 view. This allows you to move to the character, word, or line almost
917 directly.")
918 (license license:gpl3+)))
919
920 (define-public emacs-anaphora
921 (package
922 (name "emacs-anaphora")
923 (version "1.0.4")
924 (source
925 (origin
926 (method git-fetch)
927 (uri (git-reference
928 (url "https://github.com/rolandwalker/anaphora.git")
929 (commit (string-append "v" version))))
930 (file-name (git-file-name name version))
931 (sha256
932 (base32
933 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
934 (build-system emacs-build-system)
935 (home-page "https://github.com/rolandwalker/anaphora/")
936 (synopsis "Anaphoric expressions for Emacs Lisp")
937 (description "@code{emacs-anaphora} implements anaphoric expressions for
938 Emacs Lisp.
939
940 Anaphoric expressions implicitly create one or more temporary variables which
941 can be referred to during the expression. This technique can improve clarity
942 in certain cases. It also enables recursion for anonymous functions.")
943 (license license:public-domain)))
944
945 (define-public emacs-xr
946 (package
947 (name "emacs-xr")
948 (version "1.13")
949 (source
950 (origin
951 (method url-fetch)
952 (uri (string-append
953 "https://elpa.gnu.org/packages/xr-" version ".tar"))
954 (sha256
955 (base32
956 "1km4x92pii8c4bcimks4xzhmwpypdf183z0zh7raj062jz4jb74r"))))
957 (build-system emacs-build-system)
958 (home-page "http://elpa.gnu.org/packages/xr.html")
959 (synopsis "Convert string regexp to rx notation")
960 (description
961 "This is an inverse companion to the @code{rx} package for translating
962 regexps in string form to the @code{rx} notation. Its chief uses are:
963
964 @itemize
965 @item Migrating existing code to @code{rx} form, for better readability and
966 maintainability
967 @item Understanding complex regexp strings and finding errors in them
968 @end itemize
969
970 In addition to Emacs regexps, this package can also parse and troubleshoot
971 skip set strings, which are arguments to @code{skip-chars-forward} and
972 @code{skip-chars-backward}.")
973 (license license:gpl3+)))
974
975 (define-public emacs-ample-regexps
976 (let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046")
977 (revision "1"))
978 (package
979 (name "emacs-ample-regexps")
980 (version (git-version "0.1" revision commit))
981 (source
982 (origin
983 (method git-fetch)
984 (uri (git-reference
985 (url "https://github.com/immerrr/ample-regexps.el")
986 (commit commit)))
987 (file-name (git-file-name name version))
988 (sha256
989 (base32
990 "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
991 (build-system emacs-build-system)
992 (native-inputs
993 `(("ert-runner" ,emacs-ert-runner)))
994 (arguments
995 `(#:tests? #t
996 #:test-command '("ert-runner" "-l" "ample-regexps")))
997 (home-page "https://github.com/immerrr/ample-regexps.el")
998 (synopsis "Compose and reuse Emacs regexps")
999 (description
1000 "This package allows common parts of regexps to be easily picked out
1001 and reused.")
1002 (license license:gpl3+))))
1003
1004 (define-public emacs-reformatter
1005 (package
1006 (name "emacs-reformatter")
1007 (version "0.4")
1008 (source
1009 (origin
1010 (method git-fetch)
1011 (uri (git-reference
1012 (url "https://github.com/purcell/reformatter.el.git")
1013 (commit version)))
1014 (file-name (git-file-name name version))
1015 (sha256
1016 (base32
1017 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1018 (build-system emacs-build-system)
1019 (home-page "https://github.com/purcell/reformatter.el")
1020 (synopsis "Define commands which run reformatters on the current buffer")
1021 (description
1022 "This library lets elisp authors easily define an idiomatic command to
1023 reformat the current buffer using a command-line program, together with an
1024 optional minor mode which can apply this command automatically on save.")
1025 (license license:gpl3+)))
1026
1027 (define-public emacs-relint
1028 (package
1029 (name "emacs-relint")
1030 (version "1.11")
1031 (source
1032 (origin
1033 (method url-fetch)
1034 (uri (string-append
1035 "https://elpa.gnu.org/packages/relint-" version ".tar"))
1036 (sha256
1037 (base32 "0c7d35kp5k11fnyjrq9cg8i2r005gs57pmb3rvpf8ilwv0scn1m7"))))
1038 (build-system emacs-build-system)
1039 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1040 (home-page "https://github.com/mattiase/relint")
1041 (synopsis "Elisp regexp mistake finder")
1042 (description
1043 "Relint (regular expression lint) scans Elisp files for mistakes in
1044 regexps, including deprecated syntax and bad practice. It also checks the
1045 regexp-like arguments to @code{skip-chars-forward} and
1046 @code{skip-chars-backward}.")
1047 (license license:gpl3+)))
1048
1049 (define-public emacs-bug-hunter
1050 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1051 (revision "1"))
1052 (package
1053 (name "emacs-bug-hunter")
1054 (version (git-version "1.3.1" revision commit))
1055 (source
1056 (origin
1057 (method git-fetch)
1058 (uri (git-reference
1059 (url "https://github.com/Malabarba/elisp-bug-hunter.git")
1060 (commit commit)))
1061 (file-name (git-file-name name commit))
1062 (sha256
1063 (base32
1064 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1065 (build-system emacs-build-system)
1066 (propagated-inputs
1067 `(("emacs-seq" ,emacs-seq)))
1068 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1069 (synopsis "Hunt down errors by bisecting elisp files")
1070 (description
1071 "The Bug Hunter is an Emacs library that finds the source of an error
1072 or unexpected behavior inside an elisp configuration file (typically
1073 @file{init.el} or @file{.emacs}).")
1074 (license license:gpl3+))))
1075
1076 \f
1077 ;;;
1078 ;;; Web browsing.
1079 ;;;
1080
1081 (define-public emacs-w3m
1082 ;; Emacs-w3m follows a "rolling release" model.
1083 (package
1084 (name "emacs-w3m")
1085 (version "2018-11-11")
1086 (source (origin
1087 (method cvs-fetch)
1088 (uri (cvs-reference
1089 (root-directory
1090 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1091 (module "emacs-w3m")
1092 (revision version)))
1093 (file-name (string-append name "-" version "-checkout"))
1094 (sha256
1095 (base32
1096 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1097 (build-system gnu-build-system)
1098 (native-inputs `(("autoconf" ,autoconf)
1099 ("texinfo" ,texinfo)
1100 ("emacs" ,emacs-minimal)))
1101 (inputs `(("w3m" ,w3m)
1102 ("imagemagick" ,imagemagick)))
1103 (arguments
1104 `(#:modules ((guix build gnu-build-system)
1105 (guix build utils)
1106 (guix build emacs-utils))
1107 #:imported-modules (,@%gnu-build-system-modules
1108 (guix build emacs-utils))
1109 #:configure-flags
1110 (let ((out (assoc-ref %outputs "out")))
1111 (list (string-append "--with-lispdir="
1112 out "/share/emacs/site-lisp")
1113 (string-append "--with-icondir="
1114 out "/share/images/emacs-w3m")
1115 ;; Leave .el files uncompressed, otherwise GC can't
1116 ;; identify run-time dependencies. See
1117 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1118 "--without-compress-install"))
1119 #:tests? #f ; no check target
1120 #:phases
1121 (modify-phases %standard-phases
1122 (add-after 'unpack 'autoconf
1123 (lambda _
1124 (invoke "autoconf")))
1125 (add-before 'configure 'support-emacs!
1126 (lambda _
1127 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1128 ;; unsupported.
1129 (substitute* "configure"
1130 (("EMACS_FLAVOR=unsupported")
1131 "EMACS_FLAVOR=emacs"))
1132 #t))
1133 (add-before 'build 'patch-exec-paths
1134 (lambda* (#:key inputs outputs #:allow-other-keys)
1135 (let ((out (assoc-ref outputs "out"))
1136 (w3m (assoc-ref inputs "w3m"))
1137 (imagemagick (assoc-ref inputs "imagemagick"))
1138 (coreutils (assoc-ref inputs "coreutils")))
1139 (make-file-writable "w3m.el")
1140 (emacs-substitute-variables "w3m.el"
1141 ("w3m-command" (string-append w3m "/bin/w3m"))
1142 ("w3m-touch-command"
1143 (string-append coreutils "/bin/touch"))
1144 ("w3m-icon-directory"
1145 (string-append out "/share/images/emacs-w3m")))
1146 (make-file-writable "w3m-image.el")
1147 (emacs-substitute-variables "w3m-image.el"
1148 ("w3m-imagick-convert-program"
1149 (string-append imagemagick "/bin/convert"))
1150 ("w3m-imagick-identify-program"
1151 (string-append imagemagick "/bin/identify")))
1152 #t)))
1153 (replace 'install
1154 (lambda* (#:key outputs #:allow-other-keys)
1155 (invoke "make" "install" "install-icons")
1156 (with-directory-excursion
1157 (string-append (assoc-ref outputs "out")
1158 "/share/emacs/site-lisp")
1159 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1160 (symlink "w3m-load.el" "w3m-autoloads.el")
1161 #t))))))
1162 (home-page "http://emacs-w3m.namazu.org/")
1163 (synopsis "Simple Web browser for Emacs based on w3m")
1164 (description
1165 "Emacs-w3m is an emacs interface for the w3m web browser.")
1166 (license license:gpl2+)))
1167
1168 (define-public emacs-wget
1169 (package
1170 (name "emacs-wget")
1171 (version "0.5.0")
1172 (source (origin
1173 (method url-fetch)
1174 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1175 version ".orig.tar.gz"))
1176 (sha256
1177 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1178 (build-system gnu-build-system)
1179 (inputs `(("wget" ,wget)))
1180 (native-inputs `(("emacs" ,emacs-minimal)))
1181 (arguments
1182 `(#:modules ((guix build gnu-build-system)
1183 (guix build utils)
1184 (guix build emacs-utils))
1185 #:imported-modules (,@%gnu-build-system-modules
1186 (guix build emacs-utils))
1187 #:tests? #f ; no check target
1188 #:phases
1189 (modify-phases %standard-phases
1190 (replace 'configure
1191 (lambda* (#:key outputs #:allow-other-keys)
1192 (substitute* "Makefile"
1193 (("/usr/local") (assoc-ref outputs "out"))
1194 (("/site-lisp/emacs-wget") "/site-lisp"))
1195 #t))
1196 (add-before 'build 'patch-exec-paths
1197 (lambda* (#:key inputs outputs #:allow-other-keys)
1198 (let ((wget (assoc-ref inputs "wget")))
1199 (emacs-substitute-variables "wget.el"
1200 ("wget-command" (string-append wget "/bin/wget"))))
1201 #t))
1202 (add-after 'install 'post-install
1203 (lambda* (#:key outputs #:allow-other-keys)
1204 (emacs-generate-autoloads
1205 "wget" (string-append (assoc-ref outputs "out")
1206 "/share/emacs/site-lisp/"))
1207 #t)))))
1208 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
1209 (synopsis "Simple file downloader for Emacs based on wget")
1210 (description
1211 "Emacs-wget is an emacs interface for the wget file downloader.")
1212 (license license:gpl2+)))
1213
1214 \f
1215 ;;;
1216 ;;; Multimedia.
1217 ;;;
1218
1219 (define-public emacs-emms
1220 (package
1221 (name "emacs-emms")
1222 (version "5.2")
1223 (source (origin
1224 (method url-fetch)
1225 (uri (string-append "mirror://gnu/emms/emms-"
1226 version ".tar.gz"))
1227 (sha256
1228 (base32
1229 "0cvpfdkagkpi8g02w8f7wzrpdk2ihas0mn5m9fr882xjdfshl21z"))
1230 (modules '((guix build utils)))
1231 (snippet
1232 '(begin
1233 (substitute* "Makefile"
1234 (("/usr/bin/install-info")
1235 ;; No need to use 'install-info' since it would create a
1236 ;; useless 'dir' file.
1237 "true")
1238 (("^INFODIR=.*")
1239 ;; Install Info files to $out/share/info, not $out/info.
1240 "INFODIR := $(PREFIX)/share/info\n")
1241 (("/site-lisp/emms")
1242 ;; Install directly in share/emacs/site-lisp, not in a
1243 ;; sub-directory.
1244 "/site-lisp")
1245 (("^all: (.*)\n" _ rest)
1246 ;; Build 'emms-print-metadata'.
1247 (string-append "all: " rest " emms-print-metadata\n")))
1248 #t))))
1249 (build-system gnu-build-system)
1250 (arguments
1251 `(#:modules ((guix build gnu-build-system)
1252 (guix build utils)
1253 (guix build emacs-utils)
1254 (ice-9 ftw))
1255 #:imported-modules (,@%gnu-build-system-modules
1256 (guix build emacs-utils))
1257
1258 #:phases
1259 (modify-phases %standard-phases
1260 (replace 'configure
1261 (lambda* (#:key inputs outputs #:allow-other-keys)
1262 (let ((out (assoc-ref outputs "out"))
1263 (flac (assoc-ref inputs "flac"))
1264 (vorbis (assoc-ref inputs "vorbis-tools"))
1265 (alsa (assoc-ref inputs "alsa-utils"))
1266 (mpg321 (assoc-ref inputs "mpg321"))
1267 (mp3info (assoc-ref inputs "mp3info"))
1268 (mutagen (assoc-ref inputs "mutagen"))
1269 (opus (assoc-ref inputs "opus-tools")))
1270 ;; Specify the installation directory.
1271 (substitute* "Makefile"
1272 (("PREFIX=.*$")
1273 (string-append "PREFIX := " out "\n")))
1274
1275 (setenv "SHELL" (which "sh"))
1276 (setenv "CC" "gcc")
1277
1278 ;; Specify the absolute file names of the various
1279 ;; programs so that everything works out-of-the-box.
1280 (with-directory-excursion "lisp"
1281 (emacs-substitute-variables
1282 "emms-player-mpg321-remote.el"
1283 ("emms-player-mpg321-remote-command"
1284 (string-append mpg321 "/bin/mpg321")))
1285 (substitute* "emms-player-simple.el"
1286 (("\"ogg123\"")
1287 (string-append "\"" vorbis "/bin/ogg123\"")))
1288 (substitute* "emms-player-simple.el"
1289 (("\"mpg321\"")
1290 (string-append "\"" mpg321 "/bin/mpg321\"")))
1291 (emacs-substitute-variables "emms-info-ogginfo.el"
1292 ("emms-info-ogginfo-program-name"
1293 (string-append vorbis "/bin/ogginfo")))
1294 (emacs-substitute-variables "emms-info-opusinfo.el"
1295 ("emms-info-opusinfo-program-name"
1296 (string-append opus "/bin/opusinfo")))
1297 (emacs-substitute-variables "emms-info-libtag.el"
1298 ("emms-info-libtag-program-name"
1299 (string-append out "/bin/emms-print-metadata")))
1300 (emacs-substitute-variables "emms-info-mp3info.el"
1301 ("emms-info-mp3info-program-name"
1302 (string-append mp3info "/bin/mp3info")))
1303 (emacs-substitute-variables "emms-info-metaflac.el"
1304 ("emms-info-metaflac-program-name"
1305 (string-append flac "/bin/metaflac")))
1306 (emacs-substitute-variables "emms-source-file.el"
1307 ("emms-source-file-gnu-find" (which "find")))
1308 (substitute* "emms-volume-amixer.el"
1309 (("\"amixer\"")
1310 (string-append "\"" alsa "/bin/amixer\"")))
1311 (substitute* "emms-tag-editor.el"
1312 (("\"mid3v2\"")
1313 (string-append "\"" mutagen "/bin/mid3v2\"")))
1314 #t))))
1315 (add-before 'install 'pre-install
1316 (lambda* (#:key outputs #:allow-other-keys)
1317 ;; The 'install' rule expects the target directories to exist.
1318 (let* ((out (assoc-ref outputs "out"))
1319 (bin (string-append out "/bin"))
1320 (man1 (string-append out "/share/man/man1")))
1321 (mkdir-p bin)
1322 (mkdir-p man1)
1323
1324 ;; Ensure that files are not rejected by gzip
1325 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1326 (ftw "." (lambda (file stat flag)
1327 (unless (<= early-1980 (stat:mtime stat))
1328 (utime file early-1980 early-1980))
1329 #t)))
1330 #t)))
1331 (add-after 'install 'post-install
1332 (lambda* (#:key outputs #:allow-other-keys)
1333 (let ((out (assoc-ref outputs "out")))
1334 (symlink "emms-auto.el"
1335 (string-append out "/share/emacs/site-lisp/"
1336 "emms-autoloads.el")))
1337 #t)))
1338 #:tests? #f))
1339 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1340 ("texinfo" ,texinfo)))
1341 (inputs `(("alsa-utils" ,alsa-utils)
1342 ("flac" ,flac) ;for metaflac
1343 ("vorbis-tools" ,vorbis-tools)
1344 ("mpg321" ,mpg321)
1345 ("taglib" ,taglib)
1346 ("mp3info" ,mp3info)
1347 ("mutagen" ,python-mutagen)
1348 ("opus-tools" ,opus-tools)))
1349 (properties '((upstream-name . "emms")))
1350 (synopsis "Emacs Multimedia System")
1351 (description
1352 "EMMS is the Emacs Multimedia System. It is a small front-end which
1353 can control one of the supported external players. Thus, it supports
1354 whatever formats are supported by your music player. It also
1355 supports tagging and playlist management, all behind a clean and
1356 light user interface.")
1357 (home-page "https://www.gnu.org/software/emms/")
1358 (license license:gpl3+)))
1359
1360 (define-public emacs-emms-player-mpv
1361 ;; A new mpv backend is included in Emms from 5.0.
1362 (deprecated-package "emacs-emms-player-mpv" emacs-emms))
1363
1364 (define-public emacs-emms-mode-line-cycle
1365 (package
1366 (name "emacs-emms-mode-line-cycle")
1367 (version "0.2.5")
1368 (source
1369 (origin
1370 (method git-fetch)
1371 (uri (git-reference
1372 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1373 (commit version)))
1374 (file-name (git-file-name name version))
1375 (sha256
1376 (base32
1377 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1378 (build-system emacs-build-system)
1379 (propagated-inputs
1380 `(("emms" ,emacs-emms)))
1381 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1382 (synopsis "Display the EMMS mode line as a ticker")
1383 (description
1384 "This is a minor mode for updating the EMMS mode-line string cyclically
1385 within a specified width. It is useful for displaying long track titles.")
1386 (license license:gpl3+)))
1387
1388 \f
1389 ;;;
1390 ;;; Miscellaneous.
1391 ;;;
1392
1393 (define-public emacs-ace-link
1394 (package
1395 (name "emacs-ace-link")
1396 (version "0.5.0")
1397 (source
1398 (origin
1399 (method git-fetch)
1400 (uri (git-reference
1401 (url "https://github.com/abo-abo/ace-link.git")
1402 (commit version)))
1403 (file-name (git-file-name name version))
1404 (sha256
1405 (base32
1406 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1407 (build-system emacs-build-system)
1408 (propagated-inputs
1409 `(("emacs-avy" ,emacs-avy)))
1410 (home-page "https://github.com/abo-abo/ace-link")
1411 (synopsis "Quickly follow links in Emacs")
1412 (description
1413 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1414 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1415 @code{goto-address-mode} buffer, you can tab through the links to select the
1416 one you want. This is an O(N) operation, where the N is the amount of links.
1417 This package turns this into an O(1) operation. It does so by assigning a
1418 letter to each link using avy.")
1419 (license license:gpl3+)))
1420
1421 (define-public emacs-bbdb
1422 (package
1423 (name "emacs-bbdb")
1424 (version "3.1.2")
1425 (source (origin
1426 (method url-fetch)
1427 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1428 version ".tar.gz"))
1429 (sha256
1430 (base32
1431 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1432 (modules '((guix build utils)))
1433 (snippet
1434 ;; We don't want to build and install the PDF.
1435 '(begin
1436 (substitute* "doc/Makefile.in"
1437 (("^doc_DATA = .*$")
1438 "doc_DATA =\n"))
1439 #t))))
1440 (build-system gnu-build-system)
1441 (arguments
1442 '(#:phases
1443 (modify-phases %standard-phases
1444 (add-after 'install 'post-install
1445 (lambda* (#:key outputs #:allow-other-keys)
1446 ;; Add an autoloads file with the right name for guix.el.
1447 (let* ((out (assoc-ref outputs "out"))
1448 (site (string-append out "/share/emacs/site-lisp")))
1449 (with-directory-excursion site
1450 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1451 #t)))))
1452 (native-inputs `(("emacs" ,emacs-minimal)))
1453 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1454 (synopsis "Contact management utility for Emacs")
1455 (description
1456 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1457 an address book for email and snail mail addresses, phone numbers and the
1458 like. It can be linked with various Emacs mail clients (Message and Mail
1459 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1460 (license license:gpl3+)))
1461
1462 (define-public bbdb
1463 (deprecated-package "bbdb" emacs-bbdb))
1464
1465 (define-public emacs-aggressive-indent
1466 (package
1467 (name "emacs-aggressive-indent")
1468 (version "1.8.3")
1469 (source (origin
1470 (method url-fetch)
1471 (uri (string-append "https://elpa.gnu.org/packages/"
1472 "aggressive-indent-" version ".el"))
1473 (sha256
1474 (base32
1475 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1476 (build-system emacs-build-system)
1477 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1478 (synopsis "Minor mode to aggressively keep your code always indented")
1479 (description
1480 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1481 always indented. It reindents after every change, making it more reliable
1482 than @code{electric-indent-mode}.")
1483 (license license:gpl2+)))
1484
1485 (define-public emacs-link-hint
1486 ;; Last release was in 2015.
1487 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1488 (revision "1"))
1489 (package
1490 (name "emacs-link-hint")
1491 (version (git-version "0.1" revision commit))
1492 (source
1493 (origin
1494 (method git-fetch)
1495 (uri (git-reference
1496 (url "https://github.com/noctuid/link-hint.el")
1497 (commit commit)))
1498 (file-name (git-file-name name version))
1499 (sha256
1500 (base32
1501 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1502 (build-system emacs-build-system)
1503 (propagated-inputs
1504 `(("emacs-avy" ,emacs-avy)))
1505 (home-page "https://github.com/noctuid/link-hint.el")
1506 (synopsis "Vimperator-style link-hinting in Emacs")
1507 (description "This package provides commands for visiting and acting on
1508 links.")
1509 (license license:gpl3+))))
1510
1511 (define-public emacs-ag
1512 (package
1513 (name "emacs-ag")
1514 (version "0.48")
1515 (source (origin
1516 (method git-fetch)
1517 (uri (git-reference
1518 (url "https://github.com/Wilfred/ag.el.git")
1519 (commit version)))
1520 (file-name (git-file-name name version))
1521 (sha256
1522 (base32
1523 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1524 (build-system emacs-build-system)
1525 (arguments
1526 `(#:phases
1527 (modify-phases %standard-phases
1528 (add-before 'install 'make-info
1529 (lambda _
1530 (with-directory-excursion "docs"
1531 (invoke "make" "info"))))
1532 (add-after 'install 'install-info
1533 (lambda* (#:key outputs #:allow-other-keys)
1534 (let* ((out (assoc-ref outputs "out"))
1535 (info (string-append out "/share/info")))
1536 (install-file "docs/_build/texinfo/agel.info" info)
1537 #t))))))
1538 (native-inputs
1539 `(("python-sphinx" ,python-sphinx)
1540 ("texinfo" ,texinfo)))
1541 (propagated-inputs
1542 `(("dash" ,emacs-dash)
1543 ("s" ,emacs-s)
1544 ;; We need to use 'ag' as the executable on remote systems.
1545 ("the-silver-searcher" ,the-silver-searcher)))
1546 (home-page "https://github.com/Wilfred/ag.el")
1547 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1548 (description "This package provides the ability to use the silver
1549 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1550 include version control system awareness, use of Perl compatible regular
1551 expressions, editing the search results directly and searching file names
1552 rather than the contents of files.")
1553 (license license:gpl3+)))
1554
1555 (define-public emacs-async
1556 (package
1557 (name "emacs-async")
1558 (home-page "https://github.com/jwiegley/emacs-async")
1559 (version "1.9.3")
1560 (source (origin
1561 (method git-fetch)
1562 (uri (git-reference
1563 (url home-page)
1564 (commit (string-append "v" version))))
1565 (file-name (git-file-name name version))
1566 (sha256
1567 (base32
1568 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
1569 (build-system emacs-build-system)
1570 (synopsis "Asynchronous processing in Emacs")
1571 (description
1572 "This package provides the ability to call asynchronous functions and
1573 processes. For example, it can be used to run dired commands (for copying,
1574 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1575 as a library for other Emacs packages.")
1576 (license license:gpl3+)))
1577
1578 (define-public emacs-auctex
1579 (package
1580 (name "emacs-auctex")
1581 (version "12.1.2")
1582 (source
1583 (origin
1584 (method url-fetch)
1585 (uri (string-append
1586 "https://elpa.gnu.org/packages/auctex-"
1587 version
1588 ".tar"))
1589 (sha256
1590 (base32
1591 "1yibg2anpmyr2a27wm4xqjsvsi9km2jzb56bf7cwyj8dnjfsd11n"))))
1592 (build-system emacs-build-system)
1593 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1594 ;; ('emacs-minimal' does not provide dbus).
1595 (arguments
1596 `(#:emacs ,emacs
1597 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1598 #:exclude '("^tests/" "^latex/README")))
1599 (native-inputs
1600 `(("perl" ,perl)))
1601 (home-page "https://www.gnu.org/software/auctex/")
1602 (synopsis "Integrated environment for TeX")
1603 (description
1604 "AUCTeX is a comprehensive customizable integrated environment for
1605 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1606 or XEmacs.")
1607 (license license:gpl3+)))
1608
1609 (define-public emacs-autothemer
1610 (package
1611 (name "emacs-autothemer")
1612 (version "0.2.2")
1613 (source
1614 (origin
1615 (method git-fetch)
1616 (uri (git-reference
1617 (url "https://github.com/sebastiansturm/autothemer.git")
1618 (commit version)))
1619 (file-name (git-file-name name version))
1620 (sha256
1621 (base32
1622 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1623 (build-system emacs-build-system)
1624 (propagated-inputs
1625 `(("emacs-dash" ,emacs-dash)))
1626 (home-page "https://github.com/sebastiansturm/autothemer")
1627 (synopsis "Conveniently create Emacs themes")
1628 (description
1629 "Autothemer provides a thin layer on top of @code{deftheme} and
1630 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1631 a set of simplified face specifications and a user-supplied color palette")
1632 (license license:gpl3+)))
1633
1634 (define-public emacs-howm
1635 (package
1636 (name "emacs-howm")
1637 (version "1.4.4")
1638 (source
1639 (origin
1640 (method url-fetch)
1641 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1642 version ".tar.gz"))
1643 (sha256
1644 (base32
1645 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1646 (build-system gnu-build-system)
1647 (native-inputs
1648 `(("emacs" ,emacs-minimal)))
1649 (arguments
1650 `(#:configure-flags
1651 (list (string-append "--with-howmdir=" %output
1652 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1653 #:modules ((guix build gnu-build-system)
1654 ((guix build emacs-build-system) #:prefix emacs:)
1655 (guix build utils))
1656 #:imported-modules (,@%gnu-build-system-modules
1657 (guix build emacs-build-system)
1658 (guix build emacs-utils))
1659 #:phases
1660 (modify-phases %standard-phases
1661 (add-after 'install 'make-autoloads
1662 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1663 (home-page "http://howm.osdn.jp/")
1664 (synopsis "Note-taking tool for Emacs")
1665 (description "Howm is a note-taking tool for Emacs. Like
1666 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1667 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1668 (license license:gpl1+)))
1669
1670 (define-public emacs-calfw
1671 (package
1672 (name "emacs-calfw")
1673 (version "1.6")
1674 (source
1675 (origin
1676 (method git-fetch)
1677 (uri (git-reference
1678 (url "https://github.com/kiwanami/emacs-calfw.git")
1679 (commit (string-append "v" version))))
1680 (file-name (git-file-name name version))
1681 (sha256
1682 (base32
1683 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
1684 (build-system emacs-build-system)
1685 (propagated-inputs
1686 `(("emacs-howm" ,emacs-howm)))
1687 (home-page "https://github.com/kiwanami/emacs-calfw/")
1688 (synopsis "Calendar framework for Emacs")
1689 (description
1690 "This package displays a calendar view with various schedule data in the
1691 Emacs buffer.")
1692 (license license:gpl3+)))
1693
1694 (define-public emacs-direnv
1695 (package
1696 (name "emacs-direnv")
1697 (version "1.5.0")
1698 (source
1699 (origin
1700 (method git-fetch)
1701 (uri (git-reference
1702 (url "https://github.com/wbolster/emacs-direnv.git")
1703 (commit version)))
1704 (file-name (git-file-name name version))
1705 (sha256
1706 (base32
1707 "02blhinkkfh3iai6j1k5swplf5mkwijy3p7wy38rnd1gnyj2z4la"))))
1708 (build-system emacs-build-system)
1709 (propagated-inputs
1710 `(("dash" ,emacs-dash)
1711 ("with-editor" ,emacs-with-editor)))
1712 (home-page "https://github.com/wbolster/emacs-direnv")
1713 (synopsis "Direnv integration for Emacs")
1714 (description
1715 "This package provides support for invoking direnv to get the environment
1716 for the current file and updating the environment within Emacs to match.
1717
1718 Direnv can be invoked manually, and a global minor mode is included that will
1719 update the environment when the active buffer changes.
1720
1721 Using emacs-direnv means that programs started from Emacs will use the
1722 environment set through Direnv.")
1723 (license license:gpl3+)))
1724
1725 (define-public emacs-ggtags
1726 (package
1727 (name "emacs-ggtags")
1728 (version "0.8.13")
1729 (source
1730 (origin
1731 (method url-fetch)
1732 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1733 version ".el"))
1734 (sha256
1735 (base32
1736 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
1737 (build-system emacs-build-system)
1738 (inputs
1739 `(("global" ,global)))
1740 (arguments
1741 `(#:phases
1742 (modify-phases %standard-phases
1743 (add-after 'unpack 'configure
1744 (lambda* (#:key inputs #:allow-other-keys)
1745 (chmod "ggtags.el" #o644)
1746 (emacs-substitute-variables "ggtags.el"
1747 ("ggtags-executable-directory"
1748 (string-append (assoc-ref inputs "global") "/bin")))
1749 #t)))))
1750 (home-page "https://github.com/leoliu/ggtags")
1751 (synopsis "Frontend to the GNU Global source code tagging system")
1752 (description "@code{ggtags} provides a frontend to the GNU Global source
1753 code tagging system.
1754
1755 Features:
1756
1757 @itemize
1758 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
1759 @item Automatically update Global's tag files when needed with tuning for
1760 large source trees.
1761 @item Intuitive navigation among multiple matches with mode-line display of
1762 current match, total matches and exit status.
1763 @item Read tag with completion.
1764 @item Show definition at point.
1765 @item Jump to #include files.
1766 @item Support search history and saving a search to register/bookmark.
1767 @item Query replace.
1768 @item Manage Global's environment variables on a per-project basis.
1769 @item Highlight (definition) tag at point.
1770 @item Abbreviated display of file names.
1771 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1772 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1773 @code{pygments} backend.
1774 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
1775 @code{cscope} etc.
1776 @item Support projects on remote hosts (e.g. via @code{tramp}).
1777 @item Support eldoc.
1778 @item Search @code{GTAGSLIBPATH} for references and symbols.
1779 @end itemize\n")
1780 (license license:gpl3+)))
1781
1782 (define-public emacs-go-mode
1783 (package
1784 (name "emacs-go-mode")
1785 (version "1.5.0")
1786 (source (origin
1787 (method git-fetch)
1788 (uri (git-reference
1789 (url "https://github.com/dominikh/go-mode.el.git")
1790 (commit (string-append "v" version))))
1791 (file-name (git-file-name name version))
1792 (sha256
1793 (base32
1794 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
1795 (build-system emacs-build-system)
1796 (arguments
1797 `(#:phases
1798 (modify-phases %standard-phases
1799 (add-after 'unpack 'make-writable
1800 (lambda _
1801 (for-each make-file-writable (find-files "." "\\.el$"))
1802 #t)))))
1803 (home-page "https://github.com/dominikh/go-mode.el")
1804 (synopsis "Go mode for Emacs")
1805 (description
1806 "This package provides go-mode, an Emacs mode for working with software
1807 written in the Go programming language.")
1808 (license license:bsd-3)))
1809
1810 (define-public emacs-google-maps
1811 (package
1812 (name "emacs-google-maps")
1813 (version "1.0.0")
1814 (source (origin
1815 (method git-fetch)
1816 (uri (git-reference
1817 (url "https://github.com/jd/google-maps.el.git")
1818 (commit version)))
1819 (file-name (git-file-name name version))
1820 (sha256
1821 (base32
1822 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
1823 (build-system emacs-build-system)
1824 (home-page "https://github.com/jd/google-maps.el")
1825 (synopsis "Access Google Maps from Emacs")
1826 (description "The @code{google-maps} package allows to display Google
1827 Maps directly inside Emacs.")
1828 (license license:gpl3+)))
1829
1830 (define-public emacs-graphviz-dot-mode
1831 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1832 (revision "1"))
1833 (package
1834 (name "emacs-graphviz-dot-mode")
1835 (version (string-append "0.3.11-" revision "."
1836 (string-take commit 7)))
1837 (source (origin
1838 (method git-fetch)
1839 (uri (git-reference
1840 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1841 (commit commit)))
1842 (file-name (git-file-name name version))
1843 (sha256
1844 (base32
1845 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1846 (build-system emacs-build-system)
1847 (arguments
1848 `(#:phases
1849 (modify-phases %standard-phases
1850 (add-before 'install 'make-info
1851 (lambda* (#:key inputs #:allow-other-keys)
1852 (with-directory-excursion "texinfo"
1853 (substitute* "Makefile"
1854 (("\\/usr\\/bin\\/gzip")
1855 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1856 (invoke "make"
1857 "clean"
1858 "info"
1859 (string-append "TEXINFODIR="
1860 (assoc-ref inputs "texinfo")
1861 "/bin")))))
1862 (add-after 'install 'install-info
1863 (lambda* (#:key outputs #:allow-other-keys)
1864 (let* ((out (assoc-ref outputs "out"))
1865 (info (string-append out "/share/info")))
1866 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1867 #t))))))
1868 (native-inputs
1869 `(("texinfo" ,texinfo)
1870 ("gzip" ,gzip)))
1871 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1872 (synopsis "Major mode for editing Graphviz Dot files")
1873 (description
1874 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1875 files using the dot syntax, and use Graphviz to convert these files to
1876 diagrams.")
1877 (license license:gpl2+))))
1878
1879 (define-public emacs-mmm-mode
1880 (package
1881 (name "emacs-mmm-mode")
1882 (version "0.5.7")
1883 (source
1884 (origin
1885 (method git-fetch)
1886 (uri (git-reference
1887 (url "https://github.com/purcell/mmm-mode.git")
1888 (commit version)))
1889 (file-name (git-file-name name version))
1890 (sha256
1891 (base32
1892 "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"))))
1893 (build-system gnu-build-system)
1894 (native-inputs
1895 `(("autoconf" ,autoconf)
1896 ("automake" ,automake)
1897 ("emacs" ,emacs-minimal)
1898 ("texinfo" ,texinfo)))
1899 (home-page "https://github.com/purcell/mmm-mode")
1900 (synopsis "Allow multiple major modes in an Emacs buffer")
1901 (description
1902 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
1903 single buffer.")
1904 (license license:gpl3+)))
1905
1906 (define-public emacs-tablist
1907 (package
1908 (name "emacs-tablist")
1909 (version "1.0")
1910 (source (origin
1911 (method git-fetch)
1912 (uri (git-reference
1913 (url "https://github.com/politza/tablist.git")
1914 (commit (string-append "v" version))))
1915 (file-name (git-file-name name version))
1916 (sha256
1917 (base32
1918 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
1919 (build-system emacs-build-system)
1920 (home-page "https://github.com/politza/tablist")
1921 (synopsis "Extension for @code{tabulated-list-mode}")
1922 (description "Tablist is the Emacs package that provides several
1923 additional features to @code{tabulated-list-mode}: it adds marks,
1924 filters, new key bindings and faces. It can be enabled by
1925 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
1926 (license license:gpl3+)))
1927
1928 (define-public emacs-pdf-tools
1929 (package
1930 (name "emacs-pdf-tools")
1931 (version "0.90")
1932 (home-page "https://github.com/politza/pdf-tools")
1933 (source (origin
1934 (method git-fetch)
1935 (uri (git-reference (url home-page)
1936 (commit (string-append "v" version))))
1937 (file-name (git-file-name name version))
1938 (sha256
1939 (base32
1940 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
1941 (build-system gnu-build-system)
1942 (arguments
1943 `(#:tests? #f ; there are no tests
1944 #:modules ((guix build gnu-build-system)
1945 ((guix build emacs-build-system) #:prefix emacs:)
1946 (guix build utils)
1947 (guix build emacs-utils))
1948 #:imported-modules (,@%gnu-build-system-modules
1949 (guix build emacs-build-system)
1950 (guix build emacs-utils))
1951 #:phases
1952 (modify-phases %standard-phases
1953 ;; Build server side using 'gnu-build-system'.
1954 (add-after 'unpack 'enter-server-dir
1955 (lambda _ (chdir "server") #t))
1956 (add-after 'enter-server-dir 'autogen
1957 (lambda _
1958 (invoke "bash" "autogen.sh")))
1959
1960 ;; Build emacs side using 'emacs-build-system'.
1961 (add-after 'compress-documentation 'enter-lisp-dir
1962 (lambda _ (chdir "../lisp") #t))
1963 (add-after 'enter-lisp-dir 'emacs-patch-variables
1964 (lambda* (#:key outputs #:allow-other-keys)
1965 (for-each make-file-writable (find-files "."))
1966
1967 ;; Set path to epdfinfo program.
1968 (emacs-substitute-variables "pdf-info.el"
1969 ("pdf-info-epdfinfo-program"
1970 (string-append (assoc-ref outputs "out")
1971 "/bin/epdfinfo")))
1972 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1973 ;; upgrading" that pdf-tools tries to perform.
1974 (emacs-substitute-variables "pdf-tools.el"
1975 ("pdf-tools-handle-upgrades" '()))))
1976 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1977 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1978 (add-after 'emacs-set-emacs-load-path 'emacs-install
1979 (assoc-ref emacs:%standard-phases 'install))
1980 (add-after 'emacs-install 'emacs-build
1981 (assoc-ref emacs:%standard-phases 'build))
1982 (add-after 'emacs-install 'emacs-make-autoloads
1983 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1984 (native-inputs `(("autoconf" ,autoconf)
1985 ("automake" ,automake)
1986 ("pkg-config" ,pkg-config)
1987 ("emacs" ,emacs-minimal)))
1988 (inputs `(("poppler" ,poppler)
1989 ("cairo" ,cairo)
1990 ("glib" ,glib)
1991 ("libpng" ,libpng)
1992 ("zlib" ,zlib)))
1993 (propagated-inputs `(("tablist" ,emacs-tablist)))
1994 (synopsis "Emacs support library for PDF files")
1995 (description
1996 "PDF Tools is, among other things, a replacement of DocView for PDF
1997 files. The key difference is that pages are not pre-rendered by
1998 e.g. ghostscript and stored in the file-system, but rather created on-demand
1999 and stored in memory.")
2000 (license license:gpl3+)))
2001
2002 (define-public emacs-dash
2003 (package
2004 (name "emacs-dash")
2005 (version "2.16.0")
2006 (source (origin
2007 (method git-fetch)
2008 (uri (git-reference
2009 (url "https://github.com/magnars/dash.el.git")
2010 (commit version)))
2011 (file-name (git-file-name name version))
2012 (sha256
2013 (base32
2014 "150k48llqz2mb66vbznpyj47r6g16amfl7hbg8q46djq8mp7zc2v"))))
2015 (build-system emacs-build-system)
2016 (arguments
2017 `(#:tests? #t
2018 #:test-command '("./run-tests.sh")))
2019 (home-page "https://github.com/magnars/dash.el")
2020 (synopsis "Modern list library for Emacs")
2021 (description "This package provides a modern list API library for Emacs.")
2022 (license license:gpl3+)))
2023
2024 (define-public emacs-bui
2025 (package
2026 (name "emacs-bui")
2027 (version "1.2.1")
2028 (source (origin
2029 (method git-fetch)
2030 (uri (git-reference
2031 (url "https://notabug.org/alezost/emacs-bui.git")
2032 (commit (string-append "v" version))))
2033 (file-name (git-file-name name version))
2034 (sha256
2035 (base32
2036 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2037 (build-system emacs-build-system)
2038 (propagated-inputs
2039 `(("dash" ,emacs-dash)))
2040 (home-page "https://notabug.org/alezost/emacs-bui")
2041 (synopsis "Buffer interface library for Emacs")
2042 (description
2043 "BUI (Buffer User Interface) is a library for making @code{list} and
2044 @code{info} interfaces to display an arbitrary data of the same
2045 type, for example: packages, buffers, files, etc.")
2046 (license license:gpl3+)))
2047
2048 (define-public emacs-guix
2049 (package
2050 (name "emacs-guix")
2051 (version "0.5.1.1")
2052 (source (origin
2053 (method url-fetch)
2054 (uri (string-append "https://emacs-guix.gitlab.io/website/"
2055 "releases/emacs-guix-" version ".tar.gz"))
2056 (sha256
2057 (base32
2058 "1gxg7lan3njc2yg2d02b2zij0d2cm2pv2q08nqz86s85jk3b6m03"))))
2059 (build-system gnu-build-system)
2060 (arguments
2061 `(#:configure-flags
2062 (let ((guix (assoc-ref %build-inputs "guix"))
2063 (gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
2064 (geiser (assoc-ref %build-inputs "geiser"))
2065 (dash (assoc-ref %build-inputs "dash"))
2066 (bui (assoc-ref %build-inputs "bui"))
2067 (magit-popup (assoc-ref %build-inputs "magit-popup"))
2068 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
2069 (site-lisp "/share/emacs/site-lisp")
2070 (site-scm "/share/guile/site")
2071 (site-go "/lib/guile")
2072 (guile-dir (lambda (dir)
2073 (car (find-files dir
2074 (lambda (file stat)
2075 (string-prefix?
2076 "2." (basename file)))
2077 #:directories? #t)))))
2078 (list (string-append "--with-guix-site-dir="
2079 (guile-dir (string-append guix site-scm)))
2080 (string-append "--with-guix-site-ccache-dir="
2081 (guile-dir (string-append guix site-go))
2082 "/site-ccache")
2083 (string-append "--with-guile-gcrypt-site-dir="
2084 (guile-dir (string-append gcrypt site-scm)))
2085 (string-append "--with-guile-gcrypt-site-ccache-dir="
2086 (guile-dir (string-append gcrypt site-go))
2087 "/site-ccache")
2088 (string-append "--with-geiser-lispdir=" geiser site-lisp)
2089 (string-append "--with-dash-lispdir="
2090 dash site-lisp "/guix.d/dash-"
2091 ,(package-version emacs-dash))
2092 (string-append "--with-bui-lispdir="
2093 bui site-lisp "/guix.d/bui-"
2094 ,(package-version emacs-bui))
2095 (string-append "--with-editindirect-lispdir="
2096 edit-indirect site-lisp "/guix.d/edit-indirect-"
2097 ,(package-version emacs-edit-indirect))
2098 (string-append "--with-popup-lispdir="
2099 magit-popup site-lisp "/guix.d/magit-popup-"
2100 ,(package-version emacs-magit-popup))))))
2101 (native-inputs
2102 `(("pkg-config" ,pkg-config)
2103 ("emacs" ,emacs-minimal)))
2104 (inputs
2105 `(("guile" ,guile-2.2)
2106 ("guix" ,guix)))
2107 (propagated-inputs
2108 `(("geiser" ,emacs-geiser)
2109 ("guile-gcrypt" ,guile-gcrypt)
2110 ("dash" ,emacs-dash)
2111 ("bui" ,emacs-bui)
2112 ("edit-indirect" ,emacs-edit-indirect)
2113 ("magit-popup" ,emacs-magit-popup)))
2114 (home-page "https://emacs-guix.gitlab.io/website/")
2115 (synopsis "Emacs interface for GNU Guix")
2116 (description
2117 "Emacs-Guix provides a visual interface, tools and features for the GNU
2118 Guix package manager. Particularly, it allows you to do various package
2119 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2120 @code{M-x guix-help} command.")
2121 (license license:gpl3+)))
2122
2123 (define-public emacs-build-farm
2124 (package
2125 (name "emacs-build-farm")
2126 (version "0.2.2")
2127 (source (origin
2128 (method git-fetch)
2129 (uri (git-reference
2130 (url "https://notabug.org/alezost/emacs-build-farm.git")
2131 (commit (string-append "v" version))))
2132 (file-name (git-file-name name version))
2133 (sha256
2134 (base32
2135 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2136 (build-system emacs-build-system)
2137 (propagated-inputs
2138 `(("bui" ,emacs-bui)
2139 ("magit-popup" ,emacs-magit-popup)))
2140 (home-page "https://notabug.org/alezost/emacs-build-farm")
2141 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2142 (description
2143 "This Emacs package provides an interface for Hydra and
2144 Cuirass (build farms used by Nix and Guix). It allows you to look at
2145 various data related to the build farm projects, jobsets, builds and
2146 evaluations. The entry point is @code{M-x build-farm} command.")
2147 (license license:gpl3+)))
2148
2149 (define-public emacs-d-mode
2150 (package
2151 (name "emacs-d-mode")
2152 (version "2.0.9")
2153 (source
2154 (origin
2155 (method git-fetch)
2156 (uri (git-reference
2157 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
2158 (commit version)))
2159 (file-name (git-file-name name version))
2160 (sha256
2161 (base32 "0fzplvi1sm8k2sabfdvrd7j2xypwqh0g9v1mxa75dajdmcd85zpj"))))
2162 (build-system emacs-build-system)
2163 (propagated-inputs
2164 `(("emacs-undercover" ,emacs-undercover)))
2165 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2166 (synopsis "Emacs major mode for editing D code")
2167 (description "This package provides an Emacs major mode for highlighting
2168 code written in the D programming language. This mode is currently known to
2169 work with Emacs 24 and 25.")
2170 (license license:gpl2+)))
2171
2172 (define-public emacs-extempore-mode
2173 ;; Use the latest commit at time of packaging. There are no releases or tags.
2174 (let ((commit "848ad0084f27b92d1cf98dabffbad29f959a642d")
2175 (revision "1"))
2176 (package
2177 (name "emacs-extempore-mode")
2178 (version (git-version "0.0.0" revision commit))
2179 (source
2180 (origin
2181 (method git-fetch)
2182 (uri (git-reference
2183 (url "https://github.com/extemporelang/extempore-emacs-mode.git")
2184 (commit commit)))
2185 (file-name (git-file-name name version))
2186 (sha256
2187 (base32 "00wr025php7nl33x541s9rjm99hj0jbdcmnw9ljx5hqpm04aqm7c"))))
2188 (build-system emacs-build-system)
2189 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2190 (synopsis "Emacs major mode for Extempore source files")
2191 (description
2192 "This package provides a major mode for editing Extempore code. It can
2193 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2194 running Extempore process, and more.")
2195 (license license:bsd-2))))
2196
2197 (define-public emacs-keyfreq
2198 (package
2199 (name "emacs-keyfreq")
2200 (version "20160516.716")
2201 (source
2202 (origin
2203 (method url-fetch)
2204 (uri (string-append "http://melpa.org/packages/keyfreq-"
2205 version ".el"))
2206 (sha256
2207 (base32
2208 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2209 (build-system emacs-build-system)
2210 (home-page "https://github.com/dacap/keyfreq")
2211 (synopsis "Track Emacs command frequencies")
2212 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2213 a command.")
2214 (license license:gpl3+)))
2215
2216 (define-public emacs-olivetti
2217 (package
2218 (name "emacs-olivetti")
2219 (version "1.8.0")
2220 (source (origin
2221 (method git-fetch)
2222 (uri (git-reference
2223 (url "https://github.com/rnkn/olivetti.git")
2224 (commit (string-append "v" version))))
2225 (file-name (git-file-name name version))
2226 (sha256
2227 (base32
2228 "0ba30swqxxbpa8866chymywnahby1hk670zzkz44q49328i2wksj"))))
2229 (build-system emacs-build-system)
2230 (home-page "https://github.com/rnkn/olivetti")
2231 (synopsis "Emacs minor mode for a nice writing environment")
2232 (description "This package provides an Emacs minor mode that puts writing
2233 in the center.")
2234 (license license:gpl3+)))
2235
2236 (define-public emacs-undo-tree
2237 (package
2238 (name "emacs-undo-tree")
2239 (version "0.6.6")
2240 (source (origin
2241 (method git-fetch)
2242 (uri (git-reference
2243 (url "http://dr-qubit.org/git/undo-tree.git")
2244 (commit (string-append "release/" version))))
2245 (file-name (git-file-name name version))
2246 (sha256
2247 (base32
2248 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
2249 (build-system emacs-build-system)
2250 (home-page "http://www.dr-qubit.org/emacs.php")
2251 (synopsis "Treat undo history as a tree")
2252 (description "Tree-like interface to Emacs undo system, providing
2253 graphical tree presentation of all previous states of buffer that
2254 allows easily move between them.")
2255 (license license:gpl3+)))
2256
2257 (define-public emacs-s
2258 (package
2259 (name "emacs-s")
2260 (version "1.12.0")
2261 (source
2262 (origin
2263 (method git-fetch)
2264 (uri (git-reference
2265 (url "https://github.com/magnars/s.el.git")
2266 (commit version)))
2267 (file-name (git-file-name name version))
2268 (sha256
2269 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2270 (build-system emacs-build-system)
2271 (arguments
2272 `(#:tests? #t
2273 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2274 #:test-command '("./run-tests.sh")))
2275 (home-page "https://github.com/magnars/s.el")
2276 (synopsis "Emacs string manipulation library")
2277 (description "This package provides an Emacs library for manipulating
2278 strings.")
2279 (license license:gpl3+)))
2280
2281 (define-public emacs-symon
2282 (package
2283 (name "emacs-symon")
2284 (version "20160630")
2285 (source
2286 (origin
2287 (method git-fetch)
2288 (uri (git-reference
2289 (url "https://github.com/zk-phi/symon.git")
2290 (commit version)))
2291 (file-name (git-file-name name version))
2292 (sha256
2293 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2294 (build-system emacs-build-system)
2295 (home-page "https://github.com/zk-phi/symon")
2296 (synopsis "Tiny graphical system monitor")
2297 (description
2298 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2299 (license license:gpl2+)))
2300
2301 (define-public emacs-sx
2302 (let ((version "20180212")
2303 (revision "1")
2304 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
2305 (package
2306 (name "emacs-sx")
2307 (version (git-version version revision commit))
2308 (source
2309 (origin
2310 (method git-fetch)
2311 (uri (git-reference
2312 (url "https://github.com/vermiculus/sx.el")
2313 (commit commit)))
2314 (file-name (git-file-name name version))
2315 (sha256
2316 (base32
2317 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
2318 (build-system emacs-build-system)
2319 (propagated-inputs
2320 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2321 (home-page "https://github.com/vermiculus/sx.el")
2322 (synopsis "Emacs StackExchange client")
2323 (description
2324 "Emacs StackExchange client. Ask and answer questions on
2325 Stack Overflow, Super User, and other StackExchange sites.")
2326 (license license:gpl3+))))
2327
2328 (define-public emacs-f
2329 (package
2330 (name "emacs-f")
2331 (version "0.20.0")
2332 (source (origin
2333 (method git-fetch)
2334 (uri (git-reference
2335 (url "https://github.com/rejeep/f.el.git")
2336 (commit (string-append "v" version))))
2337 (file-name (git-file-name name version))
2338 (sha256
2339 (base32
2340 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2341 (build-system emacs-build-system)
2342 (propagated-inputs
2343 `(("emacs-s" ,emacs-s)
2344 ("emacs-dash" ,emacs-dash)))
2345 (home-page "https://github.com/rejeep/f.el")
2346 (synopsis "Emacs API for working with files and directories")
2347 (description "This package provides an Emacs library for working with
2348 files and directories.")
2349 (license license:gpl3+)))
2350
2351 (define-public emacs-fringe-helper
2352 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
2353 (revision "1"))
2354 (package
2355 (name "emacs-fringe-helper")
2356 (version (git-version "1.0.1" revision commit))
2357 (source
2358 (origin
2359 (method git-fetch)
2360 (uri (git-reference
2361 (url "https://github.com/nschum/fringe-helper.el.git")
2362 (commit commit)))
2363 (file-name (git-file-name name version))
2364 (sha256
2365 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
2366 (build-system emacs-build-system)
2367 (arguments
2368 `(#:tests? #t
2369 #:test-command '("emacs" "--batch"
2370 "-l" "tests.el"
2371 "-f" "ert-run-tests-batch-and-exit")))
2372 (home-page "https://github.com/nschum/fringe-helper.el")
2373 (synopsis "Helper functions for fringe bitmaps")
2374 (description
2375 "This package allows fringe bitmaps to be defined with a visual string
2376 representation.")
2377 (license license:gpl2+))))
2378
2379 (define-public emacs-git-gutter
2380 (package
2381 (name "emacs-git-gutter")
2382 (version "0.90")
2383 (source
2384 (origin
2385 (method git-fetch)
2386 (uri (git-reference
2387 (url "https://github.com/syohex/emacs-git-gutter.git")
2388 (commit version)))
2389 (file-name (git-file-name name version))
2390 (sha256
2391 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2392 (build-system emacs-build-system)
2393 (home-page "https://github.com/syohex/emacs-git-gutter")
2394 (synopsis "See and manage hunks of text in a version control system")
2395 (description
2396 "This package is an Emacs minor mode for displaying and interacting with
2397 hunks of text managed in a version control system. Added modified and deleted
2398 areas can be indicated with symbols on the edge of the buffer, and commands
2399 can be used to move between and perform actions on these hunks.
2400
2401 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2402 display and behaviour is easily customisable.")
2403 (license license:gpl3+)))
2404
2405 (define-public emacs-git-gutter-fringe
2406 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
2407 (revision "1"))
2408 (package
2409 (name "emacs-git-gutter-fringe")
2410 (version (git-version "0.23" revision commit))
2411 (source
2412 (origin
2413 (method git-fetch)
2414 (uri (git-reference
2415 (url "https://github.com/syohex/git-gutter-fringe.git")
2416 (commit commit)))
2417 (file-name (git-file-name name version))
2418 (sha256
2419 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
2420 (build-system emacs-build-system)
2421 (propagated-inputs
2422 `(("emacs-git-gutter" ,emacs-git-gutter)
2423 ("emacs-fringe-helper" ,emacs-fringe-helper)))
2424 (home-page "https://github.com/syohex/git-gutter-fringe")
2425 (synopsis "See and manage hunks of text in a version control system")
2426 (description
2427 "This package extends @code{git-gutter} to use the fringe area of a
2428 window.")
2429 (license license:gpl3+))))
2430
2431 (define-public emacs-git-link
2432 (package
2433 (name "emacs-git-link")
2434 (version "0.7.5")
2435 (source
2436 (origin
2437 (method git-fetch)
2438 (uri (git-reference
2439 (url "https://github.com/sshaw/git-link.git")
2440 (commit (string-append "v" version))))
2441 (file-name (git-file-name name version))
2442 (sha256
2443 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
2444 (build-system emacs-build-system)
2445 (arguments
2446 `(#:tests? #t
2447 #:test-command '("make" "test")))
2448 (home-page "https://github.com/sshaw/git-link")
2449 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
2450 (description
2451 "@code{git-link} returns the URL for the current buffer's file location
2452 at the current line number or active region. @code{git-link-commit} returns
2453 the URL for a commit. URLs are added to the kill ring.")
2454 (license license:gpl3+)))
2455
2456 (define-public emacs-apheleia
2457 (package
2458 (name "emacs-apheleia")
2459 (version "1.0")
2460 (source
2461 (origin
2462 (method git-fetch)
2463 (uri (git-reference
2464 (url "https://github.com/raxod502/apheleia.git")
2465 (commit (string-append "v" version))))
2466 (file-name (git-file-name name version))
2467 (sha256
2468 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
2469 (build-system emacs-build-system)
2470 (home-page "https://github.com/raxod502/apheleia")
2471 (synopsis "Reformat buffer stably")
2472 (description
2473 "This package allows for a buffer to be reformatted without moving point,
2474 so that running a formatting tool like @code{Prettier} or @code{Black} upon
2475 saving won't move point back to the beginning of the buffer.")
2476 (license license:gpl3+)))
2477
2478 (define-public emacs-git-timemachine
2479 (package
2480 (name "emacs-git-timemachine")
2481 (version "4.11")
2482 (source
2483 (origin
2484 (method git-fetch)
2485 (uri (git-reference
2486 (url "https://gitlab.com/pidu/git-timemachine.git")
2487 (commit version)))
2488 (file-name (git-file-name name version))
2489 (sha256
2490 (base32
2491 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
2492 (build-system emacs-build-system)
2493 (propagated-inputs
2494 `(("emacs-transient" ,emacs-transient)))
2495 (home-page "https://gitlab.com/pidu/git-timemachine")
2496 (synopsis "Step through historic versions of Git-controlled files")
2497 (description "This package enables you to step through historic versions
2498 of files under Git version control from within Emacs.")
2499 (license license:gpl3+)))
2500
2501 (define-public emacs-minitest
2502 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2503 (revision "1"))
2504 (package
2505 (name "emacs-minitest")
2506 (version (git-version "0.8.0" revision commit))
2507 (source (origin
2508 (method git-fetch)
2509 (uri (git-reference
2510 (url "https://github.com/arthurnn/minitest-emacs")
2511 (commit commit)))
2512 (file-name (git-file-name name commit))
2513 (sha256
2514 (base32
2515 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2516 (build-system emacs-build-system)
2517 (arguments
2518 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2519 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2520 (propagated-inputs
2521 `(("emacs-dash" ,emacs-dash)
2522 ("emacs-f" ,emacs-f)))
2523 (home-page "https://github.com/arthurnn/minitest-emacs")
2524 (synopsis "Emacs minitest mode")
2525 (description
2526 "The minitest mode provides commands to run the tests for the current
2527 file or line, as well as rerunning the previous tests, or all the tests for a
2528 project.
2529
2530 This package also includes relevant snippets for yasnippet.")
2531 (license license:expat))))
2532
2533 (define-public emacs-el-mock
2534 (package
2535 (name "emacs-el-mock")
2536 (version "1.25.1")
2537 (source
2538 (origin
2539 (method git-fetch)
2540 (uri (git-reference
2541 (url "https://github.com/rejeep/el-mock.el.git")
2542 (commit (string-append "v" version))))
2543 (file-name (git-file-name name version))
2544 (sha256
2545 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
2546 (build-system emacs-build-system)
2547 (home-page "https://github.com/rejeep/el-mock.el")
2548 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2549 (description
2550 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2551 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2552 Expectations, but it can be used in other contexts.")
2553 (license license:gpl3+)))
2554
2555 (define-public emacs-espuds
2556 (package
2557 (name "emacs-espuds")
2558 (version "0.3.3")
2559 (source
2560 (origin
2561 (method git-fetch)
2562 (uri (git-reference
2563 (url "https://github.com/ecukes/espuds.git")
2564 (commit (string-append "v" version))))
2565 (file-name (git-file-name name version))
2566 (sha256
2567 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
2568 (build-system emacs-build-system)
2569 (propagated-inputs
2570 `(("emacs-s" ,emacs-s)
2571 ("emacs-dash" ,emacs-dash)
2572 ("emacs-f" ,emacs-f)))
2573 (home-page "https://github.com/ecukes/espuds")
2574 (synopsis "Common step definitions for Ecukes")
2575 (description "Espuds is a collection of the most commonly used step
2576 definitions for testing with the Ecukes framework.")
2577 (license license:gpl3+)))
2578
2579 (define-public emacs-spark
2580 (let ((version "20160503") ; no proper tag, use date of commit
2581 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2582 (revision "1"))
2583 (package
2584 (name "emacs-spark")
2585 (version (git-version version revision commit))
2586 (source
2587 (origin
2588 (method git-fetch)
2589 (uri (git-reference
2590 (url "https://github.com/alvinfrancis/spark.git")
2591 (commit commit)))
2592 (file-name (git-file-name name version))
2593 (sha256
2594 (base32
2595 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2596 (build-system emacs-build-system)
2597 (home-page "https://github.com/alvinfrancis/spark")
2598 (synopsis "Sparkline generation library for Emacs Lisp")
2599 (description "@code{emacs-spark} is a sparkline generation library for
2600 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2601 port of @code{cl-spark} to Emacs Lisp.")
2602 (license license:expat))))
2603
2604 (define-public emacs-es-mode
2605 (package
2606 (name "emacs-es-mode")
2607 (version "4.3.0")
2608 (source
2609 (origin
2610 (method git-fetch)
2611 (uri (git-reference
2612 (url "https://github.com/dakrone/es-mode.git")
2613 (commit version)))
2614 (file-name (git-file-name name version))
2615 (sha256
2616 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
2617 (build-system emacs-build-system)
2618 (propagated-inputs
2619 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2620 ;; to be rendered incorrectly
2621 `(("emacs-dash" ,emacs-dash)
2622 ("emacs-org" ,emacs-org)
2623 ("emacs-spark" ,emacs-spark)))
2624 (home-page "https://github.com/dakrone/es-mode")
2625 (synopsis "Major mode for editing Elasticsearch queries")
2626 (description "@code{es-mode} includes highlighting, completion and
2627 indentation support for Elasticsearch queries. Also supported are
2628 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2629 be processed through @code{jq}, or in the case of aggregations, can be
2630 rendered in to a table. In addition, there is an @code{es-command-center}
2631 mode, which displays information about Elasticsearch clusters.")
2632 (license license:gpl3+)))
2633
2634 (define-public emacs-expand-region
2635 (package
2636 (name "emacs-expand-region")
2637 (version "0.11.0")
2638 (source
2639 (origin
2640 (method git-fetch)
2641 (uri (git-reference
2642 (url "https://github.com/magnars/expand-region.el.git")
2643 (commit version)))
2644 (file-name (git-file-name name version))
2645 (sha256
2646 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
2647 (build-system emacs-build-system)
2648 (home-page "https://github.com/magnars/expand-region.el")
2649 (synopsis "Increase selected region by semantic units")
2650 (description
2651 "Expand region increases the selected region by semantic units. Just
2652 keep pressing the key until it selects what you want. There's also
2653 @code{er/contract-region} if you expand too far.")
2654 (license license:gpl3+)))
2655
2656 (define-public emacs-fill-column-indicator
2657 (package
2658 (name "emacs-fill-column-indicator")
2659 (version "1.89")
2660 (source
2661 (origin
2662 (method git-fetch)
2663 (uri (git-reference
2664 (url "https://github.com/alpaker/Fill-Column-Indicator.git")
2665 (commit (string-append "v" version))))
2666 (file-name (git-file-name name version))
2667 (sha256
2668 (base32 "010kf8jsly74y7m6mmkn1h6y205kz23zphs50zgy2nag2p88rz9y"))))
2669 (build-system emacs-build-system)
2670 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2671 (synopsis "Graphically indicate the fill column")
2672 (description
2673 "Fill-column-indicator graphically indicates the location of the fill
2674 column by drawing a thin line down the length of the editing window.")
2675 (license license:gpl3+)))
2676
2677 (define-public emacs-grep-a-lot
2678 (package
2679 (name "emacs-grep-a-lot")
2680 (version "1.0.7")
2681 (source
2682 (origin
2683 (method git-fetch)
2684 (uri (git-reference
2685 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2686 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2687 (file-name (git-file-name name version))
2688 (sha256
2689 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2690 (build-system emacs-build-system)
2691 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2692 (synopsis "Enables multiple grep buffers in Emacs")
2693 (description
2694 "This Emacs package allows managing multiple grep buffers.")
2695 (license license:gpl3+)))
2696
2697 (define-public emacs-inf-ruby
2698 (package
2699 (name "emacs-inf-ruby")
2700 (version "2.5.2")
2701 (source
2702 (origin
2703 (method git-fetch)
2704 (uri (git-reference
2705 (url "https://github.com/nonsequitur/inf-ruby.git")
2706 (commit version)))
2707 (file-name (git-file-name name version))
2708 (sha256
2709 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
2710 (build-system emacs-build-system)
2711 (home-page "https://github.com/nonsequitur/inf-ruby")
2712 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2713 (description
2714 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2715 for easy interaction with a ruby subprocess. Features include support for
2716 detecting specific uses of Ruby, e.g. when using rails, and using a
2717 appropriate console.")
2718 (license license:gpl3+)))
2719
2720 (define-public emacs-znc
2721 (package
2722 (name "emacs-znc")
2723 (version "0.0.2")
2724 (source
2725 (origin
2726 (method url-fetch)
2727 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2728 version ".el"))
2729 (sha256
2730 (base32
2731 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2732 (build-system emacs-build-system)
2733 (home-page "https://github.com/sshirokov/ZNC.el")
2734 (synopsis "Make ERC and ZNC get along better")
2735 (description
2736 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2737 IRC bouncer with ERC.")
2738 (license license:expat)))
2739
2740 (define-public emacs-shut-up
2741 (package
2742 (name "emacs-shut-up")
2743 (version "0.3.2")
2744 (source
2745 (origin
2746 (method git-fetch)
2747 (uri (git-reference
2748 (url "https://github.com/cask/shut-up.git")
2749 (commit (string-append "v" version))))
2750 (file-name (git-file-name name version))
2751 (sha256
2752 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
2753 (build-system emacs-build-system)
2754 (home-page "https://github.com/cask/shut-up")
2755 (synopsis "Silence Emacs")
2756 (description "This package silences most output of Emacs when running an
2757 Emacs shell script.")
2758 (license license:expat)))
2759
2760 (define-public emacs-undercover
2761 (package
2762 (name "emacs-undercover")
2763 (version "0.6.0")
2764 (source
2765 (origin
2766 (method git-fetch)
2767 (uri (git-reference
2768 (url "https://github.com/sviridov/undercover.el.git")
2769 (commit (string-append "v" version))))
2770 (file-name (git-file-name name version))
2771 (sha256
2772 (base32 "06qcvbp5rd0kh3ibrxj5p6r578lwsrgd7yj5c6slwmkdmna2fj33"))))
2773 (build-system emacs-build-system)
2774 (propagated-inputs
2775 `(("emacs-dash" ,emacs-dash)
2776 ("emacs-shut-up" ,emacs-shut-up)))
2777 (home-page "https://github.com/sviridov/undercover.el")
2778 (synopsis "Test coverage library for Emacs Lisp")
2779 (description
2780 "Undercover is a test coverage library for software written in Emacs
2781 Lisp.")
2782 (license license:expat)))
2783
2784 (define-public emacs-paren-face
2785 (package
2786 (name "emacs-paren-face")
2787 (version "1.0.0")
2788 (source
2789 (origin
2790 (method git-fetch)
2791 (uri (git-reference
2792 (url "https://github.com/tarsius/paren-face.git")
2793 (commit version)))
2794 (file-name (git-file-name name version))
2795 (sha256
2796 (base32 "0f128gqn170s6hl62n44i9asais75ns1mpvb4l8vzy1sc0v16c0k"))))
2797 (build-system emacs-build-system)
2798 (home-page "https://github.com/tarsius/paren-face")
2799 (synopsis "Face for parentheses in lisp modes")
2800 (description
2801 "This library defines a face named @code{parenthesis} used just for
2802 parentheses. The intended purpose of this face is to make parentheses less
2803 visible in Lisp code by dimming them. Lispers probably don't need to be
2804 constantly made aware of the existence of the parentheses. Dimming them might
2805 be even more useful for people new to lisp who have not yet learned to
2806 subconsciously blend out the parentheses.")
2807 (license license:gpl3+)))
2808
2809 (define-public emacs-page-break-lines
2810 (package
2811 (name "emacs-page-break-lines")
2812 (version "0.11")
2813 (source
2814 (origin
2815 (method git-fetch)
2816 (uri (git-reference
2817 (url "https://github.com/purcell/page-break-lines.git")
2818 (commit version)))
2819 (file-name (git-file-name name version))
2820 (sha256
2821 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
2822 (build-system emacs-build-system)
2823 (home-page "https://github.com/purcell/page-break-lines")
2824 (synopsis "Display page breaks as tidy horizontal lines")
2825 (description
2826 "This library provides a global mode which displays form feed characters
2827 as horizontal rules.")
2828 (license license:gpl3+)))
2829
2830 (define-public emacs-simple-httpd
2831 (package
2832 (name "emacs-simple-httpd")
2833 (version "1.5.1")
2834 (source
2835 (origin
2836 (method git-fetch)
2837 (uri (git-reference
2838 (url "https://github.com/skeeto/emacs-web-server.git")
2839 (commit version)))
2840 (file-name (git-file-name name version))
2841 (sha256
2842 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
2843 (build-system emacs-build-system)
2844 (home-page "https://github.com/skeeto/emacs-web-server")
2845 (synopsis "HTTP server in pure Emacs Lisp")
2846 (description
2847 "This package provides a simple HTTP server written in Emacs Lisp to
2848 serve files and directory listings.")
2849 (license license:unlicense)))
2850
2851 (define-public emacs-skewer-mode
2852 (package
2853 (name "emacs-skewer-mode")
2854 (version "1.8.0")
2855 (source
2856 (origin
2857 (method git-fetch)
2858 (uri (git-reference
2859 (url "https://github.com/skeeto/skewer-mode.git")
2860 (commit version)))
2861 (file-name (git-file-name name version))
2862 (sha256
2863 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
2864 (build-system emacs-build-system)
2865 (propagated-inputs
2866 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2867 ("emacs-js2-mode" ,emacs-js2-mode)))
2868 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
2869 (home-page "https://github.com/skeeto/skewer-mode")
2870 (synopsis "Live web development in Emacs")
2871 (description
2872 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2873 a web browser. Expressions are sent on-the-fly from an editing buffer to be
2874 evaluated in the browser, just like Emacs does with an inferior Lisp process
2875 in Lisp modes.")
2876 (license license:unlicense)))
2877
2878 (define-public emacs-litable
2879 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
2880 (package
2881 (name "emacs-litable")
2882 (version (git-version "0.1" "0" commit))
2883 (source (origin
2884 (method git-fetch)
2885 (uri (git-reference
2886 (url "https://github.com/Fuco1/litable.git")
2887 (commit commit)))
2888 (file-name (git-file-name name version))
2889 (sha256
2890 (base32
2891 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
2892 (build-system emacs-build-system)
2893 (propagated-inputs
2894 `(("emacs-dash" ,emacs-dash)))
2895 (home-page "https://github.com/Fuco1/litable/")
2896 (synopsis "Dynamic evaluation replacement with Emacs")
2897 (description "This package provides dynamic evaluation in Emacs.")
2898 (license license:gpl3+))))
2899
2900 (define-public emacs-string-inflection
2901 (package
2902 (name "emacs-string-inflection")
2903 (version "1.0.6")
2904 (source (origin
2905 (method git-fetch)
2906 (uri (git-reference
2907 (url "https://github.com/akicho8/string-inflection")
2908 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2909 (file-name (git-file-name name version))
2910 (sha256
2911 (base32
2912 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2913 (build-system emacs-build-system)
2914 (native-inputs
2915 `(("ert-runner" ,emacs-ert-runner)))
2916 (arguments
2917 `(#:tests? #t
2918 #:test-command '("ert-runner")))
2919 (home-page "https://github.com/akicho8/string-inflection")
2920 (synopsis "Convert symbol names between different naming conventions")
2921 (description
2922 "This Emacs package provides convenient methods for manipulating the
2923 naming style of a symbol. It supports different naming conventions such as:
2924
2925 @enumerate
2926 @item camel case
2927 @item Pascal case
2928 @item all upper case
2929 @item lower case separated by underscore
2930 @item etc...
2931 @end enumerate\n")
2932 (license license:gpl2+)))
2933
2934 (define-public emacs-stripe-buffer
2935 (package
2936 (name "emacs-stripe-buffer")
2937 (version "0.2.5")
2938 (source
2939 (origin
2940 (method git-fetch)
2941 (uri (git-reference
2942 (url "https://github.com/sabof/stripe-buffer.git")
2943 (commit version)))
2944 (file-name (git-file-name name version))
2945 (sha256
2946 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
2947 (build-system emacs-build-system)
2948 (home-page "https://github.com/sabof/stripe-buffer/")
2949 (synopsis "Add stripes to list buffers")
2950 (description
2951 "This Emacs package adds faces to add stripes to list buffers and org
2952 tables.")
2953 (license license:gpl2+)))
2954
2955 (define-public emacs-org-rich-yank
2956 (package
2957 (name "emacs-org-rich-yank")
2958 (version "0.2.1")
2959 (source
2960 (origin
2961 (method git-fetch)
2962 (uri (git-reference
2963 (url "https://github.com/unhammer/org-rich-yank.git")
2964 (commit (string-append "v" version))))
2965 (file-name (git-file-name name version))
2966 (sha256
2967 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
2968 (build-system emacs-build-system)
2969 (home-page "https://github.com/unhammer/org-rich-yank")
2970 (synopsis "Automatically surround source code pasted into Org with
2971 @code{#+BEGIN_SRC} blocks")
2972 (description
2973 "This package provides a utility function for Org buffers that makes a
2974 @code{_SRC} block with the appropriate language annotation for code that has
2975 been copied from an Emacs major mode.")
2976 (license license:gpl2+)))
2977
2978 (define-public emacs-ob-restclient
2979 (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
2980 (package
2981 (name "emacs-ob-restclient")
2982 (version (git-version "0.02" "1" commit))
2983 (source
2984 (origin
2985 (method git-fetch)
2986 (uri (git-reference
2987 (url "https://github.com/alf/ob-restclient.el.git")
2988 (commit commit)))
2989 (file-name (git-file-name name version))
2990 (sha256
2991 (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
2992 (propagated-inputs
2993 `(("emacs-restclient" ,emacs-restclient)))
2994 (build-system emacs-build-system)
2995 (home-page "https://github.com/alf/ob-restclient.el")
2996 (synopsis "Org-babel functionality for @code{restclient-mode}")
2997 (description
2998 "This package integrates @code{restclient-mode} with Org.")
2999 (license license:gpl3+))))
3000
3001 (define-public emacs-org-now
3002 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3003 (package
3004 (name "emacs-org-now")
3005 (version (git-version "0.1-pre" "1" commit))
3006 (source
3007 (origin
3008 (method git-fetch)
3009 (uri (git-reference
3010 (url "https://github.com/alphapapa/org-now.git")
3011 (commit commit)))
3012 (file-name (git-file-name name version))
3013 (sha256
3014 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3015 (propagated-inputs
3016 `(("emacs-dash" ,emacs-dash)))
3017 (build-system emacs-build-system)
3018 (home-page "https://github.com/alphapapa/org-now")
3019 (synopsis "Show current Org tasks in a sidebar")
3020 (description
3021 "This package provides commands to show Org headings in a sidebar
3022 window while working on them. After defining one heading as the \"now\"
3023 heading, other headings can be refiled to it with one command, and back to
3024 their original location with another.")
3025 (license license:gpl3+))))
3026
3027 (define-public emacs-rich-minority
3028 (package
3029 (name "emacs-rich-minority")
3030 (version "1.0.1")
3031 (source
3032 (origin
3033 (method git-fetch)
3034 (uri (git-reference
3035 (url "https://github.com/Malabarba/rich-minority.git")
3036 (commit version)))
3037 (file-name (git-file-name name version))
3038 (sha256
3039 (base32 "11hwf9y5ax207w6rwrsmi3pmn7pn7ap6iys0z8hni2f5zzxjrmx3"))))
3040 (build-system emacs-build-system)
3041 (home-page "https://github.com/Malabarba/rich-minority")
3042 (synopsis "Clean-up and beautify the list of minor modes")
3043 (description
3044 "This Emacs package hides and/or highlights minor modes in the
3045 mode-line.")
3046 (license license:gpl2+)))
3047
3048 (define-public emacs-robe
3049 (package
3050 (name "emacs-robe")
3051 (version "0.8.2")
3052 (source
3053 (origin
3054 (method git-fetch)
3055 (uri (git-reference
3056 (url "https://github.com/dgutov/robe.git")
3057 (commit version)))
3058 (file-name (git-file-name name version))
3059 (sha256
3060 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3061 (build-system emacs-build-system)
3062 (arguments
3063 '(#:include (cons "^lib\\/" %default-include)))
3064 (propagated-inputs
3065 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3066 (home-page "https://github.com/dgutov/robe")
3067 (synopsis "Ruby code assistance tool for Emacs")
3068 (description
3069 "Robe can provide information on loaded classes and modules in Ruby code,
3070 as well as where methods are defined. This allows the user to jump to method
3071 definitions, modules and classes, display method documentation and provide
3072 method and constant name completion.")
3073 (license license:gpl3+)))
3074
3075 (define-public emacs-robot-mode
3076 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
3077 (revision "1"))
3078 (package
3079 (name "emacs-robot-mode")
3080 (version (git-version "0.0.0" revision commit))
3081 (source (origin
3082 (method git-fetch)
3083 (uri (git-reference
3084 ;; A better maintained fork of robot-mode.
3085 (url "https://github.com/jvalkeejarvi/robot-mode.git")
3086 (commit commit)))
3087 (file-name (git-file-name name version))
3088 (sha256
3089 (base32
3090 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
3091 (build-system emacs-build-system)
3092 (propagated-inputs `(("emacs-s" ,emacs-s)))
3093 (home-page "https://github.com/jvalkeejarvi/robot-mode")
3094 (synopsis "Emacs mode for Robot Framework")
3095 (description "This major mode facilitates editing Robot Framework source
3096 files with features such as syntax highlighting, comments, finding keywords,
3097 completing keywords and smart indentation.")
3098 (license license:gpl3+))))
3099
3100 (define-public emacs-rspec
3101 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
3102 (revision "1"))
3103 (package
3104 (name "emacs-rspec")
3105 (version (git-version "1.11" revision commit))
3106 (source
3107 (origin
3108 (method git-fetch)
3109 (uri (git-reference
3110 (url "https://github.com/pezra/rspec-mode.git")
3111 (commit commit)))
3112 (file-name (git-file-name name version))
3113 (sha256
3114 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
3115 (build-system emacs-build-system)
3116 (arguments
3117 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
3118 #:tests? #t
3119 #:test-command '("make" "test")))
3120 (home-page "https://github.com/pezra/rspec-mode")
3121 (synopsis "Provides a rspec mode for working with RSpec")
3122 (description
3123 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
3124 verify the spec associated with the current buffer, or entire project, as well
3125 as moving between the spec files, and corresponding code files.
3126
3127 Also included are keybindings for spec files and Dired buffers, as well as
3128 snippets for yasnippet.")
3129 (license license:gpl3+))))
3130
3131 (define-public emacs-smart-mode-line
3132 (package
3133 (name "emacs-smart-mode-line")
3134 (version "2.13")
3135 (source
3136 (origin
3137 (method git-fetch)
3138 (uri (git-reference
3139 (url "https://github.com/Malabarba/smart-mode-line.git")
3140 (commit version)))
3141 (file-name (git-file-name name version))
3142 (sha256
3143 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
3144 (build-system emacs-build-system)
3145 (propagated-inputs
3146 `(("emacs-rich-minority" ,emacs-rich-minority)))
3147 (home-page "https://github.com/Malabarba/smart-mode-line")
3148 (synopsis "Color-coded smart mode-line")
3149 (description
3150 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
3151 read from small to large monitors by using colors, a prefix feature, and smart
3152 truncation.")
3153 (license license:gpl2+)))
3154
3155 (define-public emacs-sr-speedbar
3156 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
3157 (revision "0"))
3158 (package
3159 (name "emacs-sr-speedbar")
3160 (version (git-version "20161025" revision commit))
3161 (source
3162 (origin
3163 (method git-fetch)
3164 (uri (git-reference
3165 (url "https://github.com/emacsorphanage/sr-speedbar.git")
3166 (commit commit)))
3167 (file-name (git-file-name name version))
3168 (sha256
3169 (base32
3170 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
3171 (build-system emacs-build-system)
3172 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
3173 (synopsis "Same frame Emacs @code{speedbar}")
3174 (description
3175 "This Emacs package allows you to show @code{M-x speedbar} in the
3176 same frame (in an extra window). You can customize the initial width of
3177 the speedbar window.")
3178 (license license:gpl3+))))
3179
3180 (define-public emacs-shell-switcher
3181 (package
3182 (name "emacs-shell-switcher")
3183 (version "1.0.1")
3184 (source
3185 (origin
3186 (method git-fetch)
3187 (uri (git-reference
3188 (url "https://github.com/DamienCassou/shell-switcher.git")
3189 (commit (string-append "v" version))))
3190 (file-name (git-file-name name version))
3191 (sha256
3192 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
3193 (build-system emacs-build-system)
3194 (home-page "https://github.com/DamienCassou/shell-switcher")
3195 (synopsis "Provide fast switching between shell buffers")
3196 (description
3197 "This package provides commands to quickly switch between shell buffers.")
3198 (license license:gpl3+)))
3199
3200 (define-public emacs-names
3201 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
3202 (version "20151201.0")
3203 (revision "8"))
3204 (package
3205 (name "emacs-names")
3206 (version (git-version version revision commit))
3207 (source
3208 (origin
3209 (method git-fetch)
3210 (uri (git-reference
3211 (url "https://github.com/Malabarba/names")
3212 (commit commit)))
3213 (file-name (git-file-name name version))
3214 (sha256
3215 (base32
3216 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
3217 (build-system emacs-build-system)
3218 (home-page "https://github.com/Malabarba/names/")
3219 (synopsis "Namespace implementation for Emacs Lisp")
3220 (description
3221 "This package provides a macro that writes your namespaces for you.")
3222 (license license:gpl3+))))
3223
3224 (define-public emacs-evil-textobj-syntax
3225 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
3226 (version "0")
3227 (revision "1"))
3228 (package
3229 (name "emacs-evil-textobj-syntax")
3230 (version (git-version version revision commit))
3231 (source
3232 (origin
3233 (method git-fetch)
3234 (uri (git-reference
3235 (url "https://github.com/laishulu/evil-textobj-syntax/")
3236 (commit commit)))
3237 (file-name (git-file-name name version))
3238 (sha256
3239 (base32
3240 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
3241 (build-system emacs-build-system)
3242 (propagated-inputs `(("emacs-evil" ,emacs-evil)
3243 ("emacs-names" ,emacs-names)))
3244 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
3245 (synopsis "Text objects based on syntax highlighting")
3246 (description
3247 "This package provides text objects for @code{evil-mode} with
3248 boundaries defined by syntax highlighting.")
3249 (license license:gpl3+))))
3250
3251 (define-public emacs-flycheck-flow
3252 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
3253 (version "1.1")
3254 (revision "1"))
3255 (package
3256 (name "emacs-flycheck-flow")
3257 (version (git-version version revision commit))
3258 (source
3259 (origin
3260 (method git-fetch)
3261 (uri (git-reference
3262 (url "https://github.com/lbolla/emacs-flycheck-flow")
3263 (commit commit)))
3264 (file-name (git-file-name name version))
3265 (sha256
3266 (base32
3267 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
3268 (build-system emacs-build-system)
3269 (propagated-inputs
3270 `(("emacs-flycheck" ,emacs-flycheck)))
3271 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
3272 (synopsis "Flow support for @code{flycheck-mode}")
3273 (description
3274 "This package allows @code{flycheck-mode} to provide syntax-checking
3275 for Flow files.")
3276 (license license:gpl3+))))
3277
3278 (define-public emacs-flycheck-grammalecte
3279 (package
3280 (name "emacs-flycheck-grammalecte")
3281 (version "0.9")
3282 (source (origin
3283 (method url-fetch)
3284 (uri (string-append "https://git.deparis.io/"
3285 "flycheck-grammalecte/snapshot/"
3286 "flycheck-grammalecte-" version ".tar.xz"))
3287 (sha256
3288 (base32
3289 "0wjm9xyra870pci4bcrbnc9x66x18mi7iz08rkxa4clxv28xzryb"))))
3290 (build-system emacs-build-system)
3291 (arguments
3292 `(#:include '("\\.(el|py)$")
3293 #:phases
3294 (modify-phases %standard-phases
3295 (add-after 'unpack 'fix-python
3296 ;; Hardcode python3 executable in the Emacs library.
3297 (lambda* (#:key inputs #:allow-other-keys)
3298 (let ((python3 (string-append (assoc-ref inputs "python")
3299 "/bin/python3")))
3300 (substitute* "flycheck-grammalecte.el"
3301 (("python3") python3))
3302 #t)))
3303 (add-after 'install 'link-to-grammalecte
3304 ;; The package expects grammalecte to be in a sub-directory.
3305 ;; Symlink it there from the store.
3306 (lambda* (#:key inputs outputs #:allow-other-keys)
3307 (let ((grammalecte (assoc-ref inputs "grammalecte"))
3308 (out (assoc-ref outputs "out"))
3309 (version ,(version-major+minor (package-version python))))
3310 (with-directory-excursion
3311 (string-append out
3312 "/share/emacs/site-lisp/guix.d/"
3313 "flycheck-grammalecte-" ,version)
3314 (symlink (string-append grammalecte "/lib/"
3315 "python" version "/site-packages/"
3316 "grammalecte")
3317 "grammalecte"))
3318 #t))))))
3319 (inputs
3320 `(("grammalecte" ,grammalecte)
3321 ("python" ,python)))
3322 (propagated-inputs
3323 `(("emacs-flycheck" ,emacs-flycheck)))
3324 (home-page "https://git.deparis.io/flycheck-grammalecte/")
3325 (synopsis "Integrate Grammalecte with Flycheck")
3326 (description "Integrate the French grammar and typography checker
3327 Grammalecte with Flycheck to automatically look for mistakes in your writings.
3328 It also provides an easy way to find synonyms and antonyms for a given
3329 word (to avoid repetitions for example).")
3330 (license license:gpl3+)))
3331
3332 (define-public emacs-elisp-demos
3333 (package
3334 (name "emacs-elisp-demos")
3335 (version "2019.08.16")
3336 (source
3337 (origin
3338 (method git-fetch)
3339 (uri (git-reference
3340 (url "https://github.com/xuchunyang/elisp-demos")
3341 (commit version)))
3342 (file-name (git-file-name name version))
3343 (sha256
3344 (base32
3345 "0lybadq66bl4snkwph9i1y0qxln29wyfjn222ii3nfwany28cj66"))))
3346 (build-system emacs-build-system)
3347 (arguments
3348 `(#:include '("\\.el$" "\\.org$")
3349 #:tests? #t
3350 #:test-command '("make" "test")))
3351 (home-page "https://github.com/xuchunyang/elisp-demos/")
3352 (synopsis "Enhance @code{*Help*} buffers with additional examples")
3353 (description
3354 "This package injects example uses of Elisp functions into their
3355 respective @code{*Help*} buffers.")
3356 (license license:gpl3+)))
3357
3358 (define-public emacs-docker-compose-mode
3359 (package
3360 (name "emacs-docker-compose-mode")
3361 (version "1.1.0")
3362 (source
3363 (origin
3364 (method git-fetch)
3365 (uri (git-reference
3366 (url "https://github.com/meqif/docker-compose-mode")
3367 (commit version)))
3368 (file-name (git-file-name name version))
3369 (sha256
3370 (base32
3371 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
3372 (build-system emacs-build-system)
3373 (propagated-inputs
3374 `(("emacs-dash" ,emacs-dash)
3375 ("emacs-f" ,emacs-f)))
3376 (home-page "https://github.com/meqif/docker-compose-mode/")
3377 (synopsis "Major mode for editing @file{docker-compose} files")
3378 (description
3379 "This is a major mode for @file{docker-compose} files that provides
3380 completion of relevant keywords.")
3381 (license license:expat)))
3382
3383 (define-public emacs-sudo-edit
3384 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
3385 (revision "6"))
3386 (package
3387 (name "emacs-sudo-edit")
3388 (version (git-version "0.1.0" revision commit))
3389 (source
3390 (origin
3391 (method git-fetch)
3392 (uri (git-reference
3393 (url "https://github.com/nflath/sudo-edit")
3394 (commit commit)))
3395 (file-name (git-file-name name version))
3396 (sha256
3397 (base32
3398 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
3399 (build-system emacs-build-system)
3400 (native-inputs
3401 `(("emacs-undercover" ,emacs-undercover)))
3402 (arguments
3403 `(#:phases
3404 (modify-phases %standard-phases
3405 (add-before 'check 'fix-makefile
3406 (lambda _
3407 (substitute* "Makefile"
3408 (("\\$\\(CASK\\) exec ") ""))
3409 #t)))
3410 #:tests? #t
3411 #:test-command '("make" "test")))
3412 (home-page "https://github.com/nflath/sudo-edit/")
3413 (synopsis "Open files as another user")
3414 (description
3415 "This package allows editing files as another user, including the root
3416 user.")
3417 (license license:gpl3+))))
3418
3419 (define-public emacs-miniedit
3420 (package
3421 (name "emacs-miniedit")
3422 (version "2.0")
3423 (source
3424 (origin
3425 (method git-fetch)
3426 (uri (git-reference
3427 (url "https://github.com/emacsmirror/miniedit")
3428 (commit version)))
3429 (file-name (git-file-name name version))
3430 (sha256
3431 (base32
3432 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
3433 (build-system emacs-build-system)
3434 (home-page "https://github.com/emacsmirror/miniedit/")
3435 (synopsis "Enhanced editing for minibuffer fields")
3436 (description
3437 "This package provides a function that can be called from the
3438 minibuffer to enable editing the minibuffer input in another buffer with
3439 @code{text-mode} enabled.")
3440 (license license:gpl2+)))
3441
3442 (define-public emacs-ob-ipython
3443 (package
3444 (name "emacs-ob-ipython")
3445 (version "20150704.8807064693")
3446 (source (origin
3447 (method git-fetch)
3448 (uri (git-reference
3449 (commit "880706469338ab59b5bb7dbe8460016f89755364")
3450 (url "https://github.com/gregsexton/ob-ipython.git")))
3451 (file-name (git-file-name name version))
3452 (sha256
3453 (base32
3454 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
3455 (build-system emacs-build-system)
3456 (propagated-inputs
3457 `(("emacs-f" ,emacs-f)))
3458 (home-page "http://www.gregsexton.org")
3459 (synopsis "Org-Babel functions for IPython evaluation")
3460 (description "This package adds support to Org-Babel for evaluating Python
3461 source code using IPython.")
3462 (license license:gpl3+)))
3463
3464 (define-public emacs-debbugs
3465 (package
3466 (name "emacs-debbugs")
3467 (version "0.20")
3468 (source (origin
3469 (method url-fetch)
3470 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
3471 version ".tar"))
3472 (sha256
3473 (base32
3474 "03mmb1zvbqlsznl5agq8k3xrlcz310vnsa2zn0y8myanm4ra51zm"))))
3475 (build-system emacs-build-system)
3476 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
3477 (propagated-inputs
3478 `(("emacs-async" ,emacs-async)))
3479 (home-page "https://elpa.gnu.org/packages/debbugs.html")
3480 (synopsis "Access the Debbugs bug tracker in Emacs")
3481 (description
3482 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
3483 Tracker} from within Emacs.
3484
3485 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
3486 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
3487 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
3488 @code{M-x debbugs-org} and related commands.
3489
3490 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
3491 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
3492 (license license:gpl3+)))
3493
3494 (define-public emacs-ert-expectations
3495 (package
3496 (name "emacs-ert-expectations")
3497 (version "0.2")
3498 (source
3499 (origin
3500 (method url-fetch)
3501 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
3502 (sha256
3503 (base32
3504 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
3505 (build-system emacs-build-system)
3506 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
3507 (synopsis "Simple unit test framework for Emacs Lisp")
3508 (description "@code{emacs-ert-expectations} is a simple unit test
3509 framework for Emacs Lisp to be used with @code{ert}.")
3510 (license license:gpl3+)))
3511
3512 (define-public emacs-deferred
3513 (package
3514 (name "emacs-deferred")
3515 (version "0.5.1")
3516 (home-page "https://github.com/kiwanami/emacs-deferred")
3517 (source (origin
3518 (method git-fetch)
3519 (uri (git-reference
3520 (url home-page)
3521 (commit (string-append "v" version))))
3522 (file-name (git-file-name name version))
3523 (sha256
3524 (base32
3525 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
3526 (build-system emacs-build-system)
3527 (arguments
3528 `(#:phases
3529 (modify-phases %standard-phases
3530 (add-after 'unpack 'set-shell
3531 ;; Setting the SHELL environment variable is required for the tests
3532 ;; to find sh.
3533 (lambda _
3534 (setenv "SHELL" (which "sh"))
3535 #t))
3536 (add-before 'check 'fix-makefile
3537 (lambda _
3538 (substitute* "Makefile"
3539 (("\\$\\(CASK\\) exec ") ""))
3540 #t)))
3541 #:tests? #t
3542 #:test-command '("make" "test")))
3543 (native-inputs
3544 `(("emacs-ert-expectations" ,emacs-ert-expectations)
3545 ("emacs-undercover" ,emacs-undercover)
3546 ("ert-runner" ,emacs-ert-runner)))
3547 (synopsis "Simple asynchronous functions for Emacs Lisp")
3548 (description
3549 "The @code{deferred.el} library provides support for asynchronous tasks.
3550 The API is almost the same as that of
3551 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
3552 for asynchronous tasks.")
3553 (license license:gpl3+)))
3554
3555 (define-public emacs-butler
3556 (package
3557 (name "emacs-butler")
3558 (version "0.2.4")
3559 (home-page "https://github.com/AshtonKem/Butler")
3560 (source (origin
3561 (method git-fetch)
3562 (uri (git-reference
3563 (url home-page)
3564 (commit version)))
3565 (file-name (git-file-name name version))
3566 (sha256
3567 (base32
3568 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
3569 (build-system emacs-build-system)
3570 (propagated-inputs
3571 `(("emacs-deferred" ,emacs-deferred)))
3572 (synopsis "Emacs client for Jenkins")
3573 (description
3574 "Butler provides an interface to connect to Jenkins continuous
3575 integration servers. Users can specify a list of server in the
3576 @code{butler-server-list} variable and then use @code{M-x butler-status} to
3577 view the build status of those servers' build jobs, and possibly to trigger
3578 build jobs.")
3579 (license license:gpl3+)))
3580
3581 (define-public emacs-company
3582 (package
3583 (name "emacs-company")
3584 (version "0.9.10")
3585 (source
3586 (origin
3587 (method git-fetch)
3588 (uri (git-reference
3589 (url "https://github.com/company-mode/company-mode.git")
3590 (commit version)))
3591 (file-name (git-file-name name version))
3592 (sha256
3593 (base32 "0shmv48bq9l5xm60dwx9lqyq6b39y3d7qjxdlah7dpipv5vhra42"))))
3594 (build-system emacs-build-system)
3595 (arguments
3596 `(#:phases
3597 (modify-phases %standard-phases
3598 (add-before 'check 'fix-bin-dir
3599 (lambda _
3600 ;; The company-files-candidates-normal-root test looks
3601 ;; for the /bin directory, but the build environment has
3602 ;; no /bin directory. Modify the test to look for the
3603 ;; /tmp directory.
3604 (substitute* "test/files-tests.el"
3605 (("/bin/") "/tmp/"))
3606 #t)))
3607 #:tests? #t
3608 #:test-command '("make" "test-batch")))
3609 (home-page "http://company-mode.github.io/")
3610 (synopsis "Modular text completion framework")
3611 (description
3612 "Company is a modular completion mechanism. Modules for retrieving
3613 completion candidates are called back-ends, modules for displaying them are
3614 front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
3615 These are distributed in separate files and can be used individually.")
3616 (license license:gpl3+)))
3617
3618 (define-public emacs-irony-mode
3619 (package
3620 (name "emacs-irony-mode")
3621 (version "1.2.0")
3622 (home-page "https://github.com/Sarcasm/irony-mode")
3623 (source (origin
3624 (method git-fetch)
3625 (uri (git-reference
3626 (url (string-append home-page ".git"))
3627 (commit (string-append "v" version))))
3628 (file-name (git-file-name name version))
3629 (sha256
3630 (base32
3631 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))))
3632 (build-system emacs-build-system)
3633 (inputs `(("server" ,emacs-irony-mode-server)))
3634 (arguments `(#:phases
3635 (modify-phases %standard-phases
3636 (add-after 'unpack 'configure
3637 (lambda* (#:key inputs #:allow-other-keys)
3638 (chmod "irony.el" #o644)
3639 (emacs-substitute-variables "irony.el"
3640 ("irony-server-install-prefix"
3641 (assoc-ref inputs "server")))
3642 #t)))))
3643 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
3644 (description "Irony-mode provides Clang-assisted syntax checking and
3645 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
3646 provide syntax checking and autocompletion on compiler level which is very
3647 resistant against false positives. It also integrates well with other
3648 packages like @code{eldoc-mode} and especially @code{company-mode} as
3649 described on the homepage.")
3650 (license license:gpl3+)))
3651
3652 (define-public emacs-irony-mode-server
3653 (package (inherit emacs-irony-mode)
3654 (name "emacs-irony-mode-server")
3655 (inputs
3656 `(("clang" ,clang)))
3657 (arguments
3658 `(#:phases
3659 (modify-phases %standard-phases
3660 (replace 'configure
3661 (lambda* (#:key outputs #:allow-other-keys)
3662 (let ((out (assoc-ref outputs "out")))
3663 (invoke "cmake"
3664 "server"
3665 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
3666 (build-system cmake-build-system)
3667 (synopsis "Server for the Emacs @dfn{irony mode}")))
3668
3669 (define-public emacs-company-irony
3670 (package
3671 (name "emacs-company-irony")
3672 (version "1.1.0")
3673 (source (origin
3674 (method git-fetch)
3675 (uri (git-reference
3676 (url "https://github.com/Sarcasm/company-irony.git")
3677 (commit (string-append "v" version))))
3678 (sha256 (base32
3679 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
3680 (file-name (git-file-name name version))))
3681 (build-system emacs-build-system)
3682 (inputs
3683 `(("emacs-irony-mode" ,emacs-irony-mode)
3684 ("emacs-company" ,emacs-company)))
3685 (synopsis "C++ completion backend for Company using irony-mode")
3686 (description "This backend for company-mode allows for C++ code completion
3687 with irony-mode using clang-tooling.")
3688 (home-page "https://github.com/Sarcasm/company-irony")
3689 (license license:gpl3+)))
3690
3691 (define-public emacs-flycheck-irony
3692 (package
3693 (name "emacs-flycheck-irony")
3694 (version "0.1.0")
3695 (source (origin
3696 (method git-fetch)
3697 (uri (git-reference
3698 (url "https://github.com/Sarcasm/flycheck-irony.git")
3699 (commit (string-append "v" version))))
3700 (file-name (git-file-name name version))
3701 (sha256
3702 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
3703 (build-system emacs-build-system)
3704 (inputs
3705 `(("irony-mode" ,emacs-irony-mode)
3706 ("flycheck-mode" ,emacs-flycheck)
3707 ("emacs-company" ,emacs-company)))
3708 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
3709 (description "This package provides a frontend for Flycheck that lets
3710 irony-mode do the syntax checking.")
3711 (home-page "https://github.com/Sarcasm/flycheck-irony")
3712 (license license:gpl3+)))
3713
3714 (define-public emacs-irony-eldoc
3715 (package
3716 (name "emacs-irony-eldoc")
3717 (version (package-version emacs-irony-mode))
3718 (source
3719 (origin
3720 (method git-fetch)
3721 (uri (git-reference
3722 (url "https://github.com/ikirill/irony-eldoc.git")
3723 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
3724 (file-name (git-file-name name version))
3725 (sha256
3726 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
3727 (build-system emacs-build-system)
3728 (inputs
3729 `(("irony-mode" ,emacs-irony-mode)))
3730 (synopsis "Eldoc integration for irony-mode")
3731 (description "Irony-eldoc is an eldoc extension that shows documentation
3732 for the current function or variable in the minibuffer.")
3733 (home-page "https://github.com/ikirill/irony-eldoc")
3734 (license license:gpl3+)))
3735
3736 (define-public emacs-company-quickhelp
3737 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
3738 ;; so we use the latest 2.2.0 commit instead
3739 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
3740 (revision "1"))
3741 (package
3742 (name "emacs-company-quickhelp")
3743 (version (git-version "2.2.0" revision commit))
3744 (source
3745 (origin
3746 (method git-fetch)
3747 (uri (git-reference
3748 (url "https://github.com/expez/company-quickhelp.git")
3749 (commit commit)))
3750 (file-name (git-file-name name version))
3751 (sha256
3752 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
3753 (build-system emacs-build-system)
3754 (propagated-inputs
3755 `(("emacs-pos-tip" ,emacs-pos-tip)
3756 ("emacs-company" ,emacs-company)))
3757 (home-page "https://github.com/expez/company-quickhelp")
3758 (synopsis "Popup documentation for completion candidates")
3759 (description "@code{company-quickhelp} shows documentation for the
3760 completion candidate when using the Company text completion framework.")
3761 (license license:gpl3+))))
3762
3763 (define-public emacs-math-symbol-lists
3764 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
3765 (revision "1"))
3766 (package
3767 (name "emacs-math-symbol-lists")
3768 (version (git-version "1.2.1" revision commit))
3769 (source
3770 (origin
3771 (method git-fetch)
3772 (uri (git-reference
3773 (url "https://github.com/vspinu/math-symbol-lists.git")
3774 (commit commit)))
3775 (file-name (git-file-name name version))
3776 (sha256
3777 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
3778 (build-system emacs-build-system)
3779 (home-page "https://github.com/vspinu/math-symbol-lists")
3780 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
3781 (description "This is a storage package used by completion engines like
3782 @code{company-math}.")
3783 (license license:gpl3+))))
3784
3785 (define-public emacs-company-math
3786 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
3787 (revision "1"))
3788 (package
3789 (name "emacs-company-math")
3790 (version (git-version "1.3" revision commit))
3791 (source
3792 (origin
3793 (method git-fetch)
3794 (uri (git-reference
3795 (url "https://github.com/vspinu/company-math.git")
3796 (commit commit)))
3797 (file-name (git-file-name name version))
3798 (sha256
3799 (base32
3800 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
3801 (build-system emacs-build-system)
3802 (propagated-inputs
3803 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
3804 ("emacs-company" ,emacs-company)))
3805 (home-page "https://github.com/vspinu/company-math")
3806 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
3807 (description "This package provides a backend for use with
3808 @code{company-mode} allowing for completion of common math symbols.")
3809 (license license:gpl3+))))
3810
3811 (define-public emacs-compdef
3812 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
3813 (revision "2"))
3814 (package
3815 (name "emacs-compdef")
3816 (version (git-version "0.2" revision commit))
3817 (source
3818 (origin
3819 (method git-fetch)
3820 (uri (git-reference
3821 (url "https://gitlab.com/jjzmajic/compdef.git")
3822 (commit commit)))
3823 (file-name (git-file-name name version))
3824 (sha256
3825 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
3826 (build-system emacs-build-system)
3827 (home-page "https://gitlab.com/jjzmajic/compdef")
3828 (synopsis "Set local completion backends")
3829 (description "This package provides a function to cleanly set local
3830 completion backends according to mode, and integrates with
3831 @code{use-package}.")
3832 (license license:gpl3+))))
3833
3834 (define-public emacs-handle
3835 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
3836 (revision "2"))
3837 (package
3838 (name "emacs-handle")
3839 (version (git-version "0.1" revision commit))
3840 (source
3841 (origin
3842 (method git-fetch)
3843 (uri (git-reference
3844 (url "https://gitlab.com/jjzmajic/handle.git")
3845 (commit commit)))
3846 (file-name (git-file-name name version))
3847 (sha256
3848 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
3849 (build-system emacs-build-system)
3850 (propagated-inputs
3851 `(("emacs-parent-mode" ,emacs-parent-mode)))
3852 (home-page "https://gitlab.com/jjzmajic/handle")
3853 (synopsis "Handle generic functions across related major modes")
3854 (description "This package provides generic functions that specialize on
3855 major modes and intended purpose rather than on arguments. Different
3856 callables for tasks like expression evaluation, definition-jumping, and more
3857 can now be grouped accordingly and tried in sequence until one of them
3858 succeeds.")
3859 (license license:gpl3+))))
3860
3861 (define-public emacs-nswbuff
3862 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
3863 (revision "1"))
3864 (package
3865 (name "emacs-nswbuff")
3866 (version (git-version "1.0" revision commit))
3867 (source
3868 (origin
3869 (method git-fetch)
3870 (uri (git-reference
3871 (url "https://github.com/joostkremers/nswbuff.git")
3872 (commit commit)))
3873 (file-name (git-file-name name version))
3874 (sha256
3875 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
3876 (build-system emacs-build-system)
3877 (home-page "https://github.com/joostkremers/nswbuff")
3878 (synopsis "Quickly switch between buffers")
3879 (description "This package allows for navigating between buffers within
3880 a customizable list.")
3881 (license license:gpl3+))))
3882
3883 (define-public emacs-phi-search
3884 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
3885 (revision "1"))
3886 (package
3887 (name "emacs-phi-search")
3888 (version (git-version "20160630" revision commit))
3889 (source
3890 (origin
3891 (method git-fetch)
3892 (uri (git-reference
3893 (url "https://github.com/zk-phi/phi-search.git")
3894 (commit commit)))
3895 (file-name (git-file-name name version))
3896 (sha256
3897 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
3898 (build-system emacs-build-system)
3899 (home-page "https://github.com/zk-phi/phi-search")
3900 (synopsis "Interactive search compatible with @code{multiple-cursors}")
3901 (description "This package can be used with @code{multiple-cursors} to
3902 provide an incremental search that moves all fake cursors in sync.")
3903 (license license:gpl2+))))
3904
3905 (define-public emacs-phi-search-mc
3906 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
3907 (revision "1"))
3908 (package
3909 (name "emacs-phi-search-mc")
3910 (version (git-version "2.2.1" revision commit))
3911 (source
3912 (origin
3913 (method git-fetch)
3914 (uri (git-reference
3915 (url "https://github.com/knu/phi-search-mc.el.git")
3916 (commit commit)))
3917 (file-name (git-file-name name version))
3918 (sha256
3919 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
3920 (build-system emacs-build-system)
3921 (propagated-inputs
3922 `(("emacs-phi-search" ,emacs-phi-search)
3923 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
3924 (home-page "https://github.com/knu/phi-search-mc.el")
3925 (synopsis "Extend @code{phi-search} with additional
3926 @code{multiple-cursors} functionality")
3927 (description "This package provides further integration between
3928 @code{multiple-cursors} and @code{phi-search}, a package that allows for
3929 interactive searches to move multiple fake cursors.")
3930 (license license:bsd-2))))
3931
3932 (define-public emacs-multiple-cursors
3933 (package
3934 (name "emacs-multiple-cursors")
3935 (version "1.4.0")
3936 (source
3937 (origin
3938 (method git-fetch)
3939 (uri (git-reference
3940 (url "https://github.com/magnars/multiple-cursors.el.git")
3941 (commit version)))
3942 (file-name (git-file-name name version))
3943 (sha256
3944 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
3945 (build-system emacs-build-system)
3946 (home-page "https://github.com/magnars/multiple-cursors.el")
3947 (synopsis "Multiple cursors for Emacs")
3948 (description
3949 "This package adds support to Emacs for editing text with multiple
3950 simultaneous cursors.")
3951 (license license:gpl3+)))
3952
3953 (define-public emacs-mc-extras
3954 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
3955 (revision "1"))
3956 (package
3957 (name "emacs-mc-extras")
3958 (version (git-version "1.2.4" revision commit))
3959 (source
3960 (origin
3961 (method git-fetch)
3962 (uri (git-reference
3963 (url "https://github.com/knu/mc-extras.el.git")
3964 (commit commit)))
3965 (file-name (git-file-name name version))
3966 (sha256
3967 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
3968 (build-system emacs-build-system)
3969 (propagated-inputs
3970 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
3971 (home-page "https://github.com/knu/mc-extras.el")
3972 (synopsis "Extra functions for manipulating multiple cursors")
3973 (description
3974 "This package provides additional functions for
3975 @code{multiple-cursors}, including functions for marking s-expressions,
3976 comparing characters, removing cursors, and more.")
3977 (license license:bsd-2))))
3978
3979 (define-public emacs-typo
3980 (package
3981 (name "emacs-typo")
3982 (version "1.1")
3983 (home-page "https://github.com/jorgenschaefer/typoel")
3984 (source (origin
3985 (method git-fetch)
3986 (uri (git-reference
3987 (url home-page)
3988 (commit (string-append "v" version))))
3989 (file-name (git-file-name name version))
3990 (sha256
3991 (base32
3992 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
3993 (build-system emacs-build-system)
3994 (synopsis "Minor mode for typographic editing")
3995 (description
3996 "This package provides two Emacs modes, @code{typo-mode} and
3997 @code{typo-global-mode}. These modes automatically insert Unicode characters
3998 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
3999 automatically inserts a Unicode opening or closing quotation mark, depending
4000 on context.")
4001 (license license:gpl3+)))
4002
4003 (define-public emacs-company-lsp
4004 (package
4005 (name "emacs-company-lsp")
4006 (version "2.1.0")
4007 (source (origin
4008 (method git-fetch)
4009 (uri (git-reference
4010 (url "https://github.com/tigersoldier/company-lsp.git")
4011 (commit version)))
4012 (file-name (git-file-name name version))
4013 (sha256
4014 (base32
4015 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
4016 (build-system emacs-build-system)
4017 (propagated-inputs
4018 `(("emacs-dash" ,emacs-dash)
4019 ("emacs-lsp-mode" ,emacs-lsp-mode)
4020 ("emacs-company" ,emacs-company)
4021 ("emacs-s" ,emacs-s)
4022 ("emacs-dash" ,emacs-dash)))
4023 (native-inputs
4024 `(("emacs-buttercup" ,emacs-buttercup)))
4025 (arguments
4026 `(#:tests? #t
4027 #:test-command '("buttercup" "-L" ".")))
4028 (home-page "https://github.com/tigersoldier/company-lsp")
4029 (synopsis "Completion for @code{lsp-mode}")
4030 (description
4031 "This package provides completion features that are not possible with
4032 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
4033 characters and asynchronous fetching of completion candidates.")
4034 (license license:gpl3+)))
4035
4036 (define-public emacs-scheme-complete
4037 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
4038 (package
4039 (name "emacs-scheme-complete")
4040 (version (string-append "20151223." (string-take commit 8)))
4041 (source
4042 (origin
4043 (method git-fetch)
4044 (uri (git-reference
4045 (url "https://github.com/ashinn/scheme-complete.git")
4046 (commit commit)))
4047 (file-name (git-file-name name version))
4048 (sha256
4049 (base32
4050 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
4051 (patches
4052 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
4053 (build-system emacs-build-system)
4054 (home-page "https://github.com/ashinn/scheme-complete")
4055 (synopsis "Smart tab completion for Scheme in Emacs")
4056 (description
4057 "This file provides a single function, @code{scheme-smart-complete},
4058 which you can use for intelligent, context-sensitive completion for any Scheme
4059 implementation in Emacs. To use it just load this file and bind that function
4060 to a key in your preferred mode.")
4061 (license license:public-domain))))
4062
4063 (define-public emacs-scel
4064 (let ((version "20170629")
4065 (revision "1")
4066 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
4067 (package
4068 (name "emacs-scel")
4069 (version (git-version version revision commit))
4070 (source
4071 (origin
4072 (method git-fetch)
4073 (uri (git-reference
4074 (url "https://github.com/supercollider/scel.git")
4075 (commit commit)))
4076 (file-name (git-file-name name version))
4077 (sha256
4078 (base32
4079 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
4080 (build-system emacs-build-system)
4081 (arguments
4082 `(#:modules ((guix build emacs-build-system)
4083 ((guix build cmake-build-system) #:prefix cmake:)
4084 (guix build utils))
4085 #:imported-modules (,@%emacs-build-system-modules
4086 (guix build cmake-build-system))
4087 #:phases
4088 (modify-phases %standard-phases
4089 (add-after 'unpack 'configure
4090 (lambda* (#:key outputs #:allow-other-keys)
4091 (substitute* "el/CMakeLists.txt"
4092 (("share/emacs/site-lisp/SuperCollider")
4093 (string-append
4094 "share/emacs/site-lisp/guix.d/scel-" ,version)))
4095 ((assoc-ref cmake:%standard-phases 'configure)
4096 #:outputs outputs
4097 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
4098 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
4099 (lambda _
4100 (setenv "EMACSLOADPATH"
4101 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
4102 #t))
4103 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
4104 (inputs
4105 `(("supercollider" ,supercollider)))
4106 (native-inputs
4107 `(("cmake" ,cmake-minimal)))
4108 (home-page "https://github.com/supercollider/scel")
4109 (synopsis "SuperCollider Emacs interface")
4110 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
4111 SuperCollider is a platform for audio synthesis and algorithmic composition.")
4112 (license license:gpl2+))))
4113
4114 (define-public emacs-company-auctex
4115 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
4116 (revision "1"))
4117 (package
4118 (name "emacs-company-auctex")
4119 (version (git-version "0" revision commit))
4120 (source (origin
4121 (method git-fetch)
4122 (uri (git-reference
4123 (url "https://github.com/alexeyr/company-auctex")
4124 (commit commit)))
4125 (file-name (git-file-name name version))
4126 (sha256
4127 (base32
4128 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
4129 (build-system emacs-build-system)
4130 (propagated-inputs
4131 `(("emacs-yasnippet" ,emacs-yasnippet)
4132 ("emacs-auctex" ,emacs-auctex)
4133 ("emacs-company" ,emacs-company)))
4134 (home-page "https://github.com/alexeyr/company-auctex/")
4135 (synopsis "Completion for @code{AUCTeX}")
4136 (description
4137 "This package provides a group of backends permitting auto-completion
4138 for @code{AUCTeX}.")
4139 (license license:gpl3+))))
4140
4141 (define-public emacs-mit-scheme-doc
4142 (package
4143 (name "emacs-mit-scheme-doc")
4144 (version "20140203")
4145 (source
4146 (origin
4147 (modules '((guix build utils)))
4148 (snippet
4149 ;; keep only file of interest
4150 '(begin
4151 (for-each delete-file '("dot-emacs.el" "Makefile"))
4152 (install-file "6.945-config/mit-scheme-doc.el" ".")
4153 (delete-file-recursively "6.945-config")
4154 #t))
4155 (file-name (string-append name "-" version ".tar.bz2"))
4156 (method url-fetch)
4157 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
4158 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
4159 (sha256
4160 (base32
4161 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
4162 (build-system emacs-build-system)
4163 (inputs `(("mit-scheme" ,mit-scheme)))
4164 (arguments
4165 `(#:phases
4166 (modify-phases %standard-phases
4167 (add-after 'unpack 'configure-doc
4168 (lambda* (#:key inputs #:allow-other-keys)
4169 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
4170 (doc-dir (string-append mit-scheme-dir "/share/doc/"
4171 "mit-scheme-"
4172 ,(package-version mit-scheme))))
4173 (substitute* "mit-scheme-doc.el"
4174 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
4175 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
4176 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
4177 (synopsis "MIT-Scheme documentation lookup for Emacs")
4178 (description
4179 "This package provides a set of Emacs functions to search definitions of
4180 identifiers in the MIT-Scheme documentation.")
4181 (license license:gpl2+)))
4182
4183 (define-public emacs-constants
4184 (package
4185 (name "emacs-constants")
4186 (version "2.6")
4187 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
4188 (source
4189 (origin
4190 (method git-fetch)
4191 (uri (git-reference
4192 (url "https://github.com/fedeinthemix/emacs-constants.git")
4193 (commit (string-append "v" version))))
4194 (file-name (git-file-name name version))
4195 (sha256
4196 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
4197 (build-system emacs-build-system)
4198 (synopsis "Enter definition of constants into an Emacs buffer")
4199 (description
4200 "This package provides functions for inserting the definition of natural
4201 constants and units into an Emacs buffer.")
4202 (license license:gpl2+)))
4203
4204 (define-public emacs-tagedit
4205 (package
4206 (name "emacs-tagedit")
4207 (version "1.4.0")
4208 (source
4209 (origin
4210 (method git-fetch)
4211 (uri (git-reference
4212 (url "https://github.com/magnars/tagedit.git")
4213 (commit version)))
4214 (file-name (git-file-name name version))
4215 (sha256
4216 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
4217 (build-system emacs-build-system)
4218 (propagated-inputs
4219 `(("emacs-s" ,emacs-s)
4220 ("emacs-dash" ,emacs-dash)))
4221 (home-page "https://github.com/magnars/tagedit")
4222 (synopsis "Some paredit-like features for html-mode")
4223 (description
4224 "This package provides a collection of paredit-like functions for editing
4225 in @code{html-mode}.")
4226 (license license:gpl3+)))
4227
4228 (define-public emacs-slime
4229 (package
4230 (name "emacs-slime")
4231 (version "2.24")
4232 (source
4233 (origin
4234 (method git-fetch)
4235 (uri (git-reference
4236 (url "https://github.com/slime/slime.git")
4237 (commit (string-append "v" version))))
4238 (file-name (git-file-name name version))
4239 (sha256
4240 (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
4241 (build-system emacs-build-system)
4242 (native-inputs
4243 `(("texinfo" ,texinfo)))
4244 (arguments
4245 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
4246 #:exclude '("^slime-tests.el" "^contrib/test/"
4247 "^contrib/Makefile$" "^contrib/README.md$")
4248 #:phases
4249 (modify-phases %standard-phases
4250 (add-after 'unpack 'make-git-checkout-writable
4251 (lambda _
4252 (for-each make-file-writable (find-files "."))
4253 #t))
4254 (add-before 'install 'configure
4255 (lambda* _
4256 (emacs-substitute-variables "slime.el"
4257 ("inferior-lisp-program" "sbcl"))
4258 #t))
4259 (add-before 'install 'install-doc
4260 (lambda* (#:key outputs #:allow-other-keys)
4261 (let* ((out (assoc-ref outputs "out"))
4262 (info-dir (string-append out "/share/info"))
4263 (doc-dir (string-append out "/share/doc/"
4264 ,name "-" ,version))
4265 (doc-files '("doc/slime-refcard.pdf"
4266 "README.md" "NEWS" "PROBLEMS"
4267 "CONTRIBUTING.md")))
4268 (with-directory-excursion "doc"
4269 (substitute* "Makefile"
4270 (("infodir=/usr/local/info")
4271 (string-append "infodir=" info-dir)))
4272 (invoke "make" "html/index.html")
4273 (invoke "make" "slime.info")
4274 (install-file "slime.info" info-dir)
4275 (copy-recursively "html" (string-append doc-dir "/html")))
4276 (for-each (lambda (f)
4277 (install-file f doc-dir)
4278 (delete-file f))
4279 doc-files)
4280 (delete-file-recursively "doc")
4281 #t))))))
4282 (home-page "https://github.com/slime/slime")
4283 (synopsis "Superior Lisp Interaction Mode for Emacs")
4284 (description
4285 "SLIME extends Emacs with support for interactive programming in
4286 Common Lisp. The features are centered around @command{slime-mode},
4287 an Emacs minor mode that complements the standard @command{lisp-mode}.
4288 While lisp-mode supports editing Lisp source files, @command{slime-mode}
4289 adds support for interacting with a running Common Lisp process
4290 for compilation, debugging, documentation lookup, and so on.")
4291 (license (list license:gpl2+ license:public-domain))))
4292
4293 (define-public emacs-popup
4294 (package
4295 (name "emacs-popup")
4296 (version "0.5.3")
4297 (source
4298 (origin
4299 (method git-fetch)
4300 (uri (git-reference
4301 (url "https://github.com/auto-complete/popup-el.git")
4302 (commit (string-append "v" version))))
4303 (file-name (git-file-name name version))
4304 (sha256
4305 (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
4306 (build-system emacs-build-system)
4307 (home-page "https://github.com/auto-complete/popup-el")
4308 (synopsis "Visual Popup User Interface for Emacs")
4309 (description
4310 "Popup.el is a visual popup user interface library for Emacs.
4311 This provides a basic API and common UI widgets such as popup tooltips
4312 and popup menus.")
4313 (license license:gpl3+)))
4314
4315 (define-public emacs-python-environment
4316 (package
4317 (name "emacs-python-environment")
4318 (version "0.0.2")
4319 (source
4320 (origin
4321 (method git-fetch)
4322 (uri (git-reference
4323 (url "https://github.com/tkf/emacs-python-environment/")
4324 (commit version)))
4325 (file-name (git-file-name name version))
4326 (sha256
4327 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
4328 (build-system emacs-build-system)
4329 (propagated-inputs
4330 `(("emacs-deferred" ,emacs-deferred)))
4331 (home-page "https://github.com/tkf/emacs-python-environment")
4332 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
4333 (description
4334 "This package permits automated installation of tools written in Python.")
4335 (license license:gpl3+)))
4336
4337 (define-public emacs-jedi
4338 (package
4339 (name "emacs-jedi")
4340 (version "0.2.7")
4341 (source (origin
4342 (method git-fetch)
4343 (uri (git-reference
4344 (url "https://github.com/tkf/emacs-jedi/")
4345 (commit (string-append "v" version))))
4346 (file-name (git-file-name name version))
4347 (sha256
4348 (base32
4349 "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7"))))
4350 (build-system emacs-build-system)
4351 (native-inputs
4352 `(("emacs-mocker" ,emacs-mocker)))
4353 (propagated-inputs
4354 `(("emacs-auto-complete" ,emacs-auto-complete)
4355 ("emacs-python-environment" ,emacs-python-environment)
4356 ("emacs-epc" ,emacs-epc)))
4357 (home-page "https://github.com/tkf/emacs-jedi")
4358 (synopsis "Provides Python completion in Emacs")
4359 (description
4360 "This package provides completion in Python buffers and also helps find
4361 the locations of docstrings, arguments, and functions.")
4362 (license license:gpl3+)))
4363
4364 (define-public emacs-company-jedi
4365 (package
4366 (name "emacs-company-jedi")
4367 (version "0.04")
4368 (source (origin
4369 (method git-fetch)
4370 (uri (git-reference
4371 (url "https://github.com/syohex/emacs-company-jedi")
4372 (commit version)))
4373 (file-name (git-file-name name version))
4374 (sha256
4375 (base32
4376 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
4377 (build-system emacs-build-system)
4378 (propagated-inputs
4379 `(("emacs-jedi" ,emacs-jedi)
4380 ("emacs-company" ,emacs-company)))
4381 (home-page "https://github.com/syohex/emacs-company-jedi")
4382 (synopsis "Provides Python completion in @code{company-mode}")
4383 (description
4384 "This package provides a Company backend for Python.")
4385 (license license:gpl3+)))
4386
4387 (define-public emacs-puppet-mode
4388 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
4389 (revision "1"))
4390 (package
4391 (name "emacs-puppet-mode")
4392 ;; The last release, 0.3 was several years ago, and there have been many
4393 ;; commits since
4394 (version (git-version "0.3" revision commit))
4395 (source
4396 (origin
4397 (method url-fetch)
4398 (uri (string-append
4399 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
4400 commit "/puppet-mode.el"))
4401 (sha256
4402 (base32
4403 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
4404 (build-system emacs-build-system)
4405 (home-page "https://github.com/voxpupuli/puppet-mode")
4406 (synopsis "Emacs major mode for the Puppet configuration language")
4407 (description
4408 "This package provides support for the Puppet configuration language,
4409 including syntax highlighting, indentation of expressions and statements,
4410 linting of manifests and integration with Puppet Debugger.")
4411 ;; Also incorporates work covered by the Apache License, Version 2.0
4412 (license license:gpl3+))))
4413
4414 (define-public emacs-god-mode
4415 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
4416 (revision "1"))
4417 (package
4418 (name "emacs-god-mode")
4419 (version (string-append "20151005.925."
4420 revision "-" (string-take commit 9)))
4421 (source
4422 (origin
4423 (method git-fetch)
4424 (uri (git-reference
4425 (url "https://github.com/chrisdone/god-mode.git")
4426 (commit commit)))
4427 (file-name (git-file-name name version))
4428 (sha256
4429 (base32
4430 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
4431 (build-system emacs-build-system)
4432 (home-page "https://github.com/chrisdone/god-mode")
4433 (synopsis "Minor mode for entering commands without modifier keys")
4434 (description
4435 "This package provides a global minor mode for entering Emacs commands
4436 without modifier keys. It's similar to Vim's separation of commands and
4437 insertion mode. When enabled all keys are implicitly prefixed with
4438 @samp{C-} (among other helpful shortcuts).")
4439 (license license:gpl3+))))
4440
4441 (define-public emacs-jinja2-mode
4442 (package
4443 (name "emacs-jinja2-mode")
4444 (version "0.2")
4445 (source
4446 (origin
4447 (method git-fetch)
4448 (uri (git-reference
4449 (url "https://github.com/paradoxxxzero/jinja2-mode.git")
4450 (commit (string-append "v" version))))
4451 (file-name (git-file-name name version))
4452 (sha256
4453 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
4454 (build-system emacs-build-system)
4455 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
4456 (synopsis "Major mode for jinja2")
4457 (description
4458 "Emacs major mode for jinja2 with: syntax highlighting,
4459 sgml/html integration, and indentation (working with sgml).")
4460 (license license:gpl3+)))
4461
4462 (define-public emacs-company-cabal
4463 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
4464 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
4465 (revision "1"))
4466 (package
4467 (name "emacs-company-cabal")
4468 (version (git-version "0.3.0" revision commit))
4469 (source (origin
4470 (method git-fetch)
4471 (uri (git-reference
4472 (url "https://github.com/iquiw/company-cabal/")
4473 (commit commit)))
4474 (file-name (git-file-name name version))
4475 (sha256
4476 (base32
4477 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
4478 (build-system emacs-build-system)
4479 (propagated-inputs
4480 `(("emacs-company" ,emacs-company)))
4481 (arguments
4482 `(#:include (cons "^tools\\/" %default-include)))
4483 (home-page "https://github.com/iquiw/company-cabal/")
4484 (synopsis "Company completion for Haskell Cabal files")
4485 (description
4486 "This package allows for completion of field names, section names,
4487 field values, and more within @code{haskell-cabal-mode}.")
4488 (license license:gpl3+))))
4489
4490 (define-public emacs-rfcview
4491 (package
4492 (name "emacs-rfcview")
4493 (version "0.13")
4494 (home-page "http://www.loveshack.ukfsn.org/emacs")
4495 (source (origin
4496 (method url-fetch)
4497 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
4498 (sha256
4499 (base32
4500 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
4501 (build-system emacs-build-system)
4502 (synopsis "Prettify Request for Comments (RFC) documents")
4503 (description "The Internet Engineering Task Force (IETF) and the Internet
4504 Society (ISOC) publish various Internet-related protocols and specifications
4505 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
4506 documents. RFCs and STDs are published in a simple text form. This package
4507 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
4508 read these documents in Emacs. It prettifies the text and adds
4509 hyperlinks/menus for easier navigation. It also provides functions for
4510 browsing the index of RFC documents and fetching them from remote servers or
4511 local directories.")
4512 (license license:gpl3+)))
4513
4514 (define-public emacs-ffap-rfc-space
4515 (package
4516 (name "emacs-ffap-rfc-space")
4517 (version "12")
4518 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
4519 (source (origin
4520 (method url-fetch)
4521 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
4522 (sha256
4523 (base32
4524 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
4525 (build-system emacs-build-system)
4526 (synopsis "Make ffap recognize an RFC with a space before its number")
4527 (description "The Internet Engineering Task Force (IETF) and the
4528 Internet Society (ISOC) publish various Internet-related protocols and
4529 specifications as \"Request for Comments\" (RFC) documents. The
4530 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
4531 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
4532 and load the appropriate RFC from a remote server. However, it fails
4533 to recognize a name like \"RFC 1234\". This package enhances ffap so
4534 that it correctly finds RFCs even when a space appears before the
4535 number.")
4536 (license license:gpl3+)))
4537
4538 (define-public emacs-org-bullets
4539 (package
4540 (name "emacs-org-bullets")
4541 (version "0.2.4")
4542 (source
4543 (origin
4544 (method git-fetch)
4545 (uri (git-reference
4546 (url "https://github.com/sabof/org-bullets.git")
4547 (commit version)))
4548 (file-name (git-file-name name version))
4549 (sha256
4550 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
4551 (build-system emacs-build-system)
4552 (home-page "https://github.com/sabof/org-bullets")
4553 (synopsis "Show bullets in org-mode as UTF-8 characters")
4554 (description
4555 "This package provides an Emacs minor mode causing bullets in
4556 @code{org-mode} to be rendered as UTF-8 characters.")
4557 (license license:gpl3+)))
4558
4559 (define-public emacs-org-pomodoro
4560 ;; Last release version was from 2016.
4561 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
4562 (revision "1"))
4563 (package
4564 (name "emacs-org-pomodoro")
4565 (version (git-version "2.1.0" revision commit))
4566 (source
4567 (origin
4568 (method git-fetch)
4569 (uri (git-reference
4570 (url "https://github.com/marcinkoziej/org-pomodoro.git")
4571 (commit commit)))
4572 (file-name (git-file-name name version))
4573 (sha256
4574 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
4575 (build-system emacs-build-system)
4576 (propagated-inputs
4577 `(("emacs-alert" ,emacs-alert)))
4578 (arguments
4579 `(#:include (cons "^resources\\/" %default-include)
4580 #:tests? #t
4581 #:test-command '("emacs" "--batch"
4582 "-l" "org-pomodoro-tests.el"
4583 "-f" "ert-run-tests-batch-and-exit")
4584 #:phases
4585 (modify-phases %standard-phases
4586 (add-before 'check 'make-tests-writable
4587 (lambda _
4588 (make-file-writable "org-pomodoro-tests.el")
4589 #t))
4590 (add-before 'check 'add-require
4591 (lambda _
4592 (emacs-batch-edit-file "org-pomodoro-tests.el"
4593 `(progn (progn (goto-char (point-min))
4594 (re-search-forward
4595 "ert-deftest")
4596 (beginning-of-line)
4597 (forward-line -1)
4598 (insert "(require 'org-pomodoro)"))
4599 (basic-save-buffer)))
4600 #t)))))
4601 (home-page "https://github.com/marcinkoziej/org-pomodoro")
4602 (synopsis "Pomodoro technique for org-mode")
4603 (description "@code{emacs-org-pomodoro} adds very basic support for
4604 Pomodoro technique in Emacs org-mode.
4605
4606 Run @code{M-x org-pomodoro} for the task at point or select one of the
4607 last tasks that you clocked time for. Each clocked-in pomodoro starts
4608 a timer of 25 minutes and after each pomodoro a break timer of 5
4609 minutes is started automatically. Every 4 breaks a long break is
4610 started with 20 minutes. All values are customizable.")
4611 (license license:gpl3+))))
4612
4613 (define-public emacs-org-sidebar
4614 (package
4615 (name "emacs-org-sidebar")
4616 (version "0.2")
4617 (source
4618 (origin
4619 (method git-fetch)
4620 (uri (git-reference
4621 (url "https://github.com/alphapapa/org-sidebar.git")
4622 (commit version)))
4623 (file-name (git-file-name name version))
4624 (sha256
4625 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
4626 (build-system emacs-build-system)
4627 (propagated-inputs
4628 `(("emacs-dash" ,emacs-dash)
4629 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
4630 ("emacs-org" ,emacs-org)
4631 ("emacs-org-ql" ,emacs-org-ql)
4632 ("emacs-s" ,emacs-s)))
4633 (home-page "https://github.com/alphapapa/org-sidebar")
4634 (synopsis "Helpful sidebar for Org buffers")
4635 (description "This package provides a sidebar for Org buffers. At the
4636 top is a chronological list of scheduled and deadlined tasks in the current
4637 buffer (similar to the Org agenda ,but without all its features), and below
4638 that is a list of all other non-done to-do items. If the buffer is narrowed,
4639 the sidebar only shows items in the narrowed portion; this allows seeing an
4640 overview of tasks in a subtree.")
4641 (license license:gpl3+)))
4642
4643 (define-public emacs-org-trello
4644 (package
4645 (name "emacs-org-trello")
4646 (version "0.8.0")
4647 (source
4648 (origin
4649 (method git-fetch)
4650 (uri (git-reference
4651 (url "https://github.com/org-trello/org-trello.git")
4652 (commit version)))
4653 (file-name (git-file-name name version))
4654 (sha256
4655 (base32 "0m5hyhb6211hdmyp1bq6f3fklfgw3957knd96bfdafj727vdnlzm"))))
4656 (build-system emacs-build-system)
4657 (propagated-inputs
4658 `(("emacs-dash" ,emacs-dash)
4659 ("emacs-deferred" ,emacs-deferred)
4660 ("emacs-f" ,emacs-f)
4661 ("emacs-helm" ,emacs-helm)
4662 ("emacs-request" ,emacs-request)
4663 ("emacs-s" ,emacs-s)))
4664 (home-page "https://org-trello.github.io")
4665 (synopsis "Emacs minor mode for interacting with Trello")
4666 (description "This package provides an Emacs minor mode to extend
4667 @code{org-mode} with Trello abilities. Trello is an online project
4668 organizer.")
4669 (license license:gpl3+)))
4670
4671 (define-public emacs-org-tanglesync
4672 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
4673 (revision "2"))
4674 (package
4675 (name "emacs-org-tanglesync")
4676 (version (git-version "0.6" revision commit))
4677 (source
4678 (origin
4679 (method git-fetch)
4680 (uri (git-reference
4681 (url "https://github.com/mtekman/org-tanglesync.el.git")
4682 (commit commit)))
4683 (file-name (git-file-name name version))
4684 (sha256
4685 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
4686 (build-system emacs-build-system)
4687 (propagated-inputs
4688 `(("emacs-org" ,emacs-org)))
4689 (home-page "https://github.com/mtekman/org-tanglesync.el")
4690 (synopsis "Sync Org source blocks with tangled external files")
4691 (description "This package automatically pulls changes from source code
4692 to their corresponding tangled blocks.")
4693 (license license:gpl3+))))
4694
4695 (define-public emacs-company-flow
4696 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
4697 (revision "1"))
4698 (package
4699 (name "emacs-company-flow")
4700 (version (git-version "0.1.0" revision commit))
4701 (source (origin
4702 (method git-fetch)
4703 (uri (git-reference
4704 (url "https://github.com/aaronjensen/company-flow/")
4705 (commit commit)))
4706 (file-name (git-file-name name version))
4707 (sha256
4708 (base32
4709 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
4710 (build-system emacs-build-system)
4711 (propagated-inputs
4712 `(("emacs-company" ,emacs-company)
4713 ("emacs-dash" ,emacs-dash)))
4714 (home-page "https://github.com/aaronjensen/company-flow/")
4715 (synopsis "Flow backend for @code{company-mode}")
4716 (description
4717 "This package provides completion for JavaScript files utilizing Flow.")
4718 (license license:gpl3+))))
4719
4720 (define-public emacs-atom-one-dark-theme
4721 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
4722 (revision "0"))
4723 (package
4724 (name "emacs-atom-one-dark-theme")
4725 (version (git-version "0.4.0" revision commit))
4726 (source (origin
4727 (method git-fetch)
4728 (uri (git-reference
4729 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
4730 (commit commit)))
4731 (sha256
4732 (base32
4733 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
4734 (file-name (git-file-name name version))))
4735 (build-system emacs-build-system)
4736 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
4737 (synopsis "Atom One Dark color theme for Emacs")
4738 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
4739 (license license:gpl3+))))
4740
4741 (define-public emacs-zenburn-theme
4742 (package
4743 (name "emacs-zenburn-theme")
4744 (version "2.6")
4745 (source
4746 (origin
4747 (method git-fetch)
4748 (uri (git-reference
4749 (url "https://github.com/bbatsov/zenburn-emacs.git")
4750 (commit (string-append "v" version))))
4751 (file-name (git-file-name name version))
4752 (sha256
4753 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
4754 (build-system emacs-build-system)
4755 (home-page "https://github.com/bbatsov/zenburn-emacs")
4756 (synopsis "Low contrast color theme for Emacs")
4757 (description
4758 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
4759 It is built on top of the custom theme support in Emacs 24 or later.")
4760 (license license:gpl3+)))
4761
4762 (define-public emacs-moe-theme-el
4763 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
4764 (version "1.0")
4765 (revision "1"))
4766 (package
4767 (name "emacs-moe-theme-el")
4768 (version (git-version version revision commit))
4769 (source
4770 (origin
4771 (method git-fetch)
4772 (uri (git-reference
4773 (url "https://github.com/kuanyui/moe-theme.el")
4774 (commit commit)))
4775 (file-name (git-file-name name version))
4776 (sha256
4777 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
4778 (build-system emacs-build-system)
4779 (home-page "https://github.com/kuanyui/moe-theme.el")
4780 (synopsis "Anime-inspired color themes")
4781 (description
4782 "This package provides vibrant color schemes with light and dark
4783 variants.")
4784 (license license:gpl3+))))
4785
4786 (define-public emacs-solarized-theme
4787 (package
4788 (name "emacs-solarized-theme")
4789 (version "1.2.2")
4790 (source (origin
4791 (method url-fetch)
4792 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
4793 "archive/v" version ".tar.gz"))
4794 (file-name (string-append name "-" version ".tar.gz"))
4795 (sha256
4796 (base32
4797 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
4798 (build-system emacs-build-system)
4799 (propagated-inputs
4800 `(("emacs-dash" ,emacs-dash)))
4801 (home-page "https://github.com/bbatsov/solarized-emacs")
4802 (synopsis "Port of the Solarized theme for Emacs")
4803 (description
4804 "Solarized for Emacs is a port of the Solarized theme for Vim. This
4805 package provides a light and a dark variant.")
4806 (license license:gpl3+)))
4807
4808 (define-public emacs-poet-theme
4809 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
4810 (revision "0"))
4811 (package
4812 (name "emacs-poet-theme")
4813 (version (git-version "0" revision commit))
4814 (source
4815 (origin
4816 (method git-fetch)
4817 (uri (git-reference
4818 (url "https://github.com/kunalb/poet.git")
4819 (commit commit)))
4820 (sha256
4821 (base32
4822 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
4823 (build-system emacs-build-system)
4824 (home-page "https://github.com/kunalb/poet/")
4825 (synopsis "Emacs theme for prose")
4826 (description
4827 "Emacs has very good support for multiple fonts in a single file. Poet
4828 uses this support to make it much more convenient to write prose within Emacs,
4829 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
4830 Code blocks, tables, etc are formatted in monospace text with the appropriate
4831 backgrounds.")
4832 (license license:expat))))
4833
4834 (define-public emacs-ahungry-theme
4835 (package
4836 (name "emacs-ahungry-theme")
4837 (version "1.10.0")
4838 (source
4839 (origin (method url-fetch)
4840 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
4841 version ".tar"))
4842 (sha256
4843 (base32
4844 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
4845 (build-system emacs-build-system)
4846 (home-page "https://github.com/ahungry/color-theme-ahungry")
4847 (synopsis "Ahungry color theme for Emacs")
4848 (description "Ahungry theme for Emacs provides bright and bold colors.
4849 If you load it from a terminal, you will be able to make use of the
4850 transparent background. If you load it from a GUI, it will default to a
4851 dark background.")
4852 (license license:gpl3+)))
4853
4854 (define-public emacs-gruvbox-theme
4855 (package
4856 (name "emacs-gruvbox-theme")
4857 (version "1.28.0")
4858 (source (origin
4859 (method git-fetch)
4860 (uri (git-reference
4861 (url "https://github.com/greduan/emacs-theme-gruvbox.git")
4862 (commit version)))
4863 (file-name (git-file-name name version))
4864 (sha256
4865 (base32
4866 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
4867 (build-system emacs-build-system)
4868 (propagated-inputs
4869 `(("emacs-autothemer" ,emacs-autothemer)))
4870 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
4871 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
4872 (description
4873 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
4874
4875 Designed as a bright theme with pastel 'retro groove' colors and light/dark
4876 mode switching in the way of solarized. The main focus when developing gruvbox
4877 is to keep colors easily distinguishable, contrast enough and still pleasant
4878 for the eyes.")
4879 (license license:expat))) ; MIT license
4880
4881 (define-public emacs-2048-game
4882 (package
4883 (name "emacs-2048-game")
4884 (version "20151026.1233")
4885 (source
4886 (origin
4887 (method url-fetch)
4888 (uri (string-append "https://melpa.org/packages/2048-game-"
4889 version ".el"))
4890 (sha256
4891 (base32
4892 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
4893 (build-system emacs-build-system)
4894 (home-page "https://bitbucket.org/zck/2048.el")
4895 (synopsis "Implementation of the game 2048 in Emacs Lisp")
4896 (description
4897 "This program is an implementation of 2048 for Emacs.
4898 The goal of this game is to create a tile with value 2048. The size of the
4899 board and goal value can be customized.")
4900 (license license:gpl3+)))
4901
4902 (define-public emacs-base16-theme
4903 (package
4904 (name "emacs-base16-theme")
4905 (version "2.2")
4906 (source
4907 (origin
4908 (method git-fetch)
4909 (uri (git-reference
4910 (url "https://github.com/belak/base16-emacs.git")
4911 (commit version)))
4912 (file-name (git-file-name name version))
4913 (sha256
4914 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
4915 (build-system emacs-build-system)
4916 (home-page "https://github.com/belak/base16-emacs")
4917 (synopsis "Base16 color themes for Emacs")
4918 (description
4919 "Base16 provides carefully chosen syntax highlighting and a default set
4920 of sixteen colors suitable for a wide range of applications. Base16 is not a
4921 single theme but a set of guidelines with numerous implementations.")
4922 (license license:expat)))
4923
4924 (define-public emacs-solaire-mode
4925 (package
4926 (name "emacs-solaire-mode")
4927 (version "1.0.9")
4928 (source
4929 (origin
4930 (method git-fetch)
4931 (uri (git-reference
4932 (url "https://github.com/hlissner/emacs-solaire-mode.git")
4933 (commit (string-append "v" version))))
4934 (file-name (git-file-name name version))
4935 (sha256
4936 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
4937 (build-system emacs-build-system)
4938 (home-page "https://github.com/hlissner/emacs-solaire-mode")
4939 (synopsis "Change background of file-visiting buffers in Emacs")
4940 (description
4941 "@code{solaire-mode} is inspired by editors which visually distinguish
4942 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
4943 background of file-visiting buffers (and certain aspects of the UI) to make
4944 them easier to distinguish from other, less important buffers.")
4945 (license license:expat)))
4946
4947 (define-public emacs-prescient
4948 ;; XXX: emacs-ivy introduced a commit that disables sorting for counsel-M-x
4949 ;; by default, so we use a non-release version ahead by one commit
4950 (let ((commit "95056580ed743da92b05aaf86f943ee05600c28d")
4951 (revision "1"))
4952 (package
4953 (name "emacs-prescient")
4954 (version (git-version "3.3" revision commit))
4955 (source (origin
4956 (method git-fetch)
4957 (uri (git-reference
4958 (url "https://github.com/raxod502/prescient.el/")
4959 (commit commit)))
4960 (file-name (git-file-name name version))
4961 (sha256
4962 (base32
4963 "06qxs8p66jr4gg9m1gd27v5may32f3n28la56cv4f4prinqyyfj7"))))
4964 (build-system emacs-build-system)
4965 (propagated-inputs
4966 `(("emacs-company" ,emacs-company)
4967 ("emacs-ivy" ,emacs-ivy)))
4968 (home-page "https://github.com/raxod502/prescient.el/")
4969 (synopsis "Library that sorts and filters lists of candidates")
4970 (description
4971 "This package provides a library for sorting and filtering, as well as
4972 extensions for @code{ivy-mode} and @code{company-mode} that make use of the
4973 library.")
4974 (license license:gpl3+))))
4975
4976 (define-public emacs-smartparens
4977 (package
4978 (name "emacs-smartparens")
4979 (version "1.11.0")
4980 (source
4981 (origin
4982 (method git-fetch)
4983 (uri (git-reference
4984 (url "https://github.com/Fuco1/smartparens.git")
4985 (commit version)))
4986 (file-name (git-file-name name version))
4987 (sha256
4988 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
4989 (build-system emacs-build-system)
4990 (propagated-inputs
4991 `(("emacs-dash" ,emacs-dash)
4992 ("emacs-markdown-mode" ,emacs-markdown-mode)))
4993 (home-page "https://github.com/Fuco1/smartparens")
4994 (synopsis "Paredit-like insertion, wrapping and navigation with user
4995 defined pairs")
4996 (description
4997 "Smartparens is a minor mode for Emacs that deals with parens pairs
4998 and tries to be smart about it. It started as a unification effort to
4999 combine functionality of several existing packages in a single,
5000 compatible and extensible way to deal with parentheses, delimiters, tags
5001 and the like. Some of these packages include autopair, textmate,
5002 wrap-region, electric-pair-mode, paredit and others. With the basic
5003 features found in other packages it also brings many improvements as
5004 well as completely new features.")
5005 (license license:gpl3+)))
5006
5007 (define-public emacs-highlight-symbol
5008 ;; We prefer a more recent commit that provides an option to squelch
5009 ;; echo-area alerts that can drown out useful information like eldoc
5010 ;; messages.
5011 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
5012 (version "1.3")
5013 (revision "1"))
5014 (package
5015 (name "emacs-highlight-symbol")
5016 (version (git-version version revision commit))
5017 (source
5018 (origin
5019 (method git-fetch)
5020 (uri (git-reference
5021 (url "https://github.com/nschum/highlight-symbol.el.git")
5022 (commit commit)))
5023 (file-name (git-file-name name version))
5024 (sha256
5025 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
5026 (build-system emacs-build-system)
5027 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
5028 (synopsis "Automatic and manual symbol highlighting for Emacs")
5029 (description
5030 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
5031 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
5032 the symbol at point highlighted.
5033
5034 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
5035 @code{highlight-symbol-next-in-defun} and
5036 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
5037 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
5038 bindings @code{M-p} and @code{M-p} for navigation. When
5039 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
5040 regardless of @code{highlight-symbol-idle-delay}.
5041
5042 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
5043 (license license:gpl2+))))
5044
5045 (define-public emacs-symbol-overlay
5046 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
5047 (revision "1"))
5048 (package
5049 (name "emacs-symbol-overlay")
5050 (version (git-version "4.1" revision commit))
5051 (source
5052 (origin
5053 (method git-fetch)
5054 (uri (git-reference
5055 (url "https://github.com/wolray/symbol-overlay.git")
5056 (commit commit)))
5057 (file-name (git-file-name name version))
5058 (sha256
5059 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
5060 (build-system emacs-build-system)
5061 (home-page "https://github.com/wolray/symbol-overlay")
5062 (synopsis "Highlight symbols and perform various search operations on them")
5063 (description
5064 "This package provides functions for highlighting and navigating
5065 between symbols.")
5066 (license license:gpl3+))))
5067
5068 (define-public emacs-hl-todo
5069 (package
5070 (name "emacs-hl-todo")
5071 (version "3.0.0")
5072 (source (origin
5073 (method git-fetch)
5074 (uri (git-reference
5075 (url "https://github.com/tarsius/hl-todo")
5076 (commit (string-append "v" version))))
5077 (file-name (git-file-name name version))
5078 (sha256
5079 (base32
5080 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
5081 (build-system emacs-build-system)
5082 (home-page "https://github.com/tarsius/hl-todo")
5083 (synopsis "Emacs mode to highlight TODO and similar keywords")
5084 (description
5085 "This package provides an Emacs mode to highlight TODO and similar
5086 keywords in comments and strings. This package also provides commands for
5087 moving to the next or previous keyword and to invoke @code{occur} with a
5088 regexp that matches all known keywords.")
5089 (license license:gpl3+)))
5090
5091 (define-public emacs-perspective
5092 (package
5093 (name "emacs-perspective")
5094 (version "2.2")
5095 (source
5096 (origin
5097 (method git-fetch)
5098 (uri (git-reference
5099 (url "https://github.com/nex3/perspective-el.git")
5100 (commit version)))
5101 (file-name (git-file-name name version))
5102 (sha256
5103 (base32
5104 "0pd5sqrrz6y3md20yh6ffy32jdcgb1gc9b4j14pm6r54bqxik68h"))))
5105 (build-system emacs-build-system)
5106 (home-page "https://github.com/nex3/perspective-el")
5107 (synopsis "Switch between named \"perspectives\"")
5108 (description
5109 "This package provides tagged workspaces in Emacs, similar to workspaces in
5110 windows managers such as Awesome and XMonad. @code{perspective.el} provides
5111 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
5112 perspective is composed of a window configuration and a set of buffers.
5113 Switching to a perspective activates its window configuration, and when in a
5114 perspective only its buffers are available by default.")
5115 ;; This package is released under the same license as Emacs (GPLv3+) or
5116 ;; the Expat license.
5117 (license license:gpl3+)))
5118
5119 (define-public emacs-test-simple
5120 (package
5121 (name "emacs-test-simple")
5122 (version "1.3.0")
5123 (source
5124 (origin
5125 (method url-fetch)
5126 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
5127 version ".el"))
5128 (sha256
5129 (base32
5130 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
5131 (build-system emacs-build-system)
5132 (home-page "https://github.com/rocky/emacs-test-simple")
5133 (synopsis "Simple unit test framework for Emacs Lisp")
5134 (description
5135 "Test Simple is a simple unit test framework for Emacs Lisp. It
5136 alleviates the need for context macros, enclosing specifications or required
5137 test tags. It supports both interactive and non-interactive use.")
5138 (license license:gpl3+)))
5139
5140 (define-public emacs-load-relative
5141 (package
5142 (name "emacs-load-relative")
5143 (version "1.3.1")
5144 (source
5145 (origin
5146 (method url-fetch)
5147 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
5148 version ".el"))
5149 (sha256
5150 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
5151 (build-system emacs-build-system)
5152 (home-page "http://github.com/rocky/emacs-load-relative")
5153 (synopsis "Emacs Lisp relative file loading related functions")
5154 (description
5155 "Provides functions which facilitate writing multi-file Emacs packages
5156 and running from the source tree without having to \"install\" code or fiddle
5157 with @{load-path}.
5158
5159 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
5160 another (presumably currently running) Emacs Lisp file.")
5161 (license license:gpl3+)))
5162
5163 (define-public emacs-loc-changes
5164 (package
5165 (name "emacs-loc-changes")
5166 (version "1.2")
5167 (source
5168 (origin
5169 (method url-fetch)
5170 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
5171 version ".el"))
5172 (sha256
5173 (base32
5174 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
5175 (build-system emacs-build-system)
5176 (home-page "https://github.com/rocky/emacs-loc-changes")
5177 (synopsis "Keeps track of positions even after buffer changes")
5178 (description
5179 "This Emacs package provides a mean to track important buffer positions
5180 after buffer changes.")
5181 (license license:gpl3+)))
5182
5183 (define-public emacs-realgud
5184 (package
5185 (name "emacs-realgud")
5186 (version "1.5.1")
5187 (source
5188 (origin
5189 (method git-fetch)
5190 (uri (git-reference
5191 (url "https://github.com/realgud/realgud/")
5192 (commit version)))
5193 (sha256
5194 (base32
5195 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
5196 (file-name (git-file-name name version))))
5197 (build-system emacs-build-system)
5198 (arguments
5199 `(#:tests? #t
5200 #:phases
5201 (modify-phases %standard-phases
5202 (add-after 'set-emacs-load-path 'fix-autogen-script
5203 (lambda _
5204 (substitute* "autogen.sh"
5205 (("./configure") "sh configure"))))
5206 (add-after 'fix-autogen-script 'autogen
5207 (lambda _
5208 (setenv "CONFIG_SHELL" "sh")
5209 (invoke "sh" "autogen.sh")))
5210 (add-after 'fix-autogen-script 'set-home
5211 (lambda _
5212 (setenv "HOME" (getenv "TMPDIR"))))
5213 (add-before 'patch-el-files 'remove-realgud-pkg.el
5214 (lambda _
5215 ;; FIXME: `patch-el-files' crashes on this file with error:
5216 ;; unable to locate "bashdb".
5217 (delete-file "./test/test-regexp-bashdb.el"))))
5218 #:include (cons* ".*\\.el$" %default-include)))
5219 (native-inputs
5220 `(("autoconf" ,autoconf)
5221 ("automake" ,automake)
5222 ("emacs-test-simple" ,emacs-test-simple)))
5223 (propagated-inputs
5224 `(("emacs-load-relative" ,emacs-load-relative)
5225 ("emacs-loc-changes" ,emacs-loc-changes)))
5226 (home-page "https://github.com/realgud/realgud/")
5227 (synopsis
5228 "Modular front-end for interacting with external debuggers")
5229 (description
5230 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
5231 with external debuggers. It integrates various debuggers such as gdb, pdb,
5232 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
5233 sources. Unlike GUD, it also supports running multiple debug sessions in
5234 parallel.")
5235 (license license:gpl3+)))
5236
5237 (define-public emacs-request
5238 (package
5239 (name "emacs-request")
5240 (version "0.3.1")
5241 (source (origin
5242 (method git-fetch)
5243 (uri (git-reference
5244 (url "https://github.com/tkf/emacs-request.git")
5245 (commit (string-append "v" version))))
5246 (file-name (git-file-name name version))
5247 (sha256
5248 (base32
5249 "0fhhd349l4iqkrjxqzpckfk2w45x2g4cccpm1dqzv9m49md1wphx"))))
5250 (build-system emacs-build-system)
5251 (propagated-inputs
5252 `(("emacs-deferred" ,emacs-deferred)))
5253 (home-page "https://github.com/tkf/emacs-request")
5254 (synopsis "Package for speaking HTTP in Emacs Lisp")
5255 (description "This package provides a HTTP request library with multiple
5256 backends. It supports url.el which is shipped with Emacs and the curl command
5257 line program.")
5258 (license license:gpl3+)))
5259
5260 (define-public emacs-rudel
5261 (package
5262 (name "emacs-rudel")
5263 (version "0.3.1")
5264 (source
5265 (origin
5266 (method url-fetch)
5267 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
5268 version ".tar"))
5269 (sha256
5270 (base32
5271 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
5272 (build-system emacs-build-system)
5273 (home-page "http://rudel.sourceforge.net/")
5274 (synopsis "Collaborative editing framework")
5275 (description
5276 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
5277 is to share buffers with other users in order to edit the contents of those
5278 buffers collaboratively. Rudel supports multiple backends to enable
5279 communication with other collaborative editors using different protocols,
5280 though currently Obby (for use with the Gobby editor) is the only
5281 fully-functional one.")
5282 (license license:gpl3+)))
5283
5284 (define-public emacs-hydra
5285 (package
5286 (name "emacs-hydra")
5287 (version "0.15.0")
5288 (source
5289 (origin
5290 (method git-fetch)
5291 (uri (git-reference
5292 (url "https://github.com/abo-abo/hydra")
5293 (commit version)))
5294 (file-name (git-file-name name version))
5295 (sha256
5296 (base32
5297 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
5298 (build-system emacs-build-system)
5299 (arguments
5300 `(#:tests? #t
5301 #:test-command '("make" "test")))
5302 (home-page "https://github.com/abo-abo/hydra")
5303 (synopsis "Make Emacs bindings that stick around")
5304 (description
5305 "This package can be used to tie related commands into a family of short
5306 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
5307 the prefixed binding), all the heads can be called in succession with only a
5308 short extension. Any binding that isn't the Hydra's head vanquishes the
5309 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
5310 serve its original purpose, calling the command assigned to it. This makes
5311 the Hydra very seamless; it's like a minor mode that disables itself
5312 automatically.")
5313 (license license:gpl3+)))
5314
5315 (define-public emacs-ivy
5316 (package
5317 (name "emacs-ivy")
5318 (version "0.13.0")
5319 (source
5320 (origin
5321 (method git-fetch)
5322 (uri (git-reference
5323 (url "https://github.com/abo-abo/swiper.git")
5324 (commit version)))
5325 (file-name (git-file-name name version))
5326 (sha256
5327 (base32
5328 "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"))))
5329 (build-system emacs-build-system)
5330 (arguments
5331 `(#:phases
5332 (modify-phases %standard-phases
5333 (add-after 'install 'install-doc
5334 (lambda* (#:key outputs #:allow-other-keys)
5335 (let* ((out (assoc-ref outputs "out"))
5336 (info (string-append out "/share/info")))
5337 (with-directory-excursion "doc"
5338 (invoke "makeinfo" "ivy.texi")
5339 (install-file "ivy.info" info)
5340 #t))))
5341 (add-before 'check 'make-dummy-git-directory
5342 (lambda _
5343 (mkdir-p ".git")))
5344 (add-after 'check 'delete-dummy-git-directory
5345 (lambda _
5346 (delete-file-recursively ".git"))))
5347 #:tests? #t
5348 #:test-command '("make" "test")))
5349 (propagated-inputs
5350 `(("emacs-hydra" ,emacs-hydra)))
5351 (native-inputs
5352 `(("texinfo" ,texinfo)
5353 ("emacs-wgrep" ,emacs-wgrep)))
5354 (home-page "http://oremacs.com/swiper/")
5355 (synopsis "Incremental vertical completion for Emacs")
5356 (description
5357 "This package provides @code{ivy-read} as an alternative to
5358 @code{completing-read} and similar functions. No attempt is made to determine
5359 the best candidate. Instead, the user can navigate candidates with
5360 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
5361 splitting the input text by spaces and re-building it into a regular
5362 expression.")
5363 (license license:gpl3+)))
5364
5365 (define-public emacs-ivy-xref
5366 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
5367 (revision "1"))
5368 (package
5369 (name "emacs-ivy-xref")
5370 (version (git-version "0.1" revision commit))
5371 (source
5372 (origin
5373 (method git-fetch)
5374 (uri (git-reference
5375 (url "https://github.com/alexmurray/ivy-xref.git")
5376 (commit commit)))
5377 (file-name (git-file-name name version))
5378 (sha256
5379 (base32
5380 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
5381 (build-system emacs-build-system)
5382 (propagated-inputs
5383 `(("emacs-ivy" ,emacs-ivy)))
5384 (home-page "https://github.com/alexmurray/ivy-xref")
5385 (synopsis "Ivy interface for @code{xref}")
5386 (description "This package provides an Ivy interface for selecting from
5387 @code{xref} results.")
5388 (license license:gpl3))))
5389
5390 (define-public emacs-ivy-pass
5391 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
5392 (revision "1"))
5393 (package
5394 (name "emacs-ivy-pass")
5395 (version (git-version "0.1" revision commit))
5396 (source
5397 (origin
5398 (method git-fetch)
5399 (uri (git-reference
5400 (url "https://github.com/ecraven/ivy-pass.git")
5401 (commit commit)))
5402 (file-name (git-file-name name version))
5403 (sha256
5404 (base32
5405 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
5406 (build-system emacs-build-system)
5407 (propagated-inputs
5408 `(("emacs-ivy" ,emacs-ivy)
5409 ("emacs-password-store" ,emacs-password-store)
5410 ("password-store" ,password-store)))
5411 (home-page "https://github.com/ecraven/ivy-pass")
5412 (synopsis "Ivy interface for password store (pass)")
5413 (description "This package provides an Ivy interface for working with
5414 the password store @code{pass}.")
5415 (license license:gpl3))))
5416
5417 (define-public emacs-ivy-yasnippet
5418 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
5419 (revision "2"))
5420 (package
5421 (name "emacs-ivy-yasnippet")
5422 (version (git-version "0.1" revision commit))
5423 (source
5424 (origin
5425 (method git-fetch)
5426 (uri (git-reference
5427 (url "https://github.com/mkcms/ivy-yasnippet.git")
5428 (commit commit)))
5429 (file-name (git-file-name name version))
5430 (sha256
5431 (base32
5432 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
5433 (build-system emacs-build-system)
5434 (propagated-inputs
5435 `(("emacs-ivy" ,emacs-ivy)
5436 ("emacs-yasnippet" ,emacs-yasnippet)
5437 ("emacs-dash" ,emacs-dash)))
5438 (home-page "https://github.com/mkcms/ivy-yasnippet")
5439 (synopsis "Preview @code{yasnippets} with @code{ivy}")
5440 (description "This package allows you to select @code{yasnippet}
5441 snippets using @code{ivy} completion. When current selection changes in the
5442 minibuffer, the snippet contents are temporarily expanded in the buffer. To
5443 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
5444 @code{yas-minor-mode} first).")
5445 (license license:gpl3+))))
5446
5447 (define-public emacs-ivy-rich
5448 ;; The latest release version has a small mistake that has since been fixed,
5449 ;; so we use a more recent commit.
5450 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
5451 (revision "2"))
5452 (package
5453 (name "emacs-ivy-rich")
5454 (version (git-version "0.1.4" revision commit))
5455 (source
5456 (origin
5457 (method git-fetch)
5458 (uri (git-reference
5459 (url "https://github.com/Yevgnen/ivy-rich.git")
5460 (commit commit)))
5461 (file-name (git-file-name name version))
5462 (sha256
5463 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
5464 (build-system emacs-build-system)
5465 (propagated-inputs
5466 `(("emacs-ivy" ,emacs-ivy)))
5467 (home-page "https://github.com/Yevgnen/ivy-rich")
5468 (synopsis "More friendly interface for @code{ivy}")
5469 (description
5470 "This package extends @code{ivy} by showing more information in the
5471 minibuffer for each candidate. It adds columns showing buffer modes, file
5472 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
5473 show icons as well.")
5474 (license license:gpl3+))))
5475
5476 (define-public emacs-avy
5477 (package
5478 (name "emacs-avy")
5479 (version "0.5.0")
5480 (source
5481 (origin
5482 (method git-fetch)
5483 (uri (git-reference
5484 (url "https://github.com/abo-abo/avy.git")
5485 (commit version)))
5486 (file-name (git-file-name name version))
5487 (sha256
5488 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
5489 (build-system emacs-build-system)
5490 (arguments
5491 `(#:tests? #t
5492 #:test-command '("make" "test")))
5493 (home-page "https://github.com/abo-abo/avy")
5494 (synopsis "Tree-based completion for Emacs")
5495 (description
5496 "This package provides a generic completion method based on building a
5497 balanced decision tree with each candidate being a leaf. To traverse the tree
5498 from the root to a desired leaf, typically a sequence of @code{read-key} can
5499 be used.
5500
5501 In order for @code{read-key} to make sense, the tree needs to be visualized
5502 appropriately, with a character at each branch node. So this completion
5503 method works only for things that you can see on your screen, all at once,
5504 such as the positions of characters, words, line beginnings, links, or
5505 windows.")
5506 (license license:gpl3+)))
5507
5508 (define-public emacs-ace-window
5509 ;; last release version is from 2015
5510 (let ((commit "a5344925e399e1f015721cda6cf5db03c90ab87a")
5511 (revision "1"))
5512 (package
5513 (name "emacs-ace-window")
5514 (version (git-version "0.9.0" revision commit))
5515 (source
5516 (origin
5517 (method git-fetch)
5518 (uri (git-reference
5519 (url "https://github.com/abo-abo/ace-window.git")
5520 (commit commit)))
5521 (file-name (git-file-name name version))
5522 (sha256
5523 (base32
5524 "18jm8gfgnf6ja9aarws5650lw2zfi3wdwc5j8r5ijn5fcqhfy7rc"))))
5525 (build-system emacs-build-system)
5526 (propagated-inputs
5527 `(("emacs-avy" ,emacs-avy)))
5528 (home-page "https://github.com/abo-abo/ace-window")
5529 (synopsis "Quickly switch windows in Emacs")
5530 (description
5531 "@code{ace-window} is meant to replace @code{other-window}.
5532 In fact, when there are only two windows present, @code{other-window} is
5533 called. If there are more, each window will have its first character
5534 highlighted. Pressing that character will switch to that window.")
5535 (license license:gpl3+))))
5536
5537 (define-public emacs-iedit
5538 ;; Last release version was in 2016.
5539 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
5540 (revision "1"))
5541 (package
5542 (name "emacs-iedit")
5543 (version (git-version "0.9.9.9" revision commit))
5544 (source
5545 (origin
5546 (method git-fetch)
5547 (uri (git-reference
5548 (url "https://github.com/victorhge/iedit.git")
5549 (commit commit)))
5550 (file-name (git-file-name name version))
5551 (sha256
5552 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
5553 (build-system emacs-build-system)
5554 (home-page "http://www.emacswiki.org/emacs/Iedit")
5555 (synopsis "Edit multiple regions in the same way simultaneously")
5556 (description
5557 "This package is an Emacs minor mode and allows you to edit one
5558 occurrence of some text in a buffer (possibly narrowed) or region, and
5559 simultaneously have other occurrences edited in the same way.
5560
5561 You can also use Iedit mode as a quick way to temporarily show only the buffer
5562 lines that match the current text being edited. This gives you the effect of
5563 a temporary @code{keep-lines} or @code{occur}.")
5564 (license license:gpl3+))))
5565
5566 (define-public emacs-zoutline
5567 (package
5568 (name "emacs-zoutline")
5569 (version "0.2.0")
5570 (source
5571 (origin
5572 (method git-fetch)
5573 (uri (git-reference
5574 (url "https://github.com/abo-abo/zoutline")
5575 (commit version)))
5576 (sha256
5577 (base32
5578 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
5579 (file-name (git-file-name name version))))
5580 (build-system emacs-build-system)
5581 (home-page "https://github.com/abo-abo/zoutline")
5582 (synopsis "Simple outline library")
5583 (description
5584 "This library provides helpers for outlines. Outlines allow users to
5585 navigate code in a tree-like fashion.")
5586 (license license:gpl3+)))
5587
5588 (define-public emacs-lispy
5589 (package
5590 (name "emacs-lispy")
5591 (version "0.27.0")
5592 (home-page "https://github.com/abo-abo/lispy")
5593 (source (origin
5594 (method git-fetch)
5595 (uri (git-reference
5596 (url "https://github.com/abo-abo/lispy")
5597 (commit version)))
5598 (sha256
5599 (base32
5600 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
5601 (file-name (git-file-name name version))))
5602 (build-system emacs-build-system)
5603 (propagated-inputs
5604 `(("emacs-ace-window" ,emacs-ace-window)
5605 ("emacs-iedit" ,emacs-iedit)
5606 ("emacs-ivy" ,emacs-ivy)
5607 ("emacs-hydra" ,emacs-hydra)
5608 ("emacs-zoutline" ,emacs-zoutline)))
5609 (native-inputs
5610 `(("emacs-clojure-mode" ,emacs-clojure-mode)
5611 ("emacs-undercover" ,emacs-undercover)))
5612 (arguments
5613 `(#:include (cons* "^lispy-clojure\\.clj$"
5614 "^lispy-python\\.py$"
5615 %default-include)
5616 #:phases
5617 ;; XXX: one failing test involving python evaluation
5618 (modify-phases %standard-phases
5619 (add-before 'check 'make-test-writable
5620 (lambda _
5621 (make-file-writable "lispy-test.el")
5622 #t))
5623 (add-before 'check 'remove-python-eval-test
5624 (lambda _
5625 (emacs-batch-edit-file "lispy-test.el"
5626 `(progn
5627 (progn
5628 (goto-char (point-min))
5629 (re-search-forward
5630 "ert-deftest lispy-eval-python-str")
5631 (beginning-of-line)
5632 (kill-sexp))
5633 (basic-save-buffer)))
5634 #t)))
5635 #:tests? #t
5636 #:test-command '("make" "test")))
5637 (synopsis "Modal S-expression editing")
5638 (description
5639 "Due to the structure of Lisp syntax it's very rare for the programmer
5640 to want to insert characters right before \"(\" or right after \")\". Thus
5641 unprefixed printable characters can be used to call commands when the point is
5642 at one of these special locations. Lispy provides unprefixed keybindings for
5643 S-expression editing when point is at the beginning or end of an
5644 S-expression.")
5645 (license license:gpl3+)))
5646
5647 (define-public emacs-lispyville
5648 (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
5649 (revision "1"))
5650 (package
5651 (name "emacs-lispyville")
5652 (version (git-version "0.1" revision commit))
5653 (home-page "https://github.com/noctuid/lispyville")
5654 (source (origin
5655 (method git-fetch)
5656 (uri (git-reference (url home-page) (commit commit)))
5657 (sha256
5658 (base32
5659 "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
5660 (file-name (git-file-name name version))))
5661 (propagated-inputs
5662 `(("emacs-evil" ,emacs-evil)
5663 ("emacs-lispy" ,emacs-lispy)))
5664 (build-system emacs-build-system)
5665 (arguments
5666 `(#:phases
5667 ;; XXX: mysterious whitespace issue with one test
5668 (modify-phases %standard-phases
5669 (add-before 'check 'make-test-writable
5670 (lambda _
5671 (make-file-writable "lispyville-test.el")
5672 #t))
5673 (add-after 'make-test-writable 'remove-test
5674 (lambda _
5675 (emacs-batch-edit-file "lispyville-test.el"
5676 `(progn (progn (goto-char (point-min))
5677 (re-search-forward
5678 "ert-deftest lispyville-comment-and-clone-dwim")
5679 (beginning-of-line)
5680 (kill-sexp))
5681 (basic-save-buffer))))))
5682 #:tests? #t
5683 #:test-command '("make" "test")))
5684 (synopsis "Minor mode for integrating Evil with lispy")
5685 (description
5686 "LispyVille's main purpose is to provide a Lisp editing environment
5687 suited towards Evil users. It can serve as a minimal layer on top of lispy
5688 for better integration with Evil, but it does not require the use of lispy’s
5689 keybinding style. The provided commands allow for editing Lisp in normal
5690 state and will work even without lispy being enabled.")
5691 (license license:gpl3+))))
5692
5693 (define-public emacs-lpy
5694 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
5695 (revision "3"))
5696 (package
5697 (name "emacs-lpy")
5698 (version (git-version "0.1.0" revision commit))
5699 (source
5700 (origin
5701 (method git-fetch)
5702 (uri (git-reference
5703 (url "https://github.com/abo-abo/lpy")
5704 (commit commit)))
5705 (sha256
5706 (base32
5707 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
5708 (file-name (git-file-name name version))))
5709 (propagated-inputs
5710 `(("emacs-zoutline" ,emacs-zoutline)
5711 ("emacs-lispy" ,emacs-lispy)))
5712 (build-system emacs-build-system)
5713 (home-page "https://github.com/abo-abo/lpy")
5714 (synopsis "Modal editing for Python")
5715 (description
5716 "This package provides a minor mode for Python that binds useful
5717 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
5718 circumstances, and leaves the keys untouched outside of those situations,
5719 allowing unprefixed keys to insert their respective characters as expected.")
5720 (license license:gpl3+))))
5721
5722 (define-public emacs-clojure-mode
5723 (package
5724 (name "emacs-clojure-mode")
5725 (version "5.6.1")
5726 (source
5727 (origin
5728 (method git-fetch)
5729 (uri (git-reference
5730 (url "https://github.com/clojure-emacs/clojure-mode.git")
5731 (commit version)))
5732 (file-name (git-file-name name version))
5733 (sha256
5734 (base32 "1qadymqzs5fn1sb347xzfw8lqq6s85vvkh4kzm35m61g5i2lm86y"))))
5735 (build-system emacs-build-system)
5736 (native-inputs
5737 `(("emacs-dash" ,emacs-dash)
5738 ("emacs-s" ,emacs-s)
5739 ("ert-runner" ,emacs-ert-runner)))
5740 (arguments
5741 `(#:tests? #t
5742 #:test-command '("ert-runner")))
5743 (home-page "https://github.com/clojure-emacs/clojure-mode")
5744 (synopsis "Major mode for Clojure code")
5745 (description
5746 "This Emacs package provides font-lock, indentation, navigation and basic
5747 refactoring for the @uref{http://clojure.org, Clojure programming language}.
5748 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
5749 (license license:gpl3+)))
5750
5751 (define-public emacs-epl
5752 (package
5753 (name "emacs-epl")
5754 (version "0.8")
5755 (source
5756 (origin
5757 (method git-fetch)
5758 (uri (git-reference
5759 (url "https://github.com/cask/epl.git")
5760 (commit version)))
5761 (file-name (git-file-name name version))
5762 (sha256
5763 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
5764 (build-system emacs-build-system)
5765 (home-page "https://github.com/cask/epl")
5766 (synopsis "Emacs Package Library")
5767 (description
5768 "A package management library for Emacs, based on @code{package.el}.
5769
5770 The purpose of this library is to wrap all the quirks and hassle of
5771 @code{package.el} into a sane API.")
5772 (license license:gpl3+)))
5773
5774 (define-public emacs-counsel-projectile
5775 (package
5776 (name "emacs-counsel-projectile")
5777 (version "0.3.0")
5778 (source (origin
5779 (method git-fetch)
5780 (uri (git-reference
5781 (url "https://github.com/ericdanan/counsel-projectile")
5782 (commit version)))
5783 (file-name (git-file-name name version))
5784 (sha256
5785 (base32
5786 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
5787 (build-system emacs-build-system)
5788 (propagated-inputs
5789 `(("emacs-ivy" ,emacs-ivy)
5790 ("emacs-projectile" ,emacs-projectile)))
5791 (home-page "https://github.com/ericdanan/counsel-projectile")
5792 (synopsis "Enhance Projectile with Ivy")
5793 (description
5794 "This package uses Ivy to provide additional actions for Projectile
5795 commands and replacements for existing functions.")
5796 (license license:gpl3+)))
5797
5798 (define-public emacs-queue
5799 (package
5800 (name "emacs-queue")
5801 (version "0.2")
5802 (source (origin
5803 (method url-fetch)
5804 (uri (string-append "https://elpa.gnu.org/packages/queue-"
5805 version ".el"))
5806 (sha256
5807 (base32
5808 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
5809 (build-system emacs-build-system)
5810 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
5811 (synopsis "Queue data structure for Emacs")
5812 (description
5813 "This Emacs library provides queue data structure. These queues can be
5814 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
5815 stack, i.e. elements can be added to the front or back of the queue, and can
5816 be removed from the front. This type of data structure is sometimes called an
5817 \"output-restricted deque\".")
5818 (license license:gpl3+)))
5819
5820 (define-public emacs-pkg-info
5821 (package
5822 (name "emacs-pkg-info")
5823 (version "0.6")
5824 (source
5825 (origin
5826 (method git-fetch)
5827 (uri (git-reference
5828 (url "https://github.com/lunaryorn/pkg-info.el.git")
5829 (commit version)))
5830 (file-name (git-file-name name version))
5831 (sha256
5832 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
5833 (build-system emacs-build-system)
5834 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
5835 (home-page "https://github.com/lunaryorn/pkg-info.el")
5836 (synopsis "Information about Emacs packages")
5837 (description
5838 "This library extracts information from the installed Emacs packages.")
5839 (license license:gpl3+)))
5840
5841 (define-public emacs-spinner
5842 (package
5843 (name "emacs-spinner")
5844 (version "1.7.3")
5845 (source (origin
5846 (method url-fetch)
5847 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
5848 version ".el"))
5849 (sha256
5850 (base32
5851 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
5852 (build-system emacs-build-system)
5853 (home-page "https://github.com/Malabarba/spinner.el")
5854 (synopsis "Emacs mode-line spinner for operations in progress")
5855 (description
5856 "This Emacs package adds spinners and progress-bars to the mode-line for
5857 ongoing operations.")
5858 (license license:gpl3+)))
5859
5860 (define-public emacs-sparql-mode
5861 (package
5862 (name "emacs-sparql-mode")
5863 (version "2.0.1")
5864 (source
5865 (origin
5866 (method git-fetch)
5867 (uri (git-reference
5868 (url "https://github.com/ljos/sparql-mode.git")
5869 (commit (string-append "v" version))))
5870 (file-name (git-file-name name version))
5871 (sha256
5872 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
5873 (build-system emacs-build-system)
5874 (home-page "https://github.com/ljos/sparql-mode")
5875 (synopsis "SPARQL mode for Emacs")
5876 (description "This package provides a major mode for Emacs that provides
5877 syntax highlighting for SPARQL. It also provides a way to execute queries
5878 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
5879 possible to query other endpoints like DBPedia.")
5880 (license license:gpl3+)))
5881
5882 (define-public emacs-better-defaults
5883 (package
5884 (name "emacs-better-defaults")
5885 (version "0.1.3")
5886 (source
5887 (origin
5888 (method url-fetch)
5889 (uri (string-append "https://github.com/technomancy/better-defaults"
5890 "/archive/" version ".tar.gz"))
5891 (file-name (string-append name "-" version ".tar.gz"))
5892 (sha256
5893 (base32
5894 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
5895 (build-system emacs-build-system)
5896 (home-page "https://github.com/technomancy/better-defaults")
5897 (synopsis "Better defaults for Emacs")
5898 (description
5899 "Better defaults attempts to address the most obvious deficiencies of the
5900 Emacs default configuration in uncontroversial ways that nearly everyone can
5901 agree upon.")
5902 (license license:gpl3+)))
5903
5904 (define-public emacs-undohist-el
5905 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
5906 (revision "1"))
5907 (package
5908 (name "emacs-undohist-el")
5909 (version (git-version "0" revision commit))
5910 (source
5911 (origin
5912 (method git-fetch)
5913 (uri (git-reference
5914 (url "https://github.com/m2ym/undohist-el")
5915 (commit commit)))
5916 (file-name (git-file-name name version))
5917 (sha256
5918 (base32
5919 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
5920 (patches
5921 (search-patches "emacs-undohist-ignored.patch"))))
5922 (build-system emacs-build-system)
5923 (home-page "https://github.com/m2ym/undohist-el")
5924 (synopsis "Save undo history between sessions")
5925 (description "This package allows persistent use of undo history for
5926 individual file buffers.")
5927 (license license:gpl3+))))
5928
5929 (define-public emacs-eprime
5930 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
5931 (package
5932 (name "emacs-eprime")
5933 (version (string-append "20140513-" (string-take commit 7)))
5934 (source (origin
5935 (method url-fetch)
5936 (uri (string-append "https://raw.githubusercontent.com"
5937 "/AndrewHynes/eprime-mode/"
5938 commit "/eprime-mode.el"))
5939 (file-name (string-append "eprime-" version ".el"))
5940 (sha256
5941 (base32
5942 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
5943 (build-system emacs-build-system)
5944 (home-page "https://github.com/AndrewHynes/eprime-mode")
5945 (synopsis "E-prime checking mode for Emacs")
5946 (description "This package provides an E-prime checking mode for Emacs
5947 that highlights non-conforming text. The subset of the English language called
5948 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
5949 (license license:gpl3+))))
5950
5951 (define-public emacs-julia-mode
5952 ;; XXX: Upstream version remained stuck at 0.3. See
5953 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
5954 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
5955 (revision "1"))
5956 (package
5957 (name "emacs-julia-mode")
5958 (version (string-append "0.3-" revision "." (string-take commit 8)))
5959 (source
5960 (origin
5961 (method git-fetch)
5962 (uri (git-reference
5963 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
5964 (commit commit)))
5965 (file-name (git-file-name name version))
5966 (sha256
5967 (base32
5968 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
5969 (build-system emacs-build-system)
5970 (arguments
5971 `(#:tests? #t
5972 #:test-command '("emacs" "--batch"
5973 "-l" "julia-mode-tests.el"
5974 "-f" "ert-run-tests-batch-and-exit")))
5975 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
5976 (synopsis "Major mode for Julia")
5977 (description "This Emacs package provides a mode for the Julia
5978 programming language.")
5979 (license license:expat))))
5980
5981 (define-public emacs-smex
5982 (package
5983 (name "emacs-smex")
5984 (version "3.0")
5985 (source (origin
5986 (method url-fetch)
5987 (uri (string-append "https://raw.githubusercontent.com"
5988 "/nonsequitur/smex/" version "/smex.el"))
5989 (file-name (string-append "smex-" version ".el"))
5990 (sha256
5991 (base32
5992 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
5993 (build-system emacs-build-system)
5994 (home-page "https://github.com/nonsequitur/smex/")
5995 (synopsis "M-x interface with Ido-style fuzzy matching")
5996 (description
5997 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
5998 convenient interface to your recently and most frequently used commands. And
5999 to all the other commands, too.")
6000 (license license:gpl3+)))
6001
6002 (define-public emacs-js2-mode
6003 (package
6004 (name "emacs-js2-mode")
6005 (version "20190219")
6006 (source
6007 (origin
6008 (method git-fetch)
6009 (uri (git-reference
6010 (url "https://github.com/mooz/js2-mode.git")
6011 (commit version)))
6012 (file-name (git-file-name name version))
6013 (sha256
6014 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
6015 (build-system emacs-build-system)
6016 (arguments
6017 `(#:tests? #t
6018 #:test-command '("make" "test")))
6019 (home-page "https://github.com/mooz/js2-mode/")
6020 (synopsis "Improved JavaScript editing mode for Emacs")
6021 (description
6022 "Js2-mode provides a JavaScript major mode for Emacs that is more
6023 advanced than the built-in javascript-mode. Features include accurate syntax
6024 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
6025 errors and strict-mode warnings, smart line-wrapping within comments and
6026 strings, and code folding.")
6027 (license license:gpl3+)))
6028
6029 (define-public emacs-nodejs-repl
6030 (package
6031 (name "emacs-nodejs-repl")
6032 (version "0.2.2")
6033 (source (origin
6034 (method git-fetch)
6035 (uri (git-reference
6036 (url "https://github.com/abicky/nodejs-repl.el")
6037 (commit version)))
6038 (file-name (git-file-name name version))
6039 (sha256
6040 (base32
6041 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
6042 (build-system emacs-build-system)
6043 (inputs
6044 `(("node" ,node)))
6045 (native-inputs
6046 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
6047 (arguments
6048 `(#:phases
6049 (modify-phases %standard-phases
6050 (add-after 'unpack 'set-shell
6051 ;; Setting the SHELL environment variable is required for the tests
6052 ;; to find sh.
6053 (lambda _
6054 (setenv "SHELL" (which "sh"))
6055 #t))
6056 (add-after 'unpack 'configure
6057 (lambda* (#:key inputs outputs #:allow-other-keys)
6058 (let ((node (assoc-ref inputs "node")))
6059 ;; Specify the absolute file names of the various
6060 ;; programs so that everything works out-of-the-box.
6061 (make-file-writable "nodejs-repl.el")
6062 (emacs-substitute-variables
6063 "nodejs-repl.el"
6064 ("nodejs-repl-command"
6065 (string-append node "/bin/node")))))))
6066 #:tests? #t
6067 #:test-command '("emacs" "-Q" "--batch"
6068 "-L" "."
6069 "-l" "test/test.el"
6070 "-f" "ert-run-tests-batch-and-exit")))
6071 (home-page "https://github.com/abicky/nodejs-repl.el")
6072 (synopsis "Node.js REPL inside Emacs")
6073 (description
6074 "This program is derived from comint-mode and provides the following
6075 features:
6076
6077 @itemize
6078 @item TAB completion same as Node.js REPL
6079 @item file name completion in string
6080 @item incremental history search
6081 @end itemize")
6082 (license license:gpl3+)))
6083
6084 (define-public emacs-typescript-mode
6085 (package
6086 (name "emacs-typescript-mode")
6087 (version "0.3")
6088 (source (origin
6089 (method git-fetch)
6090 (uri (git-reference
6091 (url "https://github.com/ananthakumaran/typescript.el")
6092 (commit (string-append "v" version))))
6093 (file-name (git-file-name name version))
6094 (sha256
6095 (base32
6096 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
6097 (build-system emacs-build-system)
6098 (home-page "https://github.com/ananthakumaran/typescript.el")
6099 (synopsis "Emacs major mode for editing Typescript code")
6100 (description
6101 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
6102 This is much more robust and works with @code{cc-mode}'s comment
6103 filling (mostly). The modifications to the original @code{javascript.el} mode
6104 mainly consisted in replacing \"javascript\" with \"typescript\"
6105
6106 The main features of this Typescript mode are syntactic highlighting (enabled
6107 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
6108 indentation and filling of comments and C preprocessor fontification.")
6109 (license license:gpl3+)))
6110
6111 (define-public emacs-tide
6112 (package
6113 (name "emacs-tide")
6114 (version "3.2.3")
6115 (source (origin
6116 (method git-fetch)
6117 (uri (git-reference
6118 (url "https://github.com/ananthakumaran/tide")
6119 (commit (string-append "v" version))))
6120 (file-name (git-file-name name version))
6121 (sha256
6122 (base32
6123 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
6124 (build-system emacs-build-system)
6125 (propagated-inputs
6126 `(("emacs-dash" ,emacs-dash)
6127 ("emacs-s" ,emacs-s)
6128 ("emacs-flycheck" ,emacs-flycheck)
6129 ("emacs-typescript-mode" ,emacs-typescript-mode)))
6130 (home-page "https://github.com/ananthakumaran/tide")
6131 (synopsis "Typescript IDE for Emacs")
6132 (description
6133 "Tide is an Interactive Development Environment (IDE) for Emacs which
6134 provides the following features:
6135
6136 @itemize
6137 @item ElDoc
6138 @item Auto complete
6139 @item Flycheck
6140 @item Jump to definition, Jump to type definition
6141 @item Find occurrences
6142 @item Rename symbol
6143 @item Imenu
6144 @item Compile On Save
6145 @item Highlight Identifiers
6146 @item Code Fixes
6147 @item Code Refactor
6148 @item Organize Imports
6149 @end itemize")
6150 (license license:gpl3+)))
6151
6152 (define-public emacs-markdown-mode
6153 (package
6154 (name "emacs-markdown-mode")
6155 (version "2.3")
6156 (source (origin
6157 (method git-fetch)
6158 (uri (git-reference
6159 (url "https://github.com/jrblevin/markdown-mode.git")
6160 (commit (string-append "v" version))))
6161 (file-name (git-file-name name version))
6162 (sha256
6163 (base32
6164 "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"))))
6165 (build-system emacs-build-system)
6166 (home-page "http://jblevins.org/projects/markdown-mode/")
6167 (synopsis "Emacs Major mode for Markdown files")
6168 (description
6169 "Markdown-mode is a major mode for editing Markdown-formatted text files
6170 in Emacs.")
6171 (license license:gpl3+)))
6172
6173 (define-public emacs-evil-markdown
6174 (let ((commit "46cd81b37991c4325fc24015a610f832b0ff995d")
6175 (revision "1"))
6176 (package
6177 (name "emacs-evil-markdown")
6178 (version (git-version "0.0.2" revision commit))
6179 (source (origin
6180 (method git-fetch)
6181 (uri (git-reference
6182 (url "https://github.com/Somelauw/evil-markdown.git")
6183 (commit commit)))
6184 (file-name (git-file-name name version))
6185 (sha256
6186 (base32
6187 "0mad8sp5y9vyk28595qygspnyh8bfmb1fbxjlw70qwc1kdn822n4"))))
6188 (build-system emacs-build-system)
6189 (propagated-inputs
6190 `(("emacs-markdown-mode" ,emacs-markdown-mode)
6191 ("emacs-evil" ,emacs-evil)))
6192 (home-page "http://jblevins.org/projects/evil-markdown/")
6193 (synopsis "Evil keybindings for @code{markdown-mode}")
6194 (description
6195 "This package provides custom text objects and bindings for
6196 @code{markdown-mode}.")
6197 (license license:gpl3+))))
6198
6199 (define-public emacs-edit-indirect
6200 (package
6201 (name "emacs-edit-indirect")
6202 (version "0.1.5")
6203 (source
6204 (origin
6205 (method git-fetch)
6206 (uri (git-reference
6207 (url "https://github.com/Fanael/edit-indirect")
6208 (commit version)))
6209 (file-name (git-file-name name version))
6210 (sha256
6211 (base32
6212 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
6213 (build-system emacs-build-system)
6214 (home-page "https://github.com/Fanael/edit-indirect")
6215 (synopsis "Edit regions in separate buffers")
6216 (description "This package allows you to edit regions in separate buffers,
6217 like @code{org-edit-src-code} but for arbitrary regions.")
6218 (license license:gpl3+)))
6219
6220 (define-public emacs-projectile
6221 (package
6222 (name "emacs-projectile")
6223 (version "2.0.0")
6224 (source (origin
6225 (method url-fetch)
6226 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
6227 "/projectile/v" version "/projectile.el"))
6228 (file-name (string-append "projectile-" version ".el"))
6229 (sha256
6230 (base32
6231 "149hablms6n9b4wp78dz4pjz1rzyylfw9ayghq5p9d7k661mvyby"))))
6232 (build-system emacs-build-system)
6233 (propagated-inputs
6234 `(("emacs-dash" ,emacs-dash)
6235 ("emacs-pkg-info" ,emacs-pkg-info)))
6236 (home-page "https://github.com/bbatsov/projectile")
6237 (synopsis "Manage and navigate projects in Emacs easily")
6238 (description
6239 "This library provides easy project management and navigation. The
6240 concept of a project is pretty basic - just a folder containing special file.
6241 Currently git, mercurial and bazaar repos are considered projects by default.
6242 If you want to mark a folder manually as a project just create an empty
6243 .projectile file in it.")
6244 (license license:gpl3+)))
6245
6246 (define-public emacs-skeletor
6247 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
6248 (revision "1"))
6249 (package
6250 (name "emacs-skeletor")
6251 (version (git-version "1.6.1" revision commit))
6252 (source (origin
6253 (method git-fetch)
6254 (uri (git-reference
6255 (url "https://github.com/chrisbarrett/skeletor.el.git")
6256 (commit commit)))
6257 (file-name (git-file-name name version))
6258 (sha256
6259 (base32
6260 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
6261 (build-system emacs-build-system)
6262 (propagated-inputs
6263 `(("emacs-s" ,emacs-s)
6264 ("emacs-f" ,emacs-f)
6265 ("emacs-dash" ,emacs-dash)
6266 ("emacs-let-alist" ,emacs-let-alist)))
6267 (native-inputs
6268 `(("emacs-ert-runner" ,emacs-ert-runner)))
6269 (arguments
6270 `(#:include (cons "^project-skeletons\\/" %default-include)
6271 ;; XXX: one failing test involving initializing a git repo
6272 #:phases
6273 (modify-phases %standard-phases
6274 (add-before 'check 'make-test-writable
6275 (lambda _
6276 (make-file-writable "test/skeletor-test.el")
6277 #t))
6278 (add-before 'check 'remove-git-test
6279 (lambda _
6280 (emacs-batch-edit-file "test/skeletor-test.el"
6281 `(progn
6282 (progn
6283 (goto-char (point-min))
6284 (re-search-forward
6285 "ert-deftest initialises-git-repo")
6286 (beginning-of-line)
6287 (kill-sexp))
6288 (basic-save-buffer)))
6289 #t)))
6290 #:tests? #t
6291 #:test-command '("ert-runner")))
6292 (home-page "https://github.com/chrisbarrett/skeletor.el")
6293 (synopsis "Project skeletons for Emacs")
6294 (description "This package provides project templates and automates the
6295 mundane parts of setting up a new project, such as version control, licenses,
6296 and tooling.")
6297 (license license:gpl3+))))
6298
6299 (define-public emacs-elfeed
6300 (package
6301 (name "emacs-elfeed")
6302 (version "3.2.0")
6303 (source
6304 (origin
6305 (method git-fetch)
6306 (uri (git-reference
6307 (url "https://github.com/skeeto/elfeed.git")
6308 (commit version)))
6309 (file-name (git-file-name name version))
6310 (sha256
6311 (base32 "0m0a35210pb4yf6m8mzaq6nkl9x6fphjjqyl3dzygnmmzxkc8aw2"))))
6312 (build-system emacs-build-system)
6313 (arguments
6314 `(#:tests? #t
6315 #:test-command '("make" "test")))
6316 (home-page "https://github.com/skeeto/elfeed")
6317 (synopsis "Atom/RSS feed reader for Emacs")
6318 (description
6319 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
6320 and RSS, with a user interface inspired by notmuch.")
6321 (license license:gpl3+)))
6322
6323 (define-public emacs-elfeed-org
6324 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
6325 (package
6326 (name "emacs-elfeed-org")
6327 (version (git-version "0.1" "1" commit))
6328 (source
6329 (origin
6330 (method git-fetch)
6331 (uri (git-reference
6332 (url "https://github.com/remyhonig/elfeed-org.git")
6333 (commit commit)))
6334 (file-name (git-file-name name version))
6335 (sha256
6336 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
6337 (build-system emacs-build-system)
6338 (propagated-inputs
6339 `(("emacs-elfeed" ,emacs-elfeed)
6340 ("emacs-org" ,emacs-org)
6341 ("emacs-dash" ,emacs-dash)
6342 ("emacs-s" ,emacs-s)))
6343 (native-inputs
6344 `(("ert-runner" ,emacs-ert-runner)
6345 ("emacs-xtest" ,emacs-xtest)))
6346 (arguments
6347 `(#:tests? #t
6348 #:test-command '("ert-runner" "-L" "org-mode/lisp")
6349 #:phases
6350 (modify-phases %standard-phases
6351 (add-before 'check 'chmod
6352 (lambda _
6353 (chmod "test/fixture-mark-feed-ignore.org" #o644)
6354 #t)))))
6355 (home-page "https://github.com/remyhonig/elfeed-org")
6356 (synopsis "Configure Elfeed with an Org-mode file")
6357 (description
6358 "@code{elfeed-org} lets you manage your Elfeed subscriptions
6359 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
6360 the regular flat list, where there is no hierarchy and tag names are
6361 duplicated a lot. Org-mode makes the book keeping of tags and feeds
6362 much easier.")
6363 (license license:gpl3+))))
6364
6365 (define-public emacs-el-x
6366 (package
6367 (name "emacs-el-x")
6368 (version "0.3.1")
6369 (source (origin
6370 (method git-fetch)
6371 (uri (git-reference
6372 (url "https://github.com/sigma/el-x.git")
6373 (commit (string-append "v" version))))
6374 (file-name (git-file-name name version))
6375 (sha256
6376 (base32
6377 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
6378 (build-system emacs-build-system)
6379 (arguments
6380 `(#:phases
6381 (modify-phases %standard-phases
6382 ;; Move the source files to the top level, which is included in
6383 ;; the EMACSLOADPATH.
6384 (add-after 'unpack 'move-source-files
6385 (lambda _
6386 (let ((el-files (find-files "./lisp" ".*\\.el$")))
6387 (for-each (lambda (f)
6388 (rename-file f (basename f)))
6389 el-files))
6390 #t)))))
6391 (home-page "https://github.com/sigma/el-x")
6392 (synopsis "Emacs Lisp extensions")
6393 (description "command@{emacs-el-x} defines the @code{dflet} macro to
6394 provide the historic behavior of @code{flet}, as well as
6395 @code{declare-function} stub for older Emacs.")
6396 (license license:gpl2+)))
6397
6398 (define-public emacs-mocker
6399 (package
6400 (name "emacs-mocker")
6401 (version "0.3.1")
6402 (source (origin
6403 (method git-fetch)
6404 (uri (git-reference
6405 (url "https://github.com/sigma/mocker.el.git")
6406 (commit (string-append "v" version))))
6407 (file-name (git-file-name name version))
6408 (sha256
6409 (base32
6410 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
6411 (build-system emacs-build-system)
6412 (arguments
6413 `(#:tests? #t
6414 #:test-command '("ert-runner")))
6415 (native-inputs
6416 `(("ert-runner" ,emacs-ert-runner)))
6417 (propagated-inputs
6418 `(("emacs-el-x" ,emacs-el-x)))
6419 (home-page "https://github.com/sigma/mocker.el")
6420 (synopsis "Mocking framework for Emacs Lisp")
6421 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
6422 It uses regular Lisp rather than a domain specific language (DSL), which
6423 maximizes flexibility (at the expense of conciseness).")
6424 (license license:gpl2+)))
6425
6426 (define-public emacs-find-file-in-project
6427 (package
6428 (name "emacs-find-file-in-project")
6429 (version "5.4.7")
6430 (source (origin
6431 (method git-fetch)
6432 (uri (git-reference
6433 (url "https://github.com/technomancy/find-file-in-project.git")
6434 (commit version)))
6435 (file-name (git-file-name name version))
6436 (sha256
6437 (base32
6438 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
6439 (build-system emacs-build-system)
6440 (arguments
6441 `(#:phases
6442 (modify-phases %standard-phases
6443 (add-before 'check 'set-shell
6444 ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
6445 ;; work.
6446 (lambda _
6447 (setenv "SHELL" (which "sh"))
6448 #t)))
6449 #:tests? #t
6450 #:test-command '("./tests/test.sh")))
6451 (home-page "https://github.com/technomancy/find-file-in-project")
6452 (synopsis "File/directory finder for Emacs")
6453 (description "@code{find-file-in-project} allows to find files or
6454 directories quickly in the current project. The project root is detected
6455 automatically when Git, Subversion or Mercurial are used. It also provides
6456 functions to assist in reviewing changes on files.")
6457 (license license:gpl3+)))
6458
6459 (define-public emacs-pyvenv
6460 (package
6461 (name "emacs-pyvenv")
6462 (version "1.20")
6463 (source (origin
6464 (method git-fetch)
6465 (uri (git-reference
6466 (url "https://github.com/jorgenschaefer/pyvenv.git")
6467 (commit (string-append "v" version))))
6468 (file-name (git-file-name name version))
6469 (sha256
6470 (base32
6471 "1x052fsavb94x3scpqd6n9spqgzaahzbdxhg4qa5sy6hqsabn6zh"))))
6472 (build-system emacs-build-system)
6473 (arguments
6474 `(#:phases
6475 (modify-phases %standard-phases
6476 ;; This phase incorrectly attempts to substitute "activate" and fails
6477 ;; doing so.
6478 (delete 'patch-el-files))
6479 #:tests? #t
6480 #:test-command '("ert-runner")))
6481 (native-inputs
6482 `(("ert-runner" ,emacs-ert-runner)
6483 ("emacs-mocker" ,emacs-mocker)))
6484 (home-page "https://github.com/jorgenschaefer/pyvenv")
6485 (synopsis "Python virtual environment interface for Emacs")
6486 (description "pyvenv.el is a minor mode to support using Python virtual
6487 environments (virtualenv) inside Emacs.")
6488 (license license:gpl3+)))
6489
6490 (define-public emacs-highlight-indentation
6491 ;; Last release version is from 2015.
6492 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
6493 (revision "1"))
6494 (package
6495 (name "emacs-highlight-indentation")
6496 (version (git-version "0.7.0" revision commit))
6497 (source
6498 (origin
6499 (method git-fetch)
6500 (uri (git-reference
6501 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
6502 (commit commit)))
6503 (file-name (git-file-name name version))
6504 (sha256
6505 (base32
6506 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
6507 (build-system emacs-build-system)
6508 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
6509 (synopsis "Highlighting indentation for Emacs")
6510 (description "This package provides two minor modes to highlight
6511 indentation guides in Emacs:
6512
6513 @enumerate
6514 @item @code{highlight-indentation-mode}, which displays guidelines
6515 indentation (space indentation only).
6516 @item @code{highlight-indentation-current-column-mode}, which displays
6517 guidelines for the current-point indentation (space indentation only).
6518 @end enumerate")
6519 (license license:gpl2+))))
6520
6521 (define-public emacs-elpy
6522 (package
6523 (name "emacs-elpy")
6524 (version "1.31.0")
6525 (source (origin
6526 (method git-fetch)
6527 (uri (git-reference
6528 (url "https://github.com/jorgenschaefer/elpy.git")
6529 (commit version)))
6530 (file-name (git-file-name name version))
6531 (sha256
6532 (base32
6533 "0bvmgqs3c80bhs9v5ymgadv7vk4iamha10y7rl09pixmjm4mzagk"))))
6534 (build-system emacs-build-system)
6535 (arguments
6536 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
6537 #:phases
6538 ;; TODO: Make `elpy-config' display Guix commands :)
6539 (modify-phases %standard-phases
6540 ;; One elpy test depends on being run inside a Python virtual
6541 ;; environment to pass. We have nothing to gain from doing so here,
6542 ;; so we just trick Elpy into thinking we are (see:
6543 ;; https://github.com/jorgenschaefer/elpy/pull/1293).
6544 (add-before 'check 'fake-virtualenv
6545 (lambda _
6546 (setenv "VIRTUAL_ENV" "/tmp")
6547 #t))
6548 (add-before 'check 'build-doc
6549 (lambda _
6550 (with-directory-excursion "docs"
6551 (invoke "make" "info" "man"))
6552 ;; Move .info file at the root so that it can installed by the
6553 ;; 'move-doc phase.
6554 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
6555 #t))
6556 (add-after 'build-doc 'install-manpage
6557 (lambda* (#:key outputs #:allow-other-keys)
6558 (let* ((out (assoc-ref outputs "out"))
6559 (man1 (string-append out "/share/man/man1")))
6560 (mkdir-p man1)
6561 (copy-file "docs/_build/man/elpy.1"
6562 (string-append man1 "/elpy.1")))
6563 #t)))
6564 #:tests? #t
6565 #:test-command '("ert-runner")))
6566 (propagated-inputs
6567 `(("emacs-company" ,emacs-company)
6568 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
6569 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
6570 ("emacs-yasnippet" ,emacs-yasnippet)
6571 ("pyvenv" ,emacs-pyvenv)
6572 ("s" ,emacs-s)))
6573 (native-inputs
6574 `(("ert-runner" ,emacs-ert-runner)
6575 ("emacs-f" ,emacs-f)
6576 ("python" ,python-wrapper)
6577 ("python-autopep8" ,python-autopep8)
6578 ("python-black" ,python-black)
6579 ("python-flake8" ,python-flake8)
6580 ("python-jedi" ,python-jedi)
6581 ("python-yapf" ,python-yapf)
6582 ;; For documentation.
6583 ("python-sphinx" ,python-sphinx)
6584 ("texinfo" ,texinfo)))
6585 (home-page "https://github.com/jorgenschaefer/elpy")
6586 (synopsis "Python development environment for Emacs")
6587 (description "Elpy brings powerful Python editing to Emacs. It combines
6588 and configures a number of other packages written in Emacs Lisp as well as
6589 Python, together offering features such as navigation, documentation,
6590 completion, interactive development and more.")
6591 (license license:gpl3+)))
6592
6593 (define-public emacs-rainbow-delimiters
6594 (package
6595 (name "emacs-rainbow-delimiters")
6596 (version "2.1.3")
6597 (source (origin
6598 (method git-fetch)
6599 (uri (git-reference
6600 (url "https://github.com/Fanael/rainbow-delimiters.git")
6601 (commit version)))
6602 (file-name (git-file-name name version))
6603 (sha256
6604 (base32
6605 "0vs9pf8lqq5p5qz1770pxgw47ym4xj8axxmwamn66br59mykdhv0"))))
6606 (build-system emacs-build-system)
6607 (home-page "https://github.com/Fanael/rainbow-delimiters")
6608 (arguments
6609 `(#:tests? #t
6610 #:test-command '("emacs" "-Q" "-batch"
6611 "-l" "rainbow-delimiters-test.el"
6612 "-f" "ert-run-tests-batch-and-exit")))
6613 (synopsis "Highlight brackets according to their depth")
6614 (description
6615 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
6616 highlights parentheses, brackets, and braces according to their depth. Each
6617 successive level is highlighted in a different color, making it easy to spot
6618 matching delimiters, orient yourself in the code, and tell which statements
6619 are at a given level.")
6620 (license license:gpl3+)))
6621
6622 (define-public emacs-rainbow-identifiers
6623 (package
6624 (name "emacs-rainbow-identifiers")
6625 (version "0.2.2")
6626 (source (origin
6627 (method url-fetch)
6628 (uri (string-append "https://raw.githubusercontent.com/Fanael"
6629 "/rainbow-identifiers/" version
6630 "/rainbow-identifiers.el"))
6631 (file-name (string-append "rainbow-identifiers-" version ".el"))
6632 (sha256
6633 (base32
6634 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
6635 (build-system emacs-build-system)
6636 (home-page "https://github.com/Fanael/rainbow-identifiers")
6637 (synopsis "Highlight identifiers in source code")
6638 (description
6639 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
6640 identifiers based on their names. Each identifier gets a color based on a hash
6641 of its name.")
6642 (license license:bsd-2)))
6643
6644 (define-public emacs-rainbow-mode
6645 (package
6646 (name "emacs-rainbow-mode")
6647 (version "1.0.1")
6648 (source (origin
6649 (method url-fetch)
6650 (uri (string-append
6651 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
6652 (sha256
6653 (base32
6654 "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
6655 (build-system emacs-build-system)
6656 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
6657 (synopsis "Colorize color names in buffers")
6658 (description
6659 "This minor mode sets background color to strings that match color
6660 names, e.g. #0000ff is displayed in white with a blue background.")
6661 (license license:gpl3+)))
6662
6663 (define-public emacs-visual-fill-column
6664 (package
6665 (name "emacs-visual-fill-column")
6666 (version "1.11")
6667 (source (origin
6668 (method url-fetch)
6669 (uri (string-append "https://codeload.github.com/joostkremers/"
6670 "visual-fill-column/tar.gz/" version))
6671 (file-name (string-append name "-" version ".tar.gz"))
6672 (sha256
6673 (base32
6674 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
6675 (build-system emacs-build-system)
6676 (home-page "https://github.com/joostkremers/visual-fill-column")
6677 (synopsis "Fill-column for visual-line-mode")
6678 (description
6679 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
6680 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
6681 wrapping lines at the window edge, which is the standard behaviour of
6682 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
6683 @code{fill-column} is too large for the window, the text is wrapped at the
6684 window edge.")
6685 (license license:gpl3+)))
6686
6687 (define-public emacs-writeroom
6688 (package
6689 (name "emacs-writeroom")
6690 (version "3.7")
6691 (source
6692 (origin
6693 (method git-fetch)
6694 (uri (git-reference
6695 (url "https://github.com/joostkremers/writeroom-mode.git")
6696 (commit version)))
6697 (file-name (git-file-name name version))
6698 (sha256
6699 (base32 "13nbls5qxz5z8firjxaip8m9vzfbbpxmwrmr01njbk4axpwrpj0z"))))
6700 (build-system emacs-build-system)
6701 (propagated-inputs
6702 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
6703 (home-page "https://github.com/joostkremers/writeroom-mode")
6704 (synopsis "Distraction-free writing for Emacs")
6705 (description
6706 "This package defines a minor mode for distraction-free writing. Some of
6707 the default effects include entering fullscreen, deleting other windows of the
6708 current frame, disabling the mode line, and adding margins to the buffer that
6709 restrict the text width to 80 characters.")
6710 (license license:bsd-3)))
6711
6712 (define-public emacs-ido-completing-read+
6713 (package
6714 (name "emacs-ido-completing-read+")
6715 (version "3.12")
6716 (source (origin
6717 (method url-fetch)
6718 (uri (string-append "https://raw.githubusercontent.com"
6719 "/DarwinAwardWinner/ido-ubiquitous/v"
6720 version "/ido-completing-read+.el"))
6721 (file-name (string-append "ido-completing-read+-" version ".el"))
6722 (sha256
6723 (base32
6724 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
6725 (build-system emacs-build-system)
6726 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
6727 (synopsis "Replacement for completing-read using ido")
6728 (description
6729 "The ido-completing-read+ function is a wrapper for ido-completing-read.
6730 Importantly, it detects edge cases that ordinary ido cannot handle and either
6731 adjusts them so ido can handle them, or else simply falls back to the standard
6732 Emacs completion function instead.")
6733 (license license:gpl3+)))
6734
6735 (define-public emacs-ido-ubiquitous
6736 (package
6737 (name "emacs-ido-ubiquitous")
6738 (version "3.12")
6739 (source (origin
6740 (method url-fetch)
6741 (uri (string-append "https://raw.githubusercontent.com"
6742 "/DarwinAwardWinner/ido-ubiquitous/v"
6743 version "/ido-ubiquitous.el"))
6744 (file-name (string-append "ido-ubiquitous-" version ".el"))
6745 (sha256
6746 (base32
6747 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
6748 (build-system emacs-build-system)
6749 (propagated-inputs
6750 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
6751 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
6752 (synopsis "Use ido (nearly) everywhere")
6753 (description
6754 "Ido-ubiquitous enables ido-style completion for almost every function
6755 that uses the standard completion function completing-read.")
6756 (license license:gpl3+)))
6757
6758 (define-public emacs-yaml-mode
6759 (package
6760 (name "emacs-yaml-mode")
6761 (version "0.0.14")
6762 (source (origin
6763 (method git-fetch)
6764 (uri (git-reference
6765 (url "https://github.com/yoshiki/yaml-mode.git")
6766 (commit version)))
6767 (file-name (git-file-name name version))
6768 (sha256
6769 (base32
6770 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
6771 (build-system emacs-build-system)
6772 (home-page "https://github.com/yoshiki/yaml-mode")
6773 (synopsis "Major mode for editing YAML files")
6774 (description
6775 "Yaml-mode is an Emacs major mode for editing files in the YAML data
6776 serialization format. It was initially developed by Yoshiki Kurihara and many
6777 features were added by Marshall Vandegrift. As YAML and Python share the fact
6778 that indentation determines structure, this mode provides indentation and
6779 indentation command behavior very similar to that of python-mode.")
6780 (license license:gpl3+)))
6781
6782 (define-public emacs-gitlab-ci-mode
6783 (package
6784 (name "emacs-gitlab-ci-mode")
6785 (version "20190425.11.10")
6786 (source (origin
6787 (method git-fetch)
6788 (uri (git-reference
6789 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
6790 (commit (string-append "v" version))))
6791 (file-name (git-file-name name version))
6792 (sha256
6793 (base32
6794 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
6795 (build-system emacs-build-system)
6796 (propagated-inputs
6797 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
6798 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
6799 (synopsis "Emacs mode for editing GitLab CI files")
6800 (description
6801 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
6802 files. It provides syntax highlighting and completion for keywords and
6803 special variables. An interface to GitLab’s CI file linter is also provided
6804 via @code{gitlab-ci-lint}.")
6805 (license license:gpl3+)))
6806
6807 (define-public emacs-web-mode
6808 (package
6809 (name "emacs-web-mode")
6810 (version "16")
6811 (source (origin
6812 (method git-fetch)
6813 (uri (git-reference
6814 (url "https://github.com/fxbois/web-mode.git")
6815 (commit (string-append "v" version))))
6816 (file-name (git-file-name name version))
6817 (sha256
6818 (base32
6819 "17dw6a8d0p304f2sa4f9zwd8r48w2wbkc3fvbmxwlg4w12h7cwf0"))))
6820 (build-system emacs-build-system)
6821 (synopsis "Major mode for editing web templates")
6822 (description "Web-mode is an Emacs major mode for editing web templates
6823 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
6824 client/server side engines). Web-mode is compatible with many template
6825 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
6826 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
6827 Dust.js, React/JSX, Angularjs, ejs, etc.")
6828 (home-page "http://web-mode.org/")
6829 (license license:gpl3+)))
6830
6831 (define-public emacs-wgrep
6832 ;; Tag is missing, so we use the commit directly.
6833 ;; https://github.com/mhayashi1120/Emacs-wgrep/issues/64
6834 (let ((commit "379afd89ebd76f63842c8589127d66096a8bb595"))
6835 (package
6836 (name "emacs-wgrep")
6837 (version "2.3.1")
6838 (source (origin
6839 (method git-fetch)
6840 (uri (git-reference
6841 (url "https://github.com/mhayashi1120/Emacs-wgrep")
6842 (commit commit)))
6843 (file-name (git-file-name name version))
6844 (sha256
6845 (base32
6846 "0v1qx8z1xj9qzirlycbihnkpwcklyi3a0j8lil78pmdpixdbgh47"))))
6847 (build-system emacs-build-system)
6848 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
6849 (synopsis "Edit a grep buffer and apply those changes to the files")
6850 (description
6851 "Emacs wgrep allows you to edit a grep buffer and apply those changes
6852 to the file buffer. Several backends are supported beside the classic grep:
6853 ack, ag, helm and pt.")
6854 (license license:gpl3+))))
6855
6856 (define-public emacs-helm
6857 (package
6858 (name "emacs-helm")
6859 (version "3.5.0")
6860 (source
6861 (origin
6862 (method git-fetch)
6863 (uri (git-reference
6864 (url "https://github.com/emacs-helm/helm.git")
6865 (commit (string-append "v" version))))
6866 (file-name (git-file-name name version))
6867 (sha256
6868 (base32 "07bijcnfkv60l3swasxv53x32l6glds05mxnbb3xbnmkgm1pm9if"))))
6869 (build-system emacs-build-system)
6870 (propagated-inputs
6871 `(("emacs-async" ,emacs-async)
6872 ("emacs-popup" ,emacs-popup)))
6873 (home-page "https://emacs-helm.github.io/helm/")
6874 (synopsis "Incremental completion and selection narrowing
6875 framework for Emacs")
6876 (description "Helm is incremental completion and selection narrowing
6877 framework for Emacs. It will help steer you in the right direction when
6878 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
6879 of @code{anything.el} originally written by Tamas Patrovic and can be
6880 considered to be its successor. Helm sets out to clean up the legacy code in
6881 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
6882 not tied in the trap of backward compatibility.")
6883 (license license:gpl3+)))
6884
6885 (define-public emacs-helm-org
6886 (let ((commit "542dda7bc9a3b9dfb439e4f8a1e5f60cfb6cc256")
6887 (revision "1"))
6888 (package
6889 (name "emacs-helm-org")
6890 (version (git-version "1.0" revision commit))
6891 (source
6892 (origin
6893 (method git-fetch)
6894 (uri (git-reference
6895 (url "https://github.com/emacs-helm/helm-org.git")
6896 (commit commit)))
6897 (file-name (git-file-name name version))
6898 (sha256
6899 (base32 "1xa32w80icrykpyfb89fhb0s4l7ysi0sc7f7lfwqz5najwbgqipl"))))
6900 (build-system emacs-build-system)
6901 (propagated-inputs
6902 `(("emacs-helm" ,emacs-helm)))
6903 (home-page "https://github.com/emacs-helm/helm-org")
6904 (synopsis "Helm interface to the Silver Searcher")
6905 (description
6906 "This package provides a frontend for grepping tools like ag and ack,
6907 as well as features for editing search results.")
6908 (license license:gpl3+))))
6909
6910 (define-public emacs-helm-swoop
6911 (package
6912 (name "emacs-helm-swoop")
6913 (version "2.0.0")
6914 (source
6915 (origin
6916 (method git-fetch)
6917 (uri (git-reference
6918 (url "https://github.com/emacsorphanage/helm-swoop.git")
6919 (commit version)))
6920 (file-name (git-file-name name version))
6921 (sha256
6922 (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
6923 (build-system emacs-build-system)
6924 (propagated-inputs
6925 `(("emacs-helm" ,emacs-helm)))
6926 (home-page "https://github.com/emacsorphanage/helm-swoop")
6927 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
6928 (description
6929 "This package builds on the Helm interface to provide several commands
6930 for search-based navigation of buffers.")
6931 (license license:gpl2+)))
6932
6933 (define-public emacs-helm-ag
6934 (let ((commit "2fc02c4ead29bf0db06fd70740cc7c364cb650ac")
6935 (revision "1"))
6936 (package
6937 (name "emacs-helm-ag")
6938 (version (git-version "0.58" revision commit))
6939 (source
6940 (origin
6941 (method git-fetch)
6942 (uri (git-reference
6943 (url "https://github.com/syohex/emacs-helm-ag.git")
6944 (commit commit)))
6945 (file-name (git-file-name name version))
6946 (sha256
6947 (base32 "1gnn0byywbld6afcq1vp92cjvy4wlag9d1wgymnqn86c3b1bcf21"))))
6948 (build-system emacs-build-system)
6949 (propagated-inputs
6950 `(("emacs-helm" ,emacs-helm)))
6951 (home-page "https://github.com/syohex/emacs-helm-ag")
6952 (synopsis "Helm interface to the Silver Searcher")
6953 (description
6954 "This package provides a frontend for grepping tools like ag and ack,
6955 as well as features for editing search results.")
6956 (license license:gpl3+))))
6957
6958 ;; There hasn't been a tag or release since 2016, so we take the latest
6959 ;; commit.
6960 (define-public emacs-helm-projectile
6961 (let ((commit "5328b74dddcee8d1913803ca8167868831a07463")
6962 (version "0.14.0")
6963 (revision "1"))
6964 (package
6965 (name "emacs-helm-projectile")
6966 (version (git-version version revision commit))
6967 (source
6968 (origin
6969 (method git-fetch)
6970 (uri (git-reference
6971 (url "https://github.com/bbatsov/helm-projectile.git")
6972 (commit commit)))
6973 (file-name (git-file-name name version))
6974 (sha256
6975 (base32 "0a811cblrvc8llpv771b8dppgxs6bwjyvjy3qn2xns4nigvn93s0"))))
6976 (build-system emacs-build-system)
6977 (propagated-inputs
6978 `(("emacs-helm" ,emacs-helm)
6979 ("emacs-projectile" ,emacs-projectile)))
6980 (home-page "https://github.com/bbatsov/helm-projectile")
6981 (synopsis "Helm integration for Projectile")
6982 (description
6983 "This Emacs library provides a Helm interface for Projectile.")
6984 (license license:gpl3+))))
6985
6986 (define-public emacs-taskrunner
6987 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
6988 (revision "1"))
6989 (package
6990 (name "emacs-taskrunner")
6991 (version (git-version "0.6" revision commit))
6992 (source
6993 (origin
6994 (method git-fetch)
6995 (uri (git-reference
6996 (url "https://github.com/emacs-taskrunner/emacs-taskrunner.git")
6997 (commit commit)))
6998 (file-name (git-file-name name version))
6999 (sha256
7000 (base32
7001 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
7002 (build-system emacs-build-system)
7003 (propagated-inputs
7004 `(("emacs-async" ,emacs-async)
7005 ("emacs-projectile" ,emacs-projectile)))
7006 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
7007 (synopsis "Retrieve tasks from various build systems and task-runners")
7008 (description "This package parses Makefiles and build-system files for
7009 multiple project types.")
7010 (license license:gpl3+))))
7011
7012 (define-public emacs-ivy-taskrunner
7013 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
7014 (revision "1"))
7015 (package
7016 (name "emacs-ivy-taskrunner")
7017 (version (git-version "0.9" revision commit))
7018 (source
7019 (origin
7020 (method git-fetch)
7021 (uri (git-reference
7022 (url "https://github.com/emacs-taskrunner/ivy-taskrunner.git")
7023 (commit commit)))
7024 (file-name (git-file-name name version))
7025 (sha256
7026 (base32
7027 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
7028 (build-system emacs-build-system)
7029 (propagated-inputs
7030 `(("emacs-ivy" ,emacs-ivy)
7031 ("emacs-taskrunner" ,emacs-taskrunner)
7032 ("emacs-projectile" ,emacs-projectile)))
7033 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
7034 (synopsis "Retrieve build-system tasks using Ivy")
7035 (description "This package provides an Ivy interface for selecting
7036 Makefile targets.")
7037 (license license:gpl3+))))
7038
7039 (define-public emacs-helm-taskrunner
7040 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
7041 (revision "1"))
7042 (package
7043 (name "emacs-helm-taskrunner")
7044 (version (git-version "0.9" revision commit))
7045 (source
7046 (origin
7047 (method git-fetch)
7048 (uri (git-reference
7049 (url "https://github.com/emacs-taskrunner/helm-taskrunner.git")
7050 (commit commit)))
7051 (file-name (git-file-name name version))
7052 (sha256
7053 (base32
7054 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
7055 (build-system emacs-build-system)
7056 (propagated-inputs
7057 `(("emacs-helm" ,emacs-helm)
7058 ("emacs-taskrunner" ,emacs-taskrunner)
7059 ("emacs-projectile" ,emacs-projectile)))
7060 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
7061 (synopsis "Retrieve build-system tasks using Helm")
7062 (description "This package provides a Helm interface for selecting
7063 Makefile targets.")
7064 (license license:gpl3+))))
7065
7066 (define-public emacs-helm-make
7067 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
7068 (revision "1"))
7069 (package
7070 (name "emacs-helm-make")
7071 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
7072 (source
7073 (origin
7074 (method git-fetch)
7075 (uri (git-reference
7076 (url "https://github.com/abo-abo/helm-make.git")
7077 (commit commit)))
7078 (file-name (git-file-name name version))
7079 (sha256
7080 (base32
7081 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
7082 (build-system emacs-build-system)
7083 (propagated-inputs
7084 `(("emacs-helm" ,emacs-helm)
7085 ("emacs-projectile" ,emacs-projectile)))
7086 (home-page "https://github.com/abo-abo/helm-make")
7087 (synopsis "Select a Makefile target with helm")
7088 (description "@code{helm-make} or @code{helm-make-projectile} will give
7089 you a @code{helm} selection of directory Makefile's targets. Selecting a
7090 target will call @code{compile} on it.")
7091 (license license:gpl3+))))
7092
7093 (define-public emacs-cider
7094 (package
7095 (name "emacs-cider")
7096 (version "0.21.0")
7097 (source
7098 (origin
7099 (method git-fetch)
7100 (uri (git-reference
7101 (url "https://github.com/clojure-emacs/cider.git")
7102 (commit (string-append "v" version))))
7103 (file-name (git-file-name name version))
7104 (sha256
7105 (base32
7106 "0lbrwj67fnvynkdkzvnzp3p8vqlz0ldrcs317vg60bqfhx7hvqkj"))))
7107 (build-system emacs-build-system)
7108 (arguments
7109 '(#:exclude ; Don't exclude 'cider-test.el'.
7110 '("^\\.dir-locals\\.el$" "^test/")))
7111 (propagated-inputs
7112 `(("emacs-clojure-mode" ,emacs-clojure-mode)
7113 ("emacs-sesman" ,emacs-sesman)
7114 ("emacs-spinner" ,emacs-spinner)
7115 ("emacs-pkg-info" ,emacs-pkg-info)
7116 ("emacs-queue" ,emacs-queue)))
7117 (home-page "https://cider.readthedocs.io/")
7118 (synopsis "Clojure development environment for Emacs")
7119 (description
7120 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
7121 provide an interactive development experience similar to the one you'd get
7122 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
7123 Geiser) and Smalltalk.
7124
7125 CIDER is the successor to the now deprecated combination of using SLIME +
7126 swank-clojure for Clojure development.
7127
7128 There are plenty of differences between CIDER and SLIME, but the core ideas
7129 are pretty much the same (and SLIME served as the principle inspiration for
7130 CIDER).")
7131 (license license:gpl3+)))
7132
7133 ;; There hasn't been a tag or release since 2016, so we take the latest
7134 ;; commit.
7135 (define-public emacs-sly
7136 (let ((commit "0a3b81770e46b93b9ffd8b9ac5254e0b88d1b13d")
7137 (revision "3"))
7138 (package
7139 (name "emacs-sly")
7140 (version (git-version "1.0.0" revision commit))
7141 (source
7142 (origin
7143 (method git-fetch)
7144 (uri (git-reference
7145 (url "https://github.com/joaotavora/sly.git")
7146 (commit commit)))
7147 (file-name (git-file-name name version))
7148 (sha256
7149 (base32
7150 "1q5ga4mxa0ffa4zb2y0zfwmgzjggx4fn1y4bl2x7ac6ynvb32zkj"))))
7151 (build-system emacs-build-system)
7152 (native-inputs
7153 `(("texinfo" ,texinfo)))
7154 (arguments
7155 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
7156 #:phases
7157 ;; The package provides autoloads.
7158 (modify-phases %standard-phases
7159 (delete 'make-autoloads)
7160 (add-before 'install 'install-doc
7161 (lambda* (#:key outputs #:allow-other-keys)
7162 (let* ((out (assoc-ref outputs "out"))
7163 (info-dir (string-append out "/share/info"))
7164 (doc-dir (string-append out "/share/doc/"
7165 ,name "-" ,version))
7166 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
7167 "README.md" "NEWS.md" "PROBLEMS.md"
7168 "CONTRIBUTING.md")))
7169 (with-directory-excursion "doc"
7170 (substitute* "Makefile"
7171 (("infodir=/usr/local/info")
7172 (string-append "infodir=" info-dir))
7173 ;; Don't rebuild contributors.texi since we are not in
7174 ;; the git repo.
7175 (("contributors.texi: Makefile texinfo-tabulate.awk")
7176 "contributors.texi:"))
7177 (invoke "make" "html/index.html")
7178 (invoke "make" "sly.info")
7179 ;; TODO: We need minimal texlive with "preprint" package
7180 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
7181 (install-file "sly.info" info-dir)
7182 (copy-recursively "html" (string-append doc-dir "/html")))
7183 (for-each (lambda (f)
7184 (install-file f doc-dir)
7185 (delete-file f))
7186 doc-files)
7187 (delete-file-recursively "doc")
7188 #t))))))
7189 (home-page "https://github.com/joaotavora/sly")
7190 (synopsis "Sylvester the Cat's Common Lisp IDE")
7191 (description
7192 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
7193 contains the following improvements over it:
7194
7195 @enumerate
7196 @item Completely redesigned REPL based on Emacs's own full-featured
7197 @code{comint.el}.
7198 @item Live code annotations via a new @code{sly-stickers} contrib.
7199 @item Consistent interactive button interface. Everything can be copied to
7200 the REPL.
7201 @item Multiple inspectors with independent history.
7202 @item Regexp-capable @code{M-x sly-apropos}.
7203 @item Contribs are first class SLY citizens and enabled by default.
7204 @item Use ASDF to loads contribs on demand.
7205 @end enumerate
7206
7207 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
7208 xref, etc...) are still available, but with better integration.")
7209 (license license:gpl3+))))
7210
7211 (define-public emacs-sly-quicklisp
7212 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
7213 (revision "1"))
7214 (package
7215 (name "emacs-sly-quicklisp")
7216 (version (git-version "0.0.0" revision commit))
7217 (home-page "https://github.com/joaotavora/sly-quicklisp")
7218 (source
7219 (origin
7220 (method git-fetch)
7221 (uri (git-reference
7222 (url home-page)
7223 (commit commit)))
7224 (file-name (git-file-name name version))
7225 (sha256
7226 (base32
7227 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
7228 (build-system emacs-build-system)
7229 (propagated-inputs
7230 `(("emacs-sly" ,emacs-sly)))
7231 (arguments
7232 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
7233 #:phases
7234 ;; The package provides autoloads.
7235 (modify-phases %standard-phases
7236 (delete 'make-autoloads))))
7237 (synopsis "Quicklisp support for SLY")
7238 (description
7239 "@command{sly-quicklisp} is an external contrib for SLY that provides a
7240 sly-quickload command that prompts the user for a package to install. ")
7241 (license license:gpl3+))))
7242
7243 (define-public emacs-sly-asdf
7244 (let ((commit "4e323bc28da2f07fd799b6a31b94fd93848b5f3c")
7245 (revision "2"))
7246 (package
7247 (name "emacs-sly-asdf")
7248 (version (git-version "0.1.0" revision commit))
7249 (home-page "https://github.com/mmgeorge/sly-asdf")
7250 (source
7251 (origin
7252 (method git-fetch)
7253 (uri (git-reference
7254 (url home-page)
7255 (commit commit)))
7256 (file-name (git-file-name name version))
7257 (sha256
7258 (base32
7259 "16sc33jhc6ik4ilsyqc3cjpi6v0wdmwjlwrzjwd6yym11bscsmad"))))
7260 (build-system emacs-build-system)
7261 (propagated-inputs
7262 `(("emacs-sly" ,emacs-sly)))
7263 (arguments
7264 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
7265 (synopsis "ASDF contrib for SLY")
7266 (description
7267 "@command{sly-asdf} is an external contrib for SLY that provides
7268 additional support for working with ASDF projects.")
7269 (license license:gpl3+))))
7270
7271 (define-public emacs-sly-named-readtables
7272 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
7273 (revision "1"))
7274 (package
7275 (name "emacs-sly-named-readtables")
7276 (version (git-version "0.1" revision commit))
7277 (home-page "https://github.com/joaotavora/sly-named-readtables")
7278 (source
7279 (origin
7280 (method git-fetch)
7281 (uri (git-reference
7282 (url home-page)
7283 (commit commit)))
7284 (file-name (git-file-name name version))
7285 (sha256
7286 (base32
7287 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
7288 (build-system emacs-build-system)
7289 (propagated-inputs
7290 `(("emacs-sly" ,emacs-sly)))
7291 (arguments
7292 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
7293 (synopsis "Named-readtables support for SLY")
7294 (description
7295 "@command{sly-named-readtables} is an external contrib for SLY that
7296 enables different readtables to be active in different parts of the same
7297 file.")
7298 (license license:gpl3+))))
7299
7300 (define-public emacs-sly-macrostep
7301 (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
7302 (revision "1"))
7303 (package
7304 (name "emacs-sly-macrostep")
7305 (version (git-version "0.1" revision commit))
7306 (home-page "https://github.com/joaotavora/sly-macrostep")
7307 (source
7308 (origin
7309 (method git-fetch)
7310 (uri (git-reference
7311 (url home-page)
7312 (commit commit)))
7313 (file-name (git-file-name name version))
7314 (sha256
7315 (base32
7316 "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
7317 (build-system emacs-build-system)
7318 (propagated-inputs
7319 `(("emacs-sly" ,emacs-sly)
7320 ("emacs-macrostep" ,emacs-macrostep)))
7321 (arguments
7322 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
7323 #:phases
7324 ;; The package provides autoloads.
7325 (modify-phases %standard-phases
7326 (delete 'make-autoloads))))
7327 (synopsis "Expand Common Lisp macros inside source files with SLY")
7328 (description
7329 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
7330 inside the source file.")
7331 (license license:gpl3+))))
7332
7333 (define-public emacs-sly-package-inferred
7334 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
7335 (revision "1"))
7336 (package
7337 (name "emacs-sly-package-inferred")
7338 (version (git-version "0.1" revision commit))
7339 (home-page "https://github.com/40ants/sly-package-inferred")
7340 (source
7341 (origin
7342 (method git-fetch)
7343 (uri (git-reference
7344 (url home-page)
7345 (commit commit)))
7346 (file-name (git-file-name name version))
7347 (sha256
7348 (base32
7349 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
7350 (build-system emacs-build-system)
7351 (propagated-inputs
7352 `(("emacs-sly" ,emacs-sly)))
7353 (arguments
7354 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
7355 #:phases
7356 ;; The package provides autoloads.
7357 (modify-phases %standard-phases
7358 (delete 'make-autoloads))))
7359 (synopsis "Improved package inferred systems support for SLY")
7360 (description
7361 "@command{sly-package-inferred} is an external contrib for SLY that
7362 replaces its completion with a function which is better suited for systems
7363 using package inferred style.")
7364 (license license:gpl3+))))
7365
7366 (define-public emacs-lua-mode
7367 (let ((commit "95c64bb5634035630e8c59d10d4a1d1003265743")
7368 (revision "2"))
7369 (package
7370 (name "emacs-lua-mode")
7371 (version (git-version "20151025" revision commit))
7372 (home-page "https://github.com/immerrr/lua-mode/")
7373 (source (origin
7374 (method git-fetch)
7375 (uri (git-reference
7376 (url home-page)
7377 (commit commit)))
7378 (file-name (git-file-name name version))
7379 (sha256
7380 (base32
7381 "1mra4db25ds64526dsj8m5yv0kfq3lgggjh1x6xmqypdaryddbcp"))))
7382 (build-system emacs-build-system)
7383 (synopsis "Major mode for lua")
7384 (description
7385 "This Emacs package provides a mode for @uref{https://www.lua.org/,
7386 Lua programming language}.")
7387 (license license:gpl2+))))
7388
7389 (define-public emacs-ebuild-mode
7390 (package
7391 (name "emacs-ebuild-mode")
7392 (version "1.37")
7393 (source (origin
7394 (method url-fetch)
7395 (uri (string-append
7396 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
7397 "-" version ".tar.xz"))
7398 (file-name (string-append name "-" version ".tar.xz"))
7399 (sha256
7400 (base32
7401 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
7402 (build-system emacs-build-system)
7403 (home-page "https://devmanual.gentoo.org")
7404 (synopsis "Major modes for Gentoo package files")
7405 (description
7406 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
7407 news items, openrc and runscripts.")
7408 (license license:gpl2+)))
7409
7410 (define-public emacs-evil
7411 (package
7412 (name "emacs-evil")
7413 (version "1.2.14")
7414 (source
7415 (origin
7416 (method git-fetch)
7417 (uri (git-reference
7418 (url "https://github.com/emacs-evil/evil")
7419 (commit version)))
7420 (file-name (git-file-name name version))
7421 (sha256
7422 (base32
7423 "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
7424 (arguments
7425 `(#:phases
7426 (modify-phases %standard-phases
7427 (add-before 'check 'fix-test-helpers
7428 (lambda _
7429 (substitute* "evil-test-helpers.el"
7430 (("\\(undo-tree-mode 1\\)") ""))
7431 #t)))))
7432 (build-system emacs-build-system)
7433 (home-page "https://github.com/emacs-evil/evil")
7434 (synopsis "Extensible Vi layer for Emacs")
7435 (description
7436 "Evil is an extensible vi layer for Emacs. It emulates the
7437 main features of Vim, and provides facilities for writing custom
7438 extensions.")
7439 (license license:gpl3+)))
7440
7441 (define-public emacs-evil-collection
7442 (let ((commit "38e916d5d56b391f1ad4c72ad3909491e86cda3c")
7443 (revision "12"))
7444 (package
7445 (name "emacs-evil-collection")
7446 (version (git-version "0.0.3" revision commit))
7447 (source (origin
7448 (method git-fetch)
7449 (uri (git-reference
7450 (url "https://github.com/emacs-evil/evil-collection")
7451 (commit commit)))
7452 (file-name (git-file-name name version))
7453 (sha256
7454 (base32
7455 "00a1ya3c92ymhfj4ai1ygljnxa147d4cgi6jmvccngicphn99782"))))
7456 (build-system emacs-build-system)
7457 (propagated-inputs
7458 `(("emacs-evil" ,emacs-evil)
7459 ("emacs-annalist" ,emacs-annalist)))
7460 (arguments
7461 `(#:include (cons* "^modes\\/" %default-include)))
7462 (home-page "https://github.com/emacs-evil/evil-collection")
7463 (synopsis "Collection of Evil bindings for many major and minor modes")
7464 (description "This is a collection of Evil bindings for the parts of
7465 Emacs that Evil does not cover properly by default, such as @code{help-mode},
7466 @code{M-x calendar}, Eshell and more.")
7467 (license license:gpl3+))))
7468
7469 (define-public emacs-goto-chg
7470 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
7471 (version "1.7.3")
7472 (revision "1"))
7473 (package
7474 (name "emacs-goto-chg")
7475 (version (git-version version revision commit))
7476 (source
7477 (origin
7478 (method git-fetch)
7479 (uri (git-reference
7480 (url "https://github.com/emacs-evil/goto-chg")
7481 (commit commit)))
7482 (file-name (git-file-name name version))
7483 (sha256
7484 (base32
7485 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
7486 (build-system emacs-build-system)
7487 (propagated-inputs
7488 `(("emacs-undo-tree" ,emacs-undo-tree)))
7489 (home-page "https://github.com/emacs-evil/goto-chg")
7490 (synopsis "Go to the last change in the Emacs buffer")
7491 (description
7492 "This package provides @code{M-x goto-last-change} command that goes to
7493 the point of the most recent edit in the current Emacs buffer. When repeated,
7494 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
7495 used for reverse direction.")
7496 (license license:gpl2+))))
7497
7498 (define-public emacs-janpath-evil-numbers
7499 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
7500 (version "0.5")
7501 (revision "1"))
7502 (package
7503 (name "emacs-janpath-evil-numbers")
7504 (version (git-version version revision commit))
7505 (source
7506 (origin
7507 (method git-fetch)
7508 (uri (git-reference
7509 (url "https://github.com/janpath/evil-numbers")
7510 (commit commit)))
7511 (file-name (git-file-name name version))
7512 (sha256
7513 (base32
7514 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
7515 (build-system emacs-build-system)
7516 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7517 (home-page "https://github.com/janpath/evil-numbers")
7518 (synopsis "Increment and decrement numeric literals")
7519 (description
7520 "This package provides functionality to search for a number up to the
7521 end of a line and increment or decrement it.")
7522 (license license:gpl3+))))
7523
7524 (define-public emacs-evil-owl
7525 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
7526 (revision "3"))
7527 (package
7528 (name "emacs-evil-owl")
7529 (version (git-version "0.0.1" revision commit))
7530 (source
7531 (origin
7532 (method git-fetch)
7533 (uri (git-reference
7534 (url "https://github.com/mamapanda/evil-owl")
7535 (commit commit)))
7536 (file-name (git-file-name name version))
7537 (sha256
7538 (base32
7539 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
7540 (build-system emacs-build-system)
7541 (propagated-inputs
7542 `(("emacs-evil" ,emacs-evil)))
7543 (arguments
7544 `(#:tests? #t
7545 #:test-command '("make" "test")))
7546 (home-page "https://github.com/mamapanda/evil-owl")
7547 (synopsis "Preview candidates when using Evil registers and marks")
7548 (description
7549 "This package supplements Evil's register- and mark-based commands with
7550 a popup window for previewing candidates.")
7551 (license license:gpl3+))))
7552
7553 (define-public emacs-evil-args
7554 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
7555 (revision "1"))
7556 (package
7557 (name "emacs-evil-args")
7558 (version (git-version "1.0" revision commit))
7559 (source
7560 (origin
7561 (method git-fetch)
7562 (uri (git-reference
7563 (url "https://github.com/wcsmith/evil-args.git")
7564 (commit commit)))
7565 (file-name (git-file-name name version))
7566 (sha256
7567 (base32
7568 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
7569 (build-system emacs-build-system)
7570 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7571 (home-page "https://github.com/wcsmith/evil-args")
7572 (synopsis "Motions and text objects for delimited arguments in Evil")
7573 (description
7574 "This package provides motions and text objects for delimited
7575 arguments, such as arguments separated by commas and semicolons.")
7576 (license license:expat))))
7577
7578 (define-public emacs-evil-exchange
7579 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
7580 (version "0.41")
7581 (revision "1"))
7582 (package
7583 (name "emacs-evil-exchange")
7584 (version (git-version version revision commit))
7585 (source
7586 (origin
7587 (method git-fetch)
7588 (uri (git-reference
7589 (url "https://github.com/Dewdrops/evil-exchange")
7590 (commit commit)))
7591 (file-name (git-file-name name version))
7592 (sha256
7593 (base32
7594 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
7595 (build-system emacs-build-system)
7596 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7597 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
7598 (arguments
7599 `(#:phases
7600 (modify-phases %standard-phases
7601 (add-before 'check 'fix-makefile
7602 (lambda _
7603 (substitute* "Makefile"
7604 (("cask exec ") ""))
7605 #t)))
7606 #:tests? #t
7607 #:test-command '("make" "test")))
7608 (home-page "https://github.com/Dewdrops/evil-exchange")
7609 (synopsis "Exchange text easily within Evil")
7610 (description
7611 "This package, a port of @code{vim-exchange}, provides an Evil operator
7612 for exchanging text.")
7613 (license license:gpl3+))))
7614
7615 (define-public emacs-evil-replace-with-register
7616 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
7617 (version "0.1")
7618 (revision "1"))
7619 (package
7620 (name "emacs-evil-replace-with-register")
7621 (version (git-version version revision commit))
7622 (source
7623 (origin
7624 (method git-fetch)
7625 (uri (git-reference
7626 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
7627 (commit commit)))
7628 (file-name (git-file-name name version))
7629 (sha256
7630 (base32
7631 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
7632 (build-system emacs-build-system)
7633 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7634 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
7635 (synopsis "Quickly replace text with the contents of a register")
7636 (description
7637 "This package provides an Evil operator for replacing text with the
7638 contents of a register.")
7639 (license license:gpl3+))))
7640
7641 (define-public emacs-evil-indent-plus
7642 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
7643 (version "1.0.0")
7644 (revision "1"))
7645 (package
7646 (name "emacs-evil-indent-plus")
7647 (version (git-version version revision commit))
7648 (source
7649 (origin
7650 (method git-fetch)
7651 (uri (git-reference
7652 (url "https://github.com/TheBB/evil-indent-plus")
7653 (commit commit)))
7654 (file-name (git-file-name name version))
7655 (sha256
7656 (base32
7657 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
7658 (build-system emacs-build-system)
7659 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7660 (home-page "https://github.com/TheBB/evil-indent-plus")
7661 (synopsis "Text objects based on indentation")
7662 (description
7663 "This package adds new text objects for @code{evil-mode} based on
7664 blocks having the same or higher indentation, including or excluding
7665 surrounding lines.")
7666 (license license:gpl2+))))
7667
7668 (define-public emacs-evil-text-object-python
7669 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
7670 (version "1.0.1")
7671 (revision "1"))
7672 (package
7673 (name "emacs-evil-text-object-python")
7674 (version (git-version version revision commit))
7675 (source
7676 (origin
7677 (method git-fetch)
7678 (uri (git-reference
7679 (url "https://github.com/wbolster/evil-text-object-python")
7680 (commit commit)))
7681 (file-name (git-file-name name version))
7682 (sha256
7683 (base32
7684 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
7685 (build-system emacs-build-system)
7686 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7687 (home-page "https://github.com/wbolster/evil-text-object-python")
7688 (synopsis "Text objects for Python")
7689 (description
7690 "This package provides @code{evil-mode} text objects for Python.")
7691 (license license:gpl3+))))
7692
7693 (define-public emacs-evil-lion
7694 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
7695 (revision "1"))
7696 (package
7697 (name "emacs-evil-lion")
7698 (version (git-version "0.0.2" revision commit))
7699 (source
7700 (origin
7701 (method git-fetch)
7702 (uri (git-reference
7703 (url "https://github.com/edkolev/evil-lion")
7704 (commit commit)))
7705 (file-name (git-file-name name version))
7706 (sha256
7707 (base32
7708 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
7709 (build-system emacs-build-system)
7710 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7711 (arguments
7712 `(#:tests? #t
7713 #:test-command '("make" "test")))
7714 (home-page "https://github.com/edkolev/evil-lion")
7715 (synopsis "Align operator for @code{evil-mode}")
7716 (description
7717 "This package, a port of @code{vim-lion}, provides an operator for
7718 aligning text objects based on separators.")
7719 (license license:gpl3+))))
7720
7721 (define-public emacs-evil-expat
7722 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
7723 (revision "1"))
7724 (package
7725 (name "emacs-evil-expat")
7726 (version (git-version "0.0.1" revision commit))
7727 (source
7728 (origin
7729 (method git-fetch)
7730 (uri (git-reference
7731 (url "https://github.com/edkolev/evil-expat")
7732 (commit commit)))
7733 (file-name (git-file-name name version))
7734 (sha256
7735 (base32
7736 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
7737 (build-system emacs-build-system)
7738 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7739 (arguments
7740 `(#:tests? #t
7741 #:test-command '("make" "test")))
7742 (home-page "https://github.com/edkolev/evil-expat")
7743 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
7744 (description
7745 "This package provides additional commands for the @code{ex} command
7746 line, including functions for version control with Git and for copying and
7747 pasting into and from @code{tmux} paste buffers.")
7748 (license license:gpl3+))))
7749
7750 (define-public emacs-evil-nerd-commenter
7751 (package
7752 (name "emacs-evil-nerd-commenter")
7753 (version "3.3.8")
7754 (source
7755 (origin
7756 (method git-fetch)
7757 (uri (git-reference
7758 (url "https://github.com/redguardtoo/evil-nerd-commenter")
7759 (commit version)))
7760 (file-name (git-file-name name version))
7761 (sha256
7762 (base32
7763 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
7764 (build-system emacs-build-system)
7765 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7766 (arguments
7767 `(#:tests? #t
7768 #:test-command '("make" "test")))
7769 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
7770 (synopsis "Comment and uncomment lines efficiently")
7771 (description
7772 "This package provides text objects and operators for comments within
7773 @code{evil-mode}.")
7774 (license license:gpl3+)))
7775
7776 (define-public emacs-evil-visual-replace
7777 (package
7778 (name "emacs-evil-visual-replace")
7779 (version "0.0.5")
7780 (source
7781 (origin
7782 (method git-fetch)
7783 (uri (git-reference
7784 (url "https://github.com/troyp/evil-visual-replace")
7785 (commit version)))
7786 (file-name (git-file-name name version))
7787 (sha256
7788 (base32
7789 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
7790 (build-system emacs-build-system)
7791 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7792 (home-page "https://github.com/troyp/evil-visual-replace")
7793 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
7794 (description
7795 "This package provides versions of @code{query-replace} and
7796 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
7797 (license license:gpl2+)))
7798
7799 (define-public emacs-evil-visualstar
7800 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
7801 (version "0.0.2")
7802 (revision "1"))
7803 (package
7804 (name "emacs-evil-visualstar")
7805 (version (git-version version revision commit))
7806 (source
7807 (origin
7808 (method git-fetch)
7809 (uri (git-reference
7810 (url "https://github.com/bling/evil-visualstar")
7811 (commit commit)))
7812 (file-name (git-file-name name version))
7813 (sha256
7814 (base32
7815 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
7816 (build-system emacs-build-system)
7817 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
7818 (home-page "https://github.com/bling/evil-visualstar")
7819 (synopsis "Instantly search using the visual selection")
7820 (description
7821 "This package provides @code{evil-mode} functions for using selected text
7822 to search.")
7823 (license license:gpl3+))))
7824
7825 (define-public emacs-monroe
7826 (package
7827 (name "emacs-monroe")
7828 (version "0.3.1")
7829 (source
7830 (origin
7831 (method git-fetch)
7832 (uri (git-reference
7833 (url "https://github.com/sanel/monroe.git")
7834 (commit version)))
7835 (file-name (git-file-name name version))
7836 (sha256
7837 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
7838 (build-system emacs-build-system)
7839 (home-page "https://github.com/sanel/monroe")
7840 (synopsis "Clojure nREPL client for Emacs")
7841 (description
7842 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
7843 distribution, primarily targeting Clojure users")
7844 (license license:gpl3+)))
7845
7846 (define-public emacs-orgalist
7847 (package
7848 (name "emacs-orgalist")
7849 (version "1.9")
7850 (source
7851 (origin
7852 (method url-fetch)
7853 (uri (string-append "https://elpa.gnu.org/packages/"
7854 "orgalist-" version ".el"))
7855 (sha256
7856 (base32
7857 "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6"))))
7858 (build-system emacs-build-system)
7859 (home-page "http://elpa.gnu.org/packages/orgalist.html")
7860 (synopsis "Manage Org-like lists in non-Org buffers")
7861 (description "Write Org mode's plain lists in non-Org buffers. More
7862 specifically, Orgalist supports the syntax of Org mode for numbered,
7863 unnumbered, description items, checkboxes, and counter cookies.
7864
7865 The library also implements radio lists, i.e., lists written in Org
7866 syntax later translated into the host format, e.g., LaTeX or HTML.")
7867 (license license:gpl3+)))
7868
7869 (define-public emacs-writegood-mode
7870 (package
7871 (name "emacs-writegood-mode")
7872 (version "2.0.2")
7873 (home-page "https://github.com/bnbeckwith/writegood-mode")
7874 (source (origin
7875 (method git-fetch)
7876 (uri (git-reference
7877 (url home-page)
7878 (commit (string-append "v" version))))
7879 (sha256
7880 (base32
7881 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
7882 (file-name (string-append name "-checkout"))))
7883 (build-system emacs-build-system)
7884 (synopsis "Polish up poor writing on the fly")
7885 (description
7886 "This minor mode tries to find and highlight problems with your writing
7887 in English as you type. It primarily detects \"weasel words\" and abuse of
7888 passive voice.")
7889 (license license:gpl3+)))
7890
7891 (define-public emacs-neotree
7892 (package
7893 (name "emacs-neotree")
7894 (version "0.5.2")
7895 (home-page "https://github.com/jaypei/emacs-neotree")
7896 (source (origin
7897 (method url-fetch)
7898 (uri (string-append
7899 "https://github.com/jaypei/" name
7900 "/archive/" version ".tar.gz"))
7901 (sha256
7902 (base32
7903 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
7904 (file-name (string-append name "-" version ".tar.gz"))))
7905 (build-system emacs-build-system)
7906 (synopsis "Folder tree view for Emacs")
7907 (description "This Emacs package provides a folder tree view.")
7908 (license license:gpl3+)))
7909
7910 (define-public emacs-org
7911 (package
7912 (name "emacs-org")
7913 ;; emacs-org-contrib inherits from this package. Please update its sha256
7914 ;; checksum as well.
7915 (version "9.2.6")
7916 (source (origin
7917 (method url-fetch)
7918 (uri (string-append "https://elpa.gnu.org/packages/org-"
7919 version ".tar"))
7920 (sha256
7921 (base32
7922 "0ikd78k4yw4sm5x7l3dsbvfcmvnv5qna2mxirr560gvcnzhr0zg4"))))
7923 (build-system emacs-build-system)
7924 (home-page "https://orgmode.org/")
7925 (synopsis "Outline-based notes management and organizer")
7926 (description "Org is an Emacs mode for keeping notes, maintaining TODO
7927 lists, and project planning with a fast and effective lightweight markup
7928 language. It also is an authoring system with unique support for literate
7929 programming and reproducible research.")
7930 (license license:gpl3+)))
7931
7932 (define-public emacs-org-contrib
7933 (package
7934 (inherit emacs-org)
7935 (name "emacs-org-contrib")
7936 (version "20190904")
7937 (source (origin
7938 (method url-fetch)
7939 (uri (string-append "https://orgmode.org/elpa/"
7940 "org-plus-contrib-" version ".tar"))
7941 (sha256
7942 (base32
7943 "08s3fk3jim0y2v00l6ah8y08ba8wbcf29z6fxqzyaxj58a5sq81a"))))
7944 (arguments
7945 `(#:modules ((guix build emacs-build-system)
7946 (guix build utils)
7947 (guix build emacs-utils)
7948 (ice-9 ftw)
7949 (srfi srfi-1))
7950 #:phases
7951 (modify-phases %standard-phases
7952 (add-after 'install 'delete-org-files
7953 (lambda* (#:key inputs outputs #:allow-other-keys)
7954 (let* ((out (assoc-ref outputs "out"))
7955 (org (assoc-ref inputs "org"))
7956 (contrib-files
7957 (map basename (find-files out)))
7958 (org+contrib-files
7959 (map basename (find-files org)))
7960 (duplicates (lset-intersection
7961 string=? contrib-files org+contrib-files)))
7962 (with-directory-excursion
7963 (string-append
7964 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
7965 (for-each delete-file duplicates))
7966 #t))))))
7967 (propagated-inputs
7968 `(("arduino-mode" ,emacs-arduino-mode)
7969 ("cider" ,emacs-cider)
7970 ("org" ,emacs-org)
7971 ("scel" ,emacs-scel)))
7972 (synopsis "Contributed packages to Org mode")
7973 (description "Org is an Emacs mode for keeping notes, maintaining TODO
7974 lists, and project planning with a fast and effective plain-text system.
7975
7976 This package is equivalent to org-plus-contrib, but only includes additional
7977 files that you would find in @file{contrib/} from the git repository.")))
7978
7979 (define-public emacs-flx
7980 (package
7981 (name "emacs-flx")
7982 (version "0.6.1")
7983 (source
7984 (origin
7985 (method url-fetch)
7986 (uri (string-append "https://github.com/lewang/"
7987 "flx/archive/v" version ".tar.gz"))
7988 (sha256
7989 (base32
7990 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
7991 (file-name (string-append name "-" version ".tar.gz"))))
7992 (build-system emacs-build-system)
7993 (home-page "https://github.com/lewang/flx")
7994 (synopsis "Fuzzy matching for Emacs")
7995 (description
7996 "Flx provides fuzzy matching for emacs a la sublime text.
7997 The sorting algorithm is a balance between word beginnings (abbreviation)
7998 and contiguous matches (substring). The longer the substring match,
7999 the higher it scores. This maps well to how we think about matching.
8000 Flx has support for ido (interactively do things) through flx-ido.")
8001 (license license:gpl3+)))
8002
8003 (define-public emacs-cyberpunk-theme
8004 (package
8005 (name "emacs-cyberpunk-theme")
8006 (version "1.19")
8007 (source
8008 (origin
8009 (method url-fetch)
8010 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
8011 "archive/" version ".tar.gz"))
8012 (sha256
8013 (base32
8014 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
8015 (file-name (string-append name "-" version ".tar.gz"))))
8016 (build-system emacs-build-system)
8017 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
8018 (synopsis "Cyberpunk theme for emacs built-in color theme support")
8019 (description
8020 "Cyberpunk color theme for the emacs 24+ built-in color theme support
8021 known loosely as deftheme. Many mode-specific customizations are included.")
8022 (license license:gpl3+)))
8023
8024 (define-public emacs-danneskjold-theme
8025 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
8026 (revision "1"))
8027 (package
8028 (name "emacs-danneskjold-theme")
8029 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
8030 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
8031 (source
8032 (origin
8033 (method git-fetch)
8034 (uri (git-reference
8035 (url home-page)
8036 (commit commit)))
8037 (file-name (git-file-name name version))
8038 (sha256
8039 (base32
8040 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
8041 (build-system emacs-build-system)
8042 (arguments
8043 `(#:phases
8044 (modify-phases %standard-phases
8045 (add-after 'unpack 'delete-screenshots
8046 (lambda _
8047 (delete-file-recursively "screenshots") #t)))))
8048 (synopsis "High-contrast Emacs theme")
8049 (description
8050 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
8051 (license license:gpl3+))))
8052
8053 (define-public emacs-dream-theme
8054 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
8055 (revision "1"))
8056 (package
8057 (name "emacs-dream-theme")
8058 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
8059 (source
8060 (origin
8061 (method git-fetch)
8062 (uri (git-reference
8063 (url "https://github.com/djcb/dream-theme")
8064 (commit commit)))
8065 (file-name (git-file-name name version))
8066 (sha256
8067 (base32
8068 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
8069 (build-system emacs-build-system)
8070 (home-page "https://github.com/djcb/dream-theme")
8071 (synopsis "High-contrast Emacs theme")
8072 (description
8073 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
8074 by zenburn, sinburn and similar themes, but slowly diverging from them.")
8075 (license license:gpl3+))))
8076
8077 (define-public emacs-auto-complete
8078 (package
8079 (name "emacs-auto-complete")
8080 (version "1.5.1")
8081 (source
8082 (origin
8083 (method url-fetch)
8084 (uri (string-append "https://github.com/auto-complete/"
8085 "auto-complete/archive/v" version ".tar.gz"))
8086 (sha256
8087 (base32
8088 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
8089 (file-name (string-append name "-" version ".tar.gz"))))
8090 (build-system emacs-build-system)
8091 (propagated-inputs
8092 `(("emacs-popup" ,emacs-popup)))
8093 (home-page "https://github.com/auto-complete/auto-complete")
8094 (synopsis "Intelligent auto-completion extension for Emacs")
8095 (description
8096 "Auto-Complete is an intelligent auto-completion extension for Emacs.
8097 It extends the standard Emacs completion interface and provides an environment
8098 that allows users to concentrate more on their own work. Its features are:
8099 a visual interface, reduce overhead of completion by using statistic method,
8100 extensibility.")
8101 (license license:gpl3+)))
8102
8103 (define-public emacs-nginx-mode
8104 (package
8105 (name "emacs-nginx-mode")
8106 (version "1.1.9")
8107 (source
8108 (origin
8109 (method git-fetch)
8110 (uri (git-reference
8111 (url "https://github.com/ajc/nginx-mode.git")
8112 (commit (string-append "v" version))))
8113 (file-name (git-file-name name version))
8114 (sha256
8115 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
8116 (build-system emacs-build-system)
8117 (home-page "https://github.com/ajc/nginx-mode")
8118 (synopsis "Emacs major mode for editing nginx config files")
8119 (description "This package provides an Emacs major mode for
8120 editing nginx config files.")
8121 (license license:gpl2+)))
8122
8123 (define-public emacs-stream
8124 (let ((commit "a3f3da155a49c133e2692bd8789b35492bfdc4f7")
8125 (revision "1"))
8126 (package
8127 (name "emacs-stream")
8128 (version (git-version "2.2.4" revision commit))
8129 (source
8130 (origin
8131 (method git-fetch)
8132 (uri (git-reference
8133 (url "https://github.com/Emacsmirror/stream.git")
8134 (commit commit)))
8135 (file-name (git-file-name name version))
8136 (sha256
8137 (base32 "0aig0yjb9z752ijh0mzildjmh44j051inchga8qll01dr8wf7332"))))
8138 (build-system emacs-build-system)
8139 (arguments
8140 `(#:tests? #t
8141 #:test-command '("emacs" "--batch"
8142 "-l" "tests/stream-tests.el"
8143 "-f" "ert-run-tests-batch-and-exit")))
8144 (home-page "https://github.com/Emacsmirror/stream")
8145 (synopsis "Implementation of streams for Emacs")
8146 (description "This library provides an implementation of streams for Emacs.
8147 Streams are implemented as delayed evaluation of cons cells.")
8148 (license license:gpl3+))))
8149
8150 (define-public emacs-cl-print
8151 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
8152 (revision "1"))
8153 (package
8154 (name "emacs-cl-print")
8155 (version (git-version "1.0" revision commit))
8156 (source
8157 (origin
8158 (method git-fetch)
8159 (uri (git-reference
8160 (url "https://github.com/emacsmirror/cl-print.git")
8161 (commit commit)))
8162 (file-name (git-file-name name version))
8163 (sha256
8164 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
8165 (build-system emacs-build-system)
8166 (home-page "https://github.com/emacsmirror/cl-print")
8167 (synopsis "CL-style generic printing")
8168 (description "This package provides a generic function,
8169 @code{cl-print-object}, to which the programmer can add any method they
8170 please.")
8171 (license license:gpl3+))))
8172
8173 (define-public emacs-el-search
8174 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
8175 (revision "2"))
8176 (package
8177 (name "emacs-el-search")
8178 (version (git-version "1.12.6.1" revision commit))
8179 (source
8180 (origin
8181 (method git-fetch)
8182 (uri (git-reference
8183 (url "https://github.com/emacsmirror/el-search.git")
8184 (commit commit)))
8185 (file-name (git-file-name name version))
8186 (sha256
8187 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
8188 (build-system emacs-build-system)
8189 (inputs
8190 `(("emacs-stream" ,emacs-stream)
8191 ("emacs-cl-print" ,emacs-cl-print)))
8192 (home-page "https://github.com/emacsmirror/el-search")
8193 (synopsis "Expression based interactive search for emacs-lisp-mode")
8194 (description "This package provides expression based interactive search
8195 procedures for emacs-lisp-mode.")
8196 (license license:gpl3+))))
8197
8198 (define-public emacs-ht
8199 (package
8200 (name "emacs-ht")
8201 (version "2.2")
8202 (source
8203 (origin
8204 (method git-fetch)
8205 (uri (git-reference
8206 (url "https://github.com/Wilfred/ht.el.git")
8207 (commit version)))
8208 (file-name (git-file-name name version))
8209 (sha256
8210 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
8211 (build-system emacs-build-system)
8212 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
8213 (native-inputs
8214 `(("emacs-ert-runner" ,emacs-ert-runner)))
8215 (arguments
8216 `(#:tests? #t
8217 #:test-command '("ert-runner")))
8218 (home-page "https://github.com/Wilfred/ht.el")
8219 (synopsis "Hash table library for Emacs")
8220 (description
8221 "This package simplifies the use of hash tables in elisp. It also
8222 provides functions to convert hash tables from and to alists and plists.")
8223 (license license:gpl3+)))
8224
8225 (define-public emacs-log4e
8226 (package
8227 (name "emacs-log4e")
8228 (version "0.3.0")
8229 (source
8230 (origin
8231 (method git-fetch)
8232 (uri (git-reference
8233 (url "https://github.com/aki2o/log4e.git")
8234 (commit (string-append "v" version))))
8235 (file-name (git-file-name name version))
8236 (sha256
8237 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
8238 (build-system emacs-build-system)
8239 (arguments
8240 `(#:phases
8241 (modify-phases %standard-phases
8242 (add-after 'unpack 'remove-tests
8243 ;; Guile builder complains about null characters in some
8244 ;; strings of test files. Remove "test" directory (it is not
8245 ;; needed anyway).
8246 (lambda _
8247 (delete-file-recursively "test"))))))
8248 (home-page "https://github.com/aki2o/log4e")
8249 (synopsis "Logging framework for elisp")
8250 (description
8251 "This package provides a logging framework for elisp. It allows
8252 you to deal with multiple log levels.")
8253 (license license:gpl3+)))
8254
8255 (define-public emacs-gntp
8256 (package
8257 (name "emacs-gntp")
8258 (version "0.1")
8259 (source
8260 (origin
8261 (method git-fetch)
8262 (uri (git-reference
8263 (url "https://github.com/tekai/gntp.el.git")
8264 (commit (string-append "v" version))))
8265 (file-name (git-file-name name version))
8266 (sha256
8267 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
8268 (build-system emacs-build-system)
8269 (home-page "https://github.com/tekai/gntp.el")
8270 (synopsis "Growl Notification Protocol for Emacs")
8271 (description
8272 "This package implements the Growl Notification Protocol GNTP
8273 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
8274 It is incomplete as it only lets you send but not receive
8275 notifications.")
8276 (license license:bsd-3)))
8277
8278 (define-public emacs-alert
8279 (package
8280 (name "emacs-alert")
8281 (version "1.3")
8282 (source
8283 (origin
8284 (method git-fetch)
8285 (uri (git-reference
8286 (url "https://github.com/jwiegley/alert.git")
8287 (commit (string-append "v" version))))
8288 (file-name (git-file-name name version))
8289 (sha256
8290 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
8291 (build-system emacs-build-system)
8292 (propagated-inputs
8293 `(("emacs-gntp" ,emacs-gntp)
8294 ("emacs-log4e" ,emacs-log4e)))
8295 (home-page "https://github.com/jwiegley/alert")
8296 (synopsis "Growl-style notification system for Emacs")
8297 (description
8298 "Alert is a Growl-workalike for Emacs which uses a common notification
8299 interface and multiple, selectable \"styles\", whose use is fully
8300 customizable by the user.")
8301 (license license:gpl2+)))
8302
8303 (define-public emacs-zones
8304 (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe")
8305 (revision "2"))
8306 (package
8307 (name "emacs-zones")
8308 (version (git-version "0" revision commit))
8309 (source
8310 (origin
8311 (method git-fetch)
8312 (uri (git-reference
8313 (url "https://github.com/emacsmirror/zones.git")
8314 (commit commit)))
8315 (file-name (git-file-name name version))
8316 (sha256
8317 (base32
8318 "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl"))
8319 (patches
8320 (search-patches
8321 "emacs-zones-called-interactively.patch"))))
8322 (build-system emacs-build-system)
8323 (home-page "https://www.emacswiki.org/emacs/Zones")
8324 (synopsis "Define and act on multiple zones of buffer text")
8325 (description "Library @file{zones.el} lets you easily define and
8326 subsequently act on multiple zones of buffer text. You can think of this as
8327 enlarging the notion of region. In effect, it can remove the requirement of
8328 target text being a contiguous sequence of characters. A set of buffer zones
8329 is, in effect, a (typically) noncontiguous set of text.")
8330 (license license:gpl3+))))
8331
8332 (define-public emacs-mu4e-alert
8333 (package
8334 (name "emacs-mu4e-alert")
8335 (version "1.0")
8336 (source
8337 (origin
8338 (method git-fetch)
8339 (uri (git-reference
8340 (url "https://github.com/iqbalansari/mu4e-alert.git")
8341 (commit (string-append "v" version))))
8342 (file-name (git-file-name name version))
8343 (sha256
8344 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
8345 (build-system emacs-build-system)
8346 (propagated-inputs
8347 `(("emacs-alert" ,emacs-alert)
8348 ("emacs-s" ,emacs-s)
8349 ("emacs-ht" ,emacs-ht)
8350 ("mu" ,mu)))
8351 (home-page "https://github.com/iqbalansari/mu4e-alert")
8352 (synopsis "Desktop notification for mu4e")
8353 (description
8354 "This package provides desktop notifications for mu4e.
8355 Additionally it can display the number of unread emails in the
8356 mode-line.")
8357 (license license:gpl3+)))
8358
8359 (define-public emacs-mu4e-jump-to-list
8360 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
8361 (revision "1"))
8362 (package
8363 (name "emacs-mu4e-jump-to-list")
8364 (version (git-version "1.0" revision commit))
8365 (source
8366 (origin
8367 (method git-fetch)
8368 (uri (git-reference
8369 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
8370 (commit commit)))
8371 (file-name (git-file-name name version))
8372 (sha256
8373 (base32
8374 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
8375 (build-system emacs-build-system)
8376 (propagated-inputs
8377 `(("mu" ,mu)))
8378 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
8379 (synopsis "Select and view mailing lists in mu4e")
8380 (description
8381 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
8382 automatically using existing List-ID headers in your mu database. Just press
8383 \"l\" in the headers view and any mailing list you've subscribed to will be
8384 automatically discovered and presented in recency order.")
8385 (license license:gpl3+))))
8386
8387 (define-public emacs-mu4e-patch
8388 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
8389 (revision "1"))
8390 (package
8391 (name "emacs-mu4e-patch")
8392 (version (git-version "0.1.0" revision commit))
8393 (source (origin
8394 (method git-fetch)
8395 (uri (git-reference
8396 (url "https://github.com/seanfarley/mu4e-patch")
8397 (commit commit)))
8398 (file-name (git-file-name name version))
8399 (sha256
8400 (base32
8401 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
8402 (build-system emacs-build-system)
8403 (propagated-inputs
8404 `(("mu" ,mu)))
8405 (home-page "https://github.com/seanfarley/mu4e-patch")
8406 (synopsis "Colorize patch-like emails in mu4e")
8407 (description
8408 "Extension for mu4e to colorize patch-like emails with diff-mode.
8409 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
8410 been adapted to work with mu4e.")
8411 (license license:gpl3+))))
8412
8413 (define-public emacs-pretty-mode
8414 (package
8415 (name "emacs-pretty-mode")
8416 (version "2.0.3")
8417 (source
8418 (origin
8419 (method url-fetch)
8420 (uri (string-append "https://github.com/akatov/pretty-mode/"
8421 "archive/" version ".tar.gz"))
8422 (file-name (string-append name "-" version ".tar.gz"))
8423 (sha256
8424 (base32
8425 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
8426 (build-system emacs-build-system)
8427 (home-page "https://github.com/akatov/pretty-mode")
8428 (synopsis "Redisplay parts of the buffer as Unicode symbols")
8429 (description
8430 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
8431 (license license:gpl3+)))
8432
8433 (define-public emacs-yasnippet
8434 (package
8435 (name "emacs-yasnippet")
8436 (version "0.13.0")
8437 (source (origin
8438 (method git-fetch)
8439 (uri (git-reference
8440 (url "https://github.com/joaotavora/yasnippet.git")
8441 (commit version)))
8442 (file-name (string-append name "-" version ".tar.gz"))
8443 (sha256
8444 (base32
8445 "0fkkplycrw8f8r30hjjxl1wm7p2irq2ipzzc1g7cc52abaal796p"))
8446 (modules '((guix build utils)))
8447 (snippet
8448 '(begin
8449 ;; YASnippet expects a "snippets" subdirectory in the same
8450 ;; directory as yasnippet.el, but we don't install it
8451 ;; because it's a git submodule pointing to an external
8452 ;; repository. Adjust `yas-snippet-dirs' to prevent
8453 ;; warnings about a missing directory.
8454 (substitute* "yasnippet.el"
8455 (("^ +'yas-installed-snippets-dir\\)\\)\n")
8456 "))\n"))
8457 #t))))
8458 (build-system emacs-build-system)
8459 (arguments
8460 `(#:tests? #t
8461 #:test-command '("emacs" "--batch"
8462 "-l" "yasnippet-tests.el"
8463 "-f" "ert-run-tests-batch-and-exit")
8464 ;; FIXME: one failing test
8465 #:phases
8466 (modify-phases %standard-phases
8467 (add-before 'check 'make-tests-writable
8468 (lambda _
8469 (make-file-writable "yasnippet-tests.el")
8470 #t))
8471 (add-before 'check 'delete-rebinding-test
8472 (lambda _
8473 (emacs-batch-edit-file "yasnippet-tests.el"
8474 `(progn (progn (goto-char (point-min))
8475 (re-search-forward
8476 "ert-deftest test-rebindings")
8477 (beginning-of-line)
8478 (kill-sexp))
8479 (basic-save-buffer)))
8480 #t)))))
8481 (home-page "https://github.com/joaotavora/yasnippet")
8482 (synopsis "Yet another snippet extension for Emacs")
8483 (description
8484 "YASnippet is a template system for Emacs. It allows you to type an
8485 abbreviation and automatically expand it into function templates.")
8486 (license license:gpl3+)))
8487
8488 (define-public emacs-yasnippet-snippets
8489 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
8490 (revision "1"))
8491 (package
8492 (name "emacs-yasnippet-snippets")
8493 (version (string-append "1-" revision "." (string-take commit 8)))
8494 (source
8495 (origin
8496 (method git-fetch)
8497 (uri (git-reference
8498 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
8499 (commit commit)))
8500 (file-name (git-file-name name version))
8501 (sha256
8502 (base32
8503 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
8504 (build-system trivial-build-system)
8505 (arguments
8506 `(#:modules ((ice-9 ftw)
8507 (ice-9 regex)
8508 (guix build utils))
8509 #:builder
8510 (begin
8511 (use-modules (ice-9 ftw)
8512 (ice-9 regex)
8513 (guix build utils))
8514 (with-directory-excursion (assoc-ref %build-inputs "source")
8515 (for-each (lambda (dir)
8516 (copy-recursively
8517 dir
8518 (string-append %output
8519 "/share/emacs/yasnippet-snippets/"
8520 dir)))
8521 (scandir "." (lambda (fname)
8522 (and (string-match "-mode$" fname)
8523 (directory-exists? fname))))))
8524 #t)))
8525 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
8526 (synopsis "Collection of YASnippet snippets for many languages")
8527 (description
8528 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
8529 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
8530 To make YASnippet aware of these snippets, add the above directory to
8531 @code{yas-snippet-dirs}.")
8532 (license license:expat))))
8533
8534 (define-public emacs-helm-c-yasnippet
8535 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
8536 (revision "1"))
8537 (package
8538 (name "emacs-helm-c-yasnippet")
8539 (version (string-append "0.6.7" "-" revision "."
8540 (string-take commit 7)))
8541 (source (origin
8542 (method git-fetch)
8543 (uri (git-reference
8544 (url "https://github.com/emacs-jp/helm-c-yasnippet")
8545 (commit commit)))
8546 (file-name (git-file-name name version))
8547 (sha256
8548 (base32
8549 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
8550 (build-system emacs-build-system)
8551 (propagated-inputs
8552 `(("emacs-helm" ,emacs-helm)
8553 ("emacs-yasnippet" ,emacs-yasnippet)))
8554 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
8555 (synopsis "Helm integration for Yasnippet")
8556 (description "This Emacs library provides Helm interface for
8557 Yasnippet.")
8558 (license license:gpl2+))))
8559
8560 (define-public emacs-helm-system-packages
8561 ;; There won't be a new release after 1.10.1 until
8562 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
8563 ;; and latest commits fix import issues with Guix.
8564 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
8565 (package
8566 (name "emacs-helm-system-packages")
8567 (version (git-version "1.10.1" "1" commit))
8568 (source (origin
8569 (method git-fetch)
8570 (uri (git-reference
8571 (url "https://github.com/emacs-helm/helm-system-packages")
8572 (commit commit)))
8573 (file-name (git-file-name name version))
8574 (sha256
8575 (base32
8576 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
8577 (build-system emacs-build-system)
8578 (inputs
8579 `(("recutils" ,recutils)))
8580 (propagated-inputs
8581 `(("emacs-helm" ,emacs-helm)))
8582 (arguments
8583 `(#:phases
8584 (modify-phases %standard-phases
8585 (add-after 'unpack 'configure
8586 (lambda* (#:key inputs outputs #:allow-other-keys)
8587 (let ((recutils (assoc-ref inputs "recutils")))
8588 ;; Specify the absolute file names of the various
8589 ;; programs so that everything works out-of-the-box.
8590 (substitute* "helm-system-packages-guix.el"
8591 (("recsel") (string-append recutils "/bin/recsel")))))))))
8592 (home-page "https://github.com/emacs-helm/helm-system-packages")
8593 (synopsis "Helm System Packages is an interface to your package manager")
8594 (description "List all available packages in Helm (with installed
8595 packages displayed in their own respective face). Fuzzy-search, mark and
8596 execute the desired action over any selections of packages: Install,
8597 uninstall, display packages details (in Org Mode) or insert details at point,
8598 find files owned by packages... And much more, including performing all the
8599 above over the network.")
8600 (license license:gpl3+))))
8601
8602 (define-public emacs-helm-org-rifle
8603 (package
8604 (name "emacs-helm-org-rifle")
8605 (version "1.7.0")
8606 (source
8607 (origin
8608 (method git-fetch)
8609 (uri (git-reference
8610 (url "https://github.com/alphapapa/helm-org-rifle")
8611 (commit version)))
8612 (file-name (git-file-name name version))
8613 (sha256
8614 (base32
8615 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
8616 (build-system emacs-build-system)
8617 (propagated-inputs
8618 `(("emacs-dash" ,emacs-dash)
8619 ("emacs-f" ,emacs-f)
8620 ("emacs-helm" ,emacs-helm)
8621 ("emacs-org" ,emacs-org)
8622 ("emacs-s" ,emacs-s)))
8623 (home-page "https://github.com/alphapapa/helm-org-rifle")
8624 (synopsis "Rifle through Org files")
8625 (description "This package searches both headings and contents of entries
8626 in Org buffers and displays matching entries.")
8627 (license license:gpl3+)))
8628
8629 (define-public emacs-dired-toggle-sudo
8630 (package
8631 (name "emacs-dired-toggle-sudo")
8632 (version "1.0")
8633 (source
8634 (origin
8635 (method git-fetch)
8636 (uri (git-reference
8637 (url "https://github.com/renard/dired-toggle-sudo")
8638 (commit (string-append "v" version))))
8639 (file-name (git-file-name name version))
8640 (sha256
8641 (base32
8642 "0ajj8d6k5in2hclcrqckinfh80ylddplva0ryfbkzsjkfq167cv2"))
8643 (patches
8644 (search-patches
8645 "emacs-dired-toggle-sudo-emacs-26.patch"))))
8646 (build-system emacs-build-system)
8647 (home-page "https://github.com/renard/dired-toggle-sudo")
8648 (synopsis "Browse directory with @code{sudo} privileges")
8649 (description "This package allows for the use of @code{dired} with
8650 @code{sudo} privileges.")
8651 (license license:wtfpl2)))
8652
8653 (define-public emacs-memoize
8654 (package
8655 (name "emacs-memoize")
8656 (version "1.1")
8657 (source
8658 (origin
8659 (method git-fetch)
8660 (uri (git-reference
8661 (url "https://github.com/skeeto/emacs-memoize.git")
8662 (commit version)))
8663 (file-name (git-file-name name version))
8664 (sha256
8665 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
8666 (build-system emacs-build-system)
8667 (arguments
8668 `(#:tests? #t
8669 #:test-command '("emacs" "--batch"
8670 "-l" "memoize-test.el"
8671 "-f" "ert-run-tests-batch-and-exit")))
8672 (home-page "https://github.com/skeeto/emacs-memoize")
8673 (synopsis "Emacs lisp memoization library")
8674 (description "@code{emacs-memoize} is an Emacs library for
8675 memoizing functions.")
8676 (license license:unlicense)))
8677
8678 (define-public emacs-linum-relative
8679 (package
8680 (name "emacs-linum-relative")
8681 (version "0.6")
8682 (source
8683 (origin
8684 (method git-fetch)
8685 (uri (git-reference
8686 (url "https://github.com/coldnew/linum-relative.git")
8687 (commit version)))
8688 (file-name (git-file-name name version))
8689 (sha256
8690 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
8691 (build-system emacs-build-system)
8692 (home-page "https://github.com/coldnew/linum-relative")
8693 (synopsis "Relative line numbering for Emacs")
8694 (description "@code{emacs-linum-relative} displays the relative line
8695 number on the left margin in Emacs.")
8696 (license license:gpl2+)))
8697
8698 (define-public emacs-idle-highlight
8699 (package
8700 (name "emacs-idle-highlight")
8701 (version "1.1.3")
8702 (source
8703 (origin
8704 (method git-fetch)
8705 (uri (git-reference
8706 (url "https://github.com/nonsequitur/idle-highlight-mode.git")
8707 (commit version)))
8708 (file-name (git-file-name name version))
8709 (sha256
8710 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
8711 (build-system emacs-build-system)
8712 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
8713 (synopsis "Highlights all occurrences of the word the point is on")
8714 (description
8715 "This Emacs package provides @code{idle-highlight-mode} that sets
8716 an idle timer to highlight all occurrences in the buffer of the word under
8717 the point.")
8718 (license license:gpl3+)))
8719
8720 (define-public emacs-ox-twbs
8721 (package
8722 (name "emacs-ox-twbs")
8723 (version "1.1.1")
8724 (source
8725 (origin
8726 (method git-fetch)
8727 (uri (git-reference
8728 (url "https://github.com/marsmining/ox-twbs.git")
8729 (commit (string-append "v" version))))
8730 (file-name (git-file-name name version))
8731 (sha256
8732 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
8733 (build-system emacs-build-system)
8734 (home-page "https://github.com/marsmining/ox-twbs")
8735 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
8736 (description
8737 "This Emacs package outputs your org-mode docs with a simple, clean and
8738 modern look. It implements a new HTML back-end for exporting org-mode docs as
8739 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
8740 jQuery and Bootstrap resources included via osscdn.")
8741 (license license:gpl3+)))
8742
8743 (define-public emacs-highlight-sexp
8744 (package
8745 (name "emacs-highlight-sexp")
8746 (version "1.0")
8747 (source
8748 (origin
8749 (method git-fetch)
8750 (uri (git-reference
8751 (url "https://github.com/daimrod/highlight-sexp.git")
8752 (commit (string-append "v" version))))
8753 (file-name (git-file-name name version))
8754 (sha256
8755 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
8756 (build-system emacs-build-system)
8757 (home-page "https://github.com/daimrod/highlight-sexp")
8758 (synopsis "Minor mode that highlights the s-exp at the current position")
8759 (description
8760 "This Emacs package highlights the s-exp at the current position.")
8761 (license license:gpl3+)))
8762
8763 (define-public emacs-highlight-stages
8764 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
8765 (revision "1"))
8766 (package
8767 (name "emacs-highlight-stages")
8768 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
8769 (source
8770 (origin
8771 (method git-fetch)
8772 (uri (git-reference
8773 (url "https://github.com/zk-phi/highlight-stages.git")
8774 (commit commit)))
8775 (file-name (git-file-name name version))
8776 (sha256
8777 (base32
8778 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
8779 (patches
8780 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
8781 (build-system emacs-build-system)
8782 (home-page "https://github.com/wigust/highlight-stages")
8783 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
8784 (description "@code{highlight-stages} provides an Emacs minor mode that
8785 highlights quasi-quoted expressions.")
8786 (license license:gpl3+))))
8787
8788 (define-public emacspeak
8789 (package
8790 (name "emacspeak")
8791 (version "50.0")
8792 (source
8793 (origin
8794 (method url-fetch)
8795 (uri (string-append
8796 "https://github.com/tvraman/emacspeak/releases/download/"
8797 version "/emacspeak-" version ".tar.bz2"))
8798 (sha256
8799 (base32
8800 "0rsj7rzfyqmyidfsjrhjnxi2d43axx6r3gac1fhv5xkkbiiqzqkb"))))
8801 (build-system gnu-build-system)
8802 (arguments
8803 '(#:make-flags (list (string-append "prefix="
8804 (assoc-ref %outputs "out")))
8805 #:phases
8806 (modify-phases %standard-phases
8807 (replace 'configure
8808 (lambda _
8809 (setenv "SHELL" (which "sh"))
8810 ;; Configure Emacspeak according to etc/install.org.
8811 (invoke "make" "config")))
8812 (add-after 'build 'build-espeak
8813 (lambda _
8814 (invoke "make" "espeak")))
8815 (replace 'install
8816 (lambda* (#:key inputs outputs #:allow-other-keys)
8817 (let* ((out (assoc-ref outputs "out"))
8818 (bin (string-append out "/bin"))
8819 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
8820 (info (string-append out "/share/info"))
8821 (emacs (string-append (assoc-ref inputs "emacs")
8822 "/bin/emacs")))
8823 ;; According to etc/install.org, the Emacspeak directory should
8824 ;; be copied to its installation destination.
8825 (for-each
8826 (lambda (file)
8827 (copy-recursively file (string-append lisp "/" file)))
8828 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
8829 "stumpwm" "xsl"))
8830 ;; Make sure emacspeak is loaded from the correct directory.
8831 (substitute* "etc/emacspeak.sh"
8832 (("/lisp/emacspeak-setup.el")
8833 (string-append lisp "/lisp/emacspeak-setup.el")))
8834 ;; Install the convenient startup script.
8835 (mkdir-p bin)
8836 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
8837 #t))
8838 (add-after 'install 'wrap-program
8839 (lambda* (#:key inputs outputs #:allow-other-keys)
8840 (let* ((out (assoc-ref outputs "out"))
8841 (emacspeak (string-append out "/bin/emacspeak"))
8842 (espeak (string-append (assoc-ref inputs "espeak")
8843 "/bin/espeak")))
8844 ;; The environment variable DTK_PROGRAM tells emacspeak what
8845 ;; program to use for speech.
8846 (wrap-program emacspeak
8847 `("DTK_PROGRAM" ":" prefix (,espeak)))
8848 #t))))
8849 #:tests? #f)) ; no check target
8850 (inputs
8851 `(("emacs" ,emacs)
8852 ("espeak" ,espeak)
8853 ("perl" ,perl)
8854 ("tcl" ,tcl)
8855 ("tclx" ,tclx)))
8856 (home-page "http://emacspeak.sourceforge.net")
8857 (synopsis "Audio desktop interface for Emacs")
8858 (description
8859 "Emacspeak is a speech interface that allows visually impaired users to
8860 interact independently and efficiently with the computer. Audio formatting
8861 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
8862 allows Emacspeak to produce rich aural presentations of electronic information.
8863 By seamlessly blending all aspects of the Internet such as Web-surfing and
8864 messaging, Emacspeak speech-enables local and remote information via a
8865 consistent and well-integrated user interface.")
8866 (license license:gpl2+)))
8867
8868 (define-public emacs-adaptive-wrap
8869 (package
8870 (name "emacs-adaptive-wrap")
8871 (version "0.5.1")
8872 (source (origin
8873 (method url-fetch)
8874 (uri (string-append
8875 "http://elpa.gnu.org/packages/adaptive-wrap-"
8876 version ".el"))
8877 (sha256
8878 (base32
8879 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
8880 (build-system emacs-build-system)
8881 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
8882 (synopsis "Smart line-wrapping with wrap-prefix")
8883 (description
8884 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
8885 minor mode which sets the wrap-prefix property on the fly so that
8886 single-long-line paragraphs get word-wrapped in a way similar to what
8887 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
8888 actually changing the buffer's text.")
8889 (license license:gpl3+)))
8890
8891 (define-public emacs-diff-hl
8892 (package
8893 (name "emacs-diff-hl")
8894 (version "1.8.6")
8895 (source
8896 (origin
8897 (method git-fetch)
8898 (uri (git-reference
8899 (url "https://github.com/dgutov/diff-hl")
8900 (commit version)))
8901 (sha256
8902 (base32
8903 "1xlsg728mz3cwhrsqvisa0aidic67nymd9g7h4c1h3q63j39yb2s"))))
8904 (build-system emacs-build-system)
8905 (home-page "https://github.com/dgutov/diff-hl")
8906 (synopsis
8907 "Highlight uncommitted changes using VC")
8908 (description
8909 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
8910 window (using the fringe, by default), allows you to jump between
8911 the hunks and revert them selectively.")
8912 (license license:gpl3+)))
8913
8914 (define-public emacs-diminish
8915 (package
8916 (name "emacs-diminish")
8917 (version "0.45")
8918 (source
8919 (origin
8920 (method git-fetch)
8921 (uri (git-reference
8922 (url "https://github.com/myrjola/diminish.el.git")
8923 (commit (string-append "v" version))))
8924 (file-name (git-file-name name version))
8925 (sha256
8926 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
8927 (build-system emacs-build-system)
8928 (home-page "https://github.com/myrjola/diminish.el")
8929 (synopsis "Diminish minor modes with no modeline display")
8930 (description "@code{emacs-diminish} implements hiding or
8931 abbreviation of the mode line displays (lighters) of minor modes.")
8932 (license license:gpl2+)))
8933
8934 (define-public emacs-use-package
8935 (package
8936 (name "emacs-use-package")
8937 (version "2.4")
8938 (source (origin
8939 (method git-fetch)
8940 (uri (git-reference
8941 (url "https://github.com/jwiegley/use-package")
8942 (commit version)))
8943 (file-name (git-file-name name version))
8944 (sha256
8945 (base32
8946 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
8947 (build-system emacs-build-system)
8948 (propagated-inputs
8949 `(("emacs-diminish" ,emacs-diminish)))
8950 (arguments
8951 `(#:tests? #t
8952 #:test-command '("emacs" "--batch"
8953 "-l" "use-package-tests.el"
8954 "-f" "ert-run-tests-batch-and-exit")))
8955 (home-page "https://github.com/jwiegley/use-package")
8956 (synopsis "Declaration for simplifying your .emacs")
8957 (description "The use-package macro allows you to isolate package
8958 configuration in your @file{.emacs} file in a way that is both
8959 performance-oriented and tidy.")
8960 (license license:gpl2+)))
8961
8962 (define-public emacs-strace-mode
8963 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
8964 (revision "1"))
8965 (package
8966 (name "emacs-strace-mode")
8967 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
8968 (source (origin
8969 (method git-fetch)
8970 (uri (git-reference
8971 (url "https://github.com/pkmoore/strace-mode")
8972 (commit commit)))
8973 (file-name (git-file-name name version))
8974 (sha256
8975 (base32
8976 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
8977 (build-system emacs-build-system)
8978 (home-page "https://github.com/pkmoore/strace-mode")
8979 (synopsis "Emacs major mode to highlight strace outputs")
8980 (description "@code{emacs-strace-mode} provides an Emacs major mode
8981 highlighting strace outputs.")
8982 (license license:gpl3+))))
8983
8984 (define-public emacs-default-encrypt
8985 (package
8986 (name "emacs-default-encrypt")
8987 (version "4.4")
8988 (source
8989 (origin
8990 (method url-fetch)
8991 (uri (string-append
8992 "https://informationelle-selbstbestimmung-im-internet.de"
8993 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
8994 (file-name (string-append "jl-encrypt-" version ".el"))
8995 (sha256
8996 (base32
8997 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
8998 (build-system emacs-build-system)
8999 (home-page
9000 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
9001 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
9002 (description
9003 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
9004 automatically encrypts messages that you send (e.g., email) when public keys
9005 for all recipients are available, and it protects you from accidentally
9006 sending un-encrypted messages. It can also be configured to automatically
9007 sign messages that you send. For details and instructions on how to use
9008 DefaultEncrypt, please refer to the home page or read the comments in the
9009 source file, @file{jl-encrypt.el}.")
9010 (license license:gpl3+)))
9011
9012 (define-public emacs-extend-smime
9013 (package
9014 (name "emacs-extend-smime")
9015 (version "3.3")
9016 (source
9017 (origin
9018 (method url-fetch)
9019 (uri (string-append
9020 "https://informationelle-selbstbestimmung-im-internet.de"
9021 "/emacs/jl-smime" version "/jl-smime.el"))
9022 (file-name (string-append "jl-smime-" version ".el"))
9023 (sha256
9024 (base32
9025 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
9026 (build-system emacs-build-system)
9027 (home-page
9028 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
9029 (synopsis "Improved S/MIME support for Gnus in Emacs")
9030 (propagated-inputs
9031 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
9032 (description
9033 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
9034 ;; should not be translated. The name "emacs-default-encrypt" refers to
9035 ;; the Guix package that provides DefaultEncrypt.
9036 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
9037 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
9038 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
9039 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
9040 certificates via LDAP and imports them into @code{gpgsm}. When certificates
9041 for all recipients are available, DefaultEncrypt automatically encrypts the
9042 message. For details and instructions on how to use ExtendSMIME, please refer
9043 to the home page or read the comments in the source file,
9044 @file{jl-smime.el}.")
9045 (license license:gpl3+)))
9046
9047 (define-public emacs-htmlize
9048 (package
9049 (name "emacs-htmlize")
9050 (version "1.53")
9051 (source
9052 (origin
9053 (method git-fetch)
9054 (uri (git-reference
9055 (url "https://github.com/hniksic/emacs-htmlize.git")
9056 (commit (string-append "release/" version))))
9057 (file-name (git-file-name name version))
9058 (sha256
9059 (base32 "0dr235c0z8is3pi5xdgqyqljg6px0b2aya6qb79zkyi477bmz4ip"))))
9060 (build-system emacs-build-system)
9061 (home-page "https://github.com/hniksic/emacs-htmlize")
9062 (synopsis "Convert buffer text and decorations to HTML")
9063 (description "@code{emacs-htmlize} converts the buffer text and
9064 the associated decorations to HTML. Output to CSS, inline CSS and
9065 fonts is supported.")
9066 (license license:gpl2+)))
9067
9068 (define-public emacs-xmlgen
9069 (package
9070 (name "emacs-xmlgen")
9071 (version "0.5")
9072 (source
9073 (origin
9074 (method git-fetch)
9075 (uri (git-reference
9076 (url "https://github.com/philjackson/xmlgen.git")
9077 (commit version)))
9078 (file-name (git-file-name name version))
9079 (sha256
9080 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
9081 (build-system emacs-build-system)
9082 (arguments
9083 `(#:tests? #t
9084 #:test-command '("emacs" "--batch"
9085 "-l" "xmlgen-test.el"
9086 "-f" "ert-run-tests-batch-and-exit")))
9087 (home-page "https://github.com/philjackson/xmlgen")
9088 (synopsis "S-expression to XML domain specific language (DSL) in
9089 Emacs Lisp")
9090 (description "@code{emacs-xmlgen} provides S-expression to XML
9091 conversion for Emacs Lisp.")
9092 (license license:gpl2+)))
9093
9094 (define-public emacs-cdlatex
9095 (package
9096 (name "emacs-cdlatex")
9097 (version "4.7")
9098 (source
9099 (origin
9100 (method git-fetch)
9101 (uri (git-reference
9102 (url "https://github.com/cdominik/cdlatex.git")
9103 (commit version)))
9104 (file-name (git-file-name name version))
9105 (sha256
9106 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
9107 (build-system emacs-build-system)
9108 (propagated-inputs
9109 `(("emacs-auctex" ,emacs-auctex)))
9110 (home-page "https://github.com/cdominik/cdlatex")
9111 (synopsis "Fast Emacs input methods for LaTeX environments and
9112 math")
9113 (description "CDLaTeX is an Emacs minor mode supporting fast
9114 insertion of environment templates and math in LaTeX. Similar
9115 commands are also offered as part of the AUCTeX package, but it is not
9116 the same - CDLaTeX focuses on speediness for inserting LaTeX
9117 constructs.")
9118 (license license:gpl3+)))
9119
9120 (define-public emacs-cnfonts
9121 (package
9122 (name "emacs-cnfonts")
9123 (version "0.9.1")
9124 (source
9125 (origin
9126 (method git-fetch)
9127 (uri (git-reference
9128 (url "https://github.com/tumashu/cnfonts.git")
9129 (commit (string-append "v" version))))
9130 (file-name (git-file-name name version))
9131 (sha256
9132 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
9133 (build-system emacs-build-system)
9134 (home-page "https://github.com/tumashu/cnfonts")
9135 (synopsis "Emacs Chinese fonts setup tool")
9136 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
9137 configuration of Chinese fonts.")
9138 (license license:gpl2+)))
9139
9140 (define-public emacs-php-mode
9141 (package
9142 (name "emacs-php-mode")
9143 (version "20171225.342")
9144 (source (origin
9145 (method url-fetch)
9146 (uri (string-append
9147 "https://melpa.org/packages/php-mode-"
9148 version ".tar"))
9149 (sha256
9150 (base32
9151 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
9152 (build-system emacs-build-system)
9153 (home-page "https://github.com/ejmr/php-mode")
9154 (synopsis "Major mode for editing PHP code")
9155 (description "@code{php-mode} is a major mode for editing PHP source
9156 code. It's an extension of C mode; thus it inherits all C mode's navigation
9157 functionality. But it colors according to the PHP grammar and indents
9158 according to the PEAR coding guidelines. It also includes a couple handy
9159 IDE-type features such as documentation search and a source and class
9160 browser.")
9161 (license license:gpl3+)))
9162
9163 (define-public emacs-pos-tip
9164 (package
9165 (name "emacs-pos-tip")
9166 (version "0.4.6")
9167 (source
9168 (origin
9169 (method git-fetch)
9170 (uri (git-reference
9171 (url "https://github.com/pitkali/pos-tip.git")
9172 (commit version)))
9173 (file-name (git-file-name name version))
9174 (sha256
9175 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
9176 (build-system emacs-build-system)
9177 ;; The following functions and variables needed by emacs-pos-tip are
9178 ;; not included in emacs-minimal:
9179 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
9180 (arguments `(#:emacs ,emacs))
9181 (home-page "https://github.com/pitkali/pos-tip")
9182 (synopsis "Show tooltip at point")
9183 (description "The standard library tooltip.el provides a function for
9184 displaying a tooltip at the mouse position. However, locating a tooltip at an
9185 arbitrary buffer position in a window is not easy. Pos-tip provides such a
9186 function to be used by other frontend programs.")
9187 (license license:gpl2+)))
9188
9189 (define-public emacs-pyim-basedict
9190 (package
9191 (name "emacs-pyim-basedict")
9192 (version "0.3.1")
9193 (source
9194 (origin
9195 (method git-fetch)
9196 (uri (git-reference
9197 (url "https://github.com/tumashu/pyim-basedict.git")
9198 (commit (string-append "v" version))))
9199 (file-name (git-file-name name version))
9200 (sha256
9201 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
9202 (build-system emacs-build-system)
9203 (home-page "https://github.com/tumashu/pyim-basedict")
9204 (synopsis "Input method dictionary of pyim")
9205 (description "Pyim-basedict is the default pinyin input method dictionary,
9206 containing words from the rime project.")
9207 (license license:gpl2+)))
9208
9209 (define-public emacs-pyim
9210 (package
9211 (name "emacs-pyim")
9212 (version "1.8")
9213 (source
9214 (origin
9215 (method git-fetch)
9216 (uri (git-reference
9217 (url "https://github.com/tumashu/pyim")
9218 (commit (string-append "v" version))))
9219 (file-name (git-file-name name version))
9220 (sha256
9221 (base32
9222 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
9223 (build-system emacs-build-system)
9224 (propagated-inputs
9225 `(("emacs-async" ,emacs-async)
9226 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
9227 ("emacs-popup" ,emacs-popup)
9228 ("emacs-posframe" ,emacs-posframe)))
9229 (home-page "https://github.com/tumashu/pyim")
9230 (synopsis "Chinese input method")
9231 (description "Chinese input method which supports quanpin, shuangpin, wubi
9232 and cangjie.")
9233 (license license:gpl2+)))
9234
9235 (define-public emacs-posframe
9236 (package
9237 (name "emacs-posframe")
9238 (version "0.5.0")
9239 (source
9240 (origin
9241 (method git-fetch)
9242 (uri (git-reference
9243 (url "https://github.com/tumashu/posframe")
9244 (commit (string-append "v" version))))
9245 (file-name (git-file-name name version))
9246 (sha256
9247 (base32
9248 "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3"))))
9249 (build-system emacs-build-system)
9250 ;; emacs-minimal does not include the function font-info
9251 (arguments `(#:emacs ,emacs))
9252 (home-page "https://github.com/tumashu/posframe")
9253 (synopsis "Pop a posframe (a child frame) at point")
9254 (description "@code{emacs-posframe} can pop a posframe at point. A
9255 posframe is a child frame displayed within its root window's buffer.
9256 @code{emacs-posframe} is fast and works well with CJK languages.")
9257 (license license:gpl3+)))
9258
9259 (define-public emacs-el2org
9260 (package
9261 (name "emacs-el2org")
9262 (version "0.6.0")
9263 (source
9264 (origin
9265 (method git-fetch)
9266 (uri (git-reference
9267 (url "https://github.com/tumashu/el2org.git")
9268 (commit (string-append "v" version))))
9269 (file-name (git-file-name name version))
9270 (sha256
9271 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
9272 (build-system emacs-build-system)
9273 (home-page "https://github.com/tumashu/el2org")
9274 (synopsis "Convert Emacs-lisp file to org file")
9275 (description "El2org is a simple tool, which can convert Emacs-lisp file
9276 to org file, you can use this tool to write orgify commentary.")
9277 (license license:gpl2+)))
9278
9279 (define-public emacs-mustache
9280 (package
9281 (name "emacs-mustache")
9282 (version "0.23")
9283 (source
9284 (origin
9285 (method git-fetch)
9286 (uri (git-reference
9287 (url "https://github.com/Wilfred/mustache.el.git")
9288 (commit version)))
9289 (file-name (git-file-name name version))
9290 (sha256
9291 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
9292 (build-system emacs-build-system)
9293 (propagated-inputs
9294 `(("emacs-dash" ,emacs-dash)
9295 ("emacs-ht" ,emacs-ht)
9296 ("emacs-s" ,emacs-s)))
9297 (home-page "https://github.com/Wilfred/mustache.el")
9298 (synopsis "Mustache templating library for Emacs")
9299 (description "Mustache templating library for Emacs, mustache is
9300 a simple web template system, which is described as a logic-less system
9301 because it lacks any explicit control flow statements, both looping and
9302 conditional evaluation can be achieved using section tags processing lists
9303 and lambdas.")
9304 (license license:gpl3+)))
9305
9306 (define-public emacs-org2web
9307 (package
9308 (name "emacs-org2web")
9309 (version "0.9.1")
9310 (source
9311 (origin
9312 (method git-fetch)
9313 (uri (git-reference
9314 (url "https://github.com/tumashu/org2web.git")
9315 (commit (string-append "v" version))))
9316 (file-name (git-file-name name version))
9317 (sha256
9318 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
9319 (build-system emacs-build-system)
9320 (propagated-inputs
9321 `(("emacs-dash" ,emacs-dash)
9322 ("emacs-el2org" ,emacs-el2org)
9323 ("emacs-ht" ,emacs-ht)
9324 ("emacs-mustache" ,emacs-mustache)
9325 ("emacs-simple-httpd" ,emacs-simple-httpd)))
9326 (home-page "https://github.com/tumashu/org2web")
9327 (synopsis "Static site generator based on org-mode ")
9328 (description "Org2web is a static site generator based on org-mode,
9329 which code derived from Kelvin H's org-page.")
9330 (license license:gpl2+)))
9331
9332 (define-public emacs-xelb
9333 (package
9334 (name "emacs-xelb")
9335 (version "0.18")
9336 (source (origin
9337 (method url-fetch)
9338 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
9339 version ".tar"))
9340 (sha256
9341 (base32
9342 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
9343 (build-system emacs-build-system)
9344 ;; The following functions and variables needed by emacs-xelb are
9345 ;; not included in emacs-minimal:
9346 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
9347 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
9348 ;; x-display-pixel-width, x-display-pixel-height
9349 (arguments
9350 `(#:emacs ,emacs
9351 #:phases
9352 (modify-phases %standard-phases
9353 (add-after 'unpack 'regenerate-el-files
9354 (lambda* (#:key inputs #:allow-other-keys)
9355 (invoke "make"
9356 (string-append "PROTO_PATH="
9357 (assoc-ref inputs "xcb-proto")
9358 "/share/xcb")
9359 (string-append "EMACS_BIN="
9360 (assoc-ref inputs "emacs")
9361 "/bin/emacs -Q")))))))
9362 (native-inputs `(("xcb-proto" ,xcb-proto)))
9363 (home-page "https://github.com/ch11ng/xelb")
9364 (synopsis "X protocol Emacs Lisp binding")
9365 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
9366 X11 protocol based on the XML description files from the XCB project. It
9367 features an object-oriented API and permits a certain degree of concurrency.
9368 It should enable you to implement low-level X11 applications.")
9369 (license license:gpl3+)))
9370
9371 (define-public emacs-exwm
9372 (package
9373 (name "emacs-exwm")
9374 (version "0.23")
9375 (synopsis "Emacs X window manager")
9376 (source (origin
9377 (method url-fetch)
9378 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
9379 version ".tar"))
9380 (sha256
9381 (base32
9382 "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5"))))
9383 (build-system emacs-build-system)
9384 (propagated-inputs
9385 `(("emacs-xelb" ,emacs-xelb)))
9386 (inputs
9387 `(("xhost" ,xhost)
9388 ("dbus" ,dbus)))
9389 ;; The following functions and variables needed by emacs-exwm are
9390 ;; not included in emacs-minimal:
9391 ;; scroll-bar-mode, fringe-mode
9392 ;; x-display-pixel-width, x-display-pixel-height
9393 (arguments
9394 `(#:emacs ,emacs
9395 #:phases
9396 (modify-phases %standard-phases
9397 (add-after 'build 'install-xsession
9398 (lambda* (#:key inputs outputs #:allow-other-keys)
9399 (let* ((out (assoc-ref outputs "out"))
9400 (xsessions (string-append out "/share/xsessions"))
9401 (bin (string-append out "/bin"))
9402 (exwm-executable (string-append bin "/exwm")))
9403 ;; Add a .desktop file to xsessions
9404 (mkdir-p xsessions)
9405 (mkdir-p bin)
9406 (with-output-to-file
9407 (string-append xsessions "/exwm.desktop")
9408 (lambda _
9409 (format #t "[Desktop Entry]~@
9410 Name=~a~@
9411 Comment=~a~@
9412 Exec=~a~@
9413 TryExec=~:*~a~@
9414 Type=Application~%" ,name ,synopsis exwm-executable)))
9415 ;; Add a shell wrapper to bin
9416 (with-output-to-file exwm-executable
9417 (lambda _
9418 (format #t "#!~a ~@
9419 ~a +SI:localuser:$USER ~@
9420 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
9421 (string-append (assoc-ref inputs "bash") "/bin/sh")
9422 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
9423 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
9424 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
9425 '(cond
9426 ((file-exists-p "~/.exwm")
9427 (load-file "~/.exwm"))
9428 ((not (featurep 'exwm))
9429 (require 'exwm)
9430 (require 'exwm-config)
9431 (exwm-config-default)
9432 (message (concat "exwm configuration not found. "
9433 "Falling back to default configuration...")))))))
9434 (chmod exwm-executable #o555)
9435 #t))))))
9436 (home-page "https://github.com/ch11ng/exwm")
9437 (description "EXWM is a full-featured tiling X window manager for Emacs
9438 built on top of XELB.")
9439 (license license:gpl3+)))
9440
9441 (define-public emacs-switch-window
9442 (package
9443 (name "emacs-switch-window")
9444 (version "1.6.2")
9445 (source
9446 (origin
9447 (method git-fetch)
9448 (uri (git-reference
9449 (url "https://github.com/dimitri/switch-window")
9450 (commit (string-append "v" version))))
9451 (file-name (git-file-name name version))
9452 (sha256
9453 (base32
9454 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
9455 (build-system emacs-build-system)
9456 (home-page "https://github.com/dimitri/switch-window")
9457 (synopsis "Emacs window switch tool")
9458 (description "Switch-window is an emacs window switch tool, which
9459 offer a visual way to choose a window to switch to, delete, split or
9460 other operations.")
9461 (license license:wtfpl2)))
9462
9463 (define-public emacs-exwm-x
9464 (package
9465 (name "emacs-exwm-x")
9466 (version "1.9.0")
9467 (synopsis "Derivative window manager based on EXWM")
9468 (source
9469 (origin
9470 (method git-fetch)
9471 (uri (git-reference
9472 (url "https://github.com/tumashu/exwm-x")
9473 (commit (string-append "v" version))))
9474 (file-name (git-file-name name version))
9475 (sha256
9476 (base32
9477 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
9478 (build-system emacs-build-system)
9479 (propagated-inputs
9480 `(("emacs-exwm" ,emacs-exwm)
9481 ("emacs-switch-window" ,emacs-switch-window)
9482 ("emacs-ivy" ,emacs-ivy)
9483 ("emacs-use-package" ,emacs-use-package)))
9484 (inputs
9485 `(("xhost" ,xhost)
9486 ("dbus" ,dbus)))
9487 ;; Need emacs instead of emacs-minimal,
9488 ;; for emacs's bin path will be inserted into bin/exwm-x file.
9489 (arguments
9490 `(#:emacs ,emacs
9491 #:phases
9492 (modify-phases %standard-phases
9493 (add-after 'build 'install-xsession
9494 (lambda* (#:key inputs outputs #:allow-other-keys)
9495 (let* ((out (assoc-ref outputs "out"))
9496 (xsessions (string-append out "/share/xsessions"))
9497 (bin (string-append out "/bin"))
9498 (exwm-executable (string-append bin "/exwm-x")))
9499 ;; Add a .desktop file to xsessions
9500 (mkdir-p xsessions)
9501 (mkdir-p bin)
9502 (with-output-to-file
9503 (string-append xsessions "/exwm-x.desktop")
9504 (lambda _
9505 (format #t "[Desktop Entry]~@
9506 Name=~a~@
9507 Comment=~a~@
9508 Exec=~a~@
9509 TryExec=~@*~a~@
9510 Type=Application~%" ,name ,synopsis exwm-executable)))
9511 ;; Add a shell wrapper to bin
9512 (with-output-to-file exwm-executable
9513 (lambda _
9514 (format #t "#!~a ~@
9515 ~a +SI:localuser:$USER ~@
9516 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
9517 (string-append (assoc-ref inputs "bash") "/bin/sh")
9518 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
9519 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
9520 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
9521 '(require 'exwmx-loader))))
9522 (chmod exwm-executable #o555)
9523 #t))))))
9524 (home-page "https://github.com/tumashu/exwm-x")
9525 (description "EXWM-X is a derivative window manager based on EXWM, with focus
9526 on mouse-control.")
9527 (license license:gpl3+)))
9528
9529 (define-public emacs-gnugo
9530 (package
9531 (name "emacs-gnugo")
9532 (version "3.1.0")
9533 (source
9534 (origin
9535 (method url-fetch)
9536 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
9537 version ".tar"))
9538 (sha256
9539 (base32
9540 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
9541 (build-system emacs-build-system)
9542 (arguments
9543 `(#:phases (modify-phases %standard-phases
9544 (add-after 'unpack 'configure-default-gnugo-xpms-variable
9545 (lambda _
9546 (substitute* "gnugo.el"
9547 (("defvar gnugo-xpms nil")
9548 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
9549 #t)))))
9550 (propagated-inputs
9551 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
9552 ("emacs-xpm" ,emacs-xpm)))
9553 (home-page "https://elpa.gnu.org/packages/gnugo.html")
9554 (synopsis "Emacs major mode for playing GNU Go")
9555 (description "This package provides an Emacs based interface for GNU Go.
9556 It has a graphical mode where the board and stones are drawn using XPM images
9557 and supports the use of a mouse.")
9558 (license license:gpl3+)))
9559
9560 (define-public emacs-gnuplot
9561 (package
9562 (name "emacs-gnuplot")
9563 (version "0.7.0")
9564 (source
9565 (origin
9566 (method git-fetch)
9567 (uri (git-reference
9568 (url "https://github.com/bruceravel/gnuplot-mode.git")
9569 (commit version)))
9570 (file-name (git-file-name name version))
9571 (sha256
9572 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
9573 (build-system gnu-build-system)
9574 (native-inputs `(("emacs" ,emacs-minimal)))
9575 (arguments
9576 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
9577 "/gnuplot-" version)))
9578 `(#:modules ((guix build gnu-build-system)
9579 (guix build utils)
9580 (guix build emacs-utils))
9581 #:imported-modules (,@%gnu-build-system-modules
9582 (guix build emacs-utils))
9583 #:configure-flags
9584 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
9585 "/bin/emacs")
9586 (string-append "--with-lispdir=" %output ,elisp-dir))
9587 #:phases
9588 (modify-phases %standard-phases
9589 (add-after 'install 'generate-autoloads
9590 (lambda* (#:key outputs #:allow-other-keys)
9591 (emacs-generate-autoloads
9592 "gnuplot"
9593 (string-append (assoc-ref outputs "out") ,elisp-dir))
9594 #t))))))
9595 (home-page "https://github.com/bruceravel/gnuplot-mode")
9596 (synopsis "Emacs major mode for interacting with gnuplot")
9597 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
9598 with gnuplot.")
9599 (license license:gpl2+)))
9600
9601 (define-public emacs-transpose-frame
9602 (package
9603 (name "emacs-transpose-frame")
9604 (version "0.1.0")
9605 (source
9606 (origin
9607 (method url-fetch)
9608 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
9609 (file-name (string-append "transpose-frame-" version ".el"))
9610 (sha256
9611 (base32
9612 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
9613 (build-system emacs-build-system)
9614 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
9615 (synopsis "Transpose window arrangement in current frame")
9616 (description "@code{emacs-transpose-frame} provides some interactive
9617 functions which allows users to transpose windows arrangement in currently
9618 selected frame.")
9619 (license license:bsd-2)))
9620
9621 (define-public emacs-key-chord
9622 (package
9623 (name "emacs-key-chord")
9624 (version "0.6")
9625 (source
9626 (origin
9627 (method url-fetch)
9628 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
9629 (file-name (string-append "key-chord-" version ".el"))
9630 (sha256
9631 (base32
9632 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
9633 (build-system emacs-build-system)
9634 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
9635 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
9636 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
9637 mode for binding key chords to commands. A key chord is defined as two keys
9638 pressed simultaneously or a single key quickly pressed twice.")
9639 (license license:gpl2+)))
9640
9641 (define-public emacs-evil-surround
9642 (package
9643 (name "emacs-evil-surround")
9644 (version "1.0.4")
9645 (source
9646 (origin
9647 (method git-fetch)
9648 (uri (git-reference
9649 (url "https://github.com/emacs-evil/evil-surround")
9650 (commit version)))
9651 (file-name (git-file-name name version))
9652 (sha256
9653 (base32 "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q"))))
9654 (build-system emacs-build-system)
9655 (propagated-inputs
9656 `(("emacs-evil" ,emacs-evil)))
9657 (arguments
9658 `(#:tests? #t
9659 #:test-command '("make" "test")))
9660 (home-page "https://github.com/emacs-evil/evil-surround")
9661 (synopsis "Easily modify surrounding parentheses and quotes")
9662 (description "@code{emacs-evil-surround} allows easy deletion, change and
9663 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
9664 (license license:gpl3+)))
9665
9666 (define-public emacs-evil-commentary
9667 (package
9668 (name "emacs-evil-commentary")
9669 (version "2.1.1")
9670 (source
9671 (origin
9672 (method git-fetch)
9673 (uri (git-reference
9674 (url "https://github.com/linktohack/evil-commentary.git")
9675 (commit (string-append "v" version))))
9676 (file-name (git-file-name name version))
9677 (sha256
9678 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
9679 (build-system emacs-build-system)
9680 (propagated-inputs
9681 `(("emacs-evil" ,emacs-evil)))
9682 (home-page "https://github.com/linktohack/evil-commentary")
9683 (synopsis "Comment out code in evil mode")
9684 (description "@code{emacs-evil-commentary} adds keybindings to easily
9685 comment out lines of code in evil mode. It provides @code{gcc} to comment out
9686 lines, and @code{gc} to comment out the target of a motion.")
9687 (license license:gpl3+)))
9688
9689 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
9690 ;; therefore cannot be run
9691 (define-public emacs-ansi
9692 (package
9693 (name "emacs-ansi")
9694 (version "0.4.1")
9695 (source
9696 (origin
9697 (method git-fetch)
9698 (uri (git-reference
9699 (url "https://github.com/rejeep/ansi.el.git")
9700 (commit (string-append "v" version))))
9701 (file-name (git-file-name name version))
9702 (sha256
9703 (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
9704 (build-system emacs-build-system)
9705 (propagated-inputs
9706 `(("emacs-dash" ,emacs-dash)
9707 ("emacs-s" ,emacs-s)))
9708 (home-page "https://github.com/rejeep/ansi.el")
9709 (synopsis "Convert strings to ANSI")
9710 (description "@code{emacs-ansi} defines functions that turns simple
9711 strings to ANSI strings. Turning a string into an ANSI string can be to add
9712 color to a text, add color in the background of a text or adding a style, such
9713 as bold, underscore or italic.")
9714 (license license:gpl3+)))
9715
9716 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
9717 ;; therefore cannot be run
9718 (define-public emacs-commander
9719 (package
9720 (name "emacs-commander")
9721 (version "0.7.0")
9722 (source
9723 (origin
9724 (method git-fetch)
9725 (uri (git-reference
9726 (url "https://github.com/rejeep/commander.el.git")
9727 (commit (string-append "v" version))))
9728 (file-name (git-file-name name version))
9729 (sha256
9730 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
9731 (build-system emacs-build-system)
9732 (propagated-inputs
9733 `(("emacs-dash" ,emacs-dash)
9734 ("emacs-f" ,emacs-f)
9735 ("emacs-s" ,emacs-s)))
9736 (home-page "https://github.com/rejeep/commander.el")
9737 (synopsis "Emacs command line parser")
9738 (description "@code{emacs-commander} provides command line parsing for
9739 Emacs.")
9740 (license license:gpl3+)))
9741
9742 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
9743 ;; cannot be run
9744 (define-public emacs-ert-runner
9745 (let ((version "0.7.0")
9746 (revision "1")
9747 (commit "90b8fdd5970ef76a4649be60003b37f82cdc1a65"))
9748 (package
9749 (name "emacs-ert-runner")
9750 (version (git-version "0.7.0" revision commit))
9751 (source
9752 (origin
9753 (method git-fetch)
9754 (uri (git-reference
9755 (url "https://github.com/rejeep/ert-runner.el.git")
9756 (commit commit)))
9757 (file-name (git-file-name name version))
9758 (sha256
9759 (base32
9760 "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz"))))
9761 (build-system emacs-build-system)
9762 (inputs
9763 `(("emacs-ansi" ,emacs-ansi)
9764 ("emacs-commander" ,emacs-commander)
9765 ("emacs-dash" ,emacs-dash)
9766 ("emacs-f" ,emacs-f)
9767 ("emacs-s" ,emacs-s)
9768 ("emacs-shut-up" ,emacs-shut-up)))
9769 (arguments
9770 `(#:phases
9771 (modify-phases %standard-phases
9772 (add-after 'install 'install-executable
9773 (lambda* (#:key inputs outputs #:allow-other-keys)
9774 (let ((out (assoc-ref outputs "out"))
9775 (source-directory (string-append
9776 (getenv "TMPDIR") "/source")))
9777 (substitute* "bin/ert-runner"
9778 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
9779 (string-append "ERT_RUNNER=\"" out
9780 "/share/emacs/site-lisp/guix.d/ert-runner-"
9781 ,version)))
9782 (install-file "bin/ert-runner" (string-append out "/bin"))
9783 (wrap-program (string-append out "/bin/ert-runner")
9784 (list "EMACSLOADPATH" ":" 'prefix
9785 ;; Do not capture the transient source directory in
9786 ;; the wrapper.
9787 (delete source-directory
9788 (string-split (getenv "EMACSLOADPATH") #\:))))
9789 #t))))
9790 #:include (cons* "^reporters/.*\\.el$" %default-include)))
9791 (home-page "https://github.com/rejeep/ert-runner.el")
9792 (synopsis "Opinionated Ert testing workflow")
9793 (description "@code{ert-runner} is a tool for Emacs projects tested
9794 using ERT. It assumes a certain test structure setup and can therefore make
9795 running tests easier.")
9796 (license license:gpl3+))))
9797
9798 (define-public ert-runner
9799 (deprecated-package "ert-runner" emacs-ert-runner))
9800
9801 (define-public emacs-xtest
9802 (package
9803 (name "emacs-xtest")
9804 (version "1.1.0")
9805 (source (origin
9806 (method git-fetch)
9807 (uri (git-reference
9808 (url "https://github.com/promethial/xtest.git")
9809 (commit (string-append "v" version))))
9810 (file-name (git-file-name name version))
9811 (sha256
9812 (base32
9813 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
9814 (arguments
9815 `(#:exclude '()))
9816 (build-system emacs-build-system)
9817 (home-page "https://github.com/promethial/xtest/")
9818 (synopsis "Simple testing with Emacs")
9819 (description "This package provides a simple testing library for Emacs.")
9820 (license license:gpl3+)))
9821
9822 (define-public emacs-disable-mouse
9823 (package
9824 (name "emacs-disable-mouse")
9825 (version "0.2")
9826 (source
9827 (origin
9828 (method git-fetch)
9829 (uri (git-reference
9830 (url "https://github.com/purcell/disable-mouse.git")
9831 (commit version)))
9832 (file-name (git-file-name name version))
9833 (sha256
9834 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
9835 (build-system emacs-build-system)
9836 (home-page "https://github.com/purcell/disable-mouse")
9837 (synopsis "Disable mouse commands globally")
9838 (description
9839 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
9840 pair of minor modes which suppress all mouse events by intercepting them and
9841 running a customisable handler command (@code{ignore} by default). ")
9842 (license license:gpl3+)))
9843
9844 (define-public emacs-json-reformat
9845 (package
9846 (name "emacs-json-reformat")
9847 (version "0.0.6")
9848 (source
9849 (origin
9850 (method git-fetch)
9851 (uri (git-reference
9852 (url "https://github.com/gongo/json-reformat.git")
9853 (commit version)))
9854 (file-name (git-file-name name version))
9855 (sha256
9856 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
9857 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
9858 (build-system emacs-build-system)
9859 (propagated-inputs
9860 `(("emacs-undercover" ,emacs-undercover)))
9861 (native-inputs
9862 `(("emacs-dash" ,emacs-dash)
9863 ("emacs-shut-up" ,emacs-shut-up)
9864 ("ert-runner" ,emacs-ert-runner)))
9865 (arguments
9866 `(#:tests? #t
9867 #:test-command '("ert-runner")
9868 #:phases
9869 (modify-phases %standard-phases
9870 (add-before 'check 'make-tests-writable
9871 (lambda _
9872 (for-each make-file-writable (find-files "test"))
9873 #t))
9874 (add-before 'check 'delete-json-objects-order-test
9875 (lambda _
9876 (emacs-batch-edit-file "test/json-reformat-test.el"
9877 `(progn (progn (goto-char (point-min))
9878 (re-search-forward
9879 "ert-deftest json-reformat-test:json-reformat-region")
9880 (beginning-of-line)
9881 (kill-sexp))
9882 (basic-save-buffer)))
9883 #t)))))
9884 (home-page "https://github.com/gongo/json-reformat")
9885 (synopsis "Reformatting tool for JSON")
9886 (description "@code{json-reformat} provides a reformatting tool for
9887 @url{http://json.org/, JSON}.")
9888 (license license:gpl3+)))
9889
9890 (define-public emacs-json-snatcher
9891 (package
9892 (name "emacs-json-snatcher")
9893 (version "1.0.0")
9894 (source
9895 (origin
9896 (method git-fetch)
9897 (uri (git-reference
9898 (url "https://github.com/Sterlingg/json-snatcher.git")
9899 (commit version)))
9900 (file-name (git-file-name name version))
9901 (sha256
9902 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
9903 (build-system emacs-build-system)
9904 (home-page "https://github.com/sterlingg/json-snatcher")
9905 (synopsis "Grabs the path to JSON values in a JSON file")
9906 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
9907 a @url{http://json.org/, JSON} file.")
9908 (license license:gpl3+)))
9909
9910 (define-public emacs-json-mode
9911 (package
9912 (name "emacs-json-mode")
9913 (version "1.7.0")
9914 (source
9915 (origin
9916 (method git-fetch)
9917 (uri (git-reference
9918 (url "https://github.com/joshwnj/json-mode.git")
9919 (commit (string-append "v" version))))
9920 (file-name (git-file-name name version))
9921 (sha256
9922 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
9923 (build-system emacs-build-system)
9924 (propagated-inputs
9925 `(("emacs-json-reformat" ,emacs-json-reformat)
9926 ("emacs-json-snatcher" ,emacs-json-snatcher)))
9927 (home-page "https://github.com/joshwnj/json-mode")
9928 (synopsis "Major mode for editing JSON files")
9929 (description "@code{json-mode} extends the builtin js-mode syntax
9930 highlighting.")
9931 (license license:gpl3+)))
9932
9933 (define-public emacs-restclient
9934 (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
9935 (version "0")
9936 (revision "2")) ;Guix package revision,
9937 ;upstream doesn't have official releases
9938 (package
9939 (name "emacs-restclient")
9940 (version (git-version version revision commit))
9941 (source (origin
9942 (method git-fetch)
9943 (uri (git-reference
9944 (url "https://github.com/pashky/restclient.el.git")
9945 (commit commit)))
9946 (sha256
9947 (base32
9948 "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
9949 (file-name (git-file-name name version))))
9950 (build-system emacs-build-system)
9951 (propagated-inputs
9952 `(("emacs-helm" ,emacs-helm)))
9953 (home-page "https://github.com/pashky/restclient.el")
9954 (synopsis "Explore and test HTTP REST webservices")
9955 (description
9956 "This tool allows for testing and exploration of HTTP REST Web services
9957 from within Emacs. Restclient runs queries from a plan-text query sheet,
9958 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
9959 (license license:public-domain))))
9960
9961 (define-public emacs-whitespace-cleanup-mode
9962 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
9963 (revision "1"))
9964 (package
9965 (name "emacs-whitespace-cleanup-mode")
9966 (version (git-version "0.10" revision commit))
9967 (source (origin
9968 (method git-fetch)
9969 (uri (git-reference
9970 (url "https://github.com/purcell/whitespace-cleanup-mode")
9971 (commit commit)))
9972 (sha256
9973 (base32
9974 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
9975 (file-name (git-file-name name version))))
9976 (build-system emacs-build-system)
9977 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
9978 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
9979 (description
9980 "This package provides a minor mode that calls
9981 @code{whitespace-cleanup} before saving the current buffer only if the
9982 whitespace in the buffer was initially clean.")
9983 (license license:gpl3+))))
9984
9985 (define-public emacs-eimp
9986 (let ((version "1.4.0")
9987 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
9988 (revision "1"))
9989 (package
9990 (name "emacs-eimp")
9991 (version (git-version version revision commit))
9992 (source
9993 (origin
9994 (method git-fetch)
9995 (uri (git-reference
9996 (url "https://github.com/nicferrier/eimp.git")
9997 (commit commit)))
9998 (file-name (git-file-name name version))
9999 (sha256
10000 (base32
10001 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
10002 (build-system emacs-build-system)
10003 (arguments
10004 `(#:phases
10005 (modify-phases %standard-phases
10006 (add-after 'unpack 'configure
10007 (lambda* (#:key inputs #:allow-other-keys)
10008 (let ((imagemagick (assoc-ref inputs "imagemagick")))
10009 ;; eimp.el is read-only in git.
10010 (chmod "eimp.el" #o644)
10011 (emacs-substitute-variables "eimp.el"
10012 ("eimp-mogrify-program"
10013 (string-append imagemagick "/bin/mogrify"))))
10014 #t)))))
10015 (inputs
10016 `(("imagemagick" ,imagemagick)))
10017 (home-page "https://github.com/nicferrier/eimp")
10018 (synopsis "Interactive image manipulation utility for Emacs")
10019 (description "@code{emacs-eimp} allows interactive image manipulation
10020 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
10021 the actual transformations.")
10022 (license license:gpl2+))))
10023
10024 (define-public emacs-dired-hacks
10025 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
10026 (revision "2"))
10027 (package
10028 (name "emacs-dired-hacks")
10029 (version (git-version "0.0.1" revision commit))
10030 (source (origin
10031 (method git-fetch)
10032 (uri (git-reference
10033 (url "https://github.com/Fuco1/dired-hacks.git")
10034 (commit commit)))
10035 (file-name (git-file-name name version))
10036 (sha256
10037 (base32
10038 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
10039 (build-system emacs-build-system)
10040 (propagated-inputs
10041 `(("emacs-dash" ,emacs-dash)
10042 ("emacs-eimp" ,emacs-eimp)
10043 ("emacs-f" ,emacs-f)
10044 ("emacs-s" ,emacs-s)))
10045 (home-page "https://github.com/Fuco1/dired-hacks")
10046 (synopsis
10047 "Collection of useful dired additions")
10048 (description
10049 "This package provides the following collection of Emacs dired mode
10050 additions:
10051
10052 @itemize
10053 @item dired-avfs
10054 @item dired-columns
10055 @item dired-filter
10056 @item dired-hacks-utils
10057 @item dired-images
10058 @item dired-list
10059 @item dired-narrow
10060 @item dired-open
10061 @item dired-rainbow
10062 @item dired-ranger
10063 @item dired-subtree
10064 @item dired-tagsistant
10065 @end itemize\n")
10066 (license license:gpl3+))))
10067
10068 (define-public emacs-dired-sidebar
10069 (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
10070 (revision "0"))
10071 (package
10072 (name "emacs-dired-sidebar")
10073 (home-page "https://github.com/jojojames/dired-sidebar")
10074 (version (git-version "0.0.1" revision commit))
10075 (source (origin
10076 (method git-fetch)
10077 (uri (git-reference (url home-page) (commit commit)))
10078 (file-name (git-file-name name version))
10079 (sha256
10080 (base32
10081 "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
10082 (build-system emacs-build-system)
10083 (propagated-inputs
10084 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
10085 (synopsis "Sidebar for Emacs using Dired")
10086 (description
10087 "This package provides a sidebar for Emacs similar to @code{NeoTree}
10088 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
10089 (license license:gpl3+))))
10090
10091 (define-public emacs-which-key
10092 (package
10093 (name "emacs-which-key")
10094 (version "3.3.1")
10095 (source
10096 (origin
10097 (method git-fetch)
10098 (uri (git-reference
10099 (url "https://github.com/justbur/emacs-which-key.git")
10100 (commit (string-append "v" version))))
10101 (file-name (git-file-name name version))
10102 (sha256
10103 (base32 "1dh6kr00wmql46whjkvnl953zngiv5j99ypvr1b3cb2174623afb"))))
10104 (build-system emacs-build-system)
10105 (arguments
10106 `(#:tests? #t
10107 #:test-command '("emacs" "--batch"
10108 "-l" "which-key-tests.el"
10109 "-f" "ert-run-tests-batch-and-exit")))
10110 (home-page "https://github.com/justbur/emacs-which-key")
10111 (synopsis "Display available key bindings in popup")
10112 (description
10113 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
10114 bindings following your currently entered incomplete command (a prefix) in a
10115 popup. For example, after enabling the minor mode if you enter C-x and wait
10116 for the default of 1 second, the minibuffer will expand with all of the
10117 available key bindings that follow C-x (or as many as space allows given your
10118 settings).")
10119 (license license:gpl3+)))
10120
10121 (define-public emacs-hercules
10122 (package
10123 (name "emacs-hercules")
10124 (version "0.2.1")
10125 (source
10126 (origin
10127 (method git-fetch)
10128 (uri (git-reference
10129 (url "https://gitlab.com/jjzmajic/hercules.el.git")
10130 (commit (string-append "v" version))))
10131 (file-name (git-file-name name version))
10132 (sha256
10133 (base32
10134 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
10135 (build-system emacs-build-system)
10136 (propagated-inputs
10137 `(("emacs-which-key" ,emacs-which-key)))
10138 (home-page "https://gitlab.com/jjzmajic/hercules.el")
10139 (synopsis "Call a chain of related commands without repeated prefix keys")
10140 (description
10141 "This package provides sticky-key-like functionality to obviate the
10142 need for repeated prefix-key sequences, and can reuse existing keymaps. The
10143 list of commands is displayed in a handy popup.")
10144 (license license:gpl3+)))
10145
10146 (define-public emacs-ws-butler
10147 (package
10148 (name "emacs-ws-butler")
10149 (version "0.6")
10150 (source (origin
10151 (method git-fetch)
10152 (uri (git-reference
10153 (url "https://github.com/lewang/ws-butler.git")
10154 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
10155 (file-name (git-file-name name version))
10156 (sha256
10157 (base32
10158 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
10159 (build-system emacs-build-system)
10160 (native-inputs
10161 `(("ert-runner" ,emacs-ert-runner)))
10162 (arguments
10163 `(#:tests? #t
10164 #:test-command '("ert-runner" "tests")))
10165 (home-page "https://github.com/lewang/ws-butler")
10166 (synopsis "Trim spaces from end of lines")
10167 (description
10168 "This Emacs package automatically and unobtrusively trims whitespace
10169 characters from end of lines.")
10170 (license license:gpl3+)))
10171
10172 (define-public emacs-org-edit-latex
10173 (package
10174 (name "emacs-org-edit-latex")
10175 (version "0.8.0")
10176 (source
10177 (origin
10178 (method git-fetch)
10179 (uri (git-reference
10180 (url "https://github.com/et2010/org-edit-latex.git")
10181 (commit (string-append "v" version))))
10182 (file-name (git-file-name name version))
10183 (sha256
10184 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
10185 (build-system emacs-build-system)
10186 (propagated-inputs
10187 `(("emacs-auctex" ,emacs-auctex)
10188 ;; The version of org in Emacs 25.2 is not sufficient, because the
10189 ;; `org-latex-make-preamble' function is required.
10190 ("emacs-org" ,emacs-org)))
10191 (home-page "https://github.com/et2010/org-edit-latex")
10192 (synopsis "Edit a latex fragment just like editing a src block")
10193 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
10194 It lets you edit a latex fragment in a dedicated buffer just like editing a
10195 src block.")
10196 (license license:gpl3+)))
10197
10198 (define-public emacs-emamux
10199 (package
10200 (name "emacs-emamux")
10201 (version "0.14")
10202 (source
10203 (origin
10204 (method git-fetch)
10205 (uri (git-reference
10206 (url "https://github.com/syohex/emacs-emamux.git")
10207 (commit version)))
10208 (file-name (git-file-name name version))
10209 (sha256
10210 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
10211 (build-system emacs-build-system)
10212 (home-page "https://github.com/syohex/emacs-emamux")
10213 (synopsis "Manipulate Tmux from Emacs")
10214 (description
10215 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
10216 multiplexer.")
10217 (license license:gpl3+)))
10218
10219 (define-public emacs-rpm-spec-mode
10220 (package
10221 (name "emacs-rpm-spec-mode")
10222 (version "0.16")
10223 (source
10224 (origin
10225 (method url-fetch)
10226 ;; URI has the Fedora release number instead of the version
10227 ;; number. This will have to updated manually every new release.
10228 (uri (string-append
10229 "https://src.fedoraproject.org/cgit/rpms"
10230 "/emacs-rpm-spec-mode.git/snapshot"
10231 "/emacs-rpm-spec-mode-f26.tar.gz"))
10232 (sha256
10233 (base32
10234 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
10235 (build-system emacs-build-system)
10236 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
10237 (synopsis "Emacs major mode for editing RPM spec files")
10238 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
10239 editing RPM spec files.")
10240 (license license:gpl2+)))
10241
10242 (define-public emacs-lcr
10243 (package
10244 (name "emacs-lcr")
10245 (version "1.1")
10246 (source
10247 (origin
10248 (method git-fetch)
10249 (uri (git-reference
10250 (url "https://github.com/jyp/lcr")
10251 (commit version)))
10252 (file-name (git-file-name name version))
10253 (sha256
10254 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
10255 (build-system emacs-build-system)
10256 (propagated-inputs
10257 `(("emacs-dash" ,emacs-dash)))
10258 (home-page "https://github.com/jyp/lcr")
10259 (synopsis "Lightweight coroutines in Emacs Lisp")
10260 (description "This package provides macros that can translate code into
10261 equivalent continuation-passing code, as well as miscellaneous utility
10262 functions written in continuation-passing style.")
10263 (license license:gpl3+)))
10264
10265 (define-public emacs-attrap
10266 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
10267 (revision "2"))
10268 (package
10269 (name "emacs-attrap")
10270 (version (git-version "1.0" revision commit))
10271 (source (origin
10272 (method git-fetch)
10273 (uri (git-reference
10274 (url "https://github.com/jyp/attrap")
10275 (commit commit)))
10276 (sha256
10277 (base32
10278 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
10279 (file-name (git-file-name name version))))
10280 (build-system emacs-build-system)
10281 (propagated-inputs
10282 `(("emacs-dash" ,emacs-dash)
10283 ("emacs-f" ,emacs-f)
10284 ("emacs-flycheck" ,emacs-flycheck)
10285 ("emacs-s" ,emacs-s)))
10286 (home-page "https://github.com/jyp/attrap")
10287 (synopsis "Fix coding error at point")
10288 (description "This package provides a command to fix the Flycheck error
10289 at point.")
10290 (license license:gpl3+))))
10291
10292 (define-public emacs-git-messenger
10293 (package
10294 (name "emacs-git-messenger")
10295 (version "0.18")
10296 (source
10297 (origin
10298 (method git-fetch)
10299 (uri (git-reference
10300 (url "https://github.com/syohex/emacs-git-messenger.git")
10301 (commit version)))
10302 (file-name (git-file-name name version))
10303 (sha256
10304 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
10305 (build-system emacs-build-system)
10306 (propagated-inputs
10307 `(("emacs-popup" ,emacs-popup)))
10308 (arguments
10309 `(#:tests? #t
10310 #:test-command '("emacs" "--batch" "-l" "test/test.el"
10311 "-f" "ert-run-tests-batch-and-exit")))
10312 (home-page "https://github.com/syohex/emacs-git-messenger")
10313 (synopsis "Popup commit message at current line")
10314 (description "@code{emacs-git-messenger} provides
10315 @code{git-messenger:popup-message}, a function that when called, will popup
10316 the last git commit message for the current line. This uses git-blame
10317 internally.")
10318 (license license:gpl3+)))
10319
10320 (define-public emacs-gitpatch
10321 (package
10322 (name "emacs-gitpatch")
10323 (version "0.5.1")
10324 (source
10325 (origin
10326 (method git-fetch)
10327 (uri (git-reference
10328 (url "https://github.com/tumashu/gitpatch.git")
10329 (commit (string-append "v" version))))
10330 (file-name (git-file-name name version))
10331 (sha256
10332 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
10333 (build-system emacs-build-system)
10334 (home-page "https://github.com/tumashu/gitpatch")
10335 (synopsis "Mail git patch from Emacs")
10336 (description "@code{emacs-gitpatch} lets users easily send git patches,
10337 created by @code{git format-patch}, from @code{magit}, @code{dired} and
10338 @code{ibuffer} buffers.")
10339 (license license:gpl3+)))
10340
10341 (define-public emacs-erc-hl-nicks
10342 (package
10343 (name "emacs-erc-hl-nicks")
10344 (version "1.3.3")
10345 (source
10346 (origin
10347 (method git-fetch)
10348 (uri (git-reference
10349 (url "https://github.com/leathekd/erc-hl-nicks")
10350 (commit version)))
10351 (file-name (git-file-name name version))
10352 (sha256
10353 (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
10354 (build-system emacs-build-system)
10355 (synopsis "Nickname highlighting for Emacs ERC")
10356 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
10357 client for Emacs. The main features are:
10358 @itemize
10359 @item Auto-colorizes nicknames without having to specify colors
10360 @item Ignores certain characters that IRC clients add to nicknames to avoid
10361 duplicates (nickname, nickname’, nickname\", etc.)
10362 @item Attempts to produce colors with a sufficient amount of contrast between
10363 the nick color and the background color
10364 @end itemize\n")
10365 (home-page "https://github.com/leathekd/erc-hl-nicks")
10366 (license license:gpl3+)))
10367
10368 (define-public emacs-engine-mode
10369 (package
10370 (name "emacs-engine-mode")
10371 (version "2.0.0")
10372 (source
10373 (origin
10374 (method git-fetch)
10375 (uri (git-reference
10376 (url "https://github.com/hrs/engine-mode.git")
10377 (commit (string-append "v" version))))
10378 (file-name (git-file-name name version))
10379 (sha256
10380 (base32 "02xas46nl28mascqsyr1zcd4hn15bh0fjv2xlxv1kmrj0pis94ml"))))
10381 (build-system emacs-build-system)
10382 (synopsis "Minor mode for defining and querying search engines")
10383 (description "@code{engine-mode} is a global minor mode for Emacs. It
10384 enables you to easily define search engines, bind them to keybindings, and
10385 query them from the comfort of your editor.")
10386 (home-page "https://github.com/hrs/engine-mode")
10387 (license license:gpl3+)))
10388
10389 (define-public emacs-prop-menu
10390 (package
10391 (name "emacs-prop-menu")
10392 (version "0.1.2")
10393 (source
10394 (origin
10395 (method url-fetch)
10396 (uri (string-append
10397 "http://stable.melpa.org/packages/prop-menu-"
10398 version ".el"))
10399 (sha256
10400 (base32
10401 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
10402 (build-system emacs-build-system)
10403 (home-page
10404 "https://github.com/david-christiansen/prop-menu-el")
10405 (synopsis
10406 "Create and display a context menu based on text and overlay properties")
10407 (description
10408 "This is a library for computing context menus based on text
10409 properties and overlays. The intended use is to have tools that
10410 annotate source code and others that use these annotations, without
10411 requiring a direct coupling between them, but maintaining
10412 discoverability.
10413
10414 Major modes that wish to use this library should first define an
10415 appropriate value for @code{prop-menu-item-functions}. Then, they should
10416 bind @code{prop-menu-by-completing-read} to an appropriate
10417 key. Optionally, a mouse pop-up can be added by binding
10418 @code{prop-menu-show-menu} to a mouse event.")
10419 (license license:gpl3+)))
10420
10421 (define-public emacs-idris-mode
10422 (let ((commit "acc8835449475d7cd205aba213fdd3d41c38ba40")
10423 (revision "0"))
10424 (package
10425 (name "emacs-idris-mode")
10426 (version (git-version "0.9.19" revision commit))
10427 (source
10428 (origin
10429 (method git-fetch)
10430 (uri (git-reference
10431 (url "https://github.com/idris-hackers/idris-mode.git")
10432 (commit commit)))
10433 (file-name (git-file-name name commit))
10434 (sha256
10435 (base32
10436 "0n9xbknc68id0mf8hbfmawi8qpvrs47ix807sk9ffv2g3ik32kk6"))))
10437 (build-system emacs-build-system)
10438 (propagated-inputs
10439 `(("emacs-prop-menu" ,emacs-prop-menu)))
10440 (home-page
10441 "https://github.com/idris-hackers/idris-mode")
10442 (synopsis "Major mode for editing Idris code")
10443 (description
10444 "This is an Emacs mode for editing Idris code. It requires the latest
10445 version of Idris, and some features may rely on the latest Git version of
10446 Idris.")
10447 (license license:gpl3+))))
10448
10449 (define-public emacs-browse-at-remote
10450 (package
10451 (name "emacs-browse-at-remote")
10452 (version "0.10.0")
10453 (source
10454 (origin
10455 (method git-fetch)
10456 (uri (git-reference
10457 (url "https://github.com/rmuslimov/browse-at-remote.git")
10458 (commit version)))
10459 (file-name (git-file-name name version))
10460 (sha256
10461 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
10462 (build-system emacs-build-system)
10463 (propagated-inputs
10464 `(("emacs-f" ,emacs-f)
10465 ("emacs-s" ,emacs-s)))
10466 (native-inputs
10467 `(("ert-runner" ,emacs-ert-runner)))
10468 (arguments
10469 `(#:tests? #t
10470 #:test-command '("ert-runner")))
10471 (home-page "https://github.com/rmuslimov/browse-at-remote")
10472 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
10473 (description
10474 "This Emacs package allows you to open a target page on
10475 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
10476 It supports dired buffers and opens them in tree mode at destination.")
10477 (license license:gpl3+)))
10478
10479 (define-public emacs-tiny
10480 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
10481 (revision "1"))
10482 (package
10483 (name "emacs-tiny")
10484 (version (git-version "0.2.1" revision commit))
10485 (source
10486 (origin
10487 (method git-fetch)
10488 (uri (git-reference
10489 (url "https://github.com/abo-abo/tiny.git")
10490 (commit commit)))
10491 (sha256
10492 (base32
10493 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
10494 (build-system emacs-build-system)
10495 (arguments
10496 `(#:tests? #t
10497 #:test-command '("make" "test")))
10498 (home-page "https://github.com/abo-abo/tiny")
10499 (synopsis "Quickly generate linear ranges in Emacs")
10500 (description
10501 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
10502 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
10503 proficiency is an advantage, since you can transform your numeric range with
10504 an elisp expression.")
10505 (license license:gpl3+))))
10506
10507 (define-public emacs-emojify
10508 (package
10509 (name "emacs-emojify")
10510 (version "1.2")
10511 (source
10512 (origin
10513 (method git-fetch)
10514 (uri (git-reference
10515 (url "https://github.com/iqbalansari/emacs-emojify")
10516 (commit (string-append "v" version))))
10517 (file-name (git-file-name name version))
10518 (sha256
10519 (base32
10520 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
10521 (build-system emacs-build-system)
10522 (arguments
10523 `(#:include (cons "^data/" %default-include)))
10524 (propagated-inputs
10525 `(("emacs-ht" ,emacs-ht)))
10526 (home-page "https://github.com/iqbalansari/emacs-emojify")
10527 (synopsis "Display emojis in Emacs")
10528 (description "This package displays emojis in Emacs similar to how Github,
10529 Slack, and other websites do. It can display plain ASCII like @code{:)} as
10530 well as Github-style emojis like @code{:smile:}. It provides a minor mode
10531 @code{emojify-mode} to enable the display of emojis in a buffer.")
10532 (license license:gpl3+)))
10533
10534 (define-public emacs-make-it-so
10535 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
10536 (revision "2"))
10537 (package
10538 (name "emacs-make-it-so")
10539 (version (git-version "0.1.0" revision commit))
10540 (source
10541 (origin
10542 (method git-fetch)
10543 (uri (git-reference
10544 (url "https://github.com/abo-abo/make-it-so")
10545 (commit commit)))
10546 (sha256
10547 (base32
10548 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
10549 (build-system emacs-build-system)
10550 (arguments
10551 `(#:include (cons "^recipes/" %default-include)))
10552 (propagated-inputs
10553 `(("emacs-ivy" ,emacs-ivy)))
10554 (home-page "https://github.com/abo-abo/make-it-so")
10555 (synopsis "Transform files with Makefile recipes")
10556 (description "This package provides an interface for selecting from
10557 different conversion recipes, often including tools like @code{ffmpeg} or
10558 @code{convert}. The conversion command need only be written once, and
10559 subsequent invocations can be readily customized. Several recipes are
10560 included by default, and more can be readily added.")
10561 (license license:gpl3+))))
10562
10563 (define-public emacs-unidecode
10564 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
10565 (revision "1"))
10566 (package
10567 (name "emacs-unidecode")
10568 (version (git-version "0.2" revision commit))
10569 (source
10570 (origin
10571 (method git-fetch)
10572 (uri (git-reference
10573 (url "https://github.com/sindikat/unidecode")
10574 (commit commit)))
10575 (sha256
10576 (base32
10577 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
10578 (build-system emacs-build-system)
10579 (arguments
10580 `(#:include (cons* "^tools/" "^data/" %default-include)
10581 #:tests? #t
10582 #:test-command '("emacs" "--batch"
10583 "-l" "unidecode-test.el"
10584 "-f" "ert-run-tests-batch-and-exit")
10585 #:phases
10586 (modify-phases %standard-phases
10587 (add-before 'check 'make-tests-writable
10588 (lambda _
10589 (make-file-writable "unidecode-test.el")
10590 #t))
10591 (add-before 'check 'add-require
10592 (lambda _
10593 (emacs-batch-edit-file "unidecode-test.el"
10594 `(progn (progn (goto-char (point-min))
10595 (re-search-forward
10596 "ert-deftest")
10597 (forward-line -1)
10598 (insert "(require 'unidecode)"))
10599 (basic-save-buffer)))
10600 #t)))))
10601 (home-page "https://github.com/sindikat/unidecode")
10602 (synopsis "Transliterate Unicode text to ASCII")
10603 (description "This package provides functions for converting Unicode to ASCII.")
10604 (license license:gpl2+))))
10605
10606 (define-public emacs-pubmed
10607 (package
10608 (name "emacs-pubmed")
10609 (version "0.2.1")
10610 (source
10611 (origin
10612 (method git-fetch)
10613 (uri (git-reference
10614 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
10615 (commit (string-append "v" version))))
10616 (file-name (git-file-name name version))
10617 (sha256
10618 (base32
10619 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
10620 (build-system emacs-build-system)
10621 (propagated-inputs
10622 `(("emacs-deferred" ,emacs-deferred)
10623 ("emacs-esxml" ,emacs-esxml)
10624 ("emacs-s" ,emacs-s)
10625 ("emacs-unidecode" ,emacs-unidecode)))
10626 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
10627 (synopsis "Interface to PubMed")
10628 (description "This package provides an Emacs interface to the PubMed
10629 database of references on life sciences.")
10630 (license license:gpl3+)))
10631
10632 (define-public emacs-websocket
10633 (package
10634 (name "emacs-websocket")
10635 (version "1.10")
10636 (source
10637 (origin
10638 (method git-fetch)
10639 (uri (git-reference
10640 (url "https://github.com/ahyatt/emacs-websocket.git")
10641 (commit version)))
10642 (file-name (git-file-name name version))
10643 (sha256
10644 (base32
10645 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
10646 (build-system emacs-build-system)
10647 (arguments
10648 `(#:tests? #t
10649 ;; TODO: also enable websocket-functional-test.el
10650 #:test-command '("emacs" "--batch"
10651 "-l" "websocket-test.el"
10652 "-f" "ert-run-tests-batch-and-exit")))
10653 (home-page "http://elpa.gnu.org/packages/websocket.html")
10654 (synopsis "Emacs WebSocket client and server")
10655 (description "This is an Elisp library for WebSocket clients to talk to
10656 WebSocket servers, and for WebSocket servers to accept connections from
10657 WebSocket clients. This library is designed to be used by other library
10658 writers, to write applications that use WebSockets, and is not useful by
10659 itself.")
10660 (license license:gpl3+)))
10661
10662 (define-public emacs-oauth2
10663 (package
10664 (name "emacs-oauth2")
10665 (version "0.11")
10666 (source
10667 (origin
10668 (method url-fetch)
10669 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
10670 version ".el"))
10671 (sha256
10672 (base32
10673 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
10674 (build-system emacs-build-system)
10675 (home-page "http://elpa.gnu.org/packages/oauth2.html")
10676 (synopsis "OAuth 2.0 authorization protocol implementation")
10677 (description
10678 "This package provides an Elisp implementation of the OAuth 2.0 draft.
10679 The main entry point is @code{oauth2-auth-and-store} which will return a token
10680 structure. This token structure can be then used with
10681 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
10682 retrieve any data that need OAuth authentication to be accessed. If the token
10683 needs to be refreshed, the code handles it automatically and stores the new
10684 value of the access token.")
10685 (license license:gpl3+)))
10686
10687 (define-public emacs-circe
10688 (package
10689 (name "emacs-circe")
10690 (version "2.11")
10691 (source
10692 (origin
10693 (method git-fetch)
10694 (uri (git-reference
10695 (url "https://github.com/jorgenschaefer/circe.git")
10696 (commit (string-append "v" version))))
10697 (file-name (git-file-name name version))
10698 (sha256
10699 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
10700 (build-system emacs-build-system)
10701 (arguments
10702 `(#:tests? #t
10703 #:test-command '("buttercup" "-L" ".")
10704 #:phases
10705 (modify-phases %standard-phases
10706 ;; The HOME environment variable should be set to an existing
10707 ;; directory for the tests to succeed.
10708 (add-before 'check 'set-home
10709 (lambda _
10710 (setenv "HOME" "/tmp")
10711 #t)))))
10712 (native-inputs
10713 `(("emacs-buttercup" ,emacs-buttercup)))
10714 ;; In order to securely connect to an IRC server using TLS, Circe requires
10715 ;; the GnuTLS binary.
10716 (propagated-inputs
10717 `(("gnutls" ,gnutls)))
10718 (home-page "https://github.com/jorgenschaefer/circe")
10719 (synopsis "Client for IRC in Emacs")
10720 (description "Circe is a Client for IRC in Emacs. It integrates well with
10721 the rest of the editor, using standard Emacs key bindings and indicating
10722 activity in channels in the status bar so it stays out of your way unless you
10723 want to use it.")
10724 (license license:gpl3+)))
10725
10726 (define-public emacs-tracking
10727 (package
10728 (inherit emacs-circe)
10729 (name "emacs-tracking")
10730 (arguments
10731 ;; "tracking.el" is a library extracted from Circe package. It requires
10732 ;; "shorten.el".
10733 `(#:include '("^shorten.el$" "^tracking.el$")
10734 ,@(package-arguments emacs-circe)))
10735 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
10736 (synopsis "Buffer tracking library")
10737 (description "@code{tracking.el} provides a way for different modes to
10738 notify the user that a buffer needs attention. The user then can cycle
10739 through them using @key{C-c C-SPC}.")
10740 (license license:gpl3+)))
10741
10742 (define-public emacs-slack
10743 (let ((commit "10fbb81f567b44647ad125a48ecd72df106fb624")
10744 (revision "6"))
10745 (package
10746 (name "emacs-slack")
10747 (version (git-version "0.0.2" revision commit))
10748 (source (origin
10749 (method git-fetch)
10750 (uri (git-reference
10751 (url "https://github.com/yuya373/emacs-slack.git")
10752 (commit commit)))
10753 (file-name (git-file-name name commit))
10754 (sha256
10755 (base32
10756 "01ln9rbalgpxw6rbr4czhy6bd8wrrpyf0qgn2chcq3zmmrn4sy1z"))))
10757 (build-system emacs-build-system)
10758 (arguments
10759 `(#:phases
10760 (modify-phases %standard-phases
10761 ;; HOME needs to exist for source compilation.
10762 (add-before 'build 'set-HOME
10763 (lambda _ (setenv "HOME" "/tmp") #t)))))
10764 (propagated-inputs
10765 `(("emacs-alert" ,emacs-alert)
10766 ("emacs-emojify" ,emacs-emojify)
10767 ("emacs-helm" ,emacs-helm)
10768 ("emacs-request" ,emacs-request)
10769 ("emacs-websocket" ,emacs-websocket)
10770 ("emacs-oauth2" ,emacs-oauth2)
10771 ("emacs-circe" ,emacs-circe)))
10772 (home-page "https://github.com/yuya373/emacs-slack")
10773 (synopsis "Slack client for Emacs")
10774 (description "This package provides an Emacs client for the Slack
10775 messaging service.")
10776 (license license:gpl3+))))
10777
10778 (define-public emacs-bash-completion
10779 (package
10780 (name "emacs-bash-completion")
10781 (version "2.1.0")
10782 (source
10783 (origin
10784 (method git-fetch)
10785 (uri (git-reference
10786 (url "https://github.com/szermatt/emacs-bash-completion.git")
10787 (commit version)))
10788 (file-name (git-file-name name version))
10789 (sha256
10790 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
10791 (inputs `(("bash" ,bash)))
10792 (build-system emacs-build-system)
10793 (arguments
10794 `(#:phases
10795 (modify-phases %standard-phases
10796 (add-after 'unpack 'make-git-checkout-writable
10797 (λ _
10798 (for-each make-file-writable (find-files "."))
10799 #t))
10800 (add-before 'install 'configure
10801 (lambda* (#:key inputs #:allow-other-keys)
10802 (let ((bash (assoc-ref inputs "bash")))
10803 (emacs-substitute-variables "bash-completion.el"
10804 ("bash-completion-prog" (string-append bash "/bin/bash"))))
10805 #t)))))
10806 (home-page "https://github.com/szermatt/emacs-bash-completion")
10807 (synopsis "Bash completion for the shell buffer")
10808 (description
10809 "@code{bash-completion} defines dynamic completion hooks for shell-mode
10810 and shell-command prompts that are based on Bash completion.")
10811 (license license:gpl2+)))
10812
10813 (define-public emacs-easy-kill
10814 (package
10815 (name "emacs-easy-kill")
10816 (version "0.9.3")
10817 (source (origin
10818 (method url-fetch)
10819 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
10820 version ".tar"))
10821 (sha256
10822 (base32
10823 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
10824 (build-system emacs-build-system)
10825 (home-page "https://github.com/leoliu/easy-kill")
10826 (synopsis "Kill and mark things easily in Emacs")
10827 (description
10828 "This package provides commands @code{easy-kill} and @code{easy-mark} to
10829 let users kill or mark things easily.")
10830 (license license:gpl3+)))
10831
10832 (define-public emacs-csv-mode
10833 (package
10834 (name "emacs-csv-mode")
10835 (version "1.10")
10836 (source
10837 (origin
10838 (method url-fetch)
10839 (uri (string-append "https://elpa.gnu.org/packages/csv-mode-"
10840 version ".el"))
10841 (sha256
10842 (base32 "0q7j2cmj7vs6hz8cnf7j7lmlcjmig3jn2p6az345z96agl8a5xsq"))))
10843 (build-system emacs-build-system)
10844 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
10845 (synopsis "Major mode for editing comma/char separated values")
10846 (description
10847 "This Emacs package implements CSV mode, a major mode for editing records
10848 in a generalized CSV (character-separated values) format.")
10849 (license license:gpl3+)))
10850
10851 (define-public emacs-transmission
10852 (package
10853 (name "emacs-transmission")
10854 (version "0.12.1")
10855 (source
10856 (origin
10857 (method git-fetch)
10858 (uri (git-reference
10859 (url "https://github.com/holomorph/transmission.git")
10860 (commit version)))
10861 (file-name (git-file-name name version))
10862 (sha256
10863 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
10864 (build-system emacs-build-system)
10865 (home-page "https://github.com/holomorph/transmission")
10866 (synopsis "Emacs interface to a Transmission session")
10867 (description "This package provides an Emacs interface to interact with a
10868 running session of the Transmission Bittorrent client.
10869
10870 Features:
10871
10872 @itemize
10873 @item List, add, start/stop, verify, remove torrents.
10874 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
10875 @item Navigate to the corresponding file list, torrent info, peer info
10876 contexts.
10877 @item Toggle downloading and set priorities for individual files.
10878 @end itemize\n")
10879 (license license:gpl3+)))
10880
10881 (define-public emacs-polymode
10882 (package
10883 (name "emacs-polymode")
10884 (version "0.2")
10885 (source (origin
10886 (method git-fetch)
10887 (uri (git-reference
10888 (url "https://github.com/polymode/polymode.git")
10889 (commit (string-append "v" version))))
10890 (file-name (git-file-name name version))
10891 (sha256
10892 (base32
10893 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
10894 (build-system emacs-build-system)
10895 (home-page "https://github.com/polymode/polymode")
10896 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
10897 (description
10898 "Polymode is an Emacs package that offers generic support for multiple
10899 major modes inside a single Emacs buffer. It is lightweight, object oriented
10900 and highly extensible. Creating a new polymode typically takes only a few
10901 lines of code. Polymode also provides extensible facilities for external
10902 literate programming tools for exporting, weaving and tangling.")
10903 (license license:gpl3+)))
10904
10905 (define-public emacs-polymode-ansible
10906 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
10907 (package
10908 (name "emacs-polymode-ansible")
10909 ;; No upstream version release yet.
10910 (version (git-version "0.1" "1" commit))
10911 (source
10912 (origin
10913 (method git-fetch)
10914 (uri (git-reference
10915 (url "https://gitlab.com/mavit/poly-ansible")
10916 (commit commit)))
10917 (file-name (git-file-name name version))
10918 (sha256
10919 (base32
10920 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
10921 (build-system emacs-build-system)
10922 (propagated-inputs
10923 `(("emacs-ansible-doc" ,emacs-ansible-doc)
10924 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
10925 ("emacs-polymode" ,emacs-polymode)
10926 ("emacs-yaml-mode" ,emacs-yaml-mode)))
10927 (properties '((upstream-name . "poly-ansible")))
10928 (home-page "https://gitlab.com/mavit/poly-ansible/")
10929 (synopsis "Polymode for Ansible - Jinja2 in YAML")
10930 (description
10931 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
10932 (license license:gpl3+))))
10933
10934 (define-public emacs-polymode-org
10935 (package
10936 (name "emacs-polymode-org")
10937 (version "0.2")
10938 (source
10939 (origin
10940 (method git-fetch)
10941 (uri (git-reference
10942 (url "https://github.com/polymode/poly-org.git")
10943 (commit (string-append "v" version))))
10944 (file-name (git-file-name name version))
10945 (sha256
10946 (base32
10947 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
10948 (build-system emacs-build-system)
10949 (propagated-inputs
10950 `(("emacs-polymode" ,emacs-polymode)))
10951 (properties '((upstream-name . "poly-org")))
10952 (home-page "https://github.com/polymode/poly-org")
10953 (synopsis "Polymode definitions for Org mode buffers")
10954 (description
10955 "Provides definitions for @code{emacs-polymode} to support
10956 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
10957 native modes of the blocks' languages while remaining inside the primary Org
10958 buffer.")
10959 (license license:gpl3+)))
10960
10961 (define-public eless
10962 (package
10963 (name "eless")
10964 (version "0.3")
10965 (source
10966 (origin
10967 (method git-fetch)
10968 (uri (git-reference
10969 (url "https://github.com/kaushalmodi/eless.git")
10970 (commit (string-append "v" version))))
10971 (file-name (git-file-name name version))
10972 (sha256
10973 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
10974 (build-system trivial-build-system)
10975 (inputs
10976 `(("bash" ,bash)))
10977 (arguments
10978 `(#:modules ((guix build utils))
10979 #:builder
10980 (begin
10981 (use-modules (guix build utils))
10982 (copy-recursively (assoc-ref %build-inputs "source") "source")
10983 (chdir "source")
10984 (substitute* "eless" (("/usr/bin/env bash")
10985 (string-append (assoc-ref %build-inputs "bash")
10986 "/bin/bash")))
10987 (install-file "eless" (string-append %output "/bin"))
10988 (install-file "doc/eless.info" (string-append %output "/share/info"))
10989 #t)))
10990 (home-page "https://github.com/kaushalmodi/eless")
10991 (synopsis "Use Emacs as a paginator")
10992 (description "@code{eless} provides a combination of Bash script
10993 and a minimal Emacs view-mode.
10994
10995 Feautures:
10996
10997 @itemize
10998 @item Independent of a user’s Emacs config.
10999 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
11000 @item Not require an Emacs server to be already running.
11001 @item Syntax highlighting.
11002 @item Org-mode file rendering.
11003 @item @code{man} page viewer.
11004 @item Info viewer.
11005 @item Dired, wdired, (batch edit symbolic links).
11006 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
11007 @item Filter log files lines matching a regexp.
11008 @item Auto-revert log files similar to @code{tail -f}.
11009 @item Quickly change frame and font sizes.
11010 @end itemize\n")
11011 (license license:expat)))
11012
11013 (define-public emacs-evil-matchit
11014 (package
11015 (name "emacs-evil-matchit")
11016 (version "2.3.4")
11017 (source
11018 (origin
11019 (method git-fetch)
11020 (uri (git-reference
11021 (url "https://github.com/redguardtoo/evil-matchit.git")
11022 (commit version)))
11023 (file-name (git-file-name name version))
11024 (sha256
11025 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
11026 (build-system emacs-build-system)
11027 (propagated-inputs
11028 `(("emacs-evil" ,emacs-evil)))
11029 (home-page "https://github.com/redguardtoo/evil-matchit")
11030 (synopsis "Vim matchit ported into Emacs")
11031 (description
11032 "@code{evil-matchit} is a minor mode for jumping between matching tags in
11033 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
11034 (license license:gpl3+)))
11035
11036 (define-public emacs-evil-smartparens
11037 (package
11038 (name "emacs-evil-smartparens")
11039 (version "0.4.0")
11040 (source
11041 (origin
11042 (method git-fetch)
11043 (uri (git-reference
11044 (url "https://github.com/expez/evil-smartparens.git")
11045 (commit version)))
11046 (file-name (git-file-name name version))
11047 (sha256
11048 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
11049 (build-system emacs-build-system)
11050 (propagated-inputs
11051 `(("emacs-evil" ,emacs-evil)
11052 ("emacs-smartparens" ,emacs-smartparens)))
11053 (home-page "https://github.com/expez/evil-smartparens")
11054 (synopsis "Emacs Evil integration for Smartparens")
11055 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
11056 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
11057 emulates Vim features and provides Vim-like key bindings.")
11058 (license license:gpl3+)))
11059
11060 (define-public emacs-evil-quickscope
11061 (package
11062 (name "emacs-evil-quickscope")
11063 (version "0.1.4")
11064 (source
11065 (origin
11066 (method git-fetch)
11067 (uri (git-reference
11068 (url "https://github.com/blorbx/evil-quickscope.git")
11069 (commit (string-append "v" version))))
11070 (file-name (git-file-name name version))
11071 (sha256
11072 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
11073 (build-system emacs-build-system)
11074 (propagated-inputs
11075 `(("emacs-evil" ,emacs-evil)))
11076 (arguments
11077 `(#:tests? #t
11078 #:test-command '("emacs" "--batch"
11079 "-l" "evil-quickscope-tests.el"
11080 "-f" "ert-run-tests-batch-and-exit")))
11081 (home-page "https://github.com/blorbx/evil-quickscope")
11082 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
11083 (description "@code{emacs-evil-quickscope} highlights targets for Evil
11084 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
11085 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
11086 features and provides Vim-like key bindings.")
11087 (license license:gpl3+)))
11088
11089 (define-public emacs-bongo
11090 (package
11091 (name "emacs-bongo")
11092 (version "1.0")
11093 (source
11094 (origin
11095 (method git-fetch)
11096 (uri (git-reference
11097 (url "https://github.com/dbrock/bongo.git")
11098 (commit version)))
11099 (file-name (git-file-name name version))
11100 (sha256
11101 (base32 "1q3ws2vn062dh7ci6jn2k2bcn7szh3ap64sgwkzdd6f1pas37fnr"))))
11102 (build-system emacs-build-system)
11103 (home-page "https://github.com/dbrock/bongo")
11104 (synopsis "Media player for Emacs")
11105 (description
11106 "This package provides a flexible media player for Emacs. @code{Bongo}
11107 supports multiple backends such as @code{vlc}, @code{mpg123},
11108 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
11109 @code{afplay}.")
11110 (license license:gpl2+)))
11111
11112 (define-public emacs-groovy-modes
11113 (package
11114 (name "emacs-groovy-modes")
11115 (version "2.0")
11116 (source (origin
11117 (method url-fetch)
11118 (uri (string-append
11119 "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
11120 "/archive/" version ".tar.gz"))
11121 (file-name (string-append name "-" version ".tar.gz"))
11122 (sha256
11123 (base32
11124 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
11125 (build-system emacs-build-system)
11126 (propagated-inputs
11127 `(("emacs-s" ,emacs-s)))
11128 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
11129 (synopsis "Groovy related modes for Emacs")
11130 (description
11131 "This package provides @code{groovy-mode} for syntax highlighting in
11132 Groovy source files, REPL integration with run-groovy and Grails project
11133 navigation with the grails mode.")
11134 (license license:gpl3+)))
11135
11136 (define-public groovy-emacs-modes
11137 (deprecated-package "groovy-emacs-modes" emacs-groovy-modes))
11138
11139 (define-public emacs-org-tree-slide
11140 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
11141 (revision "2"))
11142 (package
11143 (name "emacs-org-tree-slide")
11144 (version (git-version "2.8.4" revision commit))
11145 (source (origin
11146 (method git-fetch)
11147 (uri (git-reference
11148 (url "https://github.com/takaxp/org-tree-slide.git")
11149 (commit commit)))
11150 (sha256
11151 (base32
11152 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
11153 (file-name (git-file-name name version))))
11154 (build-system emacs-build-system)
11155 (home-page "https://github.com/takaxp/org-tree-slide")
11156 (synopsis "Presentation tool for org-mode")
11157 (description
11158 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
11159 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
11160 @kbd{C-<} to jump to the next and previous slide.")
11161 (license license:gpl3+))))
11162
11163 (define-public emacs-scratch-el
11164 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
11165 (revision "1"))
11166 (package
11167 (name "emacs-scratch-el")
11168 (version (git-version "1.2" revision commit))
11169 (source (origin
11170 (method git-fetch)
11171 (uri (git-reference
11172 (url "https://github.com/ieure/scratch-el.git")
11173 (commit commit)))
11174 (file-name (git-file-name name version))
11175 (sha256
11176 (base32
11177 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
11178 (build-system emacs-build-system)
11179 (native-inputs
11180 `(("texinfo" ,texinfo)))
11181 (arguments
11182 '(#:phases
11183 (modify-phases %standard-phases
11184 (add-after 'install 'install-doc
11185 (lambda* (#:key outputs #:allow-other-keys)
11186 (unless (invoke "makeinfo" "scratch.texi")
11187 (error "makeinfo failed"))
11188 (install-file "scratch.info"
11189 (string-append (assoc-ref outputs "out")
11190 "/share/info"))
11191 #t)))))
11192 (home-page "https://github.com/ieure/scratch-el/")
11193 (synopsis "Create scratch buffers with the same mode as current buffer")
11194 (description "Scratch is an extension to Emacs that enables one to create
11195 scratch buffers that are in the same mode as the current buffer. This is
11196 notably useful when working on code in some language; you may grab code into a
11197 scratch buffer, and, by virtue of this extension, do so using the Emacs
11198 formatting rules for that language.")
11199 (license license:bsd-2))))
11200
11201 (define-public emacs-kv
11202 (package
11203 (name "emacs-kv")
11204 (version "0.0.19")
11205 (source
11206 (origin
11207 (method git-fetch)
11208 (uri (git-reference
11209 (url "https://github.com/nicferrier/emacs-kv.git")
11210 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
11211 (file-name (git-file-name name version))
11212 (sha256
11213 (base32
11214 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
11215 (build-system emacs-build-system)
11216 (arguments
11217 `(#:tests? #t
11218 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
11219 "-f" "ert-run-tests-batch-and-exit")))
11220 (home-page "https://github.com/nicferrier/emacs-kv")
11221 (synopsis "Key/Value data structures library for Emacs Lisp")
11222 (description "@code{emacs-kv} is a collection of tools for dealing with
11223 key/value data structures such as plists, alists and hash-tables in Emacs
11224 Lisp.")
11225 (license license:gpl3+)))
11226
11227 (define-public emacs-esxml
11228 (package
11229 (name "emacs-esxml")
11230 (version "0.3.4")
11231 (source (origin
11232 (method git-fetch)
11233 (uri (git-reference
11234 (url "https://github.com/tali713/esxml.git")
11235 (commit version)))
11236 (file-name (git-file-name name version))
11237 (sha256
11238 (base32
11239 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
11240 (build-system emacs-build-system)
11241 (arguments
11242 `(#:phases
11243 (modify-phases %standard-phases
11244 (add-after 'unpack 'fix-sources
11245 (lambda _
11246 ;; See: https://github.com/tali713/esxml/pull/28.
11247 (substitute* "css-lite.el"
11248 ((";;; main interface")
11249 (string-append ";;; main interface\n"
11250 "(require 'cl-lib)"))
11251 (("mapcan")
11252 "cl-mapcan")
11253 (("',\\(cl-mapcan #'process-css-rule rules\\)")
11254 "(cl-mapcan #'process-css-rule ',rules)"))
11255 (substitute* "esxml-form.el"
11256 ((",esxml-form-field-defn")
11257 "#'esxml-form-field-defn"))
11258 ;; See: https://github.com/tali713/esxml/issues/25
11259 (delete-file "esxpath.el")
11260 #t)))))
11261 (propagated-inputs
11262 `(("emacs-kv" ,emacs-kv)))
11263 (home-page "https://github.com/tali713/esxml/")
11264 (synopsis "SXML for EmacsLisp")
11265 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
11266 Simply, this is the easiest way to write HTML or XML in Lisp. This library
11267 uses the native form of XML representation as used by many libraries already
11268 included within Emacs. See @code{esxml-to-xml} for a concise description of
11269 the format.")
11270 (license license:gpl3+)))
11271
11272 (define-public emacs-nov-el
11273 (package
11274 (name "emacs-nov-el")
11275 (version "0.2.9")
11276 (source (origin
11277 (method git-fetch)
11278 (uri (git-reference
11279 (url "https://github.com/wasamasa/nov.el.git")
11280 (commit version)))
11281 (file-name (git-file-name name version))
11282 (sha256
11283 (base32
11284 "0v01l1p35mcigixs6j4c5bpc7n7bd51kxa0p3l1xl0gr92774yq3"))))
11285 (build-system emacs-build-system)
11286 (arguments
11287 `(#:phases
11288 (modify-phases %standard-phases
11289 (add-after 'unpack 'embed-path-to-unzip
11290 (lambda _
11291 (substitute* "nov.el"
11292 (("\\(executable-find \"unzip\"\\)")
11293 (string-append "\"" (which "unzip") "\"")))
11294 #t)))))
11295 (propagated-inputs
11296 `(("emacs-dash" ,emacs-dash)
11297 ("emacs-esxml" ,emacs-esxml)))
11298 (inputs
11299 `(("unzip" ,unzip)))
11300 (home-page "https://github.com/wasamasa/nov.el/")
11301 (synopsis "Major mode for reading EPUBs in Emacs")
11302 (description "@code{nov.el} provides a major mode for reading EPUB
11303 documents.
11304
11305 Features:
11306
11307 @itemize
11308 @item Basic navigation (jump to TOC, previous/next chapter)
11309 @item Remembering and restoring the last read position
11310 @item Jump to next chapter when scrolling beyond end
11311 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
11312 @item Hyperlinks to internal and external targets
11313 @item Supports textual and image documents
11314 @item View source of document files
11315 @item Metadata display
11316 @item Image rescaling
11317 @end itemize
11318 ")
11319 (license license:gpl3+)))
11320
11321 (define-public epipe
11322 (package
11323 (name "epipe")
11324 (version "0.1.0")
11325 (source
11326 (origin
11327 (method git-fetch)
11328 (uri (git-reference
11329 (url "https://github.com/cute-jumper/epipe.git")
11330 (commit version)))
11331 (file-name (git-file-name name version))
11332 (sha256
11333 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
11334 (build-system trivial-build-system)
11335 (inputs
11336 `(("bash" ,bash)
11337 ("perl" ,perl)))
11338 (arguments
11339 `(#:modules
11340 ((guix build utils))
11341 #:builder
11342 (begin
11343 (use-modules (guix build utils))
11344 ;; Extract source.
11345 (copy-recursively (assoc-ref %build-inputs "source") "source")
11346 (chdir "source")
11347 ;; Patch shebangs.
11348 (substitute* "epipe"
11349 (("/usr/bin/env bash")
11350 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
11351 (patch-shebang "epipe.pl"
11352 (list (string-append (assoc-ref %build-inputs "perl")
11353 "/bin")))
11354 ;; Install.
11355 (for-each (lambda (file)
11356 (install-file file (string-append %output "/bin")))
11357 '("epipe" "epipe.pl"))
11358 #t)))
11359 (home-page "https://github.com/cute-jumper/epipe")
11360 (synopsis "Pipe to the @code{emacsclient}")
11361 (description "@code{epipe} provides an utility to use your editor in
11362 the pipeline, featuring the support for running @code{emacsclient}.")
11363 (license license:gpl3+)))
11364
11365 (define-public emacs-hcl-mode
11366 (package
11367 (name "emacs-hcl-mode")
11368 (version "0.03")
11369 (source
11370 (origin
11371 (method git-fetch)
11372 (uri (git-reference
11373 (url "https://github.com/syohex/emacs-hcl-mode.git")
11374 (commit version)))
11375 (file-name (git-file-name name version))
11376 (sha256
11377 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
11378 (build-system emacs-build-system)
11379 (home-page "https://github.com/syohex/emacs-hcl-mode")
11380 (synopsis "Major mode for the Hashicorp Configuration Language")
11381 (description
11382 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
11383 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
11384 highlighting and indentation support.")
11385 (license license:gpl3+)))
11386
11387 (define-public emacs-terraform-mode
11388 (package
11389 (name "emacs-terraform-mode")
11390 (version "0.06")
11391 (source
11392 (origin
11393 (method git-fetch)
11394 (uri (git-reference
11395 (url "https://github.com/syohex/emacs-terraform-mode.git")
11396 (commit version)))
11397 (file-name (git-file-name name version))
11398 (sha256
11399 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
11400 (build-system emacs-build-system)
11401 (propagated-inputs
11402 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
11403 (home-page "https://github.com/syohex/emacs-terraform-mode")
11404 (synopsis "Major mode for Terraform")
11405 (description
11406 "@code{emacs-terraform-mode} provides a major mode for working with
11407 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
11408 functionality is inherited from @code{hcl-mode}.")
11409 (license license:gpl3+)))
11410
11411 (define-public emacs-exec-path-from-shell
11412 (package
11413 (name "emacs-exec-path-from-shell")
11414 (version "1.12")
11415 (source
11416 (origin
11417 (method git-fetch)
11418 (uri (git-reference
11419 (url "https://github.com/purcell/exec-path-from-shell")
11420 (commit version)))
11421 (sha256
11422 (base32
11423 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
11424 (build-system emacs-build-system)
11425 (home-page "https://github.com/purcell/exec-path-from-shell")
11426 (synopsis "Get environment variables such as @var{PATH} from the shell")
11427 (description
11428 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
11429 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
11430 the like work as expected on systems on which Emacs is not guaranteed to
11431 inherit a login shell's environment variables. It also allows other
11432 environment variables to be retrieved from the shell, so that Emacs will see
11433 the same values you get in a terminal.")
11434 (license license:gpl3+)))
11435
11436 (define-public emacs-frog-menu
11437 (let ((commit "740bbc88b8535d31f783f3b2043a2a6683afbf31")
11438 (revision "1"))
11439 (package
11440 (name "emacs-frog-menu")
11441 (version (git-version "0.2.9" revision commit))
11442 (source
11443 (origin
11444 (method git-fetch)
11445 (uri (git-reference
11446 (url "https://github.com/clemera/frog-menu")
11447 (commit commit)))
11448 (file-name (git-file-name name version))
11449 (sha256
11450 (base32
11451 "1g77424jwq62qj06rvld44s5hp0dw8rw2pwmmag6gd536zf65xrj"))))
11452 (build-system emacs-build-system)
11453 (propagated-inputs
11454 `(("emacs-posframe" ,emacs-posframe)
11455 ("emacs-avy" ,emacs-avy)))
11456 (home-page "https://github.com/clemera/frog-menu")
11457 (synopsis "Quickly pick items from ad hoc menus")
11458 (description
11459 "This package provides a popup offering a preview of a list of
11460 candidates on which user-defined dispatch actions can act.")
11461 (license license:gpl3+))))
11462
11463 (define-public emacs-frog-jump-buffer
11464 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
11465 (revision "1"))
11466 (package
11467 (name "emacs-frog-jump-buffer")
11468 (version (git-version "0.1.4" revision commit))
11469 (source
11470 (origin
11471 (method git-fetch)
11472 (uri (git-reference
11473 (url "https://github.com/waymondo/frog-jump-buffer")
11474 (commit commit)))
11475 (file-name (git-file-name name version))
11476 (sha256
11477 (base32
11478 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
11479 (build-system emacs-build-system)
11480 (propagated-inputs
11481 `(("emacs-dash" ,emacs-dash)
11482 ("emacs-frog-menu" ,emacs-frog-menu)
11483 ("emacs-avy" ,emacs-avy)))
11484 (home-page "https://github.com/waymondo/frog-jump-buffer")
11485 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
11486 (description
11487 "This package provides a preview window of buffers that can be switched
11488 to with quicklink-style selections.")
11489 (license license:gpl3+))))
11490
11491 (define-public emacs-deft
11492 (package
11493 (name "emacs-deft")
11494 (version "0.8")
11495 (source
11496 (origin
11497 (method git-fetch)
11498 (uri (git-reference
11499 (url "https://github.com/jrblevin/deft.git")
11500 (commit (string-append "v" version))))
11501 (sha256
11502 (base32
11503 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
11504 (build-system emacs-build-system)
11505 (home-page "https://jblevins.org/projects/deft/")
11506 (synopsis "Quickly browse, filter, and edit plain text notes")
11507 (description
11508 "Deft is an Emacs mode for quickly browsing, filtering, and editing
11509 directories of plain text notes, inspired by Notational Velocity.")
11510 (license license:bsd-3)))
11511
11512 (define-public emacs-anzu
11513 (package
11514 (name "emacs-anzu")
11515 (version "0.62")
11516 (source
11517 (origin
11518 (method git-fetch)
11519 (uri (git-reference
11520 (url "https://github.com/syohex/emacs-anzu.git")
11521 (commit version)))
11522 (file-name (git-file-name name version))
11523 (sha256
11524 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
11525 (build-system emacs-build-system)
11526 (home-page "https://github.com/syohex/emacs-anzu")
11527 (synopsis "Show number of matches in mode-line while searching")
11528 (description
11529 "Anzu provides a minor mode which displays \"current match/total
11530 matches\" in the mode line in various search modes. This is an Emacs port of
11531 Anzu.zim.")
11532 (license license:gpl3+)))
11533
11534 (define-public emacs-ascii-art-to-unicode
11535 (package
11536 (name "emacs-ascii-art-to-unicode")
11537 (version "1.12")
11538 (source
11539 (origin
11540 (method url-fetch)
11541 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
11542 version ".el"))
11543 (sha256
11544 (base32
11545 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
11546 (build-system emacs-build-system)
11547 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
11548 (synopsis "ASCII to Unicode art converter for Emacs")
11549 (description "This Emacs package provides the commands @command{aa2u} and
11550 @command{aa2u-rectangle}. Both of these commands can be used to convert
11551 simple ASCII art line drawings to Unicode; the former works on the active
11552 region of the buffer, while the latter works on rectangular selections.")
11553 (license license:gpl3+)))
11554
11555 (define-public emacs-emmet-mode
11556 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
11557 (revision "1"))
11558 (package
11559 (name "emacs-emmet-mode")
11560 (version (git-version "1.0.8" revision commit))
11561 (source (origin
11562 (method git-fetch)
11563 (uri (git-reference
11564 (url "https://github.com/smihica/emmet-mode.git")
11565 (commit commit)))
11566 (file-name (git-file-name name version))
11567 (sha256
11568 (base32
11569 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
11570 (build-system emacs-build-system)
11571 (home-page "https://github.com/smihica/emmet-mode")
11572 (synopsis "Unofficial Emmet's support for Emacs")
11573 (description
11574 "Unfold CSS-selector-like expressions to markup. It is intended to be
11575 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
11576 (license license:gpl3+))))
11577
11578 (define-public emacs-ergoemacs-mode
11579 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
11580 (revision "1"))
11581 (package
11582 (name "emacs-ergoemacs-mode")
11583 (version (git-version "5.16.10.12" revision commit))
11584 (source
11585 (origin
11586 (method git-fetch)
11587 (uri (git-reference
11588 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
11589 (commit commit)))
11590 (sha256
11591 (base32
11592 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
11593 (build-system emacs-build-system)
11594 (propagated-inputs
11595 `(("emacs-undo-tree" ,emacs-undo-tree)))
11596 (home-page "https://ergoemacs.github.io/")
11597 (synopsis "Emacs mode based on common modern interface and ergonomics")
11598 (description
11599 "This package provides an efficient Emacs keybinding set based on
11600 statistics of command frequency, and supports common shortcuts for open,
11601 close, copy, cut, paste, undo, redo.")
11602 (license license:gpl3+))))
11603
11604 (define-public emacs-password-store
11605 (package
11606 (name "emacs-password-store")
11607 (version "1.7.3")
11608 (source (origin
11609 (method url-fetch)
11610 (uri
11611 (string-append "https://git.zx2c4.com/password-store/snapshot/"
11612 "password-store-" version ".tar.xz"))
11613 (sha256
11614 (base32
11615 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
11616 (build-system emacs-build-system)
11617 (arguments
11618 `(#:phases
11619 (modify-phases %standard-phases
11620 (add-after 'unpack 'extract-el-file
11621 (lambda _
11622 (copy-file "contrib/emacs/password-store.el" "password-store.el")
11623 (delete-file-recursively "contrib")
11624 (delete-file-recursively "man")
11625 (delete-file-recursively "src")
11626 (delete-file-recursively "tests"))))))
11627 (propagated-inputs
11628 `(("emacs-f" ,emacs-f)
11629 ("emacs-s" ,emacs-s)
11630 ("emacs-with-editor" ,emacs-with-editor)
11631 ("password-store" ,password-store)))
11632 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
11633 (synopsis "Password store (pass) support for Emacs")
11634 (description
11635 "This package provides functions for working with pass (\"the
11636 standard Unix password manager\").")
11637 (license license:gpl2+)))
11638
11639 (define-public emacs-auth-source-pass
11640 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
11641 (revision "1"))
11642 (package
11643 (name "emacs-auth-source-pass")
11644 (version (git-version "5.0.0" revision commit))
11645 (source
11646 (origin
11647 (method git-fetch)
11648 (uri (git-reference
11649 (url "https://github.com/NicolasPetton/auth-password-store.git")
11650 (commit commit)))
11651 (file-name (git-file-name name version))
11652 (sha256
11653 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
11654 (build-system emacs-build-system)
11655 (arguments
11656 `(#:tests? #t
11657 #:test-command '("emacs" "--batch"
11658 "-L" "."
11659 "-l" "test/auth-source-pass-tests.el"
11660 "-f" "ert-run-tests-batch-and-exit")))
11661 (home-page "https://github.com/NicolasPetton/auth-password-store")
11662 (synopsis "Integrate @code{auth-source} with @code{password-store}")
11663 (description "This package helps Emacs integrate with the Unix
11664 @code{password-store} application.")
11665 (license license:gpl3+))))
11666
11667 (define-public emacs-pass
11668 (package
11669 (name "emacs-pass")
11670 (version "1.8")
11671 (source
11672 (origin
11673 (method git-fetch)
11674 (uri (git-reference
11675 (url "https://github.com/NicolasPetton/pass.git")
11676 (commit version)))
11677 (file-name (git-file-name name version))
11678 (sha256
11679 (base32 "05h4hacv3yygyjcjj004qbyqjpkl4pyhwgp25gsz8mw5c66l70cx"))))
11680 (build-system emacs-build-system)
11681 (propagated-inputs
11682 `(("emacs-password-store" ,emacs-password-store)
11683 ("emacs-f" ,emacs-f)))
11684 (home-page "https://github.com/NicolasPetton/pass")
11685 (synopsis "Major mode for @file{password-store.el}")
11686 (description "This is a major mode for managing password-store (pass)
11687 keychains. The keychain entries are displayed in a directory-like structure
11688 and can be consulted and modified.")
11689 (license license:gpl3+)))
11690
11691 (define-public emacs-evil-anzu
11692 (package
11693 (name "emacs-evil-anzu")
11694 (version "0.03")
11695 (source
11696 (origin
11697 (method git-fetch)
11698 (uri (git-reference
11699 (url "https://github.com/syohex/emacs-evil-anzu")
11700 (commit version)))
11701 (file-name (git-file-name name version))
11702 (sha256
11703 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
11704 (build-system emacs-build-system)
11705 (propagated-inputs
11706 `(("emacs-evil" ,emacs-evil)
11707 ("emacs-anzu" ,emacs-anzu)))
11708 (home-page "https://github.com/syohex/emacs-evil-anzu")
11709 (synopsis "Anzu for evil-mode")
11710 (description "@code{anzu} provides a minor mode that displays the current
11711 match and total match information in the mode-line in various search modes.")
11712 (license license:gpl3+)))
11713
11714 (define-public emacs-pg
11715 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
11716 (package
11717 (name "emacs-pg")
11718 (version (git-version "0.1" "1" commit))
11719 (source (origin
11720 (method git-fetch)
11721 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
11722 (commit commit)))
11723 (file-name (git-file-name name version))
11724 (sha256
11725 (base32
11726 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
11727 (build-system emacs-build-system)
11728 (home-page "https://github.com/cbbrowne/pg.el")
11729 (synopsis "Emacs Lisp interface for PostgreSQL")
11730 (description
11731 "This package provides an Emacs Lisp interface for PostgreSQL.")
11732 (license license:gpl3+))))
11733
11734 (define-public emacs-cl-generic
11735 (package
11736 (name "emacs-cl-generic")
11737 (version "0.3")
11738 (source
11739 (origin
11740 (method url-fetch)
11741 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
11742 version ".el"))
11743 (sha256
11744 (base32
11745 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
11746 (build-system emacs-build-system)
11747 (home-page "https://elpa.gnu.org/packages/seq.html")
11748 (synopsis
11749 "Forward @code{cl-generic} compatibility for Emacs before version 25")
11750 (description "This package provides a subset of the features of the
11751 @code{cl-generic} package introduced in Emacs-25, for use on previous
11752 @code{emacsen}.")
11753 (license license:gpl3+)))
11754
11755 (define-public emacs-finalize
11756 (package
11757 (name "emacs-finalize")
11758 (version "2.0.0")
11759 (source
11760 (origin
11761 (method git-fetch)
11762 (uri (git-reference
11763 (url "https://github.com/skeeto/elisp-finalize.git")
11764 (commit version)))
11765 (file-name (git-file-name name version))
11766 (sha256
11767 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
11768 (build-system emacs-build-system)
11769 (propagated-inputs
11770 `(("emacs-cl-generic" ,emacs-cl-generic)))
11771 (home-page "https://github.com/skeeto/elisp-finalize")
11772 (synopsis "Finalizers for Emacs Lisp")
11773 (description
11774 "This package will allows to immediately run a callback (a finalizer)
11775 after its registered lisp object has been garbage collected. This allows for
11776 extra resources, such as buffers and processes, to be cleaned up after the
11777 object has been freed.")
11778 (license license:unlicense)))
11779
11780 (define-public emacs-emacsql
11781 (package
11782 (name "emacs-emacsql")
11783 (version "3.0.0")
11784 (source (origin
11785 (method git-fetch)
11786 (uri (git-reference
11787 (url "https://github.com/skeeto/emacsql.git")
11788 (commit (string-append version))))
11789 (file-name (git-file-name name version))
11790 (sha256
11791 (base32
11792 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
11793 (build-system emacs-build-system)
11794 (arguments
11795 `(#:modules ((guix build emacs-build-system)
11796 (guix build utils)
11797 (guix build emacs-utils)
11798 (srfi srfi-26))
11799 #:phases
11800 (modify-phases %standard-phases
11801 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
11802 (add-before 'install 'patch-elisp-shell-shebangs
11803 (lambda _
11804 (substitute* (find-files "." "\\.el")
11805 (("/bin/sh") (which "sh")))
11806 #t))
11807 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
11808 (lambda _
11809 (setenv "SHELL" "sh")))
11810 (add-after 'setenv-shell 'build-emacsql-sqlite
11811 (lambda _
11812 (invoke "make" "binary" "CC=gcc")))
11813 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
11814 ;; This build phase installs emacs-emacsql binary.
11815 (lambda* (#:key outputs #:allow-other-keys)
11816 (install-file "sqlite/emacsql-sqlite"
11817 (string-append (assoc-ref outputs "out")
11818 "/bin"))
11819 #t))
11820 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
11821 ;; This build phase removes interactive prompts
11822 ;; and makes sure Emacs look for binaries in the right places.
11823 (lambda* (#:key outputs #:allow-other-keys)
11824 (let ((file "emacsql-sqlite.el"))
11825 (chmod file #o644)
11826 (emacs-substitute-sexps file
11827 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
11828 ("(executable-find" (which "gcc"))
11829 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
11830 ;; in the right place.
11831 ("(defvar emacsql-sqlite-executable"
11832 (string-append (assoc-ref outputs "out")
11833 "/bin/emacsql-sqlite"))))))
11834 (replace 'install
11835 (lambda* (#:key outputs #:allow-other-keys)
11836 (let* ((out (assoc-ref outputs "out")))
11837 (install-file "sqlite/emacsql-sqlite"
11838 (string-append out "/bin"))
11839 (for-each (cut install-file <>
11840 (string-append out "/share/emacs/site-lisp/guix.d/"
11841 "emacsql" "-" ,version))
11842 (find-files "." "\\.elc*$")))
11843 #t)))))
11844 (inputs
11845 `(("emacs-minimal" ,emacs-minimal)
11846 ("mariadb" ,mariadb)
11847 ("postgresql" ,postgresql)))
11848 (propagated-inputs
11849 `(("emacs-finalize" ,emacs-finalize)
11850 ("emacs-pg" ,emacs-pg)))
11851 (home-page "https://github.com/skeeto/emacsql")
11852 (synopsis "Emacs high-level SQL database front-end")
11853 (description "Any readable Lisp value can be stored as a value in EmacSQL,
11854 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
11855 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
11856 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
11857 (license license:gpl3+)))
11858
11859 (define-public emacs-closql
11860 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
11861 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
11862 (package
11863 (name "emacs-closql")
11864 (version (git-version "1.0.0" "1" commit))
11865 (source
11866 (origin
11867 (method git-fetch)
11868 (uri (git-reference
11869 (url "https://github.com/emacscollective/closql.git")
11870 (commit commit)))
11871 (file-name (git-file-name name version))
11872 (sha256
11873 (base32
11874 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
11875 (build-system emacs-build-system)
11876 (propagated-inputs
11877 `(("emacs-emacsql" ,emacs-emacsql)))
11878 (home-page "https://github.com/emacscollective/closql")
11879 (synopsis "Store EIEIO objects using EmacSQL")
11880 (description
11881 "This package allows to store uniform EIEIO objects in an EmacSQL
11882 database. SQLite is used as backend. This library imposes some restrictions
11883 on what kind of objects can be stored; it isn't intended to store arbitrary
11884 objects. All objects have to share a common superclass and subclasses cannot
11885 add any additional instance slots.")
11886 (license license:gpl3))))
11887
11888 (define-public emacs-epkg
11889 ;; The release version is to old for the current database scheme.
11890 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
11891 (package
11892 (name "emacs-epkg")
11893 (version (git-version "3.0.0" "1" commit))
11894 (source
11895 (origin
11896 (method git-fetch)
11897 (uri (git-reference
11898 (url "https://github.com/emacscollective/epkg.git")
11899 (commit commit)))
11900 (file-name (git-file-name name version))
11901 (sha256
11902 (base32
11903 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
11904 (build-system emacs-build-system)
11905 (propagated-inputs
11906 `(("emacs-closql" ,emacs-closql)
11907 ("emacs-dash" ,emacs-dash)))
11908 (home-page "https://emacsmirror.net")
11909 (synopsis "Browse the Emacsmirror package database")
11910 (description "This package provides access to a local copy of the
11911 Emacsmirror package database. It provides low-level functions for querying
11912 the database and a @file{package.el} user interface for browsing the database.
11913 Epkg itself is not a package manager.
11914
11915 Getting a local copy:
11916
11917 @example
11918 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
11919 cd ~/.emacs.d/epkgs
11920 git submodule init
11921 git config --global url.https://github.com/.insteadOf git@@github.com:
11922 git submodule update
11923 @end example
11924
11925 Some submodule may be missing. In this case Git will prompt for a GitHub user
11926 name and password. To skip it press a @key{Return} key.
11927
11928 You could get a Epkg package list by invoking @code{epkg-list-packages} in
11929 Emacs.")
11930 (license license:gpl3+))))
11931
11932 (define-public emacs-elisp-slime-nav
11933 (package
11934 (name "emacs-elisp-slime-nav")
11935 (version "0.9")
11936 (source
11937 (origin
11938 (method git-fetch)
11939 (uri (git-reference
11940 (url "https://github.com/purcell/elisp-slime-nav.git")
11941 (commit version)))
11942 (file-name (git-file-name name version))
11943 (sha256
11944 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
11945 (build-system emacs-build-system)
11946 (home-page "https://github.com/purcell/elisp-slime-nav")
11947 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
11948 (description
11949 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
11950 in @code{emacs-lisp-mode}, together with an elisp equivalent of
11951 @code{slime-describe-symbol}.")
11952 (license license:gpl3+)))
11953
11954 (define-public emacs-dedicated
11955 (package
11956 (name "emacs-dedicated")
11957 (version "1.0.0")
11958 (source
11959 (origin
11960 (method git-fetch)
11961 (uri (git-reference
11962 (url "https://github.com/emacsorphanage/dedicated.git")
11963 (commit version)))
11964 (file-name (git-file-name name version))
11965 (sha256
11966 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
11967 (build-system emacs-build-system)
11968 (home-page "https://github.com/emacsorphanage/dedicated")
11969 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
11970 (description
11971 "This simple Emacs minor mode allows you to toggle a window's
11972 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
11973 files into that window. This can be quite handy since many commands will use
11974 another window to show results (compilation mode, starting info, and so on).
11975 A dedicated window won't be used for such a purpose. For details, please read
11976 the source file.")
11977 (license license:gpl2+)))
11978
11979 (define-public emacs-nnreddit
11980 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
11981 (revision "1"))
11982 (package
11983 (name "emacs-nnreddit")
11984 (version (string-append "0.0.1-" revision "."
11985 (string-take commit 7)))
11986 (source (origin
11987 (method git-fetch)
11988 (uri (git-reference
11989 (url "https://github.com/paul-issartel/nnreddit.git")
11990 (commit commit)))
11991 (file-name (git-file-name name version))
11992 (sha256
11993 (base32
11994 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
11995 (build-system emacs-build-system)
11996 (home-page "https://github.com/paul-issartel/nnreddit")
11997 (synopsis "Reddit backend for the Gnus newsreader")
11998 (description "@url{https://www.reddit.com} backend for the Gnus
11999 newsreader.")
12000 (license license:gpl3+))))
12001
12002 (define-public emacs-makey
12003 (package
12004 (name "emacs-makey")
12005 (version "0.3")
12006 (source
12007 (origin
12008 (method git-fetch)
12009 (uri (git-reference
12010 (url "https://github.com/mickeynp/makey.git")
12011 (commit version)))
12012 (file-name (git-file-name name version))
12013 (sha256
12014 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
12015 (build-system emacs-build-system)
12016 (home-page "https://github.com/mickeynp/makey")
12017 (synopsis "Emacs interactive command-line mode")
12018 (description
12019 "This package provides an Emacs interactive command-line mode.")
12020 (license license:gpl3+)))
12021
12022 (define-public emacs-outorg
12023 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
12024 (package
12025 (name "emacs-outorg")
12026 (version (git-version "2.0" "1" commit))
12027 (source
12028 (origin
12029 (method git-fetch)
12030 (uri (git-reference
12031 (url "https://github.com/alphapapa/outorg")
12032 (commit commit)))
12033 (file-name (git-file-name name version))
12034 (sha256
12035 (base32
12036 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
12037 (build-system emacs-build-system)
12038 (home-page "https://github.com/alphapapa/outorg")
12039 (synopsis "Org-style comment editing")
12040 (description "Outorg is for editing comment-sections of source-code
12041 files in temporary Org-mode buffers. It turns conventional
12042 literate-programming upside-down in that the default mode is the
12043 programming-mode, and special action has to be taken to switch to the
12044 text-mode (i.e. Org-mode).")
12045 (license license:gpl3+))))
12046
12047 (define-public emacs-outshine
12048 (package
12049 (name "emacs-outshine")
12050 (version "3.0.1")
12051 (source (origin
12052 (method git-fetch)
12053 (uri (git-reference
12054 (url "https://github.com/alphapapa/outshine.git")
12055 (commit (string-append "v" version))))
12056 (file-name (git-file-name name version))
12057 (sha256
12058 (base32
12059 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
12060 (build-system emacs-build-system)
12061 (propagated-inputs
12062 `(("emacs-outorg" ,emacs-outorg)))
12063 (home-page "https://github.com/alphapapa/outshine")
12064 (synopsis "Emacs outline with outshine")
12065 (description "Outshine attempts to bring the look and feel of
12066 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
12067 of @code{outline-minor-mode} (@code{org-mode} itself derives from
12068 outline-mode), so there is no such thing like an outshine mode, only
12069 @code{outline-minor-mode} with outshine extensions loaded.")
12070 (license license:gpl3+)))
12071
12072 (define-public emacs-frecency
12073 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
12074 (version "0.1-pre")
12075 (revision "1"))
12076 (package
12077 (name "emacs-frecency")
12078 (version (git-version version revision commit))
12079 (source (origin
12080 (method git-fetch)
12081 (uri (git-reference
12082 (url "https://github.com/alphapapa/frecency.el")
12083 (commit commit)))
12084 (sha256
12085 (base32
12086 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
12087 (file-name (git-file-name name version))))
12088 (build-system emacs-build-system)
12089 (propagated-inputs
12090 `(("emacs-a" ,emacs-a)
12091 ("emacs-dash" ,emacs-dash)))
12092 (home-page "https://github.com/alphapapa/frecency.el")
12093 (synopsis "Sort items by frequency and recency of access")
12094 (description "This package provides a way of sorting items via
12095 a heuristic based on frequency and recency.")
12096 (license license:gpl3+))))
12097
12098 (define-public emacs-org-recent-headings
12099 (package
12100 (name "emacs-org-recent-headings")
12101 (version "0.1")
12102 (source (origin
12103 (method git-fetch)
12104 (uri (git-reference
12105 (url "https://github.com/alphapapa/org-recent-headings.git")
12106 (commit version)))
12107 (file-name (git-file-name name version))
12108 (sha256
12109 (base32
12110 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
12111 (build-system emacs-build-system)
12112 (propagated-inputs
12113 `(("emacs-org" ,emacs-org)
12114 ("emacs-dash" ,emacs-dash)
12115 ("emacs-frecency" ,emacs-frecency)))
12116 (home-page "https://github.com/alphapapa/org-recent-headings")
12117 (synopsis "Navigate to recently used Org headings and lists")
12118 (description "This package maintains a list of recently used Org headings,
12119 as well as functions for navigating between these headings.")
12120 (license license:gpl3+)))
12121
12122 (define-public emacs-org-super-agenda
12123 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
12124 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
12125 (revision "3"))
12126 (package
12127 (name "emacs-org-super-agenda")
12128 (version (git-version "1.1.1" revision commit))
12129 (source (origin
12130 (method git-fetch)
12131 (uri (git-reference
12132 (url "https://github.com/alphapapa/org-super-agenda")
12133 (commit commit)))
12134 (file-name (git-file-name name version))
12135 (sha256
12136 (base32
12137 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
12138 (build-system emacs-build-system)
12139 (propagated-inputs
12140 `(("emacs-org" ,emacs-org)
12141 ("emacs-dash" ,emacs-dash)
12142 ("emacs-ts" ,emacs-ts)
12143 ("emacs-ht" ,emacs-ht)
12144 ("emacs-s" ,emacs-s)))
12145 (home-page "https://github.com/alphapapa/org-super-agenda")
12146 (synopsis "Supercharged Org agenda")
12147 (description "This package allows items in the Org agenda to be grouped
12148 into sections while preserving the structure imposed by any timestamps.")
12149 (license license:gpl3+))))
12150
12151 (define-public emacs-org-make-toc
12152 (package
12153 (name "emacs-org-make-toc")
12154 (version "0.3")
12155 (source (origin
12156 (method git-fetch)
12157 (uri (git-reference
12158 (url "https://github.com/alphapapa/org-make-toc")
12159 (commit version)))
12160 (file-name (git-file-name name version))
12161 (sha256
12162 (base32
12163 "0syhj8q4pv33xgl5qa6x27yhwqvfhffw5xqp819hj4qs1ddlc7j5"))))
12164 (build-system emacs-build-system)
12165 (propagated-inputs
12166 `(("emacs-org" ,emacs-org)
12167 ("emacs-dash" ,emacs-dash)
12168 ("emacs-s" ,emacs-s)))
12169 (home-page "https://github.com/alphapapa/org-make-toc")
12170 (synopsis "Maintain a table of contents for an Org file")
12171 (description "This package facilitates the creation and maintenance of
12172 tables of contents.")
12173 (license license:gpl3+)))
12174
12175 (define-public emacs-ts
12176 (let ((commit "395649a2f2ba79028331bb1fa9ec08b218950ff6")
12177 (revision "2"))
12178 (package
12179 (name "emacs-ts")
12180 (version (git-version "0.1" revision commit))
12181 (source (origin
12182 (method git-fetch)
12183 (uri (git-reference
12184 (url "https://github.com/alphapapa/ts.el")
12185 (commit commit)))
12186 (sha256
12187 (base32
12188 "02603wv66fplsigxd87jy23hrb5g9vigszcpdqrdv0ypaqaxlr3a"))
12189 (file-name (git-file-name name version))))
12190 (build-system emacs-build-system)
12191 (propagated-inputs
12192 `(("emacs-s" ,emacs-s)
12193 ("emacs-dash" ,emacs-dash)))
12194 (arguments
12195 ;; XXX: Three tests are failing because of a timezone-related issue
12196 ;; with how they're written. On my machine, all the failing test
12197 ;; results are 18000 seconds (5 hours) off.
12198
12199 ;; The ts-parse-org function accepts a string without any timezone
12200 ;; info, not assumed to be in Unix time, and converts it to a so-called
12201 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
12202 ;; then seems to assume the struct's corresponding time is in terms of
12203 ;; the user's current time zone, before returning a Unix time in
12204 ;; seconds.
12205
12206 ;; The failing tests all have similar problems, but nothing else about
12207 ;; the library seems particularly off.
12208
12209 `(#:tests? #t
12210 #:test-command '("emacs" "--batch"
12211 "-l" "test/test.el"
12212 "-f" "ert-run-tests-batch-and-exit")
12213 #:phases
12214 (modify-phases %standard-phases
12215 (add-before 'check 'make-tests-writable
12216 (lambda _
12217 (make-file-writable "test/test.el")
12218 #t))
12219 (add-before 'check 'delete-failing-tests
12220 (lambda _
12221 (emacs-batch-edit-file "test/test.el"
12222 `(progn (progn
12223 (goto-char (point-min))
12224 (dolist (test-regexp '("ert-deftest ts-format"
12225 "ert-deftest ts-parse-org\\_>"
12226 "ert-deftest ts-parse-org-element"))
12227 (re-search-forward test-regexp)
12228 (beginning-of-line)
12229 (kill-sexp)))
12230 (basic-save-buffer)))
12231 #t)))))
12232 (home-page "https://github.com/alphapapa/ts.el")
12233 (synopsis "Timestamp and date/time library")
12234 (description "This package facilitates manipulating dates, times, and
12235 timestamps by providing a @code{ts} struct.")
12236 (license license:gpl3+))))
12237
12238 (define-public emacs-peg
12239 (package
12240 (name "emacs-peg")
12241 (version "0.6")
12242 (source (origin
12243 (method git-fetch)
12244 (uri (git-reference
12245 (url "https://github.com/emacsmirror/peg")
12246 (commit version)))
12247 (sha256
12248 (base32
12249 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
12250 (file-name (git-file-name name version))))
12251 (build-system emacs-build-system)
12252 (home-page "https://github.com/emacsmirror/peg/")
12253 (synopsis "Parsing Expression Grammars in Elisp")
12254 (description "This package provides a macro that parses the current buffer
12255 according to a parsing expression grammar.")
12256 (license license:gpl3+)))
12257
12258 (define-public emacs-org-ql
12259 (package
12260 (name "emacs-org-ql")
12261 (version "0.3.2")
12262 (source (origin
12263 (method git-fetch)
12264 (uri (git-reference
12265 (url "https://github.com/alphapapa/org-ql")
12266 (commit version)))
12267 (sha256
12268 (base32
12269 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
12270 (file-name (git-file-name name version))))
12271 (build-system emacs-build-system)
12272 (propagated-inputs
12273 `(("emacs-s" ,emacs-s)
12274 ("emacs-f" ,emacs-f)
12275 ("emacs-ov" ,emacs-ov)
12276 ("emacs-peg" ,emacs-peg)
12277 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
12278 ("emacs-ts" ,emacs-ts)
12279 ("emacs-org" ,emacs-org)
12280 ("emacs-helm" ,emacs-helm)
12281 ("emacs-helm-org" ,emacs-helm-org)
12282 ("emacs-dash" ,emacs-dash)))
12283 (native-inputs
12284 `(("emacs-buttercup" ,emacs-buttercup)))
12285 (arguments
12286 `(#:phases
12287 (modify-phases %standard-phases
12288 (add-after 'unpack 'require-helm
12289 (lambda _
12290 (substitute* "helm-org-ql.el"
12291 (("^;;;; Requirements")
12292 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
12293 #t)))
12294 #:tests? #t
12295 #:test-command '("buttercup" "-L" ".")))
12296 (home-page "https://github.com/alphapapa/org-ql/")
12297 (synopsis "Query language for Org buffers")
12298 (description "This package provides a Lispy query language for Org
12299 files, allowing for actions to be performed based on search criteria.")
12300 (license license:gpl3+)))
12301
12302 (define-public emacs-org-auto-expand
12303 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
12304 (revision "1"))
12305 (package
12306 (name "emacs-org-auto-expand")
12307 (version (git-version "0.1" revision commit))
12308 (source (origin
12309 (method git-fetch)
12310 (uri (git-reference
12311 (url "https://github.com/alphapapa/org-auto-expand")
12312 (commit commit)))
12313 (file-name (git-file-name name version))
12314 (sha256
12315 (base32
12316 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
12317 (build-system emacs-build-system)
12318 (propagated-inputs
12319 `(("emacs-org" ,emacs-org)
12320 ("emacs-dash" ,emacs-dash)))
12321 (home-page "https://github.com/alphapapa/org-auto-expand")
12322 (synopsis "Automatically expand certain Org headings")
12323 (description "This package allows a customizable set of headings in Org
12324 files to be expanded upon opening them.")
12325 (license license:gpl3+))))
12326
12327 (define-public emacs-parsebib
12328 (package
12329 (name "emacs-parsebib")
12330 (version "2.3.1")
12331 (source
12332 (origin
12333 (method git-fetch)
12334 (uri (git-reference
12335 (url "https://github.com/joostkremers/parsebib.git")
12336 (commit version)))
12337 (file-name (git-file-name name version))
12338 (sha256
12339 (base32 "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"))))
12340 (build-system emacs-build-system)
12341 (home-page "https://github.com/joostkremers/parsebib")
12342 (synopsis "Library for parsing bib files")
12343 (description
12344 "This package provides an Emacs library for parsing bib files.")
12345 (license license:gpl3+)))
12346
12347 (define-public emacs-biblio
12348 (package
12349 (name "emacs-biblio")
12350 (version "0.2")
12351 (source
12352 (origin
12353 (method git-fetch)
12354 (uri (git-reference
12355 (url "https://github.com/cpitclaudel/biblio.el.git")
12356 (commit version)))
12357 (file-name (git-file-name name version))
12358 (sha256
12359 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
12360 (build-system emacs-build-system)
12361 (propagated-inputs
12362 `(("emacs-seq" ,emacs-seq)
12363 ("emacs-dash" ,emacs-dash)
12364 ("emacs-let-alist" ,emacs-let-alist)))
12365 (home-page "https://github.com/cpitclaudel/biblio.el")
12366 (synopsis "Browse and import bibliographic references")
12367 (description "This package provides an extensible Emacs package for
12368 browsing and fetching references.
12369
12370 @file{biblio.el} makes it easy to browse and gather bibliographic references
12371 and publications from various sources, by keywords or by DOI. References are
12372 automatically fetched from well-curated sources, and formatted as BibTeX.")
12373 (license license:gpl3+)))
12374
12375 (define-public emacs-helm-bibtex
12376 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
12377 (revision "1"))
12378 (package
12379 (name "emacs-helm-bibtex")
12380 (version (string-append "2.0.0" "-" revision "."
12381 (string-take commit 7)))
12382 (source
12383 (origin
12384 (method git-fetch)
12385 (uri (git-reference
12386 (url "https://github.com/tmalsburg/helm-bibtex.git")
12387 (commit commit)))
12388 (file-name (git-file-name name version))
12389 (sha256
12390 (base32
12391 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
12392 (build-system emacs-build-system)
12393 (propagated-inputs
12394 `(("emacs-helm" ,emacs-helm)
12395 ("emacs-parsebib" ,emacs-parsebib)
12396 ("emacs-s" ,emacs-s)
12397 ("emacs-dash" ,emacs-dash)
12398 ("emacs-f" ,emacs-f)
12399 ("emacs-biblio" ,emacs-biblio)
12400 ("emacs-ivy" ,emacs-ivy)))
12401 (home-page "https://github.com/tmalsburg/helm-bibtex")
12402 (synopsis "Bibliography manager based on Helm")
12403 (description "This package provides bibliography manager for Emacs,
12404 based on Helm and the bibtex-completion backend.
12405
12406 Key features:
12407
12408 @itemize
12409 @item Quick access to your bibliography from within Emacs
12410 @item Powerful search capabilities
12411 @item Provides instant search results as you type
12412 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
12413 @item Open the PDFs, URLs, or DOIs associated with an entry
12414 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
12415 BibTeX entries, or plain text references at point, attach PDFs to emails
12416 @item Support for note taking
12417 @item Quick access to online bibliographic databases such as Pubmed,
12418 arXiv, Google Scholar, Library of Congress, etc.
12419 @item Imports BibTeX entries from CrossRef and other sources.
12420 @end itemize\n")
12421 (license license:gpl3+))))
12422
12423 (define-public emacs-ewmctrl
12424 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
12425 (package
12426 (name "emacs-ewmctrl")
12427 (version (git-version "0.0.1" "1" commit))
12428 (source
12429 (origin
12430 (method git-fetch)
12431 (uri (git-reference
12432 (url "https://github.com/flexibeast/ewmctrl.git")
12433 (commit commit)))
12434 (file-name (git-file-name name version))
12435 (sha256
12436 (base32
12437 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
12438 (build-system emacs-build-system)
12439 (arguments
12440 '(#:phases
12441 (modify-phases %standard-phases
12442 (add-after 'unpack 'patch-ewmctrl
12443 ;; This build phase makes sure ‘ewmctrl’ looks
12444 ;; for ‘wmctrl’ in the right place.
12445 (lambda _
12446 (let ((file "ewmctrl.el"))
12447 (chmod file #o644)
12448 (emacs-substitute-sexps file
12449 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
12450 (inputs
12451 `(("wmctrl" ,wmctrl)))
12452 (home-page "https://github.com/flexibeast/ewmctrl")
12453 (synopsis "Emacs interface to @code{wmctrl}")
12454 (description "@code{ewmctrl} provides an Emacs interface to
12455 @code{wmctrl} command-line window-management program.")
12456 (license license:gpl3+))))
12457
12458 (define-public emacs-erc-image
12459 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
12460 (revision "1"))
12461 (package
12462 (name "emacs-erc-image")
12463 (version (git-version "0" revision commit))
12464 (source
12465 (origin
12466 (method git-fetch)
12467 (uri (git-reference
12468 (url "https://github.com/kidd/erc-image.el")
12469 (commit commit)))
12470 (file-name (git-file-name name version))
12471 (sha256
12472 (base32
12473 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
12474 (build-system emacs-build-system)
12475 (home-page "https://github.com/kidd/erc-image.el")
12476 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
12477 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
12478 and @code{erc-send-modify-hook} to download and show images.")
12479 (license license:gpl3+))))
12480
12481 (define-public emacs-helm-gtags
12482 (package
12483 (name "emacs-helm-gtags")
12484 (version "1.5.6")
12485 (source
12486 (origin
12487 (method git-fetch)
12488 (uri (git-reference
12489 (url "https://github.com/syohex/emacs-helm-gtags.git")
12490 (commit version)))
12491 (file-name (git-file-name name version))
12492 (sha256
12493 (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
12494 (build-system emacs-build-system)
12495 (propagated-inputs
12496 `(("emacs-helm" ,emacs-helm)))
12497 (home-page "https://github.com/syohex/emacs-helm-gtags")
12498 (synopsis "Emacs Helm interface to GNU Global")
12499 (description
12500 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
12501 (license license:gpl3+)))
12502
12503 (define-public emacs-list-utils
12504 (package
12505 (name "emacs-list-utils")
12506 (version "0.4.4")
12507 (source
12508 (origin
12509 (method git-fetch)
12510 (uri (git-reference
12511 (url "https://github.com/rolandwalker/list-utils.git")
12512 (commit (string-append "v" version))))
12513 (file-name (git-file-name name version))
12514 (sha256
12515 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
12516 (build-system emacs-build-system)
12517 (home-page "https://github.com/rolandwalker/list-utils")
12518 (synopsis "List-manipulation utility functions")
12519 (description "This package provides a list manipulation library for Emacs.")
12520 (license license:gpl3+)))
12521
12522 (define-public emacs-move-text
12523 (package
12524 (name "emacs-move-text")
12525 (version "2.0.8")
12526 (source
12527 (origin
12528 (method git-fetch)
12529 (uri (git-reference
12530 (url "https://github.com/emacsfodder/move-text.git")
12531 (commit version)))
12532 (file-name (git-file-name name version))
12533 (sha256
12534 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
12535 (build-system emacs-build-system)
12536 (home-page "https://github.com/emacsfodder/move-text")
12537 (synopsis "Move current line or region with M-up or M-down")
12538 (description "This package provide functions to move the current line
12539 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
12540 region instead.")
12541 (license license:gpl3+)))
12542
12543 (define-public emacs-validate
12544 (package
12545 (name "emacs-validate")
12546 (version "1.0.5")
12547 (source (origin
12548 (method url-fetch)
12549 (uri (string-append "https://github.com/Malabarba/validate.el"
12550 "/archive/" version ".tar.gz"))
12551 (file-name (string-append name "-" version ".tar.gz"))
12552 (sha256
12553 (base32
12554 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
12555 (build-system emacs-build-system)
12556 (home-page "https://github.com/Malabarba/validate.el")
12557 (synopsis "Emacs library for scheme validation")
12558 (description "This Emacs library provides two functions that perform
12559 schema validation.")
12560 (license license:gpl3+)))
12561
12562 (define-public emacs-rainbow-blocks
12563 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
12564 (package
12565 (name "emacs-rainbow-blocks")
12566 (version (git-version "1.0.0" "1" commit))
12567 (source (origin
12568 (method git-fetch)
12569 (uri (git-reference
12570 (url "https://github.com/istib/rainbow-blocks.git")
12571 (commit commit)))
12572 (file-name (git-file-name name version))
12573 (sha256
12574 (base32
12575 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
12576 (build-system emacs-build-system)
12577 (home-page "https://github.com/istib/rainbow-blocks")
12578 (synopsis "Highlight sexp blocks")
12579 (description "Rainbow-blocks is an Emacs mode that highlights blocks
12580 made of parentheses, brackets, and braces according to their depth. Each
12581 successive level is highlighted in a different color. This makes it easy to
12582 orient yourself in the code, and tell which statements are at a given level.")
12583 (license license:gpl3+))))
12584
12585 (define-public emacs-hierarchy
12586 (package
12587 (name "emacs-hierarchy")
12588 (version "0.7.0")
12589 (source
12590 (origin
12591 (method git-fetch)
12592 (uri (git-reference
12593 (url "https://github.com/DamienCassou/hierarchy.git")
12594 (commit (string-append "v" version))))
12595 (file-name (git-file-name name version))
12596 (sha256
12597 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
12598 (build-system emacs-build-system)
12599 (native-inputs
12600 `(("emacs-buttercup" ,emacs-buttercup)))
12601 (arguments
12602 `(#:tests? #t
12603 #:test-command '("buttercup" "-L" ".")))
12604 (home-page "https://github.com/DamienCassou/hierarchy")
12605 (synopsis "Library to create and display hierarchy structures")
12606 (description "This package provides an Emacs library to create, query,
12607 navigate and display hierarchy structures.")
12608 (license license:gpl3+)))
12609
12610 (define-public emacs-tree-mode
12611 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
12612 (revision "1"))
12613 (package
12614 (name "emacs-tree-mode")
12615 (version (string-append "0.0.1" "-" revision "."
12616 (string-take commit 7)))
12617 (source
12618 (origin
12619 (method git-fetch)
12620 (uri (git-reference
12621 (url "https://github.com/emacsorphanage/tree-mode.git")
12622 (commit commit)))
12623 (file-name (git-file-name name version))
12624 (sha256
12625 (base32
12626 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
12627 (build-system emacs-build-system)
12628 (home-page "https://github.com/emacsorphanage/tree-mode")
12629 (synopsis "Emacs mode to manage tree widgets")
12630 (description
12631 "This package provides an Emacs library to manage tree widgets.")
12632 (license license:gpl3+))))
12633
12634 (define-public emacs-md4rd
12635 (package
12636 (name "emacs-md4rd")
12637 (version "0.3.1")
12638 (source (origin
12639 (method git-fetch)
12640 (uri (git-reference
12641 (url "https://github.com/ahungry/md4rd.git")
12642 (commit version)))
12643 (file-name (git-file-name name version))
12644 (sha256
12645 (base32
12646 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
12647 (propagated-inputs
12648 `(("emacs-hierarchy" ,emacs-hierarchy)
12649 ("emacs-request" ,emacs-request)
12650 ("emacs-dash" ,emacs-dash)
12651 ("emacs-s" ,emacs-s)
12652 ("emacs-tree-mode" ,emacs-tree-mode)))
12653 (build-system emacs-build-system)
12654 (home-page "https://github.com/ahungry/md4rd")
12655 (synopsis "Emacs Mode for Reddit")
12656 (description
12657 "This package allows to read Reddit from within Emacs interactively.")
12658 (license license:gpl3+)))
12659
12660 (define-public emacs-pulseaudio-control
12661 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
12662 (revision "3"))
12663 (package
12664 (name "emacs-pulseaudio-control")
12665 (version (git-version "0.0.1" revision commit))
12666 (source
12667 (origin
12668 (method git-fetch)
12669 (uri (git-reference
12670 (url "https://github.com/flexibeast/pulseaudio-control.git")
12671 (commit commit)))
12672 (file-name (git-file-name name version))
12673 (sha256
12674 (base32
12675 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
12676 (build-system emacs-build-system)
12677 (arguments
12678 '(#:phases (modify-phases %standard-phases
12679 (add-after 'unpack 'patch-file-name
12680 (lambda* (#:key inputs #:allow-other-keys)
12681 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
12682 (chmod "pulseaudio-control.el" #o600)
12683 (emacs-substitute-variables "pulseaudio-control.el"
12684 ("pulseaudio-control-pactl-path"
12685 (string-append pulseaudio "/bin/pactl")))
12686 #t))))))
12687 (inputs `(("pulseaudio" ,pulseaudio)))
12688 (home-page "https://github.com/flexibeast/pulseaudio-control")
12689 (synopsis "Control @code{pulseaudio} from Emacs")
12690 (description
12691 "This package allows to control @code{pulseaudio} from Emacs.")
12692 (license license:gpl3+))))
12693
12694 (define-public emacs-datetime
12695 (package
12696 (name "emacs-datetime")
12697 (version "0.3")
12698 (source
12699 (origin
12700 (method git-fetch)
12701 (uri (git-reference
12702 (url "https://github.com/doublep/datetime.git")
12703 (commit version)))
12704 (file-name (git-file-name name version))
12705 (sha256
12706 (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
12707 (build-system emacs-build-system)
12708 (home-page "https://github.com/doublep/datetime/")
12709 (synopsis "Library to work with dates in Emacs")
12710 (description "Parsing, formatting, matching and recoding
12711 timestamps and date-time format strings library for Emacs.")
12712 (license license:gpl3+)))
12713
12714 (define-public emacs-org-mind-map
12715 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
12716 (revision "1"))
12717 (package
12718 (name "emacs-org-mind-map")
12719 (version (string-append "0.0.1" "-" revision "."
12720 (string-take commit 7)))
12721 (source
12722 (origin
12723 (method git-fetch)
12724 (uri (git-reference
12725 (url "https://github.com/theodorewiles/org-mind-map.git")
12726 (commit commit)))
12727 (file-name (git-file-name name version))
12728 (sha256
12729 (base32
12730 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
12731 (propagated-inputs
12732 `(("emacs-dash" ,emacs-dash)))
12733 (build-system emacs-build-system)
12734 (home-page "https://github.com/theodorewiles/org-mind-map")
12735 (synopsis "Create Graphviz directed graphs from Org files")
12736 (description
12737 "This package creates Graphviz directed graphs from Org files.")
12738 (license license:gpl3+))))
12739
12740 (define-public emacs-npm-mode
12741 (package
12742 (name "emacs-npm-mode")
12743 (version "0.6.0")
12744 (source
12745 (origin
12746 (method git-fetch)
12747 (uri (git-reference
12748 (url "https://github.com/mojochao/npm-mode.git")
12749 (commit version)))
12750 (file-name (git-file-name name version))
12751 (sha256
12752 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
12753 (build-system emacs-build-system)
12754 (home-page "https://github.com/mojochao/npm-mode")
12755 (synopsis "Minor mode for working with @code{npm} projects")
12756 (description
12757 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
12758 (license license:gpl3+)))
12759
12760 (define-public emacs-seq
12761 (package
12762 (name "emacs-seq")
12763 (version "2.20")
12764 (source
12765 (origin
12766 (method url-fetch)
12767 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
12768 (sha256
12769 (base32
12770 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
12771 (build-system emacs-build-system)
12772 (home-page "http://elpa.gnu.org/packages/seq.html")
12773 (synopsis "Sequence manipulation functions")
12774 (description "Sequence-manipulation functions that complement basic
12775 functions provided by @file{subr.el}.")
12776 (license license:gpl3+)))
12777
12778 (define-public emacs-itail
12779 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
12780 (revision "1"))
12781 (package
12782 (name "emacs-itail")
12783 (version (string-append "0.0.1" "-" revision "."
12784 (string-take commit 7)))
12785 (source
12786 (origin
12787 (method git-fetch)
12788 (uri (git-reference
12789 (url "https://github.com/re5et/itail.git")
12790 (commit commit)))
12791 (file-name (git-file-name name version))
12792 (sha256
12793 (base32
12794 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
12795 (build-system emacs-build-system)
12796 (home-page "https://github.com/re5et/itail")
12797 (synopsis "Interactive @code{tail} Emacs mode")
12798 (description "@code{itail} provides interactive @code{tail} mode
12799 that allows you to filter the tail with unix pipes and highlight the
12800 contents of the tailed file. Works locally or on remote files using
12801 tramp.")
12802 (license license:gpl3+))))
12803
12804 (define-public emacs-loop
12805 (package
12806 (name "emacs-loop")
12807 (version "1.3")
12808 (source
12809 (origin
12810 (method git-fetch)
12811 (uri (git-reference
12812 (url "https://github.com/Wilfred/loop.el.git")
12813 (commit version)))
12814 (file-name (git-file-name name version))
12815 (sha256
12816 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
12817 (build-system emacs-build-system)
12818 (native-inputs
12819 `(("emacs-ert-runner" ,emacs-ert-runner)
12820 ("emacs-undercover" ,emacs-undercover)))
12821 (arguments
12822 `(#:tests? #t
12823 #:test-command '("ert-runner")))
12824 (home-page "https://github.com/Wilfred/loop.el")
12825 (synopsis "Imperative loop structures for Emacs")
12826 (description "Loop structures familiar to users of other languages. This
12827 library adds a selection of popular loop structures as well as break and
12828 continue.")
12829 (license license:gpl3+)))
12830
12831 (define-public emacs-elisp-refs
12832 (package
12833 (name "emacs-elisp-refs")
12834 (version "1.3")
12835 (source
12836 (origin
12837 (method git-fetch)
12838 (uri (git-reference
12839 (url "https://github.com/Wilfred/elisp-refs.git")
12840 (commit version)))
12841 (file-name (git-file-name name version))
12842 (sha256
12843 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
12844 (build-system emacs-build-system)
12845 (propagated-inputs
12846 `(("emacs-dash" ,emacs-dash)
12847 ("emacs-f" ,emacs-f)
12848 ("emacs-list-utils" ,emacs-list-utils)
12849 ("emacs-loop" ,emacs-loop)
12850 ("emacs-s" ,emacs-s)
12851 ("emacs-shut-up" ,emacs-shut-up)))
12852 (native-inputs
12853 `(("emacs-ert-runner" ,emacs-ert-runner)
12854 ("emacs-undercover" ,emacs-undercover)))
12855 (arguments
12856 `(#:tests? #t
12857 #:test-command '("ert-runner")))
12858 (home-page "https://github.com/Wilfred/elisp-refs")
12859 (synopsis "Find callers of elisp functions or macros")
12860 (description "Find references to functions, macros or variables. Unlike a
12861 dumb text search, @code{elisp-refs} actually parses the code, so it's never
12862 confused by comments or @code{foo-bar} matching @code{foo}.")
12863 (license license:gpl3+)))
12864
12865 (define-public emacs-crux
12866 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
12867 (revision "2"))
12868 (package
12869 (name "emacs-crux")
12870 (version (git-version "0.3.0" revision commit))
12871 (source
12872 (origin
12873 (method git-fetch)
12874 (uri (git-reference
12875 (url "https://github.com/bbatsov/crux.git")
12876 (commit commit)))
12877 (file-name (git-file-name name version))
12878 (sha256
12879 (base32
12880 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
12881 (build-system emacs-build-system)
12882 (home-page "https://github.com/bbatsov/crux")
12883 (synopsis "Collection of useful functions for Emacs")
12884 (description
12885 "@code{crux} provides a collection of useful functions for Emacs.")
12886 (license license:gpl3+))))
12887
12888 (define-public emacs-edit-server
12889 (package
12890 (name "emacs-edit-server")
12891 (version "1.13")
12892 (source
12893 (origin
12894 (method git-fetch)
12895 (uri (git-reference
12896 (url "https://github.com/stsquad/emacs_chrome.git")
12897 (commit (string-append "v" version))))
12898 (file-name (git-file-name name version))
12899 (sha256
12900 (base32 "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"))))
12901 (build-system emacs-build-system)
12902 (arguments
12903 `(#:phases
12904 (modify-phases %standard-phases
12905 (add-after 'unpack 'chdir-elisp
12906 ;; Elisp directory is not in root of the source.
12907 (lambda _
12908 (chdir "servers"))))))
12909 (home-page "https://github.com/stsquad/emacs_chrome")
12910 (synopsis "Server that responds to edit requests from Chromium")
12911 (description
12912 "This package provides an edit server to respond to requests from Emacs.")
12913 (license license:gpl3+)))
12914
12915 (define-public emacs-m-buffer-el
12916 (package
12917 (name "emacs-m-buffer-el")
12918 (version "0.15")
12919 (source
12920 (origin
12921 (method url-fetch)
12922 (uri (string-append "https://github.com/phillord/m-buffer-el"
12923 "/archive/" "v" version ".tar.gz"))
12924 (file-name (string-append name "-" version ".tar.gz"))
12925 (sha256
12926 (base32
12927 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
12928 (arguments
12929 `(#:phases
12930 (modify-phases %standard-phases
12931 (add-before 'install 'check
12932 (lambda* (#:key inputs #:allow-other-keys)
12933 (invoke "emacs" "--batch" "-L" "."
12934 "-l" "test/m-buffer-test.el"
12935 "-l" "test/m-buffer-at-test.el"
12936 "-f" "ert-run-tests-batch-and-exit"))))))
12937 (build-system emacs-build-system)
12938 (home-page "https://github.com/phillord/m-buffer-el")
12939 (synopsis "List oriented buffer operations for Emacs")
12940 (description "@code{m-buffer} provides a set of list-orientated functions
12941 for operating over the contents of Emacs buffers.")
12942 (license license:gpl3+)))
12943
12944 (define-public emacs-let-alist
12945 (package
12946 (name "emacs-let-alist")
12947 (version "1.0.6")
12948 (source
12949 (origin
12950 (method url-fetch)
12951 (uri (string-append
12952 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
12953 (sha256
12954 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
12955 (build-system emacs-build-system)
12956 (home-page "https://elpa.gnu.org/packages/let-alist.html")
12957 (synopsis "Easily let-bind values of an assoc-list by their names")
12958 (description "This package offers a single macro, @code{let-alist}. This
12959 macro takes a first argument (whose value must be an alist) and a body.")
12960 (license license:gpl3+)))
12961
12962 (define-public emacs-esup
12963 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
12964 (revision "1"))
12965 (package
12966 (name "emacs-esup")
12967 (version (string-append "0.6" "-" revision "."
12968 (string-take commit 7)))
12969 (source
12970 (origin
12971 (method git-fetch)
12972 (uri (git-reference
12973 (url "https://github.com/jschaf/esup.git")
12974 (commit commit)))
12975 (file-name (git-file-name name version))
12976 (sha256
12977 (base32
12978 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
12979 ;; TODO: Add tests
12980 (build-system emacs-build-system)
12981 (home-page "https://github.com/jschaf/esup")
12982 (synopsis "Emacs start up profiler")
12983 (description "Benchmark Emacs Startup time without ever leaving
12984 your Emacs.")
12985 (license license:gpl2+))))
12986
12987 (define-public emacs-restart-emacs
12988 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
12989 (revision "1"))
12990 (package
12991 (name "emacs-restart-emacs")
12992 (version (git-version "0.1.1" revision commit))
12993 (source
12994 (origin
12995 (method git-fetch)
12996 (uri (git-reference
12997 (url "https://github.com/iqbalansari/restart-emacs.git")
12998 (commit commit)))
12999 (file-name (git-file-name name version))
13000 (sha256
13001 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
13002 (build-system emacs-build-system)
13003 (home-page "https://github.com/iqbalansari/restart-emacs")
13004 (synopsis "Restart Emacs from within Emacs")
13005 (description "This package provides a simple command to restart Emacs from
13006 within Emacs.")
13007 (license license:gpl3+))))
13008
13009 (define-public emacs-sourcemap
13010 (package
13011 (name "emacs-sourcemap")
13012 (version "0.03")
13013 (source
13014 (origin
13015 (method git-fetch)
13016 (uri (git-reference
13017 (url "https://github.com/syohex/emacs-sourcemap.git")
13018 (commit version)))
13019 (file-name (git-file-name name version))
13020 (sha256
13021 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
13022 (build-system emacs-build-system)
13023 (home-page "https://github.com/syohex/emacs-sourcemap")
13024 (synopsis "Sourcemap parser")
13025 (description "Sourcemap parser")
13026 (license license:gpl3+)))
13027
13028 (define-public emacs-macrostep
13029 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
13030 (package
13031 (name "emacs-macrostep")
13032 (version (git-version "0.9" "1" commit))
13033 (source (origin
13034 (method git-fetch)
13035 (uri (git-reference
13036 (url "https://github.com/joddie/macrostep.git")
13037 (commit commit)))
13038 (file-name (git-file-name name version))
13039 (sha256
13040 (base32
13041 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
13042 (build-system emacs-build-system)
13043 (arguments
13044 '(#:phases
13045 (modify-phases %standard-phases
13046 (add-before 'check 'remove-test
13047 ;; Fails because of requirement ‘/bin/sh’.
13048 (lambda _
13049 (let ((file "macrostep-test.el"))
13050 (chmod file #o644)
13051 (emacs-batch-edit-file file
13052 `(progn (progn (goto-char (point-min))
13053 (re-search-forward
13054 "(ert-deftest macrostep-expand-c-macros")
13055 (beginning-of-line)
13056 (kill-sexp))
13057 (basic-save-buffer))))))
13058 (add-before 'install 'check
13059 (lambda _
13060 (invoke "emacs" "--batch" "-L" "."
13061 "-l" "macrostep-test.el"
13062 "-f" "ert-run-tests-batch-and-exit"))))))
13063 (home-page "https://github.com/joddie/macrostep")
13064 (synopsis "Interactive macro-expander for Emacs")
13065 (description "@code{macrostep} is an Emacs minor mode for interactively
13066 stepping through the expansion of macros in Emacs Lisp source code. It lets
13067 you see exactly what happens at each step of the expansion process by
13068 pretty-printing the expanded forms inline in the source buffer, which is
13069 temporarily read-only while macro expansions are visible. You can expand and
13070 collapse macro forms one step at a time, and evaluate or instrument the
13071 expansions for debugging with Edebug as normal (but see “Bugs and known
13072 limitations”, below). Single-stepping through the expansion is particularly
13073 useful for debugging macros that expand into another macro form. These can be
13074 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
13075 until the top-level form is no longer a macro call.")
13076 (license license:gpl3+))))
13077
13078 (define-public emacs-parent-mode
13079 (package
13080 (name "emacs-parent-mode")
13081 (version "2.3")
13082 (source
13083 (origin
13084 (method git-fetch)
13085 (uri (git-reference
13086 (url "https://github.com/Fanael/parent-mode.git")
13087 (commit version)))
13088 (file-name (git-file-name name version))
13089 (sha256
13090 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
13091 (build-system emacs-build-system)
13092 (home-page "https://github.com/Fanael/parent-mode")
13093 (synopsis "Get major mode's parent modes")
13094 (description "Get major mode's parent modes")
13095 (license license:gpl3+)))
13096
13097 (define-public emacs-lacarte
13098 (package
13099 (name "emacs-lacarte")
13100 (version "0.1")
13101 (source (origin
13102 (method url-fetch)
13103 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
13104 (sha256
13105 (base32
13106 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
13107 (build-system emacs-build-system)
13108 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
13109 (synopsis "Execute menu items as commands, with completion")
13110 (description "Execute menu items as commands, with completion.")
13111 (license license:gpl3)))
13112
13113 (define-public emacs-isearch-prop
13114 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
13115 (revision "2"))
13116 (package
13117 (name "emacs-isearch-prop")
13118 (version (git-version "0" revision commit))
13119 (source
13120 (origin
13121 (method git-fetch)
13122 (uri (git-reference
13123 (url "https://github.com/emacsmirror/isearch-prop.git")
13124 (commit commit)))
13125 (file-name (git-file-name name version))
13126 (sha256
13127 (base32
13128 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
13129 (build-system emacs-build-system)
13130 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
13131 (synopsis "Extensions to @code{isearch.el}")
13132 (description "The Emacs library @code{isearch-prop.el} lets you search within
13133 contexts. You can limit incremental search to a set of zones of
13134 buffer text, search contexts that in effect constitute a multi-region.
13135 These zones can be defined in various ways, including some ways
13136 provided specially by this library.")
13137 (license license:gpl3+))))
13138
13139 (define-public emacs-company-lua
13140 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
13141 (revision "2"))
13142 (package
13143 (name "emacs-company-lua")
13144 (version (git-version "0.1" "2" commit))
13145 (source
13146 (origin
13147 (method git-fetch)
13148 (uri (git-reference
13149 (url "https://github.com/ptrv/company-lua.git")
13150 (commit commit)))
13151 (file-name (git-file-name name version))
13152 (sha256
13153 (base32
13154 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
13155 (build-system emacs-build-system)
13156 (propagated-inputs
13157 `(("emacs-company" ,emacs-company)
13158 ("emacs-s" ,emacs-s)
13159 ("emacs-f" ,emacs-f)
13160 ("emacs-lua-mode" ,emacs-lua-mode)))
13161 (arguments
13162 `(#:include (cons* "^lua\\/" %default-include)))
13163 (home-page "https://github.com/ptrv/company-lua")
13164 (synopsis "Company backend for Lua")
13165 (description
13166 "This package provides Company backend for Lua programming language.")
13167 (license license:gpl3+))))
13168
13169 (define-public emacs-beginend
13170 (package
13171 (name "emacs-beginend")
13172 (version "2.0.0")
13173 (source
13174 (origin
13175 (method git-fetch)
13176 (uri (git-reference
13177 (url "https://github.com/DamienCassou/beginend.git")
13178 (commit (string-append "v" version))))
13179 (file-name (git-file-name name version))
13180 (sha256
13181 (base32 "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"))))
13182 ;; TODO: Run tests.
13183 (build-system emacs-build-system)
13184 (inputs
13185 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
13186 (home-page "https://github.com/DamienCassou/beginend")
13187 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
13188 (description "@code{beginend} redefines @code{M-<} and @code{M->}
13189 keybindings for Emacs modes so that point moves to meaningful
13190 locations. Redefined keys are still accessible by pressing the same
13191 key again.")
13192 (license license:gpl3+)))
13193
13194 (define-public emacs-mbsync
13195 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
13196 (revision "4"))
13197 (package
13198 (name "emacs-mbsync")
13199 (version (git-version "0.1.2" revision commit))
13200 (source
13201 (origin
13202 (method git-fetch)
13203 (uri (git-reference
13204 (url "https://github.com/dimitri/mbsync-el.git")
13205 (commit commit)))
13206 (file-name (git-file-name name version))
13207 (sha256
13208 (base32
13209 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
13210 (build-system emacs-build-system)
13211 (home-page "https://github.com/dimitri/mbsync-el")
13212 (synopsis "Interface to mbsync for Emacs")
13213 (description "This package allows to call the @code{mbsync} from
13214 within Emacs.")
13215 (license license:gpl3+))))
13216
13217 (define-public emacs-ibuffer-projectile
13218 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
13219 (revision "2"))
13220 (package
13221 (name "emacs-ibuffer-projectile")
13222 (version (git-version "0.2" revision commit))
13223 (source
13224 (origin
13225 (method git-fetch)
13226 (uri (git-reference
13227 (url "https://github.com/purcell/ibuffer-projectile.git")
13228 (commit commit)))
13229 (file-name (git-file-name name version))
13230 (sha256
13231 (base32
13232 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
13233 (build-system emacs-build-system)
13234 (propagated-inputs
13235 `(("emacs-projectile" ,emacs-projectile)))
13236 (home-page "https://github.com/purcell/ibuffer-projectile")
13237 (synopsis "Group ibuffer's list by projectile root")
13238 (description "Adds functionality to Emacs @code{ibuffer} for
13239 grouping buffers by their projectile root directory.")
13240 (license license:gpl3+))))
13241
13242 (define-public emacs-helm-mode-manager
13243 (package
13244 (name "emacs-helm-mode-manager")
13245 (version "1.0.0")
13246 (source
13247 (origin
13248 (method url-fetch)
13249 (uri (string-append "https://github.com/istib/helm-mode-manager/"
13250 "archive/" version ".tar.gz"))
13251 (file-name (string-append name "-" version ".tar.gz"))
13252 (sha256
13253 (base32
13254 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
13255 (build-system emacs-build-system)
13256 (propagated-inputs
13257 `(("emacs-helm" ,emacs-helm)))
13258 (home-page "https://github.com/istib/helm-mode-manager/")
13259 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
13260 (description "This package provides a Helm interface for toggling Emacs
13261 major or minor mode.
13262
13263 @itemize
13264 @item @code{helm-switch-major-mode} list of all major modes
13265 @item @code{helm-enable-minor-mode} list of all inactive minor modes
13266 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
13267 @end itemize\n
13268
13269 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
13270 documentation.")
13271 (license license:gpl3+)))
13272
13273 (define-public emacs-hy-mode
13274 (package
13275 (name "emacs-hy-mode")
13276 (version "1.0.3")
13277 (source
13278 (origin
13279 (method git-fetch)
13280 (uri (git-reference
13281 (url "https://github.com/hylang/hy-mode.git")
13282 (commit (string-append "v" version))))
13283 (file-name (git-file-name name version))
13284 (sha256
13285 (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
13286 (build-system emacs-build-system)
13287 (propagated-inputs
13288 `(("emacs-dash" ,emacs-dash)
13289 ("emacs-s" ,emacs-s)))
13290 (home-page "https://github.com/hylang/hy-mode")
13291 (synopsis "Major mode for Hylang")
13292 (description "This package provides a major mode for Hylang.")
13293 (license license:gpl3+)))
13294
13295 (define-public emacs-web-beautify
13296 (package
13297 (name "emacs-web-beautify")
13298 (version "0.3.2")
13299 (source
13300 (origin
13301 (method git-fetch)
13302 (uri (git-reference
13303 (url "https://github.com/yasuyk/web-beautify.git")
13304 (commit version)))
13305 (file-name (git-file-name name version))
13306 (sha256
13307 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
13308 (build-system emacs-build-system)
13309 (home-page "https://github.com/yasuyk/web-beautify")
13310 (synopsis "Format HTML, CSS and JavaScript, JSON")
13311 (description "This package provides an Emacs functions to format HTML,
13312 CSS, JavaScript, JSON.")
13313 (license license:gpl3+)))
13314
13315 (define-public emacs-helm-shell-history
13316 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
13317 (package
13318 (name "emacs-helm-shell-history")
13319 (version (git-version "0.1" "1" commit))
13320 (source
13321 (origin
13322 (method git-fetch)
13323 (uri (git-reference
13324 (url "https://github.com/yuutayamada/helm-shell-history.git")
13325 (commit commit)))
13326 (file-name (git-file-name name version))
13327 (sha256
13328 (base32
13329 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
13330 (build-system emacs-build-system)
13331 (arguments
13332 '(#:phases
13333 (modify-phases %standard-phases
13334 (add-before 'check 'patch-helm-shell-history-file
13335 (lambda _
13336 (let ((file "helm-shell-history.el"))
13337 (chmod file #o644)
13338 (emacs-substitute-sexps file
13339 ("(defvar helm-shell-history-file"
13340 `(expand-file-name "~/.bash_history"))))
13341 #t)))))
13342 (propagated-inputs
13343 `(("emacs-helm" ,emacs-helm)))
13344 (home-page "https://github.com/yuutayamada/helm-shell-history")
13345 (synopsis "Find shell history with Emacs Helm")
13346 (description "This package provides an Emacs Helm interface to search
13347 throw a shell history.")
13348 (license license:gpl3+))))
13349
13350 (define-public emacs-discover-my-major
13351 (package
13352 (name "emacs-discover-my-major")
13353 (version "1.0")
13354 (source
13355 (origin
13356 (method url-fetch)
13357 (uri
13358 (string-append "https://github.com/steckerhalter/discover-my-major"
13359 "/archive/" version ".tar.gz"))
13360 (file-name (string-append name "-" version ".tar.gz"))
13361 (sha256
13362 (base32
13363 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
13364 (build-system emacs-build-system)
13365 (propagated-inputs
13366 `(("emacs-makey" ,emacs-makey)))
13367 (home-page "https://github.com/steckerhalter/discover-my-major")
13368 (synopsis "Discover key bindings for the current Emacs major mode")
13369 (description "This package provides allows to discover key bindings and
13370 their meaning for the current Emacs major-mode.")
13371 (license license:gpl3+)))
13372
13373 (define-public emacs-org-ref
13374 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
13375 (revision "1"))
13376 (package
13377 (name "emacs-org-ref")
13378 (version (string-append "1.1.1" "-" revision "."
13379 (string-take commit 7)))
13380 (source
13381 (origin
13382 (method git-fetch)
13383 (uri (git-reference
13384 (url "https://github.com/jkitchin/org-ref.git")
13385 (commit commit)))
13386 (file-name (git-file-name name version))
13387 (sha256
13388 (base32
13389 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
13390 (build-system emacs-build-system)
13391 (propagated-inputs
13392 `(("emacs-dash" ,emacs-dash)
13393 ("emacs-helm" ,emacs-helm)
13394 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
13395 ("emacs-ivy" ,emacs-ivy)
13396 ("emacs-hydra" ,emacs-hydra)
13397 ("emacs-key-chord" ,emacs-key-chord)
13398 ("emacs-s" ,emacs-s)
13399 ("emacs-f" ,emacs-f)
13400 ("emacs-pdf-tools" ,emacs-pdf-tools)))
13401 (home-page "https://github.com/jkitchin/org-ref")
13402 (synopsis "Citations, cross-references and bibliographies in org-mode")
13403 (description
13404 "Lisp code to setup bibliography, cite, ref and label org-mode links.
13405 Also sets up reftex and helm for org-mode citations. The links are
13406 clickable and do things that are useful.
13407
13408 The default setup uses helm-bibtex.
13409
13410 You should really read org-ref.org in this package for details.")
13411 (license license:gpl3+))))
13412
13413 ;; This project is unmaintained. Please use emacs-org-re-reveal instead.
13414 (define-public emacs-org-reveal
13415 (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
13416 (package
13417 (name "emacs-org-reveal")
13418 (version (git-version "0.1" "3" commit))
13419 (source (origin
13420 (method git-fetch)
13421 (uri (git-reference
13422 (url "https://github.com/yjwen/org-reveal.git")
13423 (commit commit)))
13424 (file-name (git-file-name name version))
13425 (sha256
13426 (base32
13427 "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
13428 (build-system emacs-build-system)
13429 (home-page "https://github.com/yjwen/org-reveal")
13430 (synopsis "Org and Reveal.js powered HTML presentation tool")
13431 (description "Org-Reveal is a command@{org-mode} extension that allows
13432 to create beautiful presentations (slides) with 3D effects from simple but
13433 powerful Org contents.")
13434 (license license:gpl3+))))
13435
13436 (define-public emacs-org-re-reveal
13437 (package
13438 (name "emacs-org-re-reveal")
13439 (version "2.5.1")
13440 (source (origin
13441 (method git-fetch)
13442 (uri (git-reference
13443 (url "https://gitlab.com/oer/org-re-reveal.git")
13444 (commit version)))
13445 (file-name (git-file-name name version))
13446 (sha256
13447 (base32
13448 "1zbz6hbddxbb264ibmhc04cmnpk17kb50jpn5l8878q4hxw5wwy2"))))
13449 (build-system emacs-build-system)
13450 (propagated-inputs
13451 `(("emacs-htmlize" ,emacs-htmlize)
13452 ("emacs-org" ,emacs-org)))
13453 (home-page "https://gitlab.com/oer/org-re-reveal")
13454 (synopsis "Build HTML presentations with reveal.js from Org source files")
13455 (description "This project started as fork of org-reveal. It provides an
13456 export back-end for HTML presentations with reveal.js from Org mode source
13457 files.")
13458 (license license:gpl3+)))
13459
13460 (define-public emacs-add-hooks
13461 (package
13462 (name "emacs-add-hooks")
13463 (version "3.1.1")
13464 (source
13465 (origin
13466 (method git-fetch)
13467 (uri (git-reference
13468 (url "https://github.com/nickmccurdy/add-hooks.git")
13469 (commit version)))
13470 (file-name (git-file-name name version))
13471 (sha256
13472 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
13473 (build-system emacs-build-system)
13474 (home-page "https://github.com/nickmccurdy/add-hooks/")
13475 (synopsis "Emacs function for setting multiple hooks")
13476 (description "This package provides a @code{add-hooks} function tidies up
13477 duplicate hook and function names further into a single declarative call.")
13478 (license license:gpl3+)))
13479
13480 (define-public emacs-fancy-narrow
13481 (package
13482 (name "emacs-fancy-narrow")
13483 (version "0.9.5")
13484 (source
13485 (origin
13486 (method git-fetch)
13487 (uri (git-reference
13488 (url "https://github.com/Malabarba/fancy-narrow.git")
13489 (commit version)))
13490 (file-name (git-file-name name version))
13491 (sha256
13492 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
13493 (build-system emacs-build-system)
13494 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
13495 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
13496 (description
13497 "Unlike @code{narrow-to-region}, which completely hides text outside
13498 the narrowed region, this package simply de-emphasizes the text, makes it
13499 read-only, and makes it unreachable. This leads to a much more natural
13500 feeling where the region stays static (instead of being brutally moved to a
13501 blank slate) and is clearly highlighted with respect to the rest of the
13502 buffer.")
13503 (license license:gpl2+)))
13504
13505 (define-public emacs-know-your-http-well
13506 (package
13507 (name "emacs-know-your-http-well")
13508 (version "0.5.0")
13509 (source
13510 (origin
13511 (method git-fetch)
13512 (uri (git-reference
13513 (url "https://github.com/for-GET/know-your-http-well.git")
13514 (commit (string-append "v" version))))
13515 (file-name (git-file-name name version))
13516 (sha256
13517 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
13518 (arguments
13519 `(#:phases
13520 (modify-phases %standard-phases
13521 (add-after 'unpack 'install-json-files
13522 (lambda* (#:key outputs #:allow-other-keys)
13523 (for-each (lambda (directory)
13524 (copy-recursively directory
13525 (string-append
13526 (assoc-ref outputs "out")
13527 directory)))
13528 '("js" "json"))))
13529 (add-after 'unpack 'chdir-elisp
13530 ;; Elisp directory is not in root of the source.
13531 (lambda _
13532 (chdir "emacs"))))))
13533 (build-system emacs-build-system)
13534 (home-page "https://github.com/for-GET/know-your-http-well")
13535 (synopsis "Meaning of HTTP headers codes")
13536 (description "Meaning of HTTP headers codes.")
13537 (license license:gpl3+)))
13538
13539 (define-public emacs-navi-mode
13540 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
13541 (package
13542 (name "emacs-navi-mode")
13543 (version (git-version "2.0" "1" commit))
13544 (source
13545 (origin
13546 (method git-fetch)
13547 (uri (git-reference
13548 (url "https://github.com/alphapapa/navi.git")
13549 (commit commit)))
13550 (file-name (git-file-name name version))
13551 (sha256
13552 (base32
13553 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
13554 (build-system emacs-build-system)
13555 (propagated-inputs
13556 `(("emacs-outshine" ,emacs-outshine)
13557 ("emacs-outorg" ,emacs-outorg)))
13558 (home-page "https://github.com/alphapapa/navi")
13559 (synopsis "Emacs major-mode for easy buffer-navigation")
13560 (description
13561 "This package provides an Emacs major-mode for easy buffer-navigation")
13562 (license license:gpl3+))))
13563
13564 (define-public emacs-download-region
13565 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
13566 (revision "1"))
13567 (package
13568 (name "emacs-download-region")
13569 (version (string-append "0.0.1" "-" revision "."
13570 (string-take commit 7)))
13571 (source
13572 (origin
13573 (method git-fetch)
13574 (uri (git-reference
13575 (url "https://github.com/zk-phi/download-region.git")
13576 (commit commit)))
13577 (file-name (git-file-name name version))
13578 (sha256
13579 (base32
13580 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
13581 (build-system emacs-build-system)
13582 (home-page "https://github.com/zk-phi/download-region")
13583 (synopsis "In buffer download manager for Emacs")
13584 (description "@code{download-region} provides in buffer
13585 downloading manager for Emacs.")
13586 (license license:gpl3+))))
13587
13588 (define-public emacs-helpful
13589 (package
13590 (name "emacs-helpful")
13591 (version "0.17")
13592 (source
13593 (origin
13594 (method git-fetch)
13595 (uri (git-reference
13596 (url "https://github.com/Wilfred/helpful.git")
13597 (commit version)))
13598 (file-name (git-file-name name version))
13599 (sha256
13600 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
13601 (build-system emacs-build-system)
13602 (propagated-inputs
13603 `(("emacs-elisp-refs" ,emacs-elisp-refs)
13604 ("emacs-dash" ,emacs-dash)
13605 ("emacs-s" ,emacs-s)
13606 ("emacs-f" ,emacs-f)
13607 ("emacs-shut-up" ,emacs-shut-up)))
13608 (native-inputs
13609 `(("emacs-ert-runner" ,emacs-ert-runner)
13610 ("emacs-undercover" ,emacs-undercover)))
13611 (arguments
13612 `(#:tests? #t
13613 #:test-command '("ert-runner")))
13614 (home-page "https://github.com/Wilfred/helpful")
13615 (synopsis "More contextual information in Emacs help")
13616 (description "@code{helpful} is an alternative to the built-in Emacs help
13617 that provides much more contextual information.
13618
13619 @itemize
13620 @item Show the source code for interactively defined functions (unlike the
13621 built-in Help).
13622 @item Fall back to the raw sexp if no source is available.
13623 @item Show where a function is being called.
13624 @item Docstrings will Highlight the summary (the first sentence), include
13625 cross-references, hide superfluous puncuation.
13626 @item Show you the properties that have been applied to the current
13627 symbol. This provides visibility of features like edebug or byte-code
13628 optimisation.
13629 @item Provide a separate @code{helpful-command} function to view interactive
13630 functions.
13631 @item Display any keybindings that apply to interactive functions.
13632 @item Trace, disassemble functions from inside Helpful. This is discoverable
13633 and doesn't require memorisation of commands.
13634 @end itemize\n")
13635 (license license:gpl3+)))
13636
13637 (define-public emacs-logview
13638 (package
13639 (name "emacs-logview")
13640 (version "0.9")
13641 (source
13642 (origin
13643 (method git-fetch)
13644 (uri (git-reference
13645 (url "https://github.com/doublep/logview.git")
13646 (commit version)))
13647 (file-name (git-file-name name version))
13648 (sha256
13649 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
13650 (propagated-inputs
13651 `(("emacs-datetime" ,emacs-datetime)))
13652 (build-system emacs-build-system)
13653 (home-page "https://github.com/doublep/logview/")
13654 (synopsis "Emacs mode for viewing log files")
13655 (description "@code{logview} provides an Emacs mode to view log files.")
13656 (license license:gpl3+)))
13657
13658 (define-public emacs-suggest
13659 (package
13660 (name "emacs-suggest")
13661 (version "0.7")
13662 (home-page "https://github.com/Wilfred/suggest.el")
13663 (source
13664 (origin
13665 (method git-fetch)
13666 (uri (git-reference
13667 (url home-page)
13668 (commit version)))
13669 (file-name (git-file-name name version))
13670 (sha256
13671 (base32
13672 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
13673 (build-system emacs-build-system)
13674 (propagated-inputs
13675 `(("emacs-loop" ,emacs-loop)
13676 ("emacs-dash" ,emacs-dash)
13677 ("emacs-s" ,emacs-s)
13678 ("emacs-f" ,emacs-f)
13679 ("emacs-spinner" ,emacs-spinner)
13680 ("emacs-shut-up" ,emacs-shut-up)))
13681 (native-inputs
13682 `(("emacs-ert-runner" ,emacs-ert-runner)
13683 ("emacs-undercover" ,emacs-undercover)))
13684 (arguments
13685 `(#:tests? #t
13686 #:test-command '("ert-runner")))
13687 (synopsis "Suggest Elisp functions that give the output requested")
13688 (description "Suggest.el will find functions that give the output
13689 requested. It's a great way of exploring list, string and arithmetic
13690 functions.")
13691 (license license:gpl3+)))
13692
13693 (define-public emacs-benchmark-init
13694 (package
13695 (name "emacs-benchmark-init")
13696 (version "1.0")
13697 (source
13698 (origin
13699 (method git-fetch)
13700 (uri (git-reference
13701 (url "https://github.com/dholm/benchmark-init-el.git")
13702 (commit version)))
13703 (file-name (git-file-name name version))
13704 (sha256
13705 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
13706 (build-system emacs-build-system)
13707 (home-page "https://github.com/dholm/benchmark-init-el")
13708 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
13709 (description "@code{benchmark-init} provides a way to keep track of where
13710 time is being spent during Emacs startup in order to optimize startup time.")
13711 (license license:gpl3+)))
13712
13713 (define-public emacs-emms-player-simple-mpv
13714 ;; A new mpv backend is included in Emms from 5.0.
13715 (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
13716
13717 (define-public emacs-magit-gerrit
13718 (let ((version "0.3")
13719 (revision "1")
13720 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
13721 (package
13722 (name "emacs-magit-gerrit")
13723 (version (git-version version revision commit))
13724 (source (origin
13725 (method git-fetch)
13726 (uri (git-reference
13727 (url "https://github.com/terranpro/magit-gerrit.git")
13728 (commit commit)))
13729 (file-name (git-file-name name version))
13730 (sha256
13731 (base32
13732 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
13733 (build-system emacs-build-system)
13734 (propagated-inputs
13735 `(("emacs-magit" ,emacs-magit)))
13736 (home-page "https://github.com/terranpro/magit-gerrit")
13737 (synopsis "Magit extension for Gerrit")
13738 (description "This Magit extension provides integration with Gerrit,
13739 which makes it possible to conduct Gerrit code reviews directly from within
13740 Emacs.")
13741 (license license:gpl3+))))
13742
13743 (define-public emacs-magit-org-todos-el
13744 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
13745 (package
13746 (name "emacs-magit-org-todos-el")
13747 (version (git-version "0.1.1" "1" commit))
13748 (source
13749 (origin
13750 (method git-fetch)
13751 (uri (git-reference
13752 (url "https://github.com/danielma/magit-org-todos.el.git")
13753 (commit commit)))
13754 (file-name (git-file-name name version))
13755 (sha256
13756 (base32
13757 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
13758 (propagated-inputs
13759 `(("magit" ,emacs-magit)))
13760 (build-system emacs-build-system)
13761 (home-page "https://github.com/danielma/magit-org-todos.el")
13762 (synopsis "Get todo.org into Emacs Magit status")
13763 (description "This package allows you to get @file{todo.org} into your
13764 magit status.
13765
13766 If you have a @file{todo.org} file with @code{TODO} items in the root of your
13767 repository, @code{magit-org-todos} will create a section in your Magit status
13768 buffer with each of your todos.")
13769 (license license:gpl3+))))
13770
13771 (define-public emacs-f3
13772 (package
13773 (name "emacs-f3")
13774 (version "0.1")
13775 (source
13776 (origin
13777 (method git-fetch)
13778 (uri (git-reference
13779 (url "https://github.com/cosmicexplorer/f3.git")
13780 (commit version)))
13781 (file-name (git-file-name name version))
13782 (sha256
13783 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
13784 (build-system emacs-build-system)
13785 (propagated-inputs
13786 `(("emacs-helm" ,emacs-helm)))
13787 (home-page "https://github.com/cosmicexplorer/f3")
13788 (synopsis "Fantastic File Finder for Emacs")
13789 (description
13790 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
13791 (license license:gpl3+)))
13792
13793 (define-public emacs-lice-el
13794 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
13795 (package
13796 (name "emacs-lice-el")
13797 (version (git-version "0.2" "1" commit))
13798 (source (origin
13799 (method git-fetch)
13800 (uri (git-reference
13801 (url "https://github.com/buzztaiki/lice-el.git")
13802 (commit commit)))
13803 (file-name (git-file-name name version))
13804 (sha256
13805 (base32
13806 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
13807 (build-system emacs-build-system)
13808 (home-page "https://github.com/buzztaiki/lice-el")
13809 (synopsis "License and header template for Emacs")
13810 (description "@code{lice.el} provides following features:
13811
13812 @itemize
13813 @item License template management.
13814 @item File header insertion.
13815 @end itemize\n")
13816 (license license:gpl3+))))
13817
13818 (define-public emacs-academic-phrases
13819 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
13820 (package
13821 (name "emacs-academic-phrases")
13822 (version (git-version "0.1" "1" commit))
13823 (source
13824 (origin
13825 (method git-fetch)
13826 (uri (git-reference
13827 (url "https://github.com/nashamri/academic-phrases.git")
13828 (commit commit)))
13829 (file-name (git-file-name name version))
13830 (sha256
13831 (base32
13832 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
13833 (build-system emacs-build-system)
13834 (propagated-inputs
13835 `(("emacs-dash" ,emacs-dash)
13836 ("emacs-s" ,emacs-s)
13837 ("emacs-ht" ,emacs-ht)))
13838 (home-page "https://github.com/nashamri/academic-phrases")
13839 (synopsis "Bypass that mental block when writing your papers")
13840 (description
13841 "When writing your academic paper, you might get stuck trying to find
13842 the right phrase that captures your intention. This package tries to
13843 alleviate that problem by presenting you with a list of phrases organized by
13844 the topic or by the paper section that you are writing. This package has
13845 around 600 phrases so far.
13846
13847 Using this package is easy, just call @code{academic-phrases} to get a list of
13848 phrases organized by topic, or call @code{academic-phrases-by-section} to
13849 browse the phrases by the paper section and fill-in the blanks if required.")
13850 (license license:gpl3+))))
13851
13852 (define-public emacs-auto-yasnippet
13853 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
13854 (revision "2"))
13855 (package
13856 (name "emacs-auto-yasnippet")
13857 (version (git-version "0.3.0" revision commit))
13858 (source (origin
13859 (method git-fetch)
13860 (uri (git-reference
13861 (url "https://github.com/abo-abo/auto-yasnippet.git")
13862 (commit commit)))
13863 (file-name (git-file-name name version))
13864 (sha256
13865 (base32
13866 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
13867 (build-system emacs-build-system)
13868 (arguments
13869 '(#:tests? #t
13870 #:test-command '("make" "test")))
13871 (propagated-inputs
13872 `(("emacs-yasnippet" ,emacs-yasnippet)))
13873 (home-page "https://github.com/abo-abo/auto-yasnippet/")
13874 (synopsis "Quickly create disposable yasnippets")
13875 (description "This package provides a hybrid of keyboard macros and
13876 yasnippet. You create the snippet on the go, usually to be used just in the
13877 one place. It's fast, because you're not leaving the current buffer, and all
13878 you do is enter the code you'd enter anyway, just placing ~ where you'd like
13879 yasnippet fields and mirrors to be.")
13880 (license license:gpl3+))))
13881
13882 (define-public emacs-highlight-numbers
13883 (package
13884 (name "emacs-highlight-numbers")
13885 (version "0.2.3")
13886 (source
13887 (origin
13888 (method git-fetch)
13889 (uri (git-reference
13890 (url "https://github.com/Fanael/highlight-numbers.git")
13891 (commit version)))
13892 (file-name (git-file-name name version))
13893 (sha256
13894 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
13895 (build-system emacs-build-system)
13896 (propagated-inputs
13897 `(("emacs-parent-mode" ,emacs-parent-mode)))
13898 (home-page "https://github.com/Fanael/highlight-numbers")
13899 (synopsis "Highlight numbers in source code")
13900 (description "@code{highlight-numbers-mode} provides a minor mode for
13901 syntax highlighting of numeric literals in source code.
13902
13903 It s customizable: it's easy to add or redefine what exactly consitutes a
13904 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
13905 (license license:gpl3+)))
13906
13907 (define-public emacs-darkroom
13908 (package
13909 (name "emacs-darkroom")
13910 (version "0.2")
13911 (source (origin
13912 (method url-fetch)
13913 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
13914 version ".el"))
13915 (sha256
13916 (base32
13917 "1a528brhz4vckhp77n2c1phkyqdliykpj9kzk3f834f4rwnb5mp0"))))
13918 (build-system emacs-build-system)
13919 (home-page "https://elpa.gnu.org/packages/darkroom.html")
13920 (synopsis "Remove visual distractions and focus on writing")
13921 (description "@code{darkroom-mode} makes visual distractions disappear.
13922 The mode-line is temporarily elided, text is enlarged and margins are adjusted
13923 so that it's centered on the window.
13924
13925 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
13926 @code{darkroom-mode}, unless the current buffer lives in the sole window of
13927 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
13928 split to display more windows and more buffers, the buffer exits
13929 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
13930 @code{darkroom-mode}.")
13931 (license license:gpl3+)))
13932
13933 (define-public emacs-rsw-elisp
13934 (package
13935 (name "emacs-rsw-elisp")
13936 (version "1.0.5")
13937 (source (origin
13938 (method url-fetch)
13939 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
13940 "/archive/" version ".tar.gz"))
13941 (file-name (string-append name "-" version ".tar.gz"))
13942 (sha256
13943 (base32
13944 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
13945 (build-system emacs-build-system)
13946 (home-page "https://github.com/rswgnu/rsw-elisp")
13947 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
13948 (description "This package improves and replaces the GNU Emacs commands
13949 that interactively evaluate Emacs Lisp expressions. The new commands replace
13950 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
13951 the same way as the old commands when called non-interactively; only the
13952 interactive behavior should be different.")
13953 (license license:gpl3+)))
13954
13955 (define-public emacs-default-text-scale
13956 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
13957 (revision "1"))
13958 (package
13959 (name "emacs-default-text-scale")
13960 (version (string-append "0.1" "-" revision "."
13961 (string-take commit 7)))
13962 (source (origin
13963 (method git-fetch)
13964 (uri (git-reference
13965 (url "https://github.com/purcell/default-text-scale")
13966 (commit commit)))
13967 (file-name (git-file-name name version))
13968 (sha256
13969 (base32
13970 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
13971 (build-system emacs-build-system)
13972 (home-page "https://github.com/purcell/default-text-scale")
13973 (synopsis "Adjust the font size in all Emacs frames")
13974 (description "This package provides commands for increasing or
13975 decreasing the default font size in all GUI Emacs frames.")
13976 (license license:gpl3+))))
13977
13978 (define-public emacs-mixed-pitch
13979 (package
13980 (name "emacs-mixed-pitch")
13981 (version "1.0.1")
13982 (source
13983 (origin
13984 (method git-fetch)
13985 (uri (git-reference
13986 (url "https://gitlab.com/jabranham/mixed-pitch.git")
13987 (commit version)))
13988 (file-name (git-file-name name version))
13989 (sha256
13990 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
13991 (build-system emacs-build-system)
13992 (home-page "https://gitlab.com/jabranham/mixed-pitch")
13993 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
13994 (description
13995 "@code{mixed-pitch-mode} is a minor mode that enables mixing
13996 variable-pitch and fixed-pitch fonts in the same buffer. The list
13997 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
13998 fixed-pitch,everything else becomes variable-pitch.")
13999 (license license:gpl3+)))
14000
14001 (define-public emacs-visual-regexp
14002 (package
14003 (name "emacs-visual-regexp")
14004 (version "1.1.1")
14005 (source
14006 (origin
14007 (method git-fetch)
14008 (uri (git-reference
14009 (url "https://github.com/benma/visual-regexp.el.git")
14010 (commit (string-append "v" version))))
14011 (file-name (git-file-name name version))
14012 (sha256
14013 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
14014 (build-system emacs-build-system)
14015 (home-page "https://github.com/benma/visual-regexp.el/")
14016 (synopsis "Regexp command with interactive visual feedback")
14017 (description "This package provides an Emacs regexp command with
14018 interactive visual feedback.")
14019 (license license:gpl3+)))
14020
14021 (define-public emacs-faceup
14022 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
14023 (revision "1"))
14024 (package
14025 (name "emacs-faceup")
14026 (version (string-append "0.0.1" "-" revision "."
14027 (string-take commit 7)))
14028 (source
14029 (origin
14030 (method git-fetch)
14031 (uri (git-reference
14032 (url "https://github.com/Lindydancer/faceup.git")
14033 (commit commit)))
14034 (file-name (git-file-name name version))
14035 (sha256
14036 (base32
14037 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
14038 (build-system emacs-build-system)
14039 (home-page "https://github.com/Lindydancer/faceup")
14040 (synopsis "Markup language for faces and font-lock regression testing")
14041 (description "Emacs is capable of highlighting buffers based on
14042 language-specific @code{font-lock} rules. This package makes it possible to
14043 perform regression test for packages that provide font-lock rules.")
14044 (license license:gpl3+))))
14045
14046 (define-public emacs-racket-mode
14047 (let ((commit "2a9a102a097d04fbcd2a443fec84078036c2e277")
14048 (revision "4"))
14049 (package
14050 (name "emacs-racket-mode")
14051 (version (git-version "0.0.2" revision commit))
14052 (source
14053 (origin
14054 (method git-fetch)
14055 (uri (git-reference
14056 (url "https://github.com/greghendershott/racket-mode")
14057 (commit commit)))
14058 (file-name (git-file-name name version))
14059 (sha256
14060 (base32
14061 "1n71dxxh62jixq20b5haapv651dxc0zyrxpl1d0yqsg8ncp726bl"))))
14062 (build-system emacs-build-system)
14063 (arguments
14064 `(#:include '("\\.el$" "\\.rkt$")))
14065 (propagated-inputs
14066 `(("emacs-faceup" ,emacs-faceup)
14067 ("emacs-s" ,emacs-s)))
14068 (home-page "https://github.com/greghendershott/racket-mode")
14069 (synopsis "Major mode for Racket language")
14070 (description "@code{racket-mode} provides:
14071
14072 @itemize
14073 @item Focus on Racket (not various Schemes).
14074 @item Follow DrRacket concepts where applicable.
14075 @item Thorough font-lock and indent.
14076 @end itemize\n")
14077 (license license:gpl3+))))
14078
14079 (define-public emacs-grep-context
14080 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
14081 (revision "1"))
14082 (package
14083 (name "emacs-grep-context")
14084 (version (git-version "0.1.0" revision commit))
14085 (source
14086 (origin
14087 (method git-fetch)
14088 (uri (git-reference
14089 (url "https://github.com/mkcms/grep-context.git")
14090 (commit commit)))
14091 (file-name (git-file-name name version))
14092 (sha256
14093 (base32
14094 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
14095 (build-system emacs-build-system)
14096 (propagated-inputs
14097 `(("emacs-dash" ,emacs-dash)))
14098 (home-page "https://github.com/mkcms/grep-context")
14099 (synopsis "Increase context in compilation and grep buffers")
14100 (description
14101 "This package provides an Emacs package for more context in
14102 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
14103 @code{ivy}.")
14104 (license license:gpl3+))))
14105
14106 (define-public emacs-helm-firefox
14107 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
14108 (revision "1"))
14109 (package
14110 (name "emacs-helm-firefox")
14111 (version (string-append "0.0.1" "-" revision "."
14112 (string-take commit 7)))
14113 (source
14114 (origin
14115 (method git-fetch)
14116 (uri (git-reference
14117 (url "https://github.com/emacs-helm/helm-firefox.git")
14118 (commit commit)))
14119 (file-name (git-file-name name version))
14120 (sha256
14121 (base32
14122 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
14123 (propagated-inputs
14124 `(("emacs-helm" ,emacs-helm)))
14125 (build-system emacs-build-system)
14126 (home-page "https://github.com/emacs-helm/helm-firefox")
14127 (synopsis "Display firefox bookmarks with Emacs Helm interface")
14128 (description "Display firefox bookmarks with Emacs Helm interface")
14129 (license license:gpl3+))))
14130
14131 (define-public emacs-interactive-align
14132 (package
14133 (name "emacs-interactive-align")
14134 (version "0.4.2")
14135 (source
14136 (origin
14137 (method git-fetch)
14138 (uri (git-reference
14139 (url "https://github.com/mkcms/interactive-align.git")
14140 (commit (string-append "v" version))))
14141 (file-name (git-file-name name version))
14142 (sha256
14143 (base32
14144 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
14145 (build-system emacs-build-system)
14146 (home-page "https://github.com/mkcms/interactive-align/")
14147 (synopsis "Interactive align-regexp command in Emacs")
14148 (description "Interactive align-regexp command in Emacs")
14149 (license license:gpl3+)))
14150
14151 (define-public emacs-shift-number
14152 (package
14153 (name "emacs-shift-number")
14154 (version "0.1")
14155 (source
14156 (origin
14157 (method url-fetch)
14158 (uri (string-append "https://github.com/alezost/shift-number.el"
14159 "/archive/" "v" version ".tar.gz"))
14160 (file-name (string-append name "-" version ".tar.gz"))
14161 (sha256
14162 (base32
14163 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
14164 (build-system emacs-build-system)
14165 (home-page "https://github.com/alezost/shift-number.el")
14166 (synopsis "Increase or decrease the number at point")
14167 (description "@code{emacs-shift-number} provides commands
14168 @code{shift-number-up} to increase and @code{shift-number-down} to
14169 decrease the number at point.")
14170 (license license:gpl3+)))
14171
14172 (define-public emacs-highlight-defined
14173 (package
14174 (name "emacs-highlight-defined")
14175 (version "0.1.5")
14176 (source
14177 (origin
14178 (method git-fetch)
14179 (uri (git-reference
14180 (url "https://github.com/Fanael/highlight-defined.git")
14181 (commit version)))
14182 (file-name (git-file-name name version))
14183 (sha256
14184 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
14185 (build-system emacs-build-system)
14186 (home-page "https://github.com/Fanael/highlight-defined")
14187 (synopsis "Syntax highlighting of known Elisp symbols")
14188 (description "Minor mode providing syntax highlighting of known Emacs Lisp
14189 symbols. Currently the code distinguishes Lisp functions, built-in functions,
14190 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
14191 (license license:gpl3+)))
14192
14193 (define-public emacs-parinfer-mode
14194 (package
14195 (name "emacs-parinfer-mode")
14196 (version "0.4.10")
14197 (source
14198 (origin
14199 (method git-fetch)
14200 (uri (git-reference
14201 (url "https://github.com/DogLooksGood/parinfer-mode.git")
14202 (commit (string-append "v" version))))
14203 (file-name (git-file-name name version))
14204 (sha256
14205 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
14206 (propagated-inputs
14207 `(("emacs-dash" ,emacs-dash)
14208 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
14209 ("emacs-company" ,emacs-company)))
14210 (build-system emacs-build-system)
14211 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
14212 (synopsis "Lisp structure editing mode")
14213 (description "@code{parinfer-mode} is a proof-of-concept editor
14214 mode for Lisp programming languages. It will infer some changes to
14215 keep Parens and Indentation inline with one another.")
14216 (license license:gpl3+)))
14217
14218 (define-public emacs-helm-eww
14219 (package
14220 (name "emacs-helm-eww")
14221 (version "1.2")
14222 (source (origin
14223 (method git-fetch)
14224 (uri (git-reference
14225 (url "https://github.com/emacs-helm/helm-eww.git")
14226 (commit version)))
14227 (file-name (git-file-name name version))
14228 (sha256
14229 (base32
14230 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
14231 (propagated-inputs
14232 `(("emacs-helm" ,emacs-helm)))
14233 (build-system emacs-build-system)
14234 (home-page "https://github.com/emacs-helm/helm-eww/")
14235 (synopsis "Helm interface to EWW")
14236 (description "This package provides a Helm interface for EWW buffers,
14237 bookmarks and history.")
14238 (license license:gpl3+)))
14239
14240 (define-public emacs-stumpwm-mode
14241 (let ((commit "5328f85fbf6a8b08c758c17b9435368bf7a68f39"))
14242 (package
14243 (name "emacs-stumpwm-mode")
14244 (version (git-version "0.0.1" "1" commit))
14245 (source (origin
14246 (method git-fetch)
14247 (uri (git-reference
14248 (url "https://github.com/stumpwm/stumpwm-contrib.git")
14249 (commit commit)))
14250 (file-name (git-file-name name version))
14251 (sha256
14252 (base32
14253 "00kf4k8bqadi5s667wb96sn549v2kvw01zwszjrg7nhd805m1ng6"))))
14254 (build-system emacs-build-system)
14255 (arguments
14256 `(#:phases
14257 (modify-phases %standard-phases
14258 (add-after 'unpack 'chdir-elisp
14259 ;; Elisp directory is not in root of the source.
14260 (lambda _
14261 (chdir "util/swm-emacs"))))))
14262 (home-page "https://github.com/stumpwm/stumpwm-contrib")
14263 (synopsis "Emacs minor-mode for Stumpwm")
14264 (description "Emacs minor-mode for Stumpwm")
14265 (license license:gpl3+))))
14266
14267 (define-public emacs-irfc
14268 (package
14269 (name "emacs-irfc")
14270 (version "20130824.507-1")
14271 (source
14272 (origin
14273 (method url-fetch)
14274 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
14275 (file-name (string-append "irfc-" version ".el"))
14276 (sha256
14277 (base32
14278 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
14279 (build-system emacs-build-system)
14280 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
14281 (synopsis "Interface for IETF RFC document")
14282 (description
14283 "This package provides an Emacs interface for IETF RFC document.")
14284 (license license:gpl3+)))
14285
14286 (define-public emacs-ido-vertical-mode
14287 (package
14288 (name "emacs-ido-vertical-mode")
14289 (version "0.1.6")
14290 (source
14291 (origin
14292 (method git-fetch)
14293 (uri (git-reference
14294 (url "https://github.com/creichert/ido-vertical-mode.el.git")
14295 (commit (string-append "v" version))))
14296 (file-name (git-file-name name version))
14297 (sha256
14298 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
14299 (build-system emacs-build-system)
14300 (home-page "https://github.com/creichert/ido-vertical-mode.el")
14301 (synopsis "Makes ido-mode display vertically")
14302 (description "Makes ido-mode display prospects vertically.")
14303 (license license:gpl3+)))
14304
14305 (define-public emacs-wordgen
14306 (package
14307 (name "emacs-wordgen")
14308 (version "0.1.4")
14309 (source
14310 (origin
14311 (method git-fetch)
14312 (uri (git-reference
14313 (url "https://github.com/Fanael/wordgen.el.git")
14314 (commit version)))
14315 (file-name (git-file-name name version))
14316 (sha256
14317 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
14318 (build-system emacs-build-system)
14319 (home-page "https://github.com/Fanael/wordgen.el")
14320 (synopsis "Random word generator")
14321 (description "This package provides functions to generate random words
14322 using user-provided rules.")
14323 (license license:gpl3+)))
14324
14325 (define-public emacs-on-screen
14326 (package
14327 (name "emacs-on-screen")
14328 (version "1.3.3")
14329 (source
14330 (origin
14331 (method url-fetch)
14332 (uri (string-append
14333 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
14334 (file-name (string-append name "-" version ".el"))
14335 (sha256
14336 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
14337 (build-system emacs-build-system)
14338 (home-page "https://github.com/michael-heerdegen/on-screen.el")
14339 (synopsis "Guide your eyes while scrolling")
14340 (description
14341 "Scrolling can be distracting because your eyes may lose
14342 orientation. This library implements a minor mode that highlights
14343 the previously visible buffer part after each scroll.")
14344 (license license:gpl3+)))
14345
14346 (define-public emacs-highlight-escape-sequences
14347 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
14348 (revision "1"))
14349 (package
14350 (name "emacs-highlight-escape-sequences")
14351 (version (string-append "0.0.1" "-" revision "."
14352 (string-take commit 7)))
14353 (source
14354 (origin
14355 (method git-fetch)
14356 (uri (git-reference
14357 (url "https://github.com/dgutov/highlight-escape-sequences.git")
14358 (commit commit)))
14359 (file-name (git-file-name name version))
14360 (sha256
14361 (base32
14362 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
14363 (build-system emacs-build-system)
14364 (home-page "https://github.com/dgutov/highlight-escape-sequences")
14365 (synopsis "Highlight escape sequences in Emacs")
14366 (description "@code{highlight-escape-sequences} provides an
14367 Emacs minor mode to escape sequences in code.")
14368 (license license:gpl3+))))
14369
14370 (define-public emacs-dashboard
14371 (package
14372 (name "emacs-dashboard")
14373 (version "1.5.0")
14374 (source
14375 (origin
14376 (method git-fetch)
14377 (uri (git-reference
14378 (url "https://github.com/rakanalh/emacs-dashboard.git")
14379 (commit version)))
14380 (file-name (git-file-name name version))
14381 (sha256
14382 (base32 "0ihpcagwgc9qy70lf2y3dvx2bm5h9lnqh4sx6643cr8pp06ysbvq"))))
14383 (build-system emacs-build-system)
14384 (propagated-inputs
14385 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
14386 (arguments
14387 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
14388 #:phases
14389 (modify-phases %standard-phases
14390 (add-after 'unpack 'patch-dashboard-widgets
14391 ;; This phase fixes compilation error.
14392 (lambda _
14393 (chmod "dashboard-widgets.el" #o666)
14394 (emacs-substitute-variables "dashboard-widgets.el"
14395 ("dashboard-init-info"
14396 '(format "Loaded in %s" (emacs-init-time))))
14397 #t)))))
14398 (home-page "https://github.com/rakanalh/emacs-dashboard")
14399 (synopsis "Startup screen extracted from Spacemacs")
14400 (description "This package provides an extensible Emacs dashboard, with
14401 sections for bookmarks, projectil projects, org-agenda and more. ")
14402 (license license:gpl3+)))
14403
14404 (define-public emacs-slime-company
14405 (package
14406 (name "emacs-slime-company")
14407 (version "1.1")
14408 (source
14409 (origin
14410 (method git-fetch)
14411 (uri (git-reference
14412 (url "https://github.com/anwyn/slime-company.git")
14413 (commit (string-append "v" version))))
14414 (file-name (git-file-name name version))
14415 (sha256
14416 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
14417 (build-system emacs-build-system)
14418 (propagated-inputs
14419 `(("emacs-slime" ,emacs-slime)
14420 ("emacs-company" ,emacs-company)))
14421 (home-page "https://company-mode.github.io")
14422 (synopsis "SLIME completion backend for @code{company-mode}")
14423 (description
14424 "This is a backend implementation for the completion package
14425 @code{company-mode} which supports the normal and the fuzzy completion
14426 modes of SLIME.")
14427 (license license:gpl3+)))
14428
14429 (define-public emacs-sml-mode
14430 (package
14431 (name "emacs-sml-mode")
14432 (version "6.9")
14433 (source
14434 (origin
14435 (method url-fetch)
14436 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
14437 version ".el"))
14438 (sha256
14439 (base32 "1bdg9ywpvj85hxqah9w1raxlcrhkyx67nw22jwd1bd5j0fhmgqij"))))
14440 (build-system emacs-build-system)
14441 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
14442 (synopsis "Major mode for editing (Standard) ML")
14443 (description "SML-MODE is a major Emacs mode for editing Standard ML.
14444 It provides syntax highlighting and automatic indentation and
14445 comes with sml-proc which allows interaction with an inferior SML
14446 interactive loop.")
14447 (license license:gpl3+)))
14448
14449 (define-public emacs-eros
14450 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
14451 (revision "2"))
14452 (package
14453 (name "emacs-eros")
14454 (version (git-version "0.0.1" revision commit))
14455 (source
14456 (origin
14457 (method git-fetch)
14458 (uri (git-reference
14459 (url "https://github.com/xiongtx/eros.git")
14460 (commit commit)))
14461 (file-name (git-file-name name version))
14462 (sha256
14463 (base32
14464 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
14465 (build-system emacs-build-system)
14466 (home-page "https://github.com/xiongtx/eros")
14467 (synopsis "Evaluation result overlays")
14468 (description "@code{eros} provides evaluation result overlays.")
14469 (license license:gpl3+))))
14470
14471 (define-public emacs-stickyfunc-enhance
14472 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
14473 (revision "1"))
14474 (package
14475 (name "emacs-stickyfunc-enhance")
14476 (version "0.1")
14477 (source
14478 (origin
14479 (method git-fetch)
14480 (uri (git-reference
14481 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
14482 (commit commit)))
14483 (file-name (git-file-name name version))
14484 (sha256
14485 (base32
14486 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
14487 (build-system emacs-build-system)
14488 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
14489 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
14490 (description
14491 "@code{semantic-stickyfunc-mode} shows the function point is currently
14492 in at the first line of the current buffer. This is useful when you have a
14493 very long function that spreads more than a screen, and you don't have to
14494 scroll up to read the function name and then scroll down to original position.")
14495 (license license:gpl3+))))
14496
14497 (define-public emacs-git-auto-commit-mode
14498 (package
14499 (name "emacs-git-auto-commit-mode")
14500 (version "4.4.0")
14501 (source
14502 (origin
14503 (method git-fetch)
14504 (uri (git-reference
14505 (url "https://github.com/ryuslash/git-auto-commit-mode.git")
14506 (commit version)))
14507 (file-name (git-file-name name version))
14508 (sha256
14509 (base32 "0psmr7749nzxln4b500sl3vrf24x3qijp12ir0i5z4x25k72hrlh"))))
14510 (build-system emacs-build-system)
14511 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
14512 (synopsis "Emacs Minor mode to automatically commit and push")
14513 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
14514 tries to commit changes to a file after every save.
14515
14516 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
14517 the current upstream.")
14518 (license license:gpl3+)))
14519
14520 (define-public emacs-scroll-on-drag
14521 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
14522 (revision "1"))
14523 (package
14524 (name "emacs-scroll-on-drag")
14525 (version (git-version "0.1" revision commit))
14526 (source
14527 (origin
14528 (method git-fetch)
14529 (uri (git-reference
14530 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
14531 (commit commit)))
14532 (file-name (git-file-name name version))
14533 (sha256
14534 (base32
14535 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
14536 (build-system emacs-build-system)
14537 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
14538 (synopsis "Interactive scrolling")
14539 (description "This package permits scrolling at increasing speeds based
14540 on drag distance.")
14541 (license license:gpl3+))))
14542
14543 (define-public emacs-company-restclient
14544 (package
14545 (name "emacs-company-restclient")
14546 (version "0.3.0")
14547 (source
14548 (origin
14549 (method git-fetch)
14550 (uri (git-reference
14551 (url "https://github.com/iquiw/company-restclient.git")
14552 (commit (string-append "v" version))))
14553 (file-name (git-file-name name version))
14554 (sha256
14555 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
14556 (build-system emacs-build-system)
14557 (propagated-inputs
14558 `(("emacs-company" ,emacs-company)
14559 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
14560 ("emacs-restclient" ,emacs-restclient)))
14561 (home-page "https://github.com/iquiw/company-restclient")
14562 (synopsis "Company-mode completion back-end for restclient-mode")
14563 (description "@code{company-mode} back-end for
14564 @code{restclient-mode}.
14565
14566 It provides auto-completion for HTTP methods and headers in
14567 @code{restclient-mode}. Completion source is given by
14568 @code{know-your-http-well}.")
14569 (license license:gpl3+)))
14570
14571 (define-public emacs-noflet
14572 (let ((version "20170629")
14573 (revision "1")
14574 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
14575 (package
14576 (name "emacs-noflet")
14577 (version (git-version version revision commit))
14578 (source
14579 (origin
14580 (method git-fetch)
14581 (uri (git-reference
14582 (url "https://github.com/nicferrier/emacs-noflet")
14583 (commit commit)))
14584 (file-name (git-file-name name version))
14585 (sha256
14586 (base32
14587 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
14588 (build-system emacs-build-system)
14589 (arguments
14590 `(#:phases
14591 (modify-phases %standard-phases
14592 (add-after 'unpack 'require-dash
14593 ;; noflet.el uses -map from dash, but (require 'dash) is
14594 ;; missing. So, add it.
14595 (lambda _
14596 (substitute* "noflet.el"
14597 ((";;; Code:") ";;; Code:\n(require 'dash)"))
14598 #t)))))
14599 (propagated-inputs
14600 `(("emacs-dash" ,emacs-dash)))
14601 (home-page "https://github.com/nicferrier/emacs-noflet")
14602 (synopsis "Locally override functions")
14603 (description "@code{emacs-noflet} lets you locally override functions,
14604 in the manner of @command{flet}, but with access to the original function
14605 through the symbol: @command{this-fn}.")
14606 (license license:gpl3+))))
14607
14608 (define-public emacs-dumb-jump
14609 (package
14610 (name "emacs-dumb-jump")
14611 (version "0.5.3")
14612 (source
14613 (origin
14614 (method git-fetch)
14615 (uri (git-reference
14616 (url "https://github.com/jacktasia/dumb-jump.git")
14617 (commit (string-append "v" version))))
14618 (file-name (git-file-name name version))
14619 (sha256
14620 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
14621 (build-system emacs-build-system)
14622 (arguments
14623 `(#:tests? #f ; FIXME: Tests freeze when run.
14624 #:test-command '("ert-runner")
14625 #:phases
14626 (modify-phases %standard-phases
14627 (add-after 'unpack 'set-shell
14628 (lambda _
14629 ;; Setting the SHELL environment variable is required for the
14630 ;; tests to find sh.
14631 (setenv "SHELL" (which "sh"))
14632 #t)))))
14633 (native-inputs
14634 `(("emacs-el-mock" ,emacs-el-mock)
14635 ("emacs-noflet" ,emacs-noflet)
14636 ("emacs-undercover" ,emacs-undercover)
14637 ("ert-runner" ,emacs-ert-runner)))
14638 (propagated-inputs
14639 `(("emacs-f" ,emacs-f)
14640 ("emacs-popup" ,emacs-popup)))
14641 (home-page "https://github.com/jacktasia/dumb-jump")
14642 (synopsis "Jump to definition for multiple languages without configuration")
14643 (description "Dumb Jump is an Emacs \"jump to definition\" package with
14644 support for multiple programming languages that favors \"just working\" over
14645 speed or accuracy. This means minimal --- and ideally zero --- configuration
14646 with absolutely no stored indexes (tags) or persistent background processes.
14647 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
14648 @command{rg} installed.")
14649 (license license:gpl3+)))
14650
14651 (define-public emacs-dts-mode
14652 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
14653 (revision "1"))
14654 (package
14655 (name "emacs-dts-mode")
14656 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
14657 (source
14658 (origin
14659 (method git-fetch)
14660 (uri (git-reference
14661 (url "https://github.com/bgamari/dts-mode.git")
14662 (commit commit)))
14663 (file-name (git-file-name name version))
14664 (sha256
14665 (base32
14666 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
14667 (build-system emacs-build-system)
14668 (home-page "https://github.com/bgamari/dts-mode.git")
14669 (synopsis "Emacs minor mode for editing device tree files")
14670 (description
14671 "This package provides an Emacs minor mode for highlighting
14672 device tree files.")
14673 (license license:gpl3+))))
14674
14675 (define-public emacs-daemons
14676 (package
14677 (name "emacs-daemons")
14678 (version "2.0.0")
14679 (source
14680 (origin
14681 (method git-fetch)
14682 (uri (git-reference
14683 (url "https://github.com/cbowdon/daemons.el")
14684 (commit version)))
14685 (file-name (git-file-name name version))
14686 (sha256
14687 (base32
14688 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
14689 (build-system emacs-build-system)
14690 (home-page "https://github.com/cbowdon/daemons.el")
14691 (synopsis "Emacs UI for managing init system services")
14692 (description
14693 "This is an Emacs mode to give you a UI for managing init system
14694 daemons (services) for those getting tired of typing out @code{sudo service
14695 my_thing reload} all the time. It offers a consistent UI over different init
14696 systems.")
14697 (license license:gpl3+)))
14698
14699 (define-public emacs-isearch+
14700 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
14701 (revision "2"))
14702 (package
14703 (name "emacs-isearch+")
14704 (version (git-version "0" revision commit))
14705 (source
14706 (origin
14707 (method git-fetch)
14708 (uri (git-reference
14709 (url "https://github.com/emacsmirror/isearch-plus.git")
14710 (commit commit)))
14711 (file-name (git-file-name name version))
14712 (sha256
14713 (base32
14714 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
14715 (build-system emacs-build-system)
14716 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
14717 (synopsis "Extensions to @code{isearch.el}")
14718 (description "This package extends @code{isearch} with advice, dynamic
14719 filters, highlighting of regexp group levels, and more.")
14720 (license license:gpl2+))))
14721
14722 (define-public emacs-eshell-bookmark
14723 (package
14724 (name "emacs-eshell-bookmark")
14725 (version "2.0.0")
14726 (source
14727 (origin
14728 (method git-fetch)
14729 (uri (git-reference
14730 (url "https://github.com/Fuco1/eshell-bookmark")
14731 (commit version)))
14732 (file-name (git-file-name name version))
14733 (sha256
14734 (base32
14735 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
14736 (build-system emacs-build-system)
14737 (home-page "https://github.com/Fuco1/eshell-bookmark")
14738 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
14739 (description
14740 "This package allows for bookmarking @code{eshell} buffers. Upon
14741 visiting the bookmark, a new @code{eshell} session will be opened in the
14742 appropriate directory if no @code{eshell} session is active.")
14743 (license license:gpl3+)))
14744
14745 (define-public emacs-eshell-z
14746 (package
14747 (name "emacs-eshell-z")
14748 (version "0.3.2")
14749 (source
14750 (origin
14751 (method git-fetch)
14752 (uri (git-reference
14753 (url "https://github.com/xuchunyang/eshell-z")
14754 (commit (string-append "v" version))))
14755 (file-name (git-file-name name version))
14756 (sha256
14757 (base32
14758 "1aac4m814jgxwpz7lbyx5r4z5dmawp4sk7pwbx0zqpnbcsaq5wwc"))))
14759 (build-system emacs-build-system)
14760 (home-page "https://github.com/xuchunyang/eshell-z")
14761 (synopsis "Quick navigation to frequently visited directories")
14762 (description
14763 "This package is a port of @code{z}, and keeps track of visited directories
14764 and commands invoked within them in order to enable navigation via input of
14765 matching regexps.")
14766 (license license:gpl3+)))
14767
14768 (define-public emacs-esh-autosuggest
14769 (package
14770 (name "emacs-esh-autosuggest")
14771 (version "2.0.0")
14772 (source
14773 (origin
14774 (method git-fetch)
14775 (uri (git-reference
14776 (url "https://github.com/dieggsy/esh-autosuggest")
14777 (commit version)))
14778 (file-name (git-file-name name version))
14779 (sha256
14780 (base32
14781 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
14782 (build-system emacs-build-system)
14783 (propagated-inputs `(("emacs-company" ,emacs-company)))
14784 (home-page "https://github.com/dieggsy/esh-autosuggest")
14785 (synopsis "Fish-like autosuggestions in Eshell")
14786 (description
14787 "This package assumes you use something other than company for eshell
14788 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
14789 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
14790 for history autosuggestions.
14791
14792 Unless you're using @code{use-package}'s hook keyword, you can enable the
14793 autosuggestions with:
14794 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
14795 (license license:gpl3+)))
14796
14797 (define-public emacs-desktop-environment
14798 (package
14799 (name "emacs-desktop-environment")
14800 (version "0.2.2")
14801 (source
14802 (origin
14803 (method git-fetch)
14804 (uri (git-reference
14805 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
14806 (commit (string-append "v" version))))
14807 (file-name (git-file-name name version))
14808 (sha256
14809 (base32
14810 "14ija2rrz3zjhjbzxg84j5fq6xph4ah7w9bkqnq37by040cydvhw"))))
14811 (build-system emacs-build-system)
14812 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
14813 (synopsis "Control your GNU/Linux desktop environment from Emacs")
14814 (description
14815 "This package helps you control your GNU/Linux desktop from Emacs.
14816 With @code{desktop-environment}, you can control the brightness and volume as
14817 well as take screenshots and lock your screen. The package depends on the
14818 availability of shell commands to do the hard work for us. These commands can
14819 be changed by customizing the appropriate variables.")
14820 (license license:gpl3+)))
14821
14822 (define-public emacs-org-caldav
14823 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
14824 (package
14825 (name "emacs-org-caldav")
14826 (version (git-version "0.0.0" "1" commit))
14827 (source
14828 (origin
14829 (method git-fetch)
14830 (uri (git-reference
14831 (url "https://github.com/dengste/org-caldav.git")
14832 (commit commit)))
14833 (file-name (git-file-name name version))
14834 (sha256
14835 (base32
14836 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
14837 (build-system emacs-build-system)
14838 (arguments
14839 ;; Tests require to have two specific calendars on a test server.
14840 `(#:exclude '("^org-caldav-testsuite\\.el")))
14841 (propagated-inputs
14842 `(("emacs-org" ,emacs-org)))
14843 (home-page "https://github.com/dengste/org-caldav")
14844 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
14845 (description "Synchronize between events in Org files and a CalDAV
14846 calendar.")
14847 (license license:gpl3+))))
14848
14849 (define-public emacs-zotxt
14850 (package
14851 (name "emacs-zotxt")
14852 (version "20180518")
14853 (source
14854 (origin
14855 (method git-fetch)
14856 (uri (git-reference
14857 (url "https://github.com/egh/zotxt-emacs.git")
14858 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
14859 (file-name (git-file-name name version))
14860 (sha256
14861 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
14862 (build-system emacs-build-system)
14863 (propagated-inputs
14864 `(("emacs-deferred" ,emacs-deferred)
14865 ("emacs-request" ,emacs-request)))
14866 (home-page "https://github.com/egh/zotxt-emacs")
14867 (synopsis "Integrate Emacs with Zotero")
14868 (description "This package provides two integration features between Emacs
14869 and the Zotero research assistant: Insertion of links to Zotero items into an
14870 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
14871 (license license:gpl3+)))
14872
14873 (define-public emacs-evil-ediff
14874 ;; Evil-Ediff is included in Evil Collection from 20180617.
14875 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
14876
14877 (define-public emacs-evil-magit
14878 (let ((commit "4b66a1db8285457147a5436f209391016a819ea1")
14879 (revision "3"))
14880 (package
14881 (name "emacs-evil-magit")
14882 (version (git-version "0.4.2" revision commit))
14883 (source
14884 (origin
14885 (method git-fetch)
14886 (uri (git-reference
14887 (url "https://github.com/emacs-evil/evil-magit")
14888 (commit commit)))
14889 (file-name (git-file-name name version))
14890 (sha256
14891 (base32
14892 "0kkmbswfh34k3amfl3v140vsnz1gq4n4mg9g4khjd9yjph3zms4h"))))
14893 (build-system emacs-build-system)
14894 (propagated-inputs
14895 `(("emacs-evil" ,emacs-evil)
14896 ("magit" ,emacs-magit)))
14897 (arguments
14898 `(#:tests? #t
14899 #:test-command '("emacs" "-Q" "-batch"
14900 "-L" "."
14901 "-l" "evil-magit-tests"
14902 "-f" "ert-run-tests-batch-and-exit")))
14903 (home-page
14904 "https://github.com/emacs-evil/evil-magit")
14905 (synopsis "Evil-based key bindings for Magit")
14906 (description
14907 "This Emacs library configures Magit and Evil to play well with each other.
14908 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
14909 See the README at @url{https://github.com/justbur/evil-magit} for a table
14910 describing the key binding changes.")
14911 (license license:gpl3+))))
14912
14913 (define-public emacs-evil-mu4e
14914 ;; Evil-mu4e is included in Evil Collection from 20180617.
14915 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
14916
14917 (define-public emacs-evil-multiedit
14918 (package
14919 (name "emacs-evil-multiedit")
14920 (version "1.3.9")
14921 (source
14922 (origin
14923 (method git-fetch)
14924 (uri (git-reference
14925 (url "https://github.com/hlissner/evil-multiedit")
14926 (commit (string-append "v" version))))
14927 (file-name (git-file-name name version))
14928 (sha256
14929 (base32
14930 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
14931 (build-system emacs-build-system)
14932 (propagated-inputs
14933 `(("emacs-evil" ,emacs-evil)
14934 ("emacs-iedit" ,emacs-iedit)))
14935 (native-inputs
14936 `(("emacs-ert-runner" ,emacs-ert-runner)))
14937 (arguments
14938 `(#:phases
14939 (modify-phases %standard-phases
14940 (add-before 'check 'fix-makefile
14941 (lambda _
14942 (substitute* "Makefile"
14943 (("@cask exec ") ""))
14944 #t)))
14945 #:tests? #t
14946 #:test-command '("make" "test")))
14947 (home-page
14948 "https://github.com/hlissner/evil-multiedit")
14949 (synopsis "Multiple cursors for Evil mode")
14950 (description
14951 "This plugin was an answer to the lack of proper multiple cursor support
14952 in Emacs+Evil. It allows you to select and edit matches interactively,
14953 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
14954 defaults.")
14955 (license license:gpl3+)))
14956
14957 (define-public emacs-evil-mc
14958 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
14959 (revision "2"))
14960 (package
14961 (name "emacs-evil-mc")
14962 (version (git-version "0.0.3" revision commit))
14963 (source
14964 (origin
14965 (method git-fetch)
14966 (uri (git-reference
14967 (url "https://github.com/gabesoft/evil-mc.git")
14968 (commit commit)))
14969 (file-name (git-file-name name version))
14970 (sha256
14971 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
14972 (build-system emacs-build-system)
14973 (propagated-inputs
14974 `(("emacs-evil" ,emacs-evil)))
14975 (native-inputs
14976 `(("emacs-espuds" ,emacs-espuds)))
14977 (home-page "https://github.com/gabesoft/evil-mc")
14978 (synopsis "Interactive search compatible with @code{multiple-cursors}")
14979 (description "This package can be used with @code{multiple-cursors} to
14980 provide an incremental search that moves all fake cursors in sync.")
14981 (license license:expat))))
14982
14983 (define-public emacs-evil-org
14984 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
14985 (package
14986 (name "emacs-evil-org")
14987 (version (git-version "0.1.1" "1" commit))
14988 (source
14989 (origin
14990 (method git-fetch)
14991 (uri (git-reference
14992 (url "https://github.com/Somelauw/evil-org-mode")
14993 (commit commit)))
14994 (file-name (git-file-name name version))
14995 (sha256
14996 (base32
14997 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
14998 (build-system emacs-build-system)
14999 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
15000 (home-page
15001 "https://github.com/Somelauw/evil-org-mode")
15002 (synopsis "Evil keybindings for Org mode")
15003 (description
15004 "This package adds supplemental Evil mode key-bindings to Emacs
15005 Org-mode. It features:
15006 @itemize
15007 @item normal, visual and insert mode bindings;
15008 @item key bindings organised in key themes;
15009 @item operators like > and < to work on headings;
15010 @item text objects;
15011 @item table support;
15012 @item calendar (date selection) support;
15013 @item agenda support.
15014 @end itemize\n")
15015 (license license:gpl3+))))
15016
15017 (define-public emacs-debpaste
15018 (package
15019 (name "emacs-debpaste")
15020 (version "0.1.5")
15021 (home-page "https://github.com/alezost/debpaste.el")
15022 (source
15023 (origin
15024 (method git-fetch)
15025 (uri (git-reference (url home-page)
15026 (commit (string-append "v" version))))
15027 (file-name (git-file-name name version))
15028 (sha256
15029 (base32
15030 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
15031 (build-system emacs-build-system)
15032 (propagated-inputs
15033 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
15034 (synopsis "Manipulate pastes from the Debian Pastezone")
15035 (description "Debpaste is an Emacs interface for the Debian Pastezone,
15036 allowing you to receive, post, and delete pastes. It communicates with the
15037 server using XML-RPC.")
15038 (license license:gpl3+)))
15039
15040 (define-public emacs-xml-rpc
15041 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
15042 (revision "1"))
15043 (package
15044 (name "emacs-xml-rpc")
15045 (version (git-version "1.6.12" revision commit))
15046 (source
15047 (origin
15048 (method git-fetch)
15049 (uri (git-reference
15050 (url "https://github.com/hexmode/xml-rpc-el")
15051 (commit commit)))
15052 (file-name (git-file-name name version))
15053 (sha256
15054 (base32
15055 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
15056 (build-system emacs-build-system)
15057 (home-page "https://github.com/hexmode/xml-rpc-el")
15058 (synopsis "XML-RPC client for Emacs")
15059 (description "This package provides an XML-RPC client for Emacs capable
15060 of both synchronous and asynchronous method calls using the @code{url}
15061 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
15062 datatypes as Lisp values, automatically converting to and from the XML
15063 datastructures as needed, both for method parameters and return values, making
15064 using XML-RPC methods fairly transparent to the Lisp code.")
15065 (license license:gpl3+))))
15066
15067 (define-public emacs-xpm
15068 (package
15069 (name "emacs-xpm")
15070 (version "1.0.4")
15071 (source
15072 (origin
15073 (method url-fetch)
15074 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
15075 version ".tar"))
15076 (sha256
15077 (base32
15078 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
15079 (build-system emacs-build-system)
15080 (home-page "https://elpa.gnu.org/packages/xpm.html")
15081 (synopsis "XPM image editing mode for Emacs")
15082 (description "This Emacs package makes editing XPM images easy (and maybe
15083 fun). Editing is done directly on the (textual) image format, for maximal
15084 cohesion with the Emacs Way.")
15085 (license license:gpl3+)))
15086
15087 (define-public emacs-fish-completion
15088 (package
15089 (name "emacs-fish-completion")
15090 (version "1.1")
15091 (source
15092 (origin
15093 (method git-fetch)
15094 (uri (git-reference
15095 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
15096 (commit version)))
15097 (file-name (git-file-name name version))
15098 (sha256
15099 (base32
15100 "1pjqnbyjmj64q5nwq1mrdxcls4fp5y0b6zqs785i0s6wdvrm4021"))))
15101 (build-system emacs-build-system)
15102 (inputs `(("fish" ,fish)))
15103 (arguments
15104 `(#:phases
15105 (modify-phases %standard-phases
15106 (add-after 'unpack 'configure
15107 (lambda* (#:key inputs outputs #:allow-other-keys)
15108 (let ((fish (assoc-ref inputs "fish")))
15109 ;; Specify the absolute file names of the various
15110 ;; programs so that everything works out-of-the-box.
15111 (make-file-writable "fish-completion.el")
15112 (emacs-substitute-variables
15113 "fish-completion.el"
15114 ("fish-completion-command"
15115 (string-append fish "/bin/fish")))))))))
15116 (home-page
15117 "https://gitlab.com/Ambrevar/emacs-fish-completion")
15118 (synopsis "Fish completion for Emacs pcomplete")
15119 (description
15120 "This package provides completion for the Fish shell to pcomplete (used
15121 by shell and Eshell). You can set it up globally with:
15122
15123 @example
15124 (when (and (executable-find \"fish\")
15125 (require 'fish-completion nil t))
15126 (global-fish-completion-mode))
15127 @end example
15128
15129 Alternatively, you can call the @code{fish-completion-mode} manually or in
15130 shell/Eshell mode hook.
15131
15132 The package @code{emacs-bash-completion} is an optional dependency: if available,
15133 @code{fish-completion-complete} can be configured to fall back on bash to further
15134 try completing. See @code{fish-completion-fallback-on-bash-p}.")
15135 (license license:gpl3+)))
15136
15137 (define-public emacs-gif-screencast
15138 (let ((commit "248d1e158405e6cba2c65ecaed40e2c59b089cd8")
15139 (revision "2"))
15140 (package
15141 (name "emacs-gif-screencast")
15142 (version (git-version "1.0" revision commit))
15143 (source
15144 (origin
15145 (method git-fetch)
15146 (uri (git-reference
15147 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
15148 (commit commit)))
15149 (sha256
15150 (base32
15151 "19xqi5mgalnnhb4hw0fh7py2s2dllldx1xxbhwhknkdpifai8hl8"))))
15152 (build-system emacs-build-system)
15153 (inputs
15154 `(("scrot" ,scrot)
15155 ("imagemagick" ,imagemagick)
15156 ("gifsicle" ,gifsicle)))
15157 (arguments
15158 `(#:phases
15159 (modify-phases %standard-phases
15160 (add-after 'unpack 'configure
15161 (lambda* (#:key inputs outputs #:allow-other-keys)
15162 (let ((scrot (assoc-ref inputs "scrot"))
15163 (imagemagick (assoc-ref inputs "imagemagick"))
15164 (gifsicle (assoc-ref inputs "gifsicle")))
15165 (make-file-writable "gif-screencast.el")
15166 ;; Specify the absolute file names of the various
15167 ;; programs so that everything works out-of-the-box.
15168 (emacs-substitute-variables
15169 "gif-screencast.el"
15170 ("gif-screencast-program"
15171 (string-append scrot "/bin/scrot"))
15172 ("gif-screencast-convert-program"
15173 (string-append imagemagick "/bin/convert"))
15174 ("gif-screencast-cropping-program"
15175 (string-append imagemagick "/bin/mogrify"))
15176 ("gif-screencast-optimize-program"
15177 (string-append gifsicle "/bin/gifsicle")))))))))
15178 (home-page
15179 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
15180 (synopsis "One-frame-per-action GIF recording")
15181 (description
15182 "Call @code{gif-screencast} to start a recording.
15183 A screenshot is taken for every user action. Call
15184 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
15185 the GIF result.")
15186 (license license:gpl3+))))
15187
15188 (define-public emacs-google-translate
15189 (package
15190 (name "emacs-google-translate")
15191 (version "0.11.18")
15192 (source
15193 (origin
15194 (method git-fetch)
15195 (uri (git-reference
15196 (url "https://github.com/atykhonov/google-translate/")
15197 (commit (string-append "v" version))))
15198 (file-name (git-file-name name version))
15199 (sha256
15200 (base32
15201 "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
15202 (build-system emacs-build-system)
15203 (home-page "https://github.com/atykhonov/google-translate")
15204 (synopsis "Emacs interface to Google Translate")
15205 (description
15206 "This package provides an Emacs interface to the Google Translate
15207 on-line service.")
15208 (license license:gpl3+)))
15209
15210 (define-public emacs-helm-company
15211 (package
15212 (name "emacs-helm-company")
15213 (version "0.2.5")
15214 (source
15215 (origin
15216 (method git-fetch)
15217 (uri (git-reference
15218 (url "https://github.com/Sodel-the-Vociferous/helm-company")
15219 (commit (string-append "v" version))))
15220 (file-name (git-file-name name version))
15221 (sha256
15222 (base32
15223 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
15224 (build-system emacs-build-system)
15225 (propagated-inputs
15226 `(("emacs-helm" ,emacs-helm)
15227 ("emacs-company" ,emacs-company)))
15228 (native-inputs
15229 `(("emacs-ert-runner" ,emacs-ert-runner)))
15230 (arguments
15231 `(#:tests? #t
15232 #:test-command '("ert-runner")))
15233 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
15234 (synopsis "Helm interface for company-mode")
15235 (description
15236 "This is a Helm interface to company-mode, a text completion
15237 framework.")
15238 (license license:gpl3+)))
15239
15240 (define-public emacs-helm-descbinds
15241 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
15242 (package
15243 (name "emacs-helm-descbinds")
15244 (version (git-version "1.13" "1" commit))
15245 (source
15246 (origin
15247 (method git-fetch)
15248 (uri (git-reference
15249 (url "https://github.com/emacs-helm/helm-descbinds")
15250 (commit commit)))
15251 (file-name (git-file-name name version))
15252 (sha256
15253 (base32
15254 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
15255 (build-system emacs-build-system)
15256 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
15257 (home-page "https://github.com/emacs-helm/helm-descbinds")
15258 (synopsis "Convenient @code{describe-bindings} with Helm")
15259 (description
15260 "This package is a replacement of @code{describe-bindings} for Helm.
15261 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
15262 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
15263 @code{helm-descbinds}. The bindings are presented in a similar way as
15264 @code{describe-bindings} does, but you can use completion to find the command
15265 you searched for and execute it, or view its documentation.")
15266 (license license:gpl3+))))
15267
15268 (define-public emacs-helm-emms
15269 (let ((commit "b785cb845a98a643eba9d5d53c9c0b4e6810a3cd"))
15270 (package
15271 (name "emacs-helm-emms")
15272 (version (git-version "1.3" "2" commit))
15273 (source
15274 (origin
15275 (method git-fetch)
15276 (uri (git-reference
15277 (url "https://github.com/emacs-helm/helm-emms")
15278 (commit commit)))
15279 (file-name (git-file-name name version))
15280 (sha256
15281 (base32
15282 "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh"))))
15283 (build-system emacs-build-system)
15284 (propagated-inputs
15285 `(("emacs-helm" ,emacs-helm)
15286 ("emacs-emms" ,emacs-emms)))
15287 (home-page
15288 "https://github.com/emacs-helm/helm-emms")
15289 (synopsis "Emms for Helm")
15290 (description "Helm interface for Emms to browse all tracks and all folders
15291 from @code{emms-source-file-default-directory}.")
15292 (license license:gpl3+))))
15293
15294 (define-public emacs-helm-exwm
15295 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
15296 (package
15297 (name "emacs-helm-exwm")
15298 (version (git-version "20180703" "2" commit))
15299 (source
15300 (origin
15301 (method git-fetch)
15302 (uri (git-reference
15303 (url "https://github.com/emacs-helm/helm-exwm.git")
15304 (commit commit)))
15305 (sha256
15306 (base32 "064ziinqa5sdv7rfjn0y278l12kld176fr88k4h78pgf2f2n7cd8"))))
15307 (build-system emacs-build-system)
15308 (propagated-inputs
15309 `(("emacs-helm" ,emacs-helm)
15310 ("emacs-exwm" ,emacs-exwm)))
15311 (home-page
15312 "https://github.com/emacs-helm/helm-exwm")
15313 (synopsis "Helm for EXWM buffers")
15314 (description
15315 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
15316 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
15317 switch between the various windows of one or several specific applications.
15318 See @code{helm-exwm-switch-browser} for an example.")
15319 (license license:gpl3+))))
15320
15321 (define-public emacs-helm-flycheck
15322 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
15323 (package
15324 (name "emacs-helm-flycheck")
15325 (version (git-version "0.4" "1" commit))
15326 (source
15327 (origin
15328 (method git-fetch)
15329 (uri (git-reference
15330 (url "https://github.com/yasuyk/helm-flycheck")
15331 (commit commit)))
15332 (file-name (git-file-name name version))
15333 (sha256
15334 (base32
15335 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
15336 (build-system emacs-build-system)
15337 (propagated-inputs
15338 `(("emacs-dash" ,emacs-dash)
15339 ("emacs-flycheck" ,emacs-flycheck)
15340 ("emacs-helm" ,emacs-helm)))
15341 (home-page "https://github.com/yasuyk/helm-flycheck")
15342 (synopsis "Show Flycheck errors with Helm")
15343 (description
15344 "This integrates Flycheck with Helm.")
15345 (license license:gpl3+))))
15346
15347 (define-public emacs-helm-ls-git
15348 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
15349 (package
15350 (name "emacs-helm-ls-git")
15351 (version (git-version "1.9.1" "1" commit))
15352 (source
15353 (origin
15354 (method git-fetch)
15355 (uri (git-reference
15356 (url "https://github.com/emacs-helm/helm-ls-git")
15357 (commit commit)))
15358 (file-name (git-file-name name version))
15359 (sha256
15360 (base32
15361 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
15362 (build-system emacs-build-system)
15363 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
15364 (home-page "https://github.com/emacs-helm/helm-ls-git")
15365 (synopsis "Helm interface for listing the files in a Git repository")
15366 (description
15367 "This package provides a Helm interface for Git files.
15368 @itemize
15369 @item Display the open buffers in project.
15370 @item Display a status source showing state of project (modified files etc.).
15371 @item Display a list of all files in project under git control.
15372 @item Quickly look at diffs of modified files.
15373 @item Allow switching to @code{git status} with your preferred frontend
15374 (vc-dir, Magit,etc.).
15375 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
15376 can use ack-grep instead of grep).
15377 @item Integrate usage of gid from id-utils.
15378 @item Full integration with @code{helm-find-files}, allow you to browse
15379 projects unrelated to current-buffer.
15380 @item In addition, all actions of type files and buffers are provided.
15381 @end itemize\n")
15382 (license license:gpl3+))))
15383
15384 (define-public emacs-helm-mu
15385 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
15386 (package
15387 (name "emacs-helm-mu")
15388 (version (git-version "20180513" "1" commit))
15389 (source
15390 (origin
15391 (method git-fetch)
15392 (uri (git-reference
15393 (url "https://github.com/emacs-helm/helm-mu.git")
15394 (commit commit)))
15395 (sha256
15396 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
15397 (build-system emacs-build-system)
15398 (propagated-inputs
15399 `(("emacs-helm" ,emacs-helm)
15400 ("mu" ,mu)))
15401 (home-page
15402 "https://github.com/emacs-helm/helm-mu")
15403 (synopsis
15404 "Helm sources for searching emails and contacts")
15405 (description
15406 "Helm sources for searching emails and contacts using @code{mu} and
15407 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
15408 Emacs build on top of mu. Mu is highly efficient making it possible to get
15409 instant results even for huge maildirs. It also provides search operators,
15410 e.g: @code{from:Peter to:Anne flag:attach search term}.")
15411 (license license:gpl3+))))
15412
15413 (define-public emacs-helm-pass
15414 (package
15415 (name "emacs-helm-pass")
15416 (version "0.3")
15417 (source
15418 (origin
15419 (method git-fetch)
15420 (uri (git-reference
15421 (url "https://github.com/emacs-helm/helm-pass")
15422 (commit version)))
15423 (file-name (git-file-name name version))
15424 (sha256
15425 (base32
15426 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
15427 (build-system emacs-build-system)
15428 (propagated-inputs
15429 `(("emacs-helm" ,emacs-helm)
15430 ("emacs-password-store" ,emacs-password-store)))
15431 (home-page "https://github.com/emacs-helm/helm-pass")
15432 (synopsis "Helm interface to pass, the standard Unix password manager")
15433 (description
15434 "Users of @code{helm-pass} may also be interested in functionality
15435 provided by other Emacs packages dealing with pass:
15436 @itemize
15437 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
15438 @item @code{emacs-pass}, a major mode for @code{pass}.
15439 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
15440 @code{pass}, included in Emacs 26+).
15441 @end itemize\n")
15442 (license license:gpl3+)))
15443
15444 (define-public emacs-image+
15445 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
15446 (package
15447 (name "emacs-image+")
15448 (version (git-version "0.6.2" "1" commit))
15449 (source
15450 (origin
15451 (method git-fetch)
15452 (uri (git-reference
15453 (url "https://github.com/mhayashi1120/Emacs-imagex")
15454 (commit commit)))
15455 (file-name (git-file-name name version))
15456 (sha256
15457 (base32
15458 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
15459 (build-system emacs-build-system)
15460 (inputs `(("imagemagick" ,imagemagick)))
15461 (arguments
15462 `(#:phases
15463 (modify-phases %standard-phases
15464 (add-after 'unpack 'configure
15465 (lambda* (#:key inputs outputs #:allow-other-keys)
15466 (let ((imagemagick (assoc-ref inputs "imagemagick")))
15467 ;; Specify the absolute file names of the various
15468 ;; programs so that everything works out-of-the-box.
15469 (chmod "image+.el" #o666)
15470 (emacs-substitute-variables
15471 "image+.el"
15472 ("imagex-convert-command"
15473 (string-append imagemagick "/bin/convert"))
15474 ("imagex-identify-command"
15475 (string-append imagemagick "/bin/identify")))))))))
15476 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
15477 (synopsis "Image manipulation extensions for Emacs")
15478 (description
15479 "Image+ provides keybindings allowing you to zoom in or zoom out of an
15480 image, rotate it, save modified images, and more.")
15481 (license license:gpl3+))))
15482
15483 (define-public emacs-package-lint
15484 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
15485 (package
15486 (name "emacs-package-lint")
15487 (version (git-version "0.5" "1" commit))
15488 (source
15489 (origin
15490 (method git-fetch)
15491 (uri (git-reference
15492 (url "https://github.com/purcell/package-lint")
15493 (commit commit)))
15494 (file-name (git-file-name name version))
15495 (sha256
15496 (base32
15497 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
15498 (build-system emacs-build-system)
15499 (home-page "https://github.com/purcell/package-lint")
15500 (synopsis "Linting library for elisp package authors")
15501 (description
15502 "This provides a list of issues with the Emacs package metadata of a file,
15503 e.g. the package dependencies it requires. See function
15504 @code{package-lint-buffer}. Checks will currently be enabled only if a
15505 \"Package-Requires:\" or \"Package-Version:\" header is present in the
15506 file.")
15507 (license license:gpl3+))))
15508
15509 (define-public emacs-picpocket
15510 (let ((version "40")
15511 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
15512 (package
15513 (name "emacs-picpocket")
15514 (version version)
15515 (source
15516 (origin
15517 (method git-fetch)
15518 (uri (git-reference
15519 (url "https://github.com/johanclaesson/picpocket")
15520 (commit commit)))
15521 (file-name (git-file-name name version))
15522 (sha256
15523 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
15524 (build-system emacs-build-system)
15525 (arguments ; needed for running tests
15526 `(#:tests? #t
15527 #:emacs ,emacs
15528 #:test-command '("emacs" "--batch"
15529 "-l" "picpocket-test.el"
15530 "-f" "ert-run-tests-batch-and-exit")))
15531 (home-page "https://github.com/johanclaesson/picpocket")
15532 (synopsis "Image viewer for Emacs")
15533 (description
15534 "Picpocket is an image viewer for GNU Emacs. It has commands for:
15535
15536 @itemize
15537 @item File operations on the picture files (delete, move, copy, hardlink).
15538 @item Scale and rotate the picture.
15539 @item Associate pictures with tags which are saved to disk.
15540 @item Filter pictures according to tags.
15541 @item Customizing keystrokes for quick tagging and file operations.
15542 @item Undo and browse history of undoable commands.
15543 @end itemize")
15544 (license license:gpl3+))))
15545
15546 (define-public emacs-wgrep-helm
15547 ;; `emacs-wgrep-helm' was mistakenly added.
15548 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
15549
15550 (define-public emacs-mu4e-conversation
15551 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
15552 (revision "5"))
15553 (package
15554 (name "emacs-mu4e-conversation")
15555 (version (git-version "0.0.1" revision commit))
15556 (source
15557 (origin
15558 (method git-fetch)
15559 (uri (git-reference
15560 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
15561 (commit commit)))
15562 (file-name (git-file-name name version))
15563 (sha256
15564 (base32
15565 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
15566 (build-system emacs-build-system)
15567 (propagated-inputs
15568 `(("mu" ,mu)))
15569 (home-page
15570 "https://gitlab.com/Ambrevar/mu4e-conversation")
15571 (synopsis
15572 "Show a complete thread in a single buffer")
15573 (description
15574 "This package offers an alternate view to mu4e's e-mail display. It
15575 shows all e-mails of a thread in a single view, where each correspondent has
15576 their own face. Threads can be displayed linearly (in which case e-mails are
15577 displayed in chronological order) or as an Org document where the node tree
15578 maps the thread tree.")
15579 (license license:gpl3+))))
15580
15581 (define-public emacs-pinentry
15582 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
15583 (revision "1"))
15584 (package
15585 (name "emacs-pinentry")
15586 (version (git-version "0.1" revision commit))
15587 (source
15588 (origin
15589 (method url-fetch)
15590 (uri (string-append
15591 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
15592 "/packages/pinentry/pinentry.el?id=" commit))
15593 (file-name (string-append "pinentry.el"))
15594 (sha256
15595 (base32
15596 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
15597 (build-system emacs-build-system)
15598 (propagated-inputs
15599 `(("gnupg" ,gnupg)))
15600 (home-page "https://elpa.gnu.org/packages/pinentry.html")
15601 (synopsis "GnuPG Pinentry server implementation")
15602 (description
15603 "This package allows GnuPG passphrase to be prompted through the
15604 minibuffer instead of graphical dialog.
15605
15606 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
15607 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
15608 server with @code{M-x pinentry-start}.")
15609 (license license:gpl3+))))
15610
15611 (define-public emacs-so-long
15612 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
15613 (revision "2"))
15614 (package
15615 (name "emacs-so-long")
15616 (version (git-version "1.0" revision commit))
15617 (source
15618 (origin
15619 (method git-fetch)
15620 (uri (git-reference
15621 (url "https://git.savannah.gnu.org/git/so-long.git")
15622 (commit commit)))
15623 (file-name (git-file-name name version))
15624 (sha256
15625 (base32
15626 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
15627 (build-system emacs-build-system)
15628 (home-page "https://www.emacswiki.org/emacs/SoLong")
15629 (synopsis "Improve performance in files with long lines")
15630 (description "This package improves the performance of Emacs when
15631 viewing files with long lines.")
15632 (license license:gpl3+))))
15633
15634 (define-public emacs-github-review
15635 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
15636 (revision "2"))
15637 (package
15638 (name "emacs-github-review")
15639 (version (git-version "0.1" revision commit))
15640 (source
15641 (origin
15642 (method git-fetch)
15643 (uri (git-reference
15644 (url "https://github.com/charignon/github-review")
15645 (commit commit)))
15646 (file-name (git-file-name name version))
15647 (sha256
15648 (base32
15649 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
15650 (build-system emacs-build-system)
15651 (inputs
15652 `(("emacs-dash" ,emacs-dash)
15653 ("emacs-s" ,emacs-s)
15654 ("emacs-ghub" ,emacs-ghub)))
15655 (native-inputs
15656 `(("emacs-buttercup" ,emacs-buttercup)
15657 ("emacs-undercover" ,emacs-undercover)))
15658 (arguments
15659 `(#:tests? #t
15660 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
15661 (home-page "https://github.com/charignon/github-review")
15662 (synopsis "Review GitHub pull requests within Emacs")
15663 (description "This package provides commands to pull in, comment on, and
15664 accept and reject GitHub pull requests.")
15665 (license license:gpl3+))))
15666
15667 (define-public emacs-deadgrep
15668 (let ((commit "3fc7ca1f58e190f0c80da455a0e40187e673020e")
15669 (revision "2"))
15670 (package
15671 (name "emacs-deadgrep")
15672 (version (git-version "0.8" revision commit))
15673 (source
15674 (origin
15675 (method git-fetch)
15676 (uri (git-reference
15677 (url "https://github.com/Wilfred/deadgrep")
15678 (commit commit)))
15679 (file-name (git-file-name name version))
15680 (sha256
15681 (base32
15682 "016gwqxd9aqzjw3hqv3vdf8cs6la8r65g6azg5rlmjqwfx3vsaha"))))
15683 (build-system emacs-build-system)
15684 (inputs
15685 `(("emacs-dash" ,emacs-dash)
15686 ("emacs-s" ,emacs-s)
15687 ("emacs-spinner" ,emacs-spinner)))
15688 (home-page "https://github.com/Wilfred/deadgrep")
15689 (synopsis "Frontend for @code{ripgrep}")
15690 (description "This package provides an Emacs interface for performing
15691 searches with @code{ripgrep}.")
15692 (license license:gpl3+))))
15693
15694 (define-public emacs-focus
15695 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
15696 (version "0.1.1")
15697 (revision "1"))
15698 (package
15699 (name "emacs-focus")
15700 (version (git-version version revision commit))
15701 (source
15702 (origin
15703 (method git-fetch)
15704 (uri (git-reference
15705 (url "https://github.com/larstvei/Focus")
15706 (commit commit)))
15707 (file-name (git-file-name name version))
15708 (sha256
15709 (base32
15710 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
15711 (build-system emacs-build-system)
15712 (home-page "https://github.com/larstvei/Focus")
15713 (synopsis "Minor mode for focusing in on relevant text")
15714 (description "This package provides a minor mode that dims the color of
15715 text in neighboring sections.")
15716 (license license:gpl3+))))
15717
15718 (define-public emacs-pandoc-mode
15719 (package
15720 (name "emacs-pandoc-mode")
15721 (version "2.27.2")
15722 (source
15723 (origin
15724 (method git-fetch)
15725 (uri (git-reference
15726 (url "https://github.com/joostkremers/pandoc-mode")
15727 (commit version)))
15728 (file-name (git-file-name name version))
15729 (sha256
15730 (base32
15731 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
15732 (build-system emacs-build-system)
15733 (propagated-inputs
15734 `(("emacs-dash" ,emacs-dash)
15735 ("emacs-hydra" ,emacs-hydra)))
15736 (home-page "https://github.com/joostkremers/pandoc-mode")
15737 (synopsis "Minor mode for interacting with Pandoc")
15738 (description "This package provides a Hydra menu for interacting with the
15739 Pandoc, the document-conversion tool.")
15740 (license license:bsd-3)))
15741
15742 (define-public emacs-ccls
15743 (let ((commit "b1acc336f27d8a3bbc750c2dc3be915a4ac1afea")
15744 (revision "3"))
15745 (package
15746 (name "emacs-ccls")
15747 (version (git-version "0.1" revision commit))
15748 (source
15749 (origin
15750 (method git-fetch)
15751 (uri (git-reference
15752 (url "https://github.com/MaskRay/emacs-ccls")
15753 (commit commit)))
15754 (file-name (git-file-name name version))
15755 (sha256
15756 (base32
15757 "1qgfxc5d1hb32ks1fxpx7agpw7dvnkz99wydlflc9fqq75g8v142"))))
15758 (build-system emacs-build-system)
15759 (propagated-inputs
15760 `(("emacs-dash" ,emacs-dash)
15761 ("emacs-projectile" ,emacs-projectile)
15762 ("emacs-lsp-mode" ,emacs-lsp-mode)))
15763 (home-page "https://github.com/MaskRay/emacs-ccls")
15764 (synopsis "Emacs support for the @code{ccls} language server")
15765 (description "This package extends @code{lsp-mode} to work with @code{C}
15766 and @code{C++} files through the @code{ccls} language server.")
15767 (license license:bsd-3))))
15768
15769 (define-public emacs-org-brain
15770 (package
15771 (name "emacs-org-brain")
15772 (version "0.5")
15773 (source
15774 (origin
15775 (method git-fetch)
15776 (uri (git-reference
15777 (url "https://github.com/Kungsgeten/org-brain.git")
15778 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
15779 (file-name (git-file-name name version))
15780 (sha256
15781 (base32
15782 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
15783 (build-system emacs-build-system)
15784 (home-page "https://github.com/Kungsgeten/org-brain")
15785 (synopsis "Org-mode wiki and concept-mapping for Emacs")
15786 (description "@code{emacs-org-brain} implements a variant of concept
15787 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
15788 org-mode entries, where each entry is a file or a headline, and you can get a
15789 visual overview of the relationships between the entries: parents, children,
15790 siblings and friends. This visual overview can also be used to browse your
15791 entries. You can think of entries as nodes in a mind map, or pages in a
15792 wiki.")
15793 (license license:expat)))
15794
15795 (define-public emacs-recent-addresses
15796 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
15797 (revision "1"))
15798 (package
15799 (name "emacs-recent-addresses")
15800 (home-page "http://nschum.de/src/emacs/recent-addresses/")
15801 (version (git-version "0.1" revision commit))
15802 (source (origin
15803 (method git-fetch)
15804 (uri (git-reference
15805 ;; Note: Use a branch that works with Helm. Submitted
15806 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
15807 (url "https://github.com/civodul/recent-addresses.el")
15808 (commit commit)))
15809 (sha256
15810 (base32
15811 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
15812 (file-name (git-file-name name version))))
15813 (build-system emacs-build-system)
15814 (synopsis "Record recently-used email addressed and auto-complete them")
15815 (description
15816 "@code{recent-addresses} is an Emacs package that allows you to quickly
15817 look up previously used email addresses. It can be used alongside the Gnus
15818 email client.")
15819 (license license:gpl2+))))
15820
15821 (define-public emacs-fold-dwim
15822 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
15823 (revision "0"))
15824 (package
15825 (name "emacs-fold-dwim")
15826 (version (git-version "1.2" revision commit))
15827 (home-page "https://github.com/emacsattic/fold-dwim")
15828 (source (origin
15829 (method git-fetch)
15830 (uri (git-reference (url home-page) (commit commit)))
15831 (sha256
15832 (base32
15833 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
15834 (file-name (git-file-name name version))))
15835 (build-system emacs-build-system)
15836 (synopsis "Unified user interface for Emacs folding modes")
15837 (description
15838 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
15839 can do different things depending on the context. In this package, it means
15840 that, if the cursor is in a currently hidden folded construction, we want to
15841 show it; if it's not, we want to hide whatever fold the cursor is in.")
15842 (license license:gpl2+))))
15843
15844 (define-public emacs-markup-faces
15845 (package
15846 (name "emacs-markup-faces")
15847 (version "1.0.0")
15848 (source
15849 (origin
15850 (method url-fetch)
15851 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
15852 version ".el"))
15853 (sha256
15854 (base32
15855 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
15856 (build-system emacs-build-system)
15857 (home-page "https://github.com/sensorflo/markup-faces")
15858 (synopsis "Collection of Emacs faces for markup language modes")
15859 (description "emacs-markup-faces is like font-lock-faces, but tailored for
15860 markup languages instead programming languages. The sub group markup-faces-text
15861 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
15862 common look and feel, or let's say theme, across different markup language modes
15863 and 'text viewing modes' respectively.")
15864 (license license:gpl3+)))
15865
15866 (define-public emacs-adoc-mode
15867 (package
15868 (name "emacs-adoc-mode")
15869 (version "0.6.6")
15870 (source
15871 (origin
15872 (method url-fetch)
15873 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
15874 version ".el"))
15875 (sha256
15876 (base32
15877 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
15878 (build-system emacs-build-system)
15879 (propagated-inputs
15880 `(("emacs-markup-faces" ,emacs-markup-faces)))
15881 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
15882 (synopsis "AsciiDoc mode for Emacs")
15883 (description "This package provides an Emacs major mode for editing AsciiDoc
15884 files. It focuses on highlighting the document to improve readability.")
15885 (license license:gpl2+)))
15886
15887 (define-public emacs-rust-mode
15888 (package
15889 (name "emacs-rust-mode")
15890 (version "0.4.0")
15891 (source (origin
15892 (method git-fetch)
15893 (uri (git-reference
15894 (url "https://github.com/rust-lang/rust-mode")
15895 (commit version)))
15896 (file-name (git-file-name name version))
15897 (sha256
15898 (base32
15899 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
15900 (build-system emacs-build-system)
15901 (arguments
15902 `(#:phases
15903 (modify-phases %standard-phases
15904 (replace 'check
15905 (lambda _
15906 (invoke "sh" "run_rust_emacs_tests.sh"))))))
15907 (home-page "https://github.com/rust-lang/rust-mode")
15908 (synopsis "Major Emacs mode for editing Rust source code")
15909 (description "This package provides a major Emacs mode for editing Rust
15910 source code.")
15911 (license (list license:expat
15912 license:asl2.0))))
15913
15914 (define-public emacs-ztree
15915 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
15916 (package
15917 (name "emacs-ztree")
15918 (version (git-version "1.0.5" "1" commit))
15919 (source
15920 (origin
15921 (method git-fetch)
15922 (uri (git-reference
15923 (url "https://github.com/fourier/ztree")
15924 (commit commit)))
15925 (file-name (git-file-name name version))
15926 (sha256
15927 (base32
15928 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
15929 (build-system emacs-build-system)
15930 (home-page "https://github.com/fourier/ztree")
15931 (synopsis "Directory tree comparison mode for Emacs")
15932 (description "Ztree is a project dedicated to implementation of several
15933 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
15934 @command{ztree-diff} and @command{ztree-dir} (the basis of
15935 @command{ztree-diff}).")
15936 (license license:gpl3))))
15937
15938 (define-public emacs-helm-org-contacts
15939 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
15940 (package
15941 (name "emacs-helm-org-contacts")
15942 (version (git-version "20180707" "1" commit))
15943 (source
15944 (origin
15945 (method git-fetch)
15946 (uri (git-reference
15947 (url "https://github.com/tmalsburg/helm-org-contacts")
15948 (commit commit)))
15949 (file-name (git-file-name name version))
15950 (sha256
15951 (base32
15952 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
15953 (build-system emacs-build-system)
15954 (propagated-inputs
15955 `(("emacs-dash" ,emacs-dash)
15956 ("emacs-helm" ,emacs-helm)
15957 ("emacs-s" ,emacs-s)))
15958 (home-page "https://github.com/tmalsburg/helm-org-contacts")
15959 (synopsis "Helm source for org-contacts")
15960 (description "This Helm source can be used to search contacts stored in
15961 org-contacts format. There are actions for inserting postal addresses, email
15962 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
15963 was called.")
15964 (license license:gpl3))))
15965
15966 (define-public emacs-dired-du
15967 (package
15968 (name "emacs-dired-du")
15969 (version "0.5.2")
15970 (source
15971 (origin
15972 (method url-fetch)
15973 (uri (string-append
15974 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
15975 (sha256
15976 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
15977 (build-system emacs-build-system)
15978 (home-page "https://elpa.gnu.org/packages/dired-du.html")
15979 (synopsis "Dired with recursive directory sizes")
15980 (description
15981 "Display the recursive size of directories in Dired.
15982 This file defines a minor mode @command{dired-du-mode} to show the recursive
15983 size of directories in Dired buffers. If @command{du} program is available,
15984 then the directory sizes are obtained with it. Otherwise, the directory sizes
15985 are obtained with Lisp. The former is faster and provide a more precise
15986 value. For directories where the user doesn't have read permission, the
15987 recursive size is not obtained. Once this mode is enabled, every new Dired
15988 buffer displays recursive dir sizes.")
15989 (license license:gpl3+)))
15990
15991 (define-public emacs-dired-rsync
15992 (package
15993 (name "emacs-dired-rsync")
15994 (version "0.4")
15995 (source (origin
15996 (method git-fetch)
15997 (uri (git-reference
15998 (url "https://github.com/stsquad/dired-rsync.git")
15999 (commit version)))
16000 (file-name (git-file-name name version))
16001 (sha256
16002 (base32
16003 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
16004 (build-system emacs-build-system)
16005 (propagated-inputs
16006 `(("emacs-s" ,emacs-s)
16007 ("emacs-dash" ,emacs-dash)))
16008 (home-page "https://github.com/stsquad/dired-rsync/")
16009 (synopsis "Support for rsync from Emacs dired buffers")
16010 (description "This package adds a single command @code{dired-rsync} which
16011 allows the user to copy marked files in a dired buffer via @code{rsync}. This
16012 is useful, especially for large files, because the copy happens in the
16013 background and doesn’t lock up Emacs. It is also more efficient than using
16014 tramps own encoding methods for moving data between systems.")
16015 (license license:gpl3+)))
16016
16017 (define-public emacs-pcre2el
16018 ;; Last release is very old so we get the latest commit.
16019 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
16020 (package
16021 (name "emacs-pcre2el")
16022 (version (git-version "1.8" "1" commit))
16023 (source
16024 (origin
16025 (method git-fetch)
16026 (uri (git-reference
16027 (url "https://github.com/joddie/pcre2el")
16028 (commit commit)))
16029 (file-name (git-file-name name version))
16030 (sha256
16031 (base32
16032 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
16033 (build-system emacs-build-system)
16034 (home-page "https://github.com/joddie/pcre2el")
16035 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
16036 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
16037 Tools) is a utility for working with regular expressions in Emacs, based on a
16038 recursive-descent parser for regexp syntax. In addition to converting (a
16039 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
16040
16041 @itemize
16042 @item convert Emacs syntax to PCRE
16043 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
16044 @item untangle complex regexps by showing the parse tree in @code{rx} form and
16045 highlighting the corresponding chunks of code
16046 @item show the complete list of strings (productions) matching a regexp,
16047 provided the list is finite
16048 @item provide live font-locking of regexp syntax (so far only for Elisp
16049 buffers – other modes on the TODO list).
16050 @end itemize\n")
16051 (license license:gpl3))))
16052
16053 (define-public emacs-magit-todos
16054 (package
16055 (name "emacs-magit-todos")
16056 (version "1.4")
16057 (source
16058 (origin
16059 (method git-fetch)
16060 (uri (git-reference
16061 (url "https://github.com/alphapapa/magit-todos")
16062 (commit version)))
16063 (file-name (git-file-name name version))
16064 (sha256
16065 (base32
16066 "09pjb4k409gc0h51vb5az1shx02c1hx8cnvhi529n7dm4maildg5"))))
16067 (build-system emacs-build-system)
16068 (propagated-inputs
16069 `(("emacs-async" ,emacs-async)
16070 ("emacs-dash" ,emacs-dash)
16071 ("emacs-f" ,emacs-f)
16072 ("emacs-hl-todo" ,emacs-hl-todo)
16073 ("magit" ,emacs-magit)
16074 ("emacs-pcre2el" ,emacs-pcre2el)
16075 ("emacs-s" ,emacs-s)))
16076 (home-page "https://github.com/alphapapa/magit-todos")
16077 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
16078 (description "This package displays keyword entries from source code
16079 comments and Org files in the Magit status buffer. Activating an item jumps
16080 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
16081 few (like NOTE).")
16082 (license license:gpl3)))
16083
16084 (define-public emacs-git-annex
16085 ;; Unreleased version has a fontification fix.
16086 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
16087 (revision "2"))
16088 (package
16089 (name "emacs-git-annex")
16090 (version (git-version "1.1" revision commit))
16091 (source
16092 (origin
16093 (method git-fetch)
16094 (uri (git-reference
16095 (url "https://github.com/jwiegley/git-annex-el")
16096 (commit commit)))
16097 (file-name (git-file-name name version))
16098 (sha256
16099 (base32
16100 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
16101 (build-system emacs-build-system)
16102 (home-page "https://github.com/jwiegley/git-annex-el")
16103 (synopsis "Emacs integration for git-annex")
16104 (description "Enhances Dired and buffers visiting annex files with
16105 git-annex functionality. In Dired, the names of annex files are shortened by
16106 hiding the symbolic links and fontified based on whether content is present.
16107 Commands for performing some common operations (e.g., unlocking and adding
16108 files) are provided.")
16109 (license license:gpl2+))))
16110
16111 (define-public emacs-hackernews
16112 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
16113 (revision "2"))
16114 (package
16115 (name "emacs-hackernews")
16116 (version (git-version "0.5.0" revision commit))
16117 (source
16118 (origin
16119 (method git-fetch)
16120 (uri (git-reference
16121 (url "https://github.com/clarete/hackernews.el")
16122 (commit commit)))
16123 (file-name (git-file-name name version))
16124 (sha256
16125 (base32
16126 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
16127 (build-system emacs-build-system)
16128 (home-page "https://github.com/clarete/hackernews.el")
16129 (synopsis "Hacker News client for Emacs")
16130 (description "The @command{hackernews} package is able to fetch stories
16131 from six different Hacker News feeds, namely top, new, best, ask, show and job
16132 stories. The default feed is top stories, which corresponds to the Hacker
16133 News homepage.")
16134 (license license:gpl3))))
16135
16136 (define-public emacs-youtube-dl
16137 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
16138 (revision "2"))
16139 (package
16140 (name "emacs-youtube-dl")
16141 (version (git-version "1.0" "2" commit))
16142 (source
16143 (origin
16144 (method git-fetch)
16145 (uri (git-reference
16146 (url "https://github.com/skeeto/youtube-dl-emacs/")
16147 (commit commit)))
16148 (file-name (git-file-name name version))
16149 (sha256
16150 (base32
16151 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
16152 (build-system emacs-build-system)
16153 (inputs
16154 `(("youtube-dl" ,youtube-dl)))
16155 (arguments
16156 `(#:phases
16157 (modify-phases %standard-phases
16158 (add-after 'unpack 'configure
16159 (lambda* (#:key inputs #:allow-other-keys)
16160 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
16161 ;; .el is read-only in git.
16162 (chmod "youtube-dl.el" #o644)
16163 ;; Specify the absolute file names of the various
16164 ;; programs so that everything works out-of-the-box.
16165 (emacs-substitute-variables
16166 "youtube-dl.el"
16167 ("youtube-dl-program"
16168 (string-append youtube-dl "/bin/youtube-dl")))))))))
16169 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
16170 (synopsis "Emacs youtube-dl download manager")
16171 (description "This package manages a video download queue for
16172 @command{youtube-dl}, which serves as the back end. It manages a single
16173 @command{youtube-dl} subprocess, downloading one video at a time. New videos
16174 can be queued at any time.")
16175 (license license:unlicense))))
16176
16177 (define-public emacs-org-web-tools
16178 (package
16179 (name "emacs-org-web-tools")
16180 (version "1.0")
16181 (source
16182 (origin
16183 (method git-fetch)
16184 (uri (git-reference
16185 (url "https://github.com/alphapapa/org-web-tools")
16186 (commit version)))
16187 (file-name (git-file-name name version))
16188 (sha256
16189 (base32
16190 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
16191 (build-system emacs-build-system)
16192 (propagated-inputs
16193 `(("emacs-dash" ,emacs-dash)
16194 ("emacs-esxml" ,emacs-esxml)
16195 ("emacs-s" ,emacs-s)))
16196 (inputs
16197 `(("pandoc" ,ghc-pandoc)))
16198 (arguments
16199 `(#:phases
16200 (modify-phases %standard-phases
16201 (add-after 'unpack 'patch-exec-paths
16202 (lambda* (#:key inputs #:allow-other-keys)
16203 (let ((pandoc (assoc-ref inputs "pandoc")))
16204 (substitute* "org-web-tools.el"
16205 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
16206 #t))))))
16207 (home-page "https://github.com/alphapapa/org-web-tools")
16208 (synopsis "Display/Process web page as Org-mode content")
16209 (description "This package contains library functions and commands useful
16210 for retrieving web page content and processing it into Org-mode content.
16211
16212 For example, you can copy a URL to the clipboard or kill-ring, then run a
16213 command that downloads the page, isolates the “readable” content with
16214 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
16215 displays it in an Org-mode buffer. Another command does all of that but
16216 inserts it as an Org entry instead of displaying it in a new buffer.")
16217 (license license:gpl3+)))
16218
16219 (define-public emacs-blimp
16220 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
16221 (package
16222 (name "emacs-blimp")
16223 (version (git-version "0.0.0" "1" commit))
16224 (source
16225 (origin
16226 (method git-fetch)
16227 (uri (git-reference
16228 (url "https://github.com/walseb/blimp")
16229 (commit commit)))
16230 (file-name (git-file-name name version))
16231 (sha256
16232 (base32
16233 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
16234 (build-system emacs-build-system)
16235 (propagated-inputs
16236 `(("emacs-eimp" ,emacs-eimp)))
16237 (home-page "https://github.com/walseb/blimp")
16238 (synopsis "Emacs wrapper around all Imagemagick commands")
16239 (description "Blimp (Bustling Image Manipulation Package) is a complete
16240 wrapper around all Imagemagick commands with descriptions, autocompletion (for
16241 some commands) and hints displayed in prompt using @command{eimp.el} to
16242 execute its commands and resize images.")
16243 (license license:gpl3+))))
16244
16245 (define-public emacs-synosaurus
16246 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
16247 (package
16248 (name "emacs-synosaurus")
16249 (version (git-version "0.1.0" "1" commit))
16250 (source
16251 (origin
16252 (method git-fetch)
16253 (uri (git-reference
16254 (url "https://github.com/hpdeifel/synosaurus")
16255 (commit commit)))
16256 (file-name (git-file-name name version))
16257 (sha256
16258 (base32
16259 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
16260 (build-system emacs-build-system)
16261 (propagated-inputs
16262 `(("wordnet" ,wordnet)))
16263 (arguments
16264 `(#:phases
16265 (modify-phases %standard-phases
16266 (add-after 'unpack 'configure
16267 (lambda* (#:key inputs outputs #:allow-other-keys)
16268 (let ((wn (assoc-ref inputs "wordnet")))
16269 ;; .el is read-only in git.
16270 (chmod "synosaurus-wordnet.el" #o644)
16271 ;; Specify the absolute file names of the various
16272 ;; programs so that everything works out-of-the-box.
16273 (emacs-substitute-variables
16274 "synosaurus-wordnet.el"
16275 ("wordnet-command"
16276 (string-append wn "/bin/wn")))))))))
16277 (home-page "https://github.com/hpdeifel/synosaurus")
16278 (synopsis "Extensible thesaurus mode for Emacs")
16279 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
16280 backends, including the @command{wordnet} offline backend.")
16281 (license license:gpl3+))))
16282
16283 (define-public emacs-editorconfig
16284 (package
16285 (name "emacs-editorconfig")
16286 (version "0.8.1")
16287 (source
16288 (origin
16289 (method git-fetch)
16290 (uri (git-reference
16291 (url "https://github.com/editorconfig/editorconfig-emacs")
16292 (commit (string-append "v" version))))
16293 (file-name (git-file-name name version))
16294 (sha256
16295 (base32
16296 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
16297 (build-system emacs-build-system)
16298 (home-page "https://github.com/editorconfig/editorconfig-emacs")
16299 (synopsis "Define and maintain consistent coding styles between different
16300 editors and IDEs")
16301 (description "The EditorConfig project consists of a file format for
16302 defining coding styles and a collection of text editor plugins that enable
16303 editors to read the file format and adhere to defined styles. EditorConfig
16304 files are easily readable and they work nicely with version control systems.")
16305 (license license:gpl3+)))
16306
16307 (define-public emacs-all-the-icons
16308 (package
16309 (name "emacs-all-the-icons")
16310 (version "3.2.0")
16311 (source
16312 (origin
16313 (method git-fetch)
16314 (uri (git-reference
16315 (url "https://github.com/domtronn/all-the-icons.el.git")
16316 (commit version)))
16317 (file-name (git-file-name name version))
16318 (sha256
16319 (base32
16320 "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn"))))
16321 (build-system emacs-build-system)
16322 (arguments
16323 `(#:include '("\\.el$" "^data/" "^fonts/")
16324 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
16325 ;; all-the-icons--root-code". Ignoring tests.
16326 #:exclude '("^test/")
16327 #:tests? #f))
16328 (propagated-inputs
16329 `(("f" ,emacs-f)
16330 ("memoize" ,emacs-memoize)))
16331 (home-page "https://github.com/domtronn/all-the-icons.el")
16332 (synopsis "Collect icon fonts and propertize them within Emacs")
16333 (description "All-the-icons is a utility package to collect various icon
16334 fonts and propertize them within Emacs. Icon fonts allow you to propertize
16335 and format icons the same way you would normal text. This enables things such
16336 as better scaling of and anti aliasing of the icons.")
16337 ;; Package is released under Expat license. Elisp files are licensed
16338 ;; under GPL3+. Fonts come with various licenses: Expat for
16339 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
16340 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
16341 ;; "ocitcons.ttf" and "weathericons.ttf".
16342 (license
16343 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
16344
16345 (define-public emacs-wttrin
16346 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
16347 (revision "1"))
16348 (package
16349 (name "emacs-wttrin")
16350 (version (git-version "0.2.0" revision commit))
16351 (source (origin
16352 (method git-fetch)
16353 (uri (git-reference
16354 (url "https://github.com/bcbcarl/emacs-wttrin.git")
16355 (commit commit)))
16356 (file-name (git-file-name name version))
16357 (sha256
16358 (base32
16359 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
16360 (build-system emacs-build-system)
16361 (propagated-inputs
16362 `(("emacs-xterm-color" ,emacs-xterm-color)))
16363 (home-page "https://github.com/bcbcarl/emacs-wttrin")
16364 (synopsis "Frontend for weather web service @url{wttr.in}")
16365 (description "This package provides local weather information from
16366 @url{wttr.in}.")
16367 (license license:expat))))
16368
16369 (define-public emacs-powerline
16370 (package
16371 (name "emacs-powerline")
16372 (version "2.4")
16373 (source
16374 (origin
16375 (method git-fetch)
16376 (uri (git-reference
16377 (url "https://github.com/milkypostman/powerline.git")
16378 (commit version)))
16379 (file-name (git-file-name name version))
16380 (sha256
16381 (base32
16382 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
16383 (build-system emacs-build-system)
16384 (home-page "https://github.com/milkypostman/powerline/")
16385 (synopsis "Mode-line plugin for Emacs")
16386 (description "Powerline is a utility plugin which allows you to create
16387 a better-looking, more functional Emacs mode-line. A collection of predefined
16388 themes comes with the package.")
16389 (license license:gpl3+)))
16390
16391 (define-public emacs-spaceline
16392 (package
16393 (name "emacs-spaceline")
16394 (version "2.0.1")
16395 (source
16396 (origin
16397 (method git-fetch)
16398 (uri (git-reference
16399 (url "https://github.com/TheBB/spaceline.git")
16400 (commit (string-append "v" version))))
16401 (file-name (git-file-name name version))
16402 (sha256
16403 (base32
16404 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
16405 (build-system emacs-build-system)
16406 (propagated-inputs
16407 `(("dash" ,emacs-dash)
16408 ("powerline" ,emacs-powerline)
16409 ("s" ,emacs-s)))
16410 (home-page "https://github.com/TheBB/spaceline")
16411 (synopsis "Powerline theme from Spacemacs")
16412 (description "Spaceline provides Spacemacs' mode-line theme.
16413 This package provides features for three kinds of users.
16414
16415 @itemize
16416 @item You just want to use the Spacemacs mode-line theme and forget about it.
16417 @item You want to use something similar to the Spacemacs mode-line theme, but
16418 with a handful of easy tweaks.
16419 @item You want an easy-to-use library for building your own mode-line from
16420 scratch, and you think the Spacemacs theme looks good.
16421 @end itemize")
16422 (license license:gpl3+)))
16423
16424 (define-public emacs-column-marker
16425 (package
16426 (name "emacs-column-marker")
16427 (version "9")
16428 (source
16429 (origin
16430 (method url-fetch)
16431 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
16432 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
16433 (build-system emacs-build-system)
16434 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
16435 (synopsis "Emacs mode for highlighting columns")
16436 (description
16437 "With @code{column-marker.el} you can highlight any number of text columns.
16438 Three such highlight column markers are provided by default. This is
16439 especially useful for languages like COBOL or Fortran where certain columns
16440 have special meaning. It is also handy for aligning text across long vertical
16441 distances. Multi-column characters, such as @kbd{TAB} are treated
16442 correctly.")
16443 (license license:gpl2+)))
16444
16445 (define-public emacs-slime-repl-ansi-color
16446 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
16447 (package
16448 (name "emacs-slime-repl-ansi-color")
16449 (version (git-version "0.0.0" "1" commit))
16450 (source (origin
16451 (method git-fetch)
16452 (uri (git-reference
16453 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
16454 (commit commit)))
16455 (file-name (git-file-name name version))
16456 (sha256
16457 (base32
16458 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
16459 (build-system emacs-build-system)
16460 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
16461 (synopsis "Color ANSI codes in the REPL of SLIME")
16462 (description "Color ANSI codes in the REPL of SLIME")
16463 (license license:gpl2+))))
16464
16465 (define-public emacs-helm-slime
16466 (package
16467 (name "emacs-helm-slime")
16468 (version "0.4.0")
16469 (source (origin
16470 (method git-fetch)
16471 (uri (git-reference
16472 (url "https://github.com/emacs-helm/helm-slime")
16473 (commit version)))
16474 (file-name (git-file-name name version))
16475 (sha256
16476 (base32
16477 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
16478 (build-system emacs-build-system)
16479 (propagated-inputs
16480 `(("emacs-helm" ,emacs-helm)
16481 ("emacs-slime" ,emacs-slime)))
16482 (home-page "https://github.com/emacs-helm/helm-slime")
16483 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
16484 (description "Helm-SLIME defines a few new commands:
16485
16486 @itemize
16487 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
16488 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
16489 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
16490 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
16491 @end itemize\n")
16492 (license license:gpl3+)))
16493
16494 (define-public emacs-helm-sly
16495 (package
16496 (name "emacs-helm-sly")
16497 (version "0.4.1")
16498 (source (origin
16499 (method git-fetch)
16500 (uri (git-reference
16501 (url "https://github.com/emacs-helm/helm-sly")
16502 (commit version)))
16503 (file-name (git-file-name name version))
16504 (sha256
16505 (base32
16506 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
16507 (build-system emacs-build-system)
16508 (propagated-inputs
16509 `(("emacs-helm" ,emacs-helm)
16510 ("emacs-sly" ,emacs-sly)))
16511 (home-page "https://github.com/emacs-helm/helm-sly")
16512 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
16513 (description "Helm-SLY defines a few new commands:
16514
16515 @itemize
16516 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
16517 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
16518 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
16519 extra source of Lisp-related buffers, like the events buffer or the scratch
16520 buffer.
16521 @end itemize\n")
16522 (license license:gpl3+)))
16523
16524 (define-public emacs-gtk-look
16525 (package
16526 (name "emacs-gtk-look")
16527 (version "29")
16528 (source (origin
16529 (method url-fetch)
16530 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
16531 (sha256
16532 (base32
16533 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
16534 (build-system emacs-build-system)
16535 (arguments
16536 `(#:phases
16537 (modify-phases %standard-phases
16538 (add-after 'unpack 'configure
16539 (lambda _
16540 ;; File is read-only.
16541 (chmod "gtk-look.el" #o644)
16542 (emacs-substitute-variables "gtk-look.el"
16543 ("gtk-lookup-devhelp-indices"
16544 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
16545 #t)))))
16546 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
16547 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
16548 (description "@command{gtk-look} finds and displays HTML documentation for
16549 GTK, GNOME and Glib functions and variables in Emacs, similar to what
16550 info-lookup-symbol does for info files (C-h S). The documentation is expected
16551 to be devhelp indexes with HTML files. The location of the indexes can be
16552 customized. In addition to C code development @command{gtk-look} is good for
16553
16554 @itemize
16555 @item @command{perl-gtk2}, recognising class funcs like
16556 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
16557 @item @command{guile-gnome}, recognising methods like @command{set-text} and
16558 classes like @command{<gtk-window>}.
16559 @end itemize\n")
16560 (license license:gpl3+)))
16561
16562 (define-public emacs-ov
16563 (package
16564 (name "emacs-ov")
16565 (version "1.0.6")
16566 (source (origin
16567 (method git-fetch)
16568 (uri (git-reference
16569 (url "https://github.com/ShingoFukuyama/ov.el.git")
16570 (commit version)))
16571 (file-name (git-file-name name version))
16572 (sha256
16573 (base32
16574 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
16575 (build-system emacs-build-system)
16576 (home-page "https://github.com/ShingoFukuyama/ov.el")
16577 (synopsis "Overlay library for Emacs Lisp")
16578 (description "@code{ov.el} provides a simple way to manipulate overlays in
16579 Emacs.")
16580 (license license:gpl3+)))
16581
16582 (define-public emacs-matrix-client
16583 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
16584 (package
16585 (name "emacs-matrix-client")
16586 (version (git-version "0.0.0" "4" commit))
16587 (source (origin
16588 (method git-fetch)
16589 (uri (git-reference
16590 (url "https://github.com/jgkamat/matrix-client-el.git")
16591 (commit commit)))
16592 (file-name (git-file-name name version))
16593 (sha256
16594 (base32
16595 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
16596 (build-system emacs-build-system)
16597 (arguments
16598 `(#:phases
16599 (modify-phases %standard-phases
16600 (add-after 'unpack 'add-missing-require
16601 ;; Fix a filter error at runtime due to a missing require.
16602 ;; Reported upstream:
16603 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
16604 (lambda _
16605 (substitute* "matrix-client-room.el"
16606 (("\\(require 'dash-functional\\)" all)
16607 (string-append all "\n" "(require 'anaphora)")))
16608 #t)))))
16609 (propagated-inputs
16610 `(("a" ,emacs-a)
16611 ("anaphora" ,emacs-anaphora)
16612 ("dash" ,emacs-dash)
16613 ("esxml" ,emacs-esxml)
16614 ("f" ,emacs-f)
16615 ("frame-purpose" ,emacs-frame-purpose)
16616 ("ht" ,emacs-ht)
16617 ("ov" ,emacs-ov)
16618 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
16619 ("request" ,emacs-request)
16620 ("s" ,emacs-s)
16621 ("tracking" ,emacs-tracking)))
16622 (home-page "https://github.com/jgkamat/matrix-client-el")
16623 (synopsis "Matrix client for Emacs")
16624 (description "@code{matrix-client} is a simple chat UI to Matrix.org
16625 rooms. It also provides an API which allows Emacs to seamlessly create
16626 RPC channels with users and other software.")
16627 (license license:gpl3+))))
16628
16629 (define-public emacs-sesman
16630 (package
16631 (name "emacs-sesman")
16632 (version "0.3.4")
16633 (source
16634 (origin
16635 (method git-fetch)
16636 (uri (git-reference
16637 (url "https://github.com/vspinu/sesman.git")
16638 (commit (string-append "v" version))))
16639 (file-name (git-file-name name version))
16640 (sha256
16641 (base32
16642 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
16643 (build-system emacs-build-system)
16644 (arguments
16645 `(#:phases
16646 (modify-phases %standard-phases
16647 (add-after 'unpack 'set-shell
16648 ;; Setting the SHELL environment variable is required for the tests
16649 ;; to find sh.
16650 (lambda _
16651 (setenv "SHELL" (which "sh"))
16652 #t)))
16653 #:tests? #t
16654 #:test-command '("make" "test")))
16655 (home-page "https://github.com/vspinu/sesman")
16656 (synopsis "Session manager for Emacs based IDEs")
16657 (description "Sesman provides facilities for session management and
16658 interactive session association with the current contexts (project, directory,
16659 buffers). While sesman can be used to manage arbitrary sessions, it primary
16660 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
16661 (license license:gpl3+)))
16662
16663 (define-public emacs-buttercup
16664 (package
16665 (name "emacs-buttercup")
16666 (version "1.16")
16667 (source
16668 (origin
16669 (method git-fetch)
16670 (uri (git-reference
16671 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
16672 (commit (string-append "v" version))))
16673 (file-name (git-file-name name version))
16674 (sha256
16675 (base32
16676 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
16677 (build-system emacs-build-system)
16678 (arguments
16679 `(#:tests? #t
16680 #:test-command '("make" "test")
16681 #:phases
16682 (modify-phases %standard-phases
16683 (add-after 'install 'install-bin
16684 (lambda* (#:key outputs #:allow-other-keys)
16685 (install-file "bin/buttercup"
16686 (string-append (assoc-ref outputs "out") "/bin"))
16687 #t)))))
16688 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
16689 (synopsis "Behavior driven emacs lisp testing framework")
16690 (description "Buttercup is a behavior-driven development framework for
16691 testing Emacs Lisp code. It allows to group related tests so they can share
16692 common set-up and tear-down code, and allows the programmer to \"spy\" on
16693 functions to ensure they are called with the right arguments during testing.")
16694 (license license:gpl3+)))
16695
16696 (define-public emacs-wordnut
16697 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
16698 (revision "0"))
16699 (package
16700 (name "emacs-wordnut")
16701 (version (git-version "0.1" revision commit))
16702 (home-page "https://github.com/gromnitsky/wordnut")
16703 (source (origin
16704 (method git-fetch)
16705 (uri (git-reference (url home-page) (commit commit)))
16706 (sha256
16707 (base32
16708 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
16709 (patches
16710 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
16711 (file-name (git-file-name name version))))
16712 (build-system emacs-build-system)
16713 (propagated-inputs
16714 `(("wordnet" ,wordnet)
16715 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
16716 (synopsis "Major mode for WordNet")
16717 (description "This Emacs package provides an interface for
16718 @code{wordnet}. Features include completion, if the query is not found
16719 too ambiguous and navigation in the result buffer.")
16720 (license license:gpl3+))))
16721
16722 (define-public emacs-frame-purpose
16723 (package
16724 (name "emacs-frame-purpose")
16725 (version "1.0")
16726 (source (origin
16727 (method git-fetch)
16728 (uri (git-reference
16729 (url "https://github.com/alphapapa/frame-purpose.el.git")
16730 (commit version)))
16731 (sha256
16732 (base32
16733 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
16734 (file-name (git-file-name name version))))
16735 (build-system emacs-build-system)
16736 (inputs
16737 `(("dash" ,emacs-dash)))
16738 (synopsis "Purpose-specific frames for Emacs")
16739 (description "@code{frame-purpose} makes it easy to open purpose-specific
16740 frames that only show certain buffers, e.g. by buffers’ major mode, their
16741 filename or directory, etc, with custom frame/X-window titles, icons, and
16742 other frame parameters.")
16743 (home-page "https://github.com/alphapapa/frame-purpose.el")
16744 (license license:gpl3+)))
16745
16746 (define-public emacs-arduino-mode
16747 (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet
16748 (package
16749 (name "emacs-arduino-mode")
16750 (version (git-version "0" "0" commit))
16751 (source (origin
16752 (method git-fetch)
16753 (uri (git-reference
16754 (url "https://github.com/bookest/arduino-mode.git")
16755 (commit commit)))
16756 (sha256
16757 (base32
16758 "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c"))
16759 (file-name (git-file-name name version))))
16760 (build-system emacs-build-system)
16761 (synopsis "Emacs major mode for editing Arduino sketches")
16762 (description "Emacs major mode for editing Arduino sketches.")
16763 (home-page "https://github.com/bookest/arduino-mode")
16764 (license license:gpl3+))))
16765
16766 (define-public emacs-annalist
16767 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
16768 (revision "1"))
16769 (package
16770 (name "emacs-annalist")
16771 (version (git-version "1.0.0" revision commit))
16772 (source (origin
16773 (method git-fetch)
16774 (uri (git-reference
16775 (url "https://github.com/noctuid/annalist.el.git")
16776 (commit commit)))
16777 (sha256
16778 (base32
16779 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
16780 (file-name (git-file-name name version))))
16781 (build-system emacs-build-system)
16782 (native-inputs
16783 `(("emacs-buttercup" ,emacs-buttercup)
16784 ("emacs-lispy" ,emacs-lispy)
16785 ("emacs-evil" ,emacs-evil)))
16786 (arguments
16787 `(#:phases
16788 (modify-phases %standard-phases
16789 (add-before 'check 'fix-makefile
16790 (lambda _
16791 (substitute* "Makefile"
16792 (("cask exec ") ""))
16793 #t)))
16794 #:tests? #t
16795 #:test-command '("make" "test")))
16796 (home-page "https://github.com/noctuid/annalist.el")
16797 (synopsis "Record and display information with Org headings and tables")
16798 (description "This package allows for keybindings, settings, hooks, and
16799 advice to be recorded and displayed.")
16800 (license license:gpl3+))))
16801
16802 (define-public emacs-general
16803 (let ((commit "f38fb2294bd29261374b772f765730f2fa168b3e")
16804 (revision "3"))
16805 (package
16806 (name "emacs-general")
16807 (version (git-version "0" revision commit))
16808 (source (origin
16809 (method git-fetch)
16810 (uri (git-reference
16811 (url "https://github.com/noctuid/general.el.git")
16812 (commit commit)))
16813 (sha256
16814 (base32
16815 "1aqi5axkwfng6rm52sblf738c7rffp10sqs69dvkh2fv3ps8q28i"))
16816 (file-name (git-file-name name version))))
16817 (build-system emacs-build-system)
16818 (native-inputs
16819 `(("emacs-buttercup" ,emacs-buttercup)
16820 ("emacs-evil" ,emacs-evil)
16821 ("emacs-which-key" ,emacs-which-key)
16822 ("emacs-use-package" ,emacs-use-package)))
16823 (arguments
16824 `(#:phases
16825 (modify-phases %standard-phases
16826 (add-before 'check 'fix-makefile
16827 (lambda _
16828 (substitute* "Makefile"
16829 (("cask exec ") ""))
16830 #t)))
16831 #:tests? #t
16832 #:test-command '("make" "test")))
16833 (home-page "https://github.com/noctuid/general.el")
16834 (synopsis "More convenient key definitions in emacs")
16835 (description "@code{general.el} provides a more convenient method for
16836 binding keys in emacs (for both evil and non-evil users). Like
16837 @code{use-package}, which provides a convenient, unified interface for
16838 managing packages, @code{general.el} is intended to provide a convenient,
16839 unified interface for key definitions. While this package does implement some
16840 completely new functionality (such as the ability to make vim-style
16841 keybindings under non-prefix keys with an optional timeout), its primary
16842 purpose is to build on existing functionality to make key definition more
16843 clear and concise. @code{general-define-key} is user-extensible and supports
16844 defining multiple keys in multiple keymaps at once, implicitly wrapping key
16845 strings with (@code{kbd ...}), using named prefix key sequences (like the
16846 leader key in vim), and much more.")
16847 (license license:gpl3+))))
16848
16849 (define-public emacs-tldr
16850 (let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
16851 (package
16852 (name "emacs-tldr")
16853 (version (git-version "0" "0" commit))
16854 (home-page "https://github.com/kuanyui/tldr.el")
16855 (source (origin
16856 (method git-fetch)
16857 (uri (git-reference
16858 (url (string-append home-page ".git"))
16859 (commit commit)))
16860 (sha256
16861 (base32
16862 "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
16863 (file-name (git-file-name name version))))
16864 (build-system emacs-build-system)
16865 (synopsis "Simplified and community-driven man pages for Emacs")
16866 (description "@code{emacs-tldr} allows the user to access tldr pages
16867 from within emacs. The @code{tldr} pages are a community effort to simplify
16868 the man pages with practical examples.")
16869 (license license:wtfpl2))))
16870
16871 (define-public emacs-window-layout
16872 (package
16873 (name "emacs-window-layout")
16874 (version "1.4")
16875 (home-page "https://github.com/kiwanami/emacs-window-layout")
16876 (source (origin
16877 (method git-fetch)
16878 (uri (git-reference
16879 (url home-page)
16880 (commit (string-append "v" version))))
16881 (sha256
16882 (base32
16883 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
16884 (file-name (git-file-name name version))))
16885 (build-system emacs-build-system)
16886 (synopsis "Simple window layout management framework for emacs")
16887 (description "A window-layout management library that can split a frame
16888 or a window into some windows according to a layout recipe.")
16889 (license license:gpl3+)))
16890
16891 (define-public emacs-e2wm
16892 (package
16893 (name "emacs-e2wm")
16894 (version "1.4")
16895 (home-page "https://github.com/kiwanami/emacs-window-manager")
16896 (source (origin
16897 (method git-fetch)
16898 (uri (git-reference
16899 (url home-page)
16900 (commit (string-append "v" version))))
16901 (sha256
16902 (base32
16903 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
16904 (file-name (git-file-name name version))))
16905 (build-system emacs-build-system)
16906 (propagated-inputs
16907 `(("emacs-window-layout" ,emacs-window-layout)))
16908 (synopsis "Equilibrium Emacs Window Manager")
16909 (description "E2WM is a window manager for Emacs. It enables to
16910 customize the place of pop-up window, how the windows are split, how the
16911 buffers are located in the windows, keybinds to manipulate windows and
16912 buffers, etc. It also has plug-ins to help your Emacs life.")
16913 (license license:gpl3+)))
16914
16915 (define-public emacs-ctable
16916 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
16917 (package
16918 (name "emacs-ctable")
16919 (version (git-version "0.1.2" "1" commit))
16920 (home-page "https://github.com/kiwanami/emacs-ctable")
16921 (source (origin
16922 (method git-fetch)
16923 (uri (git-reference
16924 (url home-page)
16925 (commit commit)))
16926 (sha256
16927 (base32
16928 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
16929 (file-name (git-file-name name version))))
16930 (build-system emacs-build-system)
16931 (synopsis "Table component for Emacs Lisp")
16932 (description "This program is a table component for Emacs Lisp. Other
16933 programs can use this table component for the application UI.")
16934 (license license:gpl3+))))
16935
16936 (define-public emacs-leetcode
16937 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
16938 (revision "1"))
16939 (package
16940 (name "emacs-leetcode")
16941 (version (git-version "0" "1" commit))
16942 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
16943 (source (origin
16944 (method git-fetch)
16945 (uri (git-reference
16946 (url "https://github.com/ginqi7/leetcode-emacs")
16947 (commit commit)))
16948 (sha256
16949 (base32
16950 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
16951 (file-name (git-file-name name version))))
16952 (build-system emacs-build-system)
16953 (propagated-inputs
16954 `(("emacs-names" ,emacs-names)
16955 ("emacs-ctable" ,emacs-ctable)))
16956 (synopsis "Solve and submit LeetCode problems from within Emacs")
16957 (description "This package provides an Emacs interface to LeetCode
16958 allowing users to log in and solve problems of their choice using Emacs.")
16959 (license license:unlicense))))
16960
16961 (define-public emacs-epc
16962 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
16963 (package
16964 (name "emacs-epc")
16965 (version (git-version "0.1.1" "1" commit))
16966 (home-page "https://github.com/kiwanami/emacs-epc")
16967 (source (origin
16968 (method git-fetch)
16969 (uri (git-reference
16970 (url home-page)
16971 (commit commit)))
16972 (sha256
16973 (base32
16974 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
16975 (file-name (git-file-name name version))))
16976 (build-system emacs-build-system)
16977 (propagated-inputs
16978 `(("emacs-deferred" ,emacs-deferred)
16979 ("emacs-ctable" ,emacs-ctable)))
16980 (synopsis "RPC stack for Emacs Lisp")
16981 (description "This program is an asynchronous RPC stack for Emacs.
16982 Using this RPC stack, Emacs can communicate with the peer process
16983 smoothly. Because the protocol employs S-expression encoding and consists of
16984 asynchronous communications, the RPC response is fairly good.")
16985 (license license:gpl3+))))
16986
16987 (define-public emacs-edbi
16988 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
16989 (package
16990 (name "emacs-edbi")
16991 (version (git-version "0.1.3" "1" commit))
16992 (home-page "https://github.com/kiwanami/emacs-edbi")
16993 (source (origin
16994 (method git-fetch)
16995 (uri (git-reference
16996 (url home-page)
16997 (commit commit)))
16998 (sha256
16999 (base32
17000 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
17001 (file-name (git-file-name name version))))
17002 (build-system emacs-build-system)
17003 (inputs
17004 `(("perl" ,perl)
17005 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
17006 ("perl-dbi" ,perl-dbi)
17007 ;; TODO: Adding support for perl-dbd-mysql and others would
17008 ;; dramatically increase the closure size. Make several packages?
17009 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
17010 (propagated-inputs
17011 `(("emacs-e2wm" ,emacs-e2wm)
17012 ("emacs-epc" ,emacs-epc)))
17013 (arguments
17014 `(#:include '("\\.el$" "\\.pl$")
17015 #:phases
17016 (modify-phases %standard-phases
17017 (add-after 'install 'patch-path
17018 (lambda* (#:key inputs outputs #:allow-other-keys)
17019 (let ((perl (assoc-ref inputs "perl"))
17020 (dir (string-append (assoc-ref outputs "out")
17021 "/share/emacs/site-lisp/guix.d/edbi-"
17022 ,version)))
17023 (substitute* (string-append dir "/edbi.el")
17024 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
17025 (chmod (string-append dir "/edbi-bridge.pl") #o555)
17026 (wrap-program (string-append dir "/edbi-bridge.pl")
17027 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
17028 #t))))))
17029 (synopsis "Database Interface for Emacs Lisp")
17030 (description "This program connects the database server through Perl's
17031 DBI, and provides DB-accessing API and the simple management UI.")
17032 (license license:gpl3+))))
17033
17034 (define-public emacs-edbi-sqlite
17035 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
17036 (package
17037 (name "emacs-edbi-sqlite")
17038 (version (git-version "0.1.1" "1" commit))
17039 (home-page "https://github.com/proofit404/edbi-sqlite")
17040 (source (origin
17041 (method git-fetch)
17042 (uri (git-reference
17043 (url home-page)
17044 (commit commit)))
17045 (sha256
17046 (base32
17047 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
17048 (file-name (git-file-name name version))))
17049 (build-system emacs-build-system)
17050 (propagated-inputs
17051 `(("emacs-edbi" ,emacs-edbi)))
17052 (synopsis "Open SQLite files in Emacs")
17053 (description "This package is a convenience wrapper for @command{edbi}
17054 to open SQLite databases.")
17055 (license license:gpl3+))))
17056
17057 (define-public emacs-nix-mode
17058 (package
17059 (name "emacs-nix-mode")
17060 (version "1.4.1")
17061 (source
17062 (origin
17063 (method git-fetch)
17064 (uri (git-reference
17065 (url "https://github.com/NixOS/nix-mode.git")
17066 (commit (string-append "v" version))))
17067 (file-name (git-file-name name version))
17068 (sha256
17069 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
17070 (build-system emacs-build-system)
17071 (inputs
17072 `(("emacs-company" ,emacs-company)
17073 ("emacs-json-mode" ,emacs-json-mode)
17074 ("emacs-mmm-mode" ,emacs-mmm-mode)))
17075 (home-page "https://github.com/NixOS/nix-mode")
17076 (synopsis "Emacs major mode for editing Nix expressions")
17077 (description "@code{nixos-mode} provides an Emacs major mode for editing
17078 Nix expressions. It supports syntax highlighting, indenting and refilling of
17079 comments.")
17080 (license license:lgpl2.1+)))
17081
17082 (define-public emacs-simple-mpc
17083 ;; There have been no releases.
17084 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
17085 (revision "1"))
17086 (package
17087 (name "emacs-simple-mpc")
17088 (version (git-version "0" revision commit))
17089 (source
17090 (origin
17091 (method git-fetch)
17092 (uri (git-reference
17093 (url "https://github.com/jorenvo/simple-mpc.git")
17094 (commit commit)))
17095 (file-name (git-file-name name version))
17096 (sha256
17097 (base32
17098 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
17099 (build-system emacs-build-system)
17100 (propagated-inputs `(("emacs-s" ,emacs-s)))
17101 (home-page "https://github.com/jorenvo/simple-mpc")
17102 (synopsis "Simple Emacs frontend to mpc")
17103 (description "This package provides an Emacs major mode which acts as a
17104 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
17105 (license license:gpl3+))))
17106
17107 (define-public emacs-mkmcc-gnuplot-mode
17108 (package
17109 (name "emacs-mkmcc-gnuplot-mode")
17110 (version "1.2.0")
17111 (source
17112 (origin
17113 (method git-fetch)
17114 (uri (git-reference
17115 (url "https://github.com/mkmcc/gnuplot-mode")
17116 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
17117 (file-name (git-file-name name version))
17118 (sha256
17119 (base32
17120 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
17121 (build-system emacs-build-system)
17122 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
17123 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
17124 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
17125 mode for editing gnuplot scripts. It provides syntax highlighting,
17126 indentation and a command to plot the file.")
17127 (license license:gpl3+)))
17128
17129 (define-public emacs-cmake-font-lock
17130 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
17131 (revision "1"))
17132 (package
17133 (name "emacs-cmake-font-lock")
17134 (version (git-version "0.1.5" revision commit))
17135 (source (origin
17136 (method git-fetch)
17137 (uri (git-reference
17138 (url "https://github.com/Lindydancer/cmake-font-lock.git")
17139 (commit commit)))
17140 (file-name (git-file-name name version))
17141 (sha256
17142 (base32
17143 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
17144 (build-system emacs-build-system)
17145 (native-inputs
17146 `(("emacs-faceup" ,emacs-faceup)))
17147 (arguments
17148 `(#:include (cons "^admin\\/" %default-include)))
17149 (home-page "https://github.com/Lindydancer/cmake-font-lock")
17150 (synopsis "Advanced type-aware syntax-highlighting for CMake")
17151 (description "This package highlights function arguments in CMake
17152 according to their use.")
17153 (license license:gpl3+))))
17154
17155 (define-public emacs-dtrt-indent
17156 (package
17157 (name "emacs-dtrt-indent")
17158 (version "0.8")
17159 (source (origin
17160 (method git-fetch)
17161 (uri (git-reference
17162 (url "https://github.com/jscheid/dtrt-indent")
17163 (commit version)))
17164 (file-name (git-file-name name version))
17165 (sha256
17166 (base32
17167 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
17168 (build-system emacs-build-system)
17169 (home-page "https://github.com/jscheid/dtrt-indent")
17170 (synopsis "Minor mode that guesses the indentation offset")
17171 (description "This package provides a minor mode that guesses the
17172 indentation offset originally used for creating source code files and
17173 transparently adjusts the corresponding settings in Emacs, making it more
17174 convenient to edit foreign files.")
17175 (license license:gpl2+)))
17176
17177 (define-public emacs-repo
17178 (package
17179 (name "emacs-repo")
17180 (version "0.1.3")
17181 (source (origin
17182 (method git-fetch)
17183 (uri (git-reference
17184 (url "https://github.com/canatella/repo-el")
17185 (commit version)))
17186 (file-name (git-file-name name version))
17187 (sha256
17188 (base32
17189 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
17190 (build-system emacs-build-system)
17191 (native-inputs
17192 `(("emacs-el-mock" ,emacs-el-mock)
17193 ("ert-runner" ,emacs-ert-runner)))
17194 (propagated-inputs
17195 `(("emacs-f" ,emacs-f)
17196 ("magit" ,emacs-magit)))
17197 (home-page "https://github.com/canatella/repo-el")
17198 (synopsis "Emacs interface for the Google Repo tool")
17199 (description "This package provides integration of the Google Repo tool
17200 with emacs. It displays the output of the @code{repo status} command in a
17201 buffer and launches Magit from the status buffer for the project at point.")
17202 (license license:gpl3+)))
17203
17204 (define-public emacs-alect-themes
17205 (package
17206 (name "emacs-alect-themes")
17207 (version "0.9")
17208 (source (origin
17209 (method git-fetch)
17210 (uri (git-reference
17211 (url "https://github.com/alezost/alect-themes")
17212 (commit (string-append "v" version))))
17213 (file-name (git-file-name name version))
17214 (sha256
17215 (base32
17216 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
17217 (build-system emacs-build-system)
17218 (home-page "https://github.com/alezost/alect-themes")
17219 (synopsis "Low contrast, light, dark and black color theme for Emacs")
17220 (description "@code{emacs-alect-themes} provides configurable light, dark
17221 and black color themes for Emacs. The themes are intended to be used with
17222 GUI.")
17223 (license license:gpl3+)))
17224
17225 (define-public emacs-google-c-style
17226 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
17227 (revision "0"))
17228 (package
17229 (name "emacs-google-c-style")
17230 (version (git-version "0.1" revision commit))
17231 (source (origin
17232 (method git-fetch)
17233 (uri (git-reference
17234 (url "https://github.com/google/styleguide")
17235 (commit commit)))
17236 (file-name (git-file-name name version))
17237 (sha256
17238 (base32
17239 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
17240 (build-system emacs-build-system)
17241 (home-page "https://github.com/google/styleguide")
17242 (synopsis "Emacs settings file for Google C/C++ style")
17243 (description "@code{emacs-google-c-style} provides an Emacs settings
17244 file for Google C and C++ style.")
17245 (license license:gpl1+))))
17246
17247 (define-public emacs-redshank
17248 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
17249 (revision "1"))
17250 (package
17251 (name "emacs-redshank")
17252 (version (git-version "0.1" revision commit))
17253 (source (origin
17254 (method git-fetch)
17255 (uri (git-reference
17256 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
17257 (commit commit)))
17258 (file-name (git-file-name name version))
17259 (sha256
17260 (base32
17261 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
17262 (build-system emacs-build-system)
17263 (propagated-inputs
17264 `(("emacs-paredit" ,emacs-paredit)))
17265 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
17266 (synopsis "Common Lisp Editing Extensions (for Emacs)")
17267 (description "Redshank is a collection of code-wrangling Emacs macros
17268 mostly geared towards Common Lisp, but some are useful for other Lisp
17269 dialects, too. Redshank's code transformations aim to be expression-based (as
17270 opposed to character-based).")
17271 (license license:gpl1+))))
17272
17273 (define-public emacs-disk-usage
17274 (package
17275 (name "emacs-disk-usage")
17276 (version "1.3.3")
17277 (source
17278 (origin
17279 (method git-fetch)
17280 (uri (git-reference
17281 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
17282 (commit version)))
17283 (file-name (git-file-name name version))
17284 (sha256
17285 (base32
17286 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
17287 (build-system emacs-build-system)
17288 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
17289 (synopsis "Sort and browse disk usage listings with Emacs")
17290 (description "Disk Usage is a file system analyzer: it offers a tabulated
17291 view of file listings sorted by size. Directory sizes are computed
17292 recursively. The results are cached for speed.")
17293 (license license:gpl3+)))
17294
17295 (define-public emacs-orgit
17296 (package
17297 (name "emacs-orgit")
17298 (version "1.5.3")
17299 (home-page "https://github.com/magit/orgit")
17300 (source (origin
17301 (method git-fetch)
17302 (uri (git-reference
17303 (url home-page)
17304 (commit (string-append "v" version))))
17305 (file-name (git-file-name name version))
17306 (sha256
17307 (base32
17308 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
17309 (build-system emacs-build-system)
17310 (propagated-inputs
17311 `(("emacs-dash" ,emacs-dash)
17312 ("emacs-magit" ,emacs-magit)))
17313 (synopsis "Support for Org links to Magit buffers")
17314 (description "This package defines several Org link types, which can be
17315 used to link to certain Magit buffers. Use the command
17316 @command{org-store-link} while such a buffer is current to store a link.
17317 Later you can insert it into an Org buffer using the command
17318 @code{org-insert-link}.")
17319 (license license:gpl3+)))
17320
17321 (define-public emacs-amx
17322 (package
17323 (name "emacs-amx")
17324 (version "3.2")
17325 (source (origin
17326 (method git-fetch)
17327 (uri (git-reference
17328 (url "https://github.com/DarwinAwardWinner/amx")
17329 (commit (string-append "v" version))))
17330 (file-name (git-file-name name version))
17331 (sha256
17332 (base32
17333 "0bb8y1dmzyqkrb4mg6zndcsxppby3glridv2aap2pv05gv8kx7mj"))))
17334 (build-system emacs-build-system)
17335 (propagated-inputs `(("emacs-s" ,emacs-s)))
17336 (home-page "https://github.com/DarwinAwardWinner/amx")
17337 (synopsis "Alternative interface for M-x")
17338 (description "Amx is an alternative interface for M-x in Emacs. It
17339 provides several enhancements over the ordinary
17340 @code{execute-extended-command}, such as prioritizing your most-used commands
17341 in the completion list and showing keyboard shortcuts, and it supports several
17342 completion systems for selecting commands, such as ido and ivy.")
17343 (license license:gpl3+)))
17344
17345 (define-public emacs-lorem-ipsum
17346 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
17347 (package
17348 (name "emacs-lorem-ipsum")
17349 (version (git-version "0.2" "1" commit))
17350 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
17351 (source (origin
17352 (method git-fetch)
17353 (uri (git-reference
17354 (url home-page)
17355 (commit commit)))
17356 (file-name (git-file-name name version))
17357 (sha256
17358 (base32
17359 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
17360 (build-system emacs-build-system)
17361 (synopsis "Insert dummy pseudo Latin text in Emacs")
17362 (description "This package provides convenience functions to insert
17363 dummy Latin text into a buffer. This can be useful if you need to produce
17364 paragraphs or pages of text for testing purposes.")
17365 (license license:gpl3+))))
17366
17367 (define-public emacs-lisp-extra-font-lock
17368 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
17369 (package
17370 (name "emacs-lisp-extra-font-lock")
17371 (version (git-version "0.0.6" "1" commit))
17372 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
17373 (source (origin
17374 (method git-fetch)
17375 (uri (git-reference
17376 (url home-page)
17377 (commit commit)))
17378 (file-name (git-file-name name version))
17379 (sha256
17380 (base32
17381 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
17382 (build-system emacs-build-system)
17383 (synopsis "Highlight bound variables and quoted expressions in Emacs")
17384 (description "This package highlight the location where local variables
17385 is created (bound, for example, by let) as well as quoted and backquoted
17386 constant expressions.")
17387 (license license:gpl3+))))
17388
17389 (define-public emacs-docker-tramp
17390 (package
17391 (name "emacs-docker-tramp")
17392 (version "0.1")
17393 (source
17394 (origin
17395 (method git-fetch)
17396 (uri (git-reference
17397 (url "https://github.com/emacs-pe/docker-tramp.el")
17398 (commit (string-append "v" version))))
17399 (file-name (git-file-name name version))
17400 (sha256
17401 (base32
17402 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
17403 (build-system emacs-build-system)
17404 (home-page "https://github.com/emacs-pe/docker-tramp.el")
17405 (synopsis "TRAMP integration for docker containers")
17406 (description
17407 "This package provides a TRAMP method for Docker containers.")
17408 (license license:gpl3+)))
17409
17410 (define-public emacs-docker
17411 (package
17412 (name "emacs-docker")
17413 (version "1.3.0")
17414 (source (origin
17415 (method git-fetch)
17416 (uri (git-reference
17417 (url "https://github.com/Silex/docker.el")
17418 (commit version)))
17419 (file-name (git-file-name name version))
17420 (sha256
17421 (base32
17422 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
17423 (inputs
17424 `(("emacs-undercover" ,emacs-undercover)))
17425 (propagated-inputs
17426 `(("emacs-dash" ,emacs-dash)
17427 ("emacs-docker-tramp" ,emacs-docker-tramp)
17428 ("emacs-magit-popup" ,emacs-magit-popup)
17429 ("emacs-s" ,emacs-s)
17430 ("emacs-tablist" ,emacs-tablist)
17431 ("emacs-json-mode" ,emacs-json-mode)))
17432 (arguments
17433 `(#:phases
17434 (modify-phases %standard-phases
17435 (delete 'check)))) ;no tests
17436 (build-system emacs-build-system)
17437 (home-page "https://github.com/Silex/docker.el")
17438 (synopsis "Manage docker from Emacs")
17439 (description "This package provides an Emacs interface for Docker.")
17440 (license license:gpl3+)))
17441
17442 (define-public emacs-dockerfile-mode
17443 ;; Latest upstream release is too old.
17444 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
17445 (package
17446 (name "emacs-dockerfile-mode")
17447 (version (git-version "1.2" "2" commit))
17448 (source
17449 (origin
17450 (method git-fetch)
17451 (uri (git-reference
17452 (url "https://github.com/spotify/dockerfile-mode.git")
17453 (commit commit)))
17454 (file-name (git-file-name name version))
17455 (sha256
17456 (base32
17457 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
17458 (build-system emacs-build-system)
17459 (propagated-inputs
17460 `(("emacs-s" ,emacs-s)))
17461 (home-page "https://github.com/spotify/dockerfile-mode")
17462 (synopsis "Major mode for editing Dockerfile")
17463 (description
17464 "This package provides a major mode @code{dockerfile-mode} for use with
17465 the standard @code{Dockerfile} file format.")
17466 (license license:asl2.0))))
17467
17468 (define-public emacs-lsp-mode
17469 (package
17470 (name "emacs-lsp-mode")
17471 (version "6.1")
17472 (source (origin
17473 (method git-fetch)
17474 (uri (git-reference
17475 (url "https://github.com/emacs-lsp/lsp-mode.git")
17476 (commit version)))
17477 (file-name (git-file-name name version))
17478 (sha256
17479 (base32
17480 "0jn5slhv9zfs446a5966bfg9dq144g22v79wnkx9hxq7if78p652"))))
17481 (build-system emacs-build-system)
17482 (propagated-inputs
17483 `(("emacs-dash" ,emacs-dash)
17484 ("emacs-f" ,emacs-f)
17485 ("emacs-ht" ,emacs-ht)
17486 ("emacs-markdown-mode" ,emacs-markdown-mode)
17487 ("emacs-spinner" ,emacs-spinner)))
17488 (home-page "https://github.com/emacs-lsp/lsp-mode")
17489 (synopsis "Emacs client and library for the Language Server Protocol")
17490 (description "@code{LSP-mode} is a client and library implementation for
17491 the Language Server Protocol. This mode aims to provide an IDE-like
17492 experience by providing optional integration with other popular Emacs packages
17493 like @code{company}, @code{flycheck}, and @code{projectile}.")
17494 (license license:gpl3+)))
17495
17496 (define-public emacs-lsp-ui
17497 (package
17498 (name "emacs-lsp-ui")
17499 (version "6.0")
17500 (source (origin
17501 (method git-fetch)
17502 (uri (git-reference
17503 (url "https://github.com/emacs-lsp/lsp-ui.git")
17504 (commit version)))
17505 (file-name (git-file-name name version))
17506 (sha256
17507 (base32
17508 "1r4327fd8cvjxfwkddp5c4bdskyncbs4sx9m3z2w4d773y2jrakc"))))
17509 (build-system emacs-build-system)
17510 (propagated-inputs
17511 `(("emacs-dash" ,emacs-dash)
17512 ("emacs-lsp-mode" ,emacs-lsp-mode)
17513 ("emacs-markdown-mode" ,emacs-markdown-mode)
17514 ("emacs-flycheck" ,emacs-flycheck)))
17515 (home-page "https://github.com/emacs-lsp/lsp-ui")
17516 (synopsis "User interface extensions for @code{lsp-mode}")
17517 (description
17518 "@code{LSP-ui} contains several enhancements and integrations for
17519 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
17520 and code peeking.")
17521 (license license:gpl3+)))
17522
17523 (define-public emacs-lsp-ivy
17524 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
17525 (revision "2"))
17526 (package
17527 (name "emacs-lsp-ivy")
17528 (version (git-version "0.1" revision commit))
17529 (source (origin
17530 (method git-fetch)
17531 (uri (git-reference
17532 (url "https://github.com/emacs-lsp/lsp-ivy.git")
17533 (commit commit)))
17534 (file-name (git-file-name name version))
17535 (sha256
17536 (base32
17537 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
17538 (build-system emacs-build-system)
17539 (propagated-inputs
17540 `(("emacs-ivy" ,emacs-ivy)
17541 ("emacs-lsp-mode" ,emacs-lsp-mode)
17542 ("emacs-dash" ,emacs-dash)))
17543 (home-page "https://github.com/emacs-lsp/lsp-ivy")
17544 (synopsis "Provide LSP-enhanced completion for symbols")
17545 (description
17546 "This package enhances @code{ivy} with completion for symbols from
17547 workspaces with a LSP-compliant server running.")
17548 (license license:gpl3+))))
17549
17550 (define-public emacs-helm-lsp
17551 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
17552 (revision "1"))
17553 (package
17554 (name "emacs-helm-lsp")
17555 (version (git-version "0.1" revision commit))
17556 (source (origin
17557 (method git-fetch)
17558 (uri (git-reference
17559 (url "https://github.com/emacs-lsp/helm-lsp.git")
17560 (commit commit)))
17561 (file-name (git-file-name name version))
17562 (sha256
17563 (base32
17564 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
17565 (build-system emacs-build-system)
17566 (propagated-inputs
17567 `(("emacs-helm" ,emacs-helm)
17568 ("emacs-lsp-mode" ,emacs-lsp-mode)
17569 ("emacs-dash" ,emacs-dash)))
17570 (home-page "https://github.com/emacs-lsp/helm-lsp")
17571 (synopsis "Provide LSP-enhanced completion for symbols")
17572 (description
17573 "This package enhances @code{helm} with completion for symbols from
17574 workspaces with a LSP-compliant server running.")
17575 (license license:gpl3+))))
17576
17577 (define-public emacs-helm-notmuch
17578 (package
17579 (name "emacs-helm-notmuch")
17580 (version "1.2")
17581 (home-page "https://github.com/emacs-helm/helm-notmuch/")
17582 (source (origin
17583 (method git-fetch)
17584 (uri (git-reference
17585 (url home-page)
17586 (commit version)))
17587 (file-name (git-file-name name version))
17588 (sha256
17589 (base32
17590 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
17591 (build-system emacs-build-system)
17592 (propagated-inputs
17593 `(("emacs-helm" ,emacs-helm)
17594 ("notmuch" ,notmuch)))
17595 (synopsis "Search emails with Emacs Notmuch and Helm")
17596 (description
17597 "This package can be used to search emails in Emacs, searching result
17598 displays as you type thanks to Helm, though @command{notmuch-search} does the
17599 real search.")
17600 (license license:gpl3+)))
17601
17602 (define-public emacs-elmacro
17603 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
17604 (package
17605 (name "emacs-elmacro")
17606 (version (git-version "1.1.0" "1" commit))
17607 (home-page "https://github.com/Silex/elmacro")
17608 (source (origin
17609 (method git-fetch)
17610 (uri (git-reference
17611 (url home-page)
17612 (commit commit)))
17613 (file-name (git-file-name name version))
17614 (sha256
17615 (base32
17616 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
17617 (build-system emacs-build-system)
17618 (propagated-inputs
17619 `(("emacs-s" ,emacs-s)
17620 ("emacs-dash" ,emacs-dash)))
17621 (synopsis "Convert keyboard macros to Emacs Lisp")
17622 (description
17623 "This package displays keyboard macros or latest interactive commands
17624 as Emacs Lisp.")
17625 (license license:gpl3+))))
17626
17627 (define-public emacs-transient
17628 ;; 0.1.0 depends on lv.el but not later versions.
17629 (let ((commit "7e45a57ec81185631fe763733f64c99021df2a06"))
17630 (package
17631 (name "emacs-transient")
17632 (version (git-version "0.1.0" "1" commit))
17633 (source (origin
17634 (method git-fetch)
17635 (uri (git-reference
17636 (url "https://github.com/magit/transient")
17637 (commit commit)))
17638 (file-name (git-file-name name version))
17639 (sha256
17640 (base32
17641 "0r6d4c1lga3bk0s7q7y4v4hbpxnd9h40cjxybqvax2z902931fz1"))))
17642 (build-system gnu-build-system)
17643 (native-inputs `(("texinfo" ,texinfo)
17644 ("emacs" ,emacs-minimal)))
17645 (propagated-inputs
17646 `(("dash" ,emacs-dash)))
17647 (arguments
17648 `(#:modules ((guix build gnu-build-system)
17649 (guix build utils)
17650 (srfi srfi-26)
17651 (guix build emacs-utils))
17652 #:imported-modules (,@%gnu-build-system-modules
17653 (guix build emacs-utils))
17654 #:tests? #f ; tests are not included in the release
17655 #:make-flags (list "lisp" "info"
17656 (string-append "LOAD_PATH=-L . -L "
17657 (assoc-ref %build-inputs "dash")
17658 "/share/emacs/site-lisp/guix.d/dash-"
17659 ,(package-version emacs-dash)))
17660 #:phases
17661 (modify-phases %standard-phases
17662 (delete 'configure)
17663 (replace 'install
17664 (lambda* (#:key inputs outputs #:allow-other-keys)
17665 (let* ((out (assoc-ref outputs "out"))
17666 (lisp (string-append out "/share/emacs/site-lisp/guix.d/"
17667 "transient" "-" ,version))
17668 (info (string-append out "/share/info")))
17669 (for-each (cut install-file <> lisp)
17670 (find-files "." "\\.elc*$"))
17671 (install-file "docs/transient.info" (string-append info)))
17672 #t)))))
17673 (home-page "https://magit.vc/manual/transient")
17674 (synopsis "Transient commands in Emacs")
17675 (description
17676 "Taking inspiration from prefix keys and prefix arguments in Emacs,
17677 Transient implements a similar abstraction involving a prefix command, infix
17678 arguments and suffix commands. We could call this abstraction a \"transient
17679 command\", but because it always involves at least two commands (a prefix and
17680 a suffix) we prefer to call it just a \"transient\".")
17681 (license license:gpl3+))))
17682
17683 (define-public emacs-forge
17684 (let ((commit "63cbf81f166fc71861d8e3d246df8e5ccedcb9bb"))
17685 (package
17686 (name "emacs-forge")
17687 (version (git-version "0.1.0" "2" commit))
17688 (source
17689 (origin
17690 (method git-fetch)
17691 (uri (git-reference
17692 (url "https://github.com/magit/forge.git")
17693 (commit commit)))
17694 (file-name (git-file-name name version))
17695 (sha256
17696 (base32
17697 "1yf2xjx3459py6rji740jm8bmh2pv66ghnbjxsvjd4jf9kcdav83"))))
17698 (build-system gnu-build-system)
17699 (native-inputs
17700 `(("texinfo" ,texinfo)
17701 ("emacs" ,emacs-minimal)))
17702 (propagated-inputs
17703 `(("emacs-closql" ,emacs-closql)
17704 ("emacs-dash" ,emacs-dash)
17705 ("emacs-emacsql-sqlite" ,emacs-emacsql)
17706 ("emacs-ghub" ,emacs-ghub)
17707 ("emacs-let-alist" ,emacs-let-alist)
17708 ("emacs-magit" ,emacs-magit)
17709 ("emacs-markdown-mode" ,emacs-markdown-mode)
17710 ("emacs-transient" ,emacs-transient)))
17711 (arguments
17712 `(#:tests? #f ;no tests
17713 #:modules ((srfi srfi-26)
17714 (guix build gnu-build-system)
17715 ((guix build emacs-build-system) #:prefix emacs:)
17716 (guix build utils)
17717 (guix build emacs-utils))
17718 #:imported-modules (,@%gnu-build-system-modules
17719 (guix build emacs-build-system)
17720 (guix build emacs-utils))
17721 #:phases
17722 (modify-phases %standard-phases
17723 (delete 'configure)
17724 (delete 'install)
17725 (add-after 'unpack 'delete-doc-targets
17726 (lambda _
17727 (substitute* "./Makefile"
17728 (("lisp docs") "lisp"))))
17729 (add-after 'delete-doc-targets 'emacs-set-emacs-load-path
17730 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
17731 (add-after 'emacs-set-emacs-load-path 'chdir-lisp
17732 (lambda _
17733 (chdir "lisp")))
17734 (add-after 'chdir-lisp 'emacs-install
17735 (assoc-ref emacs:%standard-phases 'install))
17736 (add-after 'emacs-install 'emacs-make-autoloads
17737 (assoc-ref emacs:%standard-phases 'make-autoloads))
17738 (add-after 'build 'install-elc
17739 (lambda* (#:key outputs #:allow-other-keys)
17740 (let* ((out (assoc-ref outputs "out"))
17741 (el-dir (string-append
17742 out "/share/emacs/site-lisp/guix.d/forge-"
17743 ,version)))
17744 (for-each (cut install-file <> el-dir)
17745 (find-files "." "\\.elc"))
17746 #t)))
17747 (add-after 'install-elc 'install-doc
17748 (lambda* (#:key outputs #:allow-other-keys)
17749 (let* ((out (assoc-ref outputs "out"))
17750 (info (string-append out "/share/info")))
17751 (with-directory-excursion "../docs"
17752 (invoke "makeinfo" "forge.texi")
17753 (install-file "forge.info" info)
17754 #t)))))))
17755 (home-page "https://github.com/magit/ghub/")
17756 (synopsis "Access Git forges from Magit")
17757 (description
17758 "Work with Git forges, such as Github and Gitlab, from the comfort of
17759 Magit and the rest of Emacs.")
17760 (license license:gpl3+))))
17761
17762 (define-public emacs-matcha
17763 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
17764 (package
17765 (name "emacs-matcha")
17766 (version (git-version "0.0.1" "1" commit)) ;no upstream release
17767 (source (origin
17768 (method git-fetch)
17769 (uri (git-reference
17770 (url "https://github.com/jojojames/matcha.git")
17771 (commit commit)))
17772 (file-name (git-file-name name version))
17773 (sha256
17774 (base32
17775 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
17776 (propagated-inputs
17777 `(("emacs-hydra" ,emacs-hydra)
17778 ("emacs-transient" ,emacs-transient)))
17779 (build-system emacs-build-system)
17780 (home-page "https://github.com/jojojames/matcha/")
17781 (synopsis "Collection of hydras with a generic interface to launch them")
17782 (description "Matcha provides a collection of transients for various
17783 packages with a consistent way to use them.")
17784 (license license:gpl3+))))
17785
17786 (define-public emacs-undo-propose-el
17787 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
17788 (revision "3"))
17789 (package
17790 (name "emacs-undo-propose-el")
17791 (version (git-version "3.0.0" revision commit))
17792 (source
17793 (origin
17794 (method git-fetch)
17795 (uri (git-reference
17796 (url "https://github.com/jackkamm/undo-propose-el")
17797 (commit commit)))
17798 (file-name (git-file-name name version))
17799 (sha256
17800 (base32
17801 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
17802 (build-system emacs-build-system)
17803 (arguments
17804 `(#:tests? #t
17805 #:test-command '("make" "test")))
17806 (home-page "https://github.com/jackkamm/undo-propose-el")
17807 (synopsis "Simple and safe navigation of @code{undo} history")
17808 (description "This package permits navigation of @code{undo} history in a
17809 temporary buffer, which is read-only save for @code{undo} commands, and
17810 subsequent committal of a chain of @code{undo} commands as a single edit in
17811 the @code{undo} history.")
17812 (license license:gpl3+))))
17813
17814 (define-public emacs-elisp-docstring-mode
17815 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
17816 (version "0.0.1")
17817 (revision "1"))
17818 (package
17819 (name "emacs-elisp-docstring-mode")
17820 (version (git-version version revision commit))
17821 (source
17822 (origin
17823 (method git-fetch)
17824 (uri (git-reference
17825 (url "https://github.com/Fuco1/elisp-docstring-mode")
17826 (commit commit)))
17827 (file-name (git-file-name name version))
17828 (sha256
17829 (base32
17830 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
17831 (build-system emacs-build-system)
17832 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
17833 (synopsis "Major mode for editing Emacs Lisp docstrings")
17834 (description "This package provides font lock and automatic escaping and
17835 unescaping of quotes.")
17836 (license license:gpl3+))))
17837
17838 (define-public emacs-vimrc-mode
17839 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
17840 (version "0.3.1")
17841 (revision "1"))
17842 (package
17843 (name "emacs-vimrc-mode")
17844 (version (git-version version revision commit))
17845 (source
17846 (origin
17847 (method git-fetch)
17848 (uri (git-reference
17849 (url "https://github.com/mcandre/vimrc-mode")
17850 (commit commit)))
17851 (file-name (git-file-name name version))
17852 (sha256
17853 (base32
17854 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
17855 (build-system emacs-build-system)
17856 (home-page "https://github.com/mcandre/vimrc-mode")
17857 (synopsis "Major mode for Vimscript")
17858 (description "This package provides font lock and @code{beginning-} and
17859 @code{end-of-defun} functions for Vimscript files.")
17860 (license license:gpl3+))))
17861
17862 (define-public emacs-flycheck-haskell
17863 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
17864 (revision "2"))
17865 (package
17866 (name "emacs-flycheck-haskell")
17867 (version (git-version "0.8" revision commit))
17868 (source
17869 (origin
17870 (method git-fetch)
17871 (uri (git-reference
17872 (url "https://github.com/flycheck/flycheck-haskell")
17873 (commit commit)))
17874 (file-name (git-file-name name version))
17875 (sha256
17876 (base32
17877 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
17878 (build-system emacs-build-system)
17879 (propagated-inputs
17880 `(("emacs-dash" ,emacs-dash)
17881 ("emacs-seq" ,emacs-seq)
17882 ("emacs-flycheck" ,emacs-flycheck)
17883 ("emacs-haskell-mode" ,emacs-haskell-mode)
17884 ("emacs-let-alist" ,emacs-let-alist)))
17885 (arguments
17886 `(#:include '("\\.el$" "\\.hs$")))
17887 (home-page "https://github.com/flycheck/flycheck-haskell")
17888 (synopsis "Flycheck for Haskell")
17889 (description "This package configures syntax-checking for Haskell
17890 buffers.")
17891 (license license:gpl3+))))
17892
17893 (define-public emacs-js2-refactor-el
17894 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
17895 (revision "2"))
17896 (package
17897 (name "emacs-js2-refactor-el")
17898 (version (git-version "0.9.0" revision commit))
17899 (source
17900 (origin
17901 (method git-fetch)
17902 (uri (git-reference
17903 (url "https://github.com/magnars/js2-refactor.el")
17904 (commit commit)))
17905 (file-name (git-file-name name version))
17906 (sha256
17907 (base32
17908 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
17909 (build-system emacs-build-system)
17910 (propagated-inputs
17911 `(("emacs-dash" ,emacs-dash)
17912 ("emacs-s" ,emacs-s)
17913 ("emacs-js2-mode" ,emacs-js2-mode)
17914 ("emacs-yasnippet" ,emacs-yasnippet)
17915 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
17916 (native-inputs
17917 `(("emacs-buttercup" ,emacs-buttercup)
17918 ("emacs-espuds" ,emacs-espuds)))
17919 (home-page "https://github.com/magnars/js2-refactor.el")
17920 (synopsis "JavaScript refactoring in Emacs")
17921 (description "This package provides various refactoring functions for
17922 JavaScript.")
17923 (license license:gpl3+))))
17924
17925 (define-public emacs-prettier
17926 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
17927 (version "0.1.0")
17928 (revision "1"))
17929 (package
17930 (name "emacs-prettier")
17931 (version (git-version version revision commit))
17932 (source
17933 (origin
17934 (method git-fetch)
17935 (uri (git-reference
17936 (url "https://github.com/prettier/prettier-emacs")
17937 (commit commit)))
17938 (file-name (git-file-name name version))
17939 (sha256
17940 (base32
17941 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
17942 (build-system emacs-build-system)
17943 (home-page "https://github.com/prettier/prettier-emacs")
17944 (synopsis "Automatic formatting of JavaScript code")
17945 (description "This package integrates Prettier with Emacs, and
17946 provides a minor mode that autoformats the buffer upon saving.")
17947 (license license:expat))))
17948
17949 (define-public emacs-fish-mode
17950 (package
17951 (name "emacs-fish-mode")
17952 (version "0.1.4")
17953 (source
17954 (origin
17955 (method git-fetch)
17956 (uri (git-reference
17957 (url "https://github.com/wwwjfy/emacs-fish")
17958 (commit version)))
17959 (file-name (git-file-name name version))
17960 (sha256
17961 (base32
17962 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
17963 (build-system emacs-build-system)
17964 (home-page "https://github.com/wwwjfy/emacs-fish")
17965 (synopsis "Major mode for Fish shell scripts")
17966 (description "This package provides syntax highlighting and indentation
17967 functions for Fish shell scripts.")
17968 (license license:gpl3+)))
17969
17970 (define-public emacs-eshell-up
17971 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
17972 (version "0.0.3")
17973 (revision "12"))
17974 (package
17975 (name "emacs-eshell-up")
17976 (version (git-version version revision commit))
17977 (source
17978 (origin
17979 (method git-fetch)
17980 (uri (git-reference
17981 (url "https://github.com/peterwvj/eshell-up")
17982 (commit commit)))
17983 (file-name (git-file-name name version))
17984 (sha256
17985 (base32
17986 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
17987 (build-system emacs-build-system)
17988 (home-page "https://github.com/peterwvj/eshell-up")
17989 (synopsis "Quickly go to a parent directory in @code{Eshell}")
17990 (description "This package provides quick navigation to a specific
17991 parent directory using @code{Eshell}.")
17992 (license license:gpl3+))))
17993
17994 (define-public emacs-tco-el
17995 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
17996 (revision "1"))
17997 (package
17998 (name "emacs-tco-el")
17999 (version (git-version "0.3" revision commit))
18000 (source
18001 (origin
18002 (method git-fetch)
18003 (uri (git-reference
18004 (url "https://github.com/Wilfred/tco.el")
18005 (commit commit)))
18006 (file-name (git-file-name name version))
18007 (sha256
18008 (base32
18009 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
18010 (build-system emacs-build-system)
18011 (propagated-inputs
18012 `(("emacs-dash" ,emacs-dash)))
18013 (native-inputs
18014 `(("emacs-ert-runner" ,emacs-ert-runner)
18015 ("emacs-undercover" ,emacs-undercover)))
18016 (arguments
18017 `(#:tests? #t
18018 #:test-command '("ert-runner")))
18019 (home-page "https://github.com/Wilfred/tco.el")
18020 (synopsis "Tail-call optimization for Emacs Lisp")
18021 (description "This package provides tail-call optimization for Emacs
18022 Lisp functions that call themselves in tail position.")
18023 (license license:gpl3+))))
18024
18025 (define-public emacs-equake
18026 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
18027 (revision "2"))
18028 (package
18029 (name "emacs-equake")
18030 (version (git-version "0.85" revision commit))
18031 (source
18032 (origin
18033 (method git-fetch)
18034 (uri (git-reference
18035 (url "https://gitlab.com/emacsomancer/equake/")
18036 (commit commit)))
18037 (file-name (git-file-name name version))
18038 (sha256
18039 (base32
18040 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
18041 (build-system emacs-build-system)
18042 (propagated-inputs
18043 `(("emacs-dash" ,emacs-dash)
18044 ("emacs-tco-el" ,emacs-tco-el)))
18045 (home-page "https://gitlab.com/emacsomancer/equake/")
18046 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
18047 (description "This package provides a Quake-style drop-down console
18048 compatible with Emacs' shell modes.")
18049 (license license:gpl3+))))
18050
18051 (define-public emacs-vdiff
18052 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
18053 (revision "1"))
18054 (package
18055 (name "emacs-vdiff")
18056 (version (git-version "0.2.3" revision commit))
18057 (source
18058 (origin
18059 (method git-fetch)
18060 (uri (git-reference
18061 (url "https://github.com/justbur/emacs-vdiff.git")
18062 (commit commit)))
18063 (file-name (git-file-name name version))
18064 (sha256
18065 (base32
18066 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
18067 (build-system emacs-build-system)
18068 (propagated-inputs
18069 `(("emacs-hydra" ,emacs-hydra)))
18070 (arguments
18071 `(#:tests? #t
18072 #:test-command '("emacs" "-Q" "-batch" "-L" "."
18073 "-l" "vdiff-test.el"
18074 "-f" "ert-run-tests-batch-and-exit")))
18075 (home-page "https://github.com/justbur/emacs-vdiff/")
18076 (synopsis "Frontend for diffing based on vimdiff")
18077 (description "This package permits comparisons of two or three buffers
18078 based on diff output.")
18079 (license license:gpl3+))))
18080
18081 (define-public emacs-vdiff-magit
18082 ;; Need to use a more recent commit than the latest release version because
18083 ;; of Magit and Transient
18084 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
18085 (version "0.3.2")
18086 (revision "8"))
18087 (package
18088 (name "emacs-vdiff-magit")
18089 (version (git-version version revision commit))
18090 (source
18091 (origin
18092 (method git-fetch)
18093 (uri (git-reference
18094 (url "https://github.com/justbur/emacs-vdiff-magit/")
18095 (commit commit)))
18096 (file-name (git-file-name name version))
18097 (sha256
18098 (base32
18099 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
18100 (build-system emacs-build-system)
18101 (propagated-inputs
18102 `(("emacs-vdiff" ,emacs-vdiff)
18103 ("emacs-magit" ,emacs-magit)
18104 ("emacs-transient" ,emacs-transient)))
18105 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
18106 (synopsis "Frontend for diffing based on vimdiff")
18107 (description "This package permits comparisons of two or three buffers
18108 based on diff output.")
18109 (license license:gpl3+))))
18110
18111 (define-public emacs-all-the-icons-dired
18112 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
18113 (version "1.0")
18114 (revision "1"))
18115 (package
18116 (name "emacs-all-the-icons-dired")
18117 (version (git-version version revision commit))
18118 (source
18119 (origin
18120 (method git-fetch)
18121 (uri (git-reference
18122 (url "https://github.com/jtbm37/all-the-icons-dired/")
18123 (commit commit)))
18124 (file-name (git-file-name name version))
18125 (sha256
18126 (base32
18127 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
18128 (build-system emacs-build-system)
18129 (propagated-inputs
18130 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
18131 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
18132 (synopsis "Show icons for each file in @code{dired-mode}")
18133 (description "This package allows icons from @file{all-the-icons.el} to
18134 be used in @code{dired-mode}.")
18135 (license license:gpl3+))))
18136
18137 (define-public emacs-exwm-edit
18138 (let ((commit "961c0f3ea45766b888c73d7353da13d329538034")
18139 (version "0.0.1")
18140 (revision "1"))
18141 (package
18142 (name "emacs-exwm-edit")
18143 (version (git-version version revision commit))
18144 (source
18145 (origin
18146 (method git-fetch)
18147 (uri (git-reference
18148 (url "https://github.com/agzam/exwm-edit/")
18149 (commit commit)))
18150 (file-name (git-file-name name version))
18151 (sha256
18152 (base32
18153 "087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw"))))
18154 (build-system emacs-build-system)
18155 (propagated-inputs
18156 `(("emacs-exwm" ,emacs-exwm)))
18157 (home-page "https://github.com/agzam/exwm-edit/")
18158 (synopsis "Open temp buffers for editing text from EXWM buffers")
18159 (description "This package facilitates editing text from EXWM buffers by
18160 generating a temp buffer in which any useful Emacs utilities and modes can be
18161 invoked.")
18162 (license license:gpl3+))))
18163
18164 (define-public emacs-ert-async
18165 (package
18166 (name "emacs-ert-async")
18167 (version "0.1.2")
18168 (source
18169 (origin
18170 (method git-fetch)
18171 (uri (git-reference
18172 (url "https://github.com/rejeep/ert-async.el")
18173 (commit (string-append "v" version))))
18174 (file-name (git-file-name name version))
18175 (sha256
18176 (base32
18177 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
18178 (build-system emacs-build-system)
18179 (home-page "https://github.com/rejeep/ert-async.el")
18180 (synopsis "Async support for ERT")
18181 (description "This package allows ERT to work with asynchronous tests.")
18182 (license license:gpl3+)))
18183
18184 (define-public emacs-prodigy-el
18185 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
18186 (revision "2"))
18187 (package
18188 (name "emacs-prodigy-el")
18189 (version (git-version "0.7.0" revision commit))
18190 (source
18191 (origin
18192 (method git-fetch)
18193 (uri (git-reference
18194 (url "https://github.com/rejeep/prodigy.el")
18195 (commit commit)))
18196 (file-name (git-file-name name version))
18197 (sha256
18198 (base32
18199 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
18200 (build-system emacs-build-system)
18201 (propagated-inputs
18202 `(("emacs-dash" ,emacs-dash)
18203 ("emacs-s" ,emacs-s)
18204 ("emacs-f" ,emacs-f)))
18205 (native-inputs
18206 `(("emacs-el-mock" ,emacs-el-mock)
18207 ("emacs-ert-async" ,emacs-ert-async)))
18208 (home-page "https://github.com/rejeep/prodigy.el")
18209 (synopsis "Manage external services from within Emacs")
18210 (description "This package provides a GUI for defining and monitoring services.")
18211 (license license:gpl3+))))
18212
18213 (define-public emacs-web-server
18214 (let ((commit "cafa5b7582c57252a0884b2c33da9b18fb678713")
18215 (revision "1"))
18216 (package
18217 (name "emacs-web-server")
18218 (version (git-version "0.1.0" revision commit))
18219 (source
18220 (origin
18221 (method git-fetch)
18222 (uri (git-reference
18223 (url "https://github.com/eschulte/emacs-web-server/")
18224 (commit commit)))
18225 (file-name (git-file-name name version))
18226 (sha256
18227 (base32
18228 "1c0lfqmbs5hvz3fh3c8wgp6ipwmxrwx9xj264bjpj3phixd5419y"))))
18229 (build-system emacs-build-system)
18230 (native-inputs
18231 `(("curl" ,curl)))
18232 (arguments
18233 `(#:phases
18234 (modify-phases %standard-phases
18235 (add-after 'unpack 'set-shell
18236 ;; Setting the SHELL environment variable is required for the tests
18237 ;; to find sh.
18238 (lambda _
18239 (setenv "SHELL" (which "sh"))
18240 #t)))
18241 #:tests? #t
18242 #:test-command '("make" "check")))
18243 (home-page "https://github.com/eschulte/emacs-web-server/")
18244 (synopsis "Web server with handlers in Emacs Lisp")
18245 (description "This package supports HTTP GET and POST requests with
18246 url-encoded parameters, as well as web sockets.")
18247 (license license:gpl3+))))
18248
18249 (define-public emacs-markdown-preview-mode
18250 (package
18251 (name "emacs-markdown-preview-mode")
18252 (version "0.9.2")
18253 (source
18254 (origin
18255 (method git-fetch)
18256 (uri (git-reference
18257 (url "https://github.com/ancane/markdown-preview-mode")
18258 (commit (string-append "v" version))))
18259 (file-name (git-file-name name version))
18260 (sha256
18261 (base32
18262 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
18263 (build-system emacs-build-system)
18264 (propagated-inputs
18265 `(("emacs-markdown-mode" ,emacs-markdown-mode)
18266 ("emacs-websocket" ,emacs-websocket)
18267 ("emacs-web-server" ,emacs-web-server)))
18268 (arguments '(#:include '("\\.el$" "\\.html$")))
18269 (home-page "https://github.com/ancane/markdown-preview-mode")
18270 (synopsis "Preview Markdown files")
18271 (description "This package provides a minor mode for preview of Markdown
18272 files, and sends rendered Markdown to a web browser.")
18273 (license license:gpl3+)))
18274
18275 (define-public emacs-dotenv-mode
18276 (package
18277 (name "emacs-dotenv-mode")
18278 (version "0.2.4")
18279 (source
18280 (origin
18281 (method git-fetch)
18282 (uri (git-reference
18283 (url "https://github.com/preetpalS/emacs-dotenv-mode")
18284 (commit (string-append "v" version))))
18285 (file-name (git-file-name name version))
18286 (sha256
18287 (base32
18288 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
18289 (build-system emacs-build-system)
18290 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
18291 (synopsis "Major mode for @file{.env} files")
18292 (description "This package provides syntax highlighting for @file{.env}
18293 files.")
18294 (license license:gpl3+)))
18295
18296 (define-public emacs-add-node-modules-path
18297 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
18298 (version "1.2.0")
18299 (revision "10"))
18300 (package
18301 (name "emacs-add-node-modules-path")
18302 (version (git-version version revision commit))
18303 (source
18304 (origin
18305 (method git-fetch)
18306 (uri (git-reference
18307 (url "https://github.com/codesuki/add-node-modules-path")
18308 (commit commit)))
18309 (file-name (git-file-name name version))
18310 (sha256
18311 (base32
18312 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
18313 (build-system emacs-build-system)
18314 (home-page "https://github.com/codesuki/add-node-modules-path")
18315 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
18316 (description "This package searches the parent directories of the
18317 current file for the project's @file{node_modules/.bin/} directory, allowing
18318 Emacs to find project-specific installations of packages.")
18319 (license license:expat))))
18320
18321 (define-public emacs-flow-minor-mode
18322 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
18323 (version "0.3")
18324 (revision "4"))
18325 (package
18326 (name "emacs-flow-minor-mode")
18327 (version (git-version version revision commit))
18328 (source
18329 (origin
18330 (method git-fetch)
18331 (uri (git-reference
18332 (url "https://github.com/an-sh/flow-minor-mode")
18333 (commit commit)))
18334 (file-name (git-file-name name version))
18335 (sha256
18336 (base32
18337 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
18338 (build-system emacs-build-system)
18339 (home-page "https://github.com/an-sh/flow-minor-mode")
18340 (synopsis "Minor mode for JavaScript Flow files")
18341 (description "This package integrates Flow with Emacs, allowing for
18342 definition-jumping and type-checking on demand.")
18343 (license license:bsd-3))))
18344
18345 (define-public emacs-rjsx-mode
18346 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
18347 (revision "2"))
18348 (package
18349 (name "emacs-rjsx-mode")
18350 (version (git-version "0.4" revision commit))
18351 (source
18352 (origin
18353 (method git-fetch)
18354 (uri (git-reference
18355 (url "https://github.com/felipeochoa/rjsx-mode")
18356 (commit commit)))
18357 (file-name (git-file-name name version))
18358 (sha256
18359 (base32
18360 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
18361 (build-system emacs-build-system)
18362 (propagated-inputs
18363 `(("emacs-js2-mode" ,emacs-js2-mode)))
18364 (arguments
18365 `(#:tests? #t
18366 #:test-command '("make" "test")))
18367 (home-page "https://github.com/felipeochoa/rjsx-mode")
18368 (synopsis "Major mode for JSX files")
18369 (description "This package extends the parser of @code{js2-mode} to
18370 support JSX syntax.")
18371 (license license:expat))))
18372
18373 (define-public emacs-origami-el
18374 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
18375 (version "1.0")
18376 (revision "1"))
18377 (package
18378 (name "emacs-origami-el")
18379 (version (git-version version revision commit))
18380 (source
18381 (origin
18382 (method git-fetch)
18383 (uri (git-reference
18384 (url "https://github.com/gregsexton/origami.el")
18385 (commit commit)))
18386 (file-name (git-file-name name version))
18387 (sha256
18388 (base32
18389 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
18390 (build-system emacs-build-system)
18391 (propagated-inputs
18392 `(("emacs-dash" ,emacs-dash)
18393 ("emacs-s" ,emacs-s)))
18394 (home-page "https://github.com/gregsexton/origami.el")
18395 (synopsis "Flexible text-folding")
18396 (description "This package provides a minor mode for collapsing and
18397 expanding regions of text without modifying the actual contents.")
18398 (license license:expat))))
18399
18400 (define-public emacs-peep-dired
18401 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
18402 (version "0")
18403 (revision "1"))
18404 (package
18405 (name "emacs-peep-dired")
18406 (version (git-version version revision commit))
18407 (source
18408 (origin
18409 (method git-fetch)
18410 (uri (git-reference
18411 (url "https://github.com/asok/peep-dired")
18412 (commit commit)))
18413 (file-name (git-file-name name version))
18414 (sha256
18415 (base32
18416 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
18417 (build-system emacs-build-system)
18418 (home-page "https://github.com/asok/peep-dired")
18419 (synopsis "Preview files in another window")
18420 (description "This package provides a minor mode that allows files to be
18421 previewed by scrolling up and down within a @code{dired} buffer.")
18422 (license license:gpl3+))))
18423
18424 (define-public emacs-counsel-etags
18425 (package
18426 (name "emacs-counsel-etags")
18427 (version "1.8.9")
18428 (source
18429 (origin
18430 (method git-fetch)
18431 (uri (git-reference
18432 (url "https://github.com/redguardtoo/counsel-etags")
18433 (commit version)))
18434 (file-name (git-file-name name version))
18435 (sha256
18436 (base32
18437 "0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9"))))
18438 (build-system emacs-build-system)
18439 (propagated-inputs
18440 `(("emacs-ivy" ,emacs-ivy)))
18441 (arguments
18442 `(#:tests? #t
18443 #:test-command '("make" "test")))
18444 (home-page "https://github.com/redguardtoo/counsel-etags")
18445 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
18446 (description "This package uses @code{ivy-mode} to facilitate navigating
18447 and searching through @code{Ctags} files.")
18448 (license license:gpl3+)))
18449
18450 (define-public emacs-org-download
18451 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
18452 (revision "2"))
18453 (package
18454 (name "emacs-org-download")
18455 (version (git-version "0.1.0" revision commit))
18456 (source (origin
18457 (method git-fetch)
18458 (uri (git-reference
18459 (url "https://github.com/abo-abo/org-download")
18460 (commit commit)))
18461 (sha256
18462 (base32
18463 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
18464 (file-name (git-file-name name version))))
18465 (build-system emacs-build-system)
18466 (propagated-inputs
18467 `(("emacs-org" ,emacs-org)
18468 ("emacs-async" ,emacs-async)))
18469 (home-page "https://github.com/abo-abo/org-download")
18470 (synopsis "Facilitate moving images")
18471 (description "This package provides utilities for managing image files
18472 copied into @code{org-mode} buffers.")
18473 (license license:gpl3+))))
18474
18475 (define-public emacs-dash-docs
18476 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
18477 (revision "1"))
18478 (package
18479 (name "emacs-dash-docs")
18480 (version (git-version "1.4.0" revision commit))
18481 (source
18482 (origin
18483 (method git-fetch)
18484 (uri (git-reference
18485 (url "https://github.com/dash-docs-el/dash-docs.git")
18486 (commit commit)))
18487 (file-name (git-file-name name version))
18488 (sha256
18489 (base32
18490 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
18491 (build-system emacs-build-system)
18492 (propagated-inputs
18493 `(("emacs-async" ,emacs-async)))
18494 (native-inputs
18495 `(("emacs-undercover" ,emacs-undercover)
18496 ("emacs-ert-runner" ,emacs-ert-runner)))
18497 (arguments
18498 `(#:tests? #t
18499 #:test-command '("ert-runner")
18500 #:phases
18501 ;; this test requires network access, so remove it
18502 (modify-phases %standard-phases
18503 (add-before 'check 'make-tests-writable
18504 (lambda _
18505 (make-file-writable "test/dash-docs-test.el")
18506 #t))
18507 (add-before 'check 'delete-test
18508 (lambda _
18509 (emacs-batch-edit-file "test/dash-docs-test.el"
18510 `(progn (progn
18511 (goto-char (point-min))
18512 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
18513 (beginning-of-line)
18514 (kill-sexp))
18515 (basic-save-buffer)))
18516 #t)))))
18517 (home-page "https://github.com/dash-docs-el/dash-docs")
18518 (synopsis "Offline documentation browser for APIs using Dash docsets")
18519 (description "This package exposes functionality to work with Dash docsets.")
18520 (license license:gpl3+))))
18521
18522 (define-public emacs-helm-dash
18523 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
18524 (revision "2"))
18525 (package
18526 (name "emacs-helm-dash")
18527 (version (git-version "1.3.0" revision commit))
18528 (source
18529 (origin
18530 (method git-fetch)
18531 (uri (git-reference
18532 (url "https://github.com/areina/helm-dash.git")
18533 (commit commit)))
18534 (file-name (git-file-name name version))
18535 (sha256
18536 (base32
18537 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
18538 (build-system emacs-build-system)
18539 (propagated-inputs
18540 `(("emacs-helm" ,emacs-helm)
18541 ("emacs-dash-docs" ,emacs-dash-docs)))
18542 (home-page "https://github.com/areina/helm-dash")
18543 (synopsis "Offline documentation browser for APIs using Dash docsets")
18544 (description "This package uses Helm to install and navigate through
18545 Dash docsets.")
18546 (license license:gpl3+))))
18547
18548 (define-public emacs-counsel-dash
18549 (let ((commit "7027868d483b51d949b9f20fb8f34b122ca61520")
18550 (revision "3"))
18551 (package
18552 (name "emacs-counsel-dash")
18553 (version (git-version "0.1.3" revision commit))
18554 (source
18555 (origin
18556 (method git-fetch)
18557 (uri (git-reference
18558 (url "https://github.com/dash-docs-el/counsel-dash.git")
18559 (commit commit)))
18560 (file-name (git-file-name name version))
18561 (sha256
18562 (base32
18563 "0h3f5pxnmb21pq4hh7k4w8jzflz1k2ap7nwpjc222w0q6x6jrbjp"))))
18564 (build-system emacs-build-system)
18565 (propagated-inputs
18566 `(("emacs-dash-docs" ,emacs-dash-docs)
18567 ("emacs-ivy" ,emacs-ivy)))
18568 (arguments
18569 `(#:phases
18570 (modify-phases %standard-phases
18571 (add-after 'unpack 'require-ivy
18572 (lambda _
18573 (substitute* "counsel-dash.el"
18574 (("^\\(require 'cl-lib\\)")
18575 "(require 'cl-lib)\n(require 'ivy)\n(require 'subr-x)"))
18576 #t)))))
18577 (home-page "https://github.com/dash-docs-el/counsel-dash")
18578 (synopsis "Offline documentation browser for APIs using Dash docsets")
18579 (description "This package uses @code{ivy-mode} to install and navigate
18580 through Dash docsets.")
18581 (license license:expat))))
18582
18583 (define-public emacs-el-patch
18584 (package
18585 (name "emacs-el-patch")
18586 (version "2.2.3")
18587 (source
18588 (origin
18589 (method git-fetch)
18590 (uri (git-reference
18591 (url "https://github.com/raxod502/el-patch")
18592 (commit version)))
18593 (file-name (git-file-name name version))
18594 (sha256
18595 (base32
18596 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
18597 (build-system emacs-build-system)
18598 (home-page "https://github.com/raxod502/el-patch")
18599 (synopsis "Future-proof your Emacs customizations")
18600 (description "This package allows for an alternate definition of an Elisp
18601 function to be specified and for any differences from the original definition
18602 to be examined using Ediff.")
18603 (license license:expat)))
18604
18605 (define-public emacs-info-plus
18606 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
18607 (revision "2"))
18608 (package
18609 (name "emacs-info-plus")
18610 (version (git-version "0" revision commit))
18611 (source
18612 (origin
18613 (method git-fetch)
18614 (uri (git-reference
18615 (url "https://github.com/emacsmirror/info-plus")
18616 (commit commit)))
18617 (file-name (git-file-name name version))
18618 (sha256
18619 (base32
18620 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
18621 (build-system emacs-build-system)
18622 (home-page "https://github.com/emacsmirror/info-plus")
18623 (synopsis "Extensions to @file{info.el}")
18624 (description "This package extends Emacs' @file{info.el} by allowing
18625 outline-enabled table of contents, additional metadata association for Info
18626 nodes, and more.")
18627 (license license:gpl2+))))
18628
18629 (define-public emacs-eval-sexp-fu-el
18630 (package
18631 (name "emacs-eval-sexp-fu-el")
18632 (version "0.5.0")
18633 (source
18634 (origin
18635 (method git-fetch)
18636 (uri (git-reference
18637 (url "https://github.com/hchbaw/eval-sexp-fu.el")
18638 (commit (string-append "v" version))))
18639 (file-name (git-file-name name version))
18640 (sha256
18641 (base32
18642 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
18643 (build-system emacs-build-system)
18644 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
18645 (synopsis "Enhancements for evaluating s-expressions")
18646 (description "This package provides provides variants of
18647 @code{eval-last-sexp} that work on the containing list or s-expression, as
18648 well as an option for visually flashing evaluated s-expressions.")
18649 (license license:gpl3+)))
18650
18651 (define-public emacs-counsel-tramp
18652 (package
18653 (name "emacs-counsel-tramp")
18654 (version "0.6.3")
18655 (source
18656 (origin
18657 (method git-fetch)
18658 (uri (git-reference
18659 (url "https://github.com/masasam/emacs-counsel-tramp")
18660 (commit version)))
18661 (file-name (git-file-name name version))
18662 (sha256
18663 (base32
18664 "1qy9lf7cyv6hp9mmpwh92cpdcffbxzyzchx6878d5pmk9qh6xy92"))))
18665 (build-system emacs-build-system)
18666 (propagated-inputs
18667 `(("emacs-ivy" ,emacs-ivy)))
18668 (home-page "https://github.com/masasam/emacs-counsel-tramp")
18669 (synopsis "Ivy interface for TRAMP")
18670 (description "This package allows @code{ivy-mode} to display and filter
18671 SSH servers.")
18672 (license license:gpl3+)))
18673
18674 (define-public emacs-eacl
18675 (package
18676 (name "emacs-eacl")
18677 (version "2.0.1")
18678 (source
18679 (origin
18680 (method git-fetch)
18681 (uri (git-reference
18682 (url "https://github.com/redguardtoo/eacl")
18683 (commit version)))
18684 (file-name (git-file-name name version))
18685 (sha256
18686 (base32
18687 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
18688 (build-system emacs-build-system)
18689 (propagated-inputs
18690 `(("emacs-ivy" ,emacs-ivy)))
18691 (home-page "https://github.com/redguardtoo/eacl")
18692 (synopsis "Auto-complete lines by using @code{grep} on a project")
18693 (description "This package provides auto-completion cammands for single
18694 and multiple lines of code in a project.")
18695 (license license:gpl3+)))
18696
18697 (define-public emacs-semantic-refactor
18698 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
18699 ;; commits since then.
18700 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
18701 (package
18702 (name "emacs-semantic-refactor")
18703 (version (git-version "0.5" "1" commit))
18704 (source
18705 (origin
18706 (method git-fetch)
18707 (uri (git-reference
18708 (url "https://github.com/tuhdo/semantic-refactor")
18709 (commit commit)))
18710 (file-name (git-file-name name version))
18711 (sha256
18712 (base32
18713 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
18714 (build-system emacs-build-system)
18715 (home-page "https://github.com/tuhdo/semantic-refactor")
18716 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
18717 (description "This package provides a refactoring tool based on the
18718 Emacs Semantic parser framework. For C and C++ it supports operations such as:
18719
18720 @enumerate
18721 @item Generating class implementations
18722 @item Generating function prototypes
18723 @item Converting functions to function pointers
18724 @item Moving semantic units
18725 @item etc...
18726 @end enumerate
18727
18728 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
18729 as:
18730
18731 @enumerate
18732 @item Formatting the whole buffer
18733 @item Converting sexpressions to one or multiple lines
18734 @item etc...
18735 @end enumerate\n")
18736 (license license:gpl3+))))
18737
18738 (define-public emacs-nhexl-mode
18739 (package
18740 (name "emacs-nhexl-mode")
18741 (version "1.4")
18742 (source
18743 (origin
18744 (method url-fetch)
18745 (uri (string-append
18746 "https://elpa.gnu.org/packages/nhexl-mode-"
18747 version ".el"))
18748 (sha256
18749 (base32 "1c2q4w6hkvc7z4026hiqdcsm2scd6q35x7b0dk80h8qicsbi14c8"))))
18750 (build-system emacs-build-system)
18751 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
18752 (synopsis "Minor mode to edit files via hex-dump format")
18753 (description
18754 "This package implements NHexl mode, a minor mode for editing files
18755 in hex dump format. The mode command is called @command{nhexl-mode}.
18756
18757 This minor mode implements similar functionality to @command{hexl-mode},
18758 but using a different implementation technique, which makes it
18759 usable as a \"plain\" minor mode. It works on any buffer, and does
18760 not mess with the undo log or with the major mode.
18761
18762 It also comes with:
18763
18764 @itemize
18765 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
18766 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
18767 (which only work for hex-digits) will only modify the nibble under point.
18768 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
18769 moving text. In this minor mode, not only self-inserting keys overwrite
18770 existing text, but commands like `yank' and @command{kill-region} as well.
18771 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
18772 C-f} to advance by #xa4 characters.
18773 @end itemize\n")
18774 (license license:gpl3+)))
18775
18776 (define-public emacs-helm-wikipedia
18777 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
18778 (package
18779 (name "emacs-helm-wikipedia")
18780 (version (git-version "0.0.0" "1" commit))
18781 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
18782 (source
18783 (origin
18784 (method git-fetch)
18785 (uri (git-reference
18786 (url home-page)
18787 (commit commit)))
18788 (file-name (git-file-name name version))
18789 (sha256
18790 (base32
18791 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
18792 (build-system emacs-build-system)
18793 (inputs
18794 `(("helm" ,emacs-helm)))
18795 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
18796 (description
18797 "This package provides an Emacs Helm interface for search suggestions
18798 and article extracts for Wikipedia.")
18799 (license license:gpl3+))))
18800
18801 (define-public emacs-webfeeder
18802 (package
18803 (name "emacs-webfeeder")
18804 (version "1.0.0")
18805 (source
18806 (origin
18807 (method url-fetch)
18808 (uri (string-append
18809 "https://elpa.gnu.org/packages/webfeeder-"
18810 version
18811 ".tar"))
18812 (sha256
18813 (base32
18814 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
18815 (build-system emacs-build-system)
18816 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
18817 (synopsis "Build RSS and Atom webfeeds from HTML files")
18818 (description
18819 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
18820 files. The various elements of the HTML input are parsed with customizable
18821 functions (e.g. @code{webfeeder-title-function}).")
18822 (license license:gpl3+)))
18823
18824 (define-public emacs-evil-numbers
18825 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
18826 (package
18827 (name "emacs-evil-numbers")
18828 (version (git-version "0.4" "1" commit))
18829 (source (origin
18830 (method git-fetch)
18831 (uri (git-reference
18832 (url "https://github.com/dieggsy/evil-numbers")
18833 (commit commit)))
18834 (file-name (git-file-name name version))
18835 (sha256
18836 (base32
18837 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
18838 (build-system emacs-build-system)
18839 (home-page "https://github.com/dieggsy/evil-numbers")
18840 (synopsis "Increment and decrement numbers in Emacs")
18841 (description "This package increments and decrements binary, octal,
18842 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
18843 number up to EOL and then increments or decrements and keeps zero padding up
18844 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
18845 numbers within that region will be incremented/decremented (unlike in Vim).
18846
18847 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
18848 (license license:gpl3+))))
18849
18850 (define-public emacs-rotate-text
18851 (package
18852 (name "emacs-rotate-text")
18853 (version "0.1")
18854 (source (origin
18855 (method git-fetch)
18856 (uri (git-reference
18857 (url "https://github.com/nschum/rotate-text.el.git")
18858 (commit version)))
18859 (file-name (git-file-name name version))
18860 (sha256
18861 (base32
18862 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
18863 (build-system emacs-build-system)
18864 (home-page "http://nschum.de/src/emacs/rotate-text/")
18865 (synopsis "Cycle through words, symbols and patterns in Emacs")
18866 (description "@code{rotate-text} allows you rotate to commonly
18867 interchanged text with a single keystroke. For example, you can toggle
18868 between \"frame-width\" and \"frame-height\", between \"public\",
18869 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
18870 \"variableN\".")
18871 (license license:gpl2+)))
18872
18873 (define-public emacs-ediprolog
18874 (package
18875 (name "emacs-ediprolog")
18876 (version "1.2")
18877 (source
18878 (origin
18879 (method url-fetch)
18880 (uri (string-append
18881 "https://elpa.gnu.org/packages/ediprolog-"
18882 version
18883 ".el"))
18884 (sha256
18885 (base32
18886 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
18887 (build-system emacs-build-system)
18888 (home-page "http://elpa.gnu.org/packages/ediprolog.html")
18889 (synopsis "Emacs Does Interactive Prolog")
18890 (description "This package provides a major mode that let the user
18891 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
18892 programs and evaluate embedded queries. This mode is focused on the command
18893 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
18894 context, carry out the appropriate action.")
18895 (license license:gpl3+)))
18896
18897 (define-public emacs-evil-cleverparens
18898 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
18899 (revision "1"))
18900 (package
18901 (name "emacs-evil-cleverparens")
18902 (version (git-version "2017-07-17" revision commit))
18903 (source (origin
18904 (method git-fetch)
18905 (uri (git-reference
18906 (url "https://github.com/luxbock/evil-cleverparens.git")
18907 (commit commit)))
18908 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
18909 (file-name (git-file-name name version))))
18910 (build-system emacs-build-system)
18911 (propagated-inputs
18912 `(("emacs-evil" ,emacs-evil)
18913 ("emacs-paredit" ,emacs-paredit)
18914 ("emacs-smartparens" ,emacs-smartparens)))
18915 (home-page "https://github.com/luxbock/evil-cleverparens")
18916 (synopsis "Emacs modal editing optimized for editing Lisp")
18917 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
18918 modal editing with screwing up the structure of Lisp code. Alternatives for
18919 verb commands which would are normally destructive (such as deletion) are
18920 provided. Those alternative commands are and bound by default to their
18921 corresponding Evil keys.")
18922 (license license:expat))))
18923
18924 (define-public emacs-evil-traces
18925 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
18926 (revision "2"))
18927 (package
18928 (name "emacs-evil-traces")
18929 (version (git-version "0.0.1" revision commit))
18930 (source (origin
18931 (method git-fetch)
18932 (uri (git-reference
18933 (url "https://github.com/mamapanda/evil-traces.git")
18934 (commit commit)))
18935 (file-name (git-file-name name version))
18936 (sha256
18937 (base32
18938 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
18939 (build-system emacs-build-system)
18940 (propagated-inputs
18941 `(("emacs-evil" ,emacs-evil)))
18942 (arguments
18943 `(#:phases
18944 (modify-phases %standard-phases
18945 (add-after 'unpack 'set-shell
18946 ;; Setting the SHELL environment variable is required for the tests
18947 ;; to find sh.
18948 (lambda _
18949 (setenv "SHELL" (which "sh"))
18950 #t)))
18951 #:tests? #t
18952 #:test-command '("make" "test")))
18953 (home-page "https://github.com/mamapanda/evil-traces")
18954 (synopsis "Visual hints for @code{evil-ex}")
18955 (description "This package adds visual hints to certain @code{ex}
18956 commands in @code{evil-mode}.")
18957 (license license:gpl3+))))
18958
18959 (define-public emacs-xterm-color
18960 (package
18961 (name "emacs-xterm-color")
18962 (version "1.9")
18963 (source (origin
18964 (method git-fetch)
18965 (uri (git-reference
18966 (url "https://github.com/atomontage/xterm-color.git")
18967 (commit version)))
18968 (file-name (git-file-name name version))
18969 (sha256
18970 (base32
18971 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
18972 (build-system emacs-build-system)
18973 (home-page "https://github.com/atomontage/xterm-color")
18974 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
18975 (description "@code{xterm-color.el} is an ANSI control sequence to
18976 text-property translator.")
18977 (license license:bsd-2)))
18978
18979 (define-public emacs-org-noter
18980 (package
18981 (name "emacs-org-noter")
18982 (version "1.3.0")
18983 (source
18984 (origin
18985 (method url-fetch)
18986 (uri (string-append
18987 "https://stable.melpa.org/packages/org-noter-"
18988 version
18989 ".el"))
18990 (sha256
18991 (base32
18992 "1hczwva73gsyanl1ldhdvql01gy0hy2g861yzkaklyb763sx58x4"))))
18993 (build-system emacs-build-system)
18994 (propagated-inputs `(("emacs-org" ,emacs-org)))
18995 (home-page "https://github.com/weirdNox/org-noter")
18996 (synopsis "Synchronized, Org-mode, document annotator")
18997 (description
18998 "This package lets you create notes that are kept in sync when you
18999 scroll through the document, but that are external to it---the notes
19000 themselves live in an Org-mode file. As such, this leverages the power of
19001 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
19002 acting like notes that are made @emph{in} the document.")
19003 (license license:gpl3+)))
19004
19005 (define-public emacs-org-redmine
19006 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
19007 (package
19008 (name "emacs-org-redmine")
19009 (version (git-version "0.1" "1" commit))
19010 (source (origin
19011 (method git-fetch)
19012 (uri (git-reference
19013 (url "https://github.com/gongo/org-redmine.git")
19014 (commit commit)))
19015 (file-name (git-file-name name version))
19016 (sha256
19017 (base32
19018 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
19019 (build-system emacs-build-system)
19020 (home-page "https://github.com/gongo/org-redmine/")
19021 (synopsis "Redmine tools using Emacs")
19022 (description "This program provides an Emacs client for Redmine.")
19023 (license license:gpl3+))))
19024
19025 (define-public emacs-multi-term
19026 (let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
19027 (package
19028 (name "emacs-multi-term")
19029 (version "1.2")
19030 (source (origin
19031 (method git-fetch)
19032 (uri (git-reference
19033 (url "https://github.com/manateelazycat/multi-term.git")
19034 (commit commit)))
19035 (file-name (git-file-name name version))
19036 (sha256
19037 (base32
19038 "0apvidmvb7rv05qjnjhax42ma8wrimik5vxx620dlbv17svz7iyf"))))
19039 (build-system emacs-build-system)
19040 (inputs `(("zsh" ,zsh)))
19041 (home-page "https://github.com/manateelazycat/multi-term")
19042 (synopsis "Manage multiple terminal buffers in Emacs")
19043 (description
19044 "This package enhances @code{term.el} with the following features:
19045
19046 @enumerate
19047 @item Functions to switch between multiple terminal buffers
19048 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
19049 the underlying terminal
19050 @item Kills the unused buffer left after exiting the terminal
19051 @item Kills the running sub-processes along with the terminal when killing the
19052 it forcibly
19053 @item Dedicated window for debugging program.
19054 @end enumerate")
19055 (license license:gpl3+))))
19056
19057 (define-public emacs-elpher
19058 (package
19059 (name "emacs-elpher")
19060 (version "1.4.6")
19061 (source
19062 (origin
19063 (method git-fetch)
19064 (uri (git-reference
19065 (url "https://github.com/tgvaughan/elpher")
19066 (commit (string-append "v" version))))
19067 (file-name (git-file-name name version))
19068 (sha256
19069 (base32
19070 "07xansmhn4l0b9ghzf56vyx8cqg0q01aq3pz5ikx2i19v5f0rc66"))))
19071 (build-system emacs-build-system)
19072 (native-inputs
19073 `(("texinfo" ,texinfo)))
19074 (arguments
19075 `(#:phases
19076 (modify-phases %standard-phases
19077 (add-before 'install 'build-doc
19078 (lambda _
19079 (invoke "makeinfo" "elpher.texi"))))))
19080 (home-page "https://github.com/tgvaughan/elpher")
19081 (synopsis "Gopher client for Emacs")
19082 (description "Elpher is a full-featured gopher client for Emacs. Its
19083 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
19084 compatibility with evil-mode, clickable web and gopher links in plain text,
19085 caching of visited sites, pleasant and configurable visualization of Gopher
19086 directories, direct visualisation of image files, jumping directly to links by
19087 name (with autocompletion), a simple bookmark management system and
19088 connections using TLS encryption.")
19089 (license license:gpl3+)))
19090
19091 (define-public emacs-zerodark-theme
19092 (package
19093 (name "emacs-zerodark-theme")
19094 (version "4.6")
19095 (source
19096 (origin
19097 (method git-fetch)
19098 (uri (git-reference
19099 (url "https://github.com/NicolasPetton/zerodark-theme")
19100 (commit version)))
19101 (file-name (git-file-name name version))
19102 (sha256
19103 (base32
19104 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
19105 (build-system emacs-build-system)
19106 (propagated-inputs
19107 `(("emacs-flycheck" ,emacs-flycheck)
19108 ("emacs-all-the-icons" ,emacs-all-the-icons)))
19109 (home-page
19110 "https://gitlab.petton.fr/nico/zerodark-theme")
19111 (synopsis
19112 "Dark, medium contrast theme for Emacs")
19113 (description
19114 "Zerodark is a dark theme inspired from One Dark and Niflheim.
19115 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
19116 (license license:gpl3+)))
19117
19118 (define-public emacs-gnus-alias
19119 (package
19120 (name "emacs-gnus-alias")
19121 (version "20150316")
19122 (source (origin
19123 (method git-fetch)
19124 (uri (git-reference
19125 (url "https://github.com/hexmode/gnus-alias.git")
19126 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
19127 (file-name (git-file-name name version))
19128 (sha256
19129 (base32
19130 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
19131 (build-system emacs-build-system)
19132 (home-page "https://melpa.org/#/gnus-alias")
19133 (synopsis "Alternative to @code{gnus-posting-styles}")
19134 (description "This Emacs add-on provides a simple mechanism to switch
19135 Identities when using a @code{message-mode} or a @code{message-mode} derived
19136 mode. Identities can include @code{From} and @code{Organisation} headers,
19137 extra headers, body and signature. Other features include:
19138
19139 @itemize
19140 @item Switch Identities in a message buffer.
19141 @item Access original message to help determine Identity of the followup/reply
19142 message.
19143 @item Act on a forwarded message as if it were a message being replied to.
19144 @item Start a new message with a given Identity pre-selected.
19145 @end itemize")
19146 (license license:gpl2+)))
19147
19148 (define-public emacs-ox-epub
19149 (package
19150 (name "emacs-ox-epub")
19151 (version "0.3")
19152 (source (origin
19153 (method git-fetch)
19154 (uri (git-reference
19155 (url "https://github.com/ofosos/ox-epub.git")
19156 (commit (string-append "v" version))))
19157 (file-name (git-file-name name version))
19158 (sha256
19159 (base32
19160 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
19161 (build-system emacs-build-system)
19162 (home-page "https://github.com/ofosos/ox-epub")
19163 (synopsis "Export org mode projects to EPUB")
19164 (description "@code{ox-epub} extends the (X)HTML exporter to generate
19165 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
19166 which should give broad compatibility. It should also be relatiely easy to
19167 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
19168 zip utility (default is @code{zip}).")
19169 (license license:gpl3+)))
19170
19171 (define-public emacs-ox-hugo
19172 (package
19173 (name "emacs-ox-hugo")
19174 (version "0.8")
19175 (source
19176 (origin
19177 (method git-fetch)
19178 (uri (git-reference
19179 (url "https://github.com/kaushalmodi/ox-hugo.git")
19180 (commit (string-append "v" version))))
19181 (file-name (git-file-name name version))
19182 (sha256
19183 (base32
19184 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
19185 (build-system emacs-build-system)
19186 (home-page "https://ox-hugo.scripter.co")
19187 (synopsis "Hugo markdown back-end for Org export engine")
19188 (description
19189 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
19190 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
19191 format.")
19192 (license license:gpl3+)))
19193
19194 (define-public emacs-ox-pandoc
19195 (package
19196 (name "emacs-ox-pandoc")
19197 (version "20180510")
19198 (source (origin
19199 (method git-fetch)
19200 (uri (git-reference
19201 (url "https://github.com/kawabata/ox-pandoc.git")
19202 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
19203 (file-name (git-file-name name version))
19204 (sha256
19205 (base32
19206 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
19207 (build-system emacs-build-system)
19208 (inputs
19209 `(("pandoc" ,ghc-pandoc)))
19210 (propagated-inputs
19211 `(("emacs-dash" ,emacs-dash)
19212 ("emacs-ht" ,emacs-ht)))
19213 (home-page "https://github.com/kawabata/ox-pandoc")
19214 (synopsis "Org exporter for Pandoc")
19215 (description "@code{ox-pandoc} is an exporter for converting Org-mode
19216 files to numerous other formats via Pandoc.")
19217 (license license:gpl3+)))
19218
19219 (define-public emacs-wc-mode
19220 (package
19221 (name "emacs-wc-mode")
19222 (version "1.3")
19223 (source (origin
19224 (method git-fetch)
19225 (uri (git-reference
19226 (url "https://github.com/bnbeckwith/wc-mode.git")
19227 (commit (string-append "v" version))))
19228 (file-name (git-file-name name version))
19229 (sha256
19230 (base32
19231 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
19232 (build-system emacs-build-system)
19233 (home-page "https://github.com/bnbeckwith/wc-mode")
19234 (synopsis "Running word count with goals (minor mode)")
19235 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
19236 for Emacs buffers as well as a modeline addition with live word, line and
19237 character counts. Additionally, a user can set specific goals for adding or
19238 deleting words. These goals were partly inspired by 750words.com where the
19239 goal of the site is to encourage writing by setting a goal of 750 words at a
19240 time.")
19241 (license license:gpl3+)))
19242
19243 (define-public emacs-mastodon
19244 (package
19245 (name "emacs-mastodon")
19246 (version "0.9.0")
19247 (source (origin
19248 (method git-fetch)
19249 (uri (git-reference
19250 (url "https://github.com/jdenen/mastodon.el.git")
19251 (commit version)))
19252 (file-name (git-file-name name version))
19253 (sha256
19254 (base32
19255 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
19256 (build-system emacs-build-system)
19257 (arguments
19258 `(#:phases
19259 (modify-phases %standard-phases
19260 ;; Move the source files to the top level, which is included in
19261 ;; the EMACSLOADPATH.
19262 (add-after 'unpack 'move-source-files
19263 (lambda _
19264 (let ((el-files (find-files "./lisp" ".*\\.el$")))
19265 (for-each (lambda (f)
19266 (rename-file f (basename f)))
19267 el-files))
19268 #t)))))
19269 (home-page "https://github.com/jdenen/mastodon.el")
19270 (synopsis "Emacs client for Mastodon")
19271 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
19272 federated microblogging social network.")
19273 (license license:gpl3+)))
19274
19275 ;; The last release tarball is for version 0.6. We pick a commit close to
19276 ;; version 0.6.10, which doesn't have a release tarball.
19277 (define-public emacs-ebdb
19278 (let ((commit "2a87f5ed2a53e3a4e91e8c88ba5afc49f5e945df")
19279 (revision "0"))
19280 (package
19281 (name "emacs-ebdb")
19282 (version (git-version "0.6.10" revision commit))
19283 (source (origin
19284 (method git-fetch)
19285 (uri (git-reference
19286 (url "https://github.com/girzel/ebdb.git")
19287 (commit commit)))
19288 (file-name (git-file-name name version))
19289 (sha256
19290 (base32
19291 "0fidy7z0c86dpqiss97sg5s92fd3fj4bdl8pqqdgg2m00jx4mrjz"))))
19292 (build-system emacs-build-system)
19293 (home-page "https://github.com/girzel/ebdb")
19294 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
19295 (description "EBDB is a contact management/addressbook package for
19296 Emacs. It's a re-write of the Insidious Big Brother Database (BBDB) using
19297 Emacs Lisp's (relatively new) EIEIO object oriented libraries.")
19298 (license license:gpl3+))))
19299
19300 (define-public emacs-refactor
19301 (package
19302 (name "emacs-refactor")
19303 (version "0.4")
19304 (source (origin
19305 (method git-fetch)
19306 (uri (git-reference
19307 (url "https://github.com/Wilfred/emacs-refactor.git")
19308 (commit version)))
19309 (file-name (git-file-name name version))
19310 (sha256
19311 (base32
19312 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
19313 (build-system emacs-build-system)
19314 (propagated-inputs
19315 `(("emacs-dash" ,emacs-dash)
19316 ("emacs-s" ,emacs-s)
19317 ("emacs-popup" ,emacs-popup)
19318 ("emacs-list-utils" ,emacs-list-utils)
19319 ("emacs-iedit" ,emacs-iedit)))
19320 (home-page "https://github.com/Wilfred/emacs-refactor/")
19321 (synopsis "Language-specific refactoring in Emacs")
19322 (description "Emacs Refactor (EMR) is a framework for providing
19323 language-specific refactoring in Emacs. It includes refactoring commands for
19324 a variety of languages, including elisp itself.")
19325 (license license:gpl3+)))
19326
19327 (define-public emacs-flyspell-correct
19328 (package
19329 (name "emacs-flyspell-correct")
19330 (version "0.5")
19331 (source
19332 (origin
19333 (method git-fetch)
19334 (uri (git-reference
19335 (url "https://github.com/d12frosted/flyspell-correct.git")
19336 (commit (string-append "v" version))))
19337 (file-name (git-file-name name version))
19338 (sha256
19339 (base32
19340 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
19341 (build-system emacs-build-system)
19342 (propagated-inputs
19343 `(("emacs-helm" ,emacs-helm)
19344 ("emacs-ivy" ,emacs-ivy)
19345 ("emacs-popup" ,emacs-popup)))
19346 (home-page
19347 "https://github.com/d12frosted/flyspell-correct")
19348 (synopsis
19349 "Correcting words with flyspell via custom interfaces")
19350 (description
19351 "This package provides functionality for correcting words via custom
19352 interfaces. Several interfaces are supported beside the classic ido: popup,
19353 helm and ivy.")
19354 (license license:gpl3+)))
19355
19356 (define-public emacs-org-emms
19357 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
19358 (revision "1"))
19359 (package
19360 (name "emacs-org-emms")
19361 (version
19362 (git-version "0.1" revision commit))
19363 (source
19364 (origin
19365 (method git-fetch)
19366 (uri (git-reference
19367 (url "https://gitlab.com/jagrg/org-emms.git")
19368 (commit commit)))
19369 (file-name (git-file-name name commit))
19370 (sha256
19371 (base32
19372 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
19373 (build-system emacs-build-system)
19374 (propagated-inputs
19375 `(("emms" ,emacs-emms)
19376 ("emacs-org" ,emacs-org)))
19377 (home-page "https://gitlab.com/jagrg/org-emms")
19378 (synopsis "Play multimedia files from org-mode")
19379 (description
19380 "This package provides a new org link type for playing back multimedia
19381 files from org-mode using EMMS, The Emacs Multimedia System. If the link
19382 contains a track position, playback will start at the specified position.")
19383 (license license:gpl3+))))
19384
19385 (define-public emacs-org-jira
19386 (package
19387 (name "emacs-org-jira")
19388 (version "4.3.1")
19389 (source
19390 (origin
19391 (method git-fetch)
19392 (uri (git-reference
19393 (url "https://github.com/ahungry/org-jira.git")
19394 (commit version)))
19395 (file-name (git-file-name name version))
19396 (sha256
19397 (base32
19398 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
19399 (build-system emacs-build-system)
19400 (propagated-inputs
19401 `(("emacs-request" ,emacs-request)
19402 ("emacs-s" ,emacs-s)
19403 ("emacs-dash" ,emacs-dash)
19404 ("emacs-org" ,emacs-org)))
19405 (home-page "https://github.com/ahungry/org-jira")
19406 (synopsis "Syncing between Jira and Org-mode")
19407 (description
19408 "This package provides an extension to org-mode for syncing issues with
19409 JIRA issue servers.")
19410 (license license:gpl3+)))
19411
19412 (define-public emacs-systemd-mode
19413 (package
19414 (name "emacs-systemd-mode")
19415 (version "1.6")
19416 (source (origin
19417 (method git-fetch)
19418 (uri (git-reference
19419 (url "https://github.com/holomorph/systemd-mode.git")
19420 (commit (string-append "v" version))))
19421 (file-name (git-file-name name version))
19422 (sha256
19423 (base32
19424 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
19425 (build-system emacs-build-system)
19426 (arguments '(#:include '("\\.el$" "\\.txt$")))
19427 (home-page "https://github.com/holomorph/systemd-mode")
19428 (synopsis
19429 "Major mode for editing systemd units")
19430 (description
19431 "Major mode for editing systemd units in GNU Emacs.")
19432 (license license:gpl3+)))
19433
19434 (define-public emacs-ssh-config-mode
19435 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
19436 (revision "1"))
19437 (package
19438 (name "emacs-ssh-config-mode")
19439 (version (git-version "8.0" revision commit))
19440 (source
19441 (origin
19442 (method git-fetch)
19443 (uri
19444 (git-reference
19445 (url "https://github.com/jhgorrell/ssh-config-mode-el.git")
19446 (commit commit)))
19447 (file-name (git-file-name name commit))
19448 (sha256
19449 (base32
19450 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
19451 (build-system emacs-build-system)
19452 (arguments '(#:include '("\\.el$" "\\.txt$")))
19453 (home-page
19454 "https://github.com/jhgorrell/ssh-config-mode-el")
19455 (synopsis
19456 "Mode for fontification of ~/.ssh/config")
19457 (description
19458 "This package fontifies the ssh config keywords and creates
19459 keybindings for skipping from host section to host section.")
19460 (license license:gpl3+))))
19461
19462 (define-public emacs-ssh-agency
19463 (package
19464 (name "emacs-ssh-agency")
19465 (version "0.4")
19466 (source (origin
19467 (method git-fetch)
19468 (uri (git-reference
19469 (url "https://github.com/magit/ssh-agency.git")
19470 (commit version)))
19471 (file-name (git-file-name name version))
19472 (sha256
19473 (base32
19474 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
19475 (build-system emacs-build-system)
19476 (propagated-inputs
19477 `(("dash" ,emacs-dash)))
19478 (home-page "https://github.com/magit/ssh-agency")
19479 (synopsis "Manage @code{ssh-agent} from Emacs")
19480 (description
19481 "This package provides functions to startup @code{ssh-agent}, set the
19482 needed environment variables in Emacs, and prompt for passphrases from within
19483 Emacs so that pushes and pulls from @code{magit} will not require entering any
19484 passphrase.
19485
19486 It can also be useful on Unix-like platforms to delay having to enter your
19487 passphrase until the first time you push to a remote.")
19488 (license license:gpl3+)))
19489
19490 (define-public emacs-tao-theme
19491 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
19492 (revision "0"))
19493 (package
19494 (name "emacs-tao-theme")
19495 (version (git-version "0" revision commit))
19496 (source
19497 (origin
19498 (method git-fetch)
19499 (uri (git-reference
19500 (url "https://github.com/11111000000/tao-theme-emacs.git")
19501 (commit commit)))
19502 (file-name (git-file-name name version))
19503 (sha256
19504 (base32
19505 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
19506 (build-system emacs-build-system)
19507 (home-page "https://github.com/11111000000/tao-theme-emacs")
19508 (synopsis "Parameterized uncolored color themes for Emacs")
19509 (description
19510 "This package provides two parameterized uncolored color themes for
19511 Emacs: @code{tao-yin} and @code{tao-yang}. The default
19512 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
19513
19514 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
19515 @code{tao-theme-scale-filter-fn}, for edge filter; and
19516 @code{tao-theme-use-height}.")
19517 (license license:gpl3+))))
19518
19519 (define-public emacs-doom-themes
19520 (package
19521 (name "emacs-doom-themes")
19522 (version "2.1.6")
19523 (source (origin
19524 (method git-fetch)
19525 (uri (git-reference
19526 (url "https://github.com/hlissner/emacs-doom-themes.git")
19527 (commit (string-append "v" version))))
19528 (file-name (git-file-name name version))
19529 (sha256
19530 (base32 "042pzcdhxi2z07jcscgjbaki9nrrm0cbgbbrnymd1r4q8ckkn8l9"))))
19531 (build-system emacs-build-system)
19532 (native-inputs
19533 `(("emacs-ert-runner" ,emacs-ert-runner)))
19534 (arguments
19535 `(#:tests? #t
19536 #:test-command '("ert-runner")
19537 #:phases
19538 (modify-phases %standard-phases
19539 (add-after 'unpack 'move-themes
19540 (lambda _
19541 ;; Move the source files to the top level, which is in the
19542 ;; EMACSLOADPATH.
19543 (for-each (lambda (f)
19544 (rename-file f (basename f)))
19545 (find-files "./themes" ".*\\.el$"))
19546 #t)))))
19547 (synopsis "Wide collection of color themes for Emacs")
19548 (description "Emacs-doom-themes contains numerous popular color themes for
19549 Emacs that integrate with major modes like Org-mode.")
19550 (home-page "https://github.com/hlissner/emacs-doom-themes")
19551 (license license:expat)))
19552
19553 (define-public emacs-elixir-mode
19554 (package
19555 (name "emacs-elixir-mode")
19556 (version "2.3.1")
19557 (source
19558 (origin
19559 (method git-fetch)
19560 (uri (git-reference
19561 (url "https://github.com/elixir-editors/emacs-elixir.git")
19562 (commit (string-append "v" version))))
19563 (file-name (git-file-name name version))
19564 (sha256
19565 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
19566 (build-system emacs-build-system)
19567 (propagated-inputs
19568 `(("emacs-pkg-info" ,emacs-pkg-info)))
19569 (home-page
19570 "https://github.com/elixir-editors/emacs-elixir")
19571 (synopsis "Major mode for editing Elixir files")
19572 (description
19573 "Elixir-Mode Provides font-locking, indentation and navigation support
19574 for the Elixir programming language.")
19575 (license license:gpl3+)))
19576
19577 (define-public emacs-dimmer
19578 (package
19579 (name "emacs-dimmer")
19580 (version "0.3.0")
19581 (source
19582 (origin
19583 (method git-fetch)
19584 (uri (git-reference
19585 (url "https://github.com/gonewest818/dimmer.el.git")
19586 (commit version)))
19587 (file-name (git-file-name name version))
19588 (sha256
19589 (base32 "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif"))))
19590 (build-system emacs-build-system)
19591 (home-page "https://github.com/gonewest818/dimmer.el")
19592 (synopsis "Visually highlights the selected buffer in Emacs")
19593 (description "Dimmer provides a minor mode that indicates which buffer is
19594 currently active by dimming the faces in the other buffers. It does this
19595 nondestructively, and computes the dimmed faces dynamically such that your
19596 overall color scheme is shown in a muted form without requiring you to define
19597 what is a \"dim\" version of every face.")
19598 (license license:gpl3+)))
19599
19600 (define-public emacs-minibuffer-line
19601 (package
19602 (name "emacs-minibuffer-line")
19603 (version "0.1")
19604 (source
19605 (origin
19606 (method url-fetch)
19607 (uri (string-append
19608 "https://elpa.gnu.org/packages/minibuffer-line-"
19609 version
19610 ".el"))
19611 (sha256
19612 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
19613 (build-system emacs-build-system)
19614 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
19615 (synopsis "Display status info in the minibuffer window")
19616 (description
19617 "This package lets you display various status information in the
19618 minibuffer window instead of the mode-line. Of course, this is only displayed
19619 when the minibuffer window is not already used for other things (e.g. a
19620 minibuffer or an each area message).
19621
19622 The contents and aspect is controlled by the @code{minibuffer-line-format}
19623 variable and the @code{minibuffer-line} face.")
19624 (license license:gpl3+)))
19625
19626 (define-public emacs-eshell-prompt-extras
19627 (let ((commit "5a328e1b9112c7f31ce2da7cde340f96626546b6")
19628 (revision "1"))
19629 (package
19630 (name "emacs-eshell-prompt-extras")
19631 (version (git-version "0.96" revision commit))
19632 (home-page "https://github.com/zwild/eshell-prompt-extras")
19633 (source
19634 (origin
19635 (method git-fetch)
19636 (uri (git-reference
19637 (url home-page)
19638 (commit commit)))
19639 (file-name (git-file-name name version))
19640 (sha256
19641 (base32
19642 "0fwlvrzjygs12dcp89wy3rb3wa03mrvbzpmpvmz4x6dfpr7csznk"))))
19643 (build-system emacs-build-system)
19644 (synopsis "Display extra information and color for your Eshell prompt")
19645 (description "This library displays various customizable elements for
19646 @code{eshell} prompts: remote user, remote host, python virtual environment
19647 info, git branch, git dirty info and git unpushed number. Multiple themes are
19648 available.")
19649 (license license:gpl3+))))
19650
19651 (define-public emacs-eshell-did-you-mean
19652 (package
19653 (name "emacs-eshell-did-you-mean")
19654 (version "0.1")
19655 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
19656 (source
19657 (origin
19658 (method git-fetch)
19659 (uri (git-reference
19660 (url home-page)
19661 (commit (string-append "v" version))))
19662 (file-name (git-file-name name version))
19663 (sha256
19664 (base32
19665 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
19666 (build-system emacs-build-system)
19667 (synopsis "Display suggestions on 'command not found' in Eshell")
19668 (description "This library adds a list of 'Did you mean...' suggestions
19669 when the command was not found in Eshell. The suggestions are found after the
19670 commands that bear resemblance to the input command.")
19671 (license license:gpl3+)))