Fix some typos.
[jackhill/guix/guix.git] / gnu / packages / emacs.scm
CommitLineData
468bdabb 1;;; GNU Guix --- Functional package management for GNU
4a3e602c 2;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
02267798 3;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
84fe4420 4;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
e9c3a780 5;;; Copyright © 2014, 2015, 2016, 2017, 2018 Alex Kost <alezost@gmail.com>
78395334 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5a545aab 7;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
4f95a118 8;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
11e4c1fd 9;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
f9f67fcb 10;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
995b7069 11;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
c5c08f1b 12;;; Copyright © 2016 David Thompson <davet@gnu.org>
ae609001 13;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
fd2d17cd 14;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
4a78fd46 15;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
46bd4515 16;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
7ad05d85 17;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
d3150731 18;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
2891ea39 19;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
cf006d2e 20;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
563ab27b 21;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
30cf7070 22;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
4d3d3bd2 23;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
4fca8a02 24;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
3c8ba11a 25;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
99517d92 26;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
deddeb44 27;;; Copyright © 2017 Feng Shu <tumashu@163.com>
7a0efa77 28;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
b0912e9f 29;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
de2e402b 30;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
b9dcaced 31;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
370ae985 32;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
491cbd35 33;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
33ca12f3 34;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
62d1105c 35;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
c3581ef9 36;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
4715f92e 37;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
98668259 38;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
5691898f 39;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
661e8a62 40;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
468bdabb
LC
41;;;
42;;; This file is part of GNU Guix.
43;;;
44;;; GNU Guix is free software; you can redistribute it and/or modify it
45;;; under the terms of the GNU General Public License as published by
46;;; the Free Software Foundation; either version 3 of the License, or (at
47;;; your option) any later version.
48;;;
49;;; GNU Guix is distributed in the hope that it will be useful, but
50;;; WITHOUT ANY WARRANTY; without even the implied warranty of
51;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
52;;; GNU General Public License for more details.
53;;;
54;;; You should have received a copy of the GNU General Public License
55;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
56
1ffa7090 57(define-module (gnu packages emacs)
f61e0e79 58 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
59 #:use-module (guix packages)
60 #:use-module (guix download)
f906d30c 61 #:use-module (guix git-download)
e5045f30
FB
62 #:use-module (guix gexp)
63 #:use-module (guix monads)
64 #:use-module (guix store)
468bdabb 65 #:use-module (guix build-system gnu)
78395334 66 #:use-module (guix build-system emacs)
71f57158 67 #:use-module (guix build-system glib-or-gtk)
fe4163f3 68 #:use-module (guix build-system trivial)
59a43334 69 #:use-module (gnu packages)
acf7d4a7 70 #:use-module (gnu packages audio)
4aafce22 71 #:use-module (gnu packages bash)
75408149 72 #:use-module (gnu packages cmake)
cf006d2e 73 #:use-module (gnu packages code)
4d089b5e 74 #:use-module (gnu packages databases)
f906d30c 75 #:use-module (gnu packages guile)
7abe1965 76 #:use-module (gnu packages gtk)
8ba4dc63 77 #:use-module (gnu packages gnome)
1ffa7090 78 #:use-module (gnu packages ncurses)
99517d92 79 #:use-module (gnu packages python)
41184943 80 #:use-module (gnu packages tex)
1ffa7090 81 #:use-module (gnu packages texinfo)
acf7d4a7 82 #:use-module (gnu packages tcl)
a7fd7b68 83 #:use-module (gnu packages tls)
4f028c8f 84 #:use-module (gnu packages pkg-config)
50efa797
LC
85 #:use-module (gnu packages xorg)
86 #:use-module (gnu packages lesstif)
e55354b8 87 #:use-module (gnu packages image)
504a83af 88 #:use-module (gnu packages linux)
9a4c9715 89 #:use-module (gnu packages version-control)
18d26210
MW
90 #:use-module (gnu packages imagemagick)
91 #:use-module (gnu packages w3m)
89925972 92 #:use-module (gnu packages wget)
18d26210 93 #:use-module (gnu packages autotools)
be379ee7 94 #:use-module (gnu packages base)
f61e0e79 95 #:use-module (gnu packages compression)
50efa797 96 #:use-module (gnu packages xml)
4a3e602c 97 #:use-module (gnu packages glib)
388fd01b 98 #:use-module (gnu packages acl)
b6efe0e8 99 #:use-module (gnu packages mail)
13fe4891 100 #:use-module (gnu packages package-management)
77c9286d 101 #:use-module (gnu packages perl)
ec9825d6 102 #:use-module (gnu packages pdf)
58a7dc13 103 #:use-module (gnu packages scheme)
41184943 104 #:use-module (gnu packages statistics)
77c9286d
LC
105 #:use-module (gnu packages xiph)
106 #:use-module (gnu packages mp3)
154c71e0 107 #:use-module (gnu packages gettext)
a80b60f4
AI
108 #:use-module (gnu packages fribidi)
109 #:use-module (gnu packages gd)
110 #:use-module (gnu packages fontutils)
03efe78c 111 #:use-module (gnu packages password-utils)
a14a80da 112 #:use-module (gnu packages pulseaudio)
0bcb9258 113 #:use-module (gnu packages xdisorg)
15dcd292 114 #:use-module (gnu packages shells)
b1f9fc0d 115 #:use-module (gnu packages gnupg)
4a3e602c 116 #:use-module (guix utils)
87449013
AI
117 #:use-module (srfi srfi-1)
118 #:use-module (ice-9 match))
468bdabb
LC
119
120(define-public emacs
121 (package
122 (name "emacs")
2206c7ad 123 (version "26.1")
468bdabb
LC
124 (source (origin
125 (method url-fetch)
126 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 127 version ".tar.xz"))
468bdabb
LC
128 (sha256
129 (base32
2206c7ad 130 "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
fc1adab1 131 (patches (search-patches "emacs-exec-path.patch"
4509ec72 132 "emacs-fix-scheme-indent-function.patch"
0cdb6ab4 133 "emacs-source-date-epoch.patch"))
486f36eb
AK
134 (modules '((guix build utils)))
135 (snippet
136 ;; Delete the bundled byte-compiled elisp files and
137 ;; generated autoloads.
138 '(with-directory-excursion "lisp"
139 (for-each delete-file
140 (append (find-files "." "\\.elc$")
141 (find-files "." "loaddefs\\.el$")
142 ;; This is the only "autoloads" file that
143 ;; does not have "*loaddefs.el" name.
dc701091
LC
144 '("eshell/esh-groups.el")))
145
146 ;; Make sure Tramp looks for binaries in the right places on
147 ;; remote GuixSD machines, where 'getconf PATH' returns
148 ;; something bogus.
149 (substitute* "net/tramp-sh.el"
150 ;; Patch the line after "(defcustom tramp-remote-path".
151 (("\\(tramp-default-remote-path")
152 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
153 "~/.guix-profile/bin" "~/.guix-profile/sbin"
154 "/run/current-system/profile/bin"
d1c11418
OP
155 "/run/current-system/profile/sbin")))
156
157 ;; Make sure Man looks for C header files in the right
158 ;; places.
159 (substitute* "man.el"
160 (("\"/usr/local/include\"" line)
161 (string-join
162 (list line
163 "\"~/.guix-profile/include\""
164 "\"/var/guix/profiles/system/profile/include\"")
6cbee49d
MW
165 " ")))
166 #t))))
71f57158 167 (build-system glib-or-gtk-build-system)
468bdabb 168 (arguments
2206c7ad
MO
169 `(#:tests? #f ; no check target
170 #:phases
13fe4891
FB
171 (modify-phases %standard-phases
172 (add-before 'configure 'fix-/bin/pwd
173 (lambda _
174 ;; Use `pwd', not `/bin/pwd'.
175 (substitute* (find-files "." "^Makefile\\.in$")
176 (("/bin/pwd")
e2d90ee4
MW
177 "pwd"))
178 #t))
13fe4891 179 (add-after 'install 'install-site-start
59d04f63
AK
180 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
181 ;; provided by Guix and installed in
13fe4891
FB
182 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
183 ;; automatically found.
184 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
185 (let* ((out (assoc-ref outputs "out"))
186 (lisp-dir (string-append out "/share/emacs/site-lisp")))
187 (copy-file (assoc-ref inputs "guix-emacs.el")
188 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
189 (with-output-to-file (string-append lisp-dir "/site-start.el")
190 (lambda ()
9bd94544
AK
191 (display
192 (string-append "(when (require 'guix-emacs nil t)\n"
193 " (guix-emacs-autoload-packages))\n"))))
13fe4891 194 #t))))))
468bdabb 195 (inputs
c4c4cc05 196 `(("gnutls" ,gnutls)
468bdabb
LC
197 ("ncurses" ,ncurses)
198
199 ;; TODO: Add the optional dependencies.
fa275717 200 ("libx11" ,libx11)
0a9e9a63 201 ("gtk+" ,gtk+)
fa275717 202 ("libxft" ,libxft)
50efa797 203 ("libtiff" ,libtiff)
504a83af 204 ("giflib" ,giflib)
71e304ed 205 ("libjpeg" ,libjpeg)
eb737a27 206 ("imagemagick" ,imagemagick)
388fd01b 207 ("acl" ,acl)
50efa797
LC
208
209 ;; When looking for libpng `configure' links with `-lpng -lz', so we
210 ;; must also provide zlib as an input.
211 ("libpng" ,libpng)
f61e0e79 212 ("zlib" ,zlib)
50efa797 213
8ba4dc63 214 ("librsvg" ,librsvg)
fa275717 215 ("libxpm" ,libxpm)
50efa797 216 ("libxml2" ,libxml2)
504a83af
MW
217 ("libice" ,libice)
218 ("libsm" ,libsm)
219 ("alsa-lib" ,alsa-lib)
13fe4891 220 ("dbus" ,dbus)
01c5c21a
AI
221
222 ;; multilingualization support
223 ("libotf" ,libotf)
224 ("m17n-lib" ,m17n-lib)))
c4c4cc05 225 (native-inputs
59d04f63
AK
226 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
227 ("pkg-config" ,pkg-config)
c4c4cc05 228 ("texinfo" ,texinfo)))
64c98347
LC
229
230 (native-search-paths
231 (list (search-path-specification
232 (variable "INFOPATH")
233 (files '("share/info")))))
234
6fd52309 235 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 236 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 237 (description
79c311b8
LC
238 "GNU Emacs is an extensible and highly customizable text editor. It is
239based on an Emacs Lisp interpreter with extensions for text editing. Emacs
240has been extended in essentially all areas of computing, giving rise to a
241vast array of packages supporting, e.g., email, IRC and XMPP messaging,
242spreadsheets, remote server editing, and much more. Emacs includes extensive
243documentation on all aspects of the system, from basic editing to writing
244large Lisp programs. It has full Unicode support for nearly all human
245languages.")
f61e0e79 246 (license license:gpl3+)))
4f028c8f 247
b2eaf7ba 248(define-public emacs-minimal
4fd540b7
LC
249 ;; This is the version that you should use as an input to packages that just
250 ;; need to byte-compile .el files.
b2eaf7ba
AK
251 (package (inherit emacs)
252 (name "emacs-minimal")
253 (synopsis "The extensible text editor (used only for byte-compilation)")
254 (build-system gnu-build-system)
255 (arguments
bd6a699d
RW
256 `(#:configure-flags (list "--with-gnutls=no")
257 ,@(substitute-keyword-arguments (package-arguments emacs)
258 ((#:phases phases)
259 `(modify-phases ,phases
260 (delete 'install-site-start))))))
b2eaf7ba
AK
261 (inputs
262 `(("ncurses" ,ncurses)))
263 (native-inputs
264 `(("pkg-config" ,pkg-config)))))
265
266(define-public emacs-no-x
4fd540b7 267 (package (inherit emacs)
4fd540b7
LC
268 (name "emacs-no-x")
269 (synopsis "The extensible, customizable, self-documenting text
270editor (console only)")
271 (build-system gnu-build-system)
272 (inputs (fold alist-delete
273 (package-inputs emacs)
274 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
4adde2a9
MW
275 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
276 "libsm"
4fd540b7 277
4adde2a9
MW
278 ;; These depend on libx11, so remove them as well.
279 "libotf" "m17n-lib" "dbus")))))
4fd540b7 280
4a3e602c
TUBK
281(define-public emacs-no-x-toolkit
282 (package (inherit emacs)
283 (name "emacs-no-x-toolkit")
284 (synopsis "The extensible, customizable, self-documenting text
285editor (without an X toolkit)" )
71f57158 286 (build-system gnu-build-system)
388fd01b
MW
287 (inputs (append `(("inotify-tools" ,inotify-tools))
288 (alist-delete "gtk+" (package-inputs emacs))))
289 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
290 (package-arguments emacs)))))
4a3e602c 291
f906d30c
CAW
292(define-public guile-emacs
293 (package (inherit emacs)
294 (name "guile-emacs")
295 (version "20150512.41120e0")
296 (source (origin
297 (method git-fetch)
298 (uri (git-reference
299 (url "git://git.hcoop.net/git/bpt/emacs.git")
300 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
995b7069 301 (file-name (string-append name "-" version "-checkout"))
68cb962a 302 (patches (search-patches "guile-emacs-fix-configure.patch"))
f906d30c
CAW
303 (sha256
304 (base32
305 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
306 (native-inputs
307 `(("autoconf" ,autoconf)
308 ("automake" ,automake)
309 ("guile" ,guile-for-guile-emacs)
310 ,@(package-native-inputs emacs)))
311 (arguments
312 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
313 #:parallel-build? #f
314 ;; Tests aren't passing for now.
315 #:tests? #f
316 ,@(package-arguments emacs))
317 ((#:phases phases)
318 `(modify-phases ,phases
319 (add-after 'unpack 'autogen
f6fefe12
TGR
320 (lambda _
321 (invoke "sh" "autogen.sh")))
68cb962a
JN
322 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
323 (add-before 'build 'make-deps-dir
324 (lambda _
f6fefe12 325 (invoke "mkdir" "-p" "src/deps")))))))))
f906d30c 326
4f028c8f
LC
327\f
328;;;
329;;; Emacs hacking.
330;;;
331
332(define-public geiser
333 (package
334 (name "geiser")
e9c3a780 335 (version "0.10")
4f028c8f
LC
336 (source (origin
337 (method url-fetch)
cf8f58b2
LC
338 (uri (string-append "mirror://savannah/geiser/" version
339 "/geiser-" version ".tar.gz"))
4f028c8f 340 (sha256
1f8ad12a 341 (base32
e9c3a780 342 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
4f028c8f 343 (build-system gnu-build-system)
d51cafb0 344 (arguments
dc1d3cde
KK
345 '(#:phases
346 (modify-phases %standard-phases
347 (add-after 'install 'post-install
348 (lambda* (#:key outputs #:allow-other-keys)
349 (symlink "geiser-install.el"
350 (string-append (assoc-ref outputs "out")
351 "/share/emacs/site-lisp/"
352 "geiser-autoloads.el"))
353 #t)))))
bc96a8b5 354 (inputs `(("guile" ,guile-2.2)))
b8fc3622 355 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 356 (home-page "https://nongnu.org/geiser/")
4f028c8f
LC
357 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
358 (description
9586011d
LC
359 "Geiser is a collection of Emacs major and minor modes that conspire with
360one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
361continuously running Scheme interpreter takes the center of the stage in
362Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
363implementation, Emacs and, ultimately, the schemer, giving them access to live
364metadata.")
f61e0e79 365 (license license:bsd-3)))
9a4c9715 366
fe4163f3
MW
367(define-public paredit
368 (package
967cfd18 369 (name "emacs-paredit")
c181b870 370 (version "24")
fe4163f3 371 (source (origin
c181b870
AK
372 (method url-fetch)
373 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
374 version ".el"))
375 (sha256
376 (base32
377 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 378 (build-system emacs-build-system)
fe4163f3
MW
379 (home-page "http://mumble.net/~campbell/emacs/paredit/")
380 (synopsis "Emacs minor mode for editing parentheses")
381 (description
382 "ParEdit (paredit.el) is a minor mode for performing structured editing
383of S-expression data. The typical example of this would be Lisp or Scheme
384source code.
385
386ParEdit helps **keep parentheses balanced** and adds many keys for moving
387S-expressions and moving around in S-expressions. Its behavior can be jarring
388for those who may want transient periods of unbalanced parentheses, such as
389when typing parentheses directly or commenting out code line by line.")
f61e0e79 390 (license license:gpl3+)))
fe4163f3 391
2f910ef6
LC
392(define-public git-modes
393 (package
6d21272b 394 (name "emacs-git-modes")
a9088fc8 395 (version "1.2.8")
2f910ef6
LC
396 (source (origin
397 (method url-fetch)
398 (uri (string-append
399 "https://github.com/magit/git-modes/archive/"
400 version ".tar.gz"))
8fd3c1ff 401 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
402 (sha256
403 (base32
a9088fc8 404 "0h49f68yn0q4lg054adqii4qja1z2pzybm7nf4kvpq7fzjrzgv1q"))))
3d01b293 405 (build-system emacs-build-system)
2f910ef6
LC
406 (home-page "https://github.com/magit/git-modes")
407 (synopsis "Emacs major modes for Git configuration files")
408 (description
409 "This package provides Emacs major modes for editing various Git
410configuration files, such as .gitattributes, .gitignore, and .git/config.")
411 (license license:gpl3+)))
412
6d21272b
AK
413(define-public git-modes/old-name
414 (deprecated-package "git-modes" git-modes))
415
2b0e4300
AK
416(define-public emacs-with-editor
417 (package
418 (name "emacs-with-editor")
6917161d 419 (version "2.7.3")
2b0e4300
AK
420 (source (origin
421 (method url-fetch)
422 (uri (string-append
423 "https://github.com/magit/with-editor/archive/v"
424 version ".tar.gz"))
425 (file-name (string-append name "-" version ".tar.gz"))
426 (sha256
427 (base32
6917161d 428 "1ln2s0kckzkv50qmr6x1kb2j30cfjii0vs6lpghg7ff4lav8jqgh"))))
2b0e4300
AK
429 (build-system emacs-build-system)
430 (propagated-inputs
431 `(("emacs-dash" ,emacs-dash)))
432 (home-page "https://github.com/magit/with-editor")
433 (synopsis "Emacs library for using Emacsclient as EDITOR")
434 (description
435 "This package provides an Emacs library to use the Emacsclient as
436@code{$EDITOR} of child processes, making sure they know how to call home.
437For remote processes a substitute is provided, which communicates with Emacs
438on stdout instead of using a socket as the Emacsclient does.")
439 (license license:gpl3+)))
440
9a4c9715
MW
441(define-public magit
442 (package
443 (name "magit")
67102068 444 (version "2.13.0")
9a4c9715
MW
445 (source (origin
446 (method url-fetch)
fac8b30b
MW
447 (uri (string-append
448 "https://github.com/magit/magit/releases/download/"
449 version "/" name "-" version ".tar.gz"))
9a4c9715 450 (sha256
7e4871ba 451 (base32
67102068 452 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
9a4c9715 453 (build-system gnu-build-system)
2c047b4a 454 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 455 ("emacs" ,emacs-minimal)))
46bd4515
AG
456 (inputs
457 `(("git" ,git)
458 ("perl" ,perl)))
3db5ed11
AK
459 (propagated-inputs
460 `(("dash" ,emacs-dash)
f61719d1
AK
461 ("ghub" ,emacs-ghub)
462 ("magit-popup" ,emacs-magit-popup)
3db5ed11 463 ("with-editor" ,emacs-with-editor)))
9a4c9715 464 (arguments
84fe4420 465 `(#:test-target "test"
55f29c39 466 #:tests? #f ; tests are not included in the release
7e4871ba 467
55f29c39
AK
468 #:make-flags
469 (list (string-append "PREFIX=" %output)
470 ;; Don't put .el files in a sub-directory.
471 (string-append "lispdir=" %output "/share/emacs/site-lisp")
472 (string-append "DASH_DIR="
473 (assoc-ref %build-inputs "dash")
474 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11 475 ,(package-version emacs-dash))
f61719d1
AK
476 (string-append "GHUB_DIR="
477 (assoc-ref %build-inputs "ghub")
478 "/share/emacs/site-lisp/guix.d/ghub-"
479 ,(package-version emacs-ghub))
480 (string-append "MAGIT_POPUP_DIR="
481 (assoc-ref %build-inputs "magit-popup")
482 "/share/emacs/site-lisp/guix.d/magit-popup-"
483 ,(package-version emacs-magit-popup))
3db5ed11
AK
484 (string-append "WITH_EDITOR_DIR="
485 (assoc-ref %build-inputs "with-editor")
486 "/share/emacs/site-lisp/guix.d/with-editor-"
487 ,(package-version emacs-with-editor)))
d41a8a07 488
9a4c9715 489 #:phases
c466bfd1 490 (modify-phases %standard-phases
55f29c39 491 (delete 'configure)
c466bfd1
LC
492 (add-before
493 'build 'patch-exec-paths
494 (lambda* (#:key inputs #:allow-other-keys)
84fe4420 495 (let ((perl (assoc-ref inputs "perl")))
46bd4515
AG
496 (substitute* "lisp/magit-sequence.el"
497 (("perl") (string-append perl "/bin/perl")))
55f29c39 498 #t))))))
f61719d1 499 (home-page "https://magit.vc/")
9a4c9715
MW
500 (synopsis "Emacs interface for the Git version control system")
501 (description
502 "With Magit, you can inspect and modify your Git repositories with Emacs.
503You can review and commit the changes you have made to the tracked files, for
504example, and you can browse the history of past changes. There is support for
505cherry picking, reverting, merging, rebasing, and other common Git
506operations.")
f61e0e79 507 (license license:gpl3+)))
18d26210 508
97cc51f8
LC
509(define-public magit-svn
510 (package
511 (name "magit-svn")
5ccd8f40 512 (version "2.2.0")
97cc51f8 513 (source (origin
be379ee7
AK
514 (method url-fetch)
515 (uri (string-append
516 "https://github.com/magit/magit-svn/archive/"
517 version ".tar.gz"))
518 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
519 (sha256
520 (base32
5ccd8f40 521 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
97cc51f8 522 (build-system trivial-build-system)
b8fc3622 523 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
524 ("tar" ,tar)
525 ("gzip" ,gzip)))
526 (propagated-inputs `(("dash" ,emacs-dash)
5ccd8f40 527 ("with-editor" ,emacs-with-editor)
be379ee7 528 ("magit" ,magit)))
97cc51f8
LC
529 (arguments
530 `(#:modules ((guix build utils)
531 (guix build emacs-utils))
532
533 #:builder
534 (begin
535 (use-modules (guix build utils)
536 (guix build emacs-utils))
537
be379ee7
AK
538 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
539 "/bin/tar"))
540 (PATH (string-append (assoc-ref %build-inputs "gzip")
541 "/bin"))
542 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
543 "/bin/emacs"))
544 (magit (string-append (assoc-ref %build-inputs "magit")
545 "/share/emacs/site-lisp"))
be379ee7
AK
546 (dash (string-append (assoc-ref %build-inputs "dash")
547 "/share/emacs/site-lisp/guix.d/dash-"
548 ,(package-version emacs-dash)))
5ccd8f40
LC
549 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
550 "/share/emacs/site-lisp/guix.d/with-editor-"
551 ,(package-version emacs-with-editor)))
97cc51f8
LC
552 (source (assoc-ref %build-inputs "source"))
553 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7 554 (setenv "PATH" PATH)
e3cfef22 555 (invoke tar "xvf" source)
96c46210
LC
556
557 (install-file (string-append ,name "-" ,version "/magit-svn.el")
558 lisp-dir)
97cc51f8
LC
559
560 (with-directory-excursion lisp-dir
561 (parameterize ((%emacs emacs))
562 (emacs-generate-autoloads ,name lisp-dir)
563 (setenv "EMACSLOADPATH"
5ccd8f40 564 (string-append ":" magit ":" dash ":" with-editor))
e3cfef22 565 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
e3cfef22 566 #t))))
97cc51f8
LC
567 (home-page "https://github.com/magit/magit-svn")
568 (synopsis "Git-SVN extension to Magit")
569 (description
570 "This package is an extension to Magit, the Git Emacs mode, providing
571support for Git-SVN.")
572 (license license:gpl3+)))
573
c1562e3d
AK
574(define-public emacs-magit-popup
575 (package
576 (name "emacs-magit-popup")
1f22a544 577 (version "2.12.3")
c1562e3d
AK
578 (source (origin
579 (method url-fetch)
580 (uri (string-append
09f7c41d
AK
581 "https://github.com/magit/magit-popup/archive/v"
582 version ".tar.gz"))
583 (file-name (string-append name "-" version ".tar.gz"))
c1562e3d
AK
584 (sha256
585 (base32
1f22a544 586 "1kz6vj67awkwf9y2wj6m3l2him3znm08z6bkdvnmfr6rwd96dr39"))))
c1562e3d 587 (build-system emacs-build-system)
09f7c41d
AK
588 (arguments
589 `(#:phases
590 (modify-phases %standard-phases
591 (add-before 'install 'make-info
592 (lambda _
d78f1fdc 593 (invoke "make" "info"))))))
09f7c41d
AK
594 (native-inputs
595 `(("texinfo" ,texinfo)))
c1562e3d
AK
596 (propagated-inputs
597 `(("emacs-dash" ,emacs-dash)))
09f7c41d 598 (home-page "https://github.com/magit/magit-popup")
c1562e3d
AK
599 (synopsis "Define prefix-infix-suffix command combos")
600 (description
601 "This library implements a generic interface for toggling switches and
602setting options and then invoking an Emacs command which does something with
603these arguments. The prototypical use is for the command to call an external
604process, passing on the arguments as command line arguments.")
605 (license license:gpl3+)))
606
0a287457
AK
607(define-public emacs-ghub
608 (package
609 (name "emacs-ghub")
5a368b2a 610 (version "2.0.1")
0a287457
AK
611 (source (origin
612 (method url-fetch)
613 (uri (string-append
614 "https://github.com/magit/ghub/archive/v"
615 version ".tar.gz"))
616 (file-name (string-append name "-" version ".tar.gz"))
617 (sha256
618 (base32
5a368b2a 619 "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0"))))
0a287457
AK
620 (build-system emacs-build-system)
621 (arguments
622 `(#:phases
623 (modify-phases %standard-phases
624 (add-before 'install 'make-info
625 (lambda _
67cf588f 626 (invoke "make" "info"))))))
0a287457
AK
627 (native-inputs
628 `(("texinfo" ,texinfo)))
629 (home-page "https://github.com/magit/ghub")
630 (synopsis "Emacs client library for Github API and Gitlab API")
631 (description
632 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
633which are the libraries that provide basic support for using the Github and
634Gitlab APIs from Emacs packages. It abstracts access to API resources using
635only a handful of functions that are not resource-specific.")
636 (license license:gpl3+)))
637
00f4bd50
FB
638(define-public haskell-mode
639 (package
640 (name "haskell-mode")
08fc0d68 641 (version "16.1")
00f4bd50
FB
642 (source (origin
643 (method url-fetch)
644 (file-name (string-append name "-" version ".tar.gz"))
645 (uri (string-append
646 "https://github.com/haskell/haskell-mode/archive/v"
647 version ".tar.gz"))
648 (sha256
2bd6ed9e
AV
649 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
650 (patches
651 (search-patches ; backport test failure fixes
652 "haskell-mode-unused-variables.patch"
653 "haskell-mode-make-check.patch"))))
08fc0d68
FB
654 (inputs
655 `(("emacs-el-search" ,emacs-el-search) ; for tests
656 ("emacs-stream" ,emacs-stream))) ; for tests
657 (propagated-inputs
658 `(("emacs-dash" ,emacs-dash)))
00f4bd50 659 (native-inputs
b8fc3622 660 `(("emacs" ,emacs-minimal)
6aaf3899 661 ("texinfo" ,texinfo)))
00f4bd50
FB
662 (build-system gnu-build-system)
663 (arguments
664 `(#:make-flags (list (string-append "EMACS="
665 (assoc-ref %build-inputs "emacs")
666 "/bin/emacs"))
08fc0d68
FB
667 #:modules ((ice-9 match)
668 (srfi srfi-26)
669 ,@%gnu-build-system-modules)
00f4bd50
FB
670 #:phases
671 (modify-phases %standard-phases
672 (delete 'configure)
673 (add-before
674 'build 'pre-build
675 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68 676 (define (el-dir store-dir)
69611d3e 677 (match (find-files store-dir "\\.el$")
08fc0d68
FB
678 ((f1 f2 ...) (dirname f1))
679 (_ "")))
680
00f4bd50 681 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
682 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
683
00f4bd50 684 (setenv "SHELL" "sh")
08fc0d68
FB
685 (setenv "EMACSLOADPATH"
686 (string-concatenate
687 (map (match-lambda
688 (((? emacs-prefix? name) . dir)
689 (string-append (el-dir dir) ":"))
690 (_ ""))
691 inputs)))
00f4bd50 692 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
2bd6ed9e
AV
693 ;; embed filename to fix test failure
694 (let ((file "tests/haskell-cabal-tests.el"))
695 (substitute* file
696 (("\\(buffer-file-name\\)")
697 (format #f "(or (buffer-file-name) ~s)" file))))
00f4bd50
FB
698 #t)))
699 (replace
700 'install
701 (lambda* (#:key outputs #:allow-other-keys)
702 (let* ((out (assoc-ref outputs "out"))
703 (el-dir (string-append out "/share/emacs/site-lisp"))
704 (doc (string-append
705 out "/share/doc/haskell-mode-" ,version))
706 (info (string-append out "/share/info")))
707 (define (copy-to-dir dir files)
96c46210
LC
708 (for-each (lambda (f)
709 (install-file f dir))
710 files))
00f4bd50
FB
711
712 (with-directory-excursion "doc"
ff6275fd 713 (invoke "makeinfo" "haskell-mode.texi")
96c46210 714 (install-file "haskell-mode.info" info))
00f4bd50
FB
715 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
716 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 717 ;; These are part of other packages.
00f4bd50 718 (with-directory-excursion el-dir
08fc0d68 719 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
720 #t))))))
721 (home-page "https://github.com/haskell/haskell-mode")
722 (synopsis "Haskell mode for Emacs")
723 (description
724 "This is an Emacs mode for editing, debugging and developing Haskell
725programs.")
726 (license license:gpl3+)))
727
6e3fdbbe
LC
728(define-public flycheck
729 (package
730 (name "emacs-flycheck")
6ae0fd21 731 (version "31")
6e3fdbbe
LC
732 (source (origin
733 (method url-fetch)
0b928076
AK
734 (uri (string-append
735 "https://github.com/flycheck/flycheck/releases/download/"
736 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
737 (sha256
738 (base32
223779c4
LC
739 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
740 (modules '((guix build utils)))
741 (snippet `(begin
742 ;; Change 'flycheck-version' so that it does not
743 ;; attempt to get its version from pkg-info.el.
744 (substitute* "flycheck.el"
745 (("\\(pkg-info-version-info 'flycheck\\)")
746 (string-append "\"" ,version "\"")))
747 #t))))
6e3fdbbe
LC
748 (build-system emacs-build-system)
749 (propagated-inputs
d0a52052 750 `(("emacs-dash" ,emacs-dash)))
6e3fdbbe
LC
751 (home-page "https://www.flycheck.org")
752 (synopsis "On-the-fly syntax checking")
753 (description
754 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
755replacement for the older Flymake extension which is part of GNU Emacs, with
756many improvements and additional features.
757
758Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
759checking for over 30 programming and markup languages with more than 70
760different tools. It highlights errors and warnings inline in the buffer, and
761provides an optional IDE-like error list.")
762 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
763
18d26210
MW
764\f
765;;;
766;;; Web browsing.
767;;;
768
769(define-public emacs-w3m
5ede50b8
LC
770 ;; Emacs-w3m follows a "rolling release" model from its CVS repo. We could
771 ;; use CVS, sure, but instead we choose to use this Git mirror described on
772 ;; the home page as an "unofficial" mirror.
773 (let ((commit "0dd5691f46d314a84da63f3a7277d721815811a2"))
774 (package
775 (name "emacs-w3m")
776 (version (git-version "1.5" "0" commit))
777 (source (origin
778 (method git-fetch)
779 (uri (git-reference
780 (url "https://github.com/ecbrown/emacs-w3m")
781 (commit commit)))
782 (sha256
783 (base32
784 "02xalyxbrkgl4n8nj7xxkmsbm6lshhwdc8bzs2l4wz3hkpgkj7x4"))))
785 (build-system gnu-build-system)
786 (native-inputs `(("autoconf" ,autoconf)
787 ("texinfo" ,texinfo)
788 ("emacs" ,emacs-minimal)))
789 (inputs `(("w3m" ,w3m)
790 ("imagemagick" ,imagemagick)))
791 (arguments
792 `(#:modules ((guix build gnu-build-system)
793 (guix build utils)
794 (guix build emacs-utils))
795 #:imported-modules (,@%gnu-build-system-modules
796 (guix build emacs-utils))
797 #:configure-flags
798 (let ((out (assoc-ref %outputs "out")))
799 (list (string-append "--with-lispdir="
800 out "/share/emacs/site-lisp")
801 (string-append "--with-icondir="
802 out "/share/images/emacs-w3m")
803 ;; Leave .el files uncompressed, otherwise GC can't
804 ;; identify run-time dependencies. See
805 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
806 "--without-compress-install"))
807 #:tests? #f ; no check target
808 #:phases
809 (modify-phases %standard-phases
810 (add-after 'unpack 'autoconf
811 (lambda _
93adf925 812 (invoke "autoconf")))
5ede50b8
LC
813 (add-before 'configure 'support-emacs!
814 (lambda _
815 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
816 ;; unsupported.
817 (substitute* "configure"
818 (("EMACS_FLAVOR=unsupported")
819 "EMACS_FLAVOR=emacs"))
820 #t))
821 (add-before 'build 'patch-exec-paths
822 (lambda* (#:key inputs outputs #:allow-other-keys)
823 (let ((out (assoc-ref outputs "out"))
824 (w3m (assoc-ref inputs "w3m"))
825 (imagemagick (assoc-ref inputs "imagemagick"))
826 (coreutils (assoc-ref inputs "coreutils")))
827 (make-file-writable "w3m.el")
828 (emacs-substitute-variables "w3m.el"
829 ("w3m-command" (string-append w3m "/bin/w3m"))
830 ("w3m-touch-command"
831 (string-append coreutils "/bin/touch"))
832 ("w3m-icon-directory"
833 (string-append out "/share/images/emacs-w3m")))
834 (make-file-writable "w3m-image.el")
835 (emacs-substitute-variables "w3m-image.el"
836 ("w3m-imagick-convert-program"
837 (string-append imagemagick "/bin/convert"))
838 ("w3m-imagick-identify-program"
839 (string-append imagemagick "/bin/identify")))
840 #t)))
841 (replace 'install
842 (lambda* (#:key outputs #:allow-other-keys)
93adf925
TGR
843 (invoke "make" "install" "install-icons")
844 (with-directory-excursion
845 (string-append (assoc-ref outputs "out")
846 "/share/emacs/site-lisp")
847 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
848 (symlink "w3m-load.el" "w3m-autoloads.el")
849 #t))))))
5ede50b8
LC
850 (home-page "http://emacs-w3m.namazu.org/")
851 (synopsis "Simple Web browser for Emacs based on w3m")
852 (description
853 "Emacs-w3m is an emacs interface for the w3m web browser.")
854 (license license:gpl2+))))
89925972
MW
855
856(define-public emacs-wget
857 (package
858 (name "emacs-wget")
859 (version "0.5.0")
860 (source (origin
861 (method url-fetch)
862 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
863 version ".orig.tar.gz"))
864 (sha256
865 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
866 (build-system gnu-build-system)
6aaf3899 867 (inputs `(("wget" ,wget)))
b8fc3622 868 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 869 (arguments
caaf1933 870 `(#:modules ((guix build gnu-build-system)
89925972
MW
871 (guix build utils)
872 (guix build emacs-utils))
caaf1933 873 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
874 (guix build emacs-utils))
875 #:tests? #f ; no check target
876 #:phases
dc1d3cde
KK
877 (modify-phases %standard-phases
878 (replace 'configure
879 (lambda* (#:key outputs #:allow-other-keys)
880 (substitute* "Makefile"
881 (("/usr/local") (assoc-ref outputs "out"))
882 (("/site-lisp/emacs-wget") "/site-lisp"))
883 #t))
884 (add-before 'build 'patch-exec-paths
885 (lambda* (#:key inputs outputs #:allow-other-keys)
886 (let ((wget (assoc-ref inputs "wget")))
887 (emacs-substitute-variables "wget.el"
888 ("wget-command" (string-append wget "/bin/wget"))))
889 #t))
890 (add-after 'install 'post-install
891 (lambda* (#:key outputs #:allow-other-keys)
892 (emacs-generate-autoloads
893 "wget" (string-append (assoc-ref outputs "out")
894 "/share/emacs/site-lisp/"))
895 #t)))))
89925972 896 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 897 (synopsis "Simple file downloader for Emacs based on wget")
89925972 898 (description
35b9e423 899 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 900 (license license:gpl2+)))
77c9286d
LC
901
902\f
903;;;
904;;; Multimedia.
905;;;
906
907(define-public emms
908 (package
d06d4d7b 909 (name "emacs-emms")
6a65b701 910 (version "5.0")
77c9286d
LC
911 (source (origin
912 (method url-fetch)
913 (uri (string-append "mirror://gnu/emms/emms-"
914 version ".tar.gz"))
915 (sha256
916 (base32
6a65b701 917 "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
77c9286d
LC
918 (modules '((guix build utils)))
919 (snippet
6cbee49d
MW
920 '(begin
921 (substitute* "Makefile"
922 (("/usr/bin/install-info")
923 ;; No need to use 'install-info' since it would create a
924 ;; useless 'dir' file.
925 "true")
926 (("^INFODIR=.*")
927 ;; Install Info files to $out/share/info, not $out/info.
928 "INFODIR := $(PREFIX)/share/info\n")
929 (("/site-lisp/emms")
930 ;; Install directly in share/emacs/site-lisp, not in a
931 ;; sub-directory.
932 "/site-lisp")
933 (("^all: (.*)\n" _ rest)
934 ;; Build 'emms-print-metadata'.
935 (string-append "all: " rest " emms-print-metadata\n")))
936 #t))))
77c9286d
LC
937 (build-system gnu-build-system)
938 (arguments
caaf1933 939 `(#:modules ((guix build gnu-build-system)
77c9286d 940 (guix build utils)
80c0f69c
RW
941 (guix build emacs-utils)
942 (ice-9 ftw))
caaf1933 943 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
944 (guix build emacs-utils))
945
2fe176be
EF
946 #:phases
947 (modify-phases %standard-phases
948 (replace 'configure
949 (lambda* (#:key inputs outputs #:allow-other-keys)
950 (let ((out (assoc-ref outputs "out"))
66e55700 951 (flac (assoc-ref inputs "flac"))
2fe176be
EF
952 (vorbis (assoc-ref inputs "vorbis-tools"))
953 (alsa (assoc-ref inputs "alsa-utils"))
954 (mpg321 (assoc-ref inputs "mpg321"))
042358a9
PN
955 (mp3info (assoc-ref inputs "mp3info"))
956 (opus (assoc-ref inputs "opus-tools")))
2fe176be
EF
957 ;; Specify the installation directory.
958 (substitute* "Makefile"
959 (("PREFIX=.*$")
960 (string-append "PREFIX := " out "\n")))
961
962 (setenv "SHELL" (which "sh"))
963 (setenv "CC" "gcc")
964
965 ;; Specify the absolute file names of the various
966 ;; programs so that everything works out-of-the-box.
967 (with-directory-excursion "lisp"
968 (emacs-substitute-variables
969 "emms-player-mpg321-remote.el"
970 ("emms-player-mpg321-remote-command"
971 (string-append mpg321 "/bin/mpg321")))
972 (substitute* "emms-player-simple.el"
973 (("\"ogg123\"")
974 (string-append "\"" vorbis "/bin/ogg123\"")))
66e55700
MC
975 (substitute* "emms-player-simple.el"
976 (("\"mpg321\"")
977 (string-append "\"" mpg321 "/bin/mpg321\"")))
2fe176be
EF
978 (emacs-substitute-variables "emms-info-ogginfo.el"
979 ("emms-info-ogginfo-program-name"
980 (string-append vorbis "/bin/ogginfo")))
042358a9
PN
981 (emacs-substitute-variables "emms-info-opusinfo.el"
982 ("emms-info-opusinfo-program-name"
983 (string-append opus "/bin/opusinfo")))
2fe176be
EF
984 (emacs-substitute-variables "emms-info-libtag.el"
985 ("emms-info-libtag-program-name"
986 (string-append out "/bin/emms-print-metadata")))
987 (emacs-substitute-variables "emms-info-mp3info.el"
988 ("emms-info-mp3info-program-name"
989 (string-append mp3info "/bin/mp3info")))
66e55700
MC
990 (emacs-substitute-variables "emms-info-metaflac.el"
991 ("emms-info-metaflac-program-name"
992 (string-append flac "/bin/metaflac")))
993 (emacs-substitute-variables "emms-source-file.el"
994 ("emms-source-file-gnu-find" (which "find")))
2fe176be
EF
995 (substitute* "emms-volume-amixer.el"
996 (("\"amixer\"")
997 (string-append "\"" alsa "/bin/amixer\"")))
998 (substitute* "emms-tag-editor.el"
999 (("\"mp3info\"")
1000 (string-append "\"" mp3info "/bin/mp3info\"")))))))
1001 (add-before 'install 'pre-install
1002 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 1003 ;; The 'install' rule expects the target directories to exist.
2fe176be 1004 (let* ((out (assoc-ref outputs "out"))
c3a10d30 1005 (bin (string-append out "/bin"))
2fe176be 1006 (man1 (string-append out "/share/man/man1")))
c3a10d30 1007 (mkdir-p bin)
2fe176be 1008 (mkdir-p man1)
80c0f69c
RW
1009
1010 ;; Ensure that files are not rejected by gzip
1011 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1012 (ftw "." (lambda (file stat flag)
1013 (unless (<= early-1980 (stat:mtime stat))
1014 (utime file early-1980 early-1980))
1015 #t)))
2fe176be
EF
1016 #t)))
1017 (add-after 'install 'post-install
1018 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 1019 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
1020 (symlink "emms-auto.el"
1021 (string-append out "/share/emacs/site-lisp/"
80c0f69c
RW
1022 "emms-autoloads.el")))
1023 #t)))
77c9286d 1024 #:tests? #f))
b8fc3622 1025 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 1026 ("texinfo" ,texinfo)))
c72aed6d 1027 (inputs `(("alsa-utils" ,alsa-utils)
66e55700 1028 ("flac" ,flac) ;for metaflac
77c9286d
LC
1029 ("vorbis-tools" ,vorbis-tools)
1030 ("mpg321" ,mpg321)
1031 ("taglib" ,taglib)
042358a9
PN
1032 ("mp3info" ,mp3info)
1033 ("opus-tools" ,opus-tools)))
38cb4766 1034 (properties '((upstream-name . "emms")))
77c9286d
LC
1035 (synopsis "Emacs Multimedia System")
1036 (description
1037 "EMMS is the Emacs Multimedia System. It is a small front-end which
1038can control one of the supported external players. Thus, it supports
1039whatever formats are supported by your music player. It also
1040supports tagging and playlist management, all behind a clean and
1041light user interface.")
6fd52309 1042 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 1043 (license license:gpl3+)))
c7e553a3 1044
1095bd1d 1045(define-public emacs-emms-player-mpv
5ecb058c
PN
1046 ;; A new mpv backend is included in Emms from 5.0.
1047 (deprecated-package "emacs-emms-player-mpv" emms))
1095bd1d 1048
2316078a
RW
1049(define-public emacs-emms-mode-line-cycle
1050 (package
1051 (name "emacs-emms-mode-line-cycle")
1052 (version "0.2.5")
1053 (source
1054 (origin
1055 (method url-fetch)
1056 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1057 "/archive/" version ".tar.gz"))
1058 (file-name (string-append name "-" version ".tar.gz"))
1059 (sha256
1060 (base32
1061 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1062 (build-system emacs-build-system)
1063 (propagated-inputs
1064 `(("emms" ,emms)))
1065 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1066 (synopsis "Display the EMMS mode line as a ticker")
1067 (description
1068 "This is a minor mode for updating the EMMS mode-line string cyclically
1069within a specified width. It is useful for displaying long track titles.")
1070 (license license:gpl3+)))
1071
c7e553a3
LC
1072\f
1073;;;
1074;;; Miscellaneous.
1075;;;
1076
1077(define-public bbdb
1078 (package
1079 (name "bbdb")
1080 (version "3.1.2")
1081 (source (origin
1082 (method url-fetch)
1083 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1084 version ".tar.gz"))
1085 (sha256
1086 (base32
1087 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1088 (modules '((guix build utils)))
1089 (snippet
1090 ;; We don't want to build and install the PDF.
6cbee49d
MW
1091 '(begin
1092 (substitute* "doc/Makefile.in"
1093 (("^doc_DATA = .*$")
1094 "doc_DATA =\n"))
1095 #t))))
c7e553a3
LC
1096 (build-system gnu-build-system)
1097 (arguments
dc1d3cde
KK
1098 '(#:phases
1099 (modify-phases %standard-phases
1100 (add-after 'install 'post-install
1101 (lambda* (#:key outputs #:allow-other-keys)
1102 ;; Add an autoloads file with the right name for guix.el.
1103 (let* ((out (assoc-ref outputs "out"))
1104 (site (string-append out "/share/emacs/site-lisp")))
1105 (with-directory-excursion site
1106 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1107 #t)))))
b8fc3622 1108 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 1109 (home-page "https://savannah.nongnu.org/projects/bbdb/")
c7e553a3
LC
1110 (synopsis "Contact management utility for Emacs")
1111 (description
1112 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1113an address book for email and snail mail addresses, phone numbers and the
1114like. It can be linked with various Emacs mail clients (Message and Mail
1115mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1116 (license license:gpl3+)))
78395334 1117
4d3d3bd2
VD
1118(define-public emacs-aggressive-indent
1119 (package
1120 (name "emacs-aggressive-indent")
1121 (version "1.8.3")
1122 (source (origin
1123 (method url-fetch)
1124 (uri (string-append "https://elpa.gnu.org/packages/"
1125 "aggressive-indent-" version ".el"))
1126 (sha256
1127 (base32
1128 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1129 (build-system emacs-build-system)
1130 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1131 (synopsis "Minor mode to aggressively keep your code always indented")
1132 (description
1133 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1134always indented. It reindents after every change, making it more reliable
1135than @code{electric-indent-mode}.")
1136 (license license:gpl2+)))
1137
cf006d2e
CB
1138(define-public emacs-ag
1139 (package
1140 (name "emacs-ag")
1141 (version "0.47")
1142 (source (origin
1143 (method url-fetch)
1144 (uri (string-append
1145 "https://github.com/Wilfred/ag.el/archive/"
1146 version ".tar.gz"))
1147 (file-name (string-append name "-" version ".tar.gz"))
1148 (sha256
1149 (base32
1150 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1151 (build-system emacs-build-system)
1152 (arguments
1153 `(#:phases
1154 (modify-phases %standard-phases
99517d92
GC
1155 (add-before 'install 'make-info
1156 (lambda _
1157 (with-directory-excursion "docs"
f9299da9 1158 (invoke "make" "info"))))
99517d92
GC
1159 (add-after 'install 'install-info
1160 (lambda* (#:key outputs #:allow-other-keys)
1161 (let* ((out (assoc-ref outputs "out"))
1162 (info (string-append out "/share/info")))
1163 (install-file "docs/_build/texinfo/agel.info" info)
1164 #t))))))
99517d92
GC
1165 (native-inputs
1166 `(("python-sphinx" ,python-sphinx)
1167 ("texinfo" ,texinfo)))
cf006d2e
CB
1168 (propagated-inputs
1169 `(("dash" ,emacs-dash)
86470421
CL
1170 ("s" ,emacs-s)
1171 ;; We need to use 'ag' as the executable on remote systems.
1172 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1173 (home-page "https://github.com/Wilfred/ag.el")
1174 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1175 (description "This package provides the ability to use the silver
1176searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1177include version control system awareness, use of Perl compatible regular
1178expressions, editing the search results directly and searching file names
1179rather than the contents of files.")
1180 (license license:gpl3+)))
1181
b654de6d
AK
1182(define-public emacs-async
1183 (package
1184 (name "emacs-async")
3c3c3d1d 1185 (home-page "https://github.com/jwiegley/emacs-async")
ac3accd4 1186 (version "1.9.3")
b654de6d 1187 (source (origin
3c3c3d1d
MB
1188 (method git-fetch)
1189 (uri (git-reference
1190 (url home-page)
1191 (commit (string-append "v" version))))
1192 (file-name (git-file-name name version))
b654de6d
AK
1193 (sha256
1194 (base32
3c3c3d1d 1195 "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
b654de6d 1196 (build-system emacs-build-system)
b654de6d
AK
1197 (synopsis "Asynchronous processing in Emacs")
1198 (description
1199 "This package provides the ability to call asynchronous functions and
1200processes. For example, it can be used to run dired commands (for copying,
1201moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1202as a library for other Emacs packages.")
1203 (license license:gpl3+)))
1204
78395334
FB
1205(define-public emacs-auctex
1206 (package
1207 (name "emacs-auctex")
7f9866a3 1208 (version "12.1.0")
78395334
FB
1209 (source
1210 (origin
1211 (method url-fetch)
1212 (uri (string-append
f32ffa04 1213 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1214 version
1215 ".tar"))
1216 (sha256
1217 (base32
7f9866a3 1218 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
78395334 1219 (build-system emacs-build-system)
a6eafbed
AK
1220 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1221 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1222 (arguments
1223 `(#:emacs ,emacs
1224 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1225 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1226 (native-inputs
1227 `(("perl" ,perl)))
6fd52309 1228 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1229 (synopsis "Integrated environment for TeX")
1230 (description
1231 "AUCTeX is a comprehensive customizable integrated environment for
1232writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1233or XEmacs.")
1234 (license license:gpl3+)))
85ef742c 1235
de2e402b
MM
1236(define-public emacs-autothemer
1237 (package
1238 (name "emacs-autothemer")
1239 (version "0.2.2")
1240 (source
1241 (origin
1242 (method url-fetch)
1243 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1244 version ".tar.gz"))
1245 (file-name (string-append name "-" version ".tar.gz"))
1246 (sha256
1247 (base32
1248 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1249 (build-system emacs-build-system)
1250 (propagated-inputs
1251 `(("emacs-dash" ,emacs-dash)))
1252 (home-page "https://github.com/sebastiansturm/autothemer")
1253 (synopsis "Conveniently create Emacs themes")
1254 (description
1255 "Autothemer provides a thin layer on top of @code{deftheme} and
1256@code{custom-theme-set-faces} that creates a new custom color theme, based on
1257a set of simplified face specifications and a user-supplied color palette")
1258 (license license:gpl3+)))
1259
474e14f7
MC
1260(define-public emacs-howm
1261 (package
1262 (name "emacs-howm")
1263 (version "1.4.4")
1264 (source
1265 (origin
1266 (method url-fetch)
1267 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1268 version ".tar.gz"))
1269 (sha256
1270 (base32
1271 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1272 (build-system gnu-build-system)
1273 (native-inputs
1274 `(("emacs" ,emacs-minimal)))
1275 (arguments
1276 `(#:configure-flags
1277 (list (string-append "--with-howmdir=" %output
1278 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1279 #:modules ((guix build gnu-build-system)
1280 ((guix build emacs-build-system) #:prefix emacs:)
1281 (guix build utils))
1282 #:imported-modules (,@%gnu-build-system-modules
1283 (guix build emacs-build-system)
1284 (guix build emacs-utils))
1285 #:phases
1286 (modify-phases %standard-phases
1287 (add-after 'rename-lispdir 'make-autoloads
1288 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1289 (home-page "http://howm.osdn.jp/")
1290 (synopsis "Note-taking tool for Emacs")
1291 (description "Howm is a note-taking tool for Emacs. Like
1292code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1293searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1294 (license license:gpl1+)))
1295
36890436
VD
1296(define-public emacs-calfw
1297 (package
1298 (name "emacs-calfw")
1299 (version "1.5")
1300 (source
1301 (origin
1302 (method url-fetch)
1303 (uri (string-append
1304 "https://github.com/kiwanami/emacs-calfw/archive/v"
1305 version ".tar.gz"))
1306 (file-name (string-append name "-" version ".tar.gz"))
1307 (sha256
1308 (base32
1309 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1310 (build-system emacs-build-system)
159d10ae
MC
1311 (propagated-inputs
1312 `(("emacs-howm" ,emacs-howm)))
36890436
VD
1313 (home-page "https://github.com/kiwanami/emacs-calfw/")
1314 (synopsis "Calendar framework for Emacs")
1315 (description
9dac2a8e
RW
1316 "This package displays a calendar view with various schedule data in the
1317Emacs buffer.")
36890436
VD
1318 (license license:gpl3+)))
1319
a8d0c9cb
CB
1320(define-public emacs-direnv
1321 (package
1322 (name "emacs-direnv")
1323 (version "1.2.0")
1324 (source
1325 (origin
1326 (method url-fetch)
1327 (uri (string-append
1328 "https://github.com/wbolster/emacs-direnv/archive/"
1329 version ".tar.gz"))
1330 (file-name (string-append name "-" version ".tar.gz"))
1331 (sha256
1332 (base32
1333 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1334 (build-system emacs-build-system)
1335 (propagated-inputs
1336 `(("dash" ,emacs-dash)
1337 ("with-editor" ,emacs-with-editor)))
1338 (home-page "https://github.com/wbolster/emacs-direnv")
1339 (synopsis "Direnv integration for Emacs")
1340 (description
1341 "This package provides support for invoking direnv to get the environment
1342for the current file and updating the environment within Emacs to match.
1343
1344Direnv can be invoked manually, and a global minor mode is included that will
1345update the environment when the active buffer changes.
1346
1347Using emacs-direnv means that programs started from Emacs will use the
1348environment set through Direnv.")
1349 (license license:gpl3+)))
1350
cd5c3979
OP
1351(define-public emacs-ggtags
1352 (package
1353 (name "emacs-ggtags")
1354 (version "0.8.12")
1355 (source
1356 (origin
1357 (method url-fetch)
1358 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1359 version ".el"))
1360 (sha256
1361 (base32
1362 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1363 (build-system emacs-build-system)
1364 (home-page "https://github.com/leoliu/ggtags")
1365 (synopsis "Frontend to the GNU Global source code tagging system")
1366 (description "@code{ggtags} provides a frontend to the GNU Global source
1367code tagging system.
1368
1369Features:
1370
1371@itemize
1372@item Build on @code{compile.el} for asynchronicity and its large feature-set.
1373@item Automatically update Global's tag files when needed with tuning for
1374large source trees.
1375@item Intuitive navigation among multiple matches with mode-line display of
1376current match, total matches and exit status.
1377@item Read tag with completion.
1378@item Show definition at point.
1379@item Jump to #include files.
1380@item Support search history and saving a search to register/bookmark.
1381@item Query replace.
1382@item Manage Global's environment variables on a per-project basis.
1383@item Highlight (definition) tag at point.
1384@item Abbreviated display of file names.
1385@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1386@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1387@code{pygments} backend.
1388@item Support all Global's output formats: @code{grep}, @code{ctags-x},
1389@code{cscope} etc.
1390@item Support projects on remote hosts (e.g. via @code{tramp}).
1391@item Support eldoc.
1392@item Search @code{GTAGSLIBPATH} for references and symbols.
1393@end itemize\n")
1394 (license license:gpl3+)))
1395
21a656f5
CB
1396(define-public emacs-go-mode
1397 (package
1398 (name "emacs-go-mode")
1399 (version "1.5.0")
1400 (source (origin
1401 (method url-fetch)
1402 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1403 "archive/v" version ".tar.gz"))
1404 (file-name (string-append name "-" version ".tar.gz"))
1405 (sha256
1406 (base32
1407 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1408 (build-system emacs-build-system)
1409 (home-page "https://github.com/dominikh/go-mode.el")
1410 (synopsis "Go mode for Emacs")
1411 (description
1412 "This package provides go-mode, an Emacs mode for working with software
1413written in the Go programming language.")
1414 (license license:bsd-3)))
1415
63878730
VD
1416(define-public emacs-google-maps
1417 (package
1418 (name "emacs-google-maps")
1419 (version "1.0.0")
1420 (source (origin
1421 (method url-fetch)
1422 (uri (string-append "https://github.com/jd/google-maps.el/"
1423 "archive/" version ".tar.gz"))
1424 (file-name (string-append name "-" version ".tar.gz"))
1425 (sha256
1426 (base32
1427 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1428 (build-system emacs-build-system)
1429 (home-page "https://github.com/jd/google-maps.el")
1430 (synopsis "Access Google Maps from Emacs")
1431 (description "The @code{google-maps} package allows to display Google
1432Maps directly inside Emacs.")
1433 (license license:gpl3+)))
1434
1f37465a 1435(define-public emacs-graphviz-dot-mode
067a113a 1436 (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a")
1f37465a
CB
1437 (revision "1"))
1438 (package
1439 (name "emacs-graphviz-dot-mode")
067a113a 1440 (version (string-append "0.3.11-" revision "."
1f37465a
CB
1441 (string-take commit 7)))
1442 (source (origin
1443 (method git-fetch)
1444 (uri (git-reference
1445 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1446 (commit commit)))
1447 (file-name (string-append name "-" version "-checkout"))
1448 (sha256
1449 (base32
067a113a 1450 "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
1f37465a
CB
1451 (build-system emacs-build-system)
1452 (arguments
1453 `(#:phases
1454 (modify-phases %standard-phases
1455 (add-before 'install 'make-info
1456 (lambda* (#:key inputs #:allow-other-keys)
1457 (with-directory-excursion "texinfo"
1458 (substitute* "Makefile"
1459 (("\\/usr\\/bin\\/gzip")
1460 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
8bc19675
TGR
1461 (invoke "make"
1462 "clean"
1463 "info"
1464 (string-append "TEXINFODIR="
1465 (assoc-ref inputs "texinfo")
1466 "/bin")))))
1f37465a
CB
1467 (add-after 'install 'install-info
1468 (lambda* (#:key outputs #:allow-other-keys)
1469 (let* ((out (assoc-ref outputs "out"))
1470 (info (string-append out "/share/info")))
1471 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1472 #t))))))
1473 (native-inputs
1474 `(("texinfo" ,texinfo)
1475 ("gzip" ,gzip)))
1476 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1477 (synopsis "Major mode for editing Graphviz Dot files")
1478 (description
1479 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1480files using the dot syntax, and use Graphviz to convert these files to
1481diagrams.")
1482 (license license:gpl2+))))
1483
85ef742c
FB
1484(define-public emacs-mmm-mode
1485 (package
1486 (name "emacs-mmm-mode")
810cd037 1487 (version "0.5.5")
85ef742c
FB
1488 (source
1489 (origin
1490 (method url-fetch)
1491 (uri (string-append
0c909c05
AK
1492 "https://github.com/purcell/mmm-mode/archive/"
1493 version ".tar.gz"))
1494 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1495 (sha256
1496 (base32
810cd037 1497 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
0c909c05
AK
1498 (build-system gnu-build-system)
1499 (arguments
1500 '(#:phases
1501 (modify-phases %standard-phases
1502 (add-after 'unpack 'autogen
1503 (lambda _
32a8a6bb 1504 (invoke "sh" "autogen.sh"))))))
0c909c05
AK
1505 (native-inputs
1506 `(("autoconf" ,autoconf)
1507 ("automake" ,automake)
b8fc3622 1508 ("emacs" ,emacs-minimal)
0c909c05 1509 ("texinfo" ,texinfo)))
85ef742c 1510 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1511 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1512 (description
0c909c05 1513 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1514single buffer.")
1515 (license license:gpl3+)))
ec9825d6 1516
060348d2
AK
1517(define-public emacs-tablist
1518 (package
1519 (name "emacs-tablist")
1520 (version "0.70")
1521 (source (origin
1522 (method url-fetch)
1523 (uri (string-append
1524 "https://github.com/politza/tablist/archive/v"
1525 version ".tar.gz"))
1526 (file-name (string-append name "-" version ".tar.gz"))
1527 (sha256
1528 (base32
1529 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1530 (build-system emacs-build-system)
1531 (home-page "https://github.com/politza/tablist")
1532 (synopsis "Extension for @code{tabulated-list-mode}")
1533 (description "Tablist is the Emacs package that provides several
1534additional features to @code{tabulated-list-mode}: it adds marks,
1535filters, new key bindings and faces. It can be enabled by
1536@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1537 (license license:gpl3+)))
1538
ec9825d6
RW
1539(define-public emacs-pdf-tools
1540 (package
1541 (name "emacs-pdf-tools")
1210046d 1542 (version "0.80")
ec9825d6
RW
1543 (source (origin
1544 (method url-fetch)
1545 (uri (string-append
1546 "https://github.com/politza/pdf-tools/archive/v"
1547 version ".tar.gz"))
1548 (file-name (string-append name "-" version ".tar.gz"))
1549 (sha256
1550 (base32
1210046d 1551 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
ec9825d6
RW
1552 (build-system gnu-build-system)
1553 (arguments
1554 `(#:tests? #f ; there are no tests
1555 #:modules ((guix build gnu-build-system)
1bcae5c5 1556 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1557 (guix build utils)
1558 (guix build emacs-utils))
1559 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1560 (guix build emacs-build-system)
ec9825d6
RW
1561 (guix build emacs-utils))
1562 #:phases
1563 (modify-phases %standard-phases
1bcae5c5
AK
1564 ;; Build server side using 'gnu-build-system'.
1565 (add-after 'unpack 'enter-server-dir
1566 (lambda _ (chdir "server") #t))
d10092b8 1567 (add-after 'enter-server-dir 'autogen
1bcae5c5 1568 (lambda _
d2f3817d 1569 (invoke "bash" "autogen.sh")))
1bcae5c5
AK
1570
1571 ;; Build emacs side using 'emacs-build-system'.
1572 (add-after 'compress-documentation 'enter-lisp-dir
1573 (lambda _ (chdir "../lisp") #t))
1574 (add-after 'enter-lisp-dir 'emacs-patch-variables
1575 (lambda* (#:key outputs #:allow-other-keys)
1576 ;; Set path to epdfinfo program.
1577 (emacs-substitute-variables "pdf-info.el"
1578 ("pdf-info-epdfinfo-program"
1579 (string-append (assoc-ref outputs "out")
1580 "/bin/epdfinfo")))
1581 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1582 ;; upgrading" that pdf-tools tries to perform.
1583 (emacs-substitute-variables "pdf-tools.el"
1584 ("pdf-tools-handle-upgrades" '()))))
259ed58f
MC
1585 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1586 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1587 (add-after 'emacs-set-emacs-load-path 'emacs-install
1bcae5c5
AK
1588 (assoc-ref emacs:%standard-phases 'install))
1589 (add-after 'emacs-install 'emacs-build
1590 (assoc-ref emacs:%standard-phases 'build))
1591 (add-after 'emacs-install 'emacs-make-autoloads
1592 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1593 (native-inputs `(("autoconf" ,autoconf)
1594 ("automake" ,automake)
1595 ("pkg-config" ,pkg-config)
b8fc3622 1596 ("emacs" ,emacs-minimal)))
ec9825d6
RW
1597 (inputs `(("poppler" ,poppler)
1598 ("cairo" ,cairo)
1599 ("glib" ,glib)
1600 ("libpng" ,libpng)
1601 ("zlib" ,zlib)))
1210046d 1602 (propagated-inputs `(("tablist" ,emacs-tablist)))
ec9825d6
RW
1603 (synopsis "Emacs support library for PDF files")
1604 (description
1605 "PDF Tools is, among other things, a replacement of DocView for PDF
1606files. The key difference is that pages are not pre-rendered by
1607e.g. ghostscript and stored in the file-system, but rather created on-demand
1608and stored in memory.")
1609 (home-page "https://github.com/politza/pdf-tools")
1610 (license license:gpl3+)))
d4dbf10e
FB
1611
1612(define-public emacs-dash
1613 (package
1614 (name "emacs-dash")
06f86379 1615 (version "2.14.1")
d4dbf10e 1616 (source (origin
06f86379
RW
1617 (method git-fetch)
1618 (uri (git-reference
1619 (url "https://github.com/magnars/dash.el.git")
1620 (commit version)))
1621 (file-name (git-file-name name version))
d4dbf10e
FB
1622 (sha256
1623 (base32
06f86379 1624 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
d4dbf10e
FB
1625 (build-system emacs-build-system)
1626 (arguments
d1d41db6
MC
1627 `(#:tests? #t
1628 #:test-command '("./run-tests.sh")))
d4dbf10e
FB
1629 (home-page "https://github.com/magnars/dash.el")
1630 (synopsis "Modern list library for Emacs")
1631 (description "This package provides a modern list API library for Emacs.")
1632 (license license:gpl3+)))
85777fe5 1633
753baf77
AK
1634(define-public emacs-bui
1635 (package
1636 (name "emacs-bui")
f6b1dd23 1637 (version "1.1.0")
753baf77
AK
1638 (source (origin
1639 (method url-fetch)
1640 (uri (string-append
1641 "https://github.com/alezost/bui.el/archive/v"
1642 version ".tar.gz"))
1643 (file-name (string-append name "-" version ".tar.gz"))
1644 (sha256
1645 (base32
f6b1dd23 1646 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1647 (build-system emacs-build-system)
1648 (propagated-inputs
1649 `(("dash" ,emacs-dash)))
1650 (home-page "https://github.com/alezost/bui.el")
1651 (synopsis "Buffer interface library for Emacs")
1652 (description
1653 "BUI (Buffer User Interface) is a library for making @code{list} and
1654@code{info} interfaces to display an arbitrary data of the same
1655type, for example: packages, buffers, files, etc.")
1656 (license license:gpl3+)))
1657
64e43c67
AK
1658(define-public emacs-guix
1659 (package
1660 (name "emacs-guix")
ed615bcd 1661 (version "0.4.1.1")
64e43c67
AK
1662 (source (origin
1663 (method url-fetch)
65f46862
AK
1664 (uri (string-append "https://emacs-guix.gitlab.io/website/"
1665 "releases/emacs-guix-" version ".tar.gz"))
64e43c67
AK
1666 (sha256
1667 (base32
ed615bcd 1668 "0jbnrcazbks7h50rngpw5l40a6vn2794kb53cpva3yzdjmrc1955"))))
64e43c67
AK
1669 (build-system gnu-build-system)
1670 (arguments
1671 `(#:configure-flags
1672 (let ((guix (assoc-ref %build-inputs "guix"))
1673 (geiser (assoc-ref %build-inputs "geiser"))
1674 (dash (assoc-ref %build-inputs "dash"))
1675 (bui (assoc-ref %build-inputs "bui"))
1676 (magit-popup (assoc-ref %build-inputs "magit-popup"))
ca59ce41 1677 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
64e43c67
AK
1678 (site-lisp "/share/emacs/site-lisp"))
1679 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1680 (car (find-files (string-append guix
1681 "/share/guile/site")
1682 (lambda (file stat)
1683 (string-prefix?
1684 "2."
1685 (basename file)))
1686 #:directories? #t)))
3fb8e281
AK
1687 (string-append "--with-guix-site-ccache-dir="
1688 (car (find-files (string-append guix "/lib/guile")
1689 (lambda (file stat)
1690 (string-prefix?
1691 "2." (basename file)))
1692 #:directories? #t))
1693 "/site-ccache")
64e43c67
AK
1694 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1695 (string-append "--with-dash-lispdir="
1696 dash site-lisp "/guix.d/dash-"
1697 ,(package-version emacs-dash))
1698 (string-append "--with-bui-lispdir="
1699 bui site-lisp "/guix.d/bui-"
1700 ,(package-version emacs-bui))
ca59ce41
AK
1701 (string-append "--with-editindirect-lispdir="
1702 edit-indirect site-lisp "/guix.d/edit-indirect-"
1703 ,(package-version emacs-edit-indirect))
64e43c67
AK
1704 (string-append "--with-popup-lispdir="
1705 magit-popup site-lisp "/guix.d/magit-popup-"
1706 ,(package-version emacs-magit-popup))))))
1707 (native-inputs
1708 `(("pkg-config" ,pkg-config)
1709 ("emacs" ,emacs-minimal)))
1710 (inputs
b4f8edb7 1711 `(("guile" ,guile-2.2)
64e43c67
AK
1712 ("guix" ,guix)))
1713 (propagated-inputs
1714 `(("geiser" ,geiser)
1715 ("dash" ,emacs-dash)
1716 ("bui" ,emacs-bui)
ca59ce41 1717 ("edit-indirect" ,emacs-edit-indirect)
64e43c67 1718 ("magit-popup" ,emacs-magit-popup)))
65f46862 1719 (home-page "https://emacs-guix.gitlab.io/website/")
64e43c67
AK
1720 (synopsis "Emacs interface for GNU Guix")
1721 (description
b2f1f7b0
AK
1722 "Emacs-Guix provides a visual interface, tools and features for the GNU
1723Guix package manager. Particularly, it allows you to do various package
1724management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1725@code{M-x guix-help} command.")
64e43c67
AK
1726 (license license:gpl3+)))
1727
40f7ebac
AK
1728(define-public emacs-build-farm
1729 (package
1730 (name "emacs-build-farm")
1731 (version "0.2")
1732 (source (origin
1733 (method git-fetch)
1734 (uri (git-reference
1735 (url "https://gitlab.com/alezost-emacs/build-farm")
1736 (commit "fa7fa54901416fc5c216a5014394cbd73a61efc6")))
1737 (file-name (string-append name "-" version "-checkout"))
1738 (sha256
1739 (base32
1740 "1zw3pivma6cv9j7k7qm02jd6wnxmsc1v2mjcssd50im99zzrqflh"))))
1741 (build-system emacs-build-system)
1742 (propagated-inputs
1743 `(("bui" ,emacs-bui)
1744 ("magit-popup" ,emacs-magit-popup)))
1745 (home-page "https://gitlab.com/alezost-emacs/build-farm")
1746 (synopsis "Emacs interface for Hydra and Cuirass build farms")
1747 (description
1748 "This Emacs package provides an interface for Hydra and
1749Cuirass (build farms used by Nix and Guix). It allows you to look at
1750various data related to the build farm projects, jobsets, builds and
1751evaluations. The entry point is @code{M-x build-farm} command.")
1752 (license license:gpl3+)))
1753
d6e5de1e
RJ
1754(define-public emacs-d-mode
1755 (package
1756 (name "emacs-d-mode")
aa86a564 1757 (version "2.0.9")
d6e5de1e
RJ
1758 (source (origin
1759 (method url-fetch)
1760 (uri (string-append
1761 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1762 "archive/" version ".tar.gz"))
b87047e0 1763 (file-name (string-append name "-" version ".tar.gz"))
d6e5de1e
RJ
1764 (sha256
1765 (base32
aa86a564 1766 "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
d6e5de1e
RJ
1767 (build-system emacs-build-system)
1768 (propagated-inputs
1769 `(("emacs-undercover" ,emacs-undercover)))
1770 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1771 (synopsis "Emacs major mode for editing D code")
1772 (description "This package provides an Emacs major mode for highlighting
1773code written in the D programming language. This mode is currently known to
1774work with Emacs 24 and 25.")
1775 (license license:gpl2+)))
1776
7f7b38af
VD
1777(define-public emacs-keyfreq
1778 (package
1779 (name "emacs-keyfreq")
1780 (version "20160516.716")
1781 (source
1782 (origin
1783 (method url-fetch)
1784 (uri (string-append "http://melpa.org/packages/keyfreq-"
1785 version ".el"))
1786 (sha256
1787 (base32
1788 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1789 (build-system emacs-build-system)
1790 (home-page "https://github.com/dacap/keyfreq")
1791 (synopsis "Track Emacs command frequencies")
1792 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1793a command.")
1794 (license license:gpl3+)))
1795
6aab6c27
RJ
1796(define-public emacs-olivetti
1797 (package
1798 (name "emacs-olivetti")
1799 (version "1.5.7")
1800 (source (origin
1801 (method url-fetch)
1802 (uri (string-append
1803 "https://stable.melpa.org/packages/olivetti-"
1804 version ".el"))
1805 (sha256
1806 (base32
1807 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1808 (build-system emacs-build-system)
1809 (home-page "https://github.com/rnkn/olivetti")
1810 (synopsis "Emacs minor mode for a nice writing environment")
1811 (description "This package provides an Emacs minor mode that puts writing
1812in the center.")
1813 (license license:gpl3+)))
1814
1075b437
DB
1815(define-public emacs-undo-tree
1816 (package
1817 (name "emacs-undo-tree")
77a7891b 1818 (version "0.6.6")
1075b437
DB
1819 (source (origin
1820 (method git-fetch)
1821 (uri (git-reference
1822 (url "http://dr-qubit.org/git/undo-tree.git")
08e1f38d 1823 (commit (string-append "release/" version))))
1075b437
DB
1824 (file-name (string-append name "-" version "-checkout"))
1825 (sha256
77a7891b 1826 (base32
1827 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1075b437
DB
1828 (build-system emacs-build-system)
1829 (home-page "http://www.dr-qubit.org/emacs.php")
1830 (synopsis "Treat undo history as a tree")
1831 (description "Tree-like interface to Emacs undo system, providing
1832graphical tree presentation of all previous states of buffer that
1833allows easily move between them.")
1834 (license license:gpl3+)))
1835
85777fe5
FB
1836(define-public emacs-s
1837 (package
1838 (name "emacs-s")
4e425584 1839 (version "1.12.0")
85777fe5
FB
1840 (source (origin
1841 (method url-fetch)
1842 (uri (string-append
1843 "https://github.com/magnars/s.el/archive/"
1844 version ".tar.gz"))
1845 (file-name (string-append name "-" version ".tar.gz"))
1846 (sha256
1847 (base32
4e425584 1848 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
85777fe5
FB
1849 (build-system emacs-build-system)
1850 (arguments
d1d41db6 1851 `(#:tests? #t
80e99aa4 1852 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
d1d41db6 1853 #:test-command '("./run-tests.sh")))
85777fe5 1854 (home-page "https://github.com/magnars/s.el")
a124bbd2 1855 (synopsis "Emacs string manipulation library")
85777fe5
FB
1856 (description "This package provides an Emacs library for manipulating
1857strings.")
1858 (license license:gpl3+)))
cf9ce01f 1859
070e1fe9
VD
1860(define-public emacs-symon
1861 (package
1862 (name "emacs-symon")
d71b758f 1863 (version "20160630")
070e1fe9
VD
1864 (source
1865 (origin
1866 (method url-fetch)
d71b758f
VD
1867 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1868 version ".tar.gz"))
1869 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1870 (sha256
1871 (base32
d71b758f 1872 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1873 (build-system emacs-build-system)
d71b758f 1874 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1875 (synopsis "Tiny graphical system monitor")
1876 (description
1877 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1878 (license license:gpl2+)))
1879
899bcad3 1880(define-public emacs-sx
582c122e
MC
1881 (let ((version "20180212")
1882 (revision "1")
1883 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1884 (package
1885 (name "emacs-sx")
1886 (version (git-version version revision commit))
1887 (source
1888 (origin
1889 (method git-fetch)
1890 (uri (git-reference
1891 (url "https://github.com/vermiculus/sx.el")
1892 (commit commit)))
1893 (file-name (git-file-name name version))
1894 (sha256
1895 (base32
1896 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1897 (build-system emacs-build-system)
1898 (propagated-inputs
1899 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1900 (home-page "https://github.com/vermiculus/sx.el")
1901 (synopsis "Emacs StackExchange client")
1902 (description
1903 "Emacs StackExchange client. Ask and answer questions on
899bcad3 1904Stack Overflow, Super User, and other StackExchange sites.")
582c122e 1905 (license license:gpl3+))))
899bcad3 1906
cf9ce01f
FB
1907(define-public emacs-f
1908 (package
1909 (name "emacs-f")
bc2f9dc3 1910 (version "0.20.0")
cf9ce01f 1911 (source (origin
bd0570f2
TGR
1912 (method git-fetch)
1913 (uri (git-reference
1914 (url "https://github.com/rejeep/f.el.git")
1915 (commit (string-append "v" version))))
1916 (file-name (git-file-name name version))
cf9ce01f
FB
1917 (sha256
1918 (base32
bc2f9dc3 1919 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
cf9ce01f
FB
1920 (build-system emacs-build-system)
1921 (propagated-inputs
1922 `(("emacs-s" ,emacs-s)
1923 ("emacs-dash" ,emacs-dash)))
7bf837fd 1924 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1925 (synopsis "Emacs API for working with files and directories")
1926 (description "This package provides an Emacs library for working with
1927files and directories.")
1928 (license license:gpl3+)))
48dbeef7 1929
0916dc52
CB
1930(define-public emacs-git-gutter
1931 (package
1932 (name "emacs-git-gutter")
1933 (version "0.90")
1934 (source (origin
1935 (method url-fetch)
1936 (uri (string-append
1937 "https://github.com/syohex/" name "/archive/"
1938 version ".tar.gz"))
1939 (file-name (string-append name "-" version ".tar.gz"))
1940 (sha256
1941 (base32
1942 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1943 (build-system emacs-build-system)
1944 (home-page "https://github.com/syohex/emacs-git-gutter")
1945 (synopsis "See and manage hunks of text in a version control system")
1946 (description
1947 "This package is an Emacs minor mode for displaying and interacting with
1948hunks of text managed in a version control system. Added modified and deleted
1949areas can be indicated with symbols on the edge of the buffer, and commands
1950can be used to move between and perform actions on these hunks.
1951
1952Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1953display and behaviour is easily customisable.")
1954 (license license:gpl3+)))
1955
0b35f11d
RW
1956(define-public emacs-git-timemachine
1957 (package
1958 (name "emacs-git-timemachine")
35b6fc12 1959 (version "4.5")
0b35f11d
RW
1960 (source
1961 (origin
1962 (method url-fetch)
0e56f589
KM
1963 (uri (string-append "https://gitlab.com/pidu/git-timemachine"
1964 "/-/archive/" version
1965 "/git-timemachine-" version ".tar.gz"))
0b35f11d
RW
1966 (file-name (string-append name "-" version ".tar.gz"))
1967 (sha256
1968 (base32
35b6fc12 1969 "0ii40qcincasg7s1yrvqcxkqcqzb4sfs7gcxscn6m4x4ans165zy"))))
0b35f11d 1970 (build-system emacs-build-system)
0e56f589 1971 (home-page "https://gitlab.com/pidu/git-timemachine")
0b35f11d
RW
1972 (synopsis "Step through historic versions of Git-controlled files")
1973 (description "This package enables you to step through historic versions
1974of files under Git version control from within Emacs.")
1975 (license license:gpl3+)))
1976
26361de4 1977(define-public emacs-minitest
158943f2
CB
1978 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1979 (revision "1"))
1980 (package
1981 (name "emacs-minitest")
1982 (version (git-version "0.8.0" revision commit))
1983 (source (origin
1984 (method git-fetch)
1985 (uri (git-reference
1986 (url "https://github.com/arthurnn/minitest-emacs")
1987 (commit commit)))
1988 (file-name (git-file-name name commit))
1989 (sha256
1990 (base32
1991 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1992 (build-system emacs-build-system)
1993 (arguments
1994 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1995 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1996 (propagated-inputs
1997 `(("emacs-dash" ,emacs-dash)
1998 ("emacs-f" ,emacs-f)))
1999 (home-page "https://github.com/arthurnn/minitest-emacs")
2000 (synopsis "Emacs minitest mode")
2001 (description
2002 "The minitest mode provides commands to run the tests for the current
26361de4
CB
2003file or line, as well as rerunning the previous tests, or all the tests for a
2004project.
2005
2006This package also includes relevant snippets for yasnippet.")
158943f2 2007 (license license:expat))))
26361de4 2008
1c32830b
RW
2009(define-public emacs-el-mock
2010 (package
2011 (name "emacs-el-mock")
2012 (version "1.25.1")
2013 (source
2014 (origin
2015 (method url-fetch)
2016 (uri (string-append "https://github.com/rejeep/el-mock.el/"
2017 "archive/v" version ".tar.gz"))
2018 (file-name (string-append name "-" version ".tar.gz"))
2019 (sha256
2020 (base32
2021 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
2022 (build-system emacs-build-system)
7bf837fd 2023 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
2024 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2025 (description
2026 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2027syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2028Expectations, but it can be used in other contexts.")
2029 (license license:gpl3+)))
2030
0c5d837c
RW
2031(define-public emacs-espuds
2032 (package
2033 (name "emacs-espuds")
2034 (version "0.3.3")
2035 (source
2036 (origin
2037 (method url-fetch)
2038 (uri (string-append "https://github.com/ecukes/espuds/"
2039 "archive/v" version ".tar.gz"))
2040 (file-name (string-append name "-" version ".tar.gz"))
2041 (sha256
2042 (base32
2043 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2044 (build-system emacs-build-system)
2045 (propagated-inputs
2046 `(("emacs-s" ,emacs-s)
2047 ("emacs-dash" ,emacs-dash)
2048 ("emacs-f" ,emacs-f)))
7bf837fd 2049 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
2050 (synopsis "Common step definitions for Ecukes")
2051 (description "Espuds is a collection of the most commonly used step
2052definitions for testing with the Ecukes framework.")
2053 (license license:gpl3+)))
2054
bae8e59e
MC
2055(define-public emacs-spark
2056 (let ((version "20160503") ; no proper tag, use date of commit
2057 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2058 (revision "1"))
2059 (package
2060 (name "emacs-spark")
2061 (version (git-version version revision commit))
2062 (source
2063 (origin
2064 (method git-fetch)
2065 (uri (git-reference
2066 (url "https://github.com/alvinfrancis/spark.git")
2067 (commit commit)))
2068 (file-name (git-file-name name version))
2069 (sha256
2070 (base32
2071 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2072 (build-system emacs-build-system)
2073 (home-page "https://github.com/alvinfrancis/spark")
2074 (synopsis "Sparkline generation library for Emacs Lisp")
2075 (description "@code{emacs-spark} is a sparkline generation library for
2076Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2077port of @code{cl-spark} to Emacs Lisp.")
2078 (license license:expat))))
2079
8bebe734
CB
2080(define-public emacs-es-mode
2081 (package
2082 (name "emacs-es-mode")
c4373a60 2083 (version "4.3.0")
8bebe734
CB
2084 (source (origin
2085 (method url-fetch)
2086 (uri (string-append
2087 "https://github.com/dakrone/es-mode/archive/"
2088 version ".tar.gz"))
2089 (file-name (string-append name "-" version ".tar.gz"))
2090 (sha256
2091 (base32
c4373a60 2092 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
8bebe734
CB
2093 (build-system emacs-build-system)
2094 (propagated-inputs
2095 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2096 ;; to be rendered incorrectly
a262ac68
MC
2097 `(("emacs-dash" ,emacs-dash)
2098 ("emacs-org" ,emacs-org)
2099 ("emacs-spark" ,emacs-spark)))
8bebe734
CB
2100 (home-page "https://github.com/dakrone/es-mode")
2101 (synopsis "Major mode for editing Elasticsearch queries")
2102 (description "@code{es-mode} includes highlighting, completion and
2103indentation support for Elasticsearch queries. Also supported are
2104@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2105be processed through @code{jq}, or in the case of aggregations, can be
2106rendered in to a table. In addition, there is an @code{es-command-center}
2107mode, which displays information about Elasticsearch clusters.")
2108 (license license:gpl3+)))
2109
d0e43782
RW
2110(define-public emacs-expand-region
2111 (package
2112 (name "emacs-expand-region")
61c71171 2113 (version "0.11.0")
d0e43782
RW
2114 (source
2115 (origin
2116 (method url-fetch)
2117 (uri (string-append "https://github.com/magnars/expand-region.el"
2118 "/archive/" version ".tar.gz"))
2119 (file-name (string-append name "-" version ".tar.gz"))
2120 (sha256
2121 (base32
61c71171 2122 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
2123 (build-system emacs-build-system)
2124 (home-page "https://github.com/magnars/expand-region.el")
2125 (synopsis "Increase selected region by semantic units")
2126 (description
2127 "Expand region increases the selected region by semantic units. Just
2128keep pressing the key until it selects what you want. There's also
2129@code{er/contract-region} if you expand too far.")
2130 (license license:gpl3+)))
2131
65568446
RW
2132(define-public emacs-fill-column-indicator
2133 (package
2134 (name "emacs-fill-column-indicator")
2135 (version "1.81")
2136 (source
2137 (origin
2138 (method url-fetch)
2139 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2140 "/archive/v" version ".tar.gz"))
2141 (file-name (string-append name "-" version ".tar.gz"))
2142 (sha256
2143 (base32
2144 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2145 (build-system emacs-build-system)
2146 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2147 (synopsis "Graphically indicate the fill column")
2148 (description
2149 "Fill-column-indicator graphically indicates the location of the fill
2150column by drawing a thin line down the length of the editing window.")
2151 (license license:gpl3+)))
2152
fbc60db8
MC
2153(define-public emacs-grep-a-lot
2154 (package
2155 (name "emacs-grep-a-lot")
2156 (version "1.0.7")
2157 (source (origin
2158 (method git-fetch)
2159 (uri (git-reference
2160 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2161 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2162 (file-name (string-append name "-" version "-checkout"))
2163 (sha256
2164 (base32
2165 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2166 (build-system emacs-build-system)
2167 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2168 (synopsis "Enables multiple grep buffers in Emacs")
2169 (description
2170 "This Emacs package allows managing multiple grep buffers.")
2171 (license license:gpl3+)))
2172
f450d3c5
CB
2173(define-public emacs-inf-ruby
2174 (package
2175 (name "emacs-inf-ruby")
2176 (version "2.5.1")
2177 (source
2178 (origin
2179 (method url-fetch)
2180 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2181 "archive/" version ".tar.gz"))
2182 (file-name (string-append name "-" version ".tar.gz"))
2183 (sha256
2184 (base32
2185 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2186 (build-system emacs-build-system)
2187 (home-page "https://github.com/nonsequitur/inf-ruby")
2188 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2189 (description
2190 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2191for easy interaction with a ruby subprocess. Features include support for
2192detecting specific uses of Ruby, e.g. when using rails, and using a
2193appropriate console.")
2194 (license license:gpl3+)))
2195
7b9769b0
RW
2196(define-public emacs-znc
2197 (package
2198 (name "emacs-znc")
2199 (version "0.0.2")
2200 (source
2201 (origin
2202 (method url-fetch)
2203 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2204 version ".el"))
2205 (sha256
2206 (base32
2207 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2208 (build-system emacs-build-system)
2209 (home-page "https://github.com/sshirokov/ZNC.el")
2210 (synopsis "Make ERC and ZNC get along better")
2211 (description
2212 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2213IRC bouncer with ERC.")
2214 (license license:expat)))
2215
1f9a7097
RW
2216(define-public emacs-shut-up
2217 (package
2218 (name "emacs-shut-up")
2219 (version "0.3.2")
2220 (source
2221 (origin
2222 (method url-fetch)
2223 (uri (string-append "https://github.com/cask/shut-up/"
2224 "archive/v" version ".tar.gz"))
2225 (file-name (string-append name "-" version ".tar.gz"))
2226 (sha256
2227 (base32
2228 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2229 (build-system emacs-build-system)
2230 (home-page "https://github.com/cask/shut-up")
2231 (synopsis "Silence Emacs")
2232 (description "This package silences most output of Emacs when running an
2233Emacs shell script.")
2234 (license license:expat)))
2235
dbe38a3a
RW
2236(define-public emacs-undercover
2237 (package
2238 (name "emacs-undercover")
2239 (version "0.6.0")
2240 (source
2241 (origin
2242 (method url-fetch)
2243 (uri (string-append "https://github.com/sviridov/undercover.el/"
2244 "archive/v" version ".tar.gz"))
2245 (file-name (string-append name "-" version ".tar.gz"))
2246 (sha256
2247 (base32
2248 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2249 (build-system emacs-build-system)
2250 (propagated-inputs
2251 `(("emacs-dash" ,emacs-dash)
2252 ("emacs-shut-up" ,emacs-shut-up)))
2253 (home-page "https://github.com/sviridov/undercover.el")
2254 (synopsis "Test coverage library for Emacs Lisp")
2255 (description
2256 "Undercover is a test coverage library for software written in Emacs
2257Lisp.")
2258 (license license:expat)))
2259
07046e5f
RW
2260(define-public emacs-paren-face
2261 (package
2262 (name "emacs-paren-face")
2263 (version "1.0.0")
2264 (source
2265 (origin
2266 (method url-fetch)
2267 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2268 version ".tar.gz"))
2269 (file-name (string-append name "-" version ".tar.gz"))
2270 (sha256
2271 (base32
2272 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2273 (build-system emacs-build-system)
7bf837fd 2274 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
2275 (synopsis "Face for parentheses in lisp modes")
2276 (description
2277 "This library defines a face named @code{parenthesis} used just for
2278parentheses. The intended purpose of this face is to make parentheses less
2279visible in Lisp code by dimming them. Lispers probably don't need to be
2280constantly made aware of the existence of the parentheses. Dimming them might
2281be even more useful for people new to lisp who have not yet learned to
2282subconsciously blend out the parentheses.")
2283 (license license:gpl3+)))
2284
a46e3c0d
RW
2285(define-public emacs-page-break-lines
2286 (package
2287 (name "emacs-page-break-lines")
2288 (version "0.11")
2289 (source
2290 (origin
2291 (method url-fetch)
2292 (uri (string-append "https://github.com/purcell/page-break-lines/"
2293 "archive/" version ".tar.gz"))
2294 (file-name (string-append name "-" version ".tar.gz"))
2295 (sha256
2296 (base32
2297 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2298 (build-system emacs-build-system)
2299 (home-page "https://github.com/purcell/page-break-lines")
2300 (synopsis "Display page breaks as tidy horizontal lines")
2301 (description
2302 "This library provides a global mode which displays form feed characters
2303as horizontal rules.")
2304 (license license:gpl3+)))
2305
1f8a951b
RW
2306(define-public emacs-simple-httpd
2307 (package
2308 (name "emacs-simple-httpd")
2309 (version "1.4.6")
2310 (source
2311 (origin
2312 (method url-fetch)
2313 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2314 "archive/" version ".tar.gz"))
2315 (file-name (string-append name "-" version ".tar.gz"))
2316 (sha256
2317 (base32
2318 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2319 (build-system emacs-build-system)
2320 (home-page "https://github.com/skeeto/emacs-http-server")
2321 (synopsis "HTTP server in pure Emacs Lisp")
2322 (description
2323 "This package provides a simple HTTP server written in Emacs Lisp to
2324serve files and directory listings.")
2325 (license license:unlicense)))
2326
6c04acaa
RW
2327(define-public emacs-skewer-mode
2328 (package
2329 (name "emacs-skewer-mode")
2330 (version "1.6.2")
2331 (source
2332 (origin
2333 (method url-fetch)
2334 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2335 version ".tar.gz"))
2336 (file-name (string-append name "-" version ".tar.gz"))
2337 (sha256
2338 (base32
2339 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2340 (build-system emacs-build-system)
2341 (propagated-inputs
2342 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2343 ("emacs-js2-mode" ,emacs-js2-mode)))
46f5ae0b 2344 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6c04acaa
RW
2345 (home-page "https://github.com/skeeto/skewer-mode")
2346 (synopsis "Live web development in Emacs")
2347 (description
2348 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2349a web browser. Expressions are sent on-the-fly from an editing buffer to be
2350evaluated in the browser, just like Emacs does with an inferior Lisp process
2351in Lisp modes.")
2352 (license license:unlicense)))
2353
cdba3a84
MC
2354(define-public emacs-string-inflection
2355 (package
2356 (name "emacs-string-inflection")
2357 (version "1.0.6")
2358 (source (origin
2359 (method git-fetch)
2360 (uri (git-reference
2361 (url "https://github.com/akicho8/string-inflection")
2362 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2363 (file-name (string-append name "-" version "-checkout"))
2364 (sha256
2365 (base32
2366 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2367 (build-system emacs-build-system)
2368 (native-inputs
2369 `(("ert-runner" ,ert-runner)))
2370 (arguments
d1d41db6
MC
2371 `(#:tests? #t
2372 #:test-command '("ert-runner")))
cdba3a84
MC
2373 (home-page "https://github.com/akicho8/string-inflection")
2374 (synopsis "Convert symbol names between different naming conventions")
2375 (description
2376 "This Emacs package provides convenient methods for manipulating the
2377naming style of a symbol. It supports different naming conventions such as:
2378
2379@enumerate
2380@item camel case
2381@item Pascal case
2382@item all upper case
2383@item lower case separated by underscore
2384@item etc...
2385@end enumerate\n")
2386 (license license:gpl2+)))
2387
ce9701fb
RW
2388(define-public emacs-stripe-buffer
2389 (package
2390 (name "emacs-stripe-buffer")
2391 (version "0.2.5")
2392 (source
2393 (origin
2394 (method url-fetch)
2395 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2396 "archive/" version ".tar.gz"))
2397 (file-name (string-append name "-" version ".tar.gz"))
2398 (sha256
2399 (base32
2400 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2401 (build-system emacs-build-system)
2402 (home-page "https://github.com/sabof/stripe-buffer/")
2403 (synopsis "Add stripes to list buffers")
2404 (description
2405 "This Emacs package adds faces to add stripes to list buffers and org
2406tables.")
2407 (license license:gpl2+)))
2408
8d810163
RW
2409(define-public emacs-rich-minority
2410 (package
2411 (name "emacs-rich-minority")
2412 (version "1.0.1")
2413 (source
2414 (origin
2415 (method url-fetch)
2416 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2417 "archive/" version ".tar.gz"))
2418 (file-name (string-append name "-" version ".tar.gz"))
2419 (sha256
2420 (base32
2421 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2422 (build-system emacs-build-system)
2423 (home-page "https://github.com/Malabarba/rich-minority")
2424 (synopsis "Clean-up and beautify the list of minor modes")
2425 (description
2426 "This Emacs package hides and/or highlights minor modes in the
2427mode-line.")
2428 (license license:gpl2+)))
2429
8733fc91
CB
2430(define-public emacs-robe
2431 (package
2432 (name "emacs-robe")
2433 (version "0.8.1")
2434 (source
2435 (origin
2436 (method url-fetch)
2437 (uri (string-append "https://github.com/dgutov/robe/"
2438 "archive/" version ".tar.gz"))
2439 (file-name (string-append name "-" version ".tar.gz"))
2440 (sha256
2441 (base32
2442 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2443 (build-system emacs-build-system)
376015c3
CB
2444 (arguments
2445 '(#:include (cons "^lib\\/" %default-include)))
8733fc91
CB
2446 (propagated-inputs
2447 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2448 (home-page "https://github.com/dgutov/robe")
2449 (synopsis "Ruby code assistance tool for Emacs")
2450 (description
2451 "Robe can provide information on loaded classes and modules in Ruby code,
2452as well as where methods are defined. This allows the user to jump to method
2453definitions, modules and classes, display method documentation and provide
2454method and constant name completion.")
2455 (license license:gpl3+)))
2456
81808194
CB
2457(define-public emacs-rspec
2458 (package
2459 (name "emacs-rspec")
2460 (version "1.11")
2461 (source
2462 (origin
2463 (method url-fetch)
2464 (uri (string-append "https://github.com/pezra/rspec-mode/"
2465 "archive/v" version ".tar.gz"))
2466 (file-name (string-append name "-" version ".tar.gz"))
2467 (sha256
2468 (base32
2469 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2470 (build-system emacs-build-system)
2471 (home-page "https://github.com/pezra/rspec-mode")
2472 (synopsis "Provides a rspec mode for working with RSpec")
2473 (description
2474 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2475verify the spec associated with the current buffer, or entire project, as well
2476as moving between the spec files, and coresponding code files.
2477
2478Also included are keybindings for spec files and Dired buffers, as well as
2479snippets for yasnippet.")
2480 (license license:gpl3+)))
2481
b33f913d
RW
2482(define-public emacs-smart-mode-line
2483 (package
2484 (name "emacs-smart-mode-line")
2485 (version "2.10.1")
2486 (source
2487 (origin
2488 (method url-fetch)
2489 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2490 "archive/" version ".tar.gz"))
2491 (file-name (string-append name "-" version ".tar.gz"))
2492 (sha256
2493 (base32
2494 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2495 (build-system emacs-build-system)
2496 (propagated-inputs
2497 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 2498 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2499 (synopsis "Color-coded smart mode-line")
b33f913d
RW
2500 (description
2501 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2502read from small to large monitors by using colors, a prefix feature, and smart
2503truncation.")
2504 (license license:gpl2+)))
2505
69b498a1 2506(define-public emacs-sr-speedbar
33ca12f3
MC
2507 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2508 (revision "0"))
2509 (package
2510 (name "emacs-sr-speedbar")
2511 (version (git-version "20161025" revision commit))
2512 (source
2513 (origin
2514 (method git-fetch)
2515 (uri (git-reference
2516 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2517 (commit commit)))
2518 (file-name (git-file-name name version))
2519 (sha256
2520 (base32
2521 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2522 (build-system emacs-build-system)
2523 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2524 (synopsis "Same frame Emacs @code{speedbar}")
2525 (description
2526 "This Emacs package allows you to show @code{M-x speedbar} in the
69b498a1
OP
2527same frame (in an extra window). You can customize the initial width of
2528the speedbar window.")
33ca12f3 2529 (license license:gpl3+))))
69b498a1 2530
3bcb304e
RW
2531(define-public emacs-shell-switcher
2532 (package
2533 (name "emacs-shell-switcher")
2534 (version "1.0.1")
2535 (source
2536 (origin
2537 (method url-fetch)
2538 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2539 "/archive/v" version ".tar.gz"))
2540 (file-name (string-append name "-" version ".tar.gz"))
2541 (sha256
2542 (base32
2543 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2544 (build-system emacs-build-system)
2545 (home-page "https://github.com/DamienCassou/shell-switcher")
2546 (synopsis "Provide fast switching between shell buffers")
2547 (description
2548 "This package provides commands to quickly switch between shell buffers.")
2549 (license license:gpl3+)))
2550
48dbeef7
FB
2551(define-public emacs-ob-ipython
2552 (package
2553 (name "emacs-ob-ipython")
2554 (version "20150704.8807064693")
2555 (source (origin
2556 (method git-fetch)
2557 (uri (git-reference
698bd297 2558 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7 2559 (url "https://github.com/gregsexton/ob-ipython.git")))
eb6b471b 2560 (file-name (string-append name "-" version "-checkout"))
48dbeef7
FB
2561 (sha256
2562 (base32
2563 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2564 (build-system emacs-build-system)
2565 (propagated-inputs
2566 `(("emacs-f" ,emacs-f)))
2567 (home-page "http://www.gregsexton.org")
2568 (synopsis "Org-Babel functions for IPython evaluation")
2569 (description "This package adds support to Org-Babel for evaluating Python
2570source code using IPython.")
2571 (license license:gpl3+)))
6fd66b6c
LC
2572
2573(define-public emacs-debbugs
2574 (package
2575 (name "emacs-debbugs")
8180a406 2576 (version "0.15")
6fd66b6c
LC
2577 (source (origin
2578 (method url-fetch)
f32ffa04 2579 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2580 version ".tar"))
2581 (sha256
2582 (base32
8180a406 2583 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
6fd66b6c 2584 (build-system emacs-build-system)
91762db6 2585 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2586 (propagated-inputs
2587 `(("emacs-async" ,emacs-async)))
f32ffa04 2588 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2589 (synopsis "Access the Debbugs bug tracker in Emacs")
2590 (description
2591 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2592Tracker} from within Emacs.
2593
2594For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2595and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2596prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2597@code{M-x debbugs-org} and related commands.
2598
2599A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2600Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2601 (license license:gpl3+)))
3ffe36f5 2602
1fcd7e6c
MC
2603(define-public emacs-ert-expectations
2604 (package
2605 (name "emacs-ert-expectations")
2606 (version "0.2")
2607 (source
2608 (origin
2609 (method url-fetch)
2610 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2611 (sha256
2612 (base32
2613 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2614 (build-system emacs-build-system)
2615 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2616 (synopsis "Simple unit test framework for Emacs Lisp")
2617 (description "@code{emacs-ert-expectations} is a simple unit test
2618framework for Emacs Lisp to be used with @code{ert}.")
2619 (license license:gpl3+)))
2620
3ffe36f5
LC
2621(define-public emacs-deferred
2622 (package
2623 (name "emacs-deferred")
4dd0f8c0 2624 (version "0.5.1")
3ffe36f5
LC
2625 (home-page "https://github.com/kiwanami/emacs-deferred")
2626 (source (origin
2627 (method git-fetch)
2628 (uri (git-reference
2629 (url home-page)
2630 (commit (string-append "v" version))))
2631 (sha256
2632 (base32
4dd0f8c0 2633 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
3ffe36f5
LC
2634 (file-name (string-append name "-" version))))
2635 (build-system emacs-build-system)
652741cf
MC
2636 (arguments
2637 `(#:phases
2638 (modify-phases %standard-phases
90ec79fb
AI
2639 (add-after 'unpack 'set-shell
2640 ;; Setting the SHELL environment variable is required for the tests
2641 ;; to find sh.
2642 (lambda _
2643 (setenv "SHELL" (which "sh"))
2644 #t))
652741cf
MC
2645 (add-before 'check 'fix-makefile
2646 (lambda _
2647 (substitute* "Makefile"
2648 (("\\$\\(CASK\\) exec ") ""))
2649 #t)))
2650 #:tests? #t
90ec79fb 2651 #:test-command '("make" "test")))
652741cf
MC
2652 (native-inputs
2653 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2654 ("emacs-undercover" ,emacs-undercover)
2655 ("ert-runner" ,ert-runner)))
3ffe36f5
LC
2656 (synopsis "Simple asynchronous functions for Emacs Lisp")
2657 (description
2658 "The @code{deferred.el} library provides support for asynchronous tasks.
2659The API is almost the same as that of
2660@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2661for asynchronous tasks.")
2662 (license license:gpl3+)))
d001bb5a
LC
2663
2664(define-public butler
2665 (package
2666 (name "emacs-butler")
2667 (version "0.2.4")
2668 (home-page "https://github.com/AshtonKem/Butler")
2669 (source (origin
2670 (method git-fetch)
2671 (uri (git-reference
2672 (url home-page)
2673 (commit version)))
2674 (sha256
2675 (base32
2676 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2677 (file-name (string-append name "-" version))))
2678 (build-system emacs-build-system)
2679 (propagated-inputs
2680 `(("emacs-deferred" ,emacs-deferred)))
2681 (synopsis "Emacs client for Jenkins")
2682 (description
2683 "Butler provides an interface to connect to Jenkins continuous
2684integration servers. Users can specify a list of server in the
2685@code{butler-server-list} variable and then use @code{M-x butler-status} to
2686view the build status of those servers' build jobs, and possibly to trigger
2687build jobs.")
2688 (license license:gpl3+)))
2d1db448 2689
d1dbeddd
RW
2690(define-public emacs-company
2691 (package
2692 (name "emacs-company")
a623c7e7 2693 (version "0.9.6")
d1dbeddd
RW
2694 (source
2695 (origin
2696 (method url-fetch)
2697 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2698 version ".tar.gz"))
2699 (file-name (string-append name "-" version ".tar.gz"))
2700 (sha256
2701 (base32
a623c7e7 2702 "0a7zvmfvxh9w67myvcj2511ayk0fvkm06cdg38y8khnsx63jrr4k"))))
d1dbeddd 2703 (build-system emacs-build-system)
4e644ab8
AI
2704 (arguments
2705 `(#:phases
2706 (modify-phases %standard-phases
d1d41db6 2707 (add-before 'check 'fix-bin-dir
4e644ab8
AI
2708 (lambda _
2709 ;; The company-files-candidates-normal-root test looks
2710 ;; for the /bin directory, but the build environment has
2711 ;; no /bin directory. Modify the test to look for the
2712 ;; /tmp directory.
2713 (substitute* "test/files-tests.el"
2714 (("/bin/") "/tmp/"))
d1d41db6
MC
2715 #t)))
2716 #:tests? #t
2717 #:test-command '("make" "test-batch")))
d1dbeddd
RW
2718 (home-page "http://company-mode.github.io/")
2719 (synopsis "Modular text completion framework")
2720 (description
2721 "Company is a modular completion mechanism. Modules for retrieving
2722completion candidates are called back-ends, modules for displaying them are
2723front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2724These are distributed in separate files and can be used individually.")
2725 (license license:gpl3+)))
2726
016590a9
OP
2727(define-public emacs-company-quickhelp
2728 (package
2729 (name "emacs-company-quickhelp")
2730 (version "2.3.0")
2731 (source
2732 (origin
2733 (method url-fetch)
2734 (uri (string-append
2735 "https://github.com/expez/company-quickhelp/archive/"
2736 version ".tar.gz"))
2737 (file-name (string-append name "-" version ".tar.gz"))
2738 (sha256
2739 (base32
2740 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2741 (build-system emacs-build-system)
2742 (propagated-inputs
2743 `(("emacs-pos-tip" ,emacs-pos-tip)
2744 ("emacs-company" ,emacs-company)))
2745 (home-page "https://github.com/expez/company-quickhelp")
2746 (synopsis "Popup documentation for completion candidates")
2747 (description "@code{company-quickhelp} shows documentation for the
2748completion candidate when using the Company text completion framework.")
2749 (license license:gpl3+)))
2750
7c438099
RW
2751(define-public emacs-multiple-cursors
2752 (package
2753 (name "emacs-multiple-cursors")
2754 (version "1.4.0")
2755 (source
2756 (origin
2757 (method url-fetch)
2758 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2759 "archive/" version ".tar.gz"))
2760 (file-name (string-append name "-" version ".tar.gz"))
2761 (sha256
2762 (base32
2763 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2764 (build-system emacs-build-system)
2765 (home-page "https://github.com/magnars/multiple-cursors.el")
2766 (synopsis "Multiple cursors for Emacs")
2767 (description
2768 "This package adds support to Emacs for editing text with multiple
2769simultaneous cursors.")
2770 (license license:gpl3+)))
2771
2d1db448
LC
2772(define-public typo
2773 (package
2774 (name "emacs-typo")
2775 (version "1.1")
2776 (home-page "https://github.com/jorgenschaefer/typoel")
2777 (source (origin
2778 (method git-fetch)
2779 (uri (git-reference
2780 (url home-page)
2781 (commit (string-append "v" version))))
2782 (sha256
2783 (base32
2784 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2785 (file-name (string-append name "-" version))))
2786 (build-system emacs-build-system)
2787 (synopsis "Minor mode for typographic editing")
2788 (description
2789 "This package provides two Emacs modes, @code{typo-mode} and
2790@code{typo-global-mode}. These modes automatically insert Unicode characters
2791for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2792automatically inserts a Unicode opening or closing quotation mark, depending
2793on context.")
2794 (license license:gpl3+)))
e037a09f
FB
2795
2796(define-public emacs-scheme-complete
2797 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2798 (package
2799 (name "emacs-scheme-complete")
2800 (version (string-append "20151223." (string-take commit 8)))
2801 (source
2802 (origin
2803 (file-name (string-append name "-" version))
2804 (method git-fetch)
2805 (uri (git-reference
2806 (url "https://github.com/ashinn/scheme-complete.git")
2807 (commit commit)))
2808 (sha256
2809 (base32
2810 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2811 (patches
fc1adab1 2812 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2813 (build-system emacs-build-system)
2814 (home-page "https://github.com/ashinn/scheme-complete")
2815 (synopsis "Smart tab completion for Scheme in Emacs")
2816 (description
2817 "This file provides a single function, @code{scheme-smart-complete},
2818which you can use for intelligent, context-sensitive completion for any Scheme
2819implementation in Emacs. To use it just load this file and bind that function
2820to a key in your preferred mode.")
2821 (license license:public-domain))))
58a7dc13 2822
75408149
MC
2823(define-public emacs-scel
2824 (let ((version "20170629")
2825 (revision "1")
2826 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2827 (package
2828 (name "emacs-scel")
2829 (version (git-version version revision commit))
2830 (source
2831 (origin
2832 (method git-fetch)
2833 (uri (git-reference
2834 (url "https://github.com/supercollider/scel.git")
2835 (commit commit)))
2836 (file-name (string-append name "-" version "-checkout"))
2837 (sha256
2838 (base32
2839 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2840 (build-system emacs-build-system)
2841 (arguments
2842 `(#:modules ((guix build emacs-build-system)
2843 ((guix build cmake-build-system) #:prefix cmake:)
2844 (guix build utils))
2845 #:imported-modules (,@%emacs-build-system-modules
2846 (guix build cmake-build-system))
2847 #:phases
2848 (modify-phases %standard-phases
2849 (add-after 'unpack 'configure
2850 (lambda* (#:key outputs #:allow-other-keys)
2851 (substitute* "el/CMakeLists.txt"
2852 (("share/emacs/site-lisp/SuperCollider")
2853 (string-append
2854 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2855 ((assoc-ref cmake:%standard-phases 'configure)
2856 #:outputs outputs
2857 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2858 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2859 (lambda _
2860 (setenv "EMACSLOADPATH"
2861 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2862 #t))
2863 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2864 (inputs
2865 `(("supercollider" ,supercollider)))
2866 (native-inputs
2867 `(("cmake" ,cmake)))
2868 (home-page "https://github.com/supercollider/scel")
2869 (synopsis "SuperCollider Emacs interface")
2870 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2871SuperCollider is a platform for audio synthesis and algorithmic composition.")
2872 (license license:gpl2+))))
2873
58a7dc13
FB
2874(define-public emacs-mit-scheme-doc
2875 (package
2876 (name "emacs-mit-scheme-doc")
2877 (version "20140203")
2878 (source
2879 (origin
2880 (modules '((guix build utils)))
2881 (snippet
2882 ;; keep only file of interest
2883 '(begin
2884 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2885 (install-file "6.945-config/mit-scheme-doc.el" ".")
6cbee49d
MW
2886 (delete-file-recursively "6.945-config")
2887 #t))
58a7dc13
FB
2888 (file-name (string-append name "-" version ".tar.bz2"))
2889 (method url-fetch)
2890 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2891 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2892 (sha256
2893 (base32
2894 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2895 (build-system emacs-build-system)
2896 (inputs `(("mit-scheme" ,mit-scheme)))
2897 (arguments
2898 `(#:phases
2899 (modify-phases %standard-phases
2900 (add-after 'unpack 'configure-doc
2901 (lambda* (#:key inputs #:allow-other-keys)
2902 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2903 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2904 "mit-scheme-"
2905 ,(package-version mit-scheme))))
2906 (substitute* "mit-scheme-doc.el"
2907 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2908 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2909 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2910 (synopsis "MIT-Scheme documentation lookup for Emacs")
2911 (description
2912 "This package provides a set of Emacs functions to search definitions of
2913identifiers in the MIT-Scheme documentation.")
2914 (license license:gpl2+)))
e5045f30 2915
e5045f30
FB
2916(define-public emacs-constants
2917 (package
2918 (name "emacs-constants")
f99f3f24 2919 (version "2.6")
a9e41d2f 2920 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2921 (source
2922 (origin
37dbfc50 2923 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2924 (method url-fetch)
2925 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2926 "/archive/v" version ".tar.gz"))
e5045f30
FB
2927 (sha256
2928 (base32
f99f3f24 2929 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2930 (build-system emacs-build-system)
e5045f30
FB
2931 (synopsis "Enter definition of constants into an Emacs buffer")
2932 (description
2933 "This package provides functions for inserting the definition of natural
2934constants and units into an Emacs buffer.")
2935 (license license:gpl2+)))
85960693 2936
e203221f
RW
2937(define-public emacs-tagedit
2938 (package
2939 (name "emacs-tagedit")
2940 (version "1.4.0")
2941 (source
2942 (origin
2943 (method url-fetch)
2944 (uri (string-append "https://github.com/magnars/tagedit/"
2945 "archive/" version ".tar.gz"))
2946 (file-name (string-append name "-" version ".tar.gz"))
2947 (sha256
2948 (base32
2949 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2950 (build-system emacs-build-system)
2951 (propagated-inputs
2952 `(("emacs-s" ,emacs-s)
2953 ("emacs-dash" ,emacs-dash)))
2954 (home-page "https://github.com/magnars/tagedit")
2955 (synopsis "Some paredit-like features for html-mode")
2956 (description
2957 "This package provides a collection of paredit-like functions for editing
2958in @code{html-mode}.")
2959 (license license:gpl3+)))
2960
85960693
FB
2961(define-public emacs-slime
2962 (package
2963 (name "emacs-slime")
d2f93e61 2964 (version "2.20")
85960693
FB
2965 (source
2966 (origin
2967 (file-name (string-append name "-" version ".tar.gz"))
2968 (method url-fetch)
2969 (uri (string-append
2970 "https://github.com/slime/slime/archive/v"
2971 version ".tar.gz"))
2972 (sha256
2973 (base32
d2f93e61 2974 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
85960693
FB
2975 (build-system emacs-build-system)
2976 (native-inputs
2977 `(("texinfo" ,texinfo)))
2978 (arguments
e8cefe11
AI
2979 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2980 #:exclude '("^slime-tests.el" "^contrib/test/"
2981 "^contrib/Makefile$" "^contrib/README.md$")
2982 #:phases
85960693
FB
2983 (modify-phases %standard-phases
2984 (add-before 'install 'configure
2985 (lambda* _
2986 (emacs-substitute-variables "slime.el"
2987 ("inferior-lisp-program" "sbcl"))
2988 #t))
2989 (add-before 'install 'install-doc
2990 (lambda* (#:key outputs #:allow-other-keys)
2991 (let* ((out (assoc-ref outputs "out"))
2992 (info-dir (string-append out "/share/info"))
2993 (doc-dir (string-append out "/share/doc/"
2994 ,name "-" ,version))
2995 (doc-files '("doc/slime-refcard.pdf"
2996 "README.md" "NEWS" "PROBLEMS"
2997 "CONTRIBUTING.md")))
2998 (with-directory-excursion "doc"
2999 (substitute* "Makefile"
3000 (("infodir=/usr/local/info")
3001 (string-append "infodir=" info-dir)))
e76d959d
TGR
3002 (invoke "make" "html/index.html")
3003 (invoke "make" "slime.info")
85960693
FB
3004 (install-file "slime.info" info-dir)
3005 (copy-recursively "html" (string-append doc-dir "/html")))
3006 (for-each (lambda (f)
3007 (install-file f doc-dir)
3008 (delete-file f))
3009 doc-files)
3010 (delete-file-recursively "doc")
3011 #t))))))
3012 (home-page "https://github.com/slime/slime")
3013 (synopsis "Superior Lisp Interaction Mode for Emacs")
3014 (description
3015 "SLIME extends Emacs with support for interactive programming in
db574f71 3016Common Lisp. The features are centered around @command{slime-mode},
3017an Emacs minor mode that complements the standard @command{lisp-mode}.
3018While lisp-mode supports editing Lisp source files, @command{slime-mode}
3019adds support for interacting with a running Common Lisp process
3020for compilation, debugging, documentation lookup, and so on.")
85960693 3021 (license license:gpl2+)))
e11d14fe 3022
3023(define-public emacs-popup
3024 (package
3025 (name "emacs-popup")
3026 (version "0.5.3")
3027 (source (origin
3028 (method url-fetch)
3029 (uri (string-append
3030 "https://github.com/auto-complete/popup-el/archive/v"
3031 version ".tar.gz"))
3032 (file-name (string-append name "-" version ".tar.gz"))
3033 (sha256
3034 (base32
3035 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3036 (build-system emacs-build-system)
e11d14fe 3037 (home-page "https://github.com/auto-complete/popup-el")
3038 (synopsis "Visual Popup User Interface for Emacs")
3039 (description
3040 "Popup.el is a visual popup user interface library for Emacs.
3041This provides a basic API and common UI widgets such as popup tooltips
3042and popup menus.")
3043 (license license:gpl3+)))
48766ea8 3044
2c5f8aad
CB
3045(define-public emacs-puppet-mode
3046 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
3047 (revision "1"))
3048 (package
3049 (name "emacs-puppet-mode")
3050 ;; The last release, 0.3 was several years ago, and there have been many
3051 ;; commits since
3052 (version (git-version "0.3" revision commit))
3053 (source
3054 (origin
3055 (method url-fetch)
3056 (uri (string-append
3057 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
3058 commit "/puppet-mode.el"))
3059 (sha256
3060 (base32
3061 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
3062 (build-system emacs-build-system)
3063 (home-page "https://github.com/voxpupuli/puppet-mode")
3064 (synopsis "Emacs major mode for the Puppet configuration language")
3065 (description
3066 "This package provides support for the Puppet configuration language,
3067including syntax highlighting, indentation of expressions and statements,
3068linting of manifests and integration with Puppet Debugger.")
3069 ;; Also incorporates work covered by the Apache License, Version 2.0
3070 (license license:gpl3+))))
3071
48766ea8
RW
3072(define-public emacs-god-mode
3073 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3074 (revision "1"))
3075 (package
3076 (name "emacs-god-mode")
3077 (version (string-append "20151005.925."
3078 revision "-" (string-take commit 9)))
3079 (source
3080 (origin
3081 (method git-fetch)
3082 (uri (git-reference
3083 (url "https://github.com/chrisdone/god-mode.git")
3084 (commit commit)))
3085 (file-name (string-append name "-" version "-checkout"))
3086 (sha256
3087 (base32
3088 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3089 (build-system emacs-build-system)
3090 (home-page "https://github.com/chrisdone/god-mode")
3091 (synopsis "Minor mode for entering commands without modifier keys")
3092 (description
3093 "This package provides a global minor mode for entering Emacs commands
3094without modifier keys. It's similar to Vim's separation of commands and
3095insertion mode. When enabled all keys are implicitly prefixed with
3096@samp{C-} (among other helpful shortcuts).")
3097 (license license:gpl3+))))
4670f70a 3098
8fc559dc 3099(define-public emacs-jinja2-mode
3100 (package
3101 (name "emacs-jinja2-mode")
3102 (version "0.2")
3103 (source
3104 (origin
3105 (method url-fetch)
3106 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3107 "archive/v" version ".tar.gz"))
3108 (file-name (string-append name "-" version ".tar.gz"))
3109 (sha256
3110 (base32
3111 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3112 (build-system emacs-build-system)
3113 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3114 (synopsis "Major mode for jinja2")
3115 (description
3116 "Emacs major mode for jinja2 with: syntax highlighting,
3117sgml/html integration, and indentation (working with sgml).")
3118 (license license:gpl3+)))
3119
4670f70a
CM
3120(define-public emacs-rfcview
3121 (package
3122 (name "emacs-rfcview")
3123 (version "0.13")
3124 (home-page "http://www.loveshack.ukfsn.org/emacs")
3125 (source (origin
02736daa 3126 (method url-fetch)
4670f70a
CM
3127 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3128 (sha256
3129 (base32
3130 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3131 (build-system emacs-build-system)
4670f70a
CM
3132 (synopsis "Prettify Request for Comments (RFC) documents")
3133 (description "The Internet Engineering Task Force (IETF) and the Internet
3134Society (ISOC) publish various Internet-related protocols and specifications
3135as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3136documents. RFCs and STDs are published in a simple text form. This package
3137provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3138read these documents in Emacs. It prettifies the text and adds
3139hyperlinks/menus for easier navigation. It also provides functions for
3140browsing the index of RFC documents and fetching them from remote servers or
3141local directories.")
3142 (license license:gpl3+)))
3143
9e9c71eb
CM
3144(define-public emacs-ffap-rfc-space
3145 (package
3146 (name "emacs-ffap-rfc-space")
3147 (version "12")
3148 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3149 (source (origin
02736daa 3150 (method url-fetch)
9e9c71eb
CM
3151 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3152 (sha256
3153 (base32
3154 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3155 (build-system emacs-build-system)
9e9c71eb
CM
3156 (synopsis "Make ffap recognize an RFC with a space before its number")
3157 (description "The Internet Engineering Task Force (IETF) and the
3158Internet Society (ISOC) publish various Internet-related protocols and
3159specifications as \"Request for Comments\" (RFC) documents. The
3160built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3161recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3162and load the appropriate RFC from a remote server. However, it fails
3163to recognize a name like \"RFC 1234\". This package enhances ffap so
3164that it correctly finds RFCs even when a space appears before the
3165number.")
3166 (license license:gpl3+)))
9576cc72 3167
db1a4960
RW
3168(define-public emacs-org-bullets
3169 (package
3170 (name "emacs-org-bullets")
3171 (version "0.2.4")
3172 (source
3173 (origin
3174 (method url-fetch)
3175 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3176 version ".tar.gz"))
3177 (file-name (string-append name "-" version ".tar.gz"))
3178 (sha256
3179 (base32
3180 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3181 (build-system emacs-build-system)
3182 (home-page "https://github.com/sabof/org-bullets")
3183 (synopsis "Show bullets in org-mode as UTF-8 characters")
3184 (description
3185 "This package provides an Emacs minor mode causing bullets in
3186@code{org-mode} to be rendered as UTF-8 characters.")
3187 (license license:gpl3+)))
b1679379
OP
3188
3189(define-public emacs-org-pomodoro
3190 (package
3191 (name "emacs-org-pomodoro")
3192 (version "2.1.0")
3193 (source
3194 (origin
3195 (method url-fetch)
3196 (uri (string-append
3197 "https://github.com/lolownia/org-pomodoro/archive/"
3198 version ".tar.gz"))
3199 (file-name (string-append name "-" version ".tar.gz"))
3200 (sha256
3201 (base32
3202 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3203 (build-system emacs-build-system)
3204 (propagated-inputs
3205 `(("emacs-alert" ,emacs-alert)))
3206 (home-page "https://github.com/lolownia/org-pomodoro")
3207 (synopsis "Pomodoro technique for org-mode")
3208 (description "@code{emacs-org-pomodoro} adds very basic support for
3209Pomodoro technique in Emacs org-mode.
3210
3211Run @code{M-x org-pomodoro} for the task at point or select one of the
3212last tasks that you clocked time for. Each clocked-in pomodoro starts
3213a timer of 25 minutes and after each pomodoro a break timer of 5
3214minutes is started automatically. Every 4 breaks a long break is
3215started with 20 minutes. All values are customizable.")
3216 (license license:gpl3+)))
db1a4960 3217
ed8bc028
RJ
3218(define-public emacs-org-trello
3219 (package
3220 (name "emacs-org-trello")
bf86533b 3221 (version "0.8.0")
ed8bc028
RJ
3222 (source (origin
3223 (method url-fetch)
3224 (uri (string-append
3225 "https://github.com/org-trello/org-trello/archive/"
3226 version ".tar.gz"))
3227 (file-name (string-append name "-" version ".tar.gz"))
3228 (sha256
3229 (base32
bf86533b 3230 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
ed8bc028
RJ
3231 (build-system emacs-build-system)
3232 (propagated-inputs
8865d476
MC
3233 `(("emacs-dash" ,emacs-dash)
3234 ("emacs-deferred" ,emacs-deferred)
3235 ("emacs-f" ,emacs-f)
3236 ("emacs-helm" ,emacs-helm)
ed8bc028 3237 ("emacs-request" ,emacs-request)
ed8bc028
RJ
3238 ("emacs-s" ,emacs-s)))
3239 (home-page "https://org-trello.github.io")
3240 (synopsis "Emacs minor mode for interacting with Trello")
3241 (description "This package provides an Emacs minor mode to extend
3242@code{org-mode} with Trello abilities. Trello is an online project
3243organizer.")
3244 (license license:gpl3+)))
3245
b5f746d2
PM
3246(define-public emacs-atom-one-dark-theme
3247 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
3248 (revision "0"))
3249 (package
3250 (name "emacs-atom-one-dark-theme")
3251 (version (git-version "0.4.0" revision commit))
3252 (source (origin
3253 (method git-fetch)
3254 (uri (git-reference
3255 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
3256 (commit commit)))
3257 (sha256
3258 (base32
3259 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
3260 (file-name (git-file-name name version))))
3261 (build-system emacs-build-system)
3262 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
3263 (synopsis "Atom One Dark color theme for Emacs")
3264 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
3265 (license license:gpl3+))))
3266
9576cc72
AP
3267(define-public emacs-zenburn-theme
3268 (package
3269 (name "emacs-zenburn-theme")
07716c68 3270 (version "2.5")
9576cc72
AP
3271 (source (origin
3272 (method url-fetch)
3273 (uri (string-append
3274 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3275 version ".tar.gz"))
3276 (file-name (string-append name "-" version ".tar.gz"))
3277 (sha256
3278 (base32
07716c68 3279 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 3280 (build-system emacs-build-system)
7bf837fd 3281 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
3282 (synopsis "Low contrast color theme for Emacs")
3283 (description
3284 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3285It is built on top of the custom theme support in Emacs 24 or later.")
3286 (license license:gpl3+)))
3287
012c8b35
RW
3288(define-public emacs-solarized-theme
3289 (package
3290 (name "emacs-solarized-theme")
3291 (version "1.2.2")
3292 (source (origin
3293 (method url-fetch)
3294 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3295 "archive/v" version ".tar.gz"))
3296 (file-name (string-append name "-" version ".tar.gz"))
3297 (sha256
3298 (base32
3299 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3300 (build-system emacs-build-system)
3301 (propagated-inputs
090bdb9e 3302 `(("emacs-dash" ,emacs-dash)))
7bf837fd 3303 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
3304 (synopsis "Port of the Solarized theme for Emacs")
3305 (description
3306 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3307package provides a light and a dark variant.")
3308 (license license:gpl3+)))
3309
e7761186
AV
3310(define-public emacs-ahungry-theme
3311 (package
3312 (name "emacs-ahungry-theme")
e5f95406 3313 (version "1.10.0")
e7761186
AV
3314 (source
3315 (origin (method url-fetch)
f32ffa04 3316 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
3317 version ".tar"))
3318 (sha256
3319 (base32
e5f95406 3320 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
e7761186
AV
3321 (build-system emacs-build-system)
3322 (home-page "https://github.com/ahungry/color-theme-ahungry")
3323 (synopsis "Ahungry color theme for Emacs")
3324 (description "Ahungry theme for Emacs provides bright and bold colors.
3325If you load it from a terminal, you will be able to make use of the
3326transparent background. If you load it from a GUI, it will default to a
3327dark background.")
3328 (license license:gpl3+)))
3329
ab966b8f 3330(define-public emacs-2048-game
3331 (package
3332 (name "emacs-2048-game")
3333 (version "20151026.1233")
3334 (source
3335 (origin
3336 (method url-fetch)
3337 (uri (string-append "https://melpa.org/packages/2048-game-"
3338 version ".el"))
3339 (sha256
3340 (base32
3341 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3342 (build-system emacs-build-system)
3343 (home-page "https://bitbucket.org/zck/2048.el")
3344 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3345 (description
3346 "This program is an implementation of 2048 for Emacs.
3347The goal of this game is to create a tile with value 2048. The size of the
3348board and goal value can be customized.")
3349 (license license:gpl3+)))
3350
4da9beab 3351(define-public emacs-base16-theme
3352 (package
3353 (name "emacs-base16-theme")
3354 (version "2.1")
3355 (source
3356 (origin
3357 (method url-fetch)
3358 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3359 version ".tar"))
3360 (sha256
3361 (base32
3362 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3363 (build-system emacs-build-system)
3364 (home-page "https://github.com/belak/base16-emacs")
3365 (synopsis "Base16 color themes for Emacs")
3366 (description
3367 "Base16 provides carefully chosen syntax highlighting and a default set
3368of sixteen colors suitable for a wide range of applications. Base16 is not a
3369single theme but a set of guidelines with numerous implementations.")
3370 (license license:expat)))
3371
5c447e28
AP
3372(define-public emacs-smartparens
3373 (package
3374 (name "emacs-smartparens")
308b8f79 3375 (version "1.11.0")
5c447e28
AP
3376 (source (origin
3377 (method url-fetch)
3378 (uri (string-append
3379 "https://github.com/Fuco1/smartparens/archive/"
3380 version ".tar.gz"))
3381 (file-name (string-append name "-" version ".tar.gz"))
3382 (sha256
3383 (base32
308b8f79 3384 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
5c447e28 3385 (build-system emacs-build-system)
db95d8ca
MC
3386 (propagated-inputs
3387 `(("emacs-dash" ,emacs-dash)
3388 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5c447e28
AP
3389 (home-page "https://github.com/Fuco1/smartparens")
3390 (synopsis "Paredit-like insertion, wrapping and navigation with user
3391defined pairs")
3392 (description
3393 "Smartparens is a minor mode for Emacs that deals with parens pairs
3394and tries to be smart about it. It started as a unification effort to
3395combine functionality of several existing packages in a single,
3396compatible and extensible way to deal with parentheses, delimiters, tags
3397and the like. Some of these packages include autopair, textmate,
3398wrap-region, electric-pair-mode, paredit and others. With the basic
3399features found in other packages it also brings many improvements as
3400well as completely new features.")
3401 (license license:gpl3+)))
8eeb301d 3402
425d66f7
OP
3403(define-public emacs-highlight-symbol
3404 (package
3405 (name "emacs-highlight-symbol")
3406 (version "1.3")
3407 (source (origin
3408 (method url-fetch)
3409 (uri (string-append
3410 "https://github.com/nschum/highlight-symbol.el/archive/"
3411 version ".tar.gz"))
3412 (file-name (string-append name "-" version ".tar.gz"))
3413 (sha256
3414 (base32
3415 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3416 (build-system emacs-build-system)
3417 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3418 (synopsis "Automatic and manual symbol highlighting for Emacs")
3419 (description
3420 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3421point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3422the symbol at point highlighted.
3423
3424The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3425@code{highlight-symbol-next-in-defun} and
3426@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3427of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3428bindings @code{M-p} and @code{M-p} for navigation. When
3429@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3430regardless of @code{highlight-symbol-idle-delay}.
3431
3432@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3433 (license license:gpl2+)))
3434
8f82641a
RJ
3435(define-public emacs-hl-todo
3436 (package
3437 (name "emacs-hl-todo")
f61aaaf3 3438 (version "1.8.0")
8f82641a
RJ
3439 (source (origin
3440 (method url-fetch)
3441 (uri (string-append
3442 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3443 version "/hl-todo.el"))
0e7c4089 3444 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
3445 (sha256
3446 (base32
f61aaaf3 3447 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
8f82641a
RJ
3448 (build-system emacs-build-system)
3449 (home-page "https://github.com/tarsius/hl-todo")
3450 (synopsis "Emacs mode to highlight TODO and similar keywords")
3451 (description
3452 "This package provides an Emacs mode to highlight TODO and similar
3453keywords in comments and strings. This package also provides commands for
3454moving to the next or previous keyword and to invoke @code{occur} with a
3455regexp that matches all known keywords.")
3456 (license license:gpl3+)))
3457
480f7350
RW
3458(define-public emacs-perspective
3459 (package
3460 (name "emacs-perspective")
3461 (version "1.12")
3462 (source
3463 (origin
3464 (method url-fetch)
3465 (uri (string-append "https://github.com/nex3/perspective-el/"
3466 "archive/" version ".tar.gz"))
3467 (file-name (string-append name "-" version ".tar.gz"))
3468 (sha256
3469 (base32
3470 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3471 (build-system emacs-build-system)
7bf837fd 3472 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
3473 (synopsis "Switch between named \"perspectives\"")
3474 (description
3475 "This package provides tagged workspaces in Emacs, similar to workspaces in
3476windows managers such as Awesome and XMonad. @code{perspective.el} provides
3477multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3478perspective is composed of a window configuration and a set of buffers.
3479Switching to a perspective activates its window configuration, and when in a
3480perspective only its buffers are available by default.")
3481 ;; This package is released under the same license as Emacs (GPLv3+) or
3482 ;; the Expat license.
3483 (license license:gpl3+)))
3484
439ad15d
MC
3485(define-public emacs-test-simple
3486 (package
3487 (name "emacs-test-simple")
3488 (version "1.3.0")
3489 (source
3490 (origin
3491 (method url-fetch)
3492 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3493 version ".el"))
3494 (sha256
3495 (base32
3496 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3497 (build-system emacs-build-system)
3498 (home-page "https://github.com/rocky/emacs-test-simple")
3499 (synopsis "Simple unit test framework for Emacs Lisp")
3500 (description
3501 "Test Simple is a simple unit test framework for Emacs Lisp. It
3502alleviates the need for context macros, enclosing specifications or required
3503test tags. It supports both interactive and non-interactive use.")
3504 (license license:gpl3+)))
3505
fa1a17b7
MC
3506(define-public emacs-load-relative
3507 (package
3508 (name "emacs-load-relative")
3509 (version "1.3")
3510 (source
3511 (origin
3512 (method url-fetch)
3513 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3514 version ".el"))
3515 (sha256
3516 (base32
3517 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3518 (build-system emacs-build-system)
3519 (home-page "http://github.com/rocky/emacs-load-relative")
3520 (synopsis "Emacs Lisp relative file loading related functions")
3521 (description
3522 "Provides functions which facilitate writing multi-file Emacs packages
3523and running from the source tree without having to \"install\" code or fiddle
3524with @{load-path}.
3525
3526The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3527another (presumably currently running) Emacs Lisp file.")
3528 (license license:gpl3+)))
3529
fd38bfe2
MC
3530(define-public emacs-loc-changes
3531 (package
3532 (name "emacs-loc-changes")
3533 (version "1.2")
3534 (source
3535 (origin
3536 (method url-fetch)
3537 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3538 version ".el"))
3539 (sha256
3540 (base32
3541 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3542 (build-system emacs-build-system)
3543 (home-page "https://github.com/rocky/emacs-loc-changes")
3544 (synopsis "Keeps track of positions even after buffer changes")
3545 (description
3546 "This Emacs package provides a mean to track important buffer positions
3547after buffer changes.")
3548 (license license:gpl3+)))
3549
b1968d86
MC
3550(define-public emacs-realgud
3551 (package
3552 (name "emacs-realgud")
5368e67c 3553 (version "1.4.5")
b1968d86
MC
3554 (source
3555 (origin
3556 (method url-fetch)
3557 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3558 version ".tar"))
3559 (sha256
3560 (base32
5368e67c 3561 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
b1968d86
MC
3562 (build-system emacs-build-system)
3563 (arguments
3564 `(#:tests? #t
3565 #:phases
3566 (modify-phases %standard-phases
aea388cf 3567 (add-after 'set-emacs-load-path 'fix-autogen-script
b1968d86
MC
3568 (lambda _
3569 (substitute* "autogen.sh"
3570 (("./configure") "sh configure"))))
3571 (add-after 'fix-autogen-script 'autogen
3572 (lambda _
3573 (setenv "CONFIG_SHELL" "sh")
3574 (invoke "sh" "autogen.sh")))
3575 (add-after 'fix-autogen-script 'set-home
3576 (lambda _
3577 (setenv "HOME" (getenv "TMPDIR"))))
3578 (add-before 'patch-el-files 'remove-realgud-pkg.el
3579 (lambda _
3580 ;; XXX: This file is auto-generated at some point and causes
3581 ;; substitute* to crash during the `patch-el-files' phase with:
3582 ;; ERROR: In procedure stat: No such file or directory:
3583 ;; "./realgud-pkg.el"
3584 (delete-file "./realgud-pkg.el")
3585 ;; FIXME: `patch-el-files' crashes on this file with error:
3586 ;; unable to locate "bashdb".
3587 (delete-file "./test/test-regexp-bashdb.el"))))
3588 #:include (cons* ".*\\.el$" %default-include)))
3589 (native-inputs
3590 `(("autoconf" ,autoconf)
3591 ("automake" ,automake)
3592 ("emacs-test-simple" ,emacs-test-simple)))
3593 (propagated-inputs
3594 `(("emacs-load-relative" ,emacs-load-relative)
3595 ("emacs-loc-changes" ,emacs-loc-changes)))
3596 (home-page "https://github.com/realgud/realgud/")
3597 (synopsis
3598 "Modular front-end for interacting with external debuggers")
3599 (description
3600 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3601with external debuggers. It integrates various debuggers such as gdb, pdb,
3602ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3603sources. Unlike GUD, it also supports running multiple debug sessions in
3604parallel.")
3605 (license license:gpl3+)))
3606
36e5d103
RJ
3607(define-public emacs-request
3608 (package
3609 (name "emacs-request")
5a545aab 3610 (version "0.3.0")
36e5d103 3611 (source (origin
5a545aab
RW
3612 (method git-fetch)
3613 (uri (git-reference
3614 (url "https://github.com/tkf/emacs-request.git")
3615 (commit (string-append "v" version))))
3616 (file-name (string-append name "-" version "-checkout"))
36e5d103 3617 (sha256
5a545aab
RW
3618 (base32
3619 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
36e5d103 3620 (build-system emacs-build-system)
4e782fff
MC
3621 (propagated-inputs
3622 `(("emacs-deferred" ,emacs-deferred)))
36e5d103
RJ
3623 (home-page "https://github.com/tkf/emacs-request")
3624 (synopsis "Package for speaking HTTP in Emacs Lisp")
3625 (description "This package provides a HTTP request library with multiple
3626backends. It supports url.el which is shipped with Emacs and the curl command
3627line program.")
3628 (license license:gpl3+)))
3629
f1b61e26 3630(define-public emacs-rudel
3631 (package
3632 (name "emacs-rudel")
3633 (version "0.3.1")
3634 (source
3635 (origin
3636 (method url-fetch)
3637 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3638 version ".tar"))
3639 (sha256
3640 (base32
3641 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3642 (build-system emacs-build-system)
3643 (home-page "http://rudel.sourceforge.net/")
3644 (synopsis "Collaborative editing framework")
3645 (description
3646 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3647is to share buffers with other users in order to edit the contents of those
3648buffers collaboratively. Rudel supports multiple backends to enable
3649communication with other collaborative editors using different protocols,
3650though currently Obby (for use with the Gobby editor) is the only
3651fully-functional one.")
3652 (license license:gpl3+)))
3653
79b3d3ea
RW
3654(define-public emacs-hydra
3655 (package
3656 (name "emacs-hydra")
9932dabf 3657 (version "0.14.0")
79b3d3ea
RW
3658 (source
3659 (origin
3660 (method url-fetch)
3661 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3662 version ".tar.gz"))
3663 (file-name (string-append name "-" version ".tar.gz"))
3664 (sha256
3665 (base32
9932dabf 3666 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
79b3d3ea
RW
3667 (build-system emacs-build-system)
3668 (home-page "https://github.com/abo-abo/hydra")
3669 (synopsis "Make Emacs bindings that stick around")
3670 (description
3671 "This package can be used to tie related commands into a family of short
3672bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3673the prefixed binding), all the heads can be called in succession with only a
3674short extension. Any binding that isn't the Hydra's head vanquishes the
3675Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3676serve its original purpose, calling the command assigned to it. This makes
3677the Hydra very seamless; it's like a minor mode that disables itself
3678automatically.")
3679 (license license:gpl3+)))
3680
12db29ba
RW
3681(define-public emacs-ivy
3682 (package
3683 (name "emacs-ivy")
a8374234 3684 (version "0.10.0")
12db29ba
RW
3685 (source
3686 (origin
a8374234
RW
3687 (method git-fetch)
3688 (uri (git-reference
3689 (url "https://github.com/abo-abo/swiper.git")
3690 (commit version)))
3691 (file-name (string-append name "-" version "-checkout"))
12db29ba
RW
3692 (sha256
3693 (base32
a8374234 3694 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
12db29ba 3695 (build-system emacs-build-system)
5f66a0a7
RW
3696 (arguments
3697 `(#:phases
3698 (modify-phases %standard-phases
3699 (add-after 'install 'install-doc
3700 (lambda* (#:key outputs #:allow-other-keys)
3701 (let* ((out (assoc-ref outputs "out"))
3702 (info (string-append out "/share/info")))
3703 (with-directory-excursion "doc"
e97ad01e
TGR
3704 (invoke "makeinfo" "ivy.texi")
3705 (install-file "ivy.info" info)
3706 #t)))))))
12db29ba
RW
3707 (propagated-inputs
3708 `(("emacs-hydra" ,emacs-hydra)))
5f66a0a7
RW
3709 (native-inputs
3710 `(("texinfo" ,texinfo)))
12db29ba
RW
3711 (home-page "http://oremacs.com/swiper/")
3712 (synopsis "Incremental vertical completion for Emacs")
3713 (description
3714 "This package provides @code{ivy-read} as an alternative to
3715@code{completing-read} and similar functions. No attempt is made to determine
3716the best candidate. Instead, the user can navigate candidates with
3717@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3718splitting the input text by spaces and re-building it into a regular
3719expression.")
3720 (license license:gpl3+)))
3721
da23cc00
OP
3722(define-public emacs-ivy-yasnippet
3723 (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4"))
3724 (package
3725 (name "emacs-ivy-yasnippet")
3726 (version (git-version "0.1" "1" commit))
3727 (source
3728 (origin
3729 (method git-fetch)
3730 (uri (git-reference
3731 (url "https://github.com/mkcms/ivy-yasnippet.git")
3732 (commit commit)))
3733 (file-name (git-file-name name version))
3734 (sha256
3735 (base32
3736 "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13"))))
3737 (build-system emacs-build-system)
3738 (propagated-inputs
3739 `(("emacs-ivy" ,emacs-ivy)
3740 ("emacs-yasnippet" ,emacs-yasnippet)
3741 ("emacs-dash" ,emacs-dash)))
3742 (home-page "https://github.com/mkcms/ivy-yasnippet")
3743 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3744 (description "This package allows you to select @code{yasnippet}
3745snippets using @code{ivy} completion. When current selection changes in the
3746minibuffer, the snippet contents are temporarily expanded in the buffer. To
3747use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3748@code{yas-minor-mode} first).")
3749 (license license:gpl3+))))
3750
5edc24ec
RW
3751(define-public emacs-avy
3752 (package
3753 (name "emacs-avy")
3754 (version "0.4.0")
3755 (source
3756 (origin
3757 (method url-fetch)
3758 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3759 version ".tar.gz"))
3760 (file-name (string-append name "-" version ".tar.gz"))
3761 (sha256
3762 (base32
3763 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3764 (build-system emacs-build-system)
3765 (home-page "https://github.com/abo-abo/avy")
3766 (synopsis "Tree-based completion for Emacs")
3767 (description
3768 "This package provides a generic completion method based on building a
3769balanced decision tree with each candidate being a leaf. To traverse the tree
3770from the root to a desired leaf, typically a sequence of @code{read-key} can
3771be used.
3772
3773In order for @code{read-key} to make sense, the tree needs to be visualized
3774appropriately, with a character at each branch node. So this completion
3775method works only for things that you can see on your screen, all at once,
3776such as the positions of characters, words, line beginnings, links, or
3777windows.")
3778 (license license:gpl3+)))
3779
93dba17c
RW
3780(define-public emacs-ace-window
3781 (package
3782 (name "emacs-ace-window")
3783 (version "0.9.0")
3784 (source
3785 (origin
3786 (method url-fetch)
3787 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3788 version ".tar.gz"))
3789 (file-name (string-append name "-" version ".tar.gz"))
3790 (sha256
3791 (base32
3792 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3793 (build-system emacs-build-system)
3794 (propagated-inputs
3795 `(("emacs-avy" ,emacs-avy)))
3796 (home-page "https://github.com/abo-abo/ace-window")
3797 (synopsis "Quickly switch windows in Emacs")
3798 (description
3799 "@code{ace-window} is meant to replace @code{other-window}.
3800In fact, when there are only two windows present, @code{other-window} is
3801called. If there are more, each window will have its first character
3802highlighted. Pressing that character will switch to that window.")
3803 (license license:gpl3+)))
3804
e1918ce4
RW
3805(define-public emacs-iedit
3806 (package
3807 (name "emacs-iedit")
f9f77a9e 3808 (version "0.9.9.9")
e1918ce4
RW
3809 (source
3810 (origin
3811 (method url-fetch)
3812 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3813 version ".tar.gz"))
3814 (file-name (string-append name "-" version ".tar.gz"))
3815 (sha256
3816 (base32
f9f77a9e 3817 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
3818 (build-system emacs-build-system)
3819 (home-page "http://www.emacswiki.org/emacs/Iedit")
3820 (synopsis "Edit multiple regions in the same way simultaneously")
3821 (description
3822 "This package is an Emacs minor mode and allows you to edit one
3823occurrence of some text in a buffer (possibly narrowed) or region, and
3824simultaneously have other occurrences edited in the same way.
3825
3826You can also use Iedit mode as a quick way to temporarily show only the buffer
3827lines that match the current text being edited. This gives you the effect of
3828a temporary @code{keep-lines} or @code{occur}.")
3829 (license license:gpl3+)))
3830
30cf7070
CL
3831(define-public emacs-zoutline
3832 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3833 (revision "0"))
3834 (package
3835 (name "emacs-zoutline")
3836 (version (git-version "0.1" revision commit))
3837 (home-page "https://github.com/abo-abo/zoutline")
3838 (source (origin
3839 (method git-fetch)
3840 (uri (git-reference (url home-page) (commit commit)))
3841 (sha256
3842 (base32
3843 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3844 (file-name (git-file-name name version))))
3845 (build-system emacs-build-system)
3846 (synopsis "Simple outline library")
3847 (description
3848 "This library provides helpers for outlines. Outlines allow users to
3849navigate code in a tree-like fashion.")
3850 (license license:gpl3+))))
3851
a5338dd4 3852(define-public emacs-lispy
e8360eb8
CL
3853 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3854 ;; since.
e5d57c1c 3855 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
e8360eb8
CL
3856 (revision "0"))
3857 (package
3858 (name "emacs-lispy")
3859 (version (git-version "0.26.0" revision commit))
3860 (home-page "https://github.com/abo-abo/lispy")
3861 (source (origin
3862 (method git-fetch)
3863 (uri (git-reference (url home-page) (commit commit)))
3864 (sha256
3865 (base32
e5d57c1c 3866 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
e8360eb8
CL
3867 (file-name (git-file-name name version))))
3868 (build-system emacs-build-system)
3869 (propagated-inputs
3870 `(("emacs-ace-window" ,emacs-ace-window)
3871 ("emacs-iedit" ,emacs-iedit)
3872 ("emacs-ivy" ,emacs-ivy)
3873 ("emacs-hydra" ,emacs-hydra)
3874 ("emacs-zoutline" ,emacs-zoutline)))
3875 (synopsis "Modal S-expression editing")
3876 (description
3877 "Due to the structure of Lisp syntax it's very rare for the programmer
3878to want to insert characters right before \"(\" or right after \")\". Thus
a5338dd4
RW
3879unprefixed printable characters can be used to call commands when the point is
3880at one of these special locations. Lispy provides unprefixed keybindings for
3881S-expression editing when point is at the beginning or end of an
3882S-expression.")
e8360eb8 3883 (license license:gpl3+))))
a5338dd4 3884
28ca6b35
CL
3885(define-public emacs-lispyville
3886 ;; Later versions need a more recent Evil, with an evil-define-key*
3887 ;; supporting nil for the state.
3888 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
3889 (revision "0"))
3890 (package
3891 (name "emacs-lispyville")
3892 (version (git-version "0.1" revision commit))
3893 (home-page "https://github.com/noctuid/lispyville")
3894 (source (origin
3895 (method git-fetch)
3896 (uri (git-reference (url home-page) (commit commit)))
3897 (sha256
3898 (base32
3899 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
3900 (file-name (git-file-name name version))))
3901 (propagated-inputs
3902 `(("emacs-evil" ,emacs-evil)
3903 ("emacs-lispy" ,emacs-lispy)))
3904 (build-system emacs-build-system)
3905 (synopsis "Minor mode for integrating Evil with lispy")
3906 (description
3907 "LispyVille's main purpose is to provide a Lisp editing environment
3908suited towards Evil users. It can serve as a minimal layer on top of lispy
3909for better integration with Evil, but it does not require the use of lispy’s
3910keybinding style. The provided commands allow for editing Lisp in normal
3911state and will work even without lispy being enabled.")
3912 (license license:gpl3+))))
a5338dd4 3913
8eeb301d
AP
3914(define-public emacs-clojure-mode
3915 (package
3916 (name "emacs-clojure-mode")
2fa6f63b 3917 (version "5.6.1")
8eeb301d
AP
3918 (source (origin
3919 (method url-fetch)
3920 (uri (string-append
3921 "https://github.com/clojure-emacs/clojure-mode/archive/"
3922 version ".tar.gz"))
3923 (file-name (string-append name "-" version ".tar.gz"))
3924 (sha256
3925 (base32
2fa6f63b 3926 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
8eeb301d 3927 (build-system emacs-build-system)
92d9cfef
AI
3928 (native-inputs
3929 `(("emacs-dash" ,emacs-dash)
3930 ("emacs-s" ,emacs-s)
3931 ("ert-runner" ,ert-runner)))
3932 (arguments
d1d41db6
MC
3933 `(#:tests? #t
3934 #:test-command '("ert-runner")))
7bf837fd 3935 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
3936 (synopsis "Major mode for Clojure code")
3937 (description
3938 "This Emacs package provides font-lock, indentation, navigation and basic
3939refactoring for the @uref{http://clojure.org, Clojure programming language}.
3940It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3941 (license license:gpl3+)))
d345491a
AP
3942
3943(define-public emacs-epl
3944 (package
3945 (name "emacs-epl")
3946 (version "0.8")
3947 (source (origin
3948 (method url-fetch)
3949 (uri (string-append
3950 "https://github.com/cask/epl/archive/"
3951 version ".tar.gz"))
5a6f7a68 3952 (file-name (string-append name "-" version ".tar.gz"))
d345491a
AP
3953 (sha256
3954 (base32
3955 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3956 (build-system emacs-build-system)
7bf837fd 3957 (home-page "https://github.com/cask/epl")
d345491a
AP
3958 (synopsis "Emacs Package Library")
3959 (description
3960 "A package management library for Emacs, based on @code{package.el}.
3961
3962The purpose of this library is to wrap all the quirks and hassle of
3963@code{package.el} into a sane API.")
3964 (license license:gpl3+)))
ad6c4bc4
AP
3965
3966(define-public emacs-queue
3967 (package
3968 (name "emacs-queue")
5f51f39e 3969 (version "0.2")
ad6c4bc4 3970 (source (origin
02736daa 3971 (method url-fetch)
f32ffa04 3972 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
3973 version ".el"))
3974 (sha256
3975 (base32
5f51f39e 3976 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
ad6c4bc4
AP
3977 (build-system emacs-build-system)
3978 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3979 (synopsis "Queue data structure for Emacs")
3980 (description
3981 "This Emacs library provides queue data structure. These queues can be
3982used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3983stack, i.e. elements can be added to the front or back of the queue, and can
3984be removed from the front. This type of data structure is sometimes called an
3985\"output-restricted deque\".")
3986 (license license:gpl3+)))
32abfcf4
AP
3987
3988(define-public emacs-pkg-info
3989 (package
3990 (name "emacs-pkg-info")
3991 (version "0.6")
3992 (source (origin
3993 (method url-fetch)
3994 (uri (string-append
3995 "https://github.com/lunaryorn/pkg-info.el/archive/"
3996 version ".tar.gz"))
3997 (file-name (string-append name "-" version ".tar.gz"))
3998 (sha256
3999 (base32
4000 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
4001 (build-system emacs-build-system)
4002 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
4003 (home-page "https://github.com/lunaryorn/pkg-info.el")
4004 (synopsis "Information about Emacs packages")
4005 (description
4006 "This library extracts information from the installed Emacs packages.")
4007 (license license:gpl3+)))
565bccc5
AP
4008
4009(define-public emacs-spinner
4010 (package
4011 (name "emacs-spinner")
cd4d96b8 4012 (version "1.7.3")
565bccc5 4013 (source (origin
02736daa 4014 (method url-fetch)
f32ffa04 4015 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
4016 version ".el"))
4017 (sha256
4018 (base32
cd4d96b8 4019 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
4020 (build-system emacs-build-system)
4021 (home-page "https://github.com/Malabarba/spinner.el")
4022 (synopsis "Emacs mode-line spinner for operations in progress")
4023 (description
4024 "This Emacs package adds spinners and progress-bars to the mode-line for
4025ongoing operations.")
4026 (license license:gpl3+)))
62a45cb6 4027
fd2d17cd
RJ
4028(define-public emacs-sparql-mode
4029 (package
4030 (name "emacs-sparql-mode")
4031 (version "2.0.1")
4032 (source (origin
4033 (method url-fetch)
4034 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
4035 "v" version ".tar.gz"))
4036 (file-name (string-append name "-" version ".tar.gz"))
4037 (sha256
4038 (base32
4039 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
4040 (build-system emacs-build-system)
4041 (home-page "https://github.com/ljos/sparql-mode")
4042 (synopsis "SPARQL mode for Emacs")
4043 (description "This package provides a major mode for Emacs that provides
4044syntax highlighting for SPARQL. It also provides a way to execute queries
4045against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
4046possible to query other endpoints like DBPedia.")
4047 (license license:gpl3+)))
4048
6ede256f
DT
4049(define-public emacs-better-defaults
4050 (package
4051 (name "emacs-better-defaults")
4052 (version "0.1.3")
4053 (source
4054 (origin
4055 (method url-fetch)
4056 (uri (string-append "https://github.com/technomancy/better-defaults"
4057 "/archive/" version ".tar.gz"))
13384842 4058 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
4059 (sha256
4060 (base32
4061 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
4062 (build-system emacs-build-system)
4063 (home-page "https://github.com/technomancy/better-defaults")
4064 (synopsis "Better defaults for Emacs")
4065 (description
4066 "Better defaults attempts to address the most obvious deficiencies of the
4067Emacs default configuration in uncontroversial ways that nearly everyone can
4068agree upon.")
4069 (license license:gpl3+)))
c5c08f1b 4070
7034791a
RJ
4071(define-public emacs-eprime
4072 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
4073 (package
4074 (name "emacs-eprime")
4075 (version (string-append "20140513-" (string-take commit 7)))
4076 (source (origin
4077 (method url-fetch)
4078 (uri (string-append "https://raw.githubusercontent.com"
4079 "/AndrewHynes/eprime-mode/"
4080 commit "/eprime-mode.el"))
4081 (file-name (string-append "eprime-" version ".el"))
4082 (sha256
4083 (base32
4084 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4085 (build-system emacs-build-system)
4086 (home-page "https://github.com/AndrewHynes/eprime-mode")
4087 (synopsis "E-prime checking mode for Emacs")
4088 (description "This package provides an E-prime checking mode for Emacs
4089that highlights non-conforming text. The subset of the English language called
4090E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4091 (license license:gpl3+))))
4092
db29e598
KM
4093(define-public emacs-julia-mode
4094 ;; XXX: Upstream version remained stuck at 0.3. See
4095 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4096 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4097 (revision "1"))
4098 (package
4099 (name "emacs-julia-mode")
4100 (version (string-append "0.3-" revision "." (string-take commit 8)))
4101 (source
4102 (origin
4103 (method git-fetch)
4104 (uri (git-reference
4105 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4106 (commit commit)))
4107 (file-name (string-append name "-" version "-checkout"))
4108 (sha256
4109 (base32
4110 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4111 (build-system emacs-build-system)
4112 (arguments
d1d41db6
MC
4113 `(#:tests? #t
4114 #:test-command '("emacs" "--batch"
4115 "-l" "julia-mode-tests.el"
4116 "-f" "ert-run-tests-batch-and-exit")))
db29e598
KM
4117 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4118 (synopsis "Major mode for Julia")
4119 (description "This Emacs package provides a mode for the Julia
4120programming language.")
4121 (license license:expat))))
4122
41184943
RJ
4123(define-public emacs-ess
4124 (package
4125 (name "emacs-ess")
a209907e 4126 (version "16.10")
41184943
RJ
4127 (source (origin
4128 (method url-fetch)
4129 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
4130 version ".tgz"))
4131 (sha256
4132 (base32
a209907e
KM
4133 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
4134 (modules '((guix build utils)))
4135 (snippet
4136 '(begin
4137 ;; Stop ESS from trying to bundle an external julia-mode.el.
4138 (substitute* "lisp/Makefile"
4139 (("^\tjulia-mode.elc\\\\\n") "")
4140 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
6cbee49d
MW
4141 "all: $(ELC) ess-custom.el"))
4142 #t))))
41184943
RJ
4143 (build-system gnu-build-system)
4144 (arguments
eaff063a 4145 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
a209907e 4146 `(#:make-flags (list (string-append "PREFIX=" %output)
eaff063a
RJ
4147 (string-append "ETCDIR=" %output "/"
4148 ,base-directory "/etc")
4149 (string-append "LISPDIR=" %output "/"
4150 ,base-directory))
4151 #:phases
4152 (modify-phases %standard-phases
4153 (delete 'configure)
4154 (add-before 'build 'more-shebang-patching
4155 (lambda* (#:key inputs #:allow-other-keys)
4156 (substitute* "Makeconf"
4157 (("SHELL = /bin/sh")
2f48416f
TGR
4158 (string-append "SHELL = " (which "sh"))))
4159 #t))
eaff063a
RJ
4160 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
4161 ;; them in HOME, so it needs to be writeable.
4162 (add-before 'build 'set-HOME
a209907e
KM
4163 (lambda _ (setenv "HOME" "/tmp") #t))
4164 (replace 'check
4165 (lambda _
2f48416f 4166 (invoke "make" "test")))))))
41184943
RJ
4167 (inputs
4168 `(("emacs" ,emacs-minimal)
2d7c4ae3 4169 ("r-minimal" ,r-minimal)))
41184943
RJ
4170 (native-inputs
4171 `(("perl" ,perl)
4172 ("texinfo" ,texinfo)
63096366
RW
4173 ("texlive" ,(texlive-union (list texlive-latex-natbib
4174 texlive-latex-seminar
4175 texlive-latex-hyperref
4176 texlive-tex-texinfo)))))
d062957a 4177 (home-page "https://ess.r-project.org/")
41184943
RJ
4178 (synopsis "Emacs mode for statistical analysis programs")
4179 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4180Emacs. It is designed to support editing of scripts and interaction with
4181various statistical analysis programs such as R and OpenBUGS.")
4182 (license license:gpl2+)))
4183
c5c08f1b
DT
4184(define-public emacs-smex
4185 (package
4186 (name "emacs-smex")
4187 (version "3.0")
4188 (source (origin
4189 (method url-fetch)
4190 (uri (string-append "https://raw.githubusercontent.com"
4191 "/nonsequitur/smex/" version "/smex.el"))
4192 (file-name (string-append "smex-" version ".el"))
4193 (sha256
4194 (base32
4195 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4196 (build-system emacs-build-system)
7bf837fd 4197 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
4198 (synopsis "M-x interface with Ido-style fuzzy matching")
4199 (description
4200 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4201convenient interface to your recently and most frequently used commands. And
4202to all the other commands, too.")
4203 (license license:gpl3+)))
3e5be84b
DT
4204
4205(define-public emacs-js2-mode
4206 (package
4207 (name "emacs-js2-mode")
4208 (version "20150909")
4209 (source (origin
4210 (method url-fetch)
4211 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4212 version ".tar.gz"))
4213 (file-name (string-append name "-" version ".tar.gz"))
4214 (sha256
4215 (base32
4216 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4217 (build-system emacs-build-system)
4218 (home-page "https://github.com/mooz/js2-mode/")
4219 (synopsis "Improved JavaScript editing mode for Emacs")
4220 (description
4221 "Js2-mode provides a JavaScript major mode for Emacs that is more
4222advanced than the built-in javascript-mode. Features include accurate syntax
4223highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4224errors and strict-mode warnings, smart line-wrapping within comments and
4225strings, and code folding.")
4226 (license license:gpl3+)))
b78b6e80 4227
6c123c26
ML
4228(define-public emacs-nodejs-repl
4229 (package
4230 (name "emacs-nodejs-repl")
4231 (version "0.1.6")
4232 (source (origin
4233 (method url-fetch)
4234 (uri (string-append "https://github.com/abicky/nodejs-repl.el"
4235 "/archive/" version ".tar.gz"))
4236 (sha256
4237 (base32
4238 "0sphg1jxi3a5l0gqdp27d0qgyjaiq2p293av9zm8ksm0vwqp3fr9"))
4239 (file-name (string-append name "-" version ".tar.gz"))))
4240 (build-system emacs-build-system)
4241 (home-page "https://github.com/abicky/nodejs-repl.el")
4242 (synopsis "Node.js REPL inside Emacs")
4243 (description
4244 "This program is derived from comint-mode and provides the following
4245features:
4246
4247@itemize
4248@item TAB completion same as Node.js REPL
4249@item file name completion in string
4250@item incremental history search
4251@end itemize")
4252 (license license:gpl3+)))
4253
0bb78bf9
ML
4254(define-public emacs-typescript-mode
4255 (package
4256 (name "emacs-typescript-mode")
4257 (version "0.3")
4258 (source (origin
4259 (method url-fetch)
4260 (uri (string-append
4261 "https://github.com/ananthakumaran/typescript.el"
4262 "/archive/v" version ".tar.gz"))
4263 (sha256
4264 (base32
4265 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
4266 (file-name (string-append name "-" version ".tar.gz"))))
4267 (build-system emacs-build-system)
4268 (home-page "https://github.com/ananthakumaran/typescript.el")
4269 (synopsis "Emacs major mode for editing Typescript code")
4270 (description
4271 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
4272This is much more robust and works with @code{cc-mode}'s comment
4273filling (mostly). The modifications to the original @code{javascript.el} mode
4274mainly consisted in replacing \"javascript\" with \"typescript\"
4275
4276The main features of this Typescript mode are syntactic highlighting (enabled
4277with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
4278indentation and filling of comments and C preprocessor fontification.")
4279 (license license:gpl3+)))
4280
19db14ca
ML
4281(define-public emacs-tide
4282 (package
4283 (name "emacs-tide")
4284 (version "2.8.3.1")
4285 (source (origin
4286 (method url-fetch)
4287 (uri (string-append "https://github.com/ananthakumaran/tide"
4288 "/archive/v" version ".tar.gz"))
4289 (sha256
4290 (base32
4291 "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y"))
4292 (file-name (string-append name "-" version ".tar.gz"))))
4293 (build-system emacs-build-system)
4294 (propagated-inputs
4295 `(("emacs-dash" ,emacs-dash)
4296 ("emacs-s" ,emacs-s)
4297 ("emacs-flycheck" ,flycheck)
4298 ("emacs-typescript-mode" ,emacs-typescript-mode)))
4299 (home-page "https://github.com/ananthakumaran/tide")
4300 (synopsis "Typescript IDE for Emacs")
4301 (description
4302 "Tide is an Interactive Development Environment (IDE) for Emacs which
4303provides the following features:
4304
4305@itemize
4306@item ElDoc
4307@item Auto complete
4308@item Flycheck
4309@item Jump to definition, Jump to type definition
4310@item Find occurrences
4311@item Rename symbol
4312@item Imenu
4313@item Compile On Save
4314@item Highlight Identifiers
4315@item Code Fixes
4316@item Code Refactor
4317@item Organize Imports
4318@end itemize")
4319 (license license:gpl3+)))
4320
b78b6e80
DT
4321(define-public emacs-markdown-mode
4322 (package
4323 (name "emacs-markdown-mode")
2175a427 4324 (version "2.3")
b78b6e80
DT
4325 (source (origin
4326 (method url-fetch)
4327 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4328 "/markdown-mode/v" version
4329 "/markdown-mode.el"))
4330 (file-name (string-append "markdown-mode-" version ".el"))
4331 (sha256
4332 (base32
2175a427 4333 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
b78b6e80
DT
4334 (build-system emacs-build-system)
4335 (home-page "http://jblevins.org/projects/markdown-mode/")
4336 (synopsis "Emacs Major mode for Markdown files")
4337 (description
4338 "Markdown-mode is a major mode for editing Markdown-formatted text files
4339in Emacs.")
4340 (license license:gpl3+)))
a2670dde 4341
659f790b
OP
4342(define-public emacs-edit-indirect
4343 (package
4344 (name "emacs-edit-indirect")
4345 (version "0.1.4")
4346 (source
4347 (origin
4348 (method url-fetch)
4349 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4350 version ".tar.gz"))
4351 (file-name (string-append name "-" version ".tar.gz"))
4352 (sha256
4353 (base32
4354 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4355 (build-system emacs-build-system)
4356 (home-page "https://github.com/Fanael/edit-indirect")
4357 (synopsis "Edit regions in separate buffers")
4358 (description "This package allows you to edit regions in separate buffers,
4359like @code{org-edit-src-code} but for arbitrary regions.")
4360 (license license:gpl3+)))
4361
a2670dde
DT
4362(define-public emacs-projectile
4363 (package
4364 (name "emacs-projectile")
6461c44c 4365 (version "0.14.0")
a2670dde
DT
4366 (source (origin
4367 (method url-fetch)
4368 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4369 "/projectile/v" version "/projectile.el"))
4370 (file-name (string-append "projectile-" version ".el"))
4371 (sha256
4372 (base32
6461c44c 4373 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
4374 (build-system emacs-build-system)
4375 (propagated-inputs
4376 `(("emacs-dash" ,emacs-dash)
4377 ("emacs-pkg-info" ,emacs-pkg-info)))
4378 (home-page "https://github.com/bbatsov/projectile")
4379 (synopsis "Manage and navigate projects in Emacs easily")
4380 (description
4381 "This library provides easy project management and navigation. The
4382concept of a project is pretty basic - just a folder containing special file.
4383Currently git, mercurial and bazaar repos are considered projects by default.
4384If you want to mark a folder manually as a project just create an empty
4385.projectile file in it.")
4386 (license license:gpl3+)))
4aea1e01
DT
4387
4388(define-public emacs-elfeed
4389 (package
4390 (name "emacs-elfeed")
d5452aa2 4391 (version "3.0.0")
4aea1e01
DT
4392 (source (origin
4393 (method url-fetch)
4394 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4395 version ".tar.gz"))
4396 (file-name (string-append name "-" version ".tar.gz"))
4397 (sha256
4398 (base32
d5452aa2 4399 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4aea1e01 4400 (build-system emacs-build-system)
568f977f 4401 (arguments
d1d41db6
MC
4402 `(#:tests? #t
4403 #:test-command '("make" "test")))
4aea1e01
DT
4404 (home-page "https://github.com/skeeto/elfeed")
4405 (synopsis "Atom/RSS feed reader for Emacs")
4406 (description
4407 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4408and RSS, with a user interface inspired by notmuch.")
4409 (license license:gpl3+)))
c86f0207
DT
4410
4411(define-public emacs-rainbow-delimiters
4412 (package
4413 (name "emacs-rainbow-delimiters")
4414 (version "2.1.3")
4415 (source (origin
4416 (method url-fetch)
4417 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4418 "/rainbow-delimiters/" version
4419 "/rainbow-delimiters.el"))
4420 (file-name (string-append "rainbow-delimiters-" version ".el"))
4421 (sha256
4422 (base32
4423 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4424 (build-system emacs-build-system)
4425 (home-page "https://github.com/Fanael/rainbow-delimiters")
4426 (synopsis "Highlight brackets according to their depth")
4427 (description
4428 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4429highlights parentheses, brackets, and braces according to their depth. Each
4430successive level is highlighted in a different color, making it easy to spot
4431matching delimiters, orient yourself in the code, and tell which statements
4432are at a given level.")
4433 (license license:gpl3+)))
65b49ae7 4434
d95e8e01
RJ
4435(define-public emacs-rainbow-identifiers
4436 (package
4437 (name "emacs-rainbow-identifiers")
4438 (version "0.2.2")
4439 (source (origin
4440 (method url-fetch)
4441 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4442 "/rainbow-identifiers/" version
4443 "/rainbow-identifiers.el"))
4444 (file-name (string-append "rainbow-identifiers-" version ".el"))
4445 (sha256
4446 (base32
4447 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4448 (build-system emacs-build-system)
4449 (home-page "https://github.com/Fanael/rainbow-identifiers")
4450 (synopsis "Highlight identifiers in source code")
4451 (description
4452 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4453identifiers based on their names. Each identifier gets a color based on a hash
4454of its name.")
4455 (license license:bsd-2)))
4456
9619a95e
RJ
4457(define-public emacs-rainbow-mode
4458 (package
4459 (name "emacs-rainbow-mode")
61b31ac4 4460 (version "0.13")
9619a95e
RJ
4461 (source (origin
4462 (method url-fetch)
4463 (uri (string-append
4464 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4465 (sha256
4466 (base32
61b31ac4 4467 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
9619a95e
RJ
4468 (build-system emacs-build-system)
4469 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4470 (synopsis "Colorize color names in buffers")
4471 (description
4472 "This minor mode sets background color to strings that match color
4473names, e.g. #0000ff is displayed in white with a blue background.")
4474 (license license:gpl3+)))
4475
fede3a90
RW
4476(define-public emacs-visual-fill-column
4477 (package
4478 (name "emacs-visual-fill-column")
32e23aba 4479 (version "1.11")
fede3a90
RW
4480 (source (origin
4481 (method url-fetch)
4482 (uri (string-append "https://codeload.github.com/joostkremers/"
4483 "visual-fill-column/tar.gz/" version))
4484 (file-name (string-append name "-" version ".tar.gz"))
4485 (sha256
4486 (base32
32e23aba 4487 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
fede3a90
RW
4488 (build-system emacs-build-system)
4489 (home-page "https://github.com/joostkremers/visual-fill-column")
4490 (synopsis "Fill-column for visual-line-mode")
4491 (description
4492 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4493the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4494wrapping lines at the window edge, which is the standard behaviour of
4495@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4496@code{fill-column} is too large for the window, the text is wrapped at the
4497window edge.")
4498 (license license:gpl3+)))
4499
0ef1c223
KM
4500(define-public emacs-writeroom
4501 (package
4502 (name "emacs-writeroom")
4503 (version "3.7")
4504 (source (origin
4505 (method url-fetch)
4506 (uri (string-append
4507 "https://github.com/joostkremers/writeroom-mode/archive/"
4508 version ".tar.gz"))
4509 (file-name (string-append name "-" version ".tar.gz"))
4510 (sha256
4511 (base32
4512 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4513 (build-system emacs-build-system)
4514 (propagated-inputs
4515 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4516 (home-page "https://github.com/joostkremers/writeroom-mode")
4517 (synopsis "Distraction-free writing for Emacs")
4518 (description
4519 "This package defines a minor mode for distraction-free writing. Some of
4520the default effects include entering fullscreen, deleting other windows of the
4521current frame, disabling the mode line, and adding margins to the buffer that
4522restrict the text width to 80 characters.")
4523 (license license:bsd-3)))
4524
65b49ae7
DT
4525(define-public emacs-ido-completing-read+
4526 (package
4527 (name "emacs-ido-completing-read+")
4528 (version "3.12")
4529 (source (origin
4530 (method url-fetch)
4531 (uri (string-append "https://raw.githubusercontent.com"
4532 "/DarwinAwardWinner/ido-ubiquitous/v"
4533 version "/ido-completing-read+.el"))
4534 (file-name (string-append "ido-completing-read+-" version ".el"))
4535 (sha256
4536 (base32
4537 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4538 (build-system emacs-build-system)
4539 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4540 (synopsis "Replacement for completing-read using ido")
4541 (description
4542 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4543Importantly, it detects edge cases that ordinary ido cannot handle and either
4544adjusts them so ido can handle them, or else simply falls back to the standard
4545Emacs completion function instead.")
4546 (license license:gpl3+)))
529fe992
DT
4547
4548(define-public emacs-ido-ubiquitous
4549 (package
4550 (name "emacs-ido-ubiquitous")
4551 (version "3.12")
4552 (source (origin
4553 (method url-fetch)
4554 (uri (string-append "https://raw.githubusercontent.com"
4555 "/DarwinAwardWinner/ido-ubiquitous/v"
4556 version "/ido-ubiquitous.el"))
4557 (file-name (string-append "ido-ubiquitous-" version ".el"))
4558 (sha256
4559 (base32
4560 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4561 (build-system emacs-build-system)
4562 (propagated-inputs
4563 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4564 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4565 (synopsis "Use ido (nearly) everywhere")
4566 (description
4567 "Ido-ubiquitous enables ido-style completion for almost every function
4568that uses the standard completion function completing-read.")
4569 (license license:gpl3+)))
63de1231
DT
4570
4571(define-public emacs-yaml-mode
4572 (package
4573 (name "emacs-yaml-mode")
847284e1 4574 (version "0.0.13")
63de1231
DT
4575 (source (origin
4576 (method url-fetch)
4577 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4578 "/yaml-mode/v" version "/yaml-mode.el"))
4579 (file-name (string-append "yaml-mode-" version ".el"))
4580 (sha256
4581 (base32
847284e1 4582 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
4583 (build-system emacs-build-system)
4584 (home-page "https://github.com/yoshiki/yaml-mode")
4585 (synopsis "Major mode for editing YAML files")
4586 (description
4587 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4588serialization format. It was initially developed by Yoshiki Kurihara and many
4589features were added by Marshall Vandegrift. As YAML and Python share the fact
4590that indentation determines structure, this mode provides indentation and
4591indentation command behavior very similar to that of python-mode.")
4592 (license license:gpl3+)))
7529c883
DT
4593
4594(define-public emacs-web-mode
4595 (package
4596 (name "emacs-web-mode")
bc1d26e3 4597 (version "16")
7529c883
DT
4598 (source (origin
4599 (method url-fetch)
4600 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4601 "/web-mode/v" version "/web-mode.el"))
4602 (file-name (string-append "web-mode-" version ".el"))
4603 (sha256
4604 (base32
bc1d26e3 4605 "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
7529c883
DT
4606 (build-system emacs-build-system)
4607 (synopsis "Major mode for editing web templates")
4608 (description "Web-mode is an Emacs major mode for editing web templates
4609aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4610client/server side engines). Web-mode is compatible with many template
4611engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4612Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4613Dust.js, React/JSX, Angularjs, ejs, etc.")
4614 (home-page "http://web-mode.org/")
4615 (license license:gpl3+)))
ae609001 4616
814da59f 4617(define-public emacs-wgrep
3ad4443f
PN
4618 (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
4619 ;; Late commit fixes compatibility issue with Emacs 26+.
4620 (package
4621 (name "emacs-wgrep")
4622 (version (git-version "2.1.10" "1" commit))
4623 (source (origin
4624 (method git-fetch)
4625 (uri (git-reference
4626 (url "https://github.com/mhayashi1120/Emacs-wgrep")
4627 (commit commit)))
4628 (file-name (git-file-name name version))
4629 (sha256
4630 (base32
4631 "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
4632 (build-system emacs-build-system)
4633 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4634 (synopsis "Edit a grep buffer and apply those changes to the files")
4635 (description
4636 "Emacs wgrep allows you to edit a grep buffer and apply those changes
4637to the file buffer. Several backends are supported beside the classic grep:
4638ack, ag, helm and pt.")
4639 (license license:gpl3+))))
814da59f 4640
ae609001
MJ
4641(define-public emacs-helm
4642 (package
4643 (name "emacs-helm")
7506f501 4644 (version "2.9.6")
ae609001
MJ
4645 (source (origin
4646 (method url-fetch)
4647 (uri (string-append
4648 "https://github.com/" name "/helm/archive/v"
4649 version ".tar.gz"))
4650 (file-name (string-append name "-" version ".tar.gz"))
4651 (sha256
4652 (base32
7506f501 4653 "1f7m09i8gr0gk5nw5dn7rpdz20dg3hl4p77dpygkhl82yhk9q2ql"))))
ae609001
MJ
4654 (build-system emacs-build-system)
4655 (propagated-inputs
4656 `(("emacs-async" ,emacs-async)
4657 ("emacs-popup" ,emacs-popup)))
4658 (home-page "https://emacs-helm.github.io/helm/")
4659 (synopsis "Incremental completion and selection narrowing
4660framework for Emacs")
4661 (description "Helm is incremental completion and selection narrowing
4662framework for Emacs. It will help steer you in the right direction when
4663you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4664of @code{anything.el} originally written by Tamas Patrovic and can be
4665considered to be its successor. Helm sets out to clean up the legacy code in
4666@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4667not tied in the trap of backward compatibility.")
4668 (license license:gpl3+)))
f9be4366 4669
03cc1cf3
KM
4670(define-public emacs-helm-swoop
4671 (package
4672 (name "emacs-helm-swoop")
d3d57661 4673 (version "1.7.4")
03cc1cf3
KM
4674 (source (origin
4675 (method url-fetch)
4676 (uri (string-append
4677 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4678 version
4679 ".tar.gz"))
4680 (file-name (string-append name "-" version ".tar.gz"))
4681 (sha256
4682 (base32
d3d57661 4683 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
03cc1cf3
KM
4684 (build-system emacs-build-system)
4685 (propagated-inputs
4686 `(("emacs-helm" ,emacs-helm)))
4687 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4688 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4689 (description
4690 "This package builds on the Helm interface to provide several commands
4691for search-based navigation of buffers.")
4692 (license license:gpl2+)))
4693
f69c29f7
KM
4694(define-public emacs-helm-projectile
4695 (package
4696 (name "emacs-helm-projectile")
4697 (version "0.14.0")
4698 (source (origin
4699 (method url-fetch)
4700 (uri (string-append
4701 "https://github.com/bbatsov/helm-projectile/archive/v"
4702 version
4703 ".tar.gz"))
4704 (file-name (string-append name "-" version ".tar.gz"))
4705 (sha256
4706 (base32
4707 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4708 (build-system emacs-build-system)
4709 (propagated-inputs
4710 `(("emacs-dash" ,emacs-dash)
4711 ("emacs-helm" ,emacs-helm)
4712 ("emacs-projectile" ,emacs-projectile)))
4713 (home-page "https://github.com/bbatsov/helm-projectile")
4714 (synopsis "Helm integration for Projectile")
4715 (description
4716 "This Emacs library provides a Helm interface for Projectile.")
4717 (license license:gpl3+)))
4718
2e4bb8c8 4719(define-public emacs-helm-make
555a7429 4720 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
2e4bb8c8
OP
4721 (revision "1"))
4722 (package
4723 (name "emacs-helm-make")
4724 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
4725 (source
4726 (origin
4727 (method git-fetch)
4728 (uri (git-reference
4729 (url "https://github.com/abo-abo/helm-make.git")
4730 (commit commit)))
4731 (file-name (string-append name "-" version "-checkout"))
4732 (sha256
4733 (base32
555a7429 4734 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
2e4bb8c8
OP
4735 (build-system emacs-build-system)
4736 (propagated-inputs
4737 `(("emacs-helm" ,emacs-helm)
4738 ("emacs-projectile" ,emacs-projectile)))
4739 (home-page "https://github.com/abo-abo/helm-make")
4740 (synopsis "Select a Makefile target with helm")
4741 (description "@code{helm-make} or @code{helm-make-projectile} will give
4742you a @code{helm} selection of directory Makefile's targets. Selecting a
4743target will call @code{compile} on it.")
4744 (license license:gpl3+))))
4745
f9be4366
AP
4746(define-public emacs-cider
4747 (package
4748 (name "emacs-cider")
1f143575 4749 (version "0.15.1")
f9be4366
AP
4750 (source (origin
4751 (method url-fetch)
4752 (uri (string-append
4753 "https://github.com/clojure-emacs/cider/archive/v"
4754 version ".tar.gz"))
4755 (file-name (string-append name "-" version ".tar.gz"))
4756 (sha256
4757 (base32
1f143575 4758 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
f9be4366 4759 (build-system emacs-build-system)
65e4109c
SB
4760 (arguments
4761 '(#:exclude ; Don't exclude 'cider-test.el'.
4762 '("^\\.dir-locals\\.el$" "^test/")))
f9be4366
AP
4763 (propagated-inputs
4764 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4765 ("emacs-spinner" ,emacs-spinner)
4766 ("emacs-pkg-info" ,emacs-pkg-info)
d0a52052 4767 ("emacs-queue" ,emacs-queue)))
f9be4366
AP
4768 (home-page "https://cider.readthedocs.org/")
4769 (synopsis "Clojure development environment for Emacs")
4770 (description
4771 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
4772provide an interactive development experience similar to the one you'd get
4773when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
4774Geiser) and Smalltalk.
4775
4776CIDER is the successor to the now deprecated combination of using SLIME +
4777swank-clojure for Clojure development.
4778
4779There are plenty of differences between CIDER and SLIME, but the core ideas
4780are pretty much the same (and SLIME served as the principle inspiration for
4781CIDER).")
4782 (license license:gpl3+)))
26e08b4d 4783
e982500f
RW
4784;; There hasn't been a tag or release since 2015, so we take the latest
4785;; commit.
4786(define-public emacs-sly
4787 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
4788 (revision "1"))
4789 (package
4790 (name "emacs-sly")
4791 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
4792 (source
4793 (origin
4794 (method git-fetch)
4795 (uri (git-reference
4796 (url "https://github.com/joaotavora/sly.git")
4797 (commit commit)))
aeb95f1f 4798 (file-name (git-file-name name version))
e982500f
RW
4799 (sha256
4800 (base32
4801 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
4802 (build-system emacs-build-system)
4803 (arguments
4804 `(#:include (cons "^lib\\/" %default-include)
4805 #:phases
4806 ;; The package provides autoloads.
4807 (modify-phases %standard-phases
4808 (delete 'make-autoloads))))
4809 (home-page "https://github.com/joaotavora/sly")
4810 (synopsis "Sylvester the Cat's Common Lisp IDE")
4811 (description
4812 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
4813contains the following improvements over it:
4814
4815@enumerate
4816@item Completely redesigned REPL based on Emacs's own full-featured
4817 @code{comint.el}
4818@item Live code annotations via a new @code{sly-stickers} contrib
4819@item Consistent interactive button interface. Everything can be copied to
4820 the REPL.
4821@item Multiple inspectors with independent history
4822@item Regexp-capable @code{M-x sly-apropos}
4823@item Contribs are first class SLY citizens and enabled by default
4824@item Use ASDF to loads contribs on demand.
4825@end enumerate
4826
4827SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
4828xref, etc...) are still available, but with better integration.")
4829 (license license:gpl3+))))
4830
26e08b4d 4831(define-public emacs-lua-mode
69dcad33
AW
4832 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
4833 (revision "1"))
4834 (package
4835 (name "emacs-lua-mode")
4836 (version (string-append "20151025." revision "-" (string-take commit 9)))
4837 (home-page "https://github.com/immerrr/lua-mode/")
4838 (source (origin
4839 (method git-fetch)
4840 (uri (git-reference
4841 (url home-page)
4842 (commit commit)))
4843 (file-name (string-append name "-" version ".checkout"))
4844 (sha256
4845 (base32
4846 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
4847 (build-system emacs-build-system)
4848 (synopsis "Major mode for lua")
4849 (description
4850 "This Emacs package provides a mode for @uref{https://www.lua.org/,
26e08b4d 4851Lua programing language}.")
69dcad33 4852 (license license:gpl2+))))
0202612d 4853
4854(define-public emacs-ebuild-mode
4855 (package
4856 (name "emacs-ebuild-mode")
4735393a 4857 (version "1.37")
0202612d 4858 (source (origin
4859 (method url-fetch)
4860 (uri (string-append
4861 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
4862 "-" version ".tar.xz"))
4863 (file-name (string-append name "-" version ".tar.xz"))
4864 (sha256
4865 (base32
4735393a 4866 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
0202612d 4867 (build-system emacs-build-system)
4868 (home-page "https://devmanual.gentoo.org")
4869 (synopsis "Major modes for Gentoo package files")
4870 (description
4871 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
4872news items, openrc and runscripts.")
4873 (license license:gpl2+)))
a9fbe94e 4874
2edbfbf5 4875(define-public emacs-evil
913f1f1f
PN
4876 (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
4877 (package
4878 (name "emacs-evil")
4879 (version (git-version "1.2.13" "1" commit))
4880 (source
4881 (origin
4882 (method git-fetch)
4883 (uri (git-reference
4884 (url "https://github.com/emacs-evil/evil")
4885 (commit commit)))
4886 (file-name (string-append name "-" version "-checkout"))
4887 (sha256
4888 (base32
4889 "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
4890 (build-system emacs-build-system)
4891 (propagated-inputs
4892 `(("emacs-undo-tree" ,emacs-undo-tree)
4893 ("emacs-goto-chg" ,emacs-goto-chg)))
4894 (home-page "https://github.com/emacs-evil/evil")
4895 (synopsis "Extensible Vi layer for Emacs")
4896 (description
4897 "Evil is an extensible vi layer for Emacs. It emulates the
2edbfbf5 4898main features of Vim, and provides facilities for writing custom
4899extensions.")
913f1f1f 4900 (license license:gpl3+))))
2edbfbf5 4901
a0bee5e7 4902(define-public emacs-evil-collection
cb19df37
PN
4903 (let ((commit "5d739f58118a5a316c4fe25adb4e13ccea3fdc10")
4904 (revision "2"))
a0bee5e7
PN
4905 (package
4906 (name "emacs-evil-collection")
cb19df37 4907 (version (git-version "20180721" revision commit))
a0bee5e7
PN
4908 (source (origin
4909 (method git-fetch)
4910 (uri (git-reference
4911 (url "https://github.com/emacs-evil/evil-collection")
4912 (commit commit)))
4913 (file-name (string-append name "-" version "-checkout"))
4914 (sha256
4915 (base32
cb19df37 4916 "05p612qncd0cp5q61hq2ag1k558vhb10049xrc88n9l6qwz9bpk3"))))
a0bee5e7
PN
4917 (build-system emacs-build-system)
4918 (propagated-inputs
4919 `(("emacs-evil" ,emacs-evil)))
4920 (home-page "https://github.com/emacs-evil/evil-collection")
4921 (synopsis "Collection of Evil bindings for many major and minor modes")
4922 (description "This is a collection of Evil bindings for the parts of
4923Emacs that Evil does not cover properly by default, such as @code{help-mode},
4924@code{M-x calendar}, Eshell and more.")
4925 (license license:gpl3+))))
4926
ce74e520 4927(define-public emacs-goto-chg
4928 (package
4929 (name "emacs-goto-chg")
4930 (version "1.6")
4931 (source
4932 (origin
4933 (method url-fetch)
4934 ;; There is no versioned source.
4935 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 4936 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 4937 (sha256
4938 (base32
4939 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4940 (build-system emacs-build-system)
4941 ;; There is no other home page.
4942 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4943 (synopsis "Go to the last change in the Emacs buffer")
4944 (description
4945 "This package provides @code{M-x goto-last-change} command that goes to
4946the point of the most recent edit in the current Emacs buffer. When repeated,
4947go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4948used for reverse direction.")
4949 (license license:gpl2+)))
4950
a1eba1be
VD
4951(define-public emacs-monroe
4952 (package
4953 (name "emacs-monroe")
b125649a 4954 (version "0.3.1")
a1eba1be
VD
4955 (source
4956 (origin
4957 (method url-fetch)
b125649a
VD
4958 (uri (string-append "https://github.com/sanel/monroe/archive/"
4959 version ".tar.gz"))
4960 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
4961 (sha256
4962 (base32
b125649a 4963 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 4964 (build-system emacs-build-system)
b125649a 4965 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
4966 (synopsis "Clojure nREPL client for Emacs")
4967 (description
4968 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4969distribution, primarily targeting Clojure users")
4970 (license license:gpl3+)))
4971
32034405
NG
4972(define-public emacs-orgalist
4973 (package
4974 (name "emacs-orgalist")
4bf474b2 4975 (version "1.8")
32034405
NG
4976 (source
4977 (origin
4978 (method url-fetch)
4979 (uri (string-append "https://elpa.gnu.org/packages/"
4980 "orgalist-" version ".el"))
4981 (sha256
4982 (base32
4bf474b2 4983 "1wqwnmn08i0qkxm8b2iclvf6cydcn68h1p3h7r1kig2bdn5b8948"))))
32034405
NG
4984 (build-system emacs-build-system)
4985 (home-page "http://elpa.gnu.org/packages/orgalist.html")
4986 (synopsis "Manage Org-like lists in non-Org buffers")
4987 (description "Write Org mode's plain lists in non-Org buffers. More
4988specifically, Orgalist supports the syntax of Org mode for numbered,
4989unnumbered, description items, checkboxes, and counter cookies.
4990
4991The library also implements radio lists, i.e., lists written in Org
40dc6df4 4992syntax later translated into the host format, e.g., LaTeX or HTML.")
32034405
NG
4993 (license license:gpl3+)))
4994
a9fbe94e
LC
4995(define-public emacs-writegood-mode
4996 (package
4997 (name "emacs-writegood-mode")
4998 (version "2.0.2")
7bf837fd 4999 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
5000 (source (origin
5001 (method git-fetch)
5002 (uri (git-reference
5003 (url home-page)
5004 (commit (string-append "v" version))))
5005 (sha256
5006 (base32
5007 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
5008 (file-name (string-append name "-checkout"))))
5009 (build-system emacs-build-system)
5010 (synopsis "Polish up poor writing on the fly")
5011 (description
5012 "This minor mode tries to find and highlight problems with your writing
5013in English as you type. It primarily detects \"weasel words\" and abuse of
5014passive voice.")
5015 (license license:gpl3+)))
e08ca4b9 5016
5017(define-public emacs-neotree
5018 (package
5019 (name "emacs-neotree")
95058772 5020 (version "0.5.2")
e08ca4b9 5021 (home-page "https://github.com/jaypei/emacs-neotree")
5022 (source (origin
5023 (method url-fetch)
5024 (uri (string-append
5025 "https://github.com/jaypei/" name
95058772 5026 "/archive/" version ".tar.gz"))
e08ca4b9 5027 (sha256
5028 (base32
95058772 5029 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
f409d0aa 5030 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 5031 (build-system emacs-build-system)
5032 (synopsis "Folder tree view for Emacs")
5033 (description "This Emacs package provides a folder tree view.")
5034 (license license:gpl3+)))
59065bb3
NG
5035
5036(define-public emacs-org
5037 (package
5038 (name "emacs-org")
769e7155
CL
5039 ;; emacs-org-contrib inherits from this package. Please update its sha256
5040 ;; checksum as well.
90735611 5041 (version "9.1.13")
59065bb3
NG
5042 (source (origin
5043 (method url-fetch)
2d19a7e4 5044 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
5045 version ".tar"))
5046 (sha256
5047 (base32
90735611 5048 "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr"))))
59065bb3 5049 (build-system emacs-build-system)
7cbe77d7 5050 (home-page "https://orgmode.org/")
59065bb3
NG
5051 (synopsis "Outline-based notes management and organizer")
5052 (description "Org is an Emacs mode for keeping notes, maintaining TODO
90735611
NG
5053lists, and project planning with a fast and effective lightweight markup
5054language. It also is an authoring system with unique support for literate
5055programming and reproducible research.")
59065bb3 5056 (license license:gpl3+)))
41392b9a 5057
8e2ae7ee
CB
5058(define-public emacs-org-contrib
5059 (package
5060 (inherit emacs-org)
5061 (name "emacs-org-contrib")
90735611 5062 (version "20180507")
8e2ae7ee
CB
5063 (source (origin
5064 (method url-fetch)
7cbe77d7 5065 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5ecd2d28 5066 version ".tar"))
8e2ae7ee
CB
5067 (sha256
5068 (base32
90735611 5069 "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
8e2ae7ee
CB
5070 (arguments
5071 `(#:modules ((guix build emacs-build-system)
5072 (guix build utils)
5073 (guix build emacs-utils)
5074 (ice-9 ftw)
5075 (srfi srfi-1))
5076 #:phases
5077 (modify-phases %standard-phases
5078 (add-after 'install 'delete-org-files
5079 (lambda* (#:key inputs outputs #:allow-other-keys)
5080 (let* ((out (assoc-ref outputs "out"))
5081 (org (assoc-ref inputs "emacs-org"))
5082 (contrib-files
5083 (map basename (find-files out)))
5084 (org+contrib-files
5085 (map basename (find-files org)))
5086 (duplicates (lset-intersection
5087 string=? contrib-files org+contrib-files)))
5088 (with-directory-excursion
5089 (string-append
5ecd2d28 5090 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
8e2ae7ee
CB
5091 (for-each delete-file duplicates))
5092 #t))))))
5093 (propagated-inputs
0b8823d8
MC
5094 `(("emacs-org" ,emacs-org)
5095 ("emacs-scel" ,emacs-scel)))
35377cfa 5096 (synopsis "Contributed packages to Org mode")
8e2ae7ee
CB
5097 (description "Org is an Emacs mode for keeping notes, maintaining TODO
5098lists, and project planning with a fast and effective plain-text system.
5099
77e3ce3e 5100This package is equivalent to org-plus-contrib, but only includes additional
8e2ae7ee
CB
5101files that you would find in @file{contrib/} from the git repository.")))
5102
41392b9a 5103(define-public emacs-flx
5104 (package
5105 (name "emacs-flx")
5106 (version "0.6.1")
5107 (source
5108 (origin
5109 (method url-fetch)
5110 (uri (string-append "https://github.com/lewang/"
5111 "flx/archive/v" version ".tar.gz"))
5112 (sha256
5113 (base32
5114 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
5115 (file-name (string-append name "-" version ".tar.gz"))))
5116 (build-system emacs-build-system)
5117 (home-page "https://github.com/lewang/flx")
5118 (synopsis "Fuzzy matching for Emacs")
5119 (description
5120 "Flx provides fuzzy matching for emacs a la sublime text.
5121The sorting algorithm is a balance between word beginnings (abbreviation)
5122and contiguous matches (substring). The longer the substring match,
5123the higher it scores. This maps well to how we think about matching.
5124Flx has support for ido (interactively do things) through flx-ido.")
5125 (license license:gpl3+)))
9657aba4 5126
5127(define-public emacs-cyberpunk-theme
5128 (package
5129 (name "emacs-cyberpunk-theme")
88e6086e 5130 (version "1.19")
9657aba4 5131 (source
5132 (origin
5133 (method url-fetch)
5134 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
5135 "archive/" version ".tar.gz"))
5136 (sha256
5137 (base32
88e6086e 5138 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
9657aba4 5139 (file-name (string-append name "-" version ".tar.gz"))))
5140 (build-system emacs-build-system)
5141 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
5142 (synopsis "Cyberpunk theme for emacs built-in color theme support")
5143 (description
5144 "Cyberpunk color theme for the emacs 24+ built-in color theme support
5145known loosely as deftheme. Many mode-specific customizations are included.")
5146 (license license:gpl3+)))
840224aa 5147
8f493950 5148(define-public emacs-danneskjold-theme
5149 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
5150 (revision "1"))
5151 (package
5152 (name "emacs-danneskjold-theme")
5153 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5154 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
5155 (source
5156 (origin
5157 (method git-fetch)
5158 (uri (git-reference
5159 (url home-page)
5160 (commit commit)))
5161 (file-name (string-append name "-" version "-checkout"))
5162 (sha256
5163 (base32
5164 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
5165 (build-system emacs-build-system)
5166 (arguments
5167 `(#:phases
5168 (modify-phases %standard-phases
5169 (add-after 'unpack 'delete-screenshots
5170 (lambda _
5171 (delete-file-recursively "screenshots") #t)))))
5172 (synopsis "High-contrast Emacs theme")
5173 (description
5174 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5175 (license license:gpl3+))))
5176
1ba67b62 5177(define-public emacs-dream-theme
5178 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5179 (revision "1"))
5180 (package
5181 (name "emacs-dream-theme")
5182 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5183 (source
5184 (origin
5185 (method git-fetch)
5186 (uri (git-reference
5187 (url "https://github.com/djcb/dream-theme")
5188 (commit commit)))
5189 (file-name (string-append name "-" version "-checkout"))
5190 (sha256
5191 (base32
5192 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5193 (build-system emacs-build-system)
5194 (home-page "https://github.com/djcb/dream-theme")
5195 (synopsis "High-contrast Emacs theme")
5196 (description
5197 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5198by zenburn, sinburn and similar themes, but slowly diverging from them.")
5199 (license license:gpl3+))))
5200
840224aa 5201(define-public emacs-auto-complete
5202 (package
5203 (name "emacs-auto-complete")
5204 (version "1.5.1")
5205 (source
5206 (origin
5207 (method url-fetch)
5208 (uri (string-append "https://github.com/auto-complete/"
5209 "auto-complete/archive/v" version ".tar.gz"))
5210 (sha256
5211 (base32
5212 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5213 (file-name (string-append name "-" version ".tar.gz"))))
5214 (build-system emacs-build-system)
5215 (propagated-inputs
5216 `(("emacs-popup" ,emacs-popup)))
5217 (home-page "https://github.com/auto-complete/auto-complete")
5218 (synopsis "Intelligent auto-completion extension for Emacs")
5219 (description
5220 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5221It extends the standard Emacs completion interface and provides an environment
5222that allows users to concentrate more on their own work. Its features are:
5223a visual interface, reduce overhead of completion by using statistic method,
5224extensibility.")
5225 (license license:gpl3+)))
154c71e0
AI
5226
5227(define-public m17n-db
5228 (package
5229 (name "m17n-db")
5230 (version "1.7.0")
5231 (source
5232 (origin
5233 (method url-fetch)
5234 (uri (string-append "mirror://savannah/m17n/m17n-db-"
5235 version ".tar.gz"))
5236 (sha256
5237 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
5238 (build-system gnu-build-system)
5239 (inputs
7c90d0f4 5240 `(("gettext" ,gettext-minimal)))
154c71e0
AI
5241 (arguments
5242 `(#:configure-flags
5243 (list (string-append "--with-charmaps="
5244 (assoc-ref %build-inputs "libc")
5245 "/share/i18n/charmaps"))))
5246 ;; With `guix lint' the home-page URI returns a small page saying
5247 ;; that your browser does not handle frames. This triggers the "URI
5248 ;; returns suspiciously small file" warning.
340978d7 5249 (home-page "https://www.nongnu.org/m17n/")
154c71e0
AI
5250 (synopsis "Multilingual text processing library (database)")
5251 (description "The m17n library realizes multilingualization of
5252many aspects of applications. The m17n library represents
5253multilingual text as an object named M-text. M-text is a string with
5254attributes called text properties, and designed to substitute for
5255string in C. Text properties carry any information required to input,
5256display and edit the text.
5257
5258This package contains the library database.")
5259 (license license:lgpl2.1+)))
a80b60f4
AI
5260
5261(define-public m17n-lib
5262 (package
5263 (name "m17n-lib")
5264 (version "1.7.0")
5265 (source
5266 (origin
5267 (method url-fetch)
966a543b
LC
5268 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5269 version ".tar.gz"))
a80b60f4
AI
5270 (sha256
5271 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
5272 (build-system gnu-build-system)
5273 (inputs
5274 `(("fribidi" ,fribidi)
5275 ("gd" ,gd)
5276 ("libotf" ,libotf)
5277 ("libxft" ,libxft)
5278 ("libxml2" ,libxml2)
5279 ("m17n-db" ,m17n-db)))
5280 (arguments
5281 `(#:parallel-build? #f))
5282 ;; With `guix lint' the home-page URI returns a small page saying
5283 ;; that your browser does not handle frames. This triggers the "URI
5284 ;; returns suspiciously small file" warning.
340978d7 5285 (home-page "https://www.nongnu.org/m17n/")
a80b60f4
AI
5286 (synopsis "Multilingual text processing library (runtime)")
5287 (description "The m17n library realizes multilingualization of
5288many aspects of applications. The m17n library represents
5289multilingual text as an object named M-text. M-text is a string with
5290attributes called text properties, and designed to substitute for
5291string in C. Text properties carry any information required to input,
5292display and edit the text.
5293
5294This package contains the library runtime.")
5295 (license license:lgpl2.1+)))
71d3ee1c
AI
5296
5297(define-public emacs-nginx-mode
5298 (package
5299 (name "emacs-nginx-mode")
5300 (version "1.1.4")
5301 (source
5302 (origin
5303 (method url-fetch)
5304 (uri (string-append
5305 "https://github.com/ajc/nginx-mode/archive/v"
5306 version ".tar.gz"))
5307 (file-name (string-append name "-" version ".tar.gz"))
5308 (sha256
5309 (base32
5310 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
5311 (build-system emacs-build-system)
5312 (home-page "https://github.com/ajc/nginx-mode")
5313 (synopsis "Emacs major mode for editing nginx config files")
5314 (description "This package provides an Emacs major mode for
5315editing nginx config files.")
5316 (license license:gpl2+)))
8f50634b
FB
5317
5318(define-public emacs-stream
5319 (package
5320 (name "emacs-stream")
5321 (version "2.2.0")
5322 (home-page "https://github.com/NicolasPetton/stream")
5323 (source
5324 (origin
5325 (method url-fetch)
5326 (file-name (string-append name "-" version ".tar.gz"))
5327 (uri (string-append home-page "/archive/"version ".tar.gz"))
5328 (sha256
5329 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5330 (build-system emacs-build-system)
5331 (synopsis "Implementation of streams for Emacs")
5332 (description "This library provides an implementation of streams for Emacs.
5333Streams are implemented as delayed evaluation of cons cells.")
5334 (license license:gpl3+)))
0fc06f3e
FB
5335
5336(define-public emacs-el-search
5337 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5338 (revision "1"))
5339 (package
5340 (name "emacs-el-search")
5341 ;; No ufficial release.
5342 (version (string-append "0.0-" revision "." (string-take commit 7)))
5343 (home-page "https://github.com/emacsmirror/el-search")
5344 (source
5345 (origin
5346 (method git-fetch)
5347 (file-name (string-append name "-" version ".tar.gz"))
5348 (uri (git-reference
5349 (commit commit)
5350 (url (string-append home-page ".git"))))
5351 (sha256
5352 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5353 (build-system emacs-build-system)
5354 (inputs `(("emacs-stream" ,emacs-stream)))
5355 (synopsis "Expression based interactive search for emacs-lisp-mode")
5356 (description "This package provides expression based interactive search
5357procedures for emacs-lisp-mode.")
5358 (license license:gpl3+))))
1e523180
MO
5359
5360(define-public emacs-ht
5361 (package
5362 (name "emacs-ht")
5363 (version "2.1")
5364 (source
5365 (origin
5366 (method url-fetch)
5367 (uri (string-append
5368 "https://github.com/Wilfred/ht.el/archive/"
5369 version ".tar.gz"))
5370 (file-name (string-append name "-" version ".tar.gz"))
5371 (sha256
5372 (base32
5373 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5374 (build-system emacs-build-system)
5375 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5376 (home-page "https://github.com/Wilfred/ht.el")
5377 (synopsis "Hash table library for Emacs")
5378 (description
5379 "This package simplifies the use of hash tables in elisp. It also
5380provides functions to convert hash tables from and to alists and plists.")
5381 (license license:gpl3+)))
5382
521f5d96
MO
5383(define-public emacs-log4e
5384 (package
5385 (name "emacs-log4e")
5386 (version "0.3.0")
5387 (source
5388 (origin
5389 (method url-fetch)
5390 (uri (string-append
5391 "https://github.com/aki2o/log4e/archive/v"
5392 version ".tar.gz"))
5393 (file-name (string-append name "-" version ".tar.gz"))
5394 (sha256
5395 (base32
5396 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5397 (build-system emacs-build-system)
5398 (arguments
5399 `(#:phases
5400 (modify-phases %standard-phases
5401 (add-after 'unpack 'remove-tests
5402 ;; Guile builder complains about null characters in some
5403 ;; strings of test files. Remove "test" directory (it is not
5404 ;; needed anyway).
5405 (lambda _
5406 (delete-file-recursively "test"))))))
5407 (home-page "https://github.com/aki2o/log4e")
5408 (synopsis "Logging framework for elisp")
5409 (description
5410 "This package provides a logging framework for elisp. It allows
5411you to deal with multiple log levels.")
5412 (license license:gpl3+)))
ba117841
MO
5413
5414(define-public emacs-gntp
5415 (package
5416 (name "emacs-gntp")
5417 (version "0.1")
5418 (source
5419 (origin
5420 (method url-fetch)
5421 (uri (string-append
5422 "https://github.com/tekai/gntp.el/archive/v"
5423 version ".tar.gz"))
5424 (file-name (string-append name "-" version ".tar.gz"))
5425 (sha256
5426 (base32
5427 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5428 (build-system emacs-build-system)
5429 (home-page "https://github.com/tekai/gntp.el")
5430 (synopsis "Growl Notification Protocol for Emacs")
5431 (description
5432 "This package implements the Growl Notification Protocol GNTP
5433described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5434It is incomplete as it only lets you send but not receive
5435notifications.")
5436 (license license:bsd-3)))
2c5e31fa
MO
5437
5438(define-public emacs-alert
5439 (package
5440 (name "emacs-alert")
5441 (version "1.2")
5442 (source
5443 (origin
5444 (method url-fetch)
5445 (uri (string-append
5446 "https://github.com/jwiegley/alert/archive/v"
5447 version ".tar.gz"))
5448 (file-name (string-append name "-" version ".tar.gz"))
5449 (sha256
5450 (base32
5451 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5452 (build-system emacs-build-system)
5453 (propagated-inputs
5454 `(("emacs-gntp" ,emacs-gntp)
5455 ("emacs-log4e" ,emacs-log4e)))
5456 (home-page "https://github.com/jwiegley/alert")
5457 (synopsis "Growl-style notification system for Emacs")
5458 (description
5459 "Alert is a Growl-workalike for Emacs which uses a common notification
5460interface and multiple, selectable \"styles\", whose use is fully
5461customizable by the user.")
5462 (license license:gpl2+)))
c695ed3c
MO
5463
5464(define-public emacs-mu4e-alert
5465 (package
5466 (name "emacs-mu4e-alert")
dd69ff6d 5467 (version "1.0")
c695ed3c
MO
5468 (source
5469 (origin
5470 (method url-fetch)
5471 (uri (string-append
5472 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5473 version ".tar.gz"))
5474 (file-name (string-append name "-" version ".tar.gz"))
5475 (sha256
5476 (base32
dd69ff6d 5477 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
5478 (build-system emacs-build-system)
5479 (propagated-inputs
5480 `(("emacs-alert" ,emacs-alert)
5481 ("emacs-s" ,emacs-s)
b6efe0e8
MC
5482 ("emacs-ht" ,emacs-ht)
5483 ("mu" ,mu)))
c695ed3c
MO
5484 (home-page "https://github.com/iqbalansari/mu4e-alert")
5485 (synopsis "Desktop notification for mu4e")
5486 (description
5487 "This package provides desktop notifications for mu4e.
5488Additionally it can display the number of unread emails in the
5489mode-line.")
5490 (license license:gpl3+)))
e967dd9c 5491
5492(define-public emacs-pretty-mode
5493 (package
5494 (name "emacs-pretty-mode")
5495 (version "2.0.3")
5496 (source
5497 (origin
5498 (method url-fetch)
5499 (uri (string-append "https://github.com/akatov/pretty-mode/"
5500 "archive/" version ".tar.gz"))
5501 (file-name (string-append name "-" version ".tar.gz"))
5502 (sha256
5503 (base32
5504 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5505 (build-system emacs-build-system)
5506 (home-page "https://github.com/akatov/pretty-mode")
5507 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5508 (description
5509 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5510 (license license:gpl3+)))
c1029f86
RW
5511
5512(define-public emacs-yasnippet
5513 (package
5514 (name "emacs-yasnippet")
bf1264ab 5515 (version "0.12.2")
c1029f86
RW
5516 (source (origin
5517 (method url-fetch)
5518 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5519 "archive/" version ".tar.gz"))
5520 (file-name (string-append name "-" version ".tar.gz"))
5521 (sha256
5522 (base32
bf1264ab 5523 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
1f0d4705
KM
5524 (modules '((guix build utils)))
5525 (snippet
5526 '(begin
5527 ;; YASnippet expects a "snippets" subdirectory in the same
5528 ;; directory as yasnippet.el, but we don't install it
5529 ;; because it's a git submodule pointing to an external
5530 ;; repository. Adjust `yas-snippet-dirs' to prevent
5531 ;; warnings about a missing directory.
5532 (substitute* "yasnippet.el"
5533 (("^ +'yas-installed-snippets-dir\\)\\)\n")
6cbee49d
MW
5534 "))\n"))
5535 #t))))
c1029f86 5536 (build-system emacs-build-system)
7bf837fd 5537 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
5538 (synopsis "Yet another snippet extension for Emacs")
5539 (description
5540 "YASnippet is a template system for Emacs. It allows you to type an
5541abbreviation and automatically expand it into function templates.")
5542 (license license:gpl3+)))
55fa5349 5543
4bfdf034
KM
5544(define-public emacs-yasnippet-snippets
5545 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5546 (revision "1"))
5547 (package
5548 (name "emacs-yasnippet-snippets")
5549 (version (string-append "1-" revision "." (string-take commit 8)))
5550 (source
5551 (origin
5552 (method git-fetch)
5553 (uri (git-reference
5554 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5555 (commit commit)))
5556 (file-name (string-append name "-" version "-checkout"))
5557 (sha256
5558 (base32
5559 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5560 (build-system trivial-build-system)
5561 (arguments
5562 `(#:modules ((ice-9 ftw)
5563 (ice-9 regex)
5564 (guix build utils))
5565 #:builder
5566 (begin
5567 (use-modules (ice-9 ftw)
5568 (ice-9 regex)
5569 (guix build utils))
5570 (with-directory-excursion (assoc-ref %build-inputs "source")
5571 (for-each (lambda (dir)
5572 (copy-recursively
5573 dir
5574 (string-append %output
5575 "/share/emacs/yasnippet-snippets/"
5576 dir)))
5577 (scandir "." (lambda (fname)
5578 (and (string-match "-mode$" fname)
e3cfef22
MW
5579 (directory-exists? fname))))))
5580 #t)))
4bfdf034
KM
5581 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5582 (synopsis "Collection of YASnippet snippets for many languages")
5583 (description
5584 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5585the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5586To make YASnippet aware of these snippets, add the above directory to
5587@code{yas-snippet-dirs}.")
5588 (license license:expat))))
5589
2ede8c61
OP
5590(define-public emacs-helm-c-yasnippet
5591 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5592 (revision "1"))
5593 (package
5594 (name "emacs-helm-c-yasnippet")
5595 (version (string-append "0.6.7" "-" revision "."
5596 (string-take commit 7)))
5597 (source (origin
5598 (method git-fetch)
5599 (uri (git-reference
5600 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5601 (commit commit)))
5602 (file-name (string-append name "-" version "-checkout"))
5603 (sha256
5604 (base32
5605 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5606 (build-system emacs-build-system)
5607 (propagated-inputs
5608 `(("emacs-helm" ,emacs-helm)
5609 ("emacs-yasnippet" ,emacs-yasnippet)))
5610 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5611 (synopsis "Helm integration for Yasnippet")
5612 (description "This Emacs library provides Helm interface for
5613Yasnippet.")
5614 (license license:gpl2+))))
5615
b889df27 5616(define-public emacs-helm-system-packages
c1220498
PN
5617 (package
5618 (name "emacs-helm-system-packages")
5619 (version "1.10.0")
5620 (source (origin
5621 (method git-fetch)
5622 (uri (git-reference
5623 (url "https://github.com/emacs-helm/helm-system-packages")
5624 (commit (string-append "v" version))))
5625 (file-name (string-append name "-" version "-checkout"))
5626 (sha256
5627 (base32
5628 "0y5wzvfycb1bvgdk782xyl744fih43vz14wmq6gcqjarw6xfniz5"))))
5629 (build-system emacs-build-system)
5630 (propagated-inputs
5631 `(("emacs-helm" ,emacs-helm)))
5632 (home-page "https://github.com/emacs-helm/helm-system-packages")
5633 (synopsis "Helm System Packages is an interface to your package manager")
5634 (description "List all available packages in Helm (with installed
b889df27
PN
5635packages displayed in their own respective face). Fuzzy-search, mark and
5636execute the desired action over any selections of packages: Install,
5637uninstall, display packages details (in Org Mode) or insert details at point,
5638find files owned by packages... And much more, including performing all the
5639above over the network.")
c1220498 5640 (license license:gpl3+)))
b889df27 5641
55fa5349
AI
5642(define-public emacs-memoize
5643 (package
1848cdfb
AI
5644 (name "emacs-memoize")
5645 (version "1.1")
5646 (source
5647 (origin
5648 (method url-fetch)
5649 (uri (string-append
5650 "https://github.com/skeeto/emacs-memoize/archive/"
5651 version ".tar.gz"))
5652 (file-name (string-append name "-" version ".tar.gz"))
5653 (sha256
5654 (base32
5655 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5656 (build-system emacs-build-system)
5657 (arguments
5658 `(#:tests? #t
5659 #:test-command '("emacs" "--batch"
5660 "-l" "memoize-test.el"
5661 "-f" "ert-run-tests-batch-and-exit")))
5662 (home-page "https://github.com/skeeto/emacs-memoize")
5663 (synopsis "Emacs lisp memoization library")
5664 (description "@code{emacs-memoize} is an Emacs library for
55fa5349 5665memoizing functions.")
1848cdfb 5666 (license license:unlicense)))
6b7e3362 5667
c86c1991
AI
5668(define-public emacs-linum-relative
5669 (package
5670 (name "emacs-linum-relative")
5671 (version "0.5")
5672 (source
5673 (origin
5674 (method url-fetch)
5675 (uri (string-append
5676 "https://github.com/coldnew/linum-relative/archive/"
5677 version ".tar.gz"))
5678 (file-name (string-append name "-" version ".tar.gz"))
5679 (sha256
5680 (base32
5681 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5682 (build-system emacs-build-system)
5683 (home-page "https://github.com/coldnew/linum-relative")
5684 (synopsis "Relative line numbering for Emacs")
5685 (description "@code{emacs-linum-relative} displays the relative line
5686number on the left margin in Emacs.")
5687 (license license:gpl2+)))
5688
6b7e3362
VD
5689(define-public emacs-idle-highlight
5690 (package
5691 (name "emacs-idle-highlight")
5692 (version "1.1.3")
5693 (source
5694 (origin
5695 (method url-fetch)
5696 (uri (string-append
5697 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5698 version ".tar.gz"))
5699 (file-name (string-append name "-" version ".tar.gz"))
5700 (sha256
5701 (base32
5702 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5703 (build-system emacs-build-system)
5704 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 5705 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
5706 (description
5707 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 5708 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
5709 the point.")
5710 (license license:gpl3+)))
6a91c5f2
VD
5711
5712(define-public emacs-ox-twbs
5713 (package
5714 (name "emacs-ox-twbs")
5715 (version "1.1.1")
5716 (source
5717 (origin
5718 (method url-fetch)
5719 (uri (string-append
5720 "https://github.com/marsmining/ox-twbs/archive/v"
5721 version ".tar.gz"))
5722 (file-name (string-append name "-" version ".tar.gz"))
5723 (sha256
5724 (base32
5725 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5726 (build-system emacs-build-system)
5727 (home-page "https://github.com/marsmining/ox-twbs")
5728 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5729 (description
5730 "This Emacs package outputs your org-mode docs with a simple, clean and
5731modern look. It implements a new HTML back-end for exporting org-mode docs as
5732HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5733jQuery and Bootstrap resources included via osscdn.")
5734 (license license:gpl3+)))
239cf024
VD
5735
5736(define-public emacs-highlight-sexp
5737 (package
5738 (name "emacs-highlight-sexp")
5739 (version "1.0")
5740 (source
5741 (origin
5742 (method url-fetch)
5743 (uri (string-append
5744 "https://github.com/daimrod/highlight-sexp/archive/v"
5745 version ".tar.gz"))
5746 (file-name (string-append name "-" version ".tar.gz"))
5747 (sha256
5748 (base32
5749 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5750 (build-system emacs-build-system)
5751 (home-page "https://github.com/daimrod/highlight-sexp")
5752 (synopsis "Minor mode that highlights the s-exp at the current position")
5753 (description
5754 "This Emacs package highlights the s-exp at the current position.")
5755 (license license:gpl3+)))
350cfccb 5756
7a452689
OP
5757(define-public emacs-highlight-stages
5758 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5759 (revision "1"))
5760 (package
5761 (name "emacs-highlight-stages")
5762 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5763 (source
5764 (origin
5765 (method git-fetch)
5766 (uri (git-reference
5767 (url "https://github.com/zk-phi/highlight-stages.git")
5768 (commit commit)))
5769 (file-name (string-append name "-" version "-checkout"))
5770 (sha256
5771 (base32
5772 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
5773 (patches
5774 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
5775 (build-system emacs-build-system)
5776 (home-page "https://github.com/wigust/highlight-stages")
5777 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
5778 (description "@code{highlight-stages} provides an Emacs minor mode that
5779highlights quasi-quoted expressions.")
5780 (license license:gpl3+))))
5781
acf7d4a7
KK
5782(define-public emacspeak
5783 (package
5784 (name "emacspeak")
935cb931 5785 (version "48.0")
acf7d4a7
KK
5786 (source
5787 (origin
5788 (method url-fetch)
5789 (uri (string-append
5790 "https://github.com/tvraman/emacspeak/releases/download/"
5791 version "/emacspeak-" version ".tar.bz2"))
5792 (sha256
5793 (base32
935cb931 5794 "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
acf7d4a7
KK
5795 (build-system gnu-build-system)
5796 (arguments
5797 '(#:make-flags (list (string-append "prefix="
5798 (assoc-ref %outputs "out")))
5799 #:phases
5800 (modify-phases %standard-phases
5801 (replace 'configure
935cb931
KK
5802 (lambda* (#:key outputs #:allow-other-keys)
5803 (let* ((out (assoc-ref outputs "out"))
5804 (lisp (string-append out
5805 "/share/emacs/site-lisp/emacspeak")))
5806 (setenv "SHELL" (which "sh"))
5807 ;; Configure Emacspeak according to etc/install.org.
5808 (invoke "make" "config"))))
231e48d6
KK
5809 (add-after 'build 'build-espeak
5810 (lambda _
935cb931 5811 (invoke "make" "espeak")))
231e48d6 5812 (replace 'install
935cb931 5813 (lambda* (#:key inputs outputs #:allow-other-keys)
231e48d6
KK
5814 (let* ((out (assoc-ref outputs "out"))
5815 (bin (string-append out "/bin"))
5816 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
935cb931
KK
5817 (info (string-append out "/share/info"))
5818 (emacs (string-append (assoc-ref inputs "emacs")
5819 "/bin/emacs")))
231e48d6
KK
5820 ;; According to etc/install.org, the Emacspeak directory should
5821 ;; be copied to its installation destination.
5822 (for-each
5823 (lambda (file)
5824 (copy-recursively file (string-append lisp "/" file)))
935cb931
KK
5825 '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
5826 "stumpwm" "xsl"))
231e48d6
KK
5827 ;; Make sure emacspeak is loaded from the correct directory.
5828 (substitute* "etc/emacspeak.sh"
935cb931
KK
5829 (("exec FLAVOR.*")
5830 (string-append "exec " emacs " -l " lisp
231e48d6
KK
5831 "/lisp/emacspeak-setup.el $CL_ALL")))
5832 ;; Install the convenient startup script.
5833 (mkdir-p bin)
5834 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
5835 #t))
5836 (add-after 'install 'wrap-program
acf7d4a7
KK
5837 (lambda* (#:key inputs outputs #:allow-other-keys)
5838 (let* ((out (assoc-ref outputs "out"))
5839 (emacspeak (string-append out "/bin/emacspeak"))
5840 (espeak (string-append (assoc-ref inputs "espeak")
5841 "/bin/espeak")))
5842 ;; The environment variable DTK_PROGRAM tells emacspeak what
5843 ;; program to use for speech.
5844 (wrap-program emacspeak
5845 `("DTK_PROGRAM" ":" prefix (,espeak)))
5846 #t))))
5847 #:tests? #f)) ; no check target
5848 (inputs
935cb931
KK
5849 `(("emacs" ,emacs)
5850 ("espeak" ,espeak)
5851 ("perl" ,perl)
acf7d4a7
KK
5852 ("tcl" ,tcl)
5853 ("tclx" ,tclx)))
acf7d4a7
KK
5854 (home-page "http://emacspeak.sourceforge.net")
5855 (synopsis "Audio desktop interface for Emacs")
5856 (description
5857 "Emacspeak is a speech interface that allows visually impaired users to
5858interact independently and efficiently with the computer. Audio formatting
5859--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
5860allows Emacspeak to produce rich aural presentations of electronic information.
5861By seamlessly blending all aspects of the Internet such as Web-surfing and
5862messaging, Emacspeak speech-enables local and remote information via a
5863consistent and well-integrated user interface.")
5864 (license license:gpl2+)))
5865
350cfccb
AP
5866(define-public emacs-adaptive-wrap
5867 (package
5868 (name "emacs-adaptive-wrap")
13869ff5 5869 (version "0.5.1")
350cfccb
AP
5870 (source (origin
5871 (method url-fetch)
5872 (uri (string-append
5873 "http://elpa.gnu.org/packages/adaptive-wrap-"
5874 version ".el"))
5875 (sha256
5876 (base32
13869ff5 5877 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
350cfccb
AP
5878 (build-system emacs-build-system)
5879 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
5880 (synopsis "Smart line-wrapping with wrap-prefix")
5881 (description
5882 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
5883minor mode which sets the wrap-prefix property on the fly so that
5884single-long-line paragraphs get word-wrapped in a way similar to what
5885you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
5886actually changing the buffer's text.")
5887 (license license:gpl3+)))
0201c5d4 5888
42e891c2
MC
5889(define-public emacs-diff-hl
5890 (package
5891 (name "emacs-diff-hl")
5892 (version "1.8.4")
5893 (source
5894 (origin
5895 (method url-fetch)
5896 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
5897 version ".tar"))
5898 (sha256
5899 (base32
5900 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
5901 (build-system emacs-build-system)
5902 (home-page "https://github.com/dgutov/diff-hl")
5903 (synopsis
5904 "Highlight uncommitted changes using VC")
5905 (description
5906 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
5907window (using the fringe, by default), allows you to jump between
5908the hunks and revert them selectively.")
5909 (license license:gpl3+)))
5910
0201c5d4
AI
5911(define-public emacs-diminish
5912 (package
5913 (name "emacs-diminish")
5914 (version "0.45")
5915 (source
5916 (origin
5917 (method url-fetch)
5918 (uri (string-append
5919 "https://github.com/myrjola/diminish.el/archive/v"
5920 version ".tar.gz"))
5921 (file-name (string-append name "-" version ".tar.gz"))
5922 (sha256
5923 (base32
5924 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
5925 (build-system emacs-build-system)
5926 (home-page "https://github.com/myrjola/diminish.el")
5927 (synopsis "Diminish minor modes with no modeline display")
5928 (description "@code{emacs-diminish} implements hiding or
5929abbreviation of the mode line displays (lighters) of minor modes.")
5930 (license license:gpl2+)))
b247fb86
AI
5931
5932(define-public emacs-use-package
abf3a331
PM
5933 (let ((commit "da8c9e2840343906e732f9699e43d35a1f06481d")
5934 (revision "1"))
5935 (package
5936 (name "emacs-use-package")
5937 (version (git-version "2.3" revision commit))
5938 (source (origin
5939 (method git-fetch)
5940 (uri (git-reference
5941 (url "https://github.com/jwiegley/use-package")
5942 (commit commit)))
5943 (file-name (git-file-name name version))
5944 (sha256
5945 (base32
5946 "0jz38pbq1p9h85i6qcsh3sfzkd103y6mw3rg5zd14dxigp8ir3xz"))))
5947 (build-system emacs-build-system)
5948 (propagated-inputs
5949 `(("emacs-diminish" ,emacs-diminish)))
5950 (arguments
5951 `(#:tests? #t
5952 #:test-command '("emacs" "--batch"
5953 "-l" "use-package-tests.el"
5954 "-f" "ert-run-tests-batch-and-exit")))
5955 (home-page "https://github.com/jwiegley/use-package")
5956 (synopsis "Declaration for simplifying your .emacs")
5957 (description "The use-package macro allows you to isolate package
b247fb86
AI
5958configuration in your @file{.emacs} file in a way that is both
5959performance-oriented and tidy.")
abf3a331 5960 (license license:gpl2+))))
e2345554 5961
8ad5a20f
MO
5962(define-public emacs-strace-mode
5963 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
5964 (revision "1"))
5965 (package
5966 (name "emacs-strace-mode")
5967 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
5968 (source (origin
5969 (method git-fetch)
5970 (uri (git-reference
5971 (url "https://github.com/pkmoore/strace-mode")
5972 (commit commit)))
5973 (file-name (string-append name "-" version "-checkout"))
5974 (sha256
5975 (base32
5976 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
5977 (build-system emacs-build-system)
5978 (home-page "https://github.com/pkmoore/strace-mode")
5979 (synopsis "Emacs major mode to highlight strace outputs")
5980 (description "@code{emacs-strace-mode} provides an Emacs major mode
5981 highlighting strace outputs.")
5982 (license license:gpl3+))))
5983
e2345554
CM
5984(define-public emacs-default-encrypt
5985 (package
5986 (name "emacs-default-encrypt")
5987 (version "4.3")
5988 (source
5989 (origin
5990 (method url-fetch)
5991 (uri (string-append
a97f6da4
CM
5992 "https://www.informationelle-selbstbestimmung-im-internet.de"
5993 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
5994 (file-name (string-append "jl-encrypt-" version ".el"))
5995 (sha256
5996 (base32
5997 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
5998 (build-system emacs-build-system)
5999 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
6000 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
6001 (description
6002 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
6003automatically encrypts messages that you send (e.g., email) when public keys
6004for all recipients are available, and it protects you from accidentally
6005sending un-encrypted messages. It can also be configured to automatically
6006sign messages that you send. For details and instructions on how to use
6007DefaultEncrypt, please refer to the home page or read the comments in the
6008source file, @file{jl-encrypt.el}.")
6009 (license license:gpl3+)))
25e810b8
AI
6010
6011(define-public emacs-htmlize
6012 (package
6013 (name "emacs-htmlize")
80683c1e 6014 (version "1.53")
25e810b8
AI
6015 (source
6016 (origin
6017 (method url-fetch)
6018 (uri (string-append
6019 "https://github.com/hniksic/emacs-htmlize/archive/release/"
6020 version ".tar.gz"))
6021 (file-name (string-append name "-" version ".tar.gz"))
6022 (sha256
6023 (base32
80683c1e 6024 "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
25e810b8
AI
6025 (build-system emacs-build-system)
6026 (home-page "https://github.com/hniksic/emacs-htmlize")
6027 (synopsis "Convert buffer text and decorations to HTML")
6028 (description "@code{emacs-htmlize} converts the buffer text and
6029the associated decorations to HTML. Output to CSS, inline CSS and
6030fonts is supported.")
6031 (license license:gpl2+)))
0ee59b81
AI
6032
6033(define-public emacs-xmlgen
6034 (package
6035 (name "emacs-xmlgen")
6036 (version "0.5")
6037 (source
6038 (origin
6039 (method url-fetch)
6040 (uri (string-append
6041 "https://github.com/philjackson/xmlgen/archive/"
6042 version ".tar.gz"))
6043 (file-name (string-append name "-" version ".tar.gz"))
6044 (sha256
6045 (base32
6046 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
6047 (build-system emacs-build-system)
6048 (arguments
d1d41db6
MC
6049 `(#:tests? #t
6050 #:test-command '("emacs" "--batch"
6051 "-l" "xmlgen-test.el"
6052 "-f" "ert-run-tests-batch-and-exit")))
0ee59b81
AI
6053 (home-page "https://github.com/philjackson/xmlgen")
6054 (synopsis "S-expression to XML domain specific language (DSL) in
6055Emacs Lisp")
6056 (description "@code{emacs-xmlgen} provides S-expression to XML
6057conversion for Emacs Lisp.")
6058 (license license:gpl2+)))
8d50a990
AI
6059
6060(define-public emacs-cdlatex
6061 (package
6062 (name "emacs-cdlatex")
6063 (version "4.7")
6064 (source
6065 (origin
6066 (method url-fetch)
6067 (uri (string-append
6068 "https://github.com/cdominik/cdlatex/archive/"
6069 version ".tar.gz"))
6070 (file-name (string-append name "-" version ".tar.gz"))
6071 (sha256
6072 (base32
6073 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
6074 (build-system emacs-build-system)
00bdf501
MC
6075 (propagated-inputs
6076 `(("emacs-auctex" ,emacs-auctex)))
8d50a990
AI
6077 (home-page "https://github.com/cdominik/cdlatex")
6078 (synopsis "Fast Emacs input methods for LaTeX environments and
6079math")
6080 (description "CDLaTeX is an Emacs minor mode supporting fast
6081insertion of environment templates and math in LaTeX. Similar
6082commands are also offered as part of the AUCTeX package, but it is not
6083the same - CDLaTeX focuses on speediness for inserting LaTeX
6084constructs.")
6085 (license license:gpl3+)))
deddeb44 6086
65fff6a3
FS
6087(define-public emacs-cnfonts
6088 (package
6089 (name "emacs-cnfonts")
6090 (version "0.9.1")
6091 (source (origin
6092 (method url-fetch)
6093 (uri (string-append
6094 "https://github.com/tumashu/cnfonts/archive/v"
6095 version ".tar.gz"))
6096 (file-name (string-append name "-" version ".tar.gz"))
6097 (sha256
6098 (base32
6099 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
6100 (build-system emacs-build-system)
6101 (home-page "https://github.com/tumashu/cnfonts")
6102 (synopsis "Emacs Chinese fonts setup tool")
6103 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
6104configuration of Chinese fonts.")
6105 (license license:gpl2+)))
6106
57fe82c5
RJ
6107(define-public emacs-php-mode
6108 (package
6109 (name "emacs-php-mode")
6110 (version "20171225.342")
6111 (source (origin
6112 (method url-fetch)
6113 (uri (string-append
6114 "https://melpa.org/packages/php-mode-"
6115 version ".tar"))
6116 (sha256
6117 (base32
6118 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
6119 (build-system emacs-build-system)
6120 (home-page "https://github.com/ejmr/php-mode")
6121 (synopsis "Major mode for editing PHP code")
6122 (description "@code{php-mode} is a major mode for editing PHP source
6123code. It's an extension of C mode; thus it inherits all C mode's navigation
6124functionality. But it colors according to the PHP grammar and indents
6125according to the PEAR coding guidelines. It also includes a couple handy
6126IDE-type features such as documentation search and a source and class
6127browser.")
6128 (license license:gpl3+)))
6129
9f3b27a2
FS
6130(define-public emacs-pos-tip
6131 (package
6132 (name "emacs-pos-tip")
6133 (version "0.4.6")
6134 (source (origin
6135 (method url-fetch)
6136 (uri (string-append
6137 "https://github.com/pitkali/pos-tip/archive/"
6138 version ".tar.gz"))
6139 (file-name (string-append name "-" version ".tar.gz"))
6140 (sha256
6141 (base32
6142 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
6143 (build-system emacs-build-system)
6144 ;; The following functions and variables needed by emacs-pos-tip are
6145 ;; not included in emacs-minimal:
6146 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
6147 (arguments `(#:emacs ,emacs))
6148 (home-page "https://github.com/pitkali/pos-tip")
6149 (synopsis "Show tooltip at point")
6150 (description "The standard library tooltip.el provides a function for
6151displaying a tooltip at the mouse position. However, locating a tooltip at an
6152arbitrary buffer position in a window is not easy. Pos-tip provides such a
6153function to be used by other frontend programs.")
6154 (license license:gpl2+)))
6155
0fa8a932
FS
6156(define-public emacs-pyim-basedict
6157 (package
6158 (name "emacs-pyim-basedict")
6159 (version "0.3.1")
6160 (source (origin
6161 (method url-fetch)
6162 (uri (string-append
6163 "https://github.com/tumashu/pyim-basedict/archive/v"
6164 version ".tar.gz"))
6165 (file-name (string-append name "-" version ".tar.gz"))
6166 (sha256
6167 (base32
6168 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
6169 (build-system emacs-build-system)
6170 (home-page "https://github.com/tumashu/pyim-basedict")
6171 (synopsis "Input method dictionary of pyim")
6172 (description "Pyim-basedict is the default pinyin input method dictionary,
6173containing words from the rime project.")
6174 (license license:gpl2+)))
6175
7493306f
FS
6176(define-public emacs-pyim
6177 (package
6178 (name "emacs-pyim")
6179 (version "1.6.4")
6180 (source (origin
6181 (method url-fetch)
6182 (uri (string-append
6183 "https://github.com/tumashu/pyim/archive/v"
6184 version ".tar.gz"))
6185 (file-name (string-append name "-" version ".tar.gz"))
6186 (sha256
6187 (base32
6188 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
6189 (build-system emacs-build-system)
6190 (propagated-inputs
6191 `(("emacs-async" ,emacs-async)
6fe2d37c 6192 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7493306f
FS
6193 ("emacs-popup" ,emacs-popup)
6194 ("emacs-pos-tip" ,emacs-pos-tip)))
6195 (home-page "https://github.com/tumashu/pyim")
6196 (synopsis "Chinese input method")
6197 (description "Chinese input method which supports quanpin, shuangpin, wubi
6198and cangjie.")
6199 (license license:gpl2+)))
6200
2f1524d0
FS
6201(define-public emacs-el2org
6202 (package
6203 (name "emacs-el2org")
6204 (version "0.6.0")
6205 (source (origin
6206 (method url-fetch)
6207 (uri (string-append
6208 "https://github.com/tumashu/el2org/archive/v"
6209 version ".tar.gz"))
6210 (file-name (string-append name "-" version ".tar.gz"))
6211 (sha256
6212 (base32
6213 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6214 (build-system emacs-build-system)
6215 (home-page "https://github.com/tumashu/el2org")
6216 (synopsis "Convert Emacs-lisp file to org file")
6217 (description "El2org is a simple tool, which can convert Emacs-lisp file
6218to org file, you can use this tool to write orgify commentary.")
6219 (license license:gpl2+)))
6220
5b38c3e6
FS
6221(define-public emacs-mustache
6222 (package
6223 (name "emacs-mustache")
6224 (version "0.23")
6225 (source (origin
6226 (method url-fetch)
6227 (uri (string-append
6228 "https://github.com/Wilfred/mustache.el/archive/"
6229 version ".tar.gz"))
6230 (file-name (string-append name "-" version ".tar.gz"))
6231 (sha256
6232 (base32
6233 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6234 (build-system emacs-build-system)
6235 (propagated-inputs
6236 `(("emacs-dash" ,emacs-dash)
6237 ("emacs-ht" ,emacs-ht)
6238 ("emacs-s" ,emacs-s)))
6239 (home-page "https://github.com/Wilfred/mustache.el")
6240 (synopsis "Mustache templating library for Emacs")
6241 (description "Mustache templating library for Emacs, mustache is
6242a simple web template system, which is described as a logic-less system
6243because it lacks any explicit control flow statements, both looping and
6244conditional evaluation can be achieved using section tags processing lists
6245and lambdas.")
6246 (license license:gpl3+)))
6247
f03e15ec
FS
6248(define-public emacs-org2web
6249 (package
6250 (name "emacs-org2web")
6251 (version "0.9.1")
6252 (source (origin
6253 (method url-fetch)
6254 (uri (string-append
6255 "https://github.com/tumashu/org2web/archive/v"
6256 version ".tar.gz"))
6257 (file-name (string-append name "-" version ".tar.gz"))
6258 (sha256
6259 (base32
6260 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6261 (build-system emacs-build-system)
6262 (propagated-inputs
6263 `(("emacs-dash" ,emacs-dash)
6264 ("emacs-el2org" ,emacs-el2org)
6265 ("emacs-ht" ,emacs-ht)
6266 ("emacs-mustache" ,emacs-mustache)
6267 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6268 (home-page "https://github.com/tumashu/org2web")
6269 (synopsis "Static site generator based on org-mode ")
6270 (description "Org2web is a static site generator based on org-mode,
6271which code derived from Kelvin H's org-page.")
6272 (license license:gpl2+)))
6273
deddeb44
FS
6274(define-public emacs-xelb
6275 (package
6276 (name "emacs-xelb")
812929a4 6277 (version "0.15")
deddeb44
FS
6278 (source (origin
6279 (method url-fetch)
6280 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6281 version ".tar"))
6282 (sha256
6283 (base32
812929a4 6284 "031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz"))))
deddeb44
FS
6285 (build-system emacs-build-system)
6286 ;; The following functions and variables needed by emacs-xelb are
6287 ;; not included in emacs-minimal:
6288 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6289 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6290 ;; x-display-pixel-width, x-display-pixel-height
6291 (arguments
6292 `(#:emacs ,emacs
6293 #:phases
6294 (modify-phases %standard-phases
6295 (add-after 'unpack 'regenerate-el-files
6296 (lambda* (#:key inputs #:allow-other-keys)
bca4b2e7
TGR
6297 (invoke "make"
6298 (string-append "PROTO_PATH="
6299 (assoc-ref inputs "xcb-proto")
6300 "/share/xcb")
6301 (string-append "EMACS_BIN="
6302 (assoc-ref inputs "emacs")
6303 "/bin/emacs -Q")))))))
deddeb44
FS
6304 (native-inputs `(("xcb-proto" ,xcb-proto)))
6305 (home-page "https://github.com/ch11ng/xelb")
6306 (synopsis "X protocol Emacs Lisp binding")
6307 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6308X11 protocol based on the XML description files from the XCB project. It
6309features an object-oriented API and permits a certain degree of concurrency.
6310It should enable you to implement low-level X11 applications.")
6311 (license license:gpl3+)))
2b3b745c
FS
6312
6313(define-public emacs-exwm
6314 (package
6315 (name "emacs-exwm")
b9231c5c 6316 (version "0.19")
2b3b745c
FS
6317 (synopsis "Emacs X window manager")
6318 (source (origin
6319 (method url-fetch)
6320 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6321 version ".tar"))
6322 (sha256
6323 (base32
fa0a6d93
AI
6324 "11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0"))
6325 (patches (search-patches "emacs-exwm-fix-fullscreen-issue.patch"))))
2b3b745c
FS
6326 (build-system emacs-build-system)
6327 (propagated-inputs
6328 `(("emacs-xelb" ,emacs-xelb)))
6329 (inputs
6330 `(("xhost" ,xhost)
6331 ("dbus" ,dbus)))
6332 ;; The following functions and variables needed by emacs-exwm are
6333 ;; not included in emacs-minimal:
6334 ;; scroll-bar-mode, fringe-mode
6335 ;; x-display-pixel-width, x-display-pixel-height
6336 (arguments
6337 `(#:emacs ,emacs
6338 #:phases
6339 (modify-phases %standard-phases
6340 (add-after 'build 'install-xsession
6341 (lambda* (#:key inputs outputs #:allow-other-keys)
6342 (let* ((out (assoc-ref outputs "out"))
6343 (xsessions (string-append out "/share/xsessions"))
6344 (bin (string-append out "/bin"))
6345 (exwm-executable (string-append bin "/exwm")))
6346 ;; Add a .desktop file to xsessions
6347 (mkdir-p xsessions)
6348 (mkdir-p bin)
6349 (with-output-to-file
6350 (string-append xsessions "/exwm.desktop")
6351 (lambda _
6352 (format #t "[Desktop Entry]~@
6353 Name=~a~@
6354 Comment=~a~@
6355 Exec=~a~@
6356 TryExec=~@*~a~@
6357 Type=Application~%" ,name ,synopsis exwm-executable)))
6358 ;; Add a shell wrapper to bin
2b3b745c
FS
6359 (with-output-to-file exwm-executable
6360 (lambda _
6361 (format #t "#!~a ~@
2b3b745c 6362 ~a +SI:localuser:$USER ~@
11f8e028 6363 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
6364 (string-append (assoc-ref inputs "bash") "/bin/sh")
6365 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6366 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6367 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6368 '(cond
6369 ((file-exists-p "~/.exwm")
6370 (load-file "~/.exwm"))
6371 ((not (featurep 'exwm))
6372 (require 'exwm)
6373 (require 'exwm-config)
6374 (exwm-config-default)
87c95cb2
AI
6375 (message (concat "exwm configuration not found. "
6376 "Falling back to default configuration...")))))))
2b3b745c
FS
6377 (chmod exwm-executable #o555)
6378 #t))))))
6379 (home-page "https://github.com/ch11ng/exwm")
6380 (description "EXWM is a full-featured tiling X window manager for Emacs
6381built on top of XELB.")
6382 (license license:gpl3+)))
21b99aad 6383
58addd2b
FS
6384(define-public emacs-switch-window
6385 (package
6386 (name "emacs-switch-window")
adaebe80 6387 (version "1.5.1")
58addd2b
FS
6388 (source (origin
6389 (method url-fetch)
6390 (uri (string-append
6391 "https://github.com/dimitri/switch-window/archive/v"
6392 version ".tar.gz"))
6393 (file-name (string-append name "-" version ".tar.gz"))
6394 (sha256
6395 (base32
adaebe80 6396 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
6397 (build-system emacs-build-system)
6398 (home-page "https://github.com/dimitri/switch-window")
6399 (synopsis "Emacs window switch tool")
6400 (description "Switch-window is an emacs window switch tool, which
6401offer a visual way to choose a window to switch to, delete, split or
6402other operations.")
6403 (license license:wtfpl2)))
6404
f4ade9b6
FS
6405(define-public emacs-exwm-x
6406 (package
6407 (name "emacs-exwm-x")
03a34d54 6408 (version "1.8.1")
f4ade9b6
FS
6409 (synopsis "Derivative window manager based on EXWM")
6410 (source (origin
6411 (method url-fetch)
6412 (uri (string-append
6413 "https://github.com/tumashu/exwm-x/archive/v"
6414 version ".tar.gz"))
6415 (file-name (string-append name "-" version ".tar.gz"))
6416 (sha256
6417 (base32
03a34d54 6418 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
f4ade9b6
FS
6419 (build-system emacs-build-system)
6420 (propagated-inputs
6421 `(("emacs-exwm" ,emacs-exwm)
6422 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
6423 ("emacs-ivy" ,emacs-ivy)
6424 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
6425 (inputs
6426 `(("xhost" ,xhost)
6427 ("dbus" ,dbus)))
6428 ;; Need emacs instead of emacs-minimal,
6429 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6430 (arguments
6431 `(#:emacs ,emacs
6432 #:phases
6433 (modify-phases %standard-phases
6434 (add-after 'build 'install-xsession
6435 (lambda* (#:key inputs outputs #:allow-other-keys)
6436 (let* ((out (assoc-ref outputs "out"))
6437 (xsessions (string-append out "/share/xsessions"))
6438 (bin (string-append out "/bin"))
6439 (exwm-executable (string-append bin "/exwm-x")))
6440 ;; Add a .desktop file to xsessions
6441 (mkdir-p xsessions)
6442 (mkdir-p bin)
6443 (with-output-to-file
6444 (string-append xsessions "/exwm-x.desktop")
6445 (lambda _
6446 (format #t "[Desktop Entry]~@
6447 Name=~a~@
6448 Comment=~a~@
6449 Exec=~a~@
6450 TryExec=~@*~a~@
6451 Type=Application~%" ,name ,synopsis exwm-executable)))
6452 ;; Add a shell wrapper to bin
f4ade9b6
FS
6453 (with-output-to-file exwm-executable
6454 (lambda _
6455 (format #t "#!~a ~@
f4ade9b6
FS
6456 ~a +SI:localuser:$USER ~@
6457 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6458 (string-append (assoc-ref inputs "bash") "/bin/sh")
6459 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6460 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6461 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6462 '(require 'exwmx-loader))))
6463 (chmod exwm-executable #o555)
6464 #t))))))
6465 (home-page "https://github.com/tumashu/exwm-x")
6466 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6467on mouse-control.")
6468 (license license:gpl3+)))
6469
21b99aad
AI
6470(define-public emacs-gnuplot
6471 (package
6472 (name "emacs-gnuplot")
6473 (version "0.7.0")
6474 (source
6475 (origin
6476 (method url-fetch)
6477 (uri (string-append
6478 "https://github.com/bruceravel/gnuplot-mode/archive/"
6479 version ".tar.gz"))
6480 (file-name (string-append name "-" version ".tar.gz"))
6481 (sha256
6482 (base32
6483 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6484 (build-system gnu-build-system)
6485 (native-inputs `(("emacs" ,emacs-minimal)))
6486 (arguments
6487 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6488 "/gnuplot-" version)))
6489 `(#:modules ((guix build gnu-build-system)
6490 (guix build utils)
6491 (guix build emacs-utils))
6492 #:imported-modules (,@%gnu-build-system-modules
6493 (guix build emacs-utils))
6494 #:configure-flags
6495 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6496 "/bin/emacs")
6497 (string-append "--with-lispdir=" %output ,elisp-dir))
6498 #:phases
6499 (modify-phases %standard-phases
6500 (add-after 'install 'generate-autoloads
6501 (lambda* (#:key outputs #:allow-other-keys)
6502 (emacs-generate-autoloads
6503 "gnuplot"
6504 (string-append (assoc-ref outputs "out") ,elisp-dir))
6505 #t))))))
6506 (home-page "https://github.com/bruceravel/gnuplot-mode")
6507 (synopsis "Emacs major mode for interacting with gnuplot")
6508 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6509with gnuplot.")
6510 (license license:gpl2+)))
860f73c6
AI
6511
6512(define-public emacs-transpose-frame
6513 (package
6514 (name "emacs-transpose-frame")
6515 (version "0.1.0")
6516 (source
6517 (origin
6518 (method url-fetch)
6519 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8a421ddb 6520 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
6521 (sha256
6522 (base32
6523 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6524 (build-system emacs-build-system)
6525 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6526 (synopsis "Transpose window arrangement in current frame")
6527 (description "@code{emacs-transpose-frame} provides some interactive
6528functions which allows users to transpose windows arrangement in currently
6529selected frame.")
6530 (license license:bsd-2)))
a34242ee
KM
6531
6532(define-public emacs-key-chord
6533 (package
6534 (name "emacs-key-chord")
6535 (version "0.6")
6536 (source
6537 (origin
6538 (method url-fetch)
6539 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
a742becd 6540 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
6541 (sha256
6542 (base32
6543 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6544 (build-system emacs-build-system)
6545 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6546 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6547 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6548mode for binding key chords to commands. A key chord is defined as two keys
6549pressed simultaneously or a single key quickly pressed twice.")
6550 (license license:gpl2+)))
a993add1
AI
6551
6552(define-public emacs-evil-surround
6553 (package
6554 (name "emacs-evil-surround")
6555 (version "1.0.0")
6556 (source
6557 (origin
6558 (method url-fetch)
6559 (uri (string-append
6560 "https://github.com/timcharper/evil-surround/archive/v"
6561 version ".tar.gz"))
6562 (file-name (string-append name "-" version ".tar.gz"))
6563 (sha256
6564 (base32
6565 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6566 (build-system emacs-build-system)
6567 (propagated-inputs
6568 `(("emacs-evil" ,emacs-evil)))
6569 (home-page "https://github.com/timcharper/evil-surround")
6570 (synopsis "Easily modify surrounding parantheses and quotes")
6571 (description "@code{emacs-evil-surround} allows easy deletion, change and
6572addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6573 (license license:gpl3+)))
2406766e
AI
6574
6575(define-public emacs-evil-commentary
6576 (package
6577 (name "emacs-evil-commentary")
6578 (version "2.1.1")
6579 (source
6580 (origin
6581 (method url-fetch)
6582 (uri (string-append
6583 "https://github.com/linktohack/evil-commentary/archive/v"
6584 version ".tar.gz"))
6585 (file-name (string-append name "-" version ".tar.gz"))
6586 (sha256
6587 (base32
6588 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6589 (build-system emacs-build-system)
6590 (propagated-inputs
6591 `(("emacs-evil" ,emacs-evil)))
6592 (home-page "https://github.com/linktohack/evil-commentary")
6593 (synopsis "Comment out code in evil mode")
6594 (description "@code{emacs-evil-commentary} adds keybindings to easily
6595comment out lines of code in evil mode. It provides @code{gcc} to comment out
6596lines, and @code{gc} to comment out the target of a motion.")
6597 (license license:gpl3+)))
99d406c9
AI
6598
6599;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6600;; therefore cannot be run
6601(define-public emacs-ansi
6602 (package
6603 (name "emacs-ansi")
6604 (version "0.4.1")
6605 (source
6606 (origin
6607 (method url-fetch)
6608 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6609 version ".tar.gz"))
6610 (file-name (string-append name "-" version ".tar.gz"))
6611 (sha256
6612 (base32
6613 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6614 (build-system emacs-build-system)
6615 (propagated-inputs
6616 `(("emacs-dash" ,emacs-dash)
6617 ("emacs-s" ,emacs-s)))
6618 (home-page "https://github.com/rejeep/ansi.el")
6619 (synopsis "Convert strings to ANSI")
6620 (description "@code{emacs-ansi} defines functions that turns simple
6621strings to ANSI strings. Turning a string into an ANSI string can be to add
6622color to a text, add color in the background of a text or adding a style, such
6623as bold, underscore or italic.")
6624 (license license:gpl3+)))
605ecbcb
AI
6625
6626;; Tests for emacs-commander have a circular dependency with ert-runner, and
6627;; therefore cannot be run
6628(define-public emacs-commander
6629 (package
6630 (name "emacs-commander")
6631 (version "0.7.0")
6632 (source
6633 (origin
6634 (method url-fetch)
6635 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6636 version ".tar.gz"))
6637 (file-name (string-append name "-" version ".tar.gz"))
6638 (sha256
6639 (base32
6640 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6641 (build-system emacs-build-system)
6642 (propagated-inputs
6643 `(("emacs-dash" ,emacs-dash)
6644 ("emacs-f" ,emacs-f)
6645 ("emacs-s" ,emacs-s)))
6646 (home-page "https://github.com/rejeep/commander.el")
6647 (synopsis "Emacs command line parser")
6648 (description "@code{emacs-commander} provides command line parsing for
6649Emacs.")
6650 (license license:gpl3+)))
87449013
AI
6651
6652;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6653;; cannot be run
6654(define-public ert-runner
9490c411
MC
6655 (package
6656 (name "ert-runner")
6657 (version "0.7.0")
6658 (source
6659 (origin
6660 (method url-fetch)
6661 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6662 version ".tar.gz"))
6663 (file-name (string-append name "-" version ".tar.gz"))
6664 (sha256
6665 (base32
6666 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6667 (build-system emacs-build-system)
6668 (inputs
6669 `(("emacs-ansi" ,emacs-ansi)
6670 ("emacs-commander" ,emacs-commander)
6671 ("emacs-dash" ,emacs-dash)
6672 ("emacs-f" ,emacs-f)
6673 ("emacs-s" ,emacs-s)
6674 ("emacs-shut-up" ,emacs-shut-up)))
6675 (arguments
6676 `(#:phases
6677 (modify-phases %standard-phases
6678 (add-after 'install 'install-executable
6679 (lambda* (#:key inputs outputs #:allow-other-keys)
6680 (let ((out (assoc-ref outputs "out")))
6681 (substitute* "bin/ert-runner"
6682 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6683 (string-append "ERT_RUNNER=\"" out
6684 "/share/emacs/site-lisp/guix.d/"
6685 ,name "-" ,version)))
6686 (install-file "bin/ert-runner" (string-append out "/bin"))
6687 (wrap-program (string-append out "/bin/ert-runner")
6688 (list "EMACSLOADPATH" ":" 'prefix
6689 (string-split (getenv "EMACSLOADPATH") #\:)))
6690 #t))))
6691 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6692 (home-page "https://github.com/rejeep/ert-runner.el")
6693 (synopsis "Opinionated Ert testing workflow")
6694 (description "@code{ert-runner} is a tool for Emacs projects tested
87449013
AI
6695using ERT. It assumes a certain test structure setup and can therefore make
6696running tests easier.")
9490c411 6697 (license license:gpl3+)))
7a0efa77
JN
6698
6699(define-public emacs-disable-mouse
6700 (package
6701 (name "emacs-disable-mouse")
6702 (version "0.2")
6703 (source
6704 (origin
6705 (method url-fetch)
6706 (uri (string-append
6707 "https://github.com/purcell/disable-mouse/archive/"
6708 version ".tar.gz"))
6709 (file-name (string-append name "-" version ".tar.gz"))
6710 (sha256
6711 (base32
6712 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6713 (build-system emacs-build-system)
6714 (home-page "https://github.com/purcell/disable-mouse")
6715 (synopsis "Disable mouse commands globally")
6716 (description
6717 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6718pair of minor modes which suppress all mouse events by intercepting them and
6719running a customisable handler command (@code{ignore} by default). ")
6720 (license license:gpl3+)))
ce676015 6721
b0912e9f
OP
6722(define-public emacs-json-reformat
6723 (package
6724 (name "emacs-json-reformat")
6725 (version "0.0.6")
6726 (source
6727 (origin
6728 (method url-fetch)
6729 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6730 version ".tar.gz"))
6731 (file-name (string-append name "-" version ".tar.gz"))
6732 (sha256
6733 (base32
6734 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6735 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6736 (build-system emacs-build-system)
d1d41db6
MC
6737 (propagated-inputs
6738 `(("emacs-undercover" ,emacs-undercover)))
6739 (native-inputs
6740 `(("emacs-dash" ,emacs-dash)
6741 ("emacs-shut-up" ,emacs-shut-up)
6742 ("ert-runner" ,ert-runner)))
b0912e9f 6743 (arguments
d1d41db6
MC
6744 `(#:tests? #t
6745 #:test-command '("ert-runner")))
b0912e9f
OP
6746 (home-page "https://github.com/gongo/json-reformat")
6747 (synopsis "Reformatting tool for JSON")
6748 (description "@code{json-reformat} provides a reformatting tool for
6749@url{http://json.org/, JSON}.")
6750 (license license:gpl3+)))
6751
6df27407
OP
6752(define-public emacs-json-snatcher
6753 (package
6754 (name "emacs-json-snatcher")
6755 (version "1.0.0")
6756 (source
6757 (origin
6758 (method url-fetch)
6759 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
6760 version ".tar.gz"))
6761 (file-name (string-append name "-" version ".tar.gz"))
6762 (sha256
6763 (base32
6764 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
6765 (build-system emacs-build-system)
6766 (home-page "https://github.com/sterlingg/json-snatcher")
6767 (synopsis "Grabs the path to JSON values in a JSON file")
6768 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
6769a @url{http://json.org/, JSON} file.")
6770 (license license:gpl3+)))
6771
dd72837d
OP
6772(define-public emacs-json-mode
6773 (package
6774 (name "emacs-json-mode")
6775 (version "1.7.0")
6776 (source
6777 (origin
6778 (method url-fetch)
6779 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
6780 "v" version ".tar.gz"))
6781 (file-name (string-append name "-" version ".tar.gz"))
6782 (sha256
6783 (base32
6784 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
6785 (build-system emacs-build-system)
6786 (propagated-inputs
6787 `(("emacs-json-reformat" ,emacs-json-reformat)
6788 ("emacs-json-snatcher" ,emacs-json-snatcher)))
6789 (home-page "https://github.com/joshwnj/json-mode")
6790 (synopsis "Major mode for editing JSON files")
6791 (description "@code{json-mode} extends the builtin js-mode syntax
6792highlighting.")
6793 (license license:gpl3+)))
6794
ce676015
JR
6795(define-public emacs-restclient
6796 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
6797 (revision "1")) ;Guix package revision,
6798 ;upstream doesn't have official releases
6799 (package
6800 (name "emacs-restclient")
6801 (version (string-append revision "."
6802 (string-take commit 7)))
6803 (source (origin
6804 (method git-fetch)
6805 (uri (git-reference
6806 (url "https://github.com/pashky/restclient.el.git")
6807 (commit commit)))
6808 (sha256
6809 (base32
6810 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
6811 (file-name (git-file-name name version))))
6812 (build-system emacs-build-system)
6813 (propagated-inputs
6814 `(("emacs-helm" ,emacs-helm)))
6815 (home-page "https://github.com/pashky/restclient.el")
6816 (synopsis "Explore and test HTTP REST webservices")
6817 (description
6818 "This tool allows for testing and exploration of HTTP REST Web services
6819from within Emacs. Restclient runs queries from a plan-text query sheet,
6820displays results pretty-printed in XML or JSON with @code{restclient-mode}")
6821 (license license:public-domain))))
730c0790 6822
de5256d3
MC
6823(define-public emacs-eimp
6824 (let ((version "1.4.0")
6825 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
6826 (revision "1"))
6827 (package
6828 (name "emacs-eimp")
6829 (version (git-version version revision commit))
6830 (source
6831 (origin
6832 (method git-fetch)
6833 (uri (git-reference
6834 (url "https://github.com/nicferrier/eimp.git")
6835 (commit commit)))
6836 (file-name (git-file-name name version))
6837 (sha256
6838 (base32
6839 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
6840 (build-system emacs-build-system)
6841 (arguments
6842 `(#:phases
6843 (modify-phases %standard-phases
6844 (add-after 'unpack 'configure
6845 (lambda* (#:key inputs #:allow-other-keys)
6846 (let ((imagemagick (assoc-ref inputs "imagemagick")))
6847 ;; eimp.el is read-only in git.
6848 (chmod "eimp.el" #o644)
6849 (emacs-substitute-variables "eimp.el"
6850 ("eimp-mogrify-program"
6851 (string-append imagemagick "/bin/mogrify"))))
6852 #t)))))
6853 (inputs
6854 `(("imagemagick" ,imagemagick)))
6855 (home-page "https://github.com/nicferrier/eimp")
6856 (synopsis "Interactive image manipulation utility for Emacs")
6857 (description "@code{emacs-eimp} allows interactive image manipulation
6858from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
6859the actual transformations.")
6860 (license license:gpl2+))))
6861
730c0790
OP
6862(define-public emacs-dired-hacks
6863 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
6864 (revision "1"))
6865 (package
6866 (name "emacs-dired-hacks")
6867 (version (string-append "0.0.1-" revision "."
6868 (string-take commit 7)))
6869 (source (origin
6870 (method git-fetch)
6871 (uri (git-reference
6872 (url "https://github.com/Fuco1/dired-hacks.git")
6873 (commit commit)))
6874 (file-name (string-append name "-" version "-checkout"))
6875 (sha256
6876 (base32
6877 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
6878 (build-system emacs-build-system)
6879 (propagated-inputs
6880 `(("emacs-dash" ,emacs-dash)
fee23c17 6881 ("emacs-eimp" ,emacs-eimp)
730c0790
OP
6882 ("emacs-f" ,emacs-f)
6883 ("emacs-s" ,emacs-s)))
6884 (home-page "https://github.com/Fuco1/dired-hacks")
6885 (synopsis
6886 "Collection of useful dired additions")
6887 (description
6888 "Collection of Emacs dired mode additions:
6889@itemize
6890@item dired-avfs
6891@item dired-columns
6892@item dired-filter
6893@item dired-hacks-utils
6894@item dired-images
6895@item dired-list
6896@item dired-narrow
6897@item dired-open
6898@item dired-rainbow
6899@item dired-ranger
6900@item dired-subtree
6901@item dired-tagsistant
6902@end itemize\n")
6903 (license license:gpl3+))))
1a80e4d7
OP
6904
6905(define-public emacs-which-key
6906 (package
6907 (name "emacs-which-key")
5fa1b417 6908 (version "3.0.2")
1a80e4d7
OP
6909 (source
6910 (origin
6911 (method url-fetch)
6912 (uri (string-append
6913 "https://github.com/justbur/emacs-which-key/archive/v"
6914 version ".tar.gz"))
6915 (sha256
6916 (base32
5fa1b417 6917 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
1a80e4d7
OP
6918 (file-name (string-append name "-" version ".tar.gz"))))
6919 (build-system emacs-build-system)
6920 (arguments
d1d41db6
MC
6921 `(#:tests? #t
6922 #:test-command '("emacs" "--batch"
6923 "-l" "which-key-tests.el"
6924 "-f" "ert-run-tests-batch-and-exit")))
1a80e4d7
OP
6925 (home-page "https://github.com/justbur/emacs-which-key")
6926 (synopsis "Display available key bindings in popup")
2482c02f
AI
6927 (description
6928 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
6929bindings following your currently entered incomplete command (a prefix) in a
6930popup. For example, after enabling the minor mode if you enter C-x and wait
6931for the default of 1 second, the minibuffer will expand with all of the
6932available key bindings that follow C-x (or as many as space allows given your
6933settings).")
1a80e4d7 6934 (license license:gpl3+)))
c97979d6 6935
397d7980
MC
6936(define-public emacs-ws-butler
6937 (package
6938 (name "emacs-ws-butler")
6939 (version "0.6")
6940 (source (origin
6941 (method git-fetch)
6942 (uri (git-reference
6943 (url "https://github.com/lewang/ws-butler.git")
6944 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
6945 (file-name (string-append name "-" version "-checkout"))
6946 (sha256
6947 (base32
6948 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
6949 (build-system emacs-build-system)
6950 (native-inputs
6951 `(("ert-runner" ,ert-runner)))
6952 (arguments
d1d41db6
MC
6953 `(#:tests? #t
6954 #:test-command '("ert-runner" "tests")))
397d7980
MC
6955 (home-page "https://github.com/lewang/ws-butler")
6956 (synopsis "Trim spaces from end of lines")
6957 (description
6958 "This Emacs package automatically and unobtrusively trims whitespace
6959characters from end of lines.")
6960 (license license:gpl3+)))
6961
c97979d6
OP
6962(define-public emacs-org-edit-latex
6963 (package
6964 (name "emacs-org-edit-latex")
6965 (version "0.8.0")
6966 (source
6967 (origin
6968 (method url-fetch)
6969 (uri (string-append
6970 "https://github.com/et2010/org-edit-latex/archive/v"
6971 version ".tar.gz"))
6972 (file-name (string-append name "-" version ".tar.gz"))
6973 (sha256
6974 (base32
6975 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
6976 (build-system emacs-build-system)
6977 (propagated-inputs
6978 `(("emacs-auctex" ,emacs-auctex)
6979 ;; The version of org in Emacs 25.2 is not sufficient, because the
6980 ;; `org-latex-make-preamble' function is required.
6981 ("emacs-org" ,emacs-org)))
6982 (home-page "https://github.com/et2010/org-edit-latex")
6983 (synopsis "Edit a latex fragment just like editing a src block")
6984 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
6985It lets you edit a latex fragment in a dedicated buffer just like editing a
6986src block.")
6987 (license license:gpl3+)))
aadd75ac
OP
6988
6989(define-public emacs-emamux
6990 (package
6991 (name "emacs-emamux")
6992 (version "0.14")
6993 (source (origin
6994 (method url-fetch)
6995 (uri (string-append
6996 "https://github.com/syohex/emacs-emamux/archive/"
6997 version ".tar.gz"))
6998 (file-name (string-append name "-" version ".tar.gz"))
6999 (sha256
7000 (base32
7001 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
7002 (build-system emacs-build-system)
7003 (home-page "https://github.com/syohex/emacs-emamux")
7004 (synopsis "Manipulate Tmux from Emacs")
7005 (description
7006 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
7007multiplexer.")
7008 (license license:gpl3+)))
e8d9a878
OP
7009
7010(define-public emacs-rpm-spec-mode
7011 (package
7012 (name "emacs-rpm-spec-mode")
7013 (version "0.16")
7014 (source
7015 (origin
7016 (method url-fetch)
7017 ;; URI has the Fedora release number instead of the version
7018 ;; number. This will have to updated manually every new release.
7019 (uri (string-append
7020 "https://src.fedoraproject.org/cgit/rpms"
7021 "/emacs-rpm-spec-mode.git/snapshot"
7022 "/emacs-rpm-spec-mode-f26.tar.gz"))
7023 (sha256
7024 (base32
7025 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
7026 (build-system emacs-build-system)
7027 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
7028 (synopsis "Emacs major mode for editing RPM spec files")
7029 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
7030editing RPM spec files.")
7031 (license license:gpl2+)))
a88adeb3
OP
7032
7033(define-public emacs-git-messenger
7034 (package
7035 (name "emacs-git-messenger")
7036 (version "0.18")
7037 (source
7038 (origin
7039 (method url-fetch)
7040 (uri (string-append
7041 "https://github.com/syohex/emacs-git-messenger/archive/"
7042 version ".tar.gz"))
7043 (file-name (string-append name "-" version ".tar.gz"))
7044 (sha256
7045 (base32
7046 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
7047 (build-system emacs-build-system)
7048 (propagated-inputs
7049 `(("emacs-popup" ,emacs-popup)))
7050 (arguments
d1d41db6
MC
7051 `(#:tests? #t
7052 #:test-command '("emacs" "--batch" "-l" "test/test.el"
7053 "-f" "ert-run-tests-batch-and-exit")))
a88adeb3
OP
7054 (home-page "https://github.com/syohex/emacs-git-messenger")
7055 (synopsis "Popup commit message at current line")
7056 (description "@code{emacs-git-messenger} provides
7057@code{git-messenger:popup-message}, a function that when called, will popup
7058the last git commit message for the current line. This uses git-blame
7059internally.")
7060 (license license:gpl3+)))
1ee879e9
OP
7061
7062(define-public emacs-gitpatch
7063 (package
7064 (name "emacs-gitpatch")
7065 (version "0.5.0")
7066 (source
7067 (origin
7068 (method url-fetch)
7069 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
7070 "v" version ".tar.gz"))
7071 (file-name (string-append name "-" version ".tar.gz"))
7072 (sha256
7073 (base32
7074 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
7075 (build-system emacs-build-system)
7076 (home-page "https://github.com/tumashu/gitpatch")
7077 (synopsis "Mail git patch from Emacs")
7078 (description "@code{emacs-gitpatch} lets users easily send git patches,
7079created by @code{git format-patch}, from @code{magit}, @code{dired} and
7080@code{ibuffer} buffers.")
7081 (license license:gpl3+)))
27feda65
OP
7082
7083(define-public emacs-erc-hl-nicks
7084 (package
7085 (name "emacs-erc-hl-nicks")
7086 (version "1.3.2")
7087 (source
7088 (origin
7089 (method url-fetch)
7090 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
7091 "/archive/" version ".tar.gz"))
7092 (file-name (string-append name "-" version ".tar.gz"))
7093 (sha256
7094 (base32
7095 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
7096 (build-system emacs-build-system)
7097 (synopsis "Nickname highlighting for Emacs ERC")
7098 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
7099client for Emacs. The main features are:
7100@itemize
7101@item Auto-colorizes nicknames without having to specify colors
7102@item Ignores certain characters that IRC clients add to nicknames to avoid
7103duplicates (nickname, nickname’, nickname\", etc.)
7104@item Attempts to produce colors with a sufficient amount of contrast between
7105the nick color and the background color
7106@end itemize\n")
7107 (home-page "https://github.com/leathekd/erc-hl-nicks")
7108 (license license:gpl3+)))
f262f446
OP
7109
7110(define-public emacs-engine-mode
7111 (package
7112 (name "emacs-engine-mode")
7113 (version "2.0.0")
7114 (source
7115 (origin
7116 (method url-fetch)
7117 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
7118 "v" version ".tar.gz"))
7119 (file-name (string-append name "-" version ".tar.gz"))
7120 (sha256
7121 (base32
7122 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
7123 (build-system emacs-build-system)
7124 (synopsis "Minor mode for defining and querying search engines")
7125 (description "@code{engine-mode} is a global minor mode for Emacs. It
7126enables you to easily define search engines, bind them to keybindings, and
7127query them from the comfort of your editor.")
7128 (home-page "https://github.com/hrs/engine-mode")
7129 (license license:gpl3+)))
b9dcaced
PM
7130
7131(define-public emacs-prop-menu
7132 (package
7133 (name "emacs-prop-menu")
7134 (version "0.1.2")
7135 (source
7136 (origin
7137 (method url-fetch)
7138 (uri (string-append
7139 "http://stable.melpa.org/packages/prop-menu-"
7140 version ".el"))
7141 (sha256
7142 (base32
7143 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
7144 (build-system emacs-build-system)
7145 (home-page
7146 "https://github.com/david-christiansen/prop-menu-el")
7147 (synopsis
7148 "Create and display a context menu based on text and overlay properties")
7149 (description
7150 "This is a library for computing context menus based on text
7151properties and overlays. The intended use is to have tools that
7152annotate source code and others that use these annotations, without
7153requiring a direct coupling between them, but maintaining
7154discoverability.
7155
7156Major modes that wish to use this library should first define an
7157appropriate value for @code{prop-menu-item-functions}. Then, they should
7158bind @code{prop-menu-by-completing-read} to an appropriate
7159key. Optionally, a mouse pop-up can be added by binding
7160@code{prop-menu-show-menu} to a mouse event.")
7161 (license license:gpl3+)))
5883bb76
PM
7162
7163(define-public emacs-idris-mode
7164 (package
7165 (name "emacs-idris-mode")
7166 (version "0.9.19")
7167 (source
7168 (origin
7169 (method url-fetch)
7170 (uri (string-append
7171 "http://stable.melpa.org/packages/idris-mode-"
7172 version ".tar"))
7173 (sha256
7174 (base32
a05a637c 7175 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
5883bb76
PM
7176 (build-system emacs-build-system)
7177 (propagated-inputs
7178 `(("emacs-prop-menu" ,emacs-prop-menu)))
7179 (home-page
7180 "https://github.com/idris-hackers/idris-mode")
7181 (synopsis "Major mode for editing Idris code")
7182 (description
7183 "This is an Emacs mode for editing Idris code. It requires the latest
7184version of Idris, and some features may rely on the latest Git version of
7185Idris.")
7186 (license license:gpl3+)))
eaf4ba6e
OP
7187
7188(define-public emacs-browse-at-remote
96023187
OP
7189 (package
7190 (name "emacs-browse-at-remote")
7191 (version "0.10.0")
7192 (source
7193 (origin
7194 (method url-fetch)
7195 (uri (string-append
7196 "https://github.com/rmuslimov/browse-at-remote/archive/"
7197 version ".tar.gz"))
7198 (file-name (string-append name "-" version ".tar.gz"))
7199 (sha256
7200 (base32
7201 "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
7202 (build-system emacs-build-system)
7203 (propagated-inputs
7204 `(("emacs-f" ,emacs-f)
7205 ("emacs-s" ,emacs-s)))
7206 (native-inputs
7207 `(("ert-runner" ,ert-runner)))
7208 (arguments
7209 `(#:tests? #t
7210 #:test-command '("ert-runner")))
7211 (home-page "https://github.com/rmuslimov/browse-at-remote")
7212 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7213 (description
7214 "This Emacs package allows you to open a target page on
eaf4ba6e
OP
7215github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7216It supports dired buffers and opens them in tree mode at destination.")
96023187 7217 (license license:gpl3+)))
63253098
OP
7218
7219(define-public emacs-tiny
7220 (package
7221 (name "emacs-tiny")
d8ec1b71 7222 (version "0.2.1")
63253098
OP
7223 (source
7224 (origin
7225 (method url-fetch)
7226 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7227 (sha256
7228 (base32
d8ec1b71 7229 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
63253098
OP
7230 (build-system emacs-build-system)
7231 (home-page "https://github.com/abo-abo/tiny")
7232 (synopsis "Quickly generate linear ranges in Emacs")
7233 (description
7234 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
a913d9d9 7235It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
63253098
OP
7236proficiency is an advantage, since you can transform your numeric range with
7237an elisp expression.")
0b88f536 7238 (license license:gpl3+)))
4aafce22 7239
7081d4e0
RW
7240(define-public emacs-emojify
7241 (package
7242 (name "emacs-emojify")
7243 (version "0.4")
7244 (source
7245 (origin
7246 (method url-fetch)
7247 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7248 "releases/download/v" version "/emojify-"
7249 version ".tar"))
7250 (sha256
7251 (base32
7252 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7253 (build-system emacs-build-system)
7254 (arguments
7255 `(#:phases
7256 (modify-phases %standard-phases
7257 (add-after 'install 'install-data
7258 (lambda* (#:key outputs #:allow-other-keys)
7259 (copy-recursively "data"
7260 (string-append (assoc-ref outputs "out")
7261 "/share/emacs/site-lisp/guix.d/"
7262 "emojify-" ,version "/data"))
7263 #t)))))
7264 (propagated-inputs
7265 `(("emacs-ht" ,emacs-ht)))
7266 (home-page "https://github.com/iqbalansari/emacs-emojify")
7267 (synopsis "Display emojis in Emacs")
7268 (description "This package displays emojis in Emacs similar to how Github,
7269Slack, and other websites do. It can display plain ASCII like @code{:)} as
7270well as Github-style emojis like @code{:smile:}. It provides a minor mode
7271@code{emojify-mode} to enable the display of emojis in a buffer.")
7272 (license license:gpl3+)))
7273
9c058ef2
RW
7274(define-public emacs-websocket
7275 (package
7276 (name "emacs-websocket")
a6334e6e 7277 (version "1.10")
9c058ef2
RW
7278 (source
7279 (origin
a6334e6e
RW
7280 (method git-fetch)
7281 (uri (git-reference
7282 (url "https://github.com/ahyatt/emacs-websocket.git")
7283 (commit version)))
7284 (file-name (string-append name "-" version "-checkout"))
9c058ef2
RW
7285 (sha256
7286 (base32
a6334e6e 7287 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
9c058ef2
RW
7288 (build-system emacs-build-system)
7289 (home-page "http://elpa.gnu.org/packages/websocket.html")
7290 (synopsis "Emacs WebSocket client and server")
7291 (description "This is an Elisp library for WebSocket clients to talk to
7292WebSocket servers, and for WebSocket servers to accept connections from
7293WebSocket clients. This library is designed to be used by other library
7294writers, to write applications that use WebSockets, and is not useful by
7295itself.")
7296 (license license:gpl3+)))
7297
a204c14c
RW
7298(define-public emacs-oauth2
7299 (package
7300 (name "emacs-oauth2")
7301 (version "0.11")
7302 (source
7303 (origin
7304 (method url-fetch)
7305 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7306 version ".el"))
7307 (sha256
7308 (base32
7309 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7310 (build-system emacs-build-system)
7311 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7312 (synopsis "OAuth 2.0 authorization protocol implementation")
7313 (description
7314 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7315The main entry point is @code{oauth2-auth-and-store} which will return a token
7316structure. This token structure can be then used with
7317@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7318retrieve any data that need OAuth authentication to be accessed. If the token
7319needs to be refreshed, the code handles it automatically and stores the new
7320value of the access token.")
7321 (license license:gpl3+)))
7322
26b388ce
RW
7323(define-public emacs-circe
7324 (package
7325 (name "emacs-circe")
7326 (version "2.6")
7327 (source
7328 (origin
7329 (method git-fetch)
7330 (uri (git-reference
7331 (url "https://github.com/jorgenschaefer/circe.git")
7332 (commit (string-append "v" version))))
7333 (file-name (string-append name "-" version "-checkout"))
7334 (sha256
7335 (base32
7336 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
7337 (build-system emacs-build-system)
7338 ;; In order to securely connect to an IRC server using TLS, Circe requires
7339 ;; the GnuTLS binary.
7340 (propagated-inputs
7341 `(("gnutls" ,gnutls)))
7342 (home-page "https://github.com/jorgenschaefer/circe")
7343 (synopsis "Client for IRC in Emacs")
7344 (description "Circe is a Client for IRC in Emacs. It integrates well with
7345the rest of the editor, using standard Emacs key bindings and indicating
7346activity in channels in the status bar so it stays out of your way unless you
7347want to use it.")
7348 (license license:gpl3+)))
7349
5c8cdd4e 7350(define-public emacs-slack
deb48944
RW
7351 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7352 (revision "4"))
5c8cdd4e
RW
7353 (package
7354 (name "emacs-slack")
7355 (version (string-append "0-" revision "." (string-take commit 7)))
7356 (source (origin
7357 (method git-fetch)
7358 (uri (git-reference
7359 (url "https://github.com/yuya373/emacs-slack.git")
7360 (commit commit)))
7361 (file-name (string-append name "-" version "-checkout"))
7362 (sha256
7363 (base32
deb48944 7364 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
5c8cdd4e
RW
7365 (build-system emacs-build-system)
7366 (propagated-inputs
7367 `(("emacs-alert" ,emacs-alert)
7368 ("emacs-emojify" ,emacs-emojify)
7369 ("emacs-request" ,emacs-request)
7370 ("emacs-websocket" ,emacs-websocket)
7371 ("emacs-oauth2" ,emacs-oauth2)
7372 ("emacs-circe" ,emacs-circe)))
7373 (home-page "https://github.com/yuya373/emacs-slack")
7374 (synopsis "Slack client for Emacs")
7375 (description "This package provides an Emacs client for the Slack
7376messaging service.")
7377 (license license:gpl3+))))
7378
4aafce22
JN
7379(define-public emacs-bash-completion
7380 (package
7381 (name "emacs-bash-completion")
d39c9efa 7382 (version "2.1.0")
4aafce22
JN
7383 (source
7384 (origin
7385 (method url-fetch)
7386 (uri (string-append
7387 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7388 version ".tar.gz"))
7389 (file-name (string-append name "-" version ".tar.gz"))
7390 (sha256
7391 (base32
d39c9efa 7392 "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
4aafce22
JN
7393 (inputs `(("bash" ,bash)))
7394 (build-system emacs-build-system)
7395 (arguments
7396 `(#:phases
7397 (modify-phases %standard-phases
7398 (add-before 'install 'configure
7399 (lambda* (#:key inputs #:allow-other-keys)
7400 (let ((bash (assoc-ref inputs "bash")))
7401 (emacs-substitute-variables "bash-completion.el"
7402 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7403 #t)))))
7404 (home-page "https://github.com/szermatt/emacs-bash-completion")
d3095f34 7405 (synopsis "Bash completion for the shell buffer")
4aafce22
JN
7406 (description
7407 "@code{bash-completion} defines dynamic completion hooks for shell-mode
d3095f34 7408and shell-command prompts that are based on Bash completion.")
4aafce22 7409 (license license:gpl2+)))
d02c2873
KM
7410
7411(define-public emacs-easy-kill
7412 (package
7413 (name "emacs-easy-kill")
7414 (version "0.9.3")
7415 (source (origin
7416 (method url-fetch)
7417 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7418 version ".tar"))
7419 (sha256
7420 (base32
7421 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7422 (build-system emacs-build-system)
7423 (home-page "https://github.com/leoliu/easy-kill")
7424 (synopsis "Kill and mark things easily in Emacs")
7425 (description
7426 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7427let users kill or mark things easily.")
7428 (license license:gpl3+)))
9faa46ee
MC
7429
7430(define-public emacs-csv-mode
7431 (package
7432 (name "emacs-csv-mode")
7433 (version "1.7")
7434 (source
7435 (origin
7436 (method url-fetch)
7437 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7438 version ".el"))
7439 (sha256
7440 (base32
7441 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7442 (build-system emacs-build-system)
7443 (home-page
7444 "http://elpa.gnu.org/packages/csv-mode.html")
7445 (synopsis
7446 "Major mode for editing comma/char separated values")
7447 (description
7448 "This Emacs package implements CSV mode, a major mode for editing records
7449in a generalized CSV (character-separated values) format.")
7450 (license license:gpl3+)))
3fe4c9dc
OP
7451
7452(define-public emacs-transmission
7453 (package
7454 (name "emacs-transmission")
5ad13e6c 7455 (version "0.12.1")
3fe4c9dc
OP
7456 (source (origin
7457 (method url-fetch)
7458 (uri (string-append
7459 "https://github.com/holomorph/transmission/archive/"
7460 version ".tar.gz"))
7461 (file-name (string-append name "-" version ".tar.gz"))
7462 (sha256
7463 (base32
5ad13e6c 7464 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
3fe4c9dc
OP
7465 (build-system emacs-build-system)
7466 (home-page "https://github.com/holomorph/transmission")
7467 (synopsis "Emacs interface to a Transmission session")
7468 (description "This package provides an Emacs interface to interact with a
7469running session of the Transmission Bittorrent client.
7470
7471Features:
7472
7473@itemize
7474@item List, add, start/stop, verify, remove torrents.
7475@item Set speed limits, ratio limits, bandwidth priorities, trackers.
7476@item Navigate to the corresponding file list, torrent info, peer info
7477contexts.
7478@item Toggle downloading and set priorities for individual files.
7479@end itemize\n")
7480 (license license:gpl3+)))
a6d02fc1 7481
c46e654f
RW
7482(define-public emacs-polymode
7483 ;; There hasn't been a proper release.
7484 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7485 (revision "1"))
7486 (package
7487 (name "emacs-polymode")
7488 (version (string-append "1.0-" revision "." (string-take commit 7)))
7489 (source (origin
7490 (method git-fetch)
7491 (uri (git-reference
7492 (url "https://github.com/vspinu/polymode.git")
7493 (commit commit)))
7494 (file-name (string-append name "-" version "-checkout"))
7495 (sha256
7496 (base32
7497 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7498 (build-system emacs-build-system)
74b4d7a1
MC
7499 (arguments
7500 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7501 #:phases
7502 (modify-phases %standard-phases
7503 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7504 (lambda _
7505 (setenv "EMACSLOADPATH"
7506 (string-append (getenv "EMACSLOADPATH")
7507 ":" (getcwd) "/modes" ":")))))))
c46e654f
RW
7508 (home-page "https://github.com/vspinu/polymode")
7509 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7510 (description "Polymode is an Emacs package that offers generic support
7511for multiple major modes inside a single Emacs buffer. It is lightweight,
7512object oriented and highly extensible. Creating a new polymode typically
7513takes only a few lines of code. Polymode also provides extensible facilities
7514for external literate programming tools for exporting, weaving and tangling.")
7515 (license license:gpl3+))))
7516
a6d02fc1
OP
7517(define-public eless
7518 (package
7519 (name "eless")
7520 (version "0.3")
7521 (source (origin
7522 (method url-fetch)
7523 (uri (string-append
7524 "https://github.com/kaushalmodi/eless/archive/"
7525 "v" version ".tar.gz"))
7526 (file-name (string-append name "-" version ".tar.gz"))
7527 (sha256
7528 (base32
7529 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7530 (build-system trivial-build-system)
7531 (inputs
7532 `(("bash" ,bash)))
7533 (native-inputs
7534 `(("tar" ,tar)
7535 ("gzip" ,gzip)))
7536 (arguments
7537 `(#:modules ((guix build utils))
7538 #:builder
7539 (begin
7540 (use-modules (guix build utils))
7541 (setenv "PATH" (string-append
7542 (assoc-ref %build-inputs "tar") "/bin" ":"
7543 (assoc-ref %build-inputs "gzip") "/bin"))
e3cfef22 7544 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
a6d02fc1
OP
7545 (chdir (string-append "eless" "-" ,version))
7546 (substitute* "eless" (("/usr/bin/env bash")
7547 (string-append (assoc-ref %build-inputs "bash")
7548 "/bin/bash")))
7549 (install-file "eless" (string-append %output "/bin"))
7550 (install-file "doc/eless.info" (string-append %output "/share/info"))
7551 #t)))
7552 (home-page "https://github.com/kaushalmodi/eless")
7553 (synopsis "Use Emacs as a paginator")
7554 (description "@code{eless} provides a combination of Bash script
7555and a minimal Emacs view-mode.
7556
7557Feautures:
7558
7559@itemize
7560@item Independent of a user’s Emacs config.
7561@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7562@item Not require an Emacs server to be already running.
7563@item Syntax highlighting.
7564@item Org-mode file rendering.
7565@item @code{man} page viewer.
7566@item Info viewer.
7567@item Dired, wdired, (batch edit symbolic links).
7568@item Colored diffs, git diff, git log, ls with auto ANSI detection.
7569@item Filter log files lines matching a regexp.
7570@item Auto-revert log files similar to @code{tail -f}.
7571@item Quickly change frame and font sizes.
7572@end itemize\n")
7573 (license license:expat)))
491cbd35
MG
7574
7575(define-public emacs-evil-matchit
7576 (package
7577 (name "emacs-evil-matchit")
9a910133 7578 (version "2.2.6")
491cbd35
MG
7579 (source
7580 (origin
7581 (method url-fetch)
7582 (uri (string-append
7583 "https://github.com/redguardtoo/evil-matchit/archive/"
7584 version ".tar.gz"))
7585 (file-name (string-append name "-" version ".tar.gz"))
7586 (sha256
7587 (base32
9a910133 7588 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
491cbd35 7589 (build-system emacs-build-system)
80c4aabb
MC
7590 (propagated-inputs
7591 `(("emacs-evil" ,emacs-evil)))
491cbd35
MG
7592 (home-page "https://github.com/redguardtoo/evil-matchit")
7593 (synopsis "Vim matchit ported into Emacs")
7594 (description
7595 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7596evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7597 (license license:gpl3+)))
ab8a4a78
AI
7598
7599(define-public emacs-evil-smartparens
7600 (package
7601 (name "emacs-evil-smartparens")
7602 (version "0.4.0")
7603 (source
7604 (origin
7605 (method url-fetch)
7606 (uri (string-append
7607 "https://github.com/expez/evil-smartparens/archive/"
7608 version ".tar.gz"))
7609 (file-name (string-append name "-" version ".tar.gz"))
7610 (sha256
7611 (base32
7612 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7613 (build-system emacs-build-system)
7614 (propagated-inputs
7615 `(("emacs-evil" ,emacs-evil)
7616 ("emacs-smartparens" ,emacs-smartparens)))
7617 (home-page "https://github.com/expez/evil-smartparens")
7618 (synopsis "Emacs Evil integration for Smartparens")
7619 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7620makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7621emulates Vim features and provides Vim-like key bindings.")
7622 (license license:gpl3+)))
2891ea39
AI
7623
7624(define-public emacs-evil-quickscope
7625 (package
7626 (name "emacs-evil-quickscope")
7627 (version "0.1.4")
7628 (source
7629 (origin
7630 (method url-fetch)
7631 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7632 version ".tar.gz"))
7633 (file-name (string-append name "-" version ".tar.gz"))
7634 (sha256
7635 (base32
7636 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7637 (build-system emacs-build-system)
7638 (propagated-inputs
7639 `(("emacs-evil" ,emacs-evil)))
7640 (arguments
d1d41db6
MC
7641 `(#:tests? #t
7642 #:test-command '("emacs" "--batch"
7643 "-l" "evil-quickscope-tests.el"
7644 "-f" "ert-run-tests-batch-and-exit")))
2891ea39
AI
7645 (home-page "https://github.com/blorbx/evil-quickscope")
7646 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7647 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7648mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7649port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7650features and provides Vim-like key bindings.")
7651 (license license:gpl3+)))
2a67ff1f
MO
7652
7653(define-public emacs-bongo
7654 (package
7655 (name "emacs-bongo")
7656 (version "1.0")
7657 (source
7658 (origin
7659 (method url-fetch)
7660 (uri (string-append
7661 "https://github.com/dbrock/bongo/archive/"
7662 version ".tar.gz"))
7663 (file-name (string-append name "-" version ".tar.gz"))
7664 (sha256
7665 (base32
7666 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7667 (build-system emacs-build-system)
7668 (home-page "https://github.com/dbrock/bongo")
7669 (synopsis "Media player for Emacs")
7670 (description
7671 "This package provides a flexible media player for Emacs. @code{Bongo}
7672supports multiple backends such as @code{vlc}, @code{mpg123},
7673@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7674@code{afplay}.")
7675 (license license:gpl2+)))
548cc74c
CB
7676
7677(define-public groovy-emacs-modes
7678 (package
7679 (name "groovy-emacs-modes")
7680 (version "2.0")
7681 (source (origin
7682 (method url-fetch)
7683 (uri (string-append
7684 "https://github.com/Groovy-Emacs-Modes/" name
7685 "/archive/" version ".tar.gz"))
7686 (file-name (string-append name "-" version ".tar.gz"))
7687 (sha256
7688 (base32
7689 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7690 (build-system emacs-build-system)
7691 (propagated-inputs
7692 `(("emacs-s" ,emacs-s)))
7693 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7694 (synopsis "Groovy related modes for Emacs")
7695 (description
7696 "This package provides @code{groovy-mode} for syntax highlighing in
7697Groovy source files, REPL integration with run-groovy and Grails project
7698navigation with the grails mode.")
7699 (license license:gpl3+)))
02267798
LC
7700
7701(define-public org-tree-slide
7702 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
7703 (revision "0"))
7704 (package
7705 (name "emacs-org-tree-slide")
7706 (version (git-version "0.1" revision commit))
7707 (home-page "https://github.com/takaxp/org-tree-slide")
7708 (source (origin
7709 (method git-fetch)
7710 (uri (git-reference (url home-page) (commit commit)))
7711 (sha256
7712 (base32
7713 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
7714 (file-name (git-file-name name version))))
7715 (build-system emacs-build-system)
7716 (synopsis "Presentation tool for org-mode")
7717 (description
7718 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
7719@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
7720@kbd{C-<} to jump to the next and previous slide.")
7721 (license license:gpl3+))))
ac07b94a
OP
7722
7723(define-public emacs-scratch-el
7724 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
7725 (revision "1"))
7726 (package
7727 (name "emacs-scratch-el")
7728 (version (git-version "1.2" revision commit))
7729 (source (origin
7730 (method git-fetch)
7731 (uri (git-reference
7732 (url "https://github.com/ieure/scratch-el.git")
7733 (commit commit)))
7734 (file-name (git-file-name name version))
7735 (sha256
7736 (base32
7737 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
7738 (build-system emacs-build-system)
7739 (native-inputs
7740 `(("texinfo" ,texinfo)))
7741 (arguments
7742 '(#:phases
7743 (modify-phases %standard-phases
7744 (add-after 'install 'install-doc
7745 (lambda* (#:key outputs #:allow-other-keys)
7746 (unless (invoke "makeinfo" "scratch.texi")
7747 (error "makeinfo failed"))
7748 (install-file "scratch.info"
7749 (string-append (assoc-ref outputs "out")
7750 "/share/info"))
7751 #t)))))
7752 (home-page "https://github.com/ieure/scratch-el/")
7753 (synopsis "Create scratch buffers with the same mode as current buffer")
7754 (description "Scratch is an extension to Emacs that enables one to create
7755scratch buffers that are in the same mode as the current buffer. This is
7756notably useful when working on code in some language; you may grab code into a
7757scratch buffer, and, by virtue of this extension, do so using the Emacs
7758formatting rules for that language.")
7759 (license license:bsd-2))))
5b238292 7760
62950ec7
MC
7761(define-public emacs-kv
7762 (package
7763 (name "emacs-kv")
7764 (version "0.0.19")
7765 (source
7766 (origin
7767 (method git-fetch)
7768 (uri (git-reference
7769 (url "https://github.com/nicferrier/emacs-kv.git")
7770 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
7771 (file-name (string-append name "-" version "-checkout"))
7772 (sha256
7773 (base32
7774 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
7775 (build-system emacs-build-system)
7776 (arguments
7777 `(#:tests? #t
7778 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
7779 "-f" "ert-run-tests-batch-and-exit")))
7780 (home-page "https://github.com/nicferrier/emacs-kv")
7781 (synopsis "Key/Value data structures library for Emacs Lisp")
7782 (description "@code{emacs-kv} is a collection of tools for dealing with
7783key/value data structures such as plists, alists and hash-tables in Emacs
7784Lisp.")
7785 (license license:gpl3+)))
7786
8d899214
RW
7787(define-public emacs-esxml
7788 (package
7789 (name "emacs-esxml")
7790 (version "0.3.4")
7791 (source (origin
7792 (method git-fetch)
7793 (uri (git-reference
7794 (url "https://github.com/tali713/esxml.git")
7795 (commit version)))
7796 (file-name (git-file-name name version))
7797 (sha256
7798 (base32
7799 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
7800 (build-system emacs-build-system)
9835a71d
MC
7801 (arguments
7802 `(#:phases
7803 (modify-phases %standard-phases
7804 (add-after 'unpack 'fix-sources
7805 (lambda _
7806 ;; See: https://github.com/tali713/esxml/pull/28.
7807 (substitute* "css-lite.el"
7808 ((";;; main interface")
7809 (string-append ";;; main interface\n"
7810 "(require 'cl-lib)"))
7811 (("mapcan")
7812 "cl-mapcan")
7813 (("',\\(cl-mapcan #'process-css-rule rules\\)")
7814 "(cl-mapcan #'process-css-rule ',rules)"))
7815 (substitute* "esxml-form.el"
7816 ((",esxml-form-field-defn")
7817 "#'esxml-form-field-defn"))
7818 ;; See: https://github.com/tali713/esxml/issues/25
7819 (delete-file "esxpath.el")
7820 #t)))))
7821 (propagated-inputs
7822 `(("emacs-kv" ,emacs-kv)))
8d899214
RW
7823 (home-page "https://github.com/tali713/esxml/")
7824 (synopsis "SXML for EmacsLisp")
7825 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
7826Simply, this is the easiest way to write HTML or XML in Lisp. This library
7827uses the native form of XML representation as used by many libraries already
7828included within Emacs. See @code{esxml-to-xml} for a concise description of
7829the format.")
7830 (license license:gpl3+)))
7831
5f78ce49
RW
7832(define-public emacs-nov-el
7833 (package
7834 (name "emacs-nov-el")
7835 (version "0.2.2")
7836 (source (origin
7837 (method git-fetch)
7838 (uri (git-reference
7839 (url "https://github.com/wasamasa/nov.el.git")
7840 (commit version)))
7841 (file-name (git-file-name name version))
7842 (sha256
7843 (base32
7844 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
7845 (build-system emacs-build-system)
7846 (arguments
7847 `(#:phases
7848 (modify-phases %standard-phases
7849 (add-after 'unpack 'embed-path-to-unzip
7850 (lambda _
7851 (substitute* "nov.el"
7852 (("\\(executable-find \"unzip\"\\)")
7853 (string-append "\"" (which "unzip") "\"")))
7854 #t)))))
7855 (propagated-inputs
7856 `(("emacs-dash" ,emacs-dash)
7857 ("emacs-esxml" ,emacs-esxml)))
7858 (inputs
7859 `(("unzip" ,unzip)))
7860 (home-page "https://github.com/wasamasa/nov.el/")
7861 (synopsis "Major mode for reading EPUBs in Emacs")
7862 (description "@code{nov.el} provides a major mode for reading EPUB
7863documents.
7864
7865Features:
7866
7867@itemize
7868@item Basic navigation (jump to TOC, previous/next chapter)
7869@item Remembering and restoring the last read position
7870@item Jump to next chapter when scrolling beyond end
7871@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
7872@item Hyperlinks to internal and external targets
7873@item Supports textual and image documents
7874@item View source of document files
7875@item Metadata display
7876@item Image rescaling
7877@end itemize
7878")
7879 (license license:gpl3+)))
7880
5b238292
OP
7881(define-public epipe
7882 (package
7883 (name "epipe")
7884 (version "0.1.0")
7885 (source
7886 (origin
7887 (method url-fetch)
7888 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
7889 version ".tar.gz"))
7890 (file-name (string-append name "-" version ".tar.gz"))
7891 (sha256
7892 (base32
7893 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
7894 (build-system trivial-build-system)
7895 (inputs
7896 `(("bash" ,bash)
7897 ("perl" ,perl)))
7898 (native-inputs
7899 `(("tar" ,tar)
7900 ("gzip" ,gzip)))
7901 (arguments
7902 `(#:modules
7903 ((guix build utils))
7904 #:builder
7905 (begin
7906 (use-modules (guix build utils))
7907 ;; Extract source
7908 (setenv "PATH" (string-append
7909 (assoc-ref %build-inputs "tar") "/bin" ":"
7910 (assoc-ref %build-inputs "gzip") "/bin"))
e3cfef22 7911 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
5b238292
OP
7912 (chdir (string-append ,name "-" ,version))
7913 ;; Patch shebangs
7914 (substitute* "epipe"
7915 (("/usr/bin/env bash")
7916 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
7917 (patch-shebang "epipe.pl"
7918 (list (string-append (assoc-ref %build-inputs "perl")
7919 "/bin")))
7920 ;; Installation
7921 (for-each (lambda (file)
7922 (install-file file (string-append %output "/bin")))
7923 '("epipe" "epipe.pl"))
7924 #t)))
7925 (home-page "https://github.com/cute-jumper/epipe")
7926 (synopsis "Pipe to the @code{emacsclient}")
7927 (description "@code{epipe} provides an utility to use your editor in
7928the pipeline, featuring the support for running @code{emacsclient}.")
7929 (license license:gpl3+)))
dc97f7e2
CB
7930
7931(define-public emacs-hcl-mode
7932 (package
7933 (name "emacs-hcl-mode")
7934 (version "0.03")
7935 (source
7936 (origin
7937 (method url-fetch)
7938 (uri (string-append
7939 "https://github.com/syohex/emacs-hcl-mode/archive/"
7940 version ".tar.gz"))
7941 (file-name (string-append name "-" version ".tar.gz"))
7942 (sha256
7943 (base32
7944 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
7945 (build-system emacs-build-system)
7946 (home-page "https://github.com/syohex/emacs-hcl-mode")
7947 (synopsis "Major mode for the Hashicorp Configuration Language")
7948 (description
7949 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
7950@acronym{HCL, Hashicorp Configuration Language}. It provides syntax
7951highlighting and indentation support.")
7952 (license license:gpl3+)))
68d70f6a
CB
7953
7954(define-public emacs-terraform-mode
7955 (package
7956 (name "emacs-terraform-mode")
7957 (version "0.06")
7958 (source
7959 (origin
7960 (method url-fetch)
7961 (uri (string-append
7962 "https://github.com/syohex/emacs-terraform-mode/archive/"
7963 version ".tar.gz"))
7964 (file-name (string-append name "-" version ".tar.gz"))
7965 (sha256
7966 (base32
7967 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
7968 (build-system emacs-build-system)
7969 (propagated-inputs
7970 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
7971 (home-page "https://github.com/syohex/emacs-terraform-mode")
7972 (synopsis "Major mode for Terraform")
7973 (description
7974 "@code{emacs-terraform-mode} provides a major mode for working with
7975@uref{https://www.terraform.io/, Terraform} configuration files. Most of the
7976functionality is inherited from @code{hcl-mode}.")
7977 (license license:gpl3+)))
22d62814
KH
7978
7979(define-public emacs-exec-path-from-shell
7980 (package
7981 (name "emacs-exec-path-from-shell")
7982 (version "1.11")
7983 (source
7984 (origin
7985 (method url-fetch)
7986 (uri (string-append
7987 "https://stable.melpa.org/packages/exec-path-from-shell-"
7988 version ".el"))
7989 (sha256
7990 (base32
7991 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
7992 (build-system emacs-build-system)
7993 (home-page "https://github.com/purcell/exec-path-from-shell")
7994 (synopsis "Get environment variables such as @var{PATH} from the shell")
7995 (description
7996 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
7997from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
7998the like work as expected on systems on which Emacs is not guaranteed to
7999inherit a login shell's environment variables. It also allows other
8000environment variables to be retrieved from the shell, so that Emacs will see
8001the same values you get in a terminal.")
8002 (license license:gpl3+)))
5d818b35
KH
8003
8004(define-public emacs-deft
8005 (package
8006 (name "emacs-deft")
8007 (version "0.8")
8008 (source
8009 (origin
8010 (method url-fetch)
8011 (uri (string-append "https://stable.melpa.org/packages/deft-"
8012 version ".el"))
8013 (sha256
8014 (base32
8015 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
8016 (build-system emacs-build-system)
8017 (home-page "https://jblevins.org/projects/deft/")
8018 (synopsis "Quickly browse, filter, and edit plain text notes")
8019 (description
8020 "Deft is an Emacs mode for quickly browsing, filtering, and editing
8021directories of plain text notes, inspired by Notational Velocity.")
8022 (license license:bsd-3)))
62d1105c
SB
8023
8024(define-public emacs-anzu
8025 (package
8026 (name "emacs-anzu")
8027 (version "0.62")
8028 (source
8029 (origin
8030 (method url-fetch)
2d11acb6
SB
8031 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
8032 version ".tar.gz"))
8033 (file-name (string-append name "-" version ".tar.gz"))
62d1105c
SB
8034 (sha256
8035 (base32
2d11acb6 8036 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
62d1105c
SB
8037 (build-system emacs-build-system)
8038 (home-page "https://github.com/syohex/emacs-anzu")
8039 (synopsis "Show number of matches in mode-line while searching")
8040 (description
8041 "Anzu provides a minor mode which displays \"current match/total
8042matches\" in the mode line in various search modes. This is an Emacs port of
8043Anzu.zim.")
8044 (license license:gpl3+)))
c3581ef9
ML
8045
8046(define-public emacs-emmet-mode
8047 (package
8048 (name "emacs-emmet-mode")
8049 (version "1.0.8")
8050 (source (origin
8051 (method url-fetch)
8052 (uri (string-append "https://github.com/smihica/emmet-mode"
8053 "/archive/" version ".tar.gz"))
8054 (file-name (string-append name "-" version ".tar.gz"))
8055 (sha256
8056 (base32
8057 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
8058 (build-system emacs-build-system)
8059 (home-page "https://github.com/smihica/emmet-mode")
8060 (synopsis "Unofficial Emmet's support for Emacs")
8061 (description
8062 "Unfold CSS-selector-like expressions to markup. It is intended to be
8063used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
8064 (license license:gpl3+)))
03efe78c 8065
82bead75
RW
8066(define-public emacs-ergoemacs-mode
8067 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
8068 (revision "1"))
8069 (package
8070 (name "emacs-ergoemacs-mode")
8071 (version (git-version "5.16.10.12" revision commit))
8072 (source
8073 (origin
8074 (method git-fetch)
8075 (uri (git-reference
8076 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
8077 (commit commit)))
8078 (sha256
8079 (base32
8080 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
8081 (build-system emacs-build-system)
8082 (propagated-inputs
8083 `(("emacs-undo-tree" ,emacs-undo-tree)))
8084 (home-page "https://ergoemacs.github.io/")
8085 (synopsis "Emacs mode based on common modern interface and ergonomics")
8086 (description
8087 "This package provides an efficient Emacs keybinding set based on
8088statistics of command frequency, and supports common shortcuts for open,
8089close, copy, cut, paste, undo, redo.")
8090 (license license:gpl3+))))
8091
03efe78c
KH
8092(define-public emacs-password-store
8093 (package
8094 (name "emacs-password-store")
43fa2397 8095 (version "1.7.2")
03efe78c
KH
8096 (source (origin
8097 (method url-fetch)
8098 (uri
8099 (string-append "https://git.zx2c4.com/password-store/snapshot/"
8100 "password-store-" version ".tar.xz"))
8101 (sha256
8102 (base32
43fa2397 8103 "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27"))))
03efe78c
KH
8104 (build-system emacs-build-system)
8105 (arguments
8106 `(#:phases
8107 (modify-phases %standard-phases
8108 (add-after 'unpack 'extract-el-file
8109 (lambda _
8110 (copy-file "contrib/emacs/password-store.el" "password-store.el")
8111 (delete-file-recursively "contrib")
8112 (delete-file-recursively "man")
8113 (delete-file-recursively "src")
8114 (delete-file-recursively "tests"))))))
8115 (propagated-inputs
8116 `(("emacs-f" ,emacs-f)
8117 ("emacs-s" ,emacs-s)
43fa2397 8118 ("emacs-with-editor" ,emacs-with-editor)
03efe78c
KH
8119 ("password-store" ,password-store)))
8120 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
8121 (synopsis "Password store (pass) support for Emacs")
8122 (description
8123 "This package provides functions for working with pass (\"the
8124standard Unix password manager\").")
8125 (license license:gpl2+)))
8126
ab4d1c26
KH
8127(define-public emacs-pass
8128 (package
8129 (name "emacs-pass")
8130 (version "1.7")
8131 (source (origin
8132 (method url-fetch)
8133 (uri (string-append
8134 "https://github.com/NicolasPetton/pass/archive/"
8135 version ".tar.gz"))
8136 (sha256
8137 (base32
8138 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
8139 (file-name (string-append name "-" version ".tar.gz"))))
8140 (build-system emacs-build-system)
8141 (propagated-inputs
8142 `(("emacs-password-store" ,emacs-password-store)
8143 ("emacs-f" ,emacs-f)))
8144 (home-page "https://github.com/NicolasPetton/pass")
8145 (synopsis "Major mode for @file{password-store.el}")
8146 (description "This is a major mode for managing password-store (pass)
8147keychains. The keychain entries are displayed in a directory-like structure
8148and can be consulted and modified.")
8149 (license license:gpl3+)))
8150
d4bb4551
SB
8151(define-public emacs-evil-anzu
8152 (package
8153 (name "emacs-evil-anzu")
8154 (version "0.03")
8155 (source
8156 (origin
8157 (method url-fetch)
8158 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
8159 "/archive/" version ".tar.gz"))
8160 (file-name (string-append name "-" version ".tar.gz"))
8161 (sha256
8162 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
8163 (build-system emacs-build-system)
8164 (propagated-inputs
8165 `(("emacs-evil" ,emacs-evil)
8166 ("emacs-anzu" ,emacs-anzu)))
8167 (home-page "https://github.com/syohex/emacs-evil-anzu")
8168 (synopsis "Anzu for evil-mode")
8169 (description "@code{anzu} provides a minor mode that displays the current
8170match and total match information in the mode-line in various search modes.")
8171 (license license:gpl3+)))
086bfb37
OP
8172
8173(define-public emacs-pg
8174 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
8175 (package
8176 (name "emacs-pg")
8177 (version (git-version "0.1" "1" commit))
8178 (source (origin
8179 (method git-fetch)
8180 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8181 (commit commit)))
8182 (file-name (git-file-name name version))
8183 (sha256
8184 (base32
8185 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8186 (build-system emacs-build-system)
8187 (home-page "https://github.com/cbbrowne/pg.el")
8188 (synopsis "Emacs Lisp interface for PostgreSQL")
8189 (description
8190 "This package provides an Emacs Lisp interface for PostgreSQL.")
8191 (license license:gpl3+))))
5b6d6747
OP
8192
8193(define-public emacs-cl-generic
8194 (package
8195 (name "emacs-cl-generic")
8196 (version "0.3")
8197 (source
8198 (origin
8199 (method url-fetch)
8200 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8201 version ".el"))
8202 (sha256
8203 (base32
8204 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8205 (build-system emacs-build-system)
8206 (home-page "https://elpa.gnu.org/packages/seq.html")
8207 (synopsis
8208 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8209 (description "This package provides a subset of the features of the
8210@code{cl-generic} package introduced in Emacs-25, for use on previous
8211@code{emacsen}.")
8212 (license license:gpl3+)))
6c92b440
OP
8213
8214(define-public emacs-finalize
8215 (package
8216 (name "emacs-finalize")
8217 (version "2.0.0")
8218 (source
8219 (origin
8220 (method url-fetch)
8221 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8222 version ".tar.gz"))
8223 (file-name (string-append name "-" version ".tar.gz"))
8224 (sha256
8225 (base32
8226 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8227 (build-system emacs-build-system)
8228 (propagated-inputs
8229 `(("emacs-cl-generic" ,emacs-cl-generic)))
8230 (home-page "https://github.com/skeeto/elisp-finalize")
8231 (synopsis "Finalizers for Emacs Lisp")
8232 (description
8233 "This package will allows to immediately run a callback (a finalizer)
8234after its registered lisp object has been garbage collected. This allows for
8235extra resources, such as buffers and processes, to be cleaned up after the
8236object has been freed.")
8237 (license license:unlicense)))
4d089b5e
OP
8238
8239(define-public emacs-emacsql
8240 (package
8241 (name "emacs-emacsql")
8242 (version "2.0.3")
8243 (source
8244 (origin
8245 (method url-fetch)
8246 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8247 version ".tar.gz"))
8248 (file-name (string-append name "-" version ".tar.gz"))
8249 (sha256
8250 (base32
8251 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8252 (build-system emacs-build-system)
8253 (arguments
8254 `(#:modules ((guix build emacs-build-system)
8255 (guix build utils)
8256 (guix build emacs-utils)
8257 (srfi srfi-26))
8258 #:phases
8259 (modify-phases %standard-phases
8260 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8261 (add-before 'install 'patch-elisp-shell-shebangs
8262 (lambda _
8263 (substitute* (find-files "." "\\.el")
8264 (("/bin/sh") (which "sh")))
8265 #t))
8266 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8267 (lambda _
8268 (setenv "SHELL" "sh")))
8269 (add-after 'setenv-shell 'build-emacsql-sqlite
8270 (lambda _
8271 (invoke "make" "binary" "CC=gcc")))
8272 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8273 ;; This build phase installs emacs-emacsql binary.
8274 (lambda* (#:key outputs #:allow-other-keys)
8275 (install-file "sqlite/emacsql-sqlite"
8276 (string-append (assoc-ref outputs "out")
8277 "/bin"))
8278 #t))
8279 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8280 ;; This build phase removes interactive prompts
8281 ;; and makes sure Emacs look for binaries in the right places.
8282 (lambda* (#:key outputs #:allow-other-keys)
8283 (let ((file "emacsql-sqlite.el"))
8284 (chmod file #o644)
8285 (emacs-substitute-sexps file
8286 ;; Avoid interactive prompts.
8287 ("(defvar emacsql-sqlite-user-prompted" 't)
8288 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8289 ("(executable-find" (which "gcc"))
8290 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8291 ;; in the right place.
8292 ("(defvar emacsql-sqlite-executable"
8293 (string-append (assoc-ref outputs "out")
8294 "/bin/emacsql-sqlite"))))))
8295 (replace 'install
8296 (lambda* (#:key outputs #:allow-other-keys)
8297 (let* ((out (assoc-ref outputs "out")))
8298 (install-file "sqlite/emacsql-sqlite"
8299 (string-append out "/bin"))
8300 (for-each (cut install-file <>
8301 (string-append out "/share/emacs/site-lisp/guix.d/"
8302 "emacsql" "-" ,version))
8303 (find-files "." "\\.elc*$")))
8304 #t)))))
8305 (inputs
8306 `(("emacs-minimal" ,emacs-minimal)
e0cc7f66 8307 ("mariadb" ,mariadb)
4d089b5e
OP
8308 ("postgresql" ,postgresql)))
8309 (propagated-inputs
8310 `(("emacs-finalize" ,emacs-finalize)
8311 ("emacs-pg" ,emacs-pg)))
8312 (home-page "https://github.com/skeeto/emacsql")
8313 (synopsis "Emacs high-level SQL database front-end")
8314 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8315including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8316has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8317object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8318 (license license:gpl3+)))
93aba854
OP
8319
8320(define-public emacs-closql
8321 (package
8322 (name "emacs-closql")
8323 (version "0.5.1")
8324 (source
8325 (origin
8326 (method url-fetch)
8327 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8328 "v" version ".tar.gz"))
8329 (file-name (string-append name "-" version ".tar.gz"))
8330 (sha256
8331 (base32
8332 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8333 (build-system emacs-build-system)
8334 (propagated-inputs
8335 `(("emacs-emacsql" ,emacs-emacsql)))
8336 (home-page "https://github.com/emacscollective/closql")
8337 (synopsis "Store EIEIO objects using EmacSQL")
8338 (description
8339 "This package allows to store uniform EIEIO objects in an EmacSQL
8340database. SQLite is used as backend. This library imposes some restrictions
8341on what kind of objects can be stored; it isn't intended to store arbitrary
8342objects. All objects have to share a common superclass and subclasses cannot
8343add any additional instance slots.")
8344 (license license:gpl3)))
452454e3
OP
8345
8346(define-public emacs-epkg
8347 ;; The release version is to old for the current database scheme.
8348 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8349 (package
8350 (name "emacs-epkg")
8351 (version (git-version "3.0.0" "1" commit))
8352 (source
8353 (origin
8354 (method git-fetch)
8355 (uri (git-reference
8356 (url "https://github.com/emacscollective/epkg.git")
8357 (commit commit)))
8358 (file-name (git-file-name name version))
8359 (sha256
8360 (base32
8361 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8362 (build-system emacs-build-system)
8363 (propagated-inputs
8364 `(("emacs-closql" ,emacs-closql)
8365 ("emacs-dash" ,emacs-dash)))
8366 (home-page "https://emacsmirror.net")
8367 (synopsis "Browse the Emacsmirror package database")
8368 (description "This package provides access to a local copy of the
8369Emacsmirror package database. It provides low-level functions for querying
8370the database and a @file{package.el} user interface for browsing the database.
8371Epkg itself is not a package manager.
8372
8373Getting a local copy:
8374
8375@example
8376git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8377cd ~/.emacs.d/epkgs
8378git submodule init
8379git config --global url.https://github.com/.insteadOf git@@github.com:
8380git submodule update
8381@end example
8382
8383Some submodule may be missing. In this case Git will prompt for a GitHub user
8384name and password. To skip it press a @key{Return} key.
8385
8386You could get a Epkg package list by invoking @code{epkg-list-packages} in
8387Emacs.")
8388 (license license:gpl3+))))
c51e592d
KH
8389
8390(define-public emacs-elisp-slime-nav
8391 (package
8392 (name "emacs-elisp-slime-nav")
8393 (version "0.9")
8394 (source
8395 (origin
8396 (method url-fetch)
8397 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8398 version ".tar.gz"))
8399 (file-name (string-append name "-" version ".tar.gz"))
8400 (sha256
8401 (base32
8402 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8403 (build-system emacs-build-system)
8404 (home-page "https://github.com/purcell/elisp-slime-nav")
8405 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8406 (description
8407 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8408in @code{emacs-lisp-mode}, together with an elisp equivalent of
8409@code{slime-describe-symbol}.")
8410 (license license:gpl3+)))
4f95a118
CM
8411
8412(define-public emacs-dedicated
8413 (package
8414 (name "emacs-dedicated")
8415 (version "1.0.0")
8416 (source (origin
8417 (method url-fetch)
8418 (uri (string-append
8419 "https://github.com/emacsorphanage/dedicated/archive/"
8420 version
8421 ".tar.gz"))
8422 (sha256
8423 (base32
8424 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8425 (file-name (string-append name "-" version ".tar.gz"))))
8426 (build-system emacs-build-system)
8427 (home-page "https://github.com/emacsorphanage/dedicated")
8428 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8429 (description
8430 "This simple Emacs minor mode allows you to toggle a window's
8431\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8432files into that window. This can be quite handy since many commands will use
8433another window to show results (compilation mode, starting info, and so on).
8434A dedicated window won't be used for such a purpose. For details, please read
8435the source file.")
8436 (license license:gpl2+)))
59dc661f
OP
8437
8438(define-public emacs-nnreddit
8439 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8440 (revision "1"))
8441 (package
8442 (name "emacs-nnreddit")
8443 (version (string-append "0.0.1-" revision "."
8444 (string-take commit 7)))
8445 (source (origin
8446 (method git-fetch)
8447 (uri (git-reference
8448 (url "https://github.com/paul-issartel/nnreddit.git")
8449 (commit commit)))
8450 (file-name (string-append name "-" version "-checkout"))
8451 (sha256
8452 (base32
8453 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8454 (build-system emacs-build-system)
8455 (home-page "https://github.com/paul-issartel/nnreddit")
8456 (synopsis "Reddit backend for the Gnus newsreader")
8457 (description "@url{https://www.reddit.com} backend for the Gnus
8458newsreader.")
8459 (license license:gpl3+))))
63e6c4ad
OP
8460
8461(define-public emacs-makey
8462 (package
8463 (name "emacs-makey")
8464 (version "0.3")
8465 (source
8466 (origin
8467 (method url-fetch)
8468 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8469 version ".tar.gz"))
8470 (file-name (string-append name "-" version ".tar.gz"))
8471 (sha256
8472 (base32
8473 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8474 (build-system emacs-build-system)
8475 (home-page "https://github.com/mickeynp/makey")
8476 (synopsis "Emacs interactive command-line mode")
8477 (description
8478 "This package provides an Emacs interactive command-line mode.")
8479 (license license:gpl3+)))
a34d562a
OP
8480
8481(define-public emacs-outorg
8482 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8483 (package
8484 (name "emacs-outorg")
8485 (version (git-version "2.0" "1" commit))
8486 (source
8487 (origin
8488 (method git-fetch)
8489 (uri (git-reference
8490 (url "https://github.com/alphapapa/outorg")
8491 (commit commit)))
8492 (file-name (git-file-name name version))
8493 (sha256
8494 (base32
8495 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8496 (build-system emacs-build-system)
8497 (home-page "https://github.com/alphapapa/outorg")
8498 (synopsis "Org-style comment editing")
8499 (description "Outorg is for editing comment-sections of source-code
8500files in temporary Org-mode buffers. It turns conventional
8501literate-programming upside-down in that the default mode is the
8502programming-mode, and special action has to be taken to switch to the
8503text-mode (i.e. Org-mode).")
8504 (license license:gpl3+))))
c47c3779
OP
8505
8506(define-public emacs-outshine
8507 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8508 (package
8509 (name "emacs-outshine")
8510 (version (git-version "2.0" "1" commit))
8511 (source (origin
8512 (method git-fetch)
8513 (uri (git-reference
8514 (url "https://github.com/alphapapa/outshine.git")
8515 (commit commit)))
8516 (file-name (git-file-name name version))
8517 (sha256
8518 (base32
8519 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8520 (build-system emacs-build-system)
8521 (propagated-inputs
8522 `(("emacs-outorg" ,emacs-outorg)))
8523 (home-page "https://github.com/alphapapa/outshine")
8524 (synopsis "Emacs outline with outshine")
8525 (description "Outshine attempts to bring the look and feel of
8526@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8527of @code{outline-minor-mode} (@code{org-mode} itself derives from
8528outline-mode), so there is no such thing like an outshine mode, only
8529@code{outline-minor-mode} with outshine extensions loaded.")
8530 (license license:gpl3+))))
de8d9912
OP
8531
8532(define-public emacs-parsebib
8533 (package
8534 (name "emacs-parsebib")
8535 (version "2.3.1")
8536 (source
8537 (origin
8538 (method url-fetch)
8539 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8540 version ".tar.gz"))
8541 (file-name (string-append name "-" version ".tar.gz"))
8542 (sha256
8543 (base32
8544 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8545 (build-system emacs-build-system)
8546 (home-page "https://github.com/joostkremers/parsebib")
8547 (synopsis "Library for parsing bib files")
8548 (description
8549 "This package provides an Emacs library for parsing bib files.")
8550 (license license:gpl3+)))
55d53210
OP
8551
8552(define-public emacs-biblio
8553 (package
8554 (name "emacs-biblio")
8555 (version "0.1")
8556 (source
8557 (origin
8558 (method url-fetch)
8559 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8560 version ".tar.gz"))
8561 (file-name (string-append name "-" version ".tar.gz"))
8562 (sha256
8563 (base32
8564 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8565 (build-system emacs-build-system)
98668259
TG
8566 (propagated-inputs
8567 `(("emacs-seq" ,emacs-seq)
8568 ("emacs-dash" ,emacs-dash)
8569 ("emacs-let-alist" ,emacs-let-alist)))
55d53210
OP
8570 (home-page "https://github.com/cpitclaudel/biblio.el")
8571 (synopsis "Browse and import bibliographic references")
8572 (description "This package provides an extensible Emacs package for
8573browsing and fetching references.
8574
8575@file{biblio.el} makes it easy to browse and gather bibliographic references
8576and publications from various sources, by keywords or by DOI. References are
8577automatically fetched from well-curated sources, and formatted as BibTeX.")
8578 (license license:gpl3+)))
f063e18c
OP
8579
8580(define-public emacs-helm-bibtex
8581 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8582 (revision "1"))
8583 (package
8584 (name "emacs-helm-bibtex")
8585 (version (string-append "2.0.0" "-" revision "."
8586 (string-take commit 7)))
8587 (source
8588 (origin
8589 (method git-fetch)
8590 (uri (git-reference
8591 (url "https://github.com/tmalsburg/helm-bibtex.git")
8592 (commit commit)))
8593 (file-name (string-append name "-" version "-checkout"))
8594 (sha256
8595 (base32
8596 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8597 (build-system emacs-build-system)
8598 (propagated-inputs
8599 `(("emacs-helm" ,emacs-helm)
8600 ("emacs-parsebib" ,emacs-parsebib)
8601 ("emacs-s" ,emacs-s)
8602 ("emacs-dash" ,emacs-dash)
8603 ("emacs-f" ,emacs-f)
814bb816
JL
8604 ("emacs-biblio" ,emacs-biblio)
8605 ("emacs-ivy" ,emacs-ivy)))
f063e18c
OP
8606 (home-page "https://github.com/tmalsburg/helm-bibtex")
8607 (synopsis "Bibliography manager based on Helm")
8608 (description "This package provides bibliography manager for Emacs,
8609based on Helm and the bibtex-completion backend.
8610
8611Key features:
8612
8613@itemize
8614@item Quick access to your bibliography from within Emacs
8615@item Powerful search capabilities
8616@item Provides instant search results as you type
8617@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8618@item Open the PDFs, URLs, or DOIs associated with an entry
8619@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8620BibTeX entries, or plain text references at point, attach PDFs to emails
8621@item Support for note taking
8622@item Quick access to online bibliographic databases such as Pubmed,
8623arXiv, Google Scholar, Library of Congress, etc.
8624@item Imports BibTeX entries from CrossRef and other sources.
8625@end itemize\n")
8626 (license license:gpl3+))))
f445c75d
OP
8627
8628(define-public emacs-ewmctrl
84960cb7 8629 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
f445c75d
OP
8630 (package
8631 (name "emacs-ewmctrl")
84960cb7 8632 (version (git-version "0.0.1" "1" commit))
f445c75d
OP
8633 (source
8634 (origin
8635 (method git-fetch)
8636 (uri (git-reference
8637 (url "https://github.com/flexibeast/ewmctrl.git")
8638 (commit commit)))
84960cb7 8639 (file-name (git-file-name name version))
f445c75d
OP
8640 (sha256
8641 (base32
8642 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8643 (build-system emacs-build-system)
0bcb9258
OP
8644 (arguments
8645 '(#:phases
8646 (modify-phases %standard-phases
8647 (add-after 'unpack 'patch-ewmctrl
8648 ;; This build phase makes sure ‘ewmctrl’ looks
8649 ;; for ‘wmctrl’ in the right place.
8650 (lambda _
8651 (let ((file "ewmctrl.el"))
8652 (chmod file #o644)
8653 (emacs-substitute-sexps file
8654 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8655 (inputs
8656 `(("wmctrl" ,wmctrl)))
f445c75d
OP
8657 (home-page "https://github.com/flexibeast/ewmctrl")
8658 (synopsis "Emacs interface to @code{wmctrl}")
8659 (description "@code{ewmctrl} provides an Emacs interface to
8660@code{wmctrl} command-line window-management program.")
8661 (license license:gpl3+))))
707ff555
OP
8662
8663(define-public emacs-helm-gtags
8664 (package
8665 (name "emacs-helm-gtags")
8666 (version "1.5.6")
8667 (source (origin
8668 (method url-fetch)
8669 (uri (string-append
8670 "https://github.com/syohex/emacs-helm-gtags/archive/"
8671 version ".tar.gz"))
8672 (file-name (string-append name "-" version ".tar.gz"))
8673 (sha256
8674 (base32
8675 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
8676 (build-system emacs-build-system)
d848f55e
OP
8677 (propagated-inputs
8678 `(("emacs-helm" ,emacs-helm)))
707ff555
OP
8679 (home-page "https://github.com/syohex/emacs-helm-gtags")
8680 (synopsis "Emacs Helm interface to GNU Global")
8681 (description
8682 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
8683 (license license:gpl3+)))
53d4090b
OP
8684
8685(define-public emacs-list-utils
8686 (package
8687 (name "emacs-list-utils")
8688 (version "0.4.4")
8689 (source
8690 (origin
8691 (method url-fetch)
8692 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
8693 "v" version ".tar.gz"))
8694 (file-name (string-append name "-" version ".tar.gz"))
8695 (sha256
8696 (base32
8697 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
8698 (build-system emacs-build-system)
8699 (home-page "https://github.com/rolandwalker/list-utils")
8700 (synopsis "List-manipulation utility functions")
8701 (description "This package provides a list manipulation library for Emacs.")
8702 (license license:gpl3+)))
fb3aeaf7
OP
8703
8704(define-public emacs-move-text
8705 (package
8706 (name "emacs-move-text")
8707 (version "2.0.8")
8708 (source
8709 (origin
8710 (method url-fetch)
8711 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
8712 version ".tar.gz"))
8713 (file-name (string-append name "-" version ".tar.gz"))
8714 (sha256
8715 (base32
8716 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
8717 (build-system emacs-build-system)
8718 (home-page "https://github.com/emacsfodder/move-text")
8719 (synopsis "Move current line or region with M-up or M-down")
8720 (description "This package provide functions to move the current line
8721using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
8722region instead.")
8723 (license license:gpl3+)))
dc586337
OP
8724
8725(define-public emacs-validate
8726 (package
8727 (name "emacs-validate")
8728 (version "1.0.5")
8729 (source (origin
8730 (method url-fetch)
8731 (uri (string-append "https://github.com/Malabarba/validate.el"
8732 "/archive/" version ".tar.gz"))
8733 (file-name (string-append name "-" version ".tar.gz"))
8734 (sha256
8735 (base32
8736 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
8737 (build-system emacs-build-system)
8738 (home-page "https://github.com/Malabarba/validate.el")
8739 (synopsis "Emacs library for scheme validation")
8740 (description "This Emacs library provides two functions that perform
8741schema validation.")
8742 (license license:gpl3+)))
f8a88f22 8743
d7403c12
OP
8744(define-public emacs-rainbow-blocks
8745 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
8746 (package
8747 (name "emacs-rainbow-blocks")
8748 (version (git-version "1.0.0" "1" commit))
8749 (source (origin
8750 (method git-fetch)
8751 (uri (git-reference
8752 (url "https://github.com/istib/rainbow-blocks.git")
8753 (commit commit)))
8754 (file-name (git-file-name name version))
8755 (sha256
8756 (base32
8757 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
8758 (build-system emacs-build-system)
8759 (home-page "https://github.com/istib/rainbow-blocks")
8760 (synopsis "Highlight sexp blocks")
8761 (description "Rainbow-blocks is an Emacs mode that highlights blocks
8762made of parentheses, brackets, and braces according to their depth. Each
8763successive level is highlighted in a different color. This makes it easy to
8764orient yourself in the code, and tell which statements are at a given level.")
8765 (license license:gpl3+))))
20b5b16e
OP
8766
8767(define-public emacs-hierarchy
8768 (package
8769 (name "emacs-hierarchy")
8770 (version "0.7.0")
8771 (source
8772 (origin
8773 (method url-fetch)
8774 (uri (string-append
8775 "https://github.com/DamienCassou/hierarchy/archive/"
8776 "v" version ".tar.gz"))
8777 (file-name (string-append name "-" version ".tar.gz"))
8778 (sha256
8779 (base32
8780 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
8781 (build-system emacs-build-system)
8782 (home-page "https://github.com/DamienCassou/hierarchy")
8783 (synopsis "Library to create and display hierarchy structures")
8784 (description "This package provides an Emacs library to create, query,
8785navigate and display hierarchy structures.")
8786 (license license:gpl3+)))
0acfc481
OP
8787
8788(define-public emacs-tree-mode
8789 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
8790 (revision "1"))
8791 (package
8792 (name "emacs-tree-mode")
8793 (version (string-append "0.0.1" "-" revision "."
8794 (string-take commit 7)))
8795 (source
8796 (origin
8797 (method git-fetch)
8798 (uri (git-reference
8799 (url "https://github.com/emacsorphanage/tree-mode.git")
8800 (commit commit)))
8801 (file-name (string-append name "-" version "-checkout"))
8802 (sha256
8803 (base32
8804 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
8805 (build-system emacs-build-system)
8806 (home-page "https://github.com/emacsorphanage/tree-mode")
8807 (synopsis "Emacs mode to manage tree widgets")
8808 (description
8809 "This package provides an Emacs library to manage tree widgets.")
8810 (license license:gpl3+))))
74b2f745
OP
8811
8812(define-public emacs-md4rd
8813 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
8814 (revision "1"))
8815 (package
8816 (name "emacs-md4rd")
8817 (version (string-append "0.0.1" "-" revision "."
8818 (string-take commit 7)))
8819 (source (origin
8820 (method git-fetch)
8821 (uri (git-reference
8822 (url "https://github.com/ahungry/md4rd.git")
8823 (commit commit)))
8824 (file-name (string-append name "-" version "-checkout"))
8825 (sha256
8826 (base32
8827 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
8828 (propagated-inputs
8829 `(("emacs-hierarchy" ,emacs-hierarchy)
8830 ("emacs-request" ,emacs-request)
8831 ("emacs-dash" ,emacs-dash)
8832 ("emacs-s" ,emacs-s)
8833 ("emacs-tree-mode" ,emacs-tree-mode)))
8834 (build-system emacs-build-system)
8835 (home-page "https://github.com/ahungry/md4rd")
8836 (synopsis "Emacs Mode for Reddit")
8837 (description
8838 "This package allows to read Reddit from within Emacs interactively.")
8839 (license license:gpl3+))))
b8f91043
OP
8840
8841(define-public emacs-pulseaudio-control
9f2adb2f
PN
8842 (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
8843 (revision "2"))
b8f91043
OP
8844 (package
8845 (name "emacs-pulseaudio-control")
9f2adb2f 8846 (version (git-version "0.0.1" revision commit))
b8f91043
OP
8847 (source
8848 (origin
8849 (method git-fetch)
8850 (uri (git-reference
8851 (url "https://github.com/flexibeast/pulseaudio-control.git")
8852 (commit commit)))
9f2adb2f 8853 (file-name (git-file-name name version))
b8f91043
OP
8854 (sha256
8855 (base32
9f2adb2f 8856 "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
b8f91043 8857 (build-system emacs-build-system)
a14a80da
LC
8858 (arguments
8859 '(#:phases (modify-phases %standard-phases
8860 (add-after 'unpack 'patch-file-name
8861 (lambda* (#:key inputs #:allow-other-keys)
8862 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
8863 (chmod "pulseaudio-control.el" #o600)
8864 (emacs-substitute-variables "pulseaudio-control.el"
8865 ("pulseaudio-control-pactl-path"
8866 (string-append pulseaudio "/bin/pactl")))
8867 #t))))))
8868 (inputs `(("pulseaudio" ,pulseaudio)))
b8f91043
OP
8869 (home-page "https://github.com/flexibeast/pulseaudio-control")
8870 (synopsis "Control @code{pulseaudio} from Emacs")
8871 (description
8872 "This package allows to control @code{pulseaudio} from Emacs.")
8873 (license license:gpl3+))))
5746ca13
OP
8874
8875(define-public emacs-datetime
8876 (package
8877 (name "emacs-datetime")
8878 (version "0.3")
8879 (source (origin
8880 (method url-fetch)
8881 (uri (string-append
8882 "https://github.com/doublep/datetime/archive/"
8883 version ".tar.gz"))
8884 (file-name (string-append name "-" version ".tar.gz"))
8885 (sha256
8886 (base32
8887 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
8888 (build-system emacs-build-system)
8889 (home-page "https://github.com/doublep/datetime/")
8890 (synopsis "Library to work with dates in Emacs")
8891 (description "Parsing, formatting, matching and recoding
8892timestamps and date-time format strings library for Emacs.")
8893 (license license:gpl3+)))
a3a876c2
OP
8894
8895(define-public emacs-org-mind-map
8896 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
8897 (revision "1"))
8898 (package
8899 (name "emacs-org-mind-map")
8900 (version (string-append "0.0.1" "-" revision "."
8901 (string-take commit 7)))
8902 (source
8903 (origin
8904 (method git-fetch)
8905 (uri (git-reference
8906 (url "https://github.com/theodorewiles/org-mind-map.git")
8907 (commit commit)))
8908 (file-name (string-append name "-" version "-checkout"))
8909 (sha256
8910 (base32
8911 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
8912 (propagated-inputs
8913 `(("emacs-dash" ,emacs-dash)))
8914 (build-system emacs-build-system)
8915 (home-page "https://github.com/theodorewiles/org-mind-map")
8916 (synopsis "Create Graphviz directed graphs from Org files")
8917 (description
8918 "This package creates Graphviz directed graphs from Org files.")
8919 (license license:gpl3+))))
8d907999
OP
8920
8921(define-public emacs-npm-mode
8922 (package
8923 (name "emacs-npm-mode")
8924 (version "0.6.0")
8925 (source
8926 (origin
8927 (method url-fetch)
8928 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
8929 version ".tar.gz"))
8930 (file-name (string-append name "-" version ".tar.gz"))
8931 (sha256
8932 (base32
8933 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
8934 (build-system emacs-build-system)
8935 (home-page "https://github.com/mojochao/npm-mode")
8936 (synopsis "Minor mode for working with @code{npm} projects")
8937 (description
8938 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
8939 (license license:gpl3+)))
b12fb29e
OP
8940
8941(define-public emacs-seq
8942 (package
8943 (name "emacs-seq")
8944 (version "2.20")
8945 (source
8946 (origin
8947 (method url-fetch)
8948 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
8949 (sha256
8950 (base32
8951 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
8952 (build-system emacs-build-system)
8953 (home-page "http://elpa.gnu.org/packages/seq.html")
8954 (synopsis "Sequence manipulation functions")
8955 (description "Sequence-manipulation functions that complement basic
8956functions provided by @file{subr.el}.")
8957 (license license:gpl3+)))
be3cf803
OP
8958
8959(define-public emacs-itail
8960 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
8961 (revision "1"))
8962 (package
8963 (name "emacs-itail")
8964 (version (string-append "0.0.1" "-" revision "."
8965 (string-take commit 7)))
8966 (source
8967 (origin
8968 (method git-fetch)
8969 (uri (git-reference
8970 (url "https://github.com/re5et/itail.git")
8971 (commit commit)))
8972 (file-name (string-append name "-" version "-checkout"))
8973 (sha256
8974 (base32
8975 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
8976 (build-system emacs-build-system)
8977 (home-page "https://github.com/re5et/itail")
8978 (synopsis "Interactive @code{tail} Emacs mode")
8979 (description "@code{itail} provides interactive @code{tail} mode
8980that allows you to filter the tail with unix pipes and highlight the
8981contents of the tailed file. Works locally or on remote files using
8982tramp.")
8983 (license license:gpl3+))))
b836c650
OP
8984
8985(define-public emacs-loop
8986 (package
8987 (name "emacs-loop")
8988 (version "1.3")
8989 (source
8990 (origin
8991 (method url-fetch)
8992 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
8993 version ".tar.gz"))
8994 (file-name (string-append name "-" version ".tar.gz"))
8995 (sha256
8996 (base32
8997 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
8998 (build-system emacs-build-system)
8999 (home-page "https://github.com/Wilfred/loop.el")
9000 (synopsis "Imperative loop structures for Emacs")
9001 (description "Loop structures familiar to users of other languages. This
9002library adds a selection of popular loop structures as well as break and
9003continue.")
9004 (license license:gpl3+)))
1bd3400d
OP
9005
9006(define-public emacs-elisp-refs
9007 (package
9008 (name "emacs-elisp-refs")
351b6463 9009 (version "1.3")
1bd3400d
OP
9010 (source
9011 (origin
9012 (method url-fetch)
9013 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
9014 version ".tar.gz"))
9015 (file-name (string-append name "-" version ".tar.gz"))
9016 (sha256
9017 (base32
351b6463 9018 "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
1bd3400d
OP
9019 (build-system emacs-build-system)
9020 (propagated-inputs
9021 `(("emacs-dash" ,emacs-dash)
9022 ("emacs-f" ,emacs-f)
9023 ("emacs-list-utils" ,emacs-list-utils)
9024 ("emacs-loop" ,emacs-loop)
351b6463
KH
9025 ("emacs-s" ,emacs-s)
9026 ("emacs-shut-up" ,emacs-shut-up)))
1bd3400d
OP
9027 (home-page "https://github.com/Wilfred/elisp-refs")
9028 (synopsis "Find callers of elisp functions or macros")
9029 (description "Find references to functions, macros or variables. Unlike a
9030dumb text search, @code{elisp-refs} actually parses the code, so it's never
9031confused by comments or @code{foo-bar} matching @code{foo}.")
9032 (license license:gpl3+)))
08ff4fd1
OP
9033
9034(define-public emacs-crux
9035 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
9036 (revision "1"))
9037 (package
9038 (name "emacs-crux")
9039 (version (string-append "0.3.0" "-" revision "."
9040 (string-take commit 7)))
9041 (source
9042 (origin
9043 (method git-fetch)
9044 (uri (git-reference
9045 (url "https://github.com/bbatsov/crux.git")
9046 (commit commit)))
9047 (file-name (string-append name "-" version "-checkout"))
9048 (sha256
9049 (base32
9050 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
9051 (build-system emacs-build-system)
9052 (home-page "https://github.com/bbatsov/crux")
9053 (synopsis "Collection of useful functions for Emacs")
9054 (description
9055 "@code{crux} provides a collection of useful functions for Emacs.")
9056 (license license:gpl3+))))
3677e5ee
OP
9057
9058(define-public emacs-edit-server
9059 (package
9060 (name "emacs-edit-server")
9061 (version "1.13")
9062 (source
9063 (origin
9064 (method url-fetch)
9065 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
9066 "v" version ".tar.gz"))
9067 (file-name (string-append name "-" version ".tar.gz"))
9068 (sha256
9069 (base32
9070 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
9071 (build-system emacs-build-system)
9072 (arguments
9073 `(#:phases
9074 (modify-phases %standard-phases
9075 (add-after 'unpack 'chdir-elisp
9076 ;; Elisp directory is not in root of the source.
9077 (lambda _
9078 (chdir "servers"))))))
9079 (home-page "https://github.com/stsquad/emacs_chrome")
9080 (synopsis "Server that responds to edit requests from Chromium")
9081 (description
9082 "This package provides an edit server to respond to requests from Emacs.")
9083 (license license:gpl3+)))
40246075
OP
9084
9085(define-public emacs-m-buffer-el
9086 (package
9087 (name "emacs-m-buffer-el")
9088 (version "0.15")
9089 (source
9090 (origin
9091 (method url-fetch)
9092 (uri (string-append "https://github.com/phillord/m-buffer-el"
9093 "/archive/" "v" version ".tar.gz"))
9094 (file-name (string-append name "-" version ".tar.gz"))
9095 (sha256
9096 (base32
9097 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
9098 (arguments
9099 `(#:phases
9100 (modify-phases %standard-phases
9101 (add-before 'install 'check
9102 (lambda* (#:key inputs #:allow-other-keys)
d4c68d32
TGR
9103 (invoke "emacs" "--batch" "-L" "."
9104 "-l" "test/m-buffer-test.el"
9105 "-l" "test/m-buffer-at-test.el"
9106 "-f" "ert-run-tests-batch-and-exit"))))))
40246075
OP
9107 (build-system emacs-build-system)
9108 (home-page "https://github.com/phillord/m-buffer-el")
9109 (synopsis "List oriented buffer operations for Emacs")
9110 (description "@code{m-buffer} provides a set of list-orientated functions
9111for operating over the contents of Emacs buffers.")
9112 (license license:gpl3+)))
15d56833
OP
9113
9114(define-public emacs-let-alist
9115 (package
9116 (name "emacs-let-alist")
9117 (version "1.0.5")
9118 (source
9119 (origin
9120 (method url-fetch)
9121 (uri (string-append
9122 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
9123 (sha256
9124 (base32
9125 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
9126 (build-system emacs-build-system)
9127 (home-page "https://elpa.gnu.org/packages/let-alist.html")
9128 (synopsis "Easily let-bind values of an assoc-list by their names")
9129 (description "This package offers a single macro, @code{let-alist}. This
9130macro takes a first argument (whose value must be an alist) and a body.")
9131 (license license:gpl3+)))
ddc56b80
OP
9132
9133(define-public emacs-esup
9134 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
9135 (revision "1"))
9136 (package
9137 (name "emacs-esup")
9138 (version (string-append "0.6" "-" revision "."
9139 (string-take commit 7)))
9140 (source
9141 (origin
9142 (method git-fetch)
9143 (uri (git-reference
9144 (url "https://github.com/jschaf/esup.git")
9145 (commit commit)))
9146 (file-name (string-append name "-" version "-checkout"))
9147 (sha256
9148 (base32
9149 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
9150 ;; TODO: Add tests
9151 (build-system emacs-build-system)
9152 (home-page "https://github.com/jschaf/esup")
9153 (synopsis "Emacs start up profiler")
9154 (description "Benchmark Emacs Startup time without ever leaving
9155your Emacs.")
9156 (license license:gpl2+))))
e33dba15
OP
9157
9158(define-public emacs-sourcemap
9159 (package
9160 (name "emacs-sourcemap")
9161 (version "0.03")
9162 (source
9163 (origin
9164 (method url-fetch)
9165 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9166 version ".tar.gz"))
9167 (file-name (string-append name "-" version ".tar.gz"))
9168 (sha256
9169 (base32
9170 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9171 (build-system emacs-build-system)
9172 (home-page "https://github.com/syohex/emacs-sourcemap")
9173 (synopsis "Sourcemap parser")
9174 (description "Sourcemap parser")
9175 (license license:gpl3+)))
9968e444
OP
9176
9177(define-public emacs-macrostep
9178 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9179 (package
9180 (name "emacs-macrostep")
9181 (version (git-version "0.9" "1" commit))
9182 (source (origin
9183 (method git-fetch)
9184 (uri (git-reference
9185 (url "https://github.com/joddie/macrostep.git")
9186 (commit commit)))
9187 (file-name (string-append name "-" version "-checkout"))
9188 (sha256
9189 (base32
9190 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9191 (build-system emacs-build-system)
9192 (arguments
9193 '(#:phases
9194 (modify-phases %standard-phases
9195 (add-before 'check 'remove-test
9196 ;; Fails because of requirement ‘/bin/sh’.
9197 (lambda _
9198 (let ((file "macrostep-test.el"))
9199 (chmod file #o644)
9200 (emacs-batch-edit-file file
9201 `(progn (progn (goto-char (point-min))
9202 (re-search-forward
9203 "(ert-deftest macrostep-expand-c-macros")
9204 (beginning-of-line)
9205 (kill-sexp))
9206 (basic-save-buffer))))))
9207 (add-before 'install 'check
9208 (lambda _
9209 (invoke "emacs" "--batch" "-L" "."
9210 "-l" "macrostep-test.el"
9211 "-f" "ert-run-tests-batch-and-exit"))))))
9212 (home-page "https://github.com/joddie/macrostep")
9213 (synopsis "Interactive macro-expander for Emacs")
9214 (description "@code{macrostep} is an Emacs minor mode for interactively
9215stepping through the expansion of macros in Emacs Lisp source code. It lets
9216you see exactly what happens at each step of the expansion process by
9217pretty-printing the expanded forms inline in the source buffer, which is
9218temporarily read-only while macro expansions are visible. You can expand and
9219collapse macro forms one step at a time, and evaluate or instrument the
9220expansions for debugging with Edebug as normal (but see “Bugs and known
9221limitations”, below). Single-stepping through the expansion is particularly
9222useful for debugging macros that expand into another macro form. These can be
9223difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9224until the top-level form is no longer a macro call.")
9225 (license license:gpl3+))))
02999382
OP
9226
9227(define-public emacs-parent-mode
9228 (package
9229 (name "emacs-parent-mode")
9230 (version "2.3")
9231 (source
9232 (origin
9233 (method url-fetch)
9234 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9235 version ".tar.gz"))
9236 (file-name (string-append name "-" version ".tar.gz"))
9237 (sha256
9238 (base32
9239 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9240 (build-system emacs-build-system)
9241 (home-page "https://github.com/Fanael/parent-mode")
9242 (synopsis "Get major mode's parent modes")
9243 (description "Get major mode's parent modes")
9244 (license license:gpl3+)))
045f6b7c
OP
9245
9246(define-public emacs-lacarte
9247 (package
9248 (name "emacs-lacarte")
9249 (version "0.1")
9250 (source (origin
9251 (method url-fetch)
9252 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9253 (sha256
9254 (base32
9255 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9256 (build-system emacs-build-system)
9257 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9258 (synopsis "Execute menu items as commands, with completion")
9259 (description "Execute menu items as commands, with completion.")
9260 (license license:gpl3)))
b8ddef4b
OP
9261
9262(define-public emacs-company-lua
9263 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9264 (package
9265 (name "emacs-company-lua")
9266 (version (git-version "0.1" "1" commit))
9267 (source
9268 (origin
9269 (method git-fetch)
9270 (uri (git-reference
9271 (url "https://github.com/ptrv/company-lua.git")
9272 (commit commit)))
9273 (file-name (git-file-name name version))
9274 (sha256
9275 (base32
9276 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9277 (build-system emacs-build-system)
9278 (propagated-inputs
9279 `(("emacs-company" ,emacs-company)
9280 ("emacs-s" ,emacs-s)
9281 ("emacs-f" ,emacs-f)
9282 ("emacs-lua-mode" ,emacs-lua-mode)))
9283 (home-page "https://github.com/ptrv/company-lua")
9284 (synopsis "Company backend for Lua")
9285 (description
9286 "This package provides Company backend for Lua programming language.")
9287 (license license:gpl3+))))
f61ecb85
OP
9288
9289(define-public emacs-beginend
9290 (package
9291 (name "emacs-beginend")
9292 (version "2.0.0")
9293 (source
9294 (origin
9295 (method url-fetch)
9296 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9297 "v" version ".tar.gz"))
9298 (file-name (string-append name "-" version ".tar.gz"))
9299 (sha256
9300 (base32
9301 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9302 ;; TODO: Run tests.
9303 (build-system emacs-build-system)
9304 (inputs
9305 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9306 (home-page "https://github.com/DamienCassou/beginend")
9307 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9308 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9309keybindings for Emacs modes so that point moves to meaningful
9310locations. Redefined keys are still accessible by pressing the same
9311key again.")
9312 (license license:gpl3+)))
666e5617
OP
9313
9314(define-public emacs-mbsync
9315 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9316 (revision "1"))
9317 (package
9318 (name "emacs-mbsync")
9319 (version (string-append "0.0.1" "-" revision "."
9320 (string-take commit 7)))
9321 (source
9322 (origin
9323 (method git-fetch)
9324 (uri (git-reference
9325 (url "https://github.com/dimitri/mbsync-el.git")
9326 (commit commit)))
9327 (file-name (string-append name "-" version "-checkout"))
9328 (sha256
9329 (base32
9330 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9331 (build-system emacs-build-system)
9332 (home-page "https://github.com/dimitri/mbsync-el")
9333 (synopsis "Interface to mbsync for Emacs")
9334 (description "This package allows to call the @code{mbsync} from
9335within Emacs.")
9336 (license license:gpl3+))))
60bf9265
OP
9337
9338(define-public emacs-ibuffer-projectile
9339 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9340 (revision "1"))
9341 (package
9342 (name "emacs-ibuffer-projectile")
9343 (version (string-append "0.2" "-" revision "."
9344 (string-take commit 7)))
9345 (source
9346 (origin
9347 (method git-fetch)
9348 (uri (git-reference
9349 (url "https://github.com/purcell/ibuffer-projectile.git")
9350 (commit commit)))
9351 (file-name (string-append name "-" version "-checkout"))
9352 (sha256
9353 (base32
9354 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9355 (build-system emacs-build-system)
9356 (propagated-inputs
9357 `(("emacs-projectile" ,emacs-projectile)))
9358 (home-page "https://github.com/purcell/ibuffer-projectile")
9359 (synopsis "Group ibuffer's list by projectile root")
9360 (description "Adds functionality to Emacs @code{ibuffer} for
9361grouping buffers by their projectile root directory.")
9362 (license license:gpl3+))))
295513c6
OP
9363
9364(define-public emacs-helm-mode-manager
9365 (package
9366 (name "emacs-helm-mode-manager")
9367 (version "1.0.0")
9368 (source
9369 (origin
9370 (method url-fetch)
9371 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9372 "archive/" version ".tar.gz"))
9373 (file-name (string-append name "-" version ".tar.gz"))
9374 (sha256
9375 (base32
9376 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9377 (build-system emacs-build-system)
9378 (propagated-inputs
9379 `(("emacs-helm" ,emacs-helm)))
9380 (home-page "https://github.com/istib/helm-mode-manager/")
9381 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9382 (description "This package provides a Helm interface for toggling Emacs
9383major or minor mode.
9384
9385@itemize
9386@item @code{helm-switch-major-mode} list of all major modes
9387@item @code{helm-enable-minor-mode} list of all inactive minor modes
9388@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9389@end itemize\n
9390
9391Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9392documentation.")
9393 (license license:gpl3+)))
4cdfc9ef
OP
9394
9395(define-public emacs-hy-mode
9396 (package
9397 (name "emacs-hy-mode")
9398 (version "1.0.2")
9399 (source
9400 (origin
9401 (method url-fetch)
9402 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9403 "v" version ".tar.gz"))
9404 (file-name (string-append name "-" version ".tar.gz"))
9405 (sha256
9406 (base32
9407 "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
9408 (build-system emacs-build-system)
9409 (propagated-inputs
9410 `(("emacs-dash" ,emacs-dash)
9411 ("emacs-s" ,emacs-s)))
9412 (home-page "https://github.com/hylang/hy-mode")
9413 (synopsis "Major mode for Hylang")
9414 (description "This package provides a major mode for Hylang.")
9415 (license license:gpl3+)))
8aab3d06
OP
9416
9417(define-public emacs-web-beautify
9418 (package
9419 (name "emacs-web-beautify")
9420 (version "0.3.2")
9421 (source
9422 (origin
9423 (method url-fetch)
9424 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9425 version ".tar.gz"))
9426 (file-name (string-append name "-" version ".tar.gz"))
9427 (sha256
9428 (base32
9429 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9430 (build-system emacs-build-system)
9431 (home-page "https://github.com/yasuyk/web-beautify")
9432 (synopsis "Format HTML, CSS and JavaScript, JSON")
9433 (description "This package provides an Emacs functions to format HTML,
9434CSS, JavaScript, JSON.")
9435 (license license:gpl3+)))
c1b9d72c
OP
9436
9437(define-public emacs-helm-shell-history
9438 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9439 (package
9440 (name "emacs-helm-shell-history")
9441 (version (git-version "0.1" "1" commit))
9442 (source
9443 (origin
9444 (method git-fetch)
9445 (uri (git-reference
9446 (url "https://github.com/yuutayamada/helm-shell-history.git")
9447 (commit commit)))
9448 (file-name (git-file-name name version))
9449 (sha256
9450 (base32
9451 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9452 (build-system emacs-build-system)
9453 (arguments
9454 '(#:phases
9455 (modify-phases %standard-phases
9456 (add-before 'check 'patch-helm-shell-history-file
9457 (lambda _
9458 (let ((file "helm-shell-history.el"))
9459 (chmod file #o644)
9460 (emacs-substitute-sexps file
9461 ("(defvar helm-shell-history-file"
9462 `(expand-file-name "~/.bash_history"))))
9463 #t)))))
f1f6f227
OP
9464 (propagated-inputs
9465 `(("emacs-helm" ,emacs-helm)))
c1b9d72c
OP
9466 (home-page "https://github.com/yuutayamada/helm-shell-history")
9467 (synopsis "Find shell history with Emacs Helm")
9468 (description "This package provides an Emacs Helm interface to search
9469throw a shell history.")
9470 (license license:gpl3+))))
2c63f724
OP
9471
9472(define-public emacs-discover-my-major
9473 (package
9474 (name "emacs-discover-my-major")
9475 (version "1.0")
9476 (source
9477 (origin
9478 (method url-fetch)
9479 (uri
9480 (string-append "https://github.com/steckerhalter/discover-my-major"
9481 "/archive/" version ".tar.gz"))
9482 (file-name (string-append name "-" version ".tar.gz"))
9483 (sha256
9484 (base32
9485 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9486 (build-system emacs-build-system)
9487 (propagated-inputs
9488 `(("emacs-makey" ,emacs-makey)))
9489 (home-page "https://github.com/steckerhalter/discover-my-major")
9490 (synopsis "Discover key bindings for the current Emacs major mode")
9491 (description "This package provides allows to discover key bindings and
9492their meaning for the current Emacs major-mode.")
9493 (license license:gpl3+)))
21a3de58
OP
9494
9495(define-public emacs-org-ref
9496 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9497 (revision "1"))
9498 (package
9499 (name "emacs-org-ref")
9500 (version (string-append "1.1.1" "-" revision "."
9501 (string-take commit 7)))
9502 (source
9503 (origin
9504 (method git-fetch)
9505 (uri (git-reference
9506 (url "https://github.com/jkitchin/org-ref.git")
9507 (commit commit)))
9508 (file-name (string-append name "-" version "-checkout"))
9509 (sha256
9510 (base32
9511 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9512 (build-system emacs-build-system)
9513 (propagated-inputs
9514 `(("emacs-dash" ,emacs-dash)
9515 ("emacs-helm" ,emacs-helm)
9516 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9517 ("emacs-ivy" ,emacs-ivy)
9518 ("emacs-hydra" ,emacs-hydra)
9519 ("emacs-key-chord" ,emacs-key-chord)
9520 ("emacs-s" ,emacs-s)
9521 ("emacs-f" ,emacs-f)
9522 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9523 (home-page "https://github.com/jkitchin/org-ref")
9524 (synopsis "Citations, cross-references and bibliographies in org-mode")
9525 (description
9526 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9527Also sets up reftex and helm for org-mode citations. The links are
9528clickable and do things that are useful.
9529
9530The default setup uses helm-bibtex.
9531
9532You should really read org-ref.org in this package for details.")
9533 (license license:gpl3+))))
56e90e31
OP
9534
9535(define-public emacs-add-hooks
9536 (package
9537 (name "emacs-add-hooks")
9538 (version "3.1.1")
9539 (source (origin
9540 (method url-fetch)
9541 (uri (string-append
9542 "https://github.com/nickmccurdy/add-hooks/archive/"
9543 version ".tar.gz"))
9544 (file-name (string-append name "-" version ".tar.gz"))
9545 (sha256
9546 (base32
9547 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9548 (build-system emacs-build-system)
9549 (home-page "https://github.com/nickmccurdy/add-hooks/")
9550 (synopsis "Emacs function for setting multiple hooks")
9551 (description "This package provides a @code{add-hooks} function tidies up
9552duplicate hook and function names further into a single declarative call.")
9553 (license license:gpl3+)))
58b50580
OP
9554
9555(define-public emacs-fancy-narrow
9556 (package
9557 (name "emacs-fancy-narrow")
9558 (version "0.9.5")
9559 (source
9560 (origin
9561 (method url-fetch)
9562 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9563 version ".tar.gz"))
9564 (file-name (string-append name "-" version ".tar.gz"))
9565 (sha256
9566 (base32
9567 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9568 (build-system emacs-build-system)
9569 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
cfcfc6ab
TGR
9570 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
9571 (description
9572 "Unlike @code{narrow-to-region}, which completely hides text outside
9573the narrowed region, this package simply de-emphasizes the text, makes it
9574read-only, and makes it unreachable. This leads to a much more natural
9575feeling where the region stays static (instead of being brutally moved to a
58b50580
OP
9576blank slate) and is clearly highlighted with respect to the rest of the
9577buffer.")
9578 (license license:gpl2+)))
9b876c69
OP
9579
9580(define-public emacs-know-your-http-well
9581 (package
9582 (name "emacs-know-your-http-well")
9583 (version "0.5.0")
9584 (source
9585 (origin
9586 (method url-fetch)
9587 (uri (string-append
9588 "https://github.com/for-GET/know-your-http-well/archive/"
9589 "v" version ".tar.gz"))
9590 (file-name (string-append name "-" version ".tar.gz"))
9591 (sha256
9592 (base32
9593 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9594 (arguments
9595 `(#:phases
9596 (modify-phases %standard-phases
9597 (add-after 'unpack 'install-json-files
9598 (lambda* (#:key outputs #:allow-other-keys)
9599 (for-each (lambda (directory)
9600 (copy-recursively directory
9601 (string-append
9602 (assoc-ref outputs "out")
9603 directory)))
9604 '("js" "json"))))
9605 (add-after 'unpack 'chdir-elisp
9606 ;; Elisp directory is not in root of the source.
9607 (lambda _
9608 (chdir "emacs"))))))
9609 (build-system emacs-build-system)
9610 (home-page "https://github.com/for-GET/know-your-http-well")
9611 (synopsis "Meaning of HTTP headers codes")
9612 (description "Meaning of HTTP headers codes.")
9613 (license license:gpl3+)))
9f2b572e
OP
9614
9615(define-public emacs-navi-mode
9616 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9617 (package
9618 (name "emacs-navi-mode")
9619 (version (git-version "2.0" "1" commit))
9620 (source
9621 (origin
9622 (method git-fetch)
9623 (uri (git-reference
9624 (url "https://github.com/alphapapa/navi.git")
9625 (commit commit)))
9626 (file-name (git-file-name name version))
9627 (sha256
9628 (base32
9629 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9630 (build-system emacs-build-system)
9631 (propagated-inputs
9632 `(("emacs-outshine" ,emacs-outshine)
9633 ("emacs-outorg" ,emacs-outorg)))
9634 (home-page "https://github.com/alphapapa/navi")
9635 (synopsis "Emacs major-mode for easy buffer-navigation")
9636 (description
9637 "This package provides an Emacs major-mode for easy buffer-navigation")
9638 (license license:gpl3+))))
2f28093e
OP
9639
9640(define-public emacs-download-region
9641 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
9642 (revision "1"))
9643 (package
9644 (name "emacs-download-region")
9645 (version (string-append "0.0.1" "-" revision "."
9646 (string-take commit 7)))
9647 (source
9648 (origin
9649 (method git-fetch)
9650 (uri (git-reference
9651 (url "https://github.com/zk-phi/download-region.git")
9652 (commit commit)))
9653 (file-name (string-append name "-" version "-checkout"))
9654 (sha256
9655 (base32
9656 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
9657 (build-system emacs-build-system)
9658 (home-page "https://github.com/zk-phi/download-region")
9659 (synopsis "In buffer download manager for Emacs")
9660 (description "@code{download-region} provides in buffer
9661downloading manager for Emacs.")
9662 (license license:gpl3+))))
8bc8efc7 9663
b2bf4f54
OP
9664(define-public emacs-helpful
9665 (package
9666 (name "emacs-helpful")
b21a55a9 9667 (version "0.13")
b2bf4f54
OP
9668 (source (origin
9669 (method url-fetch)
9670 (uri (string-append
9671 "https://github.com/Wilfred/helpful/archive/"
9672 version ".tar.gz"))
9673 (file-name (string-append name "-" version ".tar.gz"))
9674 (sha256
9675 (base32
b21a55a9 9676 "11kj04y1fa3vnw2991cyqf6adz6bb3hlrdkvypjnmpb0s64q64b6"))))
b2bf4f54
OP
9677 (build-system emacs-build-system)
9678 (propagated-inputs
9679 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
9680 (home-page "https://github.com/Wilfred/helpful")
9681 (synopsis "More contextual information in Emacs help")
9682 (description "@code{helpful} is an alternative to the built-in Emacs help
9683that provides much more contextual information.
9684
9685@itemize
9686@item Show the source code for interactively defined functions (unlike the
9687built-in Help).
9688@item Fall back to the raw sexp if no source is available.
9689@item Show where a function is being called.
9690@item Docstrings will Highlight the summary (the first sentence), include
9691cross-references, hide superfluous puncuation.
9692@item Show you the properties that have been applied to the current
9693symbol. This provides visibility of features like edebug or byte-code
9694optimisation.
9695@item Provide a separate @code{helpful-command} function to view interactive
9696functions.
9697@item Display any keybindings that apply to interactive functions.
9698@item Trace, disassemble functions from inside Helpful. This is discoverable
9699and doesn't require memorisation of commands.
9700@end itemize\n")
9701 (license license:gpl3+)))
1024dadd
OP
9702
9703(define-public emacs-logview
9704 (package
9705 (name "emacs-logview")
9706 (version "0.9")
9707 (source (origin
9708 (method url-fetch)
9709 (uri (string-append
9710 "https://github.com/doublep/logview/archive/"
9711 version ".tar.gz"))
9712 (file-name (string-append name "-" version ".tar.gz"))
9713 (sha256
9714 (base32
9715 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
9716 (propagated-inputs
9717 `(("emacs-datetime" ,emacs-datetime)))
9718 (build-system emacs-build-system)
9719 (home-page "https://github.com/doublep/logview/")
9720 (synopsis "Emacs mode for viewing log files")
9721 (description "@code{logview} provides an Emacs mode to view log files.")
9722 (license license:gpl3+)))
0bc5a32a
OP
9723
9724(define-public emacs-suggest
9725 (package
9726 (name "emacs-suggest")
9727 (version "0.4")
9728 (source
9729 (origin
9730 (method url-fetch)
9731 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
9732 version ".tar.gz"))
9733 (file-name (string-append name "-" version ".tar.gz"))
9734 (sha256
9735 (base32
9736 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
9737 (build-system emacs-build-system)
9738 (propagated-inputs
9739 `(("emacs-loop" ,emacs-loop)
9740 ("emacs-dash" ,emacs-dash)
9741 ("emacs-s" ,emacs-s)
9742 ("emacs-f" ,emacs-f)))
9743 (home-page "https://github.com/Wilfred/suggest.el")
9744 (synopsis "Suggest Elisp functions that give the output requested")
9745 (description "Suggest.el will find functions that give the output
9746requested. It's a great way of exploring list, string and arithmetic
9747functions.")
9748 (license license:gpl3+)))
c43c0823
OP
9749
9750(define-public emacs-benchmark-init
9751 (package
9752 (name "emacs-benchmark-init")
9753 (version "1.0")
9754 (source (origin
9755 (method url-fetch)
9756 (uri (string-append
9757 "https://github.com/dholm/benchmark-init-el/archive/"
9758 version ".tar.gz"))
9759 (file-name (string-append name "-" version ".tar.gz"))
9760 (sha256
9761 (base32
9762 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
9763 (build-system emacs-build-system)
9764 (home-page "https://github.com/dholm/benchmark-init-el")
9765 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
9766 (description "@code{benchmark-init} provides a way to keep track of where
9767time is being spent during Emacs startup in order to optimize startup time.")
9768 (license license:gpl3+)))
c25dda7e
OP
9769
9770(define-public emacs-emms-player-simple-mpv
4b1b834e
PN
9771 ;; A new mpv backend is included in Emms from 5.0.
9772 (deprecated-package "emacs-emms-player-simple-mpv" emms))
26165a79
OP
9773
9774(define-public emacs-magit-org-todos-el
9775 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
9776 (package
9777 (name "emacs-magit-org-todos-el")
9778 (version (git-version "0.1.1" "1" commit))
9779 (source
9780 (origin
9781 (method git-fetch)
9782 (uri (git-reference
9783 (url "https://github.com/danielma/magit-org-todos.el.git")
9784 (commit commit)))
9785 (file-name (git-file-name name version))
9786 (sha256
9787 (base32
9788 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
ec6f4bda
OP
9789 (propagated-inputs
9790 `(("magit" ,magit)))
26165a79
OP
9791 (build-system emacs-build-system)
9792 (home-page "https://github.com/danielma/magit-org-todos.el")
9793 (synopsis "Get todo.org into Emacs Magit status")
9794 (description "This package allows you to get @file{todo.org} into your
9795magit status.
9796
9797If you have a @file{todo.org} file with @code{TODO} items in the root of your
9798repository, @code{magit-org-todos} will create a section in your Magit status
9799buffer with each of your todos.")
9800 (license license:gpl3+))))
f4dc59a2
OP
9801
9802(define-public emacs-f3
9803 (package
9804 (name "emacs-f3")
9805 (version "0.1")
9806 (source
9807 (origin
9808 (method url-fetch)
9809 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
9810 version ".tar.gz"))
9811 (file-name (string-append name "-" version ".tar.gz"))
9812 (sha256
9813 (base32
9814 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
9815 (build-system emacs-build-system)
9816 (propagated-inputs
9817 `(("emacs-helm" ,emacs-helm)))
9818 (home-page "https://github.com/cosmicexplorer/f3")
9819 (synopsis "Fantastic File Finder for Emacs")
9820 (description
9821 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
9822 (license license:gpl3+)))
89378bb8 9823
6d6d9acc
OP
9824(define-public emacs-lice-el
9825 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
9826 (package
9827 (name "emacs-lice-el")
9828 (version (git-version "0.2" "1" commit))
9829 (source (origin
9830 (method git-fetch)
9831 (uri (git-reference
9832 (url "https://github.com/buzztaiki/lice-el.git")
9833 (commit commit)))
9834 (file-name (git-file-name name version))
9835 (sha256
9836 (base32
9837 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
9838 (build-system emacs-build-system)
9839 (home-page "https://github.com/buzztaiki/lice-el")
9840 (synopsis "License and header template for Emacs")
9841 (description "@code{lice.el} provides following features:
9842
9843@itemize
9844@item License template management.
9845@item File header insertion.
9846@end itemize\n")
9847 (license license:gpl3+))))
fc86ea63
OP
9848
9849(define-public emacs-academic-phrases
9850 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
9851 (package
9852 (name "emacs-academic-phrases")
9853 (version (git-version "0.1" "1" commit))
9854 (source
9855 (origin
9856 (method git-fetch)
9857 (uri (git-reference
9858 (url "https://github.com/nashamri/academic-phrases.git")
9859 (commit commit)))
9860 (file-name (string-append name "-" version "-checkout"))
9861 (sha256
9862 (base32
9863 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
9864 (build-system emacs-build-system)
9865 (propagated-inputs
9866 `(("emacs-dash" ,emacs-dash)
9867 ("emacs-s" ,emacs-s)
9868 ("emacs-ht" ,emacs-ht)))
9869 (home-page "https://github.com/nashamri/academic-phrases")
9870 (synopsis "Bypass that mental block when writing your papers")
9871 (description
9872 "When writing your academic paper, you might get stuck trying to find
9873the right phrase that captures your intention. This package tries to
9874alleviate that problem by presenting you with a list of phrases organized by
9875the topic or by the paper section that you are writing. This package has
9876around 600 phrases so far.
9877
9878Using this package is easy, just call @code{academic-phrases} to get a list of
9879phrases organized by topic, or call @code{academic-phrases-by-section} to
9880browse the phrases by the paper section and fill-in the blanks if required.")
9881 (license license:gpl3+))))
75a87807
OP
9882
9883(define-public emacs-auto-yasnippet
9884 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
9885 (package
9886 (name "emacs-auto-yasnippet")
9887 (version (git-version "0.3.0" "1" commit))
9888 (source (origin
9889 (method git-fetch)
9890 (uri (git-reference
9891 (url "https://github.com/abo-abo/auto-yasnippet.git")
9892 (commit commit)))
9893 (file-name (string-append name "-" version "-checkout"))
9894 (sha256
9895 (base32
9896 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
9897 (build-system emacs-build-system)
9898 (arguments
9899 '(#:phases
9900 (modify-phases %standard-phases
9901 (add-before 'install 'check
9902 (lambda _
9903 (invoke "emacs" "--batch"
9904 "-l" "auto-yasnippet.el"
9905 "-l" "auto-yasnippet-test.el"
9906 "-f" "ert-run-tests-batch-and-exit"))))))
9907 (propagated-inputs
9908 `(("emacs-yasnippet" ,emacs-yasnippet)))
9909 (home-page "https://github.com/abo-abo/auto-yasnippet/")
9910 (synopsis "Quickly create disposable yasnippets")
9911 (description "This package provides a hybrid of keyboard macros and
9912yasnippet. You create the snippet on the go, usually to be used just in the
9913one place. It's fast, because you're not leaving the current buffer, and all
9914you do is enter the code you'd enter anyway, just placing ~ where you'd like
9915yasnippet fields and mirrors to be.")
9916 (license license:gpl3+))))
a79cf99c
OP
9917
9918(define-public emacs-highlight-numbers
9919 (package
9920 (name "emacs-highlight-numbers")
9921 (version "0.2.3")
9922 (source
9923 (origin
9924 (method url-fetch)
9925 (uri (string-append
9926 "https://github.com/Fanael/highlight-numbers/archive/"
9927 version ".tar.gz"))
9928 (file-name (string-append name "-" version ".tar.gz"))
9929 (sha256
9930 (base32
9931 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
9932 (build-system emacs-build-system)
9933 (propagated-inputs
9934 `(("emacs-parent-mode" ,emacs-parent-mode)))
9935 (home-page "https://github.com/Fanael/highlight-numbers")
9936 (synopsis "Highlight numbers in source code")
9937 (description "@code{highlight-numbers-mode} provides a minor mode for
9938syntax highlighting of numeric literals in source code.
9939
9940It s customizable: it's easy to add or redefine what exactly consitutes a
9941\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
9942 (license license:gpl3+)))
6e28f15c
OP
9943
9944(define-public emacs-darkroom
9945 (package
9946 (name "emacs-darkroom")
9947 (version "0.1")
9948 (source (origin
9949 (method url-fetch)
9950 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
9951 version ".el"))
9952 (sha256
9953 (base32
9954 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
9955 (build-system emacs-build-system)
9956 (home-page "https://elpa.gnu.org/packages/darkroom.html")
9957 (synopsis "Remove visual distractions and focus on writing")
9958 (description "@code{darkroom-mode} makes visual distractions disappear.
9959The mode-line is temporarily elided, text is enlarged and margins are adjusted
9960so that it's centered on the window.
9961
9962@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
9963@code{darkroom-mode}, unless the current buffer lives in the sole window of
9964the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
9965split to display more windows and more buffers, the buffer exits
9966@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
9967@code{darkroom-mode}.")
9968 (license license:gpl3+)))
bf8300de
OP
9969
9970(define-public emacs-rsw-elisp
9971 (package
9972 (name "emacs-rsw-elisp")
9973 (version "1.0.5")
9974 (source (origin
9975 (method url-fetch)
9976 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
9977 "/archive/" version ".tar.gz"))
9978 (file-name (string-append name "-" version ".tar.gz"))
9979 (sha256
9980 (base32
9981 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
9982 (build-system emacs-build-system)
9983 (home-page "https://github.com/rswgnu/rsw-elisp")
9984 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
9985 (description "This package improves and replaces the GNU Emacs commands
9986that interactively evaluate Emacs Lisp expressions. The new commands replace
5e5bcc80
RW
9987standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
9988the same way as the old commands when called non-interactively; only the
bf8300de
OP
9989interactive behavior should be different.")
9990 (license license:gpl3+)))
192a9a20
OP
9991
9992(define-public emacs-default-text-scale
9993 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
9994 (revision "1"))
9995 (package
9996 (name "emacs-default-text-scale")
9997 (version (string-append "0.1" "-" revision "."
9998 (string-take commit 7)))
9999 (source (origin
10000 (method git-fetch)
10001 (uri (git-reference
10002 (url "https://github.com/purcell/default-text-scale")
10003 (commit commit)))
10004 (file-name (string-append name "-" version "-checkout"))
10005 (sha256
10006 (base32
10007 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
10008 (build-system emacs-build-system)
10009 (home-page "https://github.com/purcell/default-text-scale")
10010 (synopsis "Adjust the font size in all Emacs frames")
10011 (description "This package provides commands for increasing or
10012decreasing the default font size in all GUI Emacs frames.")
10013 (license license:gpl3+))))
2f9e1378
OP
10014
10015(define-public emacs-visual-regexp
10016 (package
10017 (name "emacs-visual-regexp")
10018 (version "1.1.1")
10019 (source
10020 (origin
10021 (method url-fetch)
10022 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
10023 "v" version ".tar.gz"))
10024 (file-name (string-append name "-" version ".tar.gz"))
10025 (sha256
10026 (base32
10027 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
10028 (build-system emacs-build-system)
10029 (home-page "https://github.com/benma/visual-regexp.el/")
10030 (synopsis "Regexp command with interactive visual feedback")
10031 (description "This package provides an Emacs regexp command with
10032interactive visual feedback.")
10033 (license license:gpl3+)))
6f83725f
OP
10034
10035(define-public emacs-faceup
10036 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
10037 (revision "1"))
10038 (package
10039 (name "emacs-faceup")
10040 (version (string-append "0.0.1" "-" revision "."
10041 (string-take commit 7)))
10042 (source
10043 (origin
10044 (method git-fetch)
10045 (uri (git-reference
10046 (url "https://github.com/Lindydancer/faceup.git")
10047 (commit commit)))
10048 (file-name (string-append name "-" version "-checkout"))
10049 (sha256
10050 (base32
10051 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
10052 (build-system emacs-build-system)
10053 (home-page "https://github.com/Lindydancer/faceup")
10054 (synopsis "Markup language for faces and font-lock regression testing")
10055 (description "Emacs is capable of highlighting buffers based on
10056language-specific @code{font-lock} rules. This package makes it possible to
10057perform regression test for packages that provide font-lock rules.")
10058 (license license:gpl3+))))
f52b635b
OP
10059
10060(define-public emacs-racket-mode
caf8a003 10061 (let ((commit "92c33487f6c707880ac3f6169e7ea65ddffd1463")
6948fa08 10062 (revision "1"))
f52b635b
OP
10063 (package
10064 (name "emacs-racket-mode")
565af91a 10065 (version (string-append "0.0.2" "-" revision "."
f52b635b
OP
10066 (string-take commit 7)))
10067 (source
10068 (origin
10069 (method git-fetch)
10070 (uri (git-reference
10071 (url "https://github.com/greghendershott/racket-mode")
10072 (commit commit)))
10073 (file-name (string-append name "-" version "-checkout"))
10074 (sha256
10075 (base32
caf8a003 10076 "19q6ym10gj2xdzzcgh3wdbq1xv8cv7nlrhv2b0bjvvdjzhiki472"))))
f52b635b 10077 (build-system emacs-build-system)
565af91a
KH
10078 (arguments
10079 `(#:include '("\\.el$" "\\.rkt$")))
f52b635b
OP
10080 (propagated-inputs
10081 `(("emacs-faceup" ,emacs-faceup)
10082 ("emacs-s" ,emacs-s)))
10083 (home-page "https://github.com/greghendershott/racket-mode")
10084 (synopsis "Major mode for Racket language")
10085 (description "@code{racket-mode} provides:
10086
10087@itemize
10088@item Focus on Racket (not various Schemes).
10089@item Follow DrRacket concepts where applicable.
10090@item Thorough font-lock and indent.
10091@end itemize\n")
10092 (license license:gpl3+))))
8f052df2
OP
10093
10094(define-public emacs-grep-context
10095 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
10096 (package
10097 (name "emacs-grep-context")
10098 (version (git-version "0.1" "1" commit))
10099 (source
10100 (origin
10101 (method git-fetch)
10102 (uri (git-reference
10103 (url "https://github.com/mkcms/grep-context.git")
10104 (commit commit)))
10105 (file-name (string-append name "-" version "-checkout"))
10106 (sha256
10107 (base32
10108 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
10109 (build-system emacs-build-system)
10110 (propagated-inputs
10111 `(("emacs-dash" ,emacs-dash)))
10112 (home-page "https://github.com/nashamri/academic-phrases")
10113 (synopsis "Increase context in compilation and grep buffers")
10114 (description
10115 "This package provides an Emacs package for more context in
10116compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
10117@code{ivy}.")
10118 (license license:gpl3+))))
d3f7e533
OP
10119
10120(define-public emacs-helm-firefox
10121 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
10122 (revision "1"))
10123 (package
10124 (name "emacs-helm-firefox")
10125 (version (string-append "0.0.1" "-" revision "."
10126 (string-take commit 7)))
10127 (source
10128 (origin
10129 (method git-fetch)
10130 (uri (git-reference
10131 (url "https://github.com/emacs-helm/helm-firefox.git")
10132 (commit commit)))
10133 (file-name (string-append name "-" version "-checkout"))
10134 (sha256
10135 (base32
10136 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
0715a9e6
OP
10137 (propagated-inputs
10138 `(("emacs-helm" ,emacs-helm)))
d3f7e533
OP
10139 (build-system emacs-build-system)
10140 (home-page "https://github.com/emacs-helm/helm-firefox")
10141 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10142 (description "Display firefox bookmarks with Emacs Helm interface")
10143 (license license:gpl3+))))
b268bf18
OP
10144
10145(define-public emacs-interactive-align
10146 (package
10147 (name "emacs-interactive-align")
10148 (version "0.1.0")
10149 (source
10150 (origin
10151 (method url-fetch)
10152 (uri (string-append "https://github.com/mkcms/interactive-align/"
10153 "archive/" "v" version ".tar.gz"))
10154 (file-name (string-append name "-" version ".tar.gz"))
10155 (sha256
10156 (base32
10157 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10158 (build-system emacs-build-system)
10159 (home-page "https://github.com/mkcms/interactive-align/")
10160 (synopsis "Interactive align-regexp command in Emacs")
10161 (description "Interactive align-regexp command in Emacs")
10162 (license license:gpl3+)))
fcd8d4f7
OP
10163
10164(define-public emacs-shift-number
10165 (package
10166 (name "emacs-shift-number")
10167 (version "0.1")
10168 (source
10169 (origin
10170 (method url-fetch)
10171 (uri (string-append "https://github.com/alezost/shift-number.el"
10172 "/archive/" "v" version ".tar.gz"))
10173 (file-name (string-append name "-" version ".tar.gz"))
10174 (sha256
10175 (base32
10176 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10177 (build-system emacs-build-system)
10178 (home-page "https://github.com/alezost/shift-number.el")
10179 (synopsis "Increase or decrease the number at point")
10180 (description "@code{emacs-shift-number} provides commands
10181@code{shift-number-up} to increase and @code{shift-number-down} to
10182decrease the number at point.")
10183 (license license:gpl3+)))
b91e1724
OP
10184
10185(define-public emacs-highlight-defined
10186 (package
10187 (name "emacs-highlight-defined")
10188 (version "0.1.5")
10189 (source
10190 (origin
10191 (method url-fetch)
10192 (uri (string-append
10193 "https://github.com/Fanael/highlight-defined/archive/"
10194 version ".tar.gz"))
10195 (file-name (string-append name "-" version ".tar.gz"))
10196 (sha256
10197 (base32
10198 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10199 (build-system emacs-build-system)
10200 (home-page "https://github.com/Fanael/highlight-defined")
10201 (synopsis "Syntax highlighting of known Elisp symbols")
10202 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10203symbols. Currently the code distinguishes Lisp functions, built-in functions,
10204macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10205 (license license:gpl3+)))
8a2ab51a
OP
10206
10207(define-public emacs-parinfer-mode
10208 (package
10209 (name "emacs-parinfer-mode")
10210 (version "0.4.10")
10211 (source
10212 (origin
10213 (method url-fetch)
10214 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10215 "v" version ".tar.gz"))
10216 (file-name (string-append name "-" version ".tar.gz"))
10217 (sha256
10218 (base32
10219 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10220 (propagated-inputs
10221 `(("emacs-dash" ,emacs-dash)
10222 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10223 ("emacs-company" ,emacs-company)))
10224 (build-system emacs-build-system)
10225 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10226 (synopsis "Lisp structure editing mode")
10227 (description "@code{parinfer-mode} is a proof-of-concept editor
10228mode for Lisp programming languages. It will infer some changes to
10229keep Parens and Indentation inline with one another.")
10230 (license license:gpl3+)))
abe8ef7f
OP
10231
10232(define-public emacs-helm-eww
b7d4247d 10233 (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
abe8ef7f
OP
10234 (package
10235 (name "emacs-helm-eww")
b7d4247d 10236 (version (git-version "0.1" "3" commit))
abe8ef7f
OP
10237 (source (origin
10238 (method git-fetch)
10239 (uri (git-reference
10240 (url "https://github.com/emacs-helm/helm-eww.git")
10241 (commit commit)))
10242 (file-name (string-append name "-" version "-checkout"))
10243 (sha256
10244 (base32
b7d4247d 10245 "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
9e2529e1
OP
10246 (propagated-inputs
10247 `(("emacs-helm" ,emacs-helm)))
abe8ef7f
OP
10248 (build-system emacs-build-system)
10249 (home-page "https://github.com/emacs-helm/helm-eww/")
10250 (synopsis "Helm interface to EWW")
10251 (description "This package provides a Helm interface for EWW buffers,
10252bookmarks and history.")
10253 (license license:gpl3+))))
b870ee10
OP
10254
10255(define-public emacs-stumpwm-mode
10256 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10257 (revision "1"))
10258 (package
10259 (name "emacs-stumpwm-mode")
10260 (version (string-append "0.0.1-" revision "."
10261 (string-take commit 7)))
10262 (source (origin
10263 (method git-fetch)
10264 (uri (git-reference
10265 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10266 (commit commit)))
10267 (file-name (string-append name "-" version "-checkout"))
10268 (sha256
10269 (base32
10270 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10271 (build-system emacs-build-system)
10272 (arguments
10273 `(#:phases
10274 (modify-phases %standard-phases
10275 (add-after 'unpack 'chdir-elisp
10276 ;; Elisp directory is not in root of the source.
10277 (lambda _
10278 (chdir "util/swm-emacs"))))))
10279 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10280 (synopsis "Emacs minor-mode for Stumpwm")
10281 (description "Emacs minor-mode for Stumpwm")
10282 (license license:gpl3+))))
dbbd6e89
OP
10283
10284(define-public emacs-irfc
10285 (package
10286 (name "emacs-irfc")
10287 (version "20130824.507")
10288 (source
10289 (origin
10290 (method url-fetch)
10291 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10292 (file-name (string-append "irfc-" version ".el"))
10293 (sha256
10294 (base32
10295 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10296 (build-system emacs-build-system)
10297 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10298 (synopsis "Interface for IETF RFC document")
10299 (description
10300 "This package provides an Emacs interface for IETF RFC document.")
10301 (license license:gpl3+)))
0e087b70
OP
10302
10303(define-public emacs-ido-vertical-mode
10304 (package
10305 (name "emacs-ido-vertical-mode")
10306 (version "0.1.6")
10307 (source
10308 (origin
10309 (method url-fetch)
10310 (uri (string-append
10311 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10312 "v" version ".tar.gz"))
10313 (file-name (string-append name "-" version ".tar.gz"))
10314 (sha256
10315 (base32
10316 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10317 (build-system emacs-build-system)
10318 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10319 (synopsis "Makes ido-mode display vertically")
10320 (description "Makes ido-mode display prospects vertically.")
10321 (license license:gpl3+)))
ca0e2ab0
OP
10322
10323(define-public emacs-wordgen
10324 (package
10325 (name "emacs-wordgen")
10326 (version "0.1.4")
10327 (source
10328 (origin
10329 (method url-fetch)
10330 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10331 version ".tar.gz"))
10332 (file-name (string-append name "-" version ".tar.gz"))
10333 (sha256
10334 (base32
10335 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10336 (build-system emacs-build-system)
10337 (home-page "https://github.com/Fanael/wordgen.el")
10338 (synopsis "Random word generator")
10339 (description "This package provides functions to generate random words
10340using user-provided rules.")
10341 (license license:gpl3+)))
47667501
OP
10342
10343(define-public emacs-on-screen
10344 (package
10345 (name "emacs-on-screen")
10346 (version "1.3.2")
10347 (source
10348 (origin
10349 (method url-fetch)
10350 (uri (string-append
10351 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10352 (file-name (string-append name "-" version ".el"))
10353 (sha256
10354 (base32
10355 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10356 (build-system emacs-build-system)
10357 (home-page
10358 "https://github.com/michael-heerdegen/on-screen.el")
10359 (synopsis "Guide your eyes while scrolling")
10360 (description
10361 "Scrolling can be distracting because your eyes may lose
10362orientation. This library implements a minor mode that highlights
10363the previously visible buffer part after each scroll.")
10364 (license license:gpl3+)))
cfeefca9
OP
10365
10366(define-public emacs-highlight-escape-sequences
10367 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10368 (revision "1"))
10369 (package
10370 (name "emacs-highlight-escape-sequences")
10371 (version (string-append "0.0.1" "-" revision "."
10372 (string-take commit 7)))
10373 (source
10374 (origin
10375 (method git-fetch)
10376 (uri (git-reference
10377 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10378 (commit commit)))
10379 (file-name (string-append name "-" version "-checkout"))
10380 (sha256
10381 (base32
10382 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10383 (build-system emacs-build-system)
10384 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10385 (synopsis "Highlight escape sequences in Emacs")
10386 (description "@code{highlight-escape-sequences} provides an
10387Emacs minor mode to escape sequences in code.")
10388 (license license:gpl3+))))
99092bd9
OP
10389
10390(define-public emacs-dashboard
10391 (package
10392 (name "emacs-dashboard")
10393 (version "1.2.4")
10394 (source
10395 (origin
10396 (method url-fetch)
10397 (uri (string-append
10398 "https://github.com/rakanalh/emacs-dashboard/archive/"
10399 version ".tar.gz"))
10400 (file-name (string-append name "-" version ".tar.gz"))
10401 (sha256
10402 (base32
10403 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10404 (build-system emacs-build-system)
10405 (propagated-inputs
10406 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10407 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10408 (home-page "https://github.com/rakanalh/emacs-dashboard")
10409 (synopsis "Startup screen extracted from Spacemacs")
10410 (description "This package provides an extensible Emacs dashboard, with
10411sections for bookmarks, projectil projects, org-agenda and more. ")
10412 (license license:gpl3+)))
37fa904f
OP
10413
10414(define-public emacs-slime-company
10415 (package
10416 (name "emacs-slime-company")
10417 (version "1.1")
10418 (source
10419 (origin
10420 (method url-fetch)
10421 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10422 "v" version ".tar.gz"))
10423 (sha256
10424 (base32
10425 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10426 (file-name (string-append name "-" version ".tar.gz"))))
10427 (build-system emacs-build-system)
10428 (propagated-inputs
10429 `(("emacs-slime" ,emacs-slime)
10430 ("emacs-company" ,emacs-company)))
10431 (home-page "https://company-mode.github.io")
10432 (synopsis "SLIME completion backend for @code{company-mode}")
10433 (description
10434 "This is a backend implementation for the completion package
10435@code{company-mode} which supports the normal and the fuzzy completion
10436modes of SLIME.")
10437 (license license:gpl3+)))
1a73164d
OP
10438
10439(define-public emacs-sml-mode
10440 (package
10441 (name "emacs-sml-mode")
10442 (version "6.8")
10443 (source
10444 (origin
10445 (method url-fetch)
10446 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10447 version ".el"))
10448 (sha256
10449 (base32
10450 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10451 (build-system emacs-build-system)
10452 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10453 (synopsis "Major mode for editing (Standard) ML")
10454 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10455It provides syntax highlighting and automatic indentation and
10456comes with sml-proc which allows interaction with an inferior SML
10457interactive loop.")
10458 (license license:gpl3+)))
c498ff56
OP
10459
10460(define-public emacs-eros
10461 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10462 (revision "1"))
10463 (package
10464 (name "emacs-eros")
10465 (version (string-append "0.0.1" "-" revision "."
10466 (string-take commit 7)))
10467 (source
10468 (origin
10469 (method git-fetch)
10470 (uri (git-reference
10471 (url "https://github.com/xiongtx/eros.git")
10472 (commit commit)))
10473 (file-name (string-append name "-" version "-checkout"))
10474 (sha256
10475 (base32
10476 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10477 (build-system emacs-build-system)
10478 (home-page "https://github.com/xiongtx/eros")
10479 (synopsis "Evaluation result overlays")
10480 (description "@code{eros} provides evaluation result overlays.")
10481 (license license:gpl3+))))
6673bbef
OP
10482
10483(define-public emacs-stickyfunc-enhance
10484 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10485 (revision "1"))
10486 (package
10487 (name "emacs-stickyfunc-enhance")
10488 (version "0.1")
10489 (source
10490 (origin
10491 (method git-fetch)
10492 (uri (git-reference
10493 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10494 (commit commit)))
10495 (file-name (string-append name "-" version "-checkout"))
10496 (sha256
10497 (base32
10498 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10499 (build-system emacs-build-system)
10500 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10501 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10502 (description
10503 "@code{semantic-stickyfunc-mode} shows the function point is currently
10504in at the first line of the current buffer. This is useful when you have a
10505very long function that spreads more than a screen, and you don't have to
10506scroll up to read the function name and then scroll down to original position.")
10507 (license license:gpl3+))))
c9efc229
OP
10508
10509(define-public emacs-git-auto-commit-mode
10510 (package
10511 (name "emacs-git-auto-commit-mode")
10512 (version "4.4.0")
10513 (source
10514 (origin
10515 (method url-fetch)
10516 (uri (string-append
10517 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10518 version ".tar.gz"))
10519 (file-name (string-append name "-" version ".tar.gz"))
10520 (sha256
10521 (base32
10522 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10523 (build-system emacs-build-system)
10524 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10525 (synopsis "Emacs Minor mode to automatically commit and push")
10526 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10527tries to commit changes to a file after every save.
10528
10529When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10530the current upstream.")
10531 (license license:gpl3+)))
deef6d7c
OP
10532
10533(define-public emacs-company-restclient
10534 (package
10535 (name "emacs-company-restclient")
10536 (version "0.1.0")
10537 (source
10538 (origin
10539 (method url-fetch)
10540 (uri (string-append
10541 "https://github.com/iquiw/company-restclient/archive/"
10542 "v" version ".tar.gz"))
10543 (file-name (string-append name "-" version ".tar.gz"))
10544 (sha256
10545 (base32
10546 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10547 (build-system emacs-build-system)
10548 (propagated-inputs
10549 `(("emacs-company" ,emacs-company)
10550 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10551 ("emacs-restclient" ,emacs-restclient)))
10552 (home-page "https://github.com/iquiw/company-restclient")
10553 (synopsis "Company-mode completion back-end for restclient-mode")
10554 (description "@code{company-mode} back-end for
10555@code{restclient-mode}.
10556
10557It provides auto-completion for HTTP methods and headers in
10558@code{restclient-mode}. Completion source is given by
10559@code{know-your-http-well}.")
10560 (license license:gpl3+)))
51eda974
SB
10561
10562(define-public emacs-noflet
10563 (let ((version "20170629")
10564 (revision "1")
10565 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10566 (package
10567 (name "emacs-noflet")
10568 (version (git-version version revision commit))
10569 (source
10570 (origin
10571 (method git-fetch)
10572 (uri (git-reference
10573 (url "https://github.com/nicferrier/emacs-noflet")
10574 (commit commit)))
10575 (file-name (string-append name "-" version "-checkout"))
10576 (sha256
10577 (base32
10578 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10579 (build-system emacs-build-system)
10580 (arguments
10581 `(#:phases
10582 (modify-phases %standard-phases
10583 (add-after 'unpack 'require-dash
10584 ;; noflet.el uses -map from dash, but (require 'dash) is
10585 ;; missing. So, add it.
10586 (lambda _
10587 (substitute* "noflet.el"
10588 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10589 #t)))))
10590 (propagated-inputs
10591 `(("emacs-dash" ,emacs-dash)))
10592 (home-page "https://github.com/nicferrier/emacs-noflet")
10593 (synopsis "Locally override functions")
10594 (description "@code{emacs-noflet} let's you locally override functions,
10595in the manner of @command{flet}, but with access to the original function
10596through the symbol: @command{this-fn}.")
10597 (license license:gpl3+))))
b36f9a80
SB
10598
10599(define-public emacs-dumb-jump
10600 (package
10601 (name "emacs-dumb-jump")
10602 (version "0.5.2")
10603 (source
10604 (origin
10605 (method url-fetch)
10606 (uri (string-append
10607 "https://github.com/jacktasia/dumb-jump/archive/v"
10608 version ".tar.gz"))
10609 (file-name (string-append name "-" version ".tar.gz"))
10610 (sha256
10611 (base32
10612 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10613 (build-system emacs-build-system)
10614 (arguments
10615 `(#:tests? #f ; FIXME: Tests freeze when run.
10616 #:test-command '("ert-runner")
10617 #:phases
10618 (modify-phases %standard-phases
10619 (add-after 'unpack 'set-shell
10620 (lambda _
10621 ;; Setting the SHELL environment variable is required for the
10622 ;; tests to find sh.
10623 (setenv "SHELL" (which "sh"))
10624 #t)))))
10625 (native-inputs
10626 `(("emacs-el-mock" ,emacs-el-mock)
10627 ("emacs-noflet" ,emacs-noflet)
10628 ("emacs-undercover" ,emacs-undercover)
10629 ("ert-runner" ,ert-runner)))
10630 (propagated-inputs
10631 `(("emacs-f" ,emacs-f)
10632 ("emacs-popup" ,emacs-popup)))
10633 (home-page "https://github.com/jacktasia/dumb-jump")
10634 (synopsis "Jump to definition for multiple languages without configuration")
10635 (description "Dumb Jump is an Emacs \"jump to definition\" package with
10636support for multiple programming languages that favors \"just working\" over
10637speed or accuracy. This means minimal --- and ideally zero --- configuration
10638with absolutely no stored indexes (tags) or persistent background processes.
10639Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
10640@command{rg} installed.")
10641 (license license:gpl3+)))
563ab27b
MO
10642
10643(define-public emacs-dts-mode
10644 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
10645 (revision "1"))
10646 (package
10647 (name "emacs-dts-mode")
10648 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
10649 (source
10650 (origin
10651 (method git-fetch)
10652 (uri (git-reference
10653 (url "https://github.com/bgamari/dts-mode.git")
10654 (commit commit)))
10655 (file-name (string-append name "-" version "-checkout"))
10656 (sha256
10657 (base32
10658 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
10659 (build-system emacs-build-system)
10660 (home-page "https://github.com/bgamari/dts-mode.git")
10661 (synopsis "Emacs minor mode for editing device tree files")
10662 (description
10663 "This package provides an Emacs minor mode for highlighting
10664device tree files.")
10665 (license license:gpl3+))))
bdadf855
PN
10666
10667(define-public emacs-daemons
10668 (package
10669 (name "emacs-daemons")
10670 (version "1.2.0")
10671 (source
10672 (origin
10673 (method git-fetch)
10674 (uri (git-reference
10675 (url "https://github.com/cbowdon/daemons.el")
10676 (commit version)))
10677 (file-name (string-append name "-" version "-checkout"))
10678 (sha256
10679 (base32
10680 "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7"))))
10681 (build-system emacs-build-system)
10682 (home-page "https://github.com/cbowdon/daemons.el")
10683 (synopsis "Emacs UI for managing init system services")
10684 (description
10685 "This is an Emacs mode to give you a UI for managing init system
10686daemons (services) for those getting tired of typing out @code{sudo service
35d43843 10687my_thing reload} all the time. It offers a consistent UI over different init
bdadf855
PN
10688systems.")
10689 (license license:gpl3+)))
71d35215
PN
10690
10691(define-public emacs-esh-autosuggest
10692 (package
10693 (name "emacs-esh-autosuggest")
10694 (version "2.0.0")
10695 (source
10696 (origin
10697 (method git-fetch)
10698 (uri (git-reference
10699 (url "https://github.com/dieggsy/esh-autosuggest")
10700 (commit version)))
10701 (file-name (string-append name "-" version "-checkout"))
10702 (sha256
10703 (base32
10704 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
10705 (build-system emacs-build-system)
10706 (propagated-inputs `(("emacs-company" ,emacs-company)))
10707 (home-page "https://github.com/dieggsy/esh-autosuggest")
10708 (synopsis "Fish-like autosuggestions in Eshell")
10709 (description
10710 "This package assumes you use something other than company for eshell
10711completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
10712@code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
10713for history autosuggestions.
10714
10715Unless you're using @code{use-package}'s hook keyword, you can enable the
10716autosuggestions with:
10717@code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
10718 (license license:gpl3+)))
fd29faa8
RW
10719
10720(define-public emacs-desktop-environment
10721 (package
10722 (name "emacs-desktop-environment")
10723 (version "0.2.0")
10724 (source
10725 (origin
10726 (method git-fetch)
10727 (uri (git-reference
10728 (url "https://github.com/DamienCassou/desktop-environment.git")
10729 (commit (string-append "v" version))))
10730 (file-name (string-append name "-" version "-checkout"))
10731 (sha256
10732 (base32
10733 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
10734 (build-system emacs-build-system)
10735 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
10736 (synopsis "Control your GNU/Linux desktop environment from Emacs")
10737 (description
10738 "This package helps you control your GNU/Linux desktop from Emacs.
10739With @code{desktop-environment}, you can control the brightness and volume as
10740well as take screenshots and lock your screen. The package depends on the
10741availability of shell commands to do the hard work for us. These commands can
10742be changed by customizing the appropriate variables.")
10743 (license license:gpl3+)))
45dca193
KH
10744
10745(define-public emacs-org-caldav
10746 (package
10747 (name "emacs-org-caldav")
10748 (version "20180403")
10749 (source
10750 (origin
10751 (method url-fetch)
10752 (uri (string-append
10753 "https://github.com/dengste/org-caldav/raw/"
10754 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
10755 "/org-caldav.el"))
10756 (sha256
10757 (base32
10758 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
10759 (build-system emacs-build-system)
10760 (propagated-inputs `(("emacs-org" ,emacs-org)))
10761 (home-page "https://github.com/dengste/org-caldav")
10762 (synopsis
10763 "Sync Org files with external calendars via the CalDAV protocol")
10764 (description
10765 "Synchronize between events in Org-mode files and a CalDAV calendar.
10766This code is still alpha.")
10767 (license license:gpl3+)))
555ab085
KH
10768
10769(define-public emacs-zotxt
10770 (package
10771 (name "emacs-zotxt")
10772 (version "20180518")
10773 (source
10774 (origin
10775 (method url-fetch)
10776 (uri (string-append
10777 "https://github.com/egh/zotxt-emacs/archive/"
10778 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
10779 ".tar.gz"))
10780 (sha256
10781 (base32
10782 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
10783 (build-system emacs-build-system)
10784 (propagated-inputs
10785 `(("emacs-deferred" ,emacs-deferred)
10786 ("emacs-request" ,emacs-request)))
10787 (home-page "https://github.com/egh/zotxt-emacs")
10788 (synopsis "Integrate Emacs with Zotero")
10789 (description "This package provides two integration features between Emacs
10790and the Zotero research assistant: Insertion of links to Zotero items into an
10791Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
10792 (license license:gpl3+)))
22deb034
PN
10793
10794(define-public emacs-evil-ediff
1e5fb529
PN
10795 ;; Evil-Ediff is included in Evil Collection from 20180617.
10796 (deprecated-package "emacs-evil-ediff" emacs-evil-collection))
c6c1f0bf
PN
10797
10798(define-public emacs-evil-magit
10799 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
10800 (package
10801 (name "emacs-evil-magit")
10802 (version (git-version "0.4.2" "1" commit))
10803 (source
10804 (origin
10805 (method git-fetch)
10806 (uri (git-reference
10807 (url "https://github.com/emacs-evil/evil-magit")
10808 (commit commit)))
10809 (file-name (string-append name "-" version "-checkout"))
10810 (sha256
10811 (base32
10812 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
10813 (build-system emacs-build-system)
10814 (propagated-inputs
10815 `(("emacs-evil" ,emacs-evil)
10816 ("magit" ,magit)))
10817 (home-page
10818 "https://github.com/emacs-evil/evil-magit")
10819 (synopsis "Evil-based key bindings for Magit")
10820 (description
10821 "This Emacs library configures Magit and Evil to play well with each other.
10822For some background see @url{https://github.com/magit/evil-magit/issues/1}.
10823See the README at @url{https://github.com/justbur/evil-magit} for a table
10824describing the key binding changes.")
10825 (license license:gpl3+))))
e1e09bcb
PN
10826
10827(define-public emacs-evil-mu4e
5a74886e
PN
10828 ;; Evil-mu4e is included in Evil Collection from 20180617.
10829 (deprecated-package "emacs-evil-mu4e" emacs-evil-collection))
ac85107c
PN
10830
10831(define-public emacs-evil-multiedit
10832 (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d"))
10833 (package
10834 (name "emacs-evil-multiedit")
10835 (version (git-version "1.3.9" "1" commit))
10836 (source
10837 (origin
10838 (method git-fetch)
10839 (uri (git-reference
10840 (url "https://github.com/hlissner/evil-multiedit")
10841 (commit commit)))
10842 (file-name (string-append name "-" version "-checkout"))
10843 (sha256
10844 (base32
10845 "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w"))))
10846 (build-system emacs-build-system)
10847 (propagated-inputs
10848 `(("emacs-evil" ,emacs-evil)
10849 ("emacs-iedit" ,emacs-iedit)))
10850 (home-page
10851 "https://github.com/hlissner/evil-multiedit")
10852 (synopsis "Multiple cursors for Evil mode")
10853 (description
10854 "This plugin was an answer to the lack of proper multiple cursor support
10855in Emacs+Evil. It allows you to select and edit matches interactively,
10856integrating @code{iedit-mode} into Evil mode with an attempt at sensible
10857defaults.")
10858 (license license:gpl3+))))
e3740109
PN
10859
10860(define-public emacs-evil-org
10861 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
10862 (package
10863 (name "emacs-evil-org")
10864 (version (git-version "0.1.1" "1" commit))
10865 (source
10866 (origin
10867 (method git-fetch)
10868 (uri (git-reference
10869 (url "https://github.com/Somelauw/evil-org-mode")
10870 (commit commit)))
10871 (file-name (string-append name "-" version "-checkout"))
10872 (sha256
10873 (base32
10874 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
10875 (build-system emacs-build-system)
10876 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10877 (home-page
10878 "https://github.com/Somelauw/evil-org-mode")
10879 (synopsis "Evil keybindings for Org mode")
10880 (description
10881 "This package adds supplemental Evil mode key-bindings to Emacs
10882Org-mode. It features:
10883@itemize
10884@item normal, visual and insert mode bindings;
10885@item key bindings organised in key themes;
10886@item operators like > and < to work on headings;
10887@item text objects;
10888@item table support;
10889@item calendar (date selection) support;
10890@item agenda support.
10891@end itemize\n")
10892 (license license:gpl3+))))
15dcd292
PN
10893
10894(define-public emacs-fish-completion
3348e9f3
PN
10895 (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
10896 (package
10897 (name "emacs-fish-completion")
10898 (version (git-version "20180616" "1" commit))
10899 (source
10900 (origin
10901 (method url-fetch)
10902 (uri (string-append
10903 "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
10904 "archive.tar.gz?ref="
10905 commit))
10906 (sha256
10907 (base32
10908 "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
10909 (build-system emacs-build-system)
10910 (inputs `(("fish" ,fish)))
10911 (arguments
10912 `(#:phases
10913 (modify-phases %standard-phases
10914 (add-after 'unpack 'configure
10915 (lambda* (#:key inputs outputs #:allow-other-keys)
10916 (let ((fish (assoc-ref inputs "fish")))
10917 ;; Specify the absolute file names of the various
10918 ;; programs so that everything works out-of-the-box.
10919 (emacs-substitute-variables
10920 "fish-completion.el"
10921 ("fish-completion-command"
10922 (string-append fish "/bin/fish")))))))))
10923 (home-page
10924 "https://gitlab.com/Ambrevar/emacs-fish-completion")
10925 (synopsis "Fish completion for Emacs pcomplete")
10926 (description
10927 "This package provides completion for the Fish shell to pcomplete (used
15dcd292
PN
10928by shell and Eshell). You can set it up globally with:
10929
10930@example
10931(when (and (executable-find \"fish\")
10932 (require 'fish-completion nil t))
10933 (global-fish-completion-mode))
10934@end example
10935
10936Alternatively, you can call the @code{fish-completion-mode} manually or in
10937shell/Eshell mode hook.
10938
10939The package @code{emacs-bash-completion} is an optional dependency: if available,
10940@code{fish-completion-complete} can be configured to fall back on bash to further
10941try completing. See @code{fish-completion-fallback-on-bash-p}.")
3348e9f3 10942 (license license:gpl3+))))
a62d872f
PN
10943
10944(define-public emacs-gif-screencast
a749040a 10945 (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
a62d872f
PN
10946 (package
10947 (name "emacs-gif-screencast")
a749040a 10948 (version (git-version "20180616" "1" commit))
a62d872f
PN
10949 (source
10950 (origin
10951 (method url-fetch)
10952 (uri (string-append
a749040a
PN
10953 "https://gitlab.com/Ambrevar/emacs-gif-screencast/"
10954 "repository/archive.tar.gz?ref="
10955 commit))
a62d872f
PN
10956 (sha256
10957 (base32
a749040a 10958 "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh"))))
a62d872f
PN
10959 (build-system emacs-build-system)
10960 (inputs
10961 `(("scrot" ,scrot)
10962 ("imagemagick" ,imagemagick)
10963 ("gifsicle" ,gifsicle)))
10964 (arguments
10965 `(#:phases
10966 (modify-phases %standard-phases
10967 (add-after 'unpack 'configure
10968 (lambda* (#:key inputs outputs #:allow-other-keys)
10969 (let ((scrot (assoc-ref inputs "scrot"))
10970 (imagemagick (assoc-ref inputs "imagemagick"))
10971 (gifsicle (assoc-ref inputs "gifsicle")))
10972 ;; Specify the absolute file names of the various
10973 ;; programs so that everything works out-of-the-box.
10974 (emacs-substitute-variables
10975 "gif-screencast.el"
10976 ("gif-screencast-program"
10977 (string-append scrot "/bin/scrot"))
10978 ("gif-screencast-convert-program"
10979 (string-append imagemagick "/bin/convert"))
10980 ("gif-screencast-cropping-program"
10981 (string-append imagemagick "/bin/mogrify"))
10982 ("gif-screencast-optimize-program"
10983 (string-append imagemagick "/bin/gifsicle")))))))))
10984 (home-page
a749040a 10985 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
a62d872f
PN
10986 (synopsis "One-frame-per-action GIF recording")
10987 (description
10988 "Call @code{gif-screencast} to start a recording.
10989A screenshot is taken for every user action. Call
10990@code{gif-screencast-stop} (<f9> by default) to finish recording and create
10991the GIF result.")
10992 (license license:gpl3+))))
2dcea9b4
PN
10993
10994(define-public emacs-google-translate
10995 (let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974"))
10996 (package
10997 (name "emacs-google-translate")
10998 (version (git-version "0.11.14" "1" commit))
10999 (source
11000 (origin
11001 (method git-fetch)
11002 (uri (git-reference
11003 (url "https://github.com/atykhonov/google-translate")
11004 (commit commit)))
11005 (file-name (string-append name "-" version "-checkout"))
11006 (sha256
11007 (base32
11008 "1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc"))))
11009 (build-system emacs-build-system)
11010 (home-page "https://github.com/atykhonov/google-translate")
11011 (synopsis "Emacs interface to Google Translate")
11012 (description
11013 "This packages provides an Emacs interface to the Google Translate
11014on-line service.")
11015 (license license:gpl3+))))
3540c6eb
PN
11016
11017(define-public emacs-helm-company
11018 (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d"))
11019 (package
11020 (name "emacs-helm-company")
11021 (version (git-version "0.2.2" "1" commit))
11022 (source
11023 (origin
11024 (method git-fetch)
11025 (uri (git-reference
11026 (url "https://github.com/Sodel-the-Vociferous/helm-company")
11027 (commit commit)))
11028 (file-name (string-append name "-" version "-checkout"))
11029 (sha256
11030 (base32
11031 "1d4q9clp0q56br80c21a4wz1gc4jw3mdy97z9mq07x9i8rhlppzs"))))
11032 (build-system emacs-build-system)
11033 (propagated-inputs
11034 `(("emacs-helm" ,emacs-helm)
11035 ("emacs-company" ,emacs-company)))
11036 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
11037 (synopsis "Helm interface for company-mode")
11038 (description
11039 "This is a Helm interface to company-mode, a text completion
11040framework.")
11041 (license license:gpl3+))))
0b4e4efe
PN
11042
11043(define-public emacs-helm-descbinds
11044 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
11045 (package
11046 (name "emacs-helm-descbinds")
11047 (version (git-version "1.13" "1" commit))
11048 (source
11049 (origin
11050 (method git-fetch)
11051 (uri (git-reference
11052 (url "https://github.com/emacs-helm/helm-descbinds")
11053 (commit commit)))
11054 (file-name (string-append name "-" version "-checkout"))
11055 (sha256
11056 (base32
11057 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
11058 (build-system emacs-build-system)
11059 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11060 (home-page "https://github.com/emacs-helm/helm-descbinds")
11061 (synopsis "Convenient @code{describe-bindings} with Helm")
11062 (description
11063 "This package is a replacement of @code{describe-bindings} for Helm.
11064@code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
11065type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
11066@code{helm-descbinds}. The bindings are presented in a similar way as
11067@code{describe-bindings} does, but you can use completion to find the command
11068you searched for and execute it, or view its documentation.")
11069 (license license:gpl3+))))
5a949f5b
PN
11070
11071(define-public emacs-helm-emms
11072 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
11073 (package
11074 (name "emacs-helm-emms")
11075 (version (git-version "1.3" "1" commit))
11076 (source
11077 (origin
11078 (method git-fetch)
11079 (uri (git-reference
11080 (url "https://github.com/emacs-helm/helm-emms")
11081 (commit commit)))
11082 (file-name (string-append name "-" version "-checkout"))
11083 (sha256
11084 (base32
11085 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
11086 (build-system emacs-build-system)
11087 (propagated-inputs
11088 `(("emacs-helm" ,emacs-helm)
11089 ("emacs-emms" ,emms)))
11090 (home-page
11091 "https://github.com/emacs-helm/helm-emms")
11092 (synopsis "Emms for Helm")
11093 (description "Helm interface for Emms to browse all tracks and all folders
11094from @code{emms-source-file-default-directory}.")
11095 (license license:gpl3+))))
49fd0392
PN
11096
11097(define-public emacs-helm-exwm
22c0bef6 11098 (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
49fd0392
PN
11099 (package
11100 (name "emacs-helm-exwm")
22c0bef6 11101 (version (git-version "20180703" "2" commit))
49fd0392
PN
11102 (source
11103 (origin
11104 (method url-fetch)
11105 (uri (string-append
11106 "https://github.com/emacs-helm/helm-exwm/archive/"
11107 commit
11108 ".tar.gz"))
11109 (sha256
11110 (base32
22c0bef6 11111 "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
49fd0392
PN
11112 (build-system emacs-build-system)
11113 (propagated-inputs
11114 `(("emacs-helm" ,emacs-helm)
11115 ("emacs-exwm" ,emacs-exwm)))
11116 (home-page
11117 "https://github.com/emacs-helm/helm-exwm")
11118 (synopsis "Helm for EXWM buffers")
11119 (description
11120 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11121@code{helm-exwm-switch} is a convenience X application launcher using Helm to
11122switch between the various windows of one or several specific applications.
11123See @code{helm-exwm-switch-browser} for an example.")
11124 (license license:gpl3+))))
daa9e89d
PN
11125
11126(define-public emacs-helm-flycheck
11127 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11128 (package
11129 (name "emacs-helm-flycheck")
11130 (version (git-version "0.4" "1" commit))
11131 (source
11132 (origin
11133 (method git-fetch)
11134 (uri (git-reference
11135 (url "https://github.com/yasuyk/helm-flycheck")
11136 (commit commit)))
11137 (file-name (string-append name "-" version "-checkout"))
11138 (sha256
11139 (base32
11140 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11141 (build-system emacs-build-system)
11142 (propagated-inputs
11143 `(("emacs-dash" ,emacs-dash)
11144 ("emacs-flycheck" ,flycheck)
11145 ("emacs-helm" ,emacs-helm)))
11146 (home-page "https://github.com/yasuyk/helm-flycheck")
11147 (synopsis "Show Flycheck errors with Helm")
11148 (description
11149 "This integrates Flycheck with Helm.")
11150 (license license:gpl3+))))
1e758526
PN
11151
11152(define-public emacs-helm-ls-git
11153 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11154 (package
11155 (name "emacs-helm-ls-git")
11156 (version (git-version "1.9.1" "1" commit))
11157 (source
11158 (origin
11159 (method git-fetch)
11160 (uri (git-reference
11161 (url "https://github.com/emacs-helm/helm-ls-git")
11162 (commit commit)))
11163 (file-name (string-append name "-" version "-checkout"))
11164 (sha256
11165 (base32
11166 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11167 (build-system emacs-build-system)
11168 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11169 (home-page "https://github.com/emacs-helm/helm-ls-git")
11170 (synopsis "Helm interface for listing the files in a Git repository")
11171 (description
11172 "This package provides a Helm interface for Git files.
11173@itemize
11174@item Display the open buffers in project.
11175@item Display a status source showing state of project (modified files etc.).
11176@item Display a list of all files in project under git control.
11177@item Quickly look at diffs of modified files.
11178@item Allow switching to @code{git status} with your preferred frontend
11179(vc-dir, Magit,etc.).
11180@item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11181can use ack-grep instead of grep).
11182@item Integrate usage of gid from id-utils.
11183@item Full integration with @code{helm-find-files}, allow you to browse
11184projects unrelated to current-buffer.
11185@item In addition, all actions of type files and buffers are provided.
11186@end itemize\n")
11187 (license license:gpl3+))))
2f3aa1d3
PN
11188
11189(define-public emacs-helm-mu
11190 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11191 (package
11192 (name "emacs-helm-mu")
11193 (version (git-version "20180513" "1" commit))
11194 (source
11195 (origin
11196 (method url-fetch)
11197 (uri (string-append
11198 "https://github.com/emacs-helm/helm-mu/archive/"
11199 commit
11200 ".tar.gz"))
11201 (sha256
11202 (base32
11203 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11204 (build-system emacs-build-system)
11205 (propagated-inputs
11206 `(("emacs-helm" ,emacs-helm)
11207 ("mu" ,mu)))
11208 (home-page
11209 "https://github.com/emacs-helm/helm-mu")
11210 (synopsis
11211 "Helm sources for searching emails and contacts")
11212 (description
11213 "Helm sources for searching emails and contacts using @code{mu} and
11214@code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11215Emacs build on top of mu. Mu is highly efficient making it possible to get
11216instant results even for huge maildirs. It also provides search operators,
11217e.g: @code{from:Peter to:Anne flag:attach search term}.")
11218 (license license:gpl3+))))
bdfebc4b
PN
11219
11220(define-public emacs-helm-pass
11221 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11222 (package
11223 (name "emacs-helm-pass")
11224 (version (git-version "20180416" "1" commit))
11225 (source
11226 (origin
11227 (method url-fetch)
11228 (uri (string-append
11229 "https://github.com/jabranham/helm-pass/archive/"
11230 commit
11231 ".tar.gz"))
11232 (sha256
11233 (base32
11234 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11235 (build-system emacs-build-system)
11236 (propagated-inputs
11237 `(("emacs-helm" ,emacs-helm)
11238 ("emacs-password-store" ,emacs-password-store)))
11239 (home-page
11240 "https://github.com/jabranham/helm-pass")
11241 (synopsis "Helm interface to pass, the standard Unix password manager")
11242 (description
11243 "Users of @code{helm-pass} may also be interested in functionality
11244provided by other Emacs packages dealing with pass:
11245@itemize
11246@item @code{emacs-password-store}, which @code{helm-pass} relies on.
11247@item @code{emacs-pass}, a major mode for @code{pass}.
11248@item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11249@code{pass}, included in Emacs 26+).
11250@end itemize\n")
11251 (license license:gpl3+))))
00f37740
PN
11252
11253(define-public emacs-image+
11254 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11255 (package
11256 (name "emacs-image+")
11257 (version (git-version "0.6.2" "1" commit))
11258 (source
11259 (origin
11260 (method git-fetch)
11261 (uri (git-reference
11262 (url "https://github.com/mhayashi1120/Emacs-imagex")
11263 (commit commit)))
11264 (file-name (string-append name "-" version "-checkout"))
11265 (sha256
11266 (base32
11267 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11268 (build-system emacs-build-system)
92d581a0
PN
11269 (inputs `(("imagemagick" ,imagemagick)))
11270 (arguments
11271 `(#:phases
11272 (modify-phases %standard-phases
11273 (add-after 'unpack 'configure
11274 (lambda* (#:key inputs outputs #:allow-other-keys)
11275 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11276 ;; Specify the absolute file names of the various
11277 ;; programs so that everything works out-of-the-box.
11278 (chmod "image+.el" #o666)
11279 (emacs-substitute-variables
11280 "image+.el"
11281 ("imagex-convert-command"
11282 (string-append imagemagick "/bin/convert"))
11283 ("imagex-identify-command"
11284 (string-append imagemagick "/bin/identify")))))))))
00f37740
PN
11285 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11286 (synopsis "Image manipulation extensions for Emacs")
11287 (description
11288 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11289image, rotate it, save modified images, and more.")
11290 (license license:gpl3+))))
50a1f926
PN
11291
11292(define-public emacs-package-lint
11293 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
11294 (package
11295 (name "emacs-package-lint")
11296 (version (git-version "0.5" "1" commit))
11297 (source
11298 (origin
11299 (method git-fetch)
11300 (uri (git-reference
11301 (url "https://github.com/purcell/package-lint")
11302 (commit commit)))
11303 (file-name (string-append name "-" version "-checkout"))
11304 (sha256
11305 (base32
11306 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
11307 (build-system emacs-build-system)
11308 (home-page "https://github.com/purcell/package-lint")
11309 (synopsis "Linting library for elisp package authors")
11310 (description
11311 "This provides a list of issues with the Emacs package metadata of a file,
11312e.g. the package dependencies it requires. See function
11313@code{package-lint-buffer}. Checks will currently be enabled only if a
11314\"Package-Requires:\" or \"Package-Version:\" header is present in the
11315file.")
11316 (license license:gpl3+))))
8bf7f741
PN
11317
11318(define-public emacs-wgrep-helm
1ce4f555
PN
11319 ;; `emacs-wgrep-helm' was mistakenly added.
11320 (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
addda2ee
PN
11321
11322(define-public emacs-mu4e-conversation
d7d0c989 11323 (let ((commit "223cc66e99c7665326e3d991d6d383cb0d7512bb"))
addda2ee
PN
11324 (package
11325 (name "emacs-mu4e-conversation")
d7d0c989 11326 (version (git-version "20180722" "2" commit))
addda2ee
PN
11327 (source
11328 (origin
11329 (method url-fetch)
11330 (uri (string-append
11331 "https://gitlab.com/Ambrevar/mu4e-conversation/"
11332 "repository/archive.tar.gz?ref="
11333 commit))
11334 (file-name (string-append name "-" version "-checkout"))
11335 (sha256
11336 (base32
d7d0c989 11337 "1ivy7pihhma465hi25p1y45dyi8h52nsm2m0cvizj5sw36jw0n81"))))
addda2ee
PN
11338 (build-system emacs-build-system)
11339 (propagated-inputs
11340 `(("mu" ,mu)))
11341 (home-page
11342 "https://gitlab.com/Ambrevar/mu4e-conversation")
11343 (synopsis
11344 "Show a complete thread in a single buffer")
11345 (description
11346 "This package offers an alternate view to mu4e e-mail display. It
11347shows all e-mails of a thread in a single view, where each correspondant has
11348their own face. Threads can be displayed linearly (in which case e-mails are
11349displayed in chronological order) or as an Org document where the node tree
11350maps the thread tree.")
11351 (license license:gpl3+))))
b1f9fc0d
PN
11352
11353(define-public emacs-pinentry
11354 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
11355 (revision "1"))
11356 (package
11357 (name "emacs-pinentry")
11358 (version (git-version "0.1" revision commit))
11359 (source
11360 (origin
11361 (method url-fetch)
11362 (uri (string-append
11363 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
11364 "/packages/pinentry/pinentry.el?id=" commit))
11365 (file-name (string-append "pinentry.el"))
11366 (sha256
11367 (base32
11368 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
11369 (build-system emacs-build-system)
11370 (propagated-inputs
11371 `(("gnupg" ,gnupg)))
11372 (home-page "https://elpa.gnu.org/packages/pinentry.html")
11373 (synopsis "GnuPG Pinentry server implementation")
11374 (description
11375 "This package allows GnuPG passphrase to be prompted through the
11376minibuffer instead of graphical dialog.
11377
11378To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
11379reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
11380server with @code{M-x pinentry-start}.")
11381 (license license:gpl3+))))
a586d1d2
VD
11382
11383(define-public emacs-org-brain
11384 (package
11385 (name "emacs-org-brain")
11386 (version "0.5")
11387 (source
11388 (origin
11389 (method git-fetch)
11390 (uri (git-reference
11391 (url "https://github.com/Kungsgeten/org-brain.git")
11392 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
11393 (file-name (git-file-name name version))
11394 (sha256
11395 (base32
11396 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
11397 (build-system emacs-build-system)
11398 (home-page "https://github.com/Kungsgeten/org-brain")
11399 (synopsis "Org-mode wiki and concept-mapping for Emacs")
11400 (description "@code{emacs-org-brain} implements a variant of concept
11401mapping in Emacs, using @code{org-mode}. An org-brain is a network of
11402org-mode entries, where each entry is a file or a headline, and you can get a
11403visual overview of the relationships between the entries: parents, children,
11404siblings and friends. This visual overview can also be used to browse your
11405entries. You can think of entries as nodes in a mind map, or pages in a
11406wiki.")
11407 (license license:expat)))
36adbc43
LC
11408
11409(define-public emacs-recent-addresses
64daf217
LC
11410 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
11411 (revision "1"))
36adbc43
LC
11412 (package
11413 (name "emacs-recent-addresses")
11414 (home-page "http://nschum.de/src/emacs/recent-addresses/")
11415 (version (git-version "0.1" revision commit))
11416 (source (origin
11417 (method git-fetch)
11418 (uri (git-reference
64daf217
LC
11419 ;; Note: Use a branch that works with Helm. Submitted
11420 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
11421 (url "https://github.com/civodul/recent-addresses.el")
36adbc43
LC
11422 (commit commit)))
11423 (sha256
11424 (base32
64daf217 11425 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
36adbc43
LC
11426 (file-name (git-file-name name version))))
11427 (build-system emacs-build-system)
11428 (synopsis "Record recently-used email addressed and auto-complete them")
11429 (description
8a9e0b6e
KM
11430 "@code{recent-addresses} is an Emacs package that allows you to quickly
11431look up previously used email addresses. It can be used alongside the Gnus
11432email client.")
36adbc43 11433 (license license:gpl2+))))
d1f90b9b
LC
11434
11435(define-public emacs-fold-dwim
11436 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
11437 (revision "0"))
11438 (package
11439 (name "emacs-fold-dwim")
11440 (version (git-version "1.2" revision commit))
11441 (home-page "https://github.com/emacsattic/fold-dwim")
11442 (source (origin
11443 (method git-fetch)
11444 (uri (git-reference (url home-page) (commit commit)))
11445 (sha256
11446 (base32
11447 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
11448 (file-name (git-file-name name version))))
11449 (build-system emacs-build-system)
11450 (synopsis "Unified user interface for Emacs folding modes")
11451 (description
11452 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
11453can do different things depending on the context. In this package, it means
11454that, if the cursor is in a currently hidden folded construction, we want to
11455show it; if it's not, we want to hide whatever fold the cursor is in.")
11456 (license license:gpl2+))))
5691898f
JH
11457
11458(define-public emacs-markup-faces
11459 (package
11460 (name "emacs-markup-faces")
11461 (version "1.0.0")
11462 (source
11463 (origin
11464 (method url-fetch)
11465 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
11466 version ".el"))
11467 (sha256
11468 (base32
11469 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
11470 (build-system emacs-build-system)
11471 (home-page "https://github.com/sensorflo/markup-faces")
11472 (synopsis "Collection of Emacs faces for markup language modes")
11473 (description "emacs-markup-faces is like font-lock-faces, but tailored for
11474markup languages instead programming languages. The sub group markup-faces-text
11475is also intended for 'text viewing modes' such as info or (wo)man. This gives a
11476common look and feel, or let's say theme, across different markup language modes
11477and 'text viewing modes' respectively.")
11478 (license license:gpl3+)))
36a71ce0
JH
11479
11480(define-public emacs-adoc-mode
11481 (package
11482 (name "emacs-adoc-mode")
11483 (version "0.6.6")
11484 (source
11485 (origin
11486 (method url-fetch)
11487 (uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
11488 version ".el"))
11489 (sha256
11490 (base32
11491 "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
11492 (build-system emacs-build-system)
11493 (propagated-inputs
11494 `(("emacs-markup-faces" ,emacs-markup-faces)))
11495 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
11496 (synopsis "AsciiDoc mode for Emacs")
11497 (description "This package provides an Emacs major mode for editing AsciiDoc
11498files. It focuses on highlighting the document to improve readability.")
11499 (license license:gpl2+)))
661e8a62
PAR
11500
11501(define-public emacs-rust-mode
11502 (let ((commit
11503 ;; Last release is old (2016), use more recent commit to get bug
11504 ;; fixes.
11505 "64b4a2450e4d4c47f6307851c9b2598cd2254d68")
11506 (revision "0"))
11507 (package
11508 (name "emacs-rust-mode")
11509 (version (git-version "0.3.0" revision commit))
11510 (source (origin
11511 (method git-fetch)
11512 (uri
11513 (git-reference
11514 (url "https://github.com/rust-lang/rust-mode")
11515 (commit commit)))
11516 (file-name (git-file-name name version))
11517 (sha256
11518 (base32
11519 "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
11520 (build-system emacs-build-system)
11521 (arguments
11522 `(#:phases
11523 (modify-phases %standard-phases
11524 (replace 'check
11525 (lambda _
11526 (invoke "sh" "run_rust_emacs_tests.sh"))))))
11527 (home-page "https://github.com/rust-lang/rust-mode")
11528 (synopsis "Major Emacs mode for editing Rust source code")
11529 (description "This package provides a major Emacs mode for editing Rust
11530source code.")
11531 (license (list license:expat
11532 license:asl2.0)))))
a86866f4
PN
11533
11534(define-public emacs-ztree
11535 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
11536 (package
11537 (name "emacs-ztree")
11538 (version (git-version "1.0.5" "1" commit))
11539 (source
11540 (origin
11541 (method git-fetch)
11542 (uri (git-reference
11543 (url "https://github.com/fourier/ztree")
11544 (commit commit)))
11545 (file-name (git-file-name name version))
11546 (sha256
11547 (base32
11548 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
11549 (build-system emacs-build-system)
11550 (home-page "https://github.com/fourier/ztree")
11551 (synopsis "Directory tree comparison mode for Emacs")
11552 (description "Ztree is a project dedicated to implementation of several
11553text-tree applications inside GNU Emacs. It consists of 2 subprojects:
11554@command{ztree-diff} and @command{ztree-dir} (the basis of
11555@command{ztree-diff}).")
11556 (license license:gpl3))))
5f005932
PN
11557
11558(define-public emacs-helm-org-contacts
11559 (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
11560 (package
11561 (name "emacs-helm-org-contacts")
11562 (version (git-version "20180707" "1" commit))
11563 (source
11564 (origin
11565 (method git-fetch)
11566 (uri (git-reference
11567 (url "https://github.com/tmalsburg/helm-org-contacts")
11568 (commit commit)))
11569 (file-name (git-file-name name version))
11570 (sha256
11571 (base32
11572 "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
11573 (build-system emacs-build-system)
11574 (propagated-inputs
11575 `(("emacs-dash" ,emacs-dash)
11576 ("emacs-helm" ,emacs-helm)
11577 ("emacs-s" ,emacs-s)))
11578 (home-page "https://github.com/tmalsburg/helm-org-contacts")
11579 (synopsis "Helm source for org-contacts")
11580 (description "This Helm source can be used to search contacts stored in
11581org-contacts format. There are actions for inserting postal addresses, email
11582addresses, and phone numbers in the buffer where @command{helm-org-contacts}
11583was called.")
11584 (license license:gpl3))))
e968542d
PN
11585
11586(define-public emacs-dired-du
11587 (package
11588 (name "emacs-dired-du")
11589 (version "0.5")
11590 (source
11591 (origin
11592 (method url-fetch)
11593 (uri (string-append
11594 "https://elpa.gnu.org/packages/dired-du-"
11595 version ".tar"))
11596 (sha256
11597 (base32
11598 "09yj37p2fa5f81fqrzwghjkyy2ydsf4rbkfwpn2yyvzd5nd97bpl"))))
11599 (build-system emacs-build-system)
11600 (home-page "http://elpa.gnu.org/packages/dired-du.html")
11601 (synopsis "Dired with recursive directory sizes")
11602 (description
11603 "Display the recursive size of directories in Dired.
11604This file defines a minor mode @command{dired-du-mode} to show the recursive
11605size of directories in Dired buffers. If @command{du} program is available,
11606then the directory sizes are obtained with it. Otherwise, the directory sizes
11607are obtained with Lisp. The former is faster and provide a more precise
11608value. For directories where the user doesn't have read permission, the
11609recursive size is not obtained. Once this mode is enabled, every new Dired
11610buffer displays recursive dir sizes.")
11611 (license license:gpl3+)))
d5af41cd
PN
11612
11613(define-public emacs-pcre2el
11614 ;; Last release is very old so we get the latest commit.
11615 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
11616 (package
11617 (name "emacs-pcre2el")
11618 (version (git-version "1.8" "1" commit))
11619 (source
11620 (origin
11621 (method git-fetch)
11622 (uri (git-reference
11623 (url "https://github.com/joddie/pcre2el")
11624 (commit commit)))
11625 (file-name (git-file-name name version))
11626 (sha256
11627 (base32
11628 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
11629 (build-system emacs-build-system)
11630 (home-page "https://github.com/joddie/pcre2el")
11631 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
11632 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
11633Tools) is a utility for working with regular expressions in Emacs, based on a
11634recursive-descent parser for regexp syntax. In addition to converting (a
11635subset of) PCRE syntax into its Emacs equivalent, it can do the following:
11636
11637@itemize
11638@item convert Emacs syntax to PCRE
11639@item convert either syntax to @code{rx}, an S-expression based regexp syntax
11640@item untangle complex regexps by showing the parse tree in @code{rx} form and
11641highlighting the corresponding chunks of code
11642@item show the complete list of strings (productions) matching a regexp,
11643provided the list is finite
11644@item provide live font-locking of regexp syntax (so far only for Elisp
11645buffers – other modes on the TODO list).
11646@end itemize\n")
11647 (license license:gpl3))))
9805ee0a
PN
11648
11649(define-public emacs-magit-todos
11650 ;; TODO: <1.1 is broken with Guix. Switch to 1.1 when out.
11651 (let ((commit "966642762788d335dc2d3667d230a36ede65972e"))
11652 (package
11653 (name "emacs-magit-todos")
11654 (version (git-version "1.0.4" "1" commit))
11655 (source
11656 (origin
11657 (method git-fetch)
11658 (uri (git-reference
11659 (url "https://github.com/alphapapa/magit-todos")
11660 (commit commit)))
11661 (file-name (git-file-name name version))
11662 (sha256
11663 (base32
11664 "0nxarip8sf0446xfgrcfsjm4vbsg50klxjbr4i6h09a3lri03gyp"))))
11665 (build-system emacs-build-system)
11666 (propagated-inputs
11667 `(("emacs-async" ,emacs-async)
11668 ("emacs-dash" ,emacs-dash)
11669 ("emacs-f" ,emacs-f)
11670 ("emacs-hl-todo" ,emacs-hl-todo)
11671 ("magit" ,magit)
11672 ("emacs-pcre2el" ,emacs-pcre2el)
11673 ("emacs-s" ,emacs-s)))
11674 (home-page "https://github.com/alphapapa/magit-todos")
11675 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
11676 (description "This package displays keyword entries from source code
11677comments and Org files in the Magit status buffer. Activating an item jumps
11678to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
11679few (like NOTE).")
11680 (license license:gpl3))))
bff861ec
KM
11681
11682(define-public emacs-git-annex
11683 ;; Unreleased version has a fontification fix.
11684 (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
11685 (revision "1"))
11686 (package
11687 (name "emacs-git-annex")
11688 (version (string-append "1.1-" revision "." (string-take commit 8)))
11689 (source
11690 (origin
11691 (method git-fetch)
11692 (uri (git-reference
11693 (url "https://github.com/jwiegley/git-annex-el")
11694 (commit commit)))
11695 (file-name (string-append name "-" version "-checkout"))
11696 (sha256
11697 (base32
11698 "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
11699 (build-system emacs-build-system)
11700 (home-page "https://github.com/jwiegley/git-annex-el")
11701 (synopsis "Emacs integration for git-annex")
11702 (description "Enhances Dired and buffers visiting annex files with
11703git-annex functionality. In Dired, the names of annex files are shortened by
11704hiding the symbolic links and fontified based on whether content is present.
11705Commands for performing some common operations (e.g., unlocking and adding
11706files) are provided.")
11707 (license license:gpl2+))))