gnu: Add emacs-image+.
[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>
bdadf855 37;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
468bdabb
LC
38;;;
39;;; This file is part of GNU Guix.
40;;;
41;;; GNU Guix is free software; you can redistribute it and/or modify it
42;;; under the terms of the GNU General Public License as published by
43;;; the Free Software Foundation; either version 3 of the License, or (at
44;;; your option) any later version.
45;;;
46;;; GNU Guix is distributed in the hope that it will be useful, but
47;;; WITHOUT ANY WARRANTY; without even the implied warranty of
48;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49;;; GNU General Public License for more details.
50;;;
51;;; You should have received a copy of the GNU General Public License
52;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
53
1ffa7090 54(define-module (gnu packages emacs)
f61e0e79 55 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
56 #:use-module (guix packages)
57 #:use-module (guix download)
f906d30c 58 #:use-module (guix git-download)
e5045f30
FB
59 #:use-module (guix gexp)
60 #:use-module (guix monads)
61 #:use-module (guix store)
468bdabb 62 #:use-module (guix build-system gnu)
78395334 63 #:use-module (guix build-system emacs)
71f57158 64 #:use-module (guix build-system glib-or-gtk)
fe4163f3 65 #:use-module (guix build-system trivial)
59a43334 66 #:use-module (gnu packages)
acf7d4a7 67 #:use-module (gnu packages audio)
4aafce22 68 #:use-module (gnu packages bash)
75408149 69 #:use-module (gnu packages cmake)
cf006d2e 70 #:use-module (gnu packages code)
4d089b5e 71 #:use-module (gnu packages databases)
f906d30c 72 #:use-module (gnu packages guile)
7abe1965 73 #:use-module (gnu packages gtk)
8ba4dc63 74 #:use-module (gnu packages gnome)
1ffa7090 75 #:use-module (gnu packages ncurses)
99517d92 76 #:use-module (gnu packages python)
41184943 77 #:use-module (gnu packages tex)
1ffa7090 78 #:use-module (gnu packages texinfo)
acf7d4a7 79 #:use-module (gnu packages tcl)
a7fd7b68 80 #:use-module (gnu packages tls)
4f028c8f 81 #:use-module (gnu packages pkg-config)
50efa797
LC
82 #:use-module (gnu packages xorg)
83 #:use-module (gnu packages lesstif)
e55354b8 84 #:use-module (gnu packages image)
504a83af 85 #:use-module (gnu packages linux)
9a4c9715 86 #:use-module (gnu packages version-control)
18d26210
MW
87 #:use-module (gnu packages imagemagick)
88 #:use-module (gnu packages w3m)
89925972 89 #:use-module (gnu packages wget)
18d26210 90 #:use-module (gnu packages autotools)
be379ee7 91 #:use-module (gnu packages base)
f61e0e79 92 #:use-module (gnu packages compression)
50efa797 93 #:use-module (gnu packages xml)
4a3e602c 94 #:use-module (gnu packages glib)
388fd01b 95 #:use-module (gnu packages acl)
b6efe0e8 96 #:use-module (gnu packages mail)
13fe4891 97 #:use-module (gnu packages package-management)
77c9286d 98 #:use-module (gnu packages perl)
ec9825d6 99 #:use-module (gnu packages pdf)
58a7dc13 100 #:use-module (gnu packages scheme)
41184943 101 #:use-module (gnu packages statistics)
77c9286d
LC
102 #:use-module (gnu packages xiph)
103 #:use-module (gnu packages mp3)
154c71e0 104 #:use-module (gnu packages gettext)
a80b60f4
AI
105 #:use-module (gnu packages fribidi)
106 #:use-module (gnu packages gd)
107 #:use-module (gnu packages fontutils)
03efe78c 108 #:use-module (gnu packages password-utils)
0bcb9258 109 #:use-module (gnu packages xdisorg)
15dcd292 110 #:use-module (gnu packages shells)
4a3e602c 111 #:use-module (guix utils)
87449013
AI
112 #:use-module (srfi srfi-1)
113 #:use-module (ice-9 match))
468bdabb
LC
114
115(define-public emacs
116 (package
117 (name "emacs")
2206c7ad 118 (version "26.1")
468bdabb
LC
119 (source (origin
120 (method url-fetch)
121 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 122 version ".tar.xz"))
468bdabb
LC
123 (sha256
124 (base32
2206c7ad 125 "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
fc1adab1 126 (patches (search-patches "emacs-exec-path.patch"
4509ec72 127 "emacs-fix-scheme-indent-function.patch"
0cdb6ab4 128 "emacs-source-date-epoch.patch"))
486f36eb
AK
129 (modules '((guix build utils)))
130 (snippet
131 ;; Delete the bundled byte-compiled elisp files and
132 ;; generated autoloads.
133 '(with-directory-excursion "lisp"
134 (for-each delete-file
135 (append (find-files "." "\\.elc$")
136 (find-files "." "loaddefs\\.el$")
137 ;; This is the only "autoloads" file that
138 ;; does not have "*loaddefs.el" name.
dc701091
LC
139 '("eshell/esh-groups.el")))
140
141 ;; Make sure Tramp looks for binaries in the right places on
142 ;; remote GuixSD machines, where 'getconf PATH' returns
143 ;; something bogus.
144 (substitute* "net/tramp-sh.el"
145 ;; Patch the line after "(defcustom tramp-remote-path".
146 (("\\(tramp-default-remote-path")
147 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
148 "~/.guix-profile/bin" "~/.guix-profile/sbin"
149 "/run/current-system/profile/bin"
d1c11418
OP
150 "/run/current-system/profile/sbin")))
151
152 ;; Make sure Man looks for C header files in the right
153 ;; places.
154 (substitute* "man.el"
155 (("\"/usr/local/include\"" line)
156 (string-join
157 (list line
158 "\"~/.guix-profile/include\""
159 "\"/var/guix/profiles/system/profile/include\"")
6cbee49d
MW
160 " ")))
161 #t))))
71f57158 162 (build-system glib-or-gtk-build-system)
468bdabb 163 (arguments
2206c7ad
MO
164 `(#:tests? #f ; no check target
165 #:phases
13fe4891
FB
166 (modify-phases %standard-phases
167 (add-before 'configure 'fix-/bin/pwd
168 (lambda _
169 ;; Use `pwd', not `/bin/pwd'.
170 (substitute* (find-files "." "^Makefile\\.in$")
171 (("/bin/pwd")
e2d90ee4
MW
172 "pwd"))
173 #t))
13fe4891 174 (add-after 'install 'install-site-start
59d04f63
AK
175 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
176 ;; provided by Guix and installed in
13fe4891
FB
177 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
178 ;; automatically found.
179 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
180 (let* ((out (assoc-ref outputs "out"))
181 (lisp-dir (string-append out "/share/emacs/site-lisp")))
182 (copy-file (assoc-ref inputs "guix-emacs.el")
183 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
184 (with-output-to-file (string-append lisp-dir "/site-start.el")
185 (lambda ()
9bd94544
AK
186 (display
187 (string-append "(when (require 'guix-emacs nil t)\n"
188 " (guix-emacs-autoload-packages))\n"))))
13fe4891 189 #t))))))
468bdabb 190 (inputs
c4c4cc05 191 `(("gnutls" ,gnutls)
468bdabb
LC
192 ("ncurses" ,ncurses)
193
194 ;; TODO: Add the optional dependencies.
fa275717 195 ("libx11" ,libx11)
0a9e9a63 196 ("gtk+" ,gtk+)
fa275717 197 ("libxft" ,libxft)
50efa797 198 ("libtiff" ,libtiff)
504a83af 199 ("giflib" ,giflib)
50efa797 200 ("libjpeg" ,libjpeg-8)
eb737a27 201 ("imagemagick" ,imagemagick)
388fd01b 202 ("acl" ,acl)
50efa797
LC
203
204 ;; When looking for libpng `configure' links with `-lpng -lz', so we
205 ;; must also provide zlib as an input.
206 ("libpng" ,libpng)
f61e0e79 207 ("zlib" ,zlib)
50efa797 208
8ba4dc63 209 ("librsvg" ,librsvg)
fa275717 210 ("libxpm" ,libxpm)
50efa797 211 ("libxml2" ,libxml2)
504a83af
MW
212 ("libice" ,libice)
213 ("libsm" ,libsm)
214 ("alsa-lib" ,alsa-lib)
13fe4891 215 ("dbus" ,dbus)
01c5c21a
AI
216
217 ;; multilingualization support
218 ("libotf" ,libotf)
219 ("m17n-lib" ,m17n-lib)))
c4c4cc05 220 (native-inputs
59d04f63
AK
221 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
222 ("pkg-config" ,pkg-config)
c4c4cc05 223 ("texinfo" ,texinfo)))
64c98347
LC
224
225 (native-search-paths
226 (list (search-path-specification
227 (variable "INFOPATH")
228 (files '("share/info")))))
229
6fd52309 230 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 231 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 232 (description
79c311b8
LC
233 "GNU Emacs is an extensible and highly customizable text editor. It is
234based on an Emacs Lisp interpreter with extensions for text editing. Emacs
235has been extended in essentially all areas of computing, giving rise to a
236vast array of packages supporting, e.g., email, IRC and XMPP messaging,
237spreadsheets, remote server editing, and much more. Emacs includes extensive
238documentation on all aspects of the system, from basic editing to writing
239large Lisp programs. It has full Unicode support for nearly all human
240languages.")
f61e0e79 241 (license license:gpl3+)))
4f028c8f 242
b2eaf7ba 243(define-public emacs-minimal
4fd540b7
LC
244 ;; This is the version that you should use as an input to packages that just
245 ;; need to byte-compile .el files.
b2eaf7ba
AK
246 (package (inherit emacs)
247 (name "emacs-minimal")
248 (synopsis "The extensible text editor (used only for byte-compilation)")
249 (build-system gnu-build-system)
250 (arguments
bd6a699d
RW
251 `(#:configure-flags (list "--with-gnutls=no")
252 ,@(substitute-keyword-arguments (package-arguments emacs)
253 ((#:phases phases)
254 `(modify-phases ,phases
255 (delete 'install-site-start))))))
b2eaf7ba
AK
256 (inputs
257 `(("ncurses" ,ncurses)))
258 (native-inputs
259 `(("pkg-config" ,pkg-config)))))
260
261(define-public emacs-no-x
4fd540b7 262 (package (inherit emacs)
4fd540b7
LC
263 (name "emacs-no-x")
264 (synopsis "The extensible, customizable, self-documenting text
265editor (console only)")
266 (build-system gnu-build-system)
267 (inputs (fold alist-delete
268 (package-inputs emacs)
269 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
4adde2a9
MW
270 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
271 "libsm"
4fd540b7 272
4adde2a9
MW
273 ;; These depend on libx11, so remove them as well.
274 "libotf" "m17n-lib" "dbus")))))
4fd540b7 275
4a3e602c
TUBK
276(define-public emacs-no-x-toolkit
277 (package (inherit emacs)
278 (name "emacs-no-x-toolkit")
279 (synopsis "The extensible, customizable, self-documenting text
280editor (without an X toolkit)" )
71f57158 281 (build-system gnu-build-system)
388fd01b
MW
282 (inputs (append `(("inotify-tools" ,inotify-tools))
283 (alist-delete "gtk+" (package-inputs emacs))))
284 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
285 (package-arguments emacs)))))
4a3e602c 286
f906d30c
CAW
287(define-public guile-emacs
288 (package (inherit emacs)
289 (name "guile-emacs")
290 (version "20150512.41120e0")
291 (source (origin
292 (method git-fetch)
293 (uri (git-reference
294 (url "git://git.hcoop.net/git/bpt/emacs.git")
295 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
995b7069 296 (file-name (string-append name "-" version "-checkout"))
68cb962a 297 (patches (search-patches "guile-emacs-fix-configure.patch"))
f906d30c
CAW
298 (sha256
299 (base32
300 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
301 (native-inputs
302 `(("autoconf" ,autoconf)
303 ("automake" ,automake)
304 ("guile" ,guile-for-guile-emacs)
305 ,@(package-native-inputs emacs)))
306 (arguments
307 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
308 #:parallel-build? #f
309 ;; Tests aren't passing for now.
310 #:tests? #f
311 ,@(package-arguments emacs))
312 ((#:phases phases)
313 `(modify-phases ,phases
314 (add-after 'unpack 'autogen
315 (lambda _
68cb962a
JN
316 (zero? (system* "sh" "autogen.sh"))))
317 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
318 (add-before 'build 'make-deps-dir
319 (lambda _
320 (zero? (system* "mkdir" "-p" "src/deps"))))))))))
f906d30c 321
4f028c8f
LC
322\f
323;;;
324;;; Emacs hacking.
325;;;
326
327(define-public geiser
328 (package
329 (name "geiser")
e9c3a780 330 (version "0.10")
4f028c8f
LC
331 (source (origin
332 (method url-fetch)
cf8f58b2
LC
333 (uri (string-append "mirror://savannah/geiser/" version
334 "/geiser-" version ".tar.gz"))
4f028c8f 335 (sha256
1f8ad12a 336 (base32
e9c3a780 337 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
4f028c8f 338 (build-system gnu-build-system)
d51cafb0 339 (arguments
dc1d3cde
KK
340 '(#:phases
341 (modify-phases %standard-phases
342 (add-after 'install 'post-install
343 (lambda* (#:key outputs #:allow-other-keys)
344 (symlink "geiser-install.el"
345 (string-append (assoc-ref outputs "out")
346 "/share/emacs/site-lisp/"
347 "geiser-autoloads.el"))
348 #t)))))
bc96a8b5 349 (inputs `(("guile" ,guile-2.2)))
b8fc3622 350 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 351 (home-page "https://nongnu.org/geiser/")
4f028c8f
LC
352 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
353 (description
9586011d
LC
354 "Geiser is a collection of Emacs major and minor modes that conspire with
355one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
356continuously running Scheme interpreter takes the center of the stage in
357Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
358implementation, Emacs and, ultimately, the schemer, giving them access to live
359metadata.")
f61e0e79 360 (license license:bsd-3)))
9a4c9715 361
fe4163f3
MW
362(define-public paredit
363 (package
967cfd18 364 (name "emacs-paredit")
c181b870 365 (version "24")
fe4163f3 366 (source (origin
c181b870
AK
367 (method url-fetch)
368 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
369 version ".el"))
370 (sha256
371 (base32
372 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 373 (build-system emacs-build-system)
fe4163f3
MW
374 (home-page "http://mumble.net/~campbell/emacs/paredit/")
375 (synopsis "Emacs minor mode for editing parentheses")
376 (description
377 "ParEdit (paredit.el) is a minor mode for performing structured editing
378of S-expression data. The typical example of this would be Lisp or Scheme
379source code.
380
381ParEdit helps **keep parentheses balanced** and adds many keys for moving
382S-expressions and moving around in S-expressions. Its behavior can be jarring
383for those who may want transient periods of unbalanced parentheses, such as
384when typing parentheses directly or commenting out code line by line.")
f61e0e79 385 (license license:gpl3+)))
fe4163f3 386
2f910ef6
LC
387(define-public git-modes
388 (package
6d21272b 389 (name "emacs-git-modes")
370ae985 390 (version "1.2.7")
2f910ef6
LC
391 (source (origin
392 (method url-fetch)
393 (uri (string-append
394 "https://github.com/magit/git-modes/archive/"
395 version ".tar.gz"))
8fd3c1ff 396 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
397 (sha256
398 (base32
370ae985 399 "1mzl70s0xyysnjq1j10mc5vn9i022n5vd82kxsgp4xxqq7gc4qnx"))))
3d01b293 400 (build-system emacs-build-system)
2f910ef6
LC
401 (home-page "https://github.com/magit/git-modes")
402 (synopsis "Emacs major modes for Git configuration files")
403 (description
404 "This package provides Emacs major modes for editing various Git
405configuration files, such as .gitattributes, .gitignore, and .git/config.")
406 (license license:gpl3+)))
407
6d21272b
AK
408(define-public git-modes/old-name
409 (deprecated-package "git-modes" git-modes))
410
2b0e4300
AK
411(define-public emacs-with-editor
412 (package
413 (name "emacs-with-editor")
cec021d1 414 (version "2.7.2")
2b0e4300
AK
415 (source (origin
416 (method url-fetch)
417 (uri (string-append
418 "https://github.com/magit/with-editor/archive/v"
419 version ".tar.gz"))
420 (file-name (string-append name "-" version ".tar.gz"))
421 (sha256
422 (base32
cec021d1 423 "1jqi3axcs0cb1pcv1jxxc2a09v6psrm33wwl6hmyshzl8kbxs2mv"))))
2b0e4300
AK
424 (build-system emacs-build-system)
425 (propagated-inputs
426 `(("emacs-dash" ,emacs-dash)))
427 (home-page "https://github.com/magit/with-editor")
428 (synopsis "Emacs library for using Emacsclient as EDITOR")
429 (description
430 "This package provides an Emacs library to use the Emacsclient as
431@code{$EDITOR} of child processes, making sure they know how to call home.
432For remote processes a substitute is provided, which communicates with Emacs
433on stdout instead of using a socket as the Emacsclient does.")
434 (license license:gpl3+)))
435
9a4c9715
MW
436(define-public magit
437 (package
438 (name "magit")
f61719d1 439 (version "2.12.1")
9a4c9715
MW
440 (source (origin
441 (method url-fetch)
fac8b30b
MW
442 (uri (string-append
443 "https://github.com/magit/magit/releases/download/"
444 version "/" name "-" version ".tar.gz"))
9a4c9715 445 (sha256
7e4871ba 446 (base32
f61719d1 447 "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3"))))
9a4c9715 448 (build-system gnu-build-system)
2c047b4a 449 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 450 ("emacs" ,emacs-minimal)))
46bd4515
AG
451 (inputs
452 `(("git" ,git)
453 ("perl" ,perl)))
3db5ed11
AK
454 (propagated-inputs
455 `(("dash" ,emacs-dash)
f61719d1
AK
456 ("ghub" ,emacs-ghub)
457 ("magit-popup" ,emacs-magit-popup)
3db5ed11 458 ("with-editor" ,emacs-with-editor)))
9a4c9715 459 (arguments
84fe4420 460 `(#:test-target "test"
55f29c39 461 #:tests? #f ; tests are not included in the release
7e4871ba 462
55f29c39
AK
463 #:make-flags
464 (list (string-append "PREFIX=" %output)
465 ;; Don't put .el files in a sub-directory.
466 (string-append "lispdir=" %output "/share/emacs/site-lisp")
467 (string-append "DASH_DIR="
468 (assoc-ref %build-inputs "dash")
469 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11 470 ,(package-version emacs-dash))
f61719d1
AK
471 (string-append "GHUB_DIR="
472 (assoc-ref %build-inputs "ghub")
473 "/share/emacs/site-lisp/guix.d/ghub-"
474 ,(package-version emacs-ghub))
475 (string-append "MAGIT_POPUP_DIR="
476 (assoc-ref %build-inputs "magit-popup")
477 "/share/emacs/site-lisp/guix.d/magit-popup-"
478 ,(package-version emacs-magit-popup))
3db5ed11
AK
479 (string-append "WITH_EDITOR_DIR="
480 (assoc-ref %build-inputs "with-editor")
481 "/share/emacs/site-lisp/guix.d/with-editor-"
482 ,(package-version emacs-with-editor)))
d41a8a07 483
9a4c9715 484 #:phases
c466bfd1 485 (modify-phases %standard-phases
55f29c39 486 (delete 'configure)
c466bfd1
LC
487 (add-before
488 'build 'patch-exec-paths
489 (lambda* (#:key inputs #:allow-other-keys)
84fe4420 490 (let ((perl (assoc-ref inputs "perl")))
46bd4515
AG
491 (substitute* "lisp/magit-sequence.el"
492 (("perl") (string-append perl "/bin/perl")))
55f29c39 493 #t))))))
f61719d1 494 (home-page "https://magit.vc/")
9a4c9715
MW
495 (synopsis "Emacs interface for the Git version control system")
496 (description
497 "With Magit, you can inspect and modify your Git repositories with Emacs.
498You can review and commit the changes you have made to the tracked files, for
499example, and you can browse the history of past changes. There is support for
500cherry picking, reverting, merging, rebasing, and other common Git
501operations.")
f61e0e79 502 (license license:gpl3+)))
18d26210 503
97cc51f8
LC
504(define-public magit-svn
505 (package
506 (name "magit-svn")
5ccd8f40 507 (version "2.2.0")
97cc51f8 508 (source (origin
be379ee7
AK
509 (method url-fetch)
510 (uri (string-append
511 "https://github.com/magit/magit-svn/archive/"
512 version ".tar.gz"))
513 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
514 (sha256
515 (base32
5ccd8f40 516 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
97cc51f8 517 (build-system trivial-build-system)
b8fc3622 518 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
519 ("tar" ,tar)
520 ("gzip" ,gzip)))
521 (propagated-inputs `(("dash" ,emacs-dash)
5ccd8f40 522 ("with-editor" ,emacs-with-editor)
be379ee7 523 ("magit" ,magit)))
97cc51f8
LC
524 (arguments
525 `(#:modules ((guix build utils)
526 (guix build emacs-utils))
527
528 #:builder
529 (begin
530 (use-modules (guix build utils)
531 (guix build emacs-utils))
532
be379ee7
AK
533 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
534 "/bin/tar"))
535 (PATH (string-append (assoc-ref %build-inputs "gzip")
536 "/bin"))
537 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
538 "/bin/emacs"))
539 (magit (string-append (assoc-ref %build-inputs "magit")
540 "/share/emacs/site-lisp"))
be379ee7
AK
541 (dash (string-append (assoc-ref %build-inputs "dash")
542 "/share/emacs/site-lisp/guix.d/dash-"
543 ,(package-version emacs-dash)))
5ccd8f40
LC
544 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
545 "/share/emacs/site-lisp/guix.d/with-editor-"
546 ,(package-version emacs-with-editor)))
97cc51f8
LC
547 (source (assoc-ref %build-inputs "source"))
548 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7 549 (setenv "PATH" PATH)
e3cfef22 550 (invoke tar "xvf" source)
96c46210
LC
551
552 (install-file (string-append ,name "-" ,version "/magit-svn.el")
553 lisp-dir)
97cc51f8
LC
554
555 (with-directory-excursion lisp-dir
556 (parameterize ((%emacs emacs))
557 (emacs-generate-autoloads ,name lisp-dir)
558 (setenv "EMACSLOADPATH"
5ccd8f40 559 (string-append ":" magit ":" dash ":" with-editor))
e3cfef22 560 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))
e3cfef22 561 #t))))
97cc51f8
LC
562 (home-page "https://github.com/magit/magit-svn")
563 (synopsis "Git-SVN extension to Magit")
564 (description
565 "This package is an extension to Magit, the Git Emacs mode, providing
566support for Git-SVN.")
567 (license license:gpl3+)))
568
c1562e3d
AK
569(define-public emacs-magit-popup
570 (package
571 (name "emacs-magit-popup")
1f22a544 572 (version "2.12.3")
c1562e3d
AK
573 (source (origin
574 (method url-fetch)
575 (uri (string-append
09f7c41d
AK
576 "https://github.com/magit/magit-popup/archive/v"
577 version ".tar.gz"))
578 (file-name (string-append name "-" version ".tar.gz"))
c1562e3d
AK
579 (sha256
580 (base32
1f22a544 581 "1kz6vj67awkwf9y2wj6m3l2him3znm08z6bkdvnmfr6rwd96dr39"))))
c1562e3d 582 (build-system emacs-build-system)
09f7c41d
AK
583 (arguments
584 `(#:phases
585 (modify-phases %standard-phases
586 (add-before 'install 'make-info
587 (lambda _
588 (zero? (system* "make" "info")))))))
589 (native-inputs
590 `(("texinfo" ,texinfo)))
c1562e3d
AK
591 (propagated-inputs
592 `(("emacs-dash" ,emacs-dash)))
09f7c41d 593 (home-page "https://github.com/magit/magit-popup")
c1562e3d
AK
594 (synopsis "Define prefix-infix-suffix command combos")
595 (description
596 "This library implements a generic interface for toggling switches and
597setting options and then invoking an Emacs command which does something with
598these arguments. The prototypical use is for the command to call an external
599process, passing on the arguments as command line arguments.")
600 (license license:gpl3+)))
601
0a287457
AK
602(define-public emacs-ghub
603 (package
604 (name "emacs-ghub")
605 (version "2.0.0")
606 (source (origin
607 (method url-fetch)
608 (uri (string-append
609 "https://github.com/magit/ghub/archive/v"
610 version ".tar.gz"))
611 (file-name (string-append name "-" version ".tar.gz"))
612 (sha256
613 (base32
614 "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc"))))
615 (build-system emacs-build-system)
616 (arguments
617 `(#:phases
618 (modify-phases %standard-phases
619 (add-before 'install 'make-info
620 (lambda _
621 (zero? (system* "make" "info")))))))
622 (native-inputs
623 `(("texinfo" ,texinfo)))
624 (home-page "https://github.com/magit/ghub")
625 (synopsis "Emacs client library for Github API and Gitlab API")
626 (description
627 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
628which are the libraries that provide basic support for using the Github and
629Gitlab APIs from Emacs packages. It abstracts access to API resources using
630only a handful of functions that are not resource-specific.")
631 (license license:gpl3+)))
632
00f4bd50
FB
633(define-public haskell-mode
634 (package
635 (name "haskell-mode")
08fc0d68 636 (version "16.1")
00f4bd50
FB
637 (source (origin
638 (method url-fetch)
639 (file-name (string-append name "-" version ".tar.gz"))
640 (uri (string-append
641 "https://github.com/haskell/haskell-mode/archive/v"
642 version ".tar.gz"))
643 (sha256
08fc0d68
FB
644 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
645 (inputs
646 `(("emacs-el-search" ,emacs-el-search) ; for tests
647 ("emacs-stream" ,emacs-stream))) ; for tests
648 (propagated-inputs
649 `(("emacs-dash" ,emacs-dash)))
00f4bd50 650 (native-inputs
b8fc3622 651 `(("emacs" ,emacs-minimal)
6aaf3899 652 ("texinfo" ,texinfo)))
00f4bd50
FB
653 (build-system gnu-build-system)
654 (arguments
655 `(#:make-flags (list (string-append "EMACS="
656 (assoc-ref %build-inputs "emacs")
657 "/bin/emacs"))
08fc0d68
FB
658 #:modules ((ice-9 match)
659 (srfi srfi-26)
660 ,@%gnu-build-system-modules)
00f4bd50
FB
661 #:phases
662 (modify-phases %standard-phases
663 (delete 'configure)
664 (add-before
665 'build 'pre-build
666 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68 667 (define (el-dir store-dir)
69611d3e 668 (match (find-files store-dir "\\.el$")
08fc0d68
FB
669 ((f1 f2 ...) (dirname f1))
670 (_ "")))
671
00f4bd50 672 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
673 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
674
00f4bd50 675 (setenv "SHELL" "sh")
08fc0d68
FB
676 (setenv "EMACSLOADPATH"
677 (string-concatenate
678 (map (match-lambda
679 (((? emacs-prefix? name) . dir)
680 (string-append (el-dir dir) ":"))
681 (_ ""))
682 inputs)))
00f4bd50 683 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
684 (substitute* "tests/haskell-code-conventions.el"
685 ;; Function name recently changed in "emacs-el-search".
686 (("el-search--search-pattern") "el-search-forward")
687 ;; Don't contact home.
688 (("\\(when \\(>= emacs-major-version 25\\)")
689 "(require 'el-search) (when nil"))
00f4bd50
FB
690 #t)))
691 (replace
692 'install
693 (lambda* (#:key outputs #:allow-other-keys)
694 (let* ((out (assoc-ref outputs "out"))
695 (el-dir (string-append out "/share/emacs/site-lisp"))
696 (doc (string-append
697 out "/share/doc/haskell-mode-" ,version))
698 (info (string-append out "/share/info")))
699 (define (copy-to-dir dir files)
96c46210
LC
700 (for-each (lambda (f)
701 (install-file f dir))
702 files))
00f4bd50
FB
703
704 (with-directory-excursion "doc"
705 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
706 (error "makeinfo failed"))
96c46210 707 (install-file "haskell-mode.info" info))
00f4bd50
FB
708 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
709 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 710 ;; These are part of other packages.
00f4bd50 711 (with-directory-excursion el-dir
08fc0d68 712 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
713 #t))))))
714 (home-page "https://github.com/haskell/haskell-mode")
715 (synopsis "Haskell mode for Emacs")
716 (description
717 "This is an Emacs mode for editing, debugging and developing Haskell
718programs.")
719 (license license:gpl3+)))
720
6e3fdbbe
LC
721(define-public flycheck
722 (package
723 (name "emacs-flycheck")
6ae0fd21 724 (version "31")
6e3fdbbe
LC
725 (source (origin
726 (method url-fetch)
0b928076
AK
727 (uri (string-append
728 "https://github.com/flycheck/flycheck/releases/download/"
729 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
730 (sha256
731 (base32
6ae0fd21 732 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))))
6e3fdbbe
LC
733 (build-system emacs-build-system)
734 (propagated-inputs
d0a52052 735 `(("emacs-dash" ,emacs-dash)))
6e3fdbbe
LC
736 (home-page "https://www.flycheck.org")
737 (synopsis "On-the-fly syntax checking")
738 (description
739 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
740replacement for the older Flymake extension which is part of GNU Emacs, with
741many improvements and additional features.
742
743Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
744checking for over 30 programming and markup languages with more than 70
745different tools. It highlights errors and warnings inline in the buffer, and
746provides an optional IDE-like error list.")
747 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
748
18d26210
MW
749\f
750;;;
751;;; Web browsing.
752;;;
753
754(define-public emacs-w3m
5ede50b8
LC
755 ;; Emacs-w3m follows a "rolling release" model from its CVS repo. We could
756 ;; use CVS, sure, but instead we choose to use this Git mirror described on
757 ;; the home page as an "unofficial" mirror.
758 (let ((commit "0dd5691f46d314a84da63f3a7277d721815811a2"))
759 (package
760 (name "emacs-w3m")
761 (version (git-version "1.5" "0" commit))
762 (source (origin
763 (method git-fetch)
764 (uri (git-reference
765 (url "https://github.com/ecbrown/emacs-w3m")
766 (commit commit)))
767 (sha256
768 (base32
769 "02xalyxbrkgl4n8nj7xxkmsbm6lshhwdc8bzs2l4wz3hkpgkj7x4"))))
770 (build-system gnu-build-system)
771 (native-inputs `(("autoconf" ,autoconf)
772 ("texinfo" ,texinfo)
773 ("emacs" ,emacs-minimal)))
774 (inputs `(("w3m" ,w3m)
775 ("imagemagick" ,imagemagick)))
776 (arguments
777 `(#:modules ((guix build gnu-build-system)
778 (guix build utils)
779 (guix build emacs-utils))
780 #:imported-modules (,@%gnu-build-system-modules
781 (guix build emacs-utils))
782 #:configure-flags
783 (let ((out (assoc-ref %outputs "out")))
784 (list (string-append "--with-lispdir="
785 out "/share/emacs/site-lisp")
786 (string-append "--with-icondir="
787 out "/share/images/emacs-w3m")
788 ;; Leave .el files uncompressed, otherwise GC can't
789 ;; identify run-time dependencies. See
790 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
791 "--without-compress-install"))
792 #:tests? #f ; no check target
793 #:phases
794 (modify-phases %standard-phases
795 (add-after 'unpack 'autoconf
796 (lambda _
797 (zero? (system* "autoconf"))))
798 (add-before 'configure 'support-emacs!
799 (lambda _
800 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
801 ;; unsupported.
802 (substitute* "configure"
803 (("EMACS_FLAVOR=unsupported")
804 "EMACS_FLAVOR=emacs"))
805 #t))
806 (add-before 'build 'patch-exec-paths
807 (lambda* (#:key inputs outputs #:allow-other-keys)
808 (let ((out (assoc-ref outputs "out"))
809 (w3m (assoc-ref inputs "w3m"))
810 (imagemagick (assoc-ref inputs "imagemagick"))
811 (coreutils (assoc-ref inputs "coreutils")))
812 (make-file-writable "w3m.el")
813 (emacs-substitute-variables "w3m.el"
814 ("w3m-command" (string-append w3m "/bin/w3m"))
815 ("w3m-touch-command"
816 (string-append coreutils "/bin/touch"))
817 ("w3m-icon-directory"
818 (string-append out "/share/images/emacs-w3m")))
819 (make-file-writable "w3m-image.el")
820 (emacs-substitute-variables "w3m-image.el"
821 ("w3m-imagick-convert-program"
822 (string-append imagemagick "/bin/convert"))
823 ("w3m-imagick-identify-program"
824 (string-append imagemagick "/bin/identify")))
825 #t)))
826 (replace 'install
827 (lambda* (#:key outputs #:allow-other-keys)
828 (and (zero? (system* "make" "install" "install-icons"))
829 (with-directory-excursion
830 (string-append (assoc-ref outputs "out")
831 "/share/emacs/site-lisp")
832 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
833 (symlink "w3m-load.el" "w3m-autoloads.el")
834 #t)))))))
835 (home-page "http://emacs-w3m.namazu.org/")
836 (synopsis "Simple Web browser for Emacs based on w3m")
837 (description
838 "Emacs-w3m is an emacs interface for the w3m web browser.")
839 (license license:gpl2+))))
89925972
MW
840
841(define-public emacs-wget
842 (package
843 (name "emacs-wget")
844 (version "0.5.0")
845 (source (origin
846 (method url-fetch)
847 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
848 version ".orig.tar.gz"))
849 (sha256
850 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
851 (build-system gnu-build-system)
6aaf3899 852 (inputs `(("wget" ,wget)))
b8fc3622 853 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 854 (arguments
caaf1933 855 `(#:modules ((guix build gnu-build-system)
89925972
MW
856 (guix build utils)
857 (guix build emacs-utils))
caaf1933 858 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
859 (guix build emacs-utils))
860 #:tests? #f ; no check target
861 #:phases
dc1d3cde
KK
862 (modify-phases %standard-phases
863 (replace 'configure
864 (lambda* (#:key outputs #:allow-other-keys)
865 (substitute* "Makefile"
866 (("/usr/local") (assoc-ref outputs "out"))
867 (("/site-lisp/emacs-wget") "/site-lisp"))
868 #t))
869 (add-before 'build 'patch-exec-paths
870 (lambda* (#:key inputs outputs #:allow-other-keys)
871 (let ((wget (assoc-ref inputs "wget")))
872 (emacs-substitute-variables "wget.el"
873 ("wget-command" (string-append wget "/bin/wget"))))
874 #t))
875 (add-after 'install 'post-install
876 (lambda* (#:key outputs #:allow-other-keys)
877 (emacs-generate-autoloads
878 "wget" (string-append (assoc-ref outputs "out")
879 "/share/emacs/site-lisp/"))
880 #t)))))
89925972 881 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 882 (synopsis "Simple file downloader for Emacs based on wget")
89925972 883 (description
35b9e423 884 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 885 (license license:gpl2+)))
77c9286d
LC
886
887\f
888;;;
889;;; Multimedia.
890;;;
891
892(define-public emms
893 (package
d06d4d7b 894 (name "emacs-emms")
6a65b701 895 (version "5.0")
77c9286d
LC
896 (source (origin
897 (method url-fetch)
898 (uri (string-append "mirror://gnu/emms/emms-"
899 version ".tar.gz"))
900 (sha256
901 (base32
6a65b701 902 "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
77c9286d
LC
903 (modules '((guix build utils)))
904 (snippet
6cbee49d
MW
905 '(begin
906 (substitute* "Makefile"
907 (("/usr/bin/install-info")
908 ;; No need to use 'install-info' since it would create a
909 ;; useless 'dir' file.
910 "true")
911 (("^INFODIR=.*")
912 ;; Install Info files to $out/share/info, not $out/info.
913 "INFODIR := $(PREFIX)/share/info\n")
914 (("/site-lisp/emms")
915 ;; Install directly in share/emacs/site-lisp, not in a
916 ;; sub-directory.
917 "/site-lisp")
918 (("^all: (.*)\n" _ rest)
919 ;; Build 'emms-print-metadata'.
920 (string-append "all: " rest " emms-print-metadata\n")))
921 #t))))
77c9286d
LC
922 (build-system gnu-build-system)
923 (arguments
caaf1933 924 `(#:modules ((guix build gnu-build-system)
77c9286d 925 (guix build utils)
80c0f69c
RW
926 (guix build emacs-utils)
927 (ice-9 ftw))
caaf1933 928 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
929 (guix build emacs-utils))
930
2fe176be
EF
931 #:phases
932 (modify-phases %standard-phases
933 (replace 'configure
934 (lambda* (#:key inputs outputs #:allow-other-keys)
935 (let ((out (assoc-ref outputs "out"))
66e55700 936 (flac (assoc-ref inputs "flac"))
2fe176be
EF
937 (vorbis (assoc-ref inputs "vorbis-tools"))
938 (alsa (assoc-ref inputs "alsa-utils"))
939 (mpg321 (assoc-ref inputs "mpg321"))
940 (mp3info (assoc-ref inputs "mp3info")))
941 ;; Specify the installation directory.
942 (substitute* "Makefile"
943 (("PREFIX=.*$")
944 (string-append "PREFIX := " out "\n")))
945
946 (setenv "SHELL" (which "sh"))
947 (setenv "CC" "gcc")
948
949 ;; Specify the absolute file names of the various
950 ;; programs so that everything works out-of-the-box.
951 (with-directory-excursion "lisp"
952 (emacs-substitute-variables
953 "emms-player-mpg321-remote.el"
954 ("emms-player-mpg321-remote-command"
955 (string-append mpg321 "/bin/mpg321")))
956 (substitute* "emms-player-simple.el"
957 (("\"ogg123\"")
958 (string-append "\"" vorbis "/bin/ogg123\"")))
66e55700
MC
959 (substitute* "emms-player-simple.el"
960 (("\"mpg321\"")
961 (string-append "\"" mpg321 "/bin/mpg321\"")))
2fe176be
EF
962 (emacs-substitute-variables "emms-info-ogginfo.el"
963 ("emms-info-ogginfo-program-name"
964 (string-append vorbis "/bin/ogginfo")))
965 (emacs-substitute-variables "emms-info-libtag.el"
966 ("emms-info-libtag-program-name"
967 (string-append out "/bin/emms-print-metadata")))
968 (emacs-substitute-variables "emms-info-mp3info.el"
969 ("emms-info-mp3info-program-name"
970 (string-append mp3info "/bin/mp3info")))
66e55700
MC
971 (emacs-substitute-variables "emms-info-metaflac.el"
972 ("emms-info-metaflac-program-name"
973 (string-append flac "/bin/metaflac")))
974 (emacs-substitute-variables "emms-source-file.el"
975 ("emms-source-file-gnu-find" (which "find")))
2fe176be
EF
976 (substitute* "emms-volume-amixer.el"
977 (("\"amixer\"")
978 (string-append "\"" alsa "/bin/amixer\"")))
979 (substitute* "emms-tag-editor.el"
980 (("\"mp3info\"")
981 (string-append "\"" mp3info "/bin/mp3info\"")))))))
982 (add-before 'install 'pre-install
983 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 984 ;; The 'install' rule expects the target directories to exist.
2fe176be 985 (let* ((out (assoc-ref outputs "out"))
c3a10d30 986 (bin (string-append out "/bin"))
2fe176be 987 (man1 (string-append out "/share/man/man1")))
c3a10d30 988 (mkdir-p bin)
2fe176be 989 (mkdir-p man1)
80c0f69c
RW
990
991 ;; Ensure that files are not rejected by gzip
992 (let ((early-1980 315619200)) ; 1980-01-02 UTC
993 (ftw "." (lambda (file stat flag)
994 (unless (<= early-1980 (stat:mtime stat))
995 (utime file early-1980 early-1980))
996 #t)))
2fe176be
EF
997 #t)))
998 (add-after 'install 'post-install
999 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 1000 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
1001 (symlink "emms-auto.el"
1002 (string-append out "/share/emacs/site-lisp/"
80c0f69c
RW
1003 "emms-autoloads.el")))
1004 #t)))
77c9286d 1005 #:tests? #f))
b8fc3622 1006 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 1007 ("texinfo" ,texinfo)))
c72aed6d 1008 (inputs `(("alsa-utils" ,alsa-utils)
66e55700 1009 ("flac" ,flac) ;for metaflac
77c9286d
LC
1010 ("vorbis-tools" ,vorbis-tools)
1011 ("mpg321" ,mpg321)
1012 ("taglib" ,taglib)
1013 ("mp3info" ,mp3info)))
38cb4766 1014 (properties '((upstream-name . "emms")))
77c9286d
LC
1015 (synopsis "Emacs Multimedia System")
1016 (description
1017 "EMMS is the Emacs Multimedia System. It is a small front-end which
1018can control one of the supported external players. Thus, it supports
1019whatever formats are supported by your music player. It also
1020supports tagging and playlist management, all behind a clean and
1021light user interface.")
6fd52309 1022 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 1023 (license license:gpl3+)))
c7e553a3 1024
1095bd1d
RW
1025(define-public emacs-emms-player-mpv
1026 (package
1027 (name "emacs-emms-player-mpv")
de893dda 1028 (version "0.1.0")
1095bd1d
RW
1029 (source
1030 (origin
1031 (method url-fetch)
1032 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
1033 version ".tar.gz"))
1034 (file-name (string-append name "-" version ".tar.gz"))
1035 (sha256
1036 (base32
de893dda 1037 "05qwbagc4i7yn7i94r1hdgj6wc5xijy1pxqv08pwsmli9rqj51n9"))))
1095bd1d
RW
1038 (build-system emacs-build-system)
1039 (propagated-inputs
1040 `(("emms" ,emms)))
1041 (home-page "https://github.com/dochang/emms-player-mpv/")
1042 (synopsis "Mpv support for EMMS")
1043 (description
1044 "This package provides an EMMS player that uses mpv. It supports pause
1045and seeking.")
1046 (license license:gpl3+)))
1047
2316078a
RW
1048(define-public emacs-emms-mode-line-cycle
1049 (package
1050 (name "emacs-emms-mode-line-cycle")
1051 (version "0.2.5")
1052 (source
1053 (origin
1054 (method url-fetch)
1055 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1056 "/archive/" version ".tar.gz"))
1057 (file-name (string-append name "-" version ".tar.gz"))
1058 (sha256
1059 (base32
1060 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1061 (build-system emacs-build-system)
1062 (propagated-inputs
1063 `(("emms" ,emms)))
1064 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1065 (synopsis "Display the EMMS mode line as a ticker")
1066 (description
1067 "This is a minor mode for updating the EMMS mode-line string cyclically
1068within a specified width. It is useful for displaying long track titles.")
1069 (license license:gpl3+)))
1070
c7e553a3
LC
1071\f
1072;;;
1073;;; Miscellaneous.
1074;;;
1075
1076(define-public bbdb
1077 (package
1078 (name "bbdb")
1079 (version "3.1.2")
1080 (source (origin
1081 (method url-fetch)
1082 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1083 version ".tar.gz"))
1084 (sha256
1085 (base32
1086 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1087 (modules '((guix build utils)))
1088 (snippet
1089 ;; We don't want to build and install the PDF.
6cbee49d
MW
1090 '(begin
1091 (substitute* "doc/Makefile.in"
1092 (("^doc_DATA = .*$")
1093 "doc_DATA =\n"))
1094 #t))))
c7e553a3
LC
1095 (build-system gnu-build-system)
1096 (arguments
dc1d3cde
KK
1097 '(#:phases
1098 (modify-phases %standard-phases
1099 (add-after 'install 'post-install
1100 (lambda* (#:key outputs #:allow-other-keys)
1101 ;; Add an autoloads file with the right name for guix.el.
1102 (let* ((out (assoc-ref outputs "out"))
1103 (site (string-append out "/share/emacs/site-lisp")))
1104 (with-directory-excursion site
1105 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1106 #t)))))
b8fc3622 1107 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 1108 (home-page "https://savannah.nongnu.org/projects/bbdb/")
c7e553a3
LC
1109 (synopsis "Contact management utility for Emacs")
1110 (description
1111 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1112an address book for email and snail mail addresses, phone numbers and the
1113like. It can be linked with various Emacs mail clients (Message and Mail
1114mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1115 (license license:gpl3+)))
78395334 1116
4d3d3bd2
VD
1117(define-public emacs-aggressive-indent
1118 (package
1119 (name "emacs-aggressive-indent")
1120 (version "1.8.3")
1121 (source (origin
1122 (method url-fetch)
1123 (uri (string-append "https://elpa.gnu.org/packages/"
1124 "aggressive-indent-" version ".el"))
1125 (sha256
1126 (base32
1127 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1128 (build-system emacs-build-system)
1129 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1130 (synopsis "Minor mode to aggressively keep your code always indented")
1131 (description
1132 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1133always indented. It reindents after every change, making it more reliable
1134than @code{electric-indent-mode}.")
1135 (license license:gpl2+)))
1136
cf006d2e
CB
1137(define-public emacs-ag
1138 (package
1139 (name "emacs-ag")
1140 (version "0.47")
1141 (source (origin
1142 (method url-fetch)
1143 (uri (string-append
1144 "https://github.com/Wilfred/ag.el/archive/"
1145 version ".tar.gz"))
1146 (file-name (string-append name "-" version ".tar.gz"))
1147 (sha256
1148 (base32
1149 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1150 (build-system emacs-build-system)
1151 (arguments
1152 `(#:phases
1153 (modify-phases %standard-phases
99517d92
GC
1154 (add-before 'install 'make-info
1155 (lambda _
1156 (with-directory-excursion "docs"
1157 (zero? (system* "make" "info")))))
1158 (add-after 'install 'install-info
1159 (lambda* (#:key outputs #:allow-other-keys)
1160 (let* ((out (assoc-ref outputs "out"))
1161 (info (string-append out "/share/info")))
1162 (install-file "docs/_build/texinfo/agel.info" info)
1163 #t))))))
99517d92
GC
1164 (native-inputs
1165 `(("python-sphinx" ,python-sphinx)
1166 ("texinfo" ,texinfo)))
cf006d2e
CB
1167 (propagated-inputs
1168 `(("dash" ,emacs-dash)
86470421
CL
1169 ("s" ,emacs-s)
1170 ;; We need to use 'ag' as the executable on remote systems.
1171 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1172 (home-page "https://github.com/Wilfred/ag.el")
1173 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1174 (description "This package provides the ability to use the silver
1175searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1176include version control system awareness, use of Perl compatible regular
1177expressions, editing the search results directly and searching file names
1178rather than the contents of files.")
1179 (license license:gpl3+)))
1180
b654de6d
AK
1181(define-public emacs-async
1182 (package
1183 (name "emacs-async")
51ef4af6 1184 (version "1.9.2")
b654de6d
AK
1185 (source (origin
1186 (method url-fetch)
f32ffa04 1187 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1188 version ".tar"))
1189 (sha256
1190 (base32
51ef4af6 1191 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
b654de6d 1192 (build-system emacs-build-system)
f32ffa04 1193 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
1194 (synopsis "Asynchronous processing in Emacs")
1195 (description
1196 "This package provides the ability to call asynchronous functions and
1197processes. For example, it can be used to run dired commands (for copying,
1198moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1199as a library for other Emacs packages.")
1200 (license license:gpl3+)))
1201
78395334
FB
1202(define-public emacs-auctex
1203 (package
1204 (name "emacs-auctex")
7f9866a3 1205 (version "12.1.0")
78395334
FB
1206 (source
1207 (origin
1208 (method url-fetch)
1209 (uri (string-append
f32ffa04 1210 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1211 version
1212 ".tar"))
1213 (sha256
1214 (base32
7f9866a3 1215 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
78395334 1216 (build-system emacs-build-system)
a6eafbed
AK
1217 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1218 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1219 (arguments
1220 `(#:emacs ,emacs
1221 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1222 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1223 (native-inputs
1224 `(("perl" ,perl)))
6fd52309 1225 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1226 (synopsis "Integrated environment for TeX")
1227 (description
1228 "AUCTeX is a comprehensive customizable integrated environment for
1229writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1230or XEmacs.")
1231 (license license:gpl3+)))
85ef742c 1232
de2e402b
MM
1233(define-public emacs-autothemer
1234 (package
1235 (name "emacs-autothemer")
1236 (version "0.2.2")
1237 (source
1238 (origin
1239 (method url-fetch)
1240 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1241 version ".tar.gz"))
1242 (file-name (string-append name "-" version ".tar.gz"))
1243 (sha256
1244 (base32
1245 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1246 (build-system emacs-build-system)
1247 (propagated-inputs
1248 `(("emacs-dash" ,emacs-dash)))
1249 (home-page "https://github.com/sebastiansturm/autothemer")
1250 (synopsis "Conveniently create Emacs themes")
1251 (description
1252 "Autothemer provides a thin layer on top of @code{deftheme} and
1253@code{custom-theme-set-faces} that creates a new custom color theme, based on
1254a set of simplified face specifications and a user-supplied color palette")
1255 (license license:gpl3+)))
1256
474e14f7
MC
1257(define-public emacs-howm
1258 (package
1259 (name "emacs-howm")
1260 (version "1.4.4")
1261 (source
1262 (origin
1263 (method url-fetch)
1264 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1265 version ".tar.gz"))
1266 (sha256
1267 (base32
1268 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1269 (build-system gnu-build-system)
1270 (native-inputs
1271 `(("emacs" ,emacs-minimal)))
1272 (arguments
1273 `(#:configure-flags
1274 (list (string-append "--with-howmdir=" %output
1275 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1276 #:modules ((guix build gnu-build-system)
1277 ((guix build emacs-build-system) #:prefix emacs:)
1278 (guix build utils))
1279 #:imported-modules (,@%gnu-build-system-modules
1280 (guix build emacs-build-system)
1281 (guix build emacs-utils))
1282 #:phases
1283 (modify-phases %standard-phases
1284 (add-after 'rename-lispdir 'make-autoloads
1285 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1286 (home-page "http://howm.osdn.jp/")
1287 (synopsis "Note-taking tool for Emacs")
1288 (description "Howm is a note-taking tool for Emacs. Like
1289code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1290searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1291 (license license:gpl1+)))
1292
36890436
VD
1293(define-public emacs-calfw
1294 (package
1295 (name "emacs-calfw")
1296 (version "1.5")
1297 (source
1298 (origin
1299 (method url-fetch)
1300 (uri (string-append
1301 "https://github.com/kiwanami/emacs-calfw/archive/v"
1302 version ".tar.gz"))
1303 (file-name (string-append name "-" version ".tar.gz"))
1304 (sha256
1305 (base32
1306 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1307 (build-system emacs-build-system)
159d10ae
MC
1308 (propagated-inputs
1309 `(("emacs-howm" ,emacs-howm)))
36890436
VD
1310 (home-page "https://github.com/kiwanami/emacs-calfw/")
1311 (synopsis "Calendar framework for Emacs")
1312 (description
9dac2a8e
RW
1313 "This package displays a calendar view with various schedule data in the
1314Emacs buffer.")
36890436
VD
1315 (license license:gpl3+)))
1316
a8d0c9cb
CB
1317(define-public emacs-direnv
1318 (package
1319 (name "emacs-direnv")
1320 (version "1.2.0")
1321 (source
1322 (origin
1323 (method url-fetch)
1324 (uri (string-append
1325 "https://github.com/wbolster/emacs-direnv/archive/"
1326 version ".tar.gz"))
1327 (file-name (string-append name "-" version ".tar.gz"))
1328 (sha256
1329 (base32
1330 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1331 (build-system emacs-build-system)
1332 (propagated-inputs
1333 `(("dash" ,emacs-dash)
1334 ("with-editor" ,emacs-with-editor)))
1335 (home-page "https://github.com/wbolster/emacs-direnv")
1336 (synopsis "Direnv integration for Emacs")
1337 (description
1338 "This package provides support for invoking direnv to get the environment
1339for the current file and updating the environment within Emacs to match.
1340
1341Direnv can be invoked manually, and a global minor mode is included that will
1342update the environment when the active buffer changes.
1343
1344Using emacs-direnv means that programs started from Emacs will use the
1345environment set through Direnv.")
1346 (license license:gpl3+)))
1347
cd5c3979
OP
1348(define-public emacs-ggtags
1349 (package
1350 (name "emacs-ggtags")
1351 (version "0.8.12")
1352 (source
1353 (origin
1354 (method url-fetch)
1355 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1356 version ".el"))
1357 (sha256
1358 (base32
1359 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1360 (build-system emacs-build-system)
1361 (home-page "https://github.com/leoliu/ggtags")
1362 (synopsis "Frontend to the GNU Global source code tagging system")
1363 (description "@code{ggtags} provides a frontend to the GNU Global source
1364code tagging system.
1365
1366Features:
1367
1368@itemize
1369@item Build on @code{compile.el} for asynchronicity and its large feature-set.
1370@item Automatically update Global's tag files when needed with tuning for
1371large source trees.
1372@item Intuitive navigation among multiple matches with mode-line display of
1373current match, total matches and exit status.
1374@item Read tag with completion.
1375@item Show definition at point.
1376@item Jump to #include files.
1377@item Support search history and saving a search to register/bookmark.
1378@item Query replace.
1379@item Manage Global's environment variables on a per-project basis.
1380@item Highlight (definition) tag at point.
1381@item Abbreviated display of file names.
1382@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1383@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1384@code{pygments} backend.
1385@item Support all Global's output formats: @code{grep}, @code{ctags-x},
1386@code{cscope} etc.
1387@item Support projects on remote hosts (e.g. via @code{tramp}).
1388@item Support eldoc.
1389@item Search @code{GTAGSLIBPATH} for references and symbols.
1390@end itemize\n")
1391 (license license:gpl3+)))
1392
21a656f5
CB
1393(define-public emacs-go-mode
1394 (package
1395 (name "emacs-go-mode")
1396 (version "1.5.0")
1397 (source (origin
1398 (method url-fetch)
1399 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1400 "archive/v" version ".tar.gz"))
1401 (file-name (string-append name "-" version ".tar.gz"))
1402 (sha256
1403 (base32
1404 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1405 (build-system emacs-build-system)
1406 (home-page "https://github.com/dominikh/go-mode.el")
1407 (synopsis "Go mode for Emacs")
1408 (description
1409 "This package provides go-mode, an Emacs mode for working with software
1410written in the Go programming language.")
1411 (license license:bsd-3)))
1412
63878730
VD
1413(define-public emacs-google-maps
1414 (package
1415 (name "emacs-google-maps")
1416 (version "1.0.0")
1417 (source (origin
1418 (method url-fetch)
1419 (uri (string-append "https://github.com/jd/google-maps.el/"
1420 "archive/" version ".tar.gz"))
1421 (file-name (string-append name "-" version ".tar.gz"))
1422 (sha256
1423 (base32
1424 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1425 (build-system emacs-build-system)
1426 (home-page "https://github.com/jd/google-maps.el")
1427 (synopsis "Access Google Maps from Emacs")
1428 (description "The @code{google-maps} package allows to display Google
1429Maps directly inside Emacs.")
1430 (license license:gpl3+)))
1431
1f37465a
CB
1432(define-public emacs-graphviz-dot-mode
1433 (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
1434 (revision "1"))
1435 (package
1436 (name "emacs-graphviz-dot-mode")
1437 (version (string-append "0.3.10-" revision "."
1438 (string-take commit 7)))
1439 (source (origin
1440 (method git-fetch)
1441 (uri (git-reference
1442 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1443 (commit commit)))
1444 (file-name (string-append name "-" version "-checkout"))
1445 (sha256
1446 (base32
1447 "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
1448 (build-system emacs-build-system)
1449 (arguments
1450 `(#:phases
1451 (modify-phases %standard-phases
1452 (add-before 'install 'make-info
1453 (lambda* (#:key inputs #:allow-other-keys)
1454 (with-directory-excursion "texinfo"
1455 (substitute* "Makefile"
1456 (("\\/usr\\/bin\\/gzip")
1457 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1458 (zero?
1459 (system* "make"
1460 "clean"
1461 "info"
1462 (string-append "TEXINFODIR="
1463 (assoc-ref inputs "texinfo")
1464 "/bin"))))))
1465 (add-after 'install 'install-info
1466 (lambda* (#:key outputs #:allow-other-keys)
1467 (let* ((out (assoc-ref outputs "out"))
1468 (info (string-append out "/share/info")))
1469 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1470 #t))))))
1471 (native-inputs
1472 `(("texinfo" ,texinfo)
1473 ("gzip" ,gzip)))
1474 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1475 (synopsis "Major mode for editing Graphviz Dot files")
1476 (description
1477 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1478files using the dot syntax, and use Graphviz to convert these files to
1479diagrams.")
1480 (license license:gpl2+))))
1481
85ef742c
FB
1482(define-public emacs-mmm-mode
1483 (package
1484 (name "emacs-mmm-mode")
810cd037 1485 (version "0.5.5")
85ef742c
FB
1486 (source
1487 (origin
1488 (method url-fetch)
1489 (uri (string-append
0c909c05
AK
1490 "https://github.com/purcell/mmm-mode/archive/"
1491 version ".tar.gz"))
1492 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1493 (sha256
1494 (base32
810cd037 1495 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
0c909c05
AK
1496 (build-system gnu-build-system)
1497 (arguments
1498 '(#:phases
1499 (modify-phases %standard-phases
1500 (add-after 'unpack 'autogen
1501 (lambda _
1502 (zero? (system* "sh" "autogen.sh")))))))
1503 (native-inputs
1504 `(("autoconf" ,autoconf)
1505 ("automake" ,automake)
b8fc3622 1506 ("emacs" ,emacs-minimal)
0c909c05 1507 ("texinfo" ,texinfo)))
85ef742c 1508 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1509 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1510 (description
0c909c05 1511 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1512single buffer.")
1513 (license license:gpl3+)))
ec9825d6 1514
060348d2
AK
1515(define-public emacs-tablist
1516 (package
1517 (name "emacs-tablist")
1518 (version "0.70")
1519 (source (origin
1520 (method url-fetch)
1521 (uri (string-append
1522 "https://github.com/politza/tablist/archive/v"
1523 version ".tar.gz"))
1524 (file-name (string-append name "-" version ".tar.gz"))
1525 (sha256
1526 (base32
1527 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1528 (build-system emacs-build-system)
1529 (home-page "https://github.com/politza/tablist")
1530 (synopsis "Extension for @code{tabulated-list-mode}")
1531 (description "Tablist is the Emacs package that provides several
1532additional features to @code{tabulated-list-mode}: it adds marks,
1533filters, new key bindings and faces. It can be enabled by
1534@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1535 (license license:gpl3+)))
1536
ec9825d6
RW
1537(define-public emacs-pdf-tools
1538 (package
1539 (name "emacs-pdf-tools")
1210046d 1540 (version "0.80")
ec9825d6
RW
1541 (source (origin
1542 (method url-fetch)
1543 (uri (string-append
1544 "https://github.com/politza/pdf-tools/archive/v"
1545 version ".tar.gz"))
1546 (file-name (string-append name "-" version ".tar.gz"))
1547 (sha256
1548 (base32
1210046d 1549 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
ec9825d6
RW
1550 (build-system gnu-build-system)
1551 (arguments
1552 `(#:tests? #f ; there are no tests
1553 #:modules ((guix build gnu-build-system)
1bcae5c5 1554 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1555 (guix build utils)
1556 (guix build emacs-utils))
1557 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1558 (guix build emacs-build-system)
ec9825d6
RW
1559 (guix build emacs-utils))
1560 #:phases
1561 (modify-phases %standard-phases
1bcae5c5
AK
1562 ;; Build server side using 'gnu-build-system'.
1563 (add-after 'unpack 'enter-server-dir
1564 (lambda _ (chdir "server") #t))
d10092b8 1565 (add-after 'enter-server-dir 'autogen
1bcae5c5
AK
1566 (lambda _
1567 (zero? (system* "bash" "autogen.sh"))))
1568
1569 ;; Build emacs side using 'emacs-build-system'.
1570 (add-after 'compress-documentation 'enter-lisp-dir
1571 (lambda _ (chdir "../lisp") #t))
1572 (add-after 'enter-lisp-dir 'emacs-patch-variables
1573 (lambda* (#:key outputs #:allow-other-keys)
1574 ;; Set path to epdfinfo program.
1575 (emacs-substitute-variables "pdf-info.el"
1576 ("pdf-info-epdfinfo-program"
1577 (string-append (assoc-ref outputs "out")
1578 "/bin/epdfinfo")))
1579 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1580 ;; upgrading" that pdf-tools tries to perform.
1581 (emacs-substitute-variables "pdf-tools.el"
1582 ("pdf-tools-handle-upgrades" '()))))
259ed58f
MC
1583 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1584 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1585 (add-after 'emacs-set-emacs-load-path 'emacs-install
1bcae5c5
AK
1586 (assoc-ref emacs:%standard-phases 'install))
1587 (add-after 'emacs-install 'emacs-build
1588 (assoc-ref emacs:%standard-phases 'build))
1589 (add-after 'emacs-install 'emacs-make-autoloads
1590 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1591 (native-inputs `(("autoconf" ,autoconf)
1592 ("automake" ,automake)
1593 ("pkg-config" ,pkg-config)
b8fc3622 1594 ("emacs" ,emacs-minimal)))
ec9825d6
RW
1595 (inputs `(("poppler" ,poppler)
1596 ("cairo" ,cairo)
1597 ("glib" ,glib)
1598 ("libpng" ,libpng)
1599 ("zlib" ,zlib)))
1210046d 1600 (propagated-inputs `(("tablist" ,emacs-tablist)))
ec9825d6
RW
1601 (synopsis "Emacs support library for PDF files")
1602 (description
1603 "PDF Tools is, among other things, a replacement of DocView for PDF
1604files. The key difference is that pages are not pre-rendered by
1605e.g. ghostscript and stored in the file-system, but rather created on-demand
1606and stored in memory.")
1607 (home-page "https://github.com/politza/pdf-tools")
1608 (license license:gpl3+)))
d4dbf10e
FB
1609
1610(define-public emacs-dash
1611 (package
1612 (name "emacs-dash")
06f86379 1613 (version "2.14.1")
d4dbf10e 1614 (source (origin
06f86379
RW
1615 (method git-fetch)
1616 (uri (git-reference
1617 (url "https://github.com/magnars/dash.el.git")
1618 (commit version)))
1619 (file-name (git-file-name name version))
d4dbf10e
FB
1620 (sha256
1621 (base32
06f86379 1622 "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
d4dbf10e
FB
1623 (build-system emacs-build-system)
1624 (arguments
d1d41db6
MC
1625 `(#:tests? #t
1626 #:test-command '("./run-tests.sh")))
d4dbf10e
FB
1627 (home-page "https://github.com/magnars/dash.el")
1628 (synopsis "Modern list library for Emacs")
1629 (description "This package provides a modern list API library for Emacs.")
1630 (license license:gpl3+)))
85777fe5 1631
753baf77
AK
1632(define-public emacs-bui
1633 (package
1634 (name "emacs-bui")
f6b1dd23 1635 (version "1.1.0")
753baf77
AK
1636 (source (origin
1637 (method url-fetch)
1638 (uri (string-append
1639 "https://github.com/alezost/bui.el/archive/v"
1640 version ".tar.gz"))
1641 (file-name (string-append name "-" version ".tar.gz"))
1642 (sha256
1643 (base32
f6b1dd23 1644 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1645 (build-system emacs-build-system)
1646 (propagated-inputs
1647 `(("dash" ,emacs-dash)))
1648 (home-page "https://github.com/alezost/bui.el")
1649 (synopsis "Buffer interface library for Emacs")
1650 (description
1651 "BUI (Buffer User Interface) is a library for making @code{list} and
1652@code{info} interfaces to display an arbitrary data of the same
1653type, for example: packages, buffers, files, etc.")
1654 (license license:gpl3+)))
1655
64e43c67
AK
1656(define-public emacs-guix
1657 (package
1658 (name "emacs-guix")
ca59ce41 1659 (version "0.4")
64e43c67
AK
1660 (source (origin
1661 (method url-fetch)
1662 (uri (string-append "https://github.com/alezost/guix.el"
1663 "/releases/download/v" version
1664 "/emacs-guix-" version ".tar.gz"))
1665 (sha256
1666 (base32
ca59ce41 1667 "1nn4b0gd895g0k4fynzrip7z8yb1r3qmvznq9v8a6q7sm84irmqq"))))
64e43c67
AK
1668 (build-system gnu-build-system)
1669 (arguments
1670 `(#:configure-flags
1671 (let ((guix (assoc-ref %build-inputs "guix"))
1672 (geiser (assoc-ref %build-inputs "geiser"))
1673 (dash (assoc-ref %build-inputs "dash"))
1674 (bui (assoc-ref %build-inputs "bui"))
1675 (magit-popup (assoc-ref %build-inputs "magit-popup"))
ca59ce41 1676 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
64e43c67
AK
1677 (site-lisp "/share/emacs/site-lisp"))
1678 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1679 (car (find-files (string-append guix
1680 "/share/guile/site")
1681 (lambda (file stat)
1682 (string-prefix?
1683 "2."
1684 (basename file)))
1685 #:directories? #t)))
3fb8e281
AK
1686 (string-append "--with-guix-site-ccache-dir="
1687 (car (find-files (string-append guix "/lib/guile")
1688 (lambda (file stat)
1689 (string-prefix?
1690 "2." (basename file)))
1691 #:directories? #t))
1692 "/site-ccache")
64e43c67
AK
1693 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1694 (string-append "--with-dash-lispdir="
1695 dash site-lisp "/guix.d/dash-"
1696 ,(package-version emacs-dash))
1697 (string-append "--with-bui-lispdir="
1698 bui site-lisp "/guix.d/bui-"
1699 ,(package-version emacs-bui))
ca59ce41
AK
1700 (string-append "--with-editindirect-lispdir="
1701 edit-indirect site-lisp "/guix.d/edit-indirect-"
1702 ,(package-version emacs-edit-indirect))
64e43c67
AK
1703 (string-append "--with-popup-lispdir="
1704 magit-popup site-lisp "/guix.d/magit-popup-"
1705 ,(package-version emacs-magit-popup))))))
1706 (native-inputs
1707 `(("pkg-config" ,pkg-config)
1708 ("emacs" ,emacs-minimal)))
1709 (inputs
b4f8edb7 1710 `(("guile" ,guile-2.2)
64e43c67
AK
1711 ("guix" ,guix)))
1712 (propagated-inputs
1713 `(("geiser" ,geiser)
1714 ("dash" ,emacs-dash)
1715 ("bui" ,emacs-bui)
ca59ce41 1716 ("edit-indirect" ,emacs-edit-indirect)
64e43c67 1717 ("magit-popup" ,emacs-magit-popup)))
78461856 1718 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1719 (synopsis "Emacs interface for GNU Guix")
1720 (description
b2f1f7b0
AK
1721 "Emacs-Guix provides a visual interface, tools and features for the GNU
1722Guix package manager. Particularly, it allows you to do various package
1723management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1724@code{M-x guix-help} command.")
64e43c67
AK
1725 (license license:gpl3+)))
1726
d6e5de1e
RJ
1727(define-public emacs-d-mode
1728 (package
1729 (name "emacs-d-mode")
1730 (version "2.0.8")
1731 (source (origin
1732 (method url-fetch)
1733 (uri (string-append
1734 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1735 "archive/" version ".tar.gz"))
b87047e0 1736 (file-name (string-append name "-" version ".tar.gz"))
d6e5de1e
RJ
1737 (sha256
1738 (base32
1739 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1740 (build-system emacs-build-system)
1741 (propagated-inputs
1742 `(("emacs-undercover" ,emacs-undercover)))
1743 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1744 (synopsis "Emacs major mode for editing D code")
1745 (description "This package provides an Emacs major mode for highlighting
1746code written in the D programming language. This mode is currently known to
1747work with Emacs 24 and 25.")
1748 (license license:gpl2+)))
1749
7f7b38af
VD
1750(define-public emacs-keyfreq
1751 (package
1752 (name "emacs-keyfreq")
1753 (version "20160516.716")
1754 (source
1755 (origin
1756 (method url-fetch)
1757 (uri (string-append "http://melpa.org/packages/keyfreq-"
1758 version ".el"))
1759 (sha256
1760 (base32
1761 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1762 (build-system emacs-build-system)
1763 (home-page "https://github.com/dacap/keyfreq")
1764 (synopsis "Track Emacs command frequencies")
1765 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1766a command.")
1767 (license license:gpl3+)))
1768
6aab6c27
RJ
1769(define-public emacs-olivetti
1770 (package
1771 (name "emacs-olivetti")
1772 (version "1.5.7")
1773 (source (origin
1774 (method url-fetch)
1775 (uri (string-append
1776 "https://stable.melpa.org/packages/olivetti-"
1777 version ".el"))
1778 (sha256
1779 (base32
1780 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1781 (build-system emacs-build-system)
1782 (home-page "https://github.com/rnkn/olivetti")
1783 (synopsis "Emacs minor mode for a nice writing environment")
1784 (description "This package provides an Emacs minor mode that puts writing
1785in the center.")
1786 (license license:gpl3+)))
1787
1075b437
DB
1788(define-public emacs-undo-tree
1789 (package
1790 (name "emacs-undo-tree")
77a7891b 1791 (version "0.6.6")
1075b437
DB
1792 (source (origin
1793 (method git-fetch)
1794 (uri (git-reference
1795 (url "http://dr-qubit.org/git/undo-tree.git")
08e1f38d 1796 (commit (string-append "release/" version))))
1075b437
DB
1797 (file-name (string-append name "-" version "-checkout"))
1798 (sha256
77a7891b 1799 (base32
1800 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1075b437
DB
1801 (build-system emacs-build-system)
1802 (home-page "http://www.dr-qubit.org/emacs.php")
1803 (synopsis "Treat undo history as a tree")
1804 (description "Tree-like interface to Emacs undo system, providing
1805graphical tree presentation of all previous states of buffer that
1806allows easily move between them.")
1807 (license license:gpl3+)))
1808
85777fe5
FB
1809(define-public emacs-s
1810 (package
1811 (name "emacs-s")
4e425584 1812 (version "1.12.0")
85777fe5
FB
1813 (source (origin
1814 (method url-fetch)
1815 (uri (string-append
1816 "https://github.com/magnars/s.el/archive/"
1817 version ".tar.gz"))
1818 (file-name (string-append name "-" version ".tar.gz"))
1819 (sha256
1820 (base32
4e425584 1821 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
85777fe5
FB
1822 (build-system emacs-build-system)
1823 (arguments
d1d41db6 1824 `(#:tests? #t
80e99aa4 1825 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
d1d41db6 1826 #:test-command '("./run-tests.sh")))
85777fe5 1827 (home-page "https://github.com/magnars/s.el")
a124bbd2 1828 (synopsis "Emacs string manipulation library")
85777fe5
FB
1829 (description "This package provides an Emacs library for manipulating
1830strings.")
1831 (license license:gpl3+)))
cf9ce01f 1832
070e1fe9
VD
1833(define-public emacs-symon
1834 (package
1835 (name "emacs-symon")
d71b758f 1836 (version "20160630")
070e1fe9
VD
1837 (source
1838 (origin
1839 (method url-fetch)
d71b758f
VD
1840 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1841 version ".tar.gz"))
1842 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1843 (sha256
1844 (base32
d71b758f 1845 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1846 (build-system emacs-build-system)
d71b758f 1847 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1848 (synopsis "Tiny graphical system monitor")
1849 (description
1850 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1851 (license license:gpl2+)))
1852
899bcad3 1853(define-public emacs-sx
582c122e
MC
1854 (let ((version "20180212")
1855 (revision "1")
1856 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1857 (package
1858 (name "emacs-sx")
1859 (version (git-version version revision commit))
1860 (source
1861 (origin
1862 (method git-fetch)
1863 (uri (git-reference
1864 (url "https://github.com/vermiculus/sx.el")
1865 (commit commit)))
1866 (file-name (git-file-name name version))
1867 (sha256
1868 (base32
1869 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1870 (build-system emacs-build-system)
1871 (propagated-inputs
1872 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1873 (home-page "https://github.com/vermiculus/sx.el")
1874 (synopsis "Emacs StackExchange client")
1875 (description
1876 "Emacs StackExchange client. Ask and answer questions on
899bcad3 1877Stack Overflow, Super User, and other StackExchange sites.")
582c122e 1878 (license license:gpl3+))))
899bcad3 1879
cf9ce01f
FB
1880(define-public emacs-f
1881 (package
1882 (name "emacs-f")
2b0ddaaa 1883 (version "0.19.0")
cf9ce01f
FB
1884 (source (origin
1885 (method url-fetch)
1886 (uri (string-append
1887 "https://github.com/rejeep/f.el/archive/v"
1888 version ".tar.gz"))
1889 (file-name (string-append name "-" version ".tar.gz"))
1890 (sha256
1891 (base32
2b0ddaaa 1892 "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
cf9ce01f
FB
1893 (build-system emacs-build-system)
1894 (propagated-inputs
1895 `(("emacs-s" ,emacs-s)
1896 ("emacs-dash" ,emacs-dash)))
7bf837fd 1897 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1898 (synopsis "Emacs API for working with files and directories")
1899 (description "This package provides an Emacs library for working with
1900files and directories.")
1901 (license license:gpl3+)))
48dbeef7 1902
0916dc52
CB
1903(define-public emacs-git-gutter
1904 (package
1905 (name "emacs-git-gutter")
1906 (version "0.90")
1907 (source (origin
1908 (method url-fetch)
1909 (uri (string-append
1910 "https://github.com/syohex/" name "/archive/"
1911 version ".tar.gz"))
1912 (file-name (string-append name "-" version ".tar.gz"))
1913 (sha256
1914 (base32
1915 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1916 (build-system emacs-build-system)
1917 (home-page "https://github.com/syohex/emacs-git-gutter")
1918 (synopsis "See and manage hunks of text in a version control system")
1919 (description
1920 "This package is an Emacs minor mode for displaying and interacting with
1921hunks of text managed in a version control system. Added modified and deleted
1922areas can be indicated with symbols on the edge of the buffer, and commands
1923can be used to move between and perform actions on these hunks.
1924
1925Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1926display and behaviour is easily customisable.")
1927 (license license:gpl3+)))
1928
0b35f11d
RW
1929(define-public emacs-git-timemachine
1930 (package
1931 (name "emacs-git-timemachine")
1932 (version "3.0")
1933 (source
1934 (origin
1935 (method url-fetch)
1936 (uri (string-append "https://github.com/pidu/git-timemachine/"
1937 "archive/" version ".tar.gz"))
1938 (file-name (string-append name "-" version ".tar.gz"))
1939 (sha256
1940 (base32
1941 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1942 (build-system emacs-build-system)
1943 (home-page "https://github.com/pidu/git-timemachine")
1944 (synopsis "Step through historic versions of Git-controlled files")
1945 (description "This package enables you to step through historic versions
1946of files under Git version control from within Emacs.")
1947 (license license:gpl3+)))
1948
26361de4 1949(define-public emacs-minitest
158943f2
CB
1950 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1951 (revision "1"))
1952 (package
1953 (name "emacs-minitest")
1954 (version (git-version "0.8.0" revision commit))
1955 (source (origin
1956 (method git-fetch)
1957 (uri (git-reference
1958 (url "https://github.com/arthurnn/minitest-emacs")
1959 (commit commit)))
1960 (file-name (git-file-name name commit))
1961 (sha256
1962 (base32
1963 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1964 (build-system emacs-build-system)
1965 (arguments
1966 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1967 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1968 (propagated-inputs
1969 `(("emacs-dash" ,emacs-dash)
1970 ("emacs-f" ,emacs-f)))
1971 (home-page "https://github.com/arthurnn/minitest-emacs")
1972 (synopsis "Emacs minitest mode")
1973 (description
1974 "The minitest mode provides commands to run the tests for the current
26361de4
CB
1975file or line, as well as rerunning the previous tests, or all the tests for a
1976project.
1977
1978This package also includes relevant snippets for yasnippet.")
158943f2 1979 (license license:expat))))
26361de4 1980
1c32830b
RW
1981(define-public emacs-el-mock
1982 (package
1983 (name "emacs-el-mock")
1984 (version "1.25.1")
1985 (source
1986 (origin
1987 (method url-fetch)
1988 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1989 "archive/v" version ".tar.gz"))
1990 (file-name (string-append name "-" version ".tar.gz"))
1991 (sha256
1992 (base32
1993 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1994 (build-system emacs-build-system)
7bf837fd 1995 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
1996 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1997 (description
1998 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1999syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2000Expectations, but it can be used in other contexts.")
2001 (license license:gpl3+)))
2002
0c5d837c
RW
2003(define-public emacs-espuds
2004 (package
2005 (name "emacs-espuds")
2006 (version "0.3.3")
2007 (source
2008 (origin
2009 (method url-fetch)
2010 (uri (string-append "https://github.com/ecukes/espuds/"
2011 "archive/v" version ".tar.gz"))
2012 (file-name (string-append name "-" version ".tar.gz"))
2013 (sha256
2014 (base32
2015 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
2016 (build-system emacs-build-system)
2017 (propagated-inputs
2018 `(("emacs-s" ,emacs-s)
2019 ("emacs-dash" ,emacs-dash)
2020 ("emacs-f" ,emacs-f)))
7bf837fd 2021 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
2022 (synopsis "Common step definitions for Ecukes")
2023 (description "Espuds is a collection of the most commonly used step
2024definitions for testing with the Ecukes framework.")
2025 (license license:gpl3+)))
2026
bae8e59e
MC
2027(define-public emacs-spark
2028 (let ((version "20160503") ; no proper tag, use date of commit
2029 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
2030 (revision "1"))
2031 (package
2032 (name "emacs-spark")
2033 (version (git-version version revision commit))
2034 (source
2035 (origin
2036 (method git-fetch)
2037 (uri (git-reference
2038 (url "https://github.com/alvinfrancis/spark.git")
2039 (commit commit)))
2040 (file-name (git-file-name name version))
2041 (sha256
2042 (base32
2043 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2044 (build-system emacs-build-system)
2045 (home-page "https://github.com/alvinfrancis/spark")
2046 (synopsis "Sparkline generation library for Emacs Lisp")
2047 (description "@code{emacs-spark} is a sparkline generation library for
2048Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2049port of @code{cl-spark} to Emacs Lisp.")
2050 (license license:expat))))
2051
8bebe734
CB
2052(define-public emacs-es-mode
2053 (package
2054 (name "emacs-es-mode")
c4373a60 2055 (version "4.3.0")
8bebe734
CB
2056 (source (origin
2057 (method url-fetch)
2058 (uri (string-append
2059 "https://github.com/dakrone/es-mode/archive/"
2060 version ".tar.gz"))
2061 (file-name (string-append name "-" version ".tar.gz"))
2062 (sha256
2063 (base32
c4373a60 2064 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
8bebe734
CB
2065 (build-system emacs-build-system)
2066 (propagated-inputs
2067 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2068 ;; to be rendered incorrectly
a262ac68
MC
2069 `(("emacs-dash" ,emacs-dash)
2070 ("emacs-org" ,emacs-org)
2071 ("emacs-spark" ,emacs-spark)))
8bebe734
CB
2072 (home-page "https://github.com/dakrone/es-mode")
2073 (synopsis "Major mode for editing Elasticsearch queries")
2074 (description "@code{es-mode} includes highlighting, completion and
2075indentation support for Elasticsearch queries. Also supported are
2076@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2077be processed through @code{jq}, or in the case of aggregations, can be
2078rendered in to a table. In addition, there is an @code{es-command-center}
2079mode, which displays information about Elasticsearch clusters.")
2080 (license license:gpl3+)))
2081
d0e43782
RW
2082(define-public emacs-expand-region
2083 (package
2084 (name "emacs-expand-region")
61c71171 2085 (version "0.11.0")
d0e43782
RW
2086 (source
2087 (origin
2088 (method url-fetch)
2089 (uri (string-append "https://github.com/magnars/expand-region.el"
2090 "/archive/" version ".tar.gz"))
2091 (file-name (string-append name "-" version ".tar.gz"))
2092 (sha256
2093 (base32
61c71171 2094 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
2095 (build-system emacs-build-system)
2096 (home-page "https://github.com/magnars/expand-region.el")
2097 (synopsis "Increase selected region by semantic units")
2098 (description
2099 "Expand region increases the selected region by semantic units. Just
2100keep pressing the key until it selects what you want. There's also
2101@code{er/contract-region} if you expand too far.")
2102 (license license:gpl3+)))
2103
65568446
RW
2104(define-public emacs-fill-column-indicator
2105 (package
2106 (name "emacs-fill-column-indicator")
2107 (version "1.81")
2108 (source
2109 (origin
2110 (method url-fetch)
2111 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2112 "/archive/v" version ".tar.gz"))
2113 (file-name (string-append name "-" version ".tar.gz"))
2114 (sha256
2115 (base32
2116 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2117 (build-system emacs-build-system)
2118 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2119 (synopsis "Graphically indicate the fill column")
2120 (description
2121 "Fill-column-indicator graphically indicates the location of the fill
2122column by drawing a thin line down the length of the editing window.")
2123 (license license:gpl3+)))
2124
fbc60db8
MC
2125(define-public emacs-grep-a-lot
2126 (package
2127 (name "emacs-grep-a-lot")
2128 (version "1.0.7")
2129 (source (origin
2130 (method git-fetch)
2131 (uri (git-reference
2132 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2133 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2134 (file-name (string-append name "-" version "-checkout"))
2135 (sha256
2136 (base32
2137 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2138 (build-system emacs-build-system)
2139 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2140 (synopsis "Enables multiple grep buffers in Emacs")
2141 (description
2142 "This Emacs package allows managing multiple grep buffers.")
2143 (license license:gpl3+)))
2144
f450d3c5
CB
2145(define-public emacs-inf-ruby
2146 (package
2147 (name "emacs-inf-ruby")
2148 (version "2.5.1")
2149 (source
2150 (origin
2151 (method url-fetch)
2152 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2153 "archive/" version ".tar.gz"))
2154 (file-name (string-append name "-" version ".tar.gz"))
2155 (sha256
2156 (base32
2157 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2158 (build-system emacs-build-system)
2159 (home-page "https://github.com/nonsequitur/inf-ruby")
2160 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2161 (description
2162 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2163for easy interaction with a ruby subprocess. Features include support for
2164detecting specific uses of Ruby, e.g. when using rails, and using a
2165appropriate console.")
2166 (license license:gpl3+)))
2167
7b9769b0
RW
2168(define-public emacs-znc
2169 (package
2170 (name "emacs-znc")
2171 (version "0.0.2")
2172 (source
2173 (origin
2174 (method url-fetch)
2175 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2176 version ".el"))
2177 (sha256
2178 (base32
2179 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2180 (build-system emacs-build-system)
2181 (home-page "https://github.com/sshirokov/ZNC.el")
2182 (synopsis "Make ERC and ZNC get along better")
2183 (description
2184 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2185IRC bouncer with ERC.")
2186 (license license:expat)))
2187
1f9a7097
RW
2188(define-public emacs-shut-up
2189 (package
2190 (name "emacs-shut-up")
2191 (version "0.3.2")
2192 (source
2193 (origin
2194 (method url-fetch)
2195 (uri (string-append "https://github.com/cask/shut-up/"
2196 "archive/v" version ".tar.gz"))
2197 (file-name (string-append name "-" version ".tar.gz"))
2198 (sha256
2199 (base32
2200 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2201 (build-system emacs-build-system)
2202 (home-page "https://github.com/cask/shut-up")
2203 (synopsis "Silence Emacs")
2204 (description "This package silences most output of Emacs when running an
2205Emacs shell script.")
2206 (license license:expat)))
2207
dbe38a3a
RW
2208(define-public emacs-undercover
2209 (package
2210 (name "emacs-undercover")
2211 (version "0.6.0")
2212 (source
2213 (origin
2214 (method url-fetch)
2215 (uri (string-append "https://github.com/sviridov/undercover.el/"
2216 "archive/v" version ".tar.gz"))
2217 (file-name (string-append name "-" version ".tar.gz"))
2218 (sha256
2219 (base32
2220 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2221 (build-system emacs-build-system)
2222 (propagated-inputs
2223 `(("emacs-dash" ,emacs-dash)
2224 ("emacs-shut-up" ,emacs-shut-up)))
2225 (home-page "https://github.com/sviridov/undercover.el")
2226 (synopsis "Test coverage library for Emacs Lisp")
2227 (description
2228 "Undercover is a test coverage library for software written in Emacs
2229Lisp.")
2230 (license license:expat)))
2231
07046e5f
RW
2232(define-public emacs-paren-face
2233 (package
2234 (name "emacs-paren-face")
2235 (version "1.0.0")
2236 (source
2237 (origin
2238 (method url-fetch)
2239 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2240 version ".tar.gz"))
2241 (file-name (string-append name "-" version ".tar.gz"))
2242 (sha256
2243 (base32
2244 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2245 (build-system emacs-build-system)
7bf837fd 2246 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
2247 (synopsis "Face for parentheses in lisp modes")
2248 (description
2249 "This library defines a face named @code{parenthesis} used just for
2250parentheses. The intended purpose of this face is to make parentheses less
2251visible in Lisp code by dimming them. Lispers probably don't need to be
2252constantly made aware of the existence of the parentheses. Dimming them might
2253be even more useful for people new to lisp who have not yet learned to
2254subconsciously blend out the parentheses.")
2255 (license license:gpl3+)))
2256
a46e3c0d
RW
2257(define-public emacs-page-break-lines
2258 (package
2259 (name "emacs-page-break-lines")
2260 (version "0.11")
2261 (source
2262 (origin
2263 (method url-fetch)
2264 (uri (string-append "https://github.com/purcell/page-break-lines/"
2265 "archive/" version ".tar.gz"))
2266 (file-name (string-append name "-" version ".tar.gz"))
2267 (sha256
2268 (base32
2269 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2270 (build-system emacs-build-system)
2271 (home-page "https://github.com/purcell/page-break-lines")
2272 (synopsis "Display page breaks as tidy horizontal lines")
2273 (description
2274 "This library provides a global mode which displays form feed characters
2275as horizontal rules.")
2276 (license license:gpl3+)))
2277
1f8a951b
RW
2278(define-public emacs-simple-httpd
2279 (package
2280 (name "emacs-simple-httpd")
2281 (version "1.4.6")
2282 (source
2283 (origin
2284 (method url-fetch)
2285 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2286 "archive/" version ".tar.gz"))
2287 (file-name (string-append name "-" version ".tar.gz"))
2288 (sha256
2289 (base32
2290 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2291 (build-system emacs-build-system)
2292 (home-page "https://github.com/skeeto/emacs-http-server")
2293 (synopsis "HTTP server in pure Emacs Lisp")
2294 (description
2295 "This package provides a simple HTTP server written in Emacs Lisp to
2296serve files and directory listings.")
2297 (license license:unlicense)))
2298
6c04acaa
RW
2299(define-public emacs-skewer-mode
2300 (package
2301 (name "emacs-skewer-mode")
2302 (version "1.6.2")
2303 (source
2304 (origin
2305 (method url-fetch)
2306 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2307 version ".tar.gz"))
2308 (file-name (string-append name "-" version ".tar.gz"))
2309 (sha256
2310 (base32
2311 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2312 (build-system emacs-build-system)
2313 (propagated-inputs
2314 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2315 ("emacs-js2-mode" ,emacs-js2-mode)))
46f5ae0b 2316 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6c04acaa
RW
2317 (home-page "https://github.com/skeeto/skewer-mode")
2318 (synopsis "Live web development in Emacs")
2319 (description
2320 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2321a web browser. Expressions are sent on-the-fly from an editing buffer to be
2322evaluated in the browser, just like Emacs does with an inferior Lisp process
2323in Lisp modes.")
2324 (license license:unlicense)))
2325
cdba3a84
MC
2326(define-public emacs-string-inflection
2327 (package
2328 (name "emacs-string-inflection")
2329 (version "1.0.6")
2330 (source (origin
2331 (method git-fetch)
2332 (uri (git-reference
2333 (url "https://github.com/akicho8/string-inflection")
2334 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2335 (file-name (string-append name "-" version "-checkout"))
2336 (sha256
2337 (base32
2338 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2339 (build-system emacs-build-system)
2340 (native-inputs
2341 `(("ert-runner" ,ert-runner)))
2342 (arguments
d1d41db6
MC
2343 `(#:tests? #t
2344 #:test-command '("ert-runner")))
cdba3a84
MC
2345 (home-page "https://github.com/akicho8/string-inflection")
2346 (synopsis "Convert symbol names between different naming conventions")
2347 (description
2348 "This Emacs package provides convenient methods for manipulating the
2349naming style of a symbol. It supports different naming conventions such as:
2350
2351@enumerate
2352@item camel case
2353@item Pascal case
2354@item all upper case
2355@item lower case separated by underscore
2356@item etc...
2357@end enumerate\n")
2358 (license license:gpl2+)))
2359
ce9701fb
RW
2360(define-public emacs-stripe-buffer
2361 (package
2362 (name "emacs-stripe-buffer")
2363 (version "0.2.5")
2364 (source
2365 (origin
2366 (method url-fetch)
2367 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2368 "archive/" version ".tar.gz"))
2369 (file-name (string-append name "-" version ".tar.gz"))
2370 (sha256
2371 (base32
2372 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2373 (build-system emacs-build-system)
2374 (home-page "https://github.com/sabof/stripe-buffer/")
2375 (synopsis "Add stripes to list buffers")
2376 (description
2377 "This Emacs package adds faces to add stripes to list buffers and org
2378tables.")
2379 (license license:gpl2+)))
2380
8d810163
RW
2381(define-public emacs-rich-minority
2382 (package
2383 (name "emacs-rich-minority")
2384 (version "1.0.1")
2385 (source
2386 (origin
2387 (method url-fetch)
2388 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2389 "archive/" version ".tar.gz"))
2390 (file-name (string-append name "-" version ".tar.gz"))
2391 (sha256
2392 (base32
2393 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2394 (build-system emacs-build-system)
2395 (home-page "https://github.com/Malabarba/rich-minority")
2396 (synopsis "Clean-up and beautify the list of minor modes")
2397 (description
2398 "This Emacs package hides and/or highlights minor modes in the
2399mode-line.")
2400 (license license:gpl2+)))
2401
8733fc91
CB
2402(define-public emacs-robe
2403 (package
2404 (name "emacs-robe")
2405 (version "0.8.1")
2406 (source
2407 (origin
2408 (method url-fetch)
2409 (uri (string-append "https://github.com/dgutov/robe/"
2410 "archive/" version ".tar.gz"))
2411 (file-name (string-append name "-" version ".tar.gz"))
2412 (sha256
2413 (base32
2414 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2415 (build-system emacs-build-system)
376015c3
CB
2416 (arguments
2417 '(#:include (cons "^lib\\/" %default-include)))
8733fc91
CB
2418 (propagated-inputs
2419 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2420 (home-page "https://github.com/dgutov/robe")
2421 (synopsis "Ruby code assistance tool for Emacs")
2422 (description
2423 "Robe can provide information on loaded classes and modules in Ruby code,
2424as well as where methods are defined. This allows the user to jump to method
2425definitions, modules and classes, display method documentation and provide
2426method and constant name completion.")
2427 (license license:gpl3+)))
2428
81808194
CB
2429(define-public emacs-rspec
2430 (package
2431 (name "emacs-rspec")
2432 (version "1.11")
2433 (source
2434 (origin
2435 (method url-fetch)
2436 (uri (string-append "https://github.com/pezra/rspec-mode/"
2437 "archive/v" version ".tar.gz"))
2438 (file-name (string-append name "-" version ".tar.gz"))
2439 (sha256
2440 (base32
2441 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2442 (build-system emacs-build-system)
2443 (home-page "https://github.com/pezra/rspec-mode")
2444 (synopsis "Provides a rspec mode for working with RSpec")
2445 (description
2446 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2447verify the spec associated with the current buffer, or entire project, as well
2448as moving between the spec files, and coresponding code files.
2449
2450Also included are keybindings for spec files and Dired buffers, as well as
2451snippets for yasnippet.")
2452 (license license:gpl3+)))
2453
b33f913d
RW
2454(define-public emacs-smart-mode-line
2455 (package
2456 (name "emacs-smart-mode-line")
2457 (version "2.10.1")
2458 (source
2459 (origin
2460 (method url-fetch)
2461 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2462 "archive/" version ".tar.gz"))
2463 (file-name (string-append name "-" version ".tar.gz"))
2464 (sha256
2465 (base32
2466 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2467 (build-system emacs-build-system)
2468 (propagated-inputs
2469 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 2470 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2471 (synopsis "Color-coded smart mode-line")
b33f913d
RW
2472 (description
2473 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2474read from small to large monitors by using colors, a prefix feature, and smart
2475truncation.")
2476 (license license:gpl2+)))
2477
69b498a1 2478(define-public emacs-sr-speedbar
33ca12f3
MC
2479 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2480 (revision "0"))
2481 (package
2482 (name "emacs-sr-speedbar")
2483 (version (git-version "20161025" revision commit))
2484 (source
2485 (origin
2486 (method git-fetch)
2487 (uri (git-reference
2488 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2489 (commit commit)))
2490 (file-name (git-file-name name version))
2491 (sha256
2492 (base32
2493 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2494 (build-system emacs-build-system)
2495 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2496 (synopsis "Same frame Emacs @code{speedbar}")
2497 (description
2498 "This Emacs package allows you to show @code{M-x speedbar} in the
69b498a1
OP
2499same frame (in an extra window). You can customize the initial width of
2500the speedbar window.")
33ca12f3 2501 (license license:gpl3+))))
69b498a1 2502
3bcb304e
RW
2503(define-public emacs-shell-switcher
2504 (package
2505 (name "emacs-shell-switcher")
2506 (version "1.0.1")
2507 (source
2508 (origin
2509 (method url-fetch)
2510 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2511 "/archive/v" version ".tar.gz"))
2512 (file-name (string-append name "-" version ".tar.gz"))
2513 (sha256
2514 (base32
2515 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2516 (build-system emacs-build-system)
2517 (home-page "https://github.com/DamienCassou/shell-switcher")
2518 (synopsis "Provide fast switching between shell buffers")
2519 (description
2520 "This package provides commands to quickly switch between shell buffers.")
2521 (license license:gpl3+)))
2522
48dbeef7
FB
2523(define-public emacs-ob-ipython
2524 (package
2525 (name "emacs-ob-ipython")
2526 (version "20150704.8807064693")
2527 (source (origin
2528 (method git-fetch)
2529 (uri (git-reference
698bd297 2530 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7 2531 (url "https://github.com/gregsexton/ob-ipython.git")))
eb6b471b 2532 (file-name (string-append name "-" version "-checkout"))
48dbeef7
FB
2533 (sha256
2534 (base32
2535 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2536 (build-system emacs-build-system)
2537 (propagated-inputs
2538 `(("emacs-f" ,emacs-f)))
2539 (home-page "http://www.gregsexton.org")
2540 (synopsis "Org-Babel functions for IPython evaluation")
2541 (description "This package adds support to Org-Babel for evaluating Python
2542source code using IPython.")
2543 (license license:gpl3+)))
6fd66b6c
LC
2544
2545(define-public emacs-debbugs
2546 (package
2547 (name "emacs-debbugs")
8180a406 2548 (version "0.15")
6fd66b6c
LC
2549 (source (origin
2550 (method url-fetch)
f32ffa04 2551 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2552 version ".tar"))
2553 (sha256
2554 (base32
8180a406 2555 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
6fd66b6c 2556 (build-system emacs-build-system)
91762db6 2557 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2558 (propagated-inputs
2559 `(("emacs-async" ,emacs-async)))
f32ffa04 2560 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2561 (synopsis "Access the Debbugs bug tracker in Emacs")
2562 (description
2563 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2564Tracker} from within Emacs.
2565
2566For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2567and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2568prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2569@code{M-x debbugs-org} and related commands.
2570
2571A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2572Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2573 (license license:gpl3+)))
3ffe36f5 2574
1fcd7e6c
MC
2575(define-public emacs-ert-expectations
2576 (package
2577 (name "emacs-ert-expectations")
2578 (version "0.2")
2579 (source
2580 (origin
2581 (method url-fetch)
2582 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2583 (sha256
2584 (base32
2585 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2586 (build-system emacs-build-system)
2587 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2588 (synopsis "Simple unit test framework for Emacs Lisp")
2589 (description "@code{emacs-ert-expectations} is a simple unit test
2590framework for Emacs Lisp to be used with @code{ert}.")
2591 (license license:gpl3+)))
2592
3ffe36f5
LC
2593(define-public emacs-deferred
2594 (package
2595 (name "emacs-deferred")
4dd0f8c0 2596 (version "0.5.1")
3ffe36f5
LC
2597 (home-page "https://github.com/kiwanami/emacs-deferred")
2598 (source (origin
2599 (method git-fetch)
2600 (uri (git-reference
2601 (url home-page)
2602 (commit (string-append "v" version))))
2603 (sha256
2604 (base32
4dd0f8c0 2605 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
3ffe36f5
LC
2606 (file-name (string-append name "-" version))))
2607 (build-system emacs-build-system)
652741cf
MC
2608 (arguments
2609 `(#:phases
2610 (modify-phases %standard-phases
90ec79fb
AI
2611 (add-after 'unpack 'set-shell
2612 ;; Setting the SHELL environment variable is required for the tests
2613 ;; to find sh.
2614 (lambda _
2615 (setenv "SHELL" (which "sh"))
2616 #t))
652741cf
MC
2617 (add-before 'check 'fix-makefile
2618 (lambda _
2619 (substitute* "Makefile"
2620 (("\\$\\(CASK\\) exec ") ""))
2621 #t)))
2622 #:tests? #t
90ec79fb 2623 #:test-command '("make" "test")))
652741cf
MC
2624 (native-inputs
2625 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2626 ("emacs-undercover" ,emacs-undercover)
2627 ("ert-runner" ,ert-runner)))
3ffe36f5
LC
2628 (synopsis "Simple asynchronous functions for Emacs Lisp")
2629 (description
2630 "The @code{deferred.el} library provides support for asynchronous tasks.
2631The API is almost the same as that of
2632@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2633for asynchronous tasks.")
2634 (license license:gpl3+)))
d001bb5a
LC
2635
2636(define-public butler
2637 (package
2638 (name "emacs-butler")
2639 (version "0.2.4")
2640 (home-page "https://github.com/AshtonKem/Butler")
2641 (source (origin
2642 (method git-fetch)
2643 (uri (git-reference
2644 (url home-page)
2645 (commit version)))
2646 (sha256
2647 (base32
2648 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2649 (file-name (string-append name "-" version))))
2650 (build-system emacs-build-system)
2651 (propagated-inputs
2652 `(("emacs-deferred" ,emacs-deferred)))
2653 (synopsis "Emacs client for Jenkins")
2654 (description
2655 "Butler provides an interface to connect to Jenkins continuous
2656integration servers. Users can specify a list of server in the
2657@code{butler-server-list} variable and then use @code{M-x butler-status} to
2658view the build status of those servers' build jobs, and possibly to trigger
2659build jobs.")
2660 (license license:gpl3+)))
2d1db448 2661
d1dbeddd
RW
2662(define-public emacs-company
2663 (package
2664 (name "emacs-company")
1262a2ab 2665 (version "0.9.3")
d1dbeddd
RW
2666 (source
2667 (origin
2668 (method url-fetch)
2669 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2670 version ".tar.gz"))
2671 (file-name (string-append name "-" version ".tar.gz"))
2672 (sha256
2673 (base32
1262a2ab 2674 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2675 (build-system emacs-build-system)
4e644ab8
AI
2676 (arguments
2677 `(#:phases
2678 (modify-phases %standard-phases
d1d41db6 2679 (add-before 'check 'fix-bin-dir
4e644ab8
AI
2680 (lambda _
2681 ;; The company-files-candidates-normal-root test looks
2682 ;; for the /bin directory, but the build environment has
2683 ;; no /bin directory. Modify the test to look for the
2684 ;; /tmp directory.
2685 (substitute* "test/files-tests.el"
2686 (("/bin/") "/tmp/"))
d1d41db6
MC
2687 #t)))
2688 #:tests? #t
2689 #:test-command '("make" "test-batch")))
d1dbeddd
RW
2690 (home-page "http://company-mode.github.io/")
2691 (synopsis "Modular text completion framework")
2692 (description
2693 "Company is a modular completion mechanism. Modules for retrieving
2694completion candidates are called back-ends, modules for displaying them are
2695front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2696These are distributed in separate files and can be used individually.")
2697 (license license:gpl3+)))
2698
016590a9
OP
2699(define-public emacs-company-quickhelp
2700 (package
2701 (name "emacs-company-quickhelp")
2702 (version "2.3.0")
2703 (source
2704 (origin
2705 (method url-fetch)
2706 (uri (string-append
2707 "https://github.com/expez/company-quickhelp/archive/"
2708 version ".tar.gz"))
2709 (file-name (string-append name "-" version ".tar.gz"))
2710 (sha256
2711 (base32
2712 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2713 (build-system emacs-build-system)
2714 (propagated-inputs
2715 `(("emacs-pos-tip" ,emacs-pos-tip)
2716 ("emacs-company" ,emacs-company)))
2717 (home-page "https://github.com/expez/company-quickhelp")
2718 (synopsis "Popup documentation for completion candidates")
2719 (description "@code{company-quickhelp} shows documentation for the
2720completion candidate when using the Company text completion framework.")
2721 (license license:gpl3+)))
2722
7c438099
RW
2723(define-public emacs-multiple-cursors
2724 (package
2725 (name "emacs-multiple-cursors")
2726 (version "1.4.0")
2727 (source
2728 (origin
2729 (method url-fetch)
2730 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2731 "archive/" version ".tar.gz"))
2732 (file-name (string-append name "-" version ".tar.gz"))
2733 (sha256
2734 (base32
2735 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2736 (build-system emacs-build-system)
2737 (home-page "https://github.com/magnars/multiple-cursors.el")
2738 (synopsis "Multiple cursors for Emacs")
2739 (description
2740 "This package adds support to Emacs for editing text with multiple
2741simultaneous cursors.")
2742 (license license:gpl3+)))
2743
2d1db448
LC
2744(define-public typo
2745 (package
2746 (name "emacs-typo")
2747 (version "1.1")
2748 (home-page "https://github.com/jorgenschaefer/typoel")
2749 (source (origin
2750 (method git-fetch)
2751 (uri (git-reference
2752 (url home-page)
2753 (commit (string-append "v" version))))
2754 (sha256
2755 (base32
2756 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2757 (file-name (string-append name "-" version))))
2758 (build-system emacs-build-system)
2759 (synopsis "Minor mode for typographic editing")
2760 (description
2761 "This package provides two Emacs modes, @code{typo-mode} and
2762@code{typo-global-mode}. These modes automatically insert Unicode characters
2763for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2764automatically inserts a Unicode opening or closing quotation mark, depending
2765on context.")
2766 (license license:gpl3+)))
e037a09f
FB
2767
2768(define-public emacs-scheme-complete
2769 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2770 (package
2771 (name "emacs-scheme-complete")
2772 (version (string-append "20151223." (string-take commit 8)))
2773 (source
2774 (origin
2775 (file-name (string-append name "-" version))
2776 (method git-fetch)
2777 (uri (git-reference
2778 (url "https://github.com/ashinn/scheme-complete.git")
2779 (commit commit)))
2780 (sha256
2781 (base32
2782 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2783 (patches
fc1adab1 2784 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2785 (build-system emacs-build-system)
2786 (home-page "https://github.com/ashinn/scheme-complete")
2787 (synopsis "Smart tab completion for Scheme in Emacs")
2788 (description
2789 "This file provides a single function, @code{scheme-smart-complete},
2790which you can use for intelligent, context-sensitive completion for any Scheme
2791implementation in Emacs. To use it just load this file and bind that function
2792to a key in your preferred mode.")
2793 (license license:public-domain))))
58a7dc13 2794
75408149
MC
2795(define-public emacs-scel
2796 (let ((version "20170629")
2797 (revision "1")
2798 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2799 (package
2800 (name "emacs-scel")
2801 (version (git-version version revision commit))
2802 (source
2803 (origin
2804 (method git-fetch)
2805 (uri (git-reference
2806 (url "https://github.com/supercollider/scel.git")
2807 (commit commit)))
2808 (file-name (string-append name "-" version "-checkout"))
2809 (sha256
2810 (base32
2811 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2812 (build-system emacs-build-system)
2813 (arguments
2814 `(#:modules ((guix build emacs-build-system)
2815 ((guix build cmake-build-system) #:prefix cmake:)
2816 (guix build utils))
2817 #:imported-modules (,@%emacs-build-system-modules
2818 (guix build cmake-build-system))
2819 #:phases
2820 (modify-phases %standard-phases
2821 (add-after 'unpack 'configure
2822 (lambda* (#:key outputs #:allow-other-keys)
2823 (substitute* "el/CMakeLists.txt"
2824 (("share/emacs/site-lisp/SuperCollider")
2825 (string-append
2826 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2827 ((assoc-ref cmake:%standard-phases 'configure)
2828 #:outputs outputs
2829 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2830 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2831 (lambda _
2832 (setenv "EMACSLOADPATH"
2833 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2834 #t))
2835 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2836 (inputs
2837 `(("supercollider" ,supercollider)))
2838 (native-inputs
2839 `(("cmake" ,cmake)))
2840 (home-page "https://github.com/supercollider/scel")
2841 (synopsis "SuperCollider Emacs interface")
2842 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2843SuperCollider is a platform for audio synthesis and algorithmic composition.")
2844 (license license:gpl2+))))
2845
58a7dc13
FB
2846(define-public emacs-mit-scheme-doc
2847 (package
2848 (name "emacs-mit-scheme-doc")
2849 (version "20140203")
2850 (source
2851 (origin
2852 (modules '((guix build utils)))
2853 (snippet
2854 ;; keep only file of interest
2855 '(begin
2856 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2857 (install-file "6.945-config/mit-scheme-doc.el" ".")
6cbee49d
MW
2858 (delete-file-recursively "6.945-config")
2859 #t))
58a7dc13
FB
2860 (file-name (string-append name "-" version ".tar.bz2"))
2861 (method url-fetch)
2862 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2863 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2864 (sha256
2865 (base32
2866 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2867 (build-system emacs-build-system)
2868 (inputs `(("mit-scheme" ,mit-scheme)))
2869 (arguments
2870 `(#:phases
2871 (modify-phases %standard-phases
2872 (add-after 'unpack 'configure-doc
2873 (lambda* (#:key inputs #:allow-other-keys)
2874 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2875 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2876 "mit-scheme-"
2877 ,(package-version mit-scheme))))
2878 (substitute* "mit-scheme-doc.el"
2879 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2880 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2881 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2882 (synopsis "MIT-Scheme documentation lookup for Emacs")
2883 (description
2884 "This package provides a set of Emacs functions to search definitions of
2885identifiers in the MIT-Scheme documentation.")
2886 (license license:gpl2+)))
e5045f30 2887
e5045f30
FB
2888(define-public emacs-constants
2889 (package
2890 (name "emacs-constants")
f99f3f24 2891 (version "2.6")
a9e41d2f 2892 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2893 (source
2894 (origin
37dbfc50 2895 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2896 (method url-fetch)
2897 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2898 "/archive/v" version ".tar.gz"))
e5045f30
FB
2899 (sha256
2900 (base32
f99f3f24 2901 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2902 (build-system emacs-build-system)
e5045f30
FB
2903 (synopsis "Enter definition of constants into an Emacs buffer")
2904 (description
2905 "This package provides functions for inserting the definition of natural
2906constants and units into an Emacs buffer.")
2907 (license license:gpl2+)))
85960693 2908
e203221f
RW
2909(define-public emacs-tagedit
2910 (package
2911 (name "emacs-tagedit")
2912 (version "1.4.0")
2913 (source
2914 (origin
2915 (method url-fetch)
2916 (uri (string-append "https://github.com/magnars/tagedit/"
2917 "archive/" version ".tar.gz"))
2918 (file-name (string-append name "-" version ".tar.gz"))
2919 (sha256
2920 (base32
2921 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2922 (build-system emacs-build-system)
2923 (propagated-inputs
2924 `(("emacs-s" ,emacs-s)
2925 ("emacs-dash" ,emacs-dash)))
2926 (home-page "https://github.com/magnars/tagedit")
2927 (synopsis "Some paredit-like features for html-mode")
2928 (description
2929 "This package provides a collection of paredit-like functions for editing
2930in @code{html-mode}.")
2931 (license license:gpl3+)))
2932
85960693
FB
2933(define-public emacs-slime
2934 (package
2935 (name "emacs-slime")
d2f93e61 2936 (version "2.20")
85960693
FB
2937 (source
2938 (origin
2939 (file-name (string-append name "-" version ".tar.gz"))
2940 (method url-fetch)
2941 (uri (string-append
2942 "https://github.com/slime/slime/archive/v"
2943 version ".tar.gz"))
2944 (sha256
2945 (base32
d2f93e61 2946 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
85960693
FB
2947 (build-system emacs-build-system)
2948 (native-inputs
2949 `(("texinfo" ,texinfo)))
2950 (arguments
e8cefe11
AI
2951 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2952 #:exclude '("^slime-tests.el" "^contrib/test/"
2953 "^contrib/Makefile$" "^contrib/README.md$")
2954 #:phases
85960693
FB
2955 (modify-phases %standard-phases
2956 (add-before 'install 'configure
2957 (lambda* _
2958 (emacs-substitute-variables "slime.el"
2959 ("inferior-lisp-program" "sbcl"))
2960 #t))
2961 (add-before 'install 'install-doc
2962 (lambda* (#:key outputs #:allow-other-keys)
2963 (let* ((out (assoc-ref outputs "out"))
2964 (info-dir (string-append out "/share/info"))
2965 (doc-dir (string-append out "/share/doc/"
2966 ,name "-" ,version))
2967 (doc-files '("doc/slime-refcard.pdf"
2968 "README.md" "NEWS" "PROBLEMS"
2969 "CONTRIBUTING.md")))
2970 (with-directory-excursion "doc"
2971 (substitute* "Makefile"
2972 (("infodir=/usr/local/info")
2973 (string-append "infodir=" info-dir)))
2974 (system* "make" "html/index.html")
2975 (system* "make" "slime.info")
2976 (install-file "slime.info" info-dir)
2977 (copy-recursively "html" (string-append doc-dir "/html")))
2978 (for-each (lambda (f)
2979 (install-file f doc-dir)
2980 (delete-file f))
2981 doc-files)
2982 (delete-file-recursively "doc")
2983 #t))))))
2984 (home-page "https://github.com/slime/slime")
2985 (synopsis "Superior Lisp Interaction Mode for Emacs")
2986 (description
2987 "SLIME extends Emacs with support for interactive programming in
db574f71 2988Common Lisp. The features are centered around @command{slime-mode},
2989an Emacs minor mode that complements the standard @command{lisp-mode}.
2990While lisp-mode supports editing Lisp source files, @command{slime-mode}
2991adds support for interacting with a running Common Lisp process
2992for compilation, debugging, documentation lookup, and so on.")
85960693 2993 (license license:gpl2+)))
e11d14fe 2994
2995(define-public emacs-popup
2996 (package
2997 (name "emacs-popup")
2998 (version "0.5.3")
2999 (source (origin
3000 (method url-fetch)
3001 (uri (string-append
3002 "https://github.com/auto-complete/popup-el/archive/v"
3003 version ".tar.gz"))
3004 (file-name (string-append name "-" version ".tar.gz"))
3005 (sha256
3006 (base32
3007 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
3008 (build-system emacs-build-system)
e11d14fe 3009 (home-page "https://github.com/auto-complete/popup-el")
3010 (synopsis "Visual Popup User Interface for Emacs")
3011 (description
3012 "Popup.el is a visual popup user interface library for Emacs.
3013This provides a basic API and common UI widgets such as popup tooltips
3014and popup menus.")
3015 (license license:gpl3+)))
48766ea8
RW
3016
3017(define-public emacs-god-mode
3018 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
3019 (revision "1"))
3020 (package
3021 (name "emacs-god-mode")
3022 (version (string-append "20151005.925."
3023 revision "-" (string-take commit 9)))
3024 (source
3025 (origin
3026 (method git-fetch)
3027 (uri (git-reference
3028 (url "https://github.com/chrisdone/god-mode.git")
3029 (commit commit)))
3030 (file-name (string-append name "-" version "-checkout"))
3031 (sha256
3032 (base32
3033 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
3034 (build-system emacs-build-system)
3035 (home-page "https://github.com/chrisdone/god-mode")
3036 (synopsis "Minor mode for entering commands without modifier keys")
3037 (description
3038 "This package provides a global minor mode for entering Emacs commands
3039without modifier keys. It's similar to Vim's separation of commands and
3040insertion mode. When enabled all keys are implicitly prefixed with
3041@samp{C-} (among other helpful shortcuts).")
3042 (license license:gpl3+))))
4670f70a 3043
8fc559dc 3044(define-public emacs-jinja2-mode
3045 (package
3046 (name "emacs-jinja2-mode")
3047 (version "0.2")
3048 (source
3049 (origin
3050 (method url-fetch)
3051 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3052 "archive/v" version ".tar.gz"))
3053 (file-name (string-append name "-" version ".tar.gz"))
3054 (sha256
3055 (base32
3056 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3057 (build-system emacs-build-system)
3058 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3059 (synopsis "Major mode for jinja2")
3060 (description
3061 "Emacs major mode for jinja2 with: syntax highlighting,
3062sgml/html integration, and indentation (working with sgml).")
3063 (license license:gpl3+)))
3064
4670f70a
CM
3065(define-public emacs-rfcview
3066 (package
3067 (name "emacs-rfcview")
3068 (version "0.13")
3069 (home-page "http://www.loveshack.ukfsn.org/emacs")
3070 (source (origin
02736daa 3071 (method url-fetch)
4670f70a
CM
3072 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3073 (sha256
3074 (base32
3075 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3076 (build-system emacs-build-system)
4670f70a
CM
3077 (synopsis "Prettify Request for Comments (RFC) documents")
3078 (description "The Internet Engineering Task Force (IETF) and the Internet
3079Society (ISOC) publish various Internet-related protocols and specifications
3080as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3081documents. RFCs and STDs are published in a simple text form. This package
3082provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3083read these documents in Emacs. It prettifies the text and adds
3084hyperlinks/menus for easier navigation. It also provides functions for
3085browsing the index of RFC documents and fetching them from remote servers or
3086local directories.")
3087 (license license:gpl3+)))
3088
9e9c71eb
CM
3089(define-public emacs-ffap-rfc-space
3090 (package
3091 (name "emacs-ffap-rfc-space")
3092 (version "12")
3093 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3094 (source (origin
02736daa 3095 (method url-fetch)
9e9c71eb
CM
3096 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3097 (sha256
3098 (base32
3099 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3100 (build-system emacs-build-system)
9e9c71eb
CM
3101 (synopsis "Make ffap recognize an RFC with a space before its number")
3102 (description "The Internet Engineering Task Force (IETF) and the
3103Internet Society (ISOC) publish various Internet-related protocols and
3104specifications as \"Request for Comments\" (RFC) documents. The
3105built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3106recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3107and load the appropriate RFC from a remote server. However, it fails
3108to recognize a name like \"RFC 1234\". This package enhances ffap so
3109that it correctly finds RFCs even when a space appears before the
3110number.")
3111 (license license:gpl3+)))
9576cc72 3112
db1a4960
RW
3113(define-public emacs-org-bullets
3114 (package
3115 (name "emacs-org-bullets")
3116 (version "0.2.4")
3117 (source
3118 (origin
3119 (method url-fetch)
3120 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3121 version ".tar.gz"))
3122 (file-name (string-append name "-" version ".tar.gz"))
3123 (sha256
3124 (base32
3125 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3126 (build-system emacs-build-system)
3127 (home-page "https://github.com/sabof/org-bullets")
3128 (synopsis "Show bullets in org-mode as UTF-8 characters")
3129 (description
3130 "This package provides an Emacs minor mode causing bullets in
3131@code{org-mode} to be rendered as UTF-8 characters.")
3132 (license license:gpl3+)))
b1679379
OP
3133
3134(define-public emacs-org-pomodoro
3135 (package
3136 (name "emacs-org-pomodoro")
3137 (version "2.1.0")
3138 (source
3139 (origin
3140 (method url-fetch)
3141 (uri (string-append
3142 "https://github.com/lolownia/org-pomodoro/archive/"
3143 version ".tar.gz"))
3144 (file-name (string-append name "-" version ".tar.gz"))
3145 (sha256
3146 (base32
3147 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3148 (build-system emacs-build-system)
3149 (propagated-inputs
3150 `(("emacs-alert" ,emacs-alert)))
3151 (home-page "https://github.com/lolownia/org-pomodoro")
3152 (synopsis "Pomodoro technique for org-mode")
3153 (description "@code{emacs-org-pomodoro} adds very basic support for
3154Pomodoro technique in Emacs org-mode.
3155
3156Run @code{M-x org-pomodoro} for the task at point or select one of the
3157last tasks that you clocked time for. Each clocked-in pomodoro starts
3158a timer of 25 minutes and after each pomodoro a break timer of 5
3159minutes is started automatically. Every 4 breaks a long break is
3160started with 20 minutes. All values are customizable.")
3161 (license license:gpl3+)))
db1a4960 3162
ed8bc028
RJ
3163(define-public emacs-org-trello
3164 (package
3165 (name "emacs-org-trello")
bf86533b 3166 (version "0.8.0")
ed8bc028
RJ
3167 (source (origin
3168 (method url-fetch)
3169 (uri (string-append
3170 "https://github.com/org-trello/org-trello/archive/"
3171 version ".tar.gz"))
3172 (file-name (string-append name "-" version ".tar.gz"))
3173 (sha256
3174 (base32
bf86533b 3175 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
ed8bc028
RJ
3176 (build-system emacs-build-system)
3177 (propagated-inputs
8865d476
MC
3178 `(("emacs-dash" ,emacs-dash)
3179 ("emacs-deferred" ,emacs-deferred)
3180 ("emacs-f" ,emacs-f)
3181 ("emacs-helm" ,emacs-helm)
ed8bc028 3182 ("emacs-request" ,emacs-request)
ed8bc028
RJ
3183 ("emacs-s" ,emacs-s)))
3184 (home-page "https://org-trello.github.io")
3185 (synopsis "Emacs minor mode for interacting with Trello")
3186 (description "This package provides an Emacs minor mode to extend
3187@code{org-mode} with Trello abilities. Trello is an online project
3188organizer.")
3189 (license license:gpl3+)))
3190
9576cc72
AP
3191(define-public emacs-zenburn-theme
3192 (package
3193 (name "emacs-zenburn-theme")
07716c68 3194 (version "2.5")
9576cc72
AP
3195 (source (origin
3196 (method url-fetch)
3197 (uri (string-append
3198 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3199 version ".tar.gz"))
3200 (file-name (string-append name "-" version ".tar.gz"))
3201 (sha256
3202 (base32
07716c68 3203 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 3204 (build-system emacs-build-system)
7bf837fd 3205 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
3206 (synopsis "Low contrast color theme for Emacs")
3207 (description
3208 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3209It is built on top of the custom theme support in Emacs 24 or later.")
3210 (license license:gpl3+)))
3211
012c8b35
RW
3212(define-public emacs-solarized-theme
3213 (package
3214 (name "emacs-solarized-theme")
3215 (version "1.2.2")
3216 (source (origin
3217 (method url-fetch)
3218 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3219 "archive/v" version ".tar.gz"))
3220 (file-name (string-append name "-" version ".tar.gz"))
3221 (sha256
3222 (base32
3223 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3224 (build-system emacs-build-system)
3225 (propagated-inputs
090bdb9e 3226 `(("emacs-dash" ,emacs-dash)))
7bf837fd 3227 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
3228 (synopsis "Port of the Solarized theme for Emacs")
3229 (description
3230 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3231package provides a light and a dark variant.")
3232 (license license:gpl3+)))
3233
e7761186
AV
3234(define-public emacs-ahungry-theme
3235 (package
3236 (name "emacs-ahungry-theme")
e5f95406 3237 (version "1.10.0")
e7761186
AV
3238 (source
3239 (origin (method url-fetch)
f32ffa04 3240 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
3241 version ".tar"))
3242 (sha256
3243 (base32
e5f95406 3244 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
e7761186
AV
3245 (build-system emacs-build-system)
3246 (home-page "https://github.com/ahungry/color-theme-ahungry")
3247 (synopsis "Ahungry color theme for Emacs")
3248 (description "Ahungry theme for Emacs provides bright and bold colors.
3249If you load it from a terminal, you will be able to make use of the
3250transparent background. If you load it from a GUI, it will default to a
3251dark background.")
3252 (license license:gpl3+)))
3253
ab966b8f 3254(define-public emacs-2048-game
3255 (package
3256 (name "emacs-2048-game")
3257 (version "20151026.1233")
3258 (source
3259 (origin
3260 (method url-fetch)
3261 (uri (string-append "https://melpa.org/packages/2048-game-"
3262 version ".el"))
3263 (sha256
3264 (base32
3265 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3266 (build-system emacs-build-system)
3267 (home-page "https://bitbucket.org/zck/2048.el")
3268 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3269 (description
3270 "This program is an implementation of 2048 for Emacs.
3271The goal of this game is to create a tile with value 2048. The size of the
3272board and goal value can be customized.")
3273 (license license:gpl3+)))
3274
4da9beab 3275(define-public emacs-base16-theme
3276 (package
3277 (name "emacs-base16-theme")
3278 (version "2.1")
3279 (source
3280 (origin
3281 (method url-fetch)
3282 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3283 version ".tar"))
3284 (sha256
3285 (base32
3286 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3287 (build-system emacs-build-system)
3288 (home-page "https://github.com/belak/base16-emacs")
3289 (synopsis "Base16 color themes for Emacs")
3290 (description
3291 "Base16 provides carefully chosen syntax highlighting and a default set
3292of sixteen colors suitable for a wide range of applications. Base16 is not a
3293single theme but a set of guidelines with numerous implementations.")
3294 (license license:expat)))
3295
5c447e28
AP
3296(define-public emacs-smartparens
3297 (package
3298 (name "emacs-smartparens")
308b8f79 3299 (version "1.11.0")
5c447e28
AP
3300 (source (origin
3301 (method url-fetch)
3302 (uri (string-append
3303 "https://github.com/Fuco1/smartparens/archive/"
3304 version ".tar.gz"))
3305 (file-name (string-append name "-" version ".tar.gz"))
3306 (sha256
3307 (base32
308b8f79 3308 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
5c447e28 3309 (build-system emacs-build-system)
db95d8ca
MC
3310 (propagated-inputs
3311 `(("emacs-dash" ,emacs-dash)
3312 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5c447e28
AP
3313 (home-page "https://github.com/Fuco1/smartparens")
3314 (synopsis "Paredit-like insertion, wrapping and navigation with user
3315defined pairs")
3316 (description
3317 "Smartparens is a minor mode for Emacs that deals with parens pairs
3318and tries to be smart about it. It started as a unification effort to
3319combine functionality of several existing packages in a single,
3320compatible and extensible way to deal with parentheses, delimiters, tags
3321and the like. Some of these packages include autopair, textmate,
3322wrap-region, electric-pair-mode, paredit and others. With the basic
3323features found in other packages it also brings many improvements as
3324well as completely new features.")
3325 (license license:gpl3+)))
8eeb301d 3326
425d66f7
OP
3327(define-public emacs-highlight-symbol
3328 (package
3329 (name "emacs-highlight-symbol")
3330 (version "1.3")
3331 (source (origin
3332 (method url-fetch)
3333 (uri (string-append
3334 "https://github.com/nschum/highlight-symbol.el/archive/"
3335 version ".tar.gz"))
3336 (file-name (string-append name "-" version ".tar.gz"))
3337 (sha256
3338 (base32
3339 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3340 (build-system emacs-build-system)
3341 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3342 (synopsis "Automatic and manual symbol highlighting for Emacs")
3343 (description
3344 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3345point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3346the symbol at point highlighted.
3347
3348The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3349@code{highlight-symbol-next-in-defun} and
3350@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3351of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3352bindings @code{M-p} and @code{M-p} for navigation. When
3353@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3354regardless of @code{highlight-symbol-idle-delay}.
3355
3356@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3357 (license license:gpl2+)))
3358
8f82641a
RJ
3359(define-public emacs-hl-todo
3360 (package
3361 (name "emacs-hl-todo")
f61aaaf3 3362 (version "1.8.0")
8f82641a
RJ
3363 (source (origin
3364 (method url-fetch)
3365 (uri (string-append
3366 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3367 version "/hl-todo.el"))
0e7c4089 3368 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
3369 (sha256
3370 (base32
f61aaaf3 3371 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
8f82641a
RJ
3372 (build-system emacs-build-system)
3373 (home-page "https://github.com/tarsius/hl-todo")
3374 (synopsis "Emacs mode to highlight TODO and similar keywords")
3375 (description
3376 "This package provides an Emacs mode to highlight TODO and similar
3377keywords in comments and strings. This package also provides commands for
3378moving to the next or previous keyword and to invoke @code{occur} with a
3379regexp that matches all known keywords.")
3380 (license license:gpl3+)))
3381
480f7350
RW
3382(define-public emacs-perspective
3383 (package
3384 (name "emacs-perspective")
3385 (version "1.12")
3386 (source
3387 (origin
3388 (method url-fetch)
3389 (uri (string-append "https://github.com/nex3/perspective-el/"
3390 "archive/" version ".tar.gz"))
3391 (file-name (string-append name "-" version ".tar.gz"))
3392 (sha256
3393 (base32
3394 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3395 (build-system emacs-build-system)
7bf837fd 3396 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
3397 (synopsis "Switch between named \"perspectives\"")
3398 (description
3399 "This package provides tagged workspaces in Emacs, similar to workspaces in
3400windows managers such as Awesome and XMonad. @code{perspective.el} provides
3401multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3402perspective is composed of a window configuration and a set of buffers.
3403Switching to a perspective activates its window configuration, and when in a
3404perspective only its buffers are available by default.")
3405 ;; This package is released under the same license as Emacs (GPLv3+) or
3406 ;; the Expat license.
3407 (license license:gpl3+)))
3408
439ad15d
MC
3409(define-public emacs-test-simple
3410 (package
3411 (name "emacs-test-simple")
3412 (version "1.3.0")
3413 (source
3414 (origin
3415 (method url-fetch)
3416 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3417 version ".el"))
3418 (sha256
3419 (base32
3420 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3421 (build-system emacs-build-system)
3422 (home-page "https://github.com/rocky/emacs-test-simple")
3423 (synopsis "Simple unit test framework for Emacs Lisp")
3424 (description
3425 "Test Simple is a simple unit test framework for Emacs Lisp. It
3426alleviates the need for context macros, enclosing specifications or required
3427test tags. It supports both interactive and non-interactive use.")
3428 (license license:gpl3+)))
3429
fa1a17b7
MC
3430(define-public emacs-load-relative
3431 (package
3432 (name "emacs-load-relative")
3433 (version "1.3")
3434 (source
3435 (origin
3436 (method url-fetch)
3437 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3438 version ".el"))
3439 (sha256
3440 (base32
3441 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3442 (build-system emacs-build-system)
3443 (home-page "http://github.com/rocky/emacs-load-relative")
3444 (synopsis "Emacs Lisp relative file loading related functions")
3445 (description
3446 "Provides functions which facilitate writing multi-file Emacs packages
3447and running from the source tree without having to \"install\" code or fiddle
3448with @{load-path}.
3449
3450The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3451another (presumably currently running) Emacs Lisp file.")
3452 (license license:gpl3+)))
3453
fd38bfe2
MC
3454(define-public emacs-loc-changes
3455 (package
3456 (name "emacs-loc-changes")
3457 (version "1.2")
3458 (source
3459 (origin
3460 (method url-fetch)
3461 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3462 version ".el"))
3463 (sha256
3464 (base32
3465 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3466 (build-system emacs-build-system)
3467 (home-page "https://github.com/rocky/emacs-loc-changes")
3468 (synopsis "Keeps track of positions even after buffer changes")
3469 (description
3470 "This Emacs package provides a mean to track important buffer positions
3471after buffer changes.")
3472 (license license:gpl3+)))
3473
b1968d86
MC
3474(define-public emacs-realgud
3475 (package
3476 (name "emacs-realgud")
5368e67c 3477 (version "1.4.5")
b1968d86
MC
3478 (source
3479 (origin
3480 (method url-fetch)
3481 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3482 version ".tar"))
3483 (sha256
3484 (base32
5368e67c 3485 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
b1968d86
MC
3486 (build-system emacs-build-system)
3487 (arguments
3488 `(#:tests? #t
3489 #:phases
3490 (modify-phases %standard-phases
aea388cf 3491 (add-after 'set-emacs-load-path 'fix-autogen-script
b1968d86
MC
3492 (lambda _
3493 (substitute* "autogen.sh"
3494 (("./configure") "sh configure"))))
3495 (add-after 'fix-autogen-script 'autogen
3496 (lambda _
3497 (setenv "CONFIG_SHELL" "sh")
3498 (invoke "sh" "autogen.sh")))
3499 (add-after 'fix-autogen-script 'set-home
3500 (lambda _
3501 (setenv "HOME" (getenv "TMPDIR"))))
3502 (add-before 'patch-el-files 'remove-realgud-pkg.el
3503 (lambda _
3504 ;; XXX: This file is auto-generated at some point and causes
3505 ;; substitute* to crash during the `patch-el-files' phase with:
3506 ;; ERROR: In procedure stat: No such file or directory:
3507 ;; "./realgud-pkg.el"
3508 (delete-file "./realgud-pkg.el")
3509 ;; FIXME: `patch-el-files' crashes on this file with error:
3510 ;; unable to locate "bashdb".
3511 (delete-file "./test/test-regexp-bashdb.el"))))
3512 #:include (cons* ".*\\.el$" %default-include)))
3513 (native-inputs
3514 `(("autoconf" ,autoconf)
3515 ("automake" ,automake)
3516 ("emacs-test-simple" ,emacs-test-simple)))
3517 (propagated-inputs
3518 `(("emacs-load-relative" ,emacs-load-relative)
3519 ("emacs-loc-changes" ,emacs-loc-changes)))
3520 (home-page "https://github.com/realgud/realgud/")
3521 (synopsis
3522 "Modular front-end for interacting with external debuggers")
3523 (description
3524 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3525with external debuggers. It integrates various debuggers such as gdb, pdb,
3526ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3527sources. Unlike GUD, it also supports running multiple debug sessions in
3528parallel.")
3529 (license license:gpl3+)))
3530
36e5d103
RJ
3531(define-public emacs-request
3532 (package
3533 (name "emacs-request")
5a545aab 3534 (version "0.3.0")
36e5d103 3535 (source (origin
5a545aab
RW
3536 (method git-fetch)
3537 (uri (git-reference
3538 (url "https://github.com/tkf/emacs-request.git")
3539 (commit (string-append "v" version))))
3540 (file-name (string-append name "-" version "-checkout"))
36e5d103 3541 (sha256
5a545aab
RW
3542 (base32
3543 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
36e5d103 3544 (build-system emacs-build-system)
4e782fff
MC
3545 (propagated-inputs
3546 `(("emacs-deferred" ,emacs-deferred)))
36e5d103
RJ
3547 (home-page "https://github.com/tkf/emacs-request")
3548 (synopsis "Package for speaking HTTP in Emacs Lisp")
3549 (description "This package provides a HTTP request library with multiple
3550backends. It supports url.el which is shipped with Emacs and the curl command
3551line program.")
3552 (license license:gpl3+)))
3553
f1b61e26 3554(define-public emacs-rudel
3555 (package
3556 (name "emacs-rudel")
3557 (version "0.3.1")
3558 (source
3559 (origin
3560 (method url-fetch)
3561 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3562 version ".tar"))
3563 (sha256
3564 (base32
3565 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3566 (build-system emacs-build-system)
3567 (home-page "http://rudel.sourceforge.net/")
3568 (synopsis "Collaborative editing framework")
3569 (description
3570 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3571is to share buffers with other users in order to edit the contents of those
3572buffers collaboratively. Rudel supports multiple backends to enable
3573communication with other collaborative editors using different protocols,
3574though currently Obby (for use with the Gobby editor) is the only
3575fully-functional one.")
3576 (license license:gpl3+)))
3577
79b3d3ea
RW
3578(define-public emacs-hydra
3579 (package
3580 (name "emacs-hydra")
9932dabf 3581 (version "0.14.0")
79b3d3ea
RW
3582 (source
3583 (origin
3584 (method url-fetch)
3585 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3586 version ".tar.gz"))
3587 (file-name (string-append name "-" version ".tar.gz"))
3588 (sha256
3589 (base32
9932dabf 3590 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
79b3d3ea
RW
3591 (build-system emacs-build-system)
3592 (home-page "https://github.com/abo-abo/hydra")
3593 (synopsis "Make Emacs bindings that stick around")
3594 (description
3595 "This package can be used to tie related commands into a family of short
3596bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3597the prefixed binding), all the heads can be called in succession with only a
3598short extension. Any binding that isn't the Hydra's head vanquishes the
3599Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3600serve its original purpose, calling the command assigned to it. This makes
3601the Hydra very seamless; it's like a minor mode that disables itself
3602automatically.")
3603 (license license:gpl3+)))
3604
12db29ba
RW
3605(define-public emacs-ivy
3606 (package
3607 (name "emacs-ivy")
a8374234 3608 (version "0.10.0")
12db29ba
RW
3609 (source
3610 (origin
a8374234
RW
3611 (method git-fetch)
3612 (uri (git-reference
3613 (url "https://github.com/abo-abo/swiper.git")
3614 (commit version)))
3615 (file-name (string-append name "-" version "-checkout"))
12db29ba
RW
3616 (sha256
3617 (base32
a8374234 3618 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
12db29ba 3619 (build-system emacs-build-system)
5f66a0a7
RW
3620 (arguments
3621 `(#:phases
3622 (modify-phases %standard-phases
3623 (add-after 'install 'install-doc
3624 (lambda* (#:key outputs #:allow-other-keys)
3625 (let* ((out (assoc-ref outputs "out"))
3626 (info (string-append out "/share/info")))
3627 (with-directory-excursion "doc"
3628 (unless (zero? (system* "makeinfo" "ivy.texi"))
3629 (error "makeinfo failed"))
3630 (install-file "ivy.info" info))))))))
12db29ba
RW
3631 (propagated-inputs
3632 `(("emacs-hydra" ,emacs-hydra)))
5f66a0a7
RW
3633 (native-inputs
3634 `(("texinfo" ,texinfo)))
12db29ba
RW
3635 (home-page "http://oremacs.com/swiper/")
3636 (synopsis "Incremental vertical completion for Emacs")
3637 (description
3638 "This package provides @code{ivy-read} as an alternative to
3639@code{completing-read} and similar functions. No attempt is made to determine
3640the best candidate. Instead, the user can navigate candidates with
3641@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3642splitting the input text by spaces and re-building it into a regular
3643expression.")
3644 (license license:gpl3+)))
3645
da23cc00
OP
3646(define-public emacs-ivy-yasnippet
3647 (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4"))
3648 (package
3649 (name "emacs-ivy-yasnippet")
3650 (version (git-version "0.1" "1" commit))
3651 (source
3652 (origin
3653 (method git-fetch)
3654 (uri (git-reference
3655 (url "https://github.com/mkcms/ivy-yasnippet.git")
3656 (commit commit)))
3657 (file-name (git-file-name name version))
3658 (sha256
3659 (base32
3660 "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13"))))
3661 (build-system emacs-build-system)
3662 (propagated-inputs
3663 `(("emacs-ivy" ,emacs-ivy)
3664 ("emacs-yasnippet" ,emacs-yasnippet)
3665 ("emacs-dash" ,emacs-dash)))
3666 (home-page "https://github.com/mkcms/ivy-yasnippet")
3667 (synopsis "Preview @code{yasnippets} with @code{ivy}")
3668 (description "This package allows you to select @code{yasnippet}
3669snippets using @code{ivy} completion. When current selection changes in the
3670minibuffer, the snippet contents are temporarily expanded in the buffer. To
3671use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
3672@code{yas-minor-mode} first).")
3673 (license license:gpl3+))))
3674
5edc24ec
RW
3675(define-public emacs-avy
3676 (package
3677 (name "emacs-avy")
3678 (version "0.4.0")
3679 (source
3680 (origin
3681 (method url-fetch)
3682 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3683 version ".tar.gz"))
3684 (file-name (string-append name "-" version ".tar.gz"))
3685 (sha256
3686 (base32
3687 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3688 (build-system emacs-build-system)
3689 (home-page "https://github.com/abo-abo/avy")
3690 (synopsis "Tree-based completion for Emacs")
3691 (description
3692 "This package provides a generic completion method based on building a
3693balanced decision tree with each candidate being a leaf. To traverse the tree
3694from the root to a desired leaf, typically a sequence of @code{read-key} can
3695be used.
3696
3697In order for @code{read-key} to make sense, the tree needs to be visualized
3698appropriately, with a character at each branch node. So this completion
3699method works only for things that you can see on your screen, all at once,
3700such as the positions of characters, words, line beginnings, links, or
3701windows.")
3702 (license license:gpl3+)))
3703
93dba17c
RW
3704(define-public emacs-ace-window
3705 (package
3706 (name "emacs-ace-window")
3707 (version "0.9.0")
3708 (source
3709 (origin
3710 (method url-fetch)
3711 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3712 version ".tar.gz"))
3713 (file-name (string-append name "-" version ".tar.gz"))
3714 (sha256
3715 (base32
3716 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3717 (build-system emacs-build-system)
3718 (propagated-inputs
3719 `(("emacs-avy" ,emacs-avy)))
3720 (home-page "https://github.com/abo-abo/ace-window")
3721 (synopsis "Quickly switch windows in Emacs")
3722 (description
3723 "@code{ace-window} is meant to replace @code{other-window}.
3724In fact, when there are only two windows present, @code{other-window} is
3725called. If there are more, each window will have its first character
3726highlighted. Pressing that character will switch to that window.")
3727 (license license:gpl3+)))
3728
e1918ce4
RW
3729(define-public emacs-iedit
3730 (package
3731 (name "emacs-iedit")
f9f77a9e 3732 (version "0.9.9.9")
e1918ce4
RW
3733 (source
3734 (origin
3735 (method url-fetch)
3736 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3737 version ".tar.gz"))
3738 (file-name (string-append name "-" version ".tar.gz"))
3739 (sha256
3740 (base32
f9f77a9e 3741 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
3742 (build-system emacs-build-system)
3743 (home-page "http://www.emacswiki.org/emacs/Iedit")
3744 (synopsis "Edit multiple regions in the same way simultaneously")
3745 (description
3746 "This package is an Emacs minor mode and allows you to edit one
3747occurrence of some text in a buffer (possibly narrowed) or region, and
3748simultaneously have other occurrences edited in the same way.
3749
3750You can also use Iedit mode as a quick way to temporarily show only the buffer
3751lines that match the current text being edited. This gives you the effect of
3752a temporary @code{keep-lines} or @code{occur}.")
3753 (license license:gpl3+)))
3754
30cf7070
CL
3755(define-public emacs-zoutline
3756 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3757 (revision "0"))
3758 (package
3759 (name "emacs-zoutline")
3760 (version (git-version "0.1" revision commit))
3761 (home-page "https://github.com/abo-abo/zoutline")
3762 (source (origin
3763 (method git-fetch)
3764 (uri (git-reference (url home-page) (commit commit)))
3765 (sha256
3766 (base32
3767 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3768 (file-name (git-file-name name version))))
3769 (build-system emacs-build-system)
3770 (synopsis "Simple outline library")
3771 (description
3772 "This library provides helpers for outlines. Outlines allow users to
3773navigate code in a tree-like fashion.")
3774 (license license:gpl3+))))
3775
a5338dd4 3776(define-public emacs-lispy
e8360eb8
CL
3777 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3778 ;; since.
e5d57c1c 3779 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
e8360eb8
CL
3780 (revision "0"))
3781 (package
3782 (name "emacs-lispy")
3783 (version (git-version "0.26.0" revision commit))
3784 (home-page "https://github.com/abo-abo/lispy")
3785 (source (origin
3786 (method git-fetch)
3787 (uri (git-reference (url home-page) (commit commit)))
3788 (sha256
3789 (base32
e5d57c1c 3790 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
e8360eb8
CL
3791 (file-name (git-file-name name version))))
3792 (build-system emacs-build-system)
3793 (propagated-inputs
3794 `(("emacs-ace-window" ,emacs-ace-window)
3795 ("emacs-iedit" ,emacs-iedit)
3796 ("emacs-ivy" ,emacs-ivy)
3797 ("emacs-hydra" ,emacs-hydra)
3798 ("emacs-zoutline" ,emacs-zoutline)))
3799 (synopsis "Modal S-expression editing")
3800 (description
3801 "Due to the structure of Lisp syntax it's very rare for the programmer
3802to want to insert characters right before \"(\" or right after \")\". Thus
a5338dd4
RW
3803unprefixed printable characters can be used to call commands when the point is
3804at one of these special locations. Lispy provides unprefixed keybindings for
3805S-expression editing when point is at the beginning or end of an
3806S-expression.")
e8360eb8 3807 (license license:gpl3+))))
a5338dd4 3808
28ca6b35
CL
3809(define-public emacs-lispyville
3810 ;; Later versions need a more recent Evil, with an evil-define-key*
3811 ;; supporting nil for the state.
3812 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
3813 (revision "0"))
3814 (package
3815 (name "emacs-lispyville")
3816 (version (git-version "0.1" revision commit))
3817 (home-page "https://github.com/noctuid/lispyville")
3818 (source (origin
3819 (method git-fetch)
3820 (uri (git-reference (url home-page) (commit commit)))
3821 (sha256
3822 (base32
3823 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
3824 (file-name (git-file-name name version))))
3825 (propagated-inputs
3826 `(("emacs-evil" ,emacs-evil)
3827 ("emacs-lispy" ,emacs-lispy)))
3828 (build-system emacs-build-system)
3829 (synopsis "Minor mode for integrating Evil with lispy")
3830 (description
3831 "LispyVille's main purpose is to provide a Lisp editing environment
3832suited towards Evil users. It can serve as a minimal layer on top of lispy
3833for better integration with Evil, but it does not require the use of lispy’s
3834keybinding style. The provided commands allow for editing Lisp in normal
3835state and will work even without lispy being enabled.")
3836 (license license:gpl3+))))
a5338dd4 3837
8eeb301d
AP
3838(define-public emacs-clojure-mode
3839 (package
3840 (name "emacs-clojure-mode")
2fa6f63b 3841 (version "5.6.1")
8eeb301d
AP
3842 (source (origin
3843 (method url-fetch)
3844 (uri (string-append
3845 "https://github.com/clojure-emacs/clojure-mode/archive/"
3846 version ".tar.gz"))
3847 (file-name (string-append name "-" version ".tar.gz"))
3848 (sha256
3849 (base32
2fa6f63b 3850 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
8eeb301d 3851 (build-system emacs-build-system)
92d9cfef
AI
3852 (native-inputs
3853 `(("emacs-dash" ,emacs-dash)
3854 ("emacs-s" ,emacs-s)
3855 ("ert-runner" ,ert-runner)))
3856 (arguments
d1d41db6
MC
3857 `(#:tests? #t
3858 #:test-command '("ert-runner")))
7bf837fd 3859 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
3860 (synopsis "Major mode for Clojure code")
3861 (description
3862 "This Emacs package provides font-lock, indentation, navigation and basic
3863refactoring for the @uref{http://clojure.org, Clojure programming language}.
3864It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3865 (license license:gpl3+)))
d345491a
AP
3866
3867(define-public emacs-epl
3868 (package
3869 (name "emacs-epl")
3870 (version "0.8")
3871 (source (origin
3872 (method url-fetch)
3873 (uri (string-append
3874 "https://github.com/cask/epl/archive/"
3875 version ".tar.gz"))
5a6f7a68 3876 (file-name (string-append name "-" version ".tar.gz"))
d345491a
AP
3877 (sha256
3878 (base32
3879 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3880 (build-system emacs-build-system)
7bf837fd 3881 (home-page "https://github.com/cask/epl")
d345491a
AP
3882 (synopsis "Emacs Package Library")
3883 (description
3884 "A package management library for Emacs, based on @code{package.el}.
3885
3886The purpose of this library is to wrap all the quirks and hassle of
3887@code{package.el} into a sane API.")
3888 (license license:gpl3+)))
ad6c4bc4
AP
3889
3890(define-public emacs-queue
3891 (package
3892 (name "emacs-queue")
5f51f39e 3893 (version "0.2")
ad6c4bc4 3894 (source (origin
02736daa 3895 (method url-fetch)
f32ffa04 3896 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
3897 version ".el"))
3898 (sha256
3899 (base32
5f51f39e 3900 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
ad6c4bc4
AP
3901 (build-system emacs-build-system)
3902 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3903 (synopsis "Queue data structure for Emacs")
3904 (description
3905 "This Emacs library provides queue data structure. These queues can be
3906used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3907stack, i.e. elements can be added to the front or back of the queue, and can
3908be removed from the front. This type of data structure is sometimes called an
3909\"output-restricted deque\".")
3910 (license license:gpl3+)))
32abfcf4
AP
3911
3912(define-public emacs-pkg-info
3913 (package
3914 (name "emacs-pkg-info")
3915 (version "0.6")
3916 (source (origin
3917 (method url-fetch)
3918 (uri (string-append
3919 "https://github.com/lunaryorn/pkg-info.el/archive/"
3920 version ".tar.gz"))
3921 (file-name (string-append name "-" version ".tar.gz"))
3922 (sha256
3923 (base32
3924 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3925 (build-system emacs-build-system)
3926 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3927 (home-page "https://github.com/lunaryorn/pkg-info.el")
3928 (synopsis "Information about Emacs packages")
3929 (description
3930 "This library extracts information from the installed Emacs packages.")
3931 (license license:gpl3+)))
565bccc5
AP
3932
3933(define-public emacs-spinner
3934 (package
3935 (name "emacs-spinner")
cd4d96b8 3936 (version "1.7.3")
565bccc5 3937 (source (origin
02736daa 3938 (method url-fetch)
f32ffa04 3939 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
3940 version ".el"))
3941 (sha256
3942 (base32
cd4d96b8 3943 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
3944 (build-system emacs-build-system)
3945 (home-page "https://github.com/Malabarba/spinner.el")
3946 (synopsis "Emacs mode-line spinner for operations in progress")
3947 (description
3948 "This Emacs package adds spinners and progress-bars to the mode-line for
3949ongoing operations.")
3950 (license license:gpl3+)))
62a45cb6 3951
fd2d17cd
RJ
3952(define-public emacs-sparql-mode
3953 (package
3954 (name "emacs-sparql-mode")
3955 (version "2.0.1")
3956 (source (origin
3957 (method url-fetch)
3958 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3959 "v" version ".tar.gz"))
3960 (file-name (string-append name "-" version ".tar.gz"))
3961 (sha256
3962 (base32
3963 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3964 (build-system emacs-build-system)
3965 (home-page "https://github.com/ljos/sparql-mode")
3966 (synopsis "SPARQL mode for Emacs")
3967 (description "This package provides a major mode for Emacs that provides
3968syntax highlighting for SPARQL. It also provides a way to execute queries
3969against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3970possible to query other endpoints like DBPedia.")
3971 (license license:gpl3+)))
3972
6ede256f
DT
3973(define-public emacs-better-defaults
3974 (package
3975 (name "emacs-better-defaults")
3976 (version "0.1.3")
3977 (source
3978 (origin
3979 (method url-fetch)
3980 (uri (string-append "https://github.com/technomancy/better-defaults"
3981 "/archive/" version ".tar.gz"))
13384842 3982 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
3983 (sha256
3984 (base32
3985 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3986 (build-system emacs-build-system)
3987 (home-page "https://github.com/technomancy/better-defaults")
3988 (synopsis "Better defaults for Emacs")
3989 (description
3990 "Better defaults attempts to address the most obvious deficiencies of the
3991Emacs default configuration in uncontroversial ways that nearly everyone can
3992agree upon.")
3993 (license license:gpl3+)))
c5c08f1b 3994
7034791a
RJ
3995(define-public emacs-eprime
3996 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3997 (package
3998 (name "emacs-eprime")
3999 (version (string-append "20140513-" (string-take commit 7)))
4000 (source (origin
4001 (method url-fetch)
4002 (uri (string-append "https://raw.githubusercontent.com"
4003 "/AndrewHynes/eprime-mode/"
4004 commit "/eprime-mode.el"))
4005 (file-name (string-append "eprime-" version ".el"))
4006 (sha256
4007 (base32
4008 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
4009 (build-system emacs-build-system)
4010 (home-page "https://github.com/AndrewHynes/eprime-mode")
4011 (synopsis "E-prime checking mode for Emacs")
4012 (description "This package provides an E-prime checking mode for Emacs
4013that highlights non-conforming text. The subset of the English language called
4014E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
4015 (license license:gpl3+))))
4016
db29e598
KM
4017(define-public emacs-julia-mode
4018 ;; XXX: Upstream version remained stuck at 0.3. See
4019 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
4020 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
4021 (revision "1"))
4022 (package
4023 (name "emacs-julia-mode")
4024 (version (string-append "0.3-" revision "." (string-take commit 8)))
4025 (source
4026 (origin
4027 (method git-fetch)
4028 (uri (git-reference
4029 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
4030 (commit commit)))
4031 (file-name (string-append name "-" version "-checkout"))
4032 (sha256
4033 (base32
4034 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
4035 (build-system emacs-build-system)
4036 (arguments
d1d41db6
MC
4037 `(#:tests? #t
4038 #:test-command '("emacs" "--batch"
4039 "-l" "julia-mode-tests.el"
4040 "-f" "ert-run-tests-batch-and-exit")))
db29e598
KM
4041 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
4042 (synopsis "Major mode for Julia")
4043 (description "This Emacs package provides a mode for the Julia
4044programming language.")
4045 (license license:expat))))
4046
41184943
RJ
4047(define-public emacs-ess
4048 (package
4049 (name "emacs-ess")
a209907e 4050 (version "16.10")
41184943
RJ
4051 (source (origin
4052 (method url-fetch)
4053 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
4054 version ".tgz"))
4055 (sha256
4056 (base32
a209907e
KM
4057 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
4058 (modules '((guix build utils)))
4059 (snippet
4060 '(begin
4061 ;; Stop ESS from trying to bundle an external julia-mode.el.
4062 (substitute* "lisp/Makefile"
4063 (("^\tjulia-mode.elc\\\\\n") "")
4064 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
6cbee49d
MW
4065 "all: $(ELC) ess-custom.el"))
4066 #t))))
41184943
RJ
4067 (build-system gnu-build-system)
4068 (arguments
eaff063a 4069 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
a209907e 4070 `(#:make-flags (list (string-append "PREFIX=" %output)
eaff063a
RJ
4071 (string-append "ETCDIR=" %output "/"
4072 ,base-directory "/etc")
4073 (string-append "LISPDIR=" %output "/"
4074 ,base-directory))
4075 #:phases
4076 (modify-phases %standard-phases
4077 (delete 'configure)
4078 (add-before 'build 'more-shebang-patching
4079 (lambda* (#:key inputs #:allow-other-keys)
4080 (substitute* "Makeconf"
4081 (("SHELL = /bin/sh")
4082 (string-append "SHELL = " (which "sh"))))))
4083 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
4084 ;; them in HOME, so it needs to be writeable.
4085 (add-before 'build 'set-HOME
a209907e
KM
4086 (lambda _ (setenv "HOME" "/tmp") #t))
4087 (replace 'check
4088 (lambda _
4089 (zero? (system* "make" "test"))))))))
41184943
RJ
4090 (inputs
4091 `(("emacs" ,emacs-minimal)
2d7c4ae3 4092 ("r-minimal" ,r-minimal)))
41184943
RJ
4093 (native-inputs
4094 `(("perl" ,perl)
4095 ("texinfo" ,texinfo)
63096366
RW
4096 ("texlive" ,(texlive-union (list texlive-latex-natbib
4097 texlive-latex-seminar
4098 texlive-latex-hyperref
4099 texlive-tex-texinfo)))))
d062957a 4100 (home-page "https://ess.r-project.org/")
41184943
RJ
4101 (synopsis "Emacs mode for statistical analysis programs")
4102 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4103Emacs. It is designed to support editing of scripts and interaction with
4104various statistical analysis programs such as R and OpenBUGS.")
4105 (license license:gpl2+)))
4106
c5c08f1b
DT
4107(define-public emacs-smex
4108 (package
4109 (name "emacs-smex")
4110 (version "3.0")
4111 (source (origin
4112 (method url-fetch)
4113 (uri (string-append "https://raw.githubusercontent.com"
4114 "/nonsequitur/smex/" version "/smex.el"))
4115 (file-name (string-append "smex-" version ".el"))
4116 (sha256
4117 (base32
4118 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4119 (build-system emacs-build-system)
7bf837fd 4120 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
4121 (synopsis "M-x interface with Ido-style fuzzy matching")
4122 (description
4123 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4124convenient interface to your recently and most frequently used commands. And
4125to all the other commands, too.")
4126 (license license:gpl3+)))
3e5be84b
DT
4127
4128(define-public emacs-js2-mode
4129 (package
4130 (name "emacs-js2-mode")
4131 (version "20150909")
4132 (source (origin
4133 (method url-fetch)
4134 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4135 version ".tar.gz"))
4136 (file-name (string-append name "-" version ".tar.gz"))
4137 (sha256
4138 (base32
4139 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4140 (build-system emacs-build-system)
4141 (home-page "https://github.com/mooz/js2-mode/")
4142 (synopsis "Improved JavaScript editing mode for Emacs")
4143 (description
4144 "Js2-mode provides a JavaScript major mode for Emacs that is more
4145advanced than the built-in javascript-mode. Features include accurate syntax
4146highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4147errors and strict-mode warnings, smart line-wrapping within comments and
4148strings, and code folding.")
4149 (license license:gpl3+)))
b78b6e80
DT
4150
4151(define-public emacs-markdown-mode
4152 (package
4153 (name "emacs-markdown-mode")
2175a427 4154 (version "2.3")
b78b6e80
DT
4155 (source (origin
4156 (method url-fetch)
4157 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4158 "/markdown-mode/v" version
4159 "/markdown-mode.el"))
4160 (file-name (string-append "markdown-mode-" version ".el"))
4161 (sha256
4162 (base32
2175a427 4163 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
b78b6e80
DT
4164 (build-system emacs-build-system)
4165 (home-page "http://jblevins.org/projects/markdown-mode/")
4166 (synopsis "Emacs Major mode for Markdown files")
4167 (description
4168 "Markdown-mode is a major mode for editing Markdown-formatted text files
4169in Emacs.")
4170 (license license:gpl3+)))
a2670dde 4171
659f790b
OP
4172(define-public emacs-edit-indirect
4173 (package
4174 (name "emacs-edit-indirect")
4175 (version "0.1.4")
4176 (source
4177 (origin
4178 (method url-fetch)
4179 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4180 version ".tar.gz"))
4181 (file-name (string-append name "-" version ".tar.gz"))
4182 (sha256
4183 (base32
4184 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4185 (build-system emacs-build-system)
4186 (home-page "https://github.com/Fanael/edit-indirect")
4187 (synopsis "Edit regions in separate buffers")
4188 (description "This package allows you to edit regions in separate buffers,
4189like @code{org-edit-src-code} but for arbitrary regions.")
4190 (license license:gpl3+)))
4191
a2670dde
DT
4192(define-public emacs-projectile
4193 (package
4194 (name "emacs-projectile")
6461c44c 4195 (version "0.14.0")
a2670dde
DT
4196 (source (origin
4197 (method url-fetch)
4198 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4199 "/projectile/v" version "/projectile.el"))
4200 (file-name (string-append "projectile-" version ".el"))
4201 (sha256
4202 (base32
6461c44c 4203 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
4204 (build-system emacs-build-system)
4205 (propagated-inputs
4206 `(("emacs-dash" ,emacs-dash)
4207 ("emacs-pkg-info" ,emacs-pkg-info)))
4208 (home-page "https://github.com/bbatsov/projectile")
4209 (synopsis "Manage and navigate projects in Emacs easily")
4210 (description
4211 "This library provides easy project management and navigation. The
4212concept of a project is pretty basic - just a folder containing special file.
4213Currently git, mercurial and bazaar repos are considered projects by default.
4214If you want to mark a folder manually as a project just create an empty
4215.projectile file in it.")
4216 (license license:gpl3+)))
4aea1e01
DT
4217
4218(define-public emacs-elfeed
4219 (package
4220 (name "emacs-elfeed")
d5452aa2 4221 (version "3.0.0")
4aea1e01
DT
4222 (source (origin
4223 (method url-fetch)
4224 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4225 version ".tar.gz"))
4226 (file-name (string-append name "-" version ".tar.gz"))
4227 (sha256
4228 (base32
d5452aa2 4229 "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
4aea1e01 4230 (build-system emacs-build-system)
568f977f 4231 (arguments
d1d41db6
MC
4232 `(#:tests? #t
4233 #:test-command '("make" "test")))
4aea1e01
DT
4234 (home-page "https://github.com/skeeto/elfeed")
4235 (synopsis "Atom/RSS feed reader for Emacs")
4236 (description
4237 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4238and RSS, with a user interface inspired by notmuch.")
4239 (license license:gpl3+)))
c86f0207
DT
4240
4241(define-public emacs-rainbow-delimiters
4242 (package
4243 (name "emacs-rainbow-delimiters")
4244 (version "2.1.3")
4245 (source (origin
4246 (method url-fetch)
4247 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4248 "/rainbow-delimiters/" version
4249 "/rainbow-delimiters.el"))
4250 (file-name (string-append "rainbow-delimiters-" version ".el"))
4251 (sha256
4252 (base32
4253 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4254 (build-system emacs-build-system)
4255 (home-page "https://github.com/Fanael/rainbow-delimiters")
4256 (synopsis "Highlight brackets according to their depth")
4257 (description
4258 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4259highlights parentheses, brackets, and braces according to their depth. Each
4260successive level is highlighted in a different color, making it easy to spot
4261matching delimiters, orient yourself in the code, and tell which statements
4262are at a given level.")
4263 (license license:gpl3+)))
65b49ae7 4264
d95e8e01
RJ
4265(define-public emacs-rainbow-identifiers
4266 (package
4267 (name "emacs-rainbow-identifiers")
4268 (version "0.2.2")
4269 (source (origin
4270 (method url-fetch)
4271 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4272 "/rainbow-identifiers/" version
4273 "/rainbow-identifiers.el"))
4274 (file-name (string-append "rainbow-identifiers-" version ".el"))
4275 (sha256
4276 (base32
4277 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4278 (build-system emacs-build-system)
4279 (home-page "https://github.com/Fanael/rainbow-identifiers")
4280 (synopsis "Highlight identifiers in source code")
4281 (description
4282 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4283identifiers based on their names. Each identifier gets a color based on a hash
4284of its name.")
4285 (license license:bsd-2)))
4286
9619a95e
RJ
4287(define-public emacs-rainbow-mode
4288 (package
4289 (name "emacs-rainbow-mode")
61b31ac4 4290 (version "0.13")
9619a95e
RJ
4291 (source (origin
4292 (method url-fetch)
4293 (uri (string-append
4294 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4295 (sha256
4296 (base32
61b31ac4 4297 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
9619a95e
RJ
4298 (build-system emacs-build-system)
4299 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4300 (synopsis "Colorize color names in buffers")
4301 (description
4302 "This minor mode sets background color to strings that match color
4303names, e.g. #0000ff is displayed in white with a blue background.")
4304 (license license:gpl3+)))
4305
fede3a90
RW
4306(define-public emacs-visual-fill-column
4307 (package
4308 (name "emacs-visual-fill-column")
32e23aba 4309 (version "1.11")
fede3a90
RW
4310 (source (origin
4311 (method url-fetch)
4312 (uri (string-append "https://codeload.github.com/joostkremers/"
4313 "visual-fill-column/tar.gz/" version))
4314 (file-name (string-append name "-" version ".tar.gz"))
4315 (sha256
4316 (base32
32e23aba 4317 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
fede3a90
RW
4318 (build-system emacs-build-system)
4319 (home-page "https://github.com/joostkremers/visual-fill-column")
4320 (synopsis "Fill-column for visual-line-mode")
4321 (description
4322 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4323the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4324wrapping lines at the window edge, which is the standard behaviour of
4325@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4326@code{fill-column} is too large for the window, the text is wrapped at the
4327window edge.")
4328 (license license:gpl3+)))
4329
0ef1c223
KM
4330(define-public emacs-writeroom
4331 (package
4332 (name "emacs-writeroom")
4333 (version "3.7")
4334 (source (origin
4335 (method url-fetch)
4336 (uri (string-append
4337 "https://github.com/joostkremers/writeroom-mode/archive/"
4338 version ".tar.gz"))
4339 (file-name (string-append name "-" version ".tar.gz"))
4340 (sha256
4341 (base32
4342 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4343 (build-system emacs-build-system)
4344 (propagated-inputs
4345 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4346 (home-page "https://github.com/joostkremers/writeroom-mode")
4347 (synopsis "Distraction-free writing for Emacs")
4348 (description
4349 "This package defines a minor mode for distraction-free writing. Some of
4350the default effects include entering fullscreen, deleting other windows of the
4351current frame, disabling the mode line, and adding margins to the buffer that
4352restrict the text width to 80 characters.")
4353 (license license:bsd-3)))
4354
65b49ae7
DT
4355(define-public emacs-ido-completing-read+
4356 (package
4357 (name "emacs-ido-completing-read+")
4358 (version "3.12")
4359 (source (origin
4360 (method url-fetch)
4361 (uri (string-append "https://raw.githubusercontent.com"
4362 "/DarwinAwardWinner/ido-ubiquitous/v"
4363 version "/ido-completing-read+.el"))
4364 (file-name (string-append "ido-completing-read+-" version ".el"))
4365 (sha256
4366 (base32
4367 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4368 (build-system emacs-build-system)
4369 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4370 (synopsis "Replacement for completing-read using ido")
4371 (description
4372 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4373Importantly, it detects edge cases that ordinary ido cannot handle and either
4374adjusts them so ido can handle them, or else simply falls back to the standard
4375Emacs completion function instead.")
4376 (license license:gpl3+)))
529fe992
DT
4377
4378(define-public emacs-ido-ubiquitous
4379 (package
4380 (name "emacs-ido-ubiquitous")
4381 (version "3.12")
4382 (source (origin
4383 (method url-fetch)
4384 (uri (string-append "https://raw.githubusercontent.com"
4385 "/DarwinAwardWinner/ido-ubiquitous/v"
4386 version "/ido-ubiquitous.el"))
4387 (file-name (string-append "ido-ubiquitous-" version ".el"))
4388 (sha256
4389 (base32
4390 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4391 (build-system emacs-build-system)
4392 (propagated-inputs
4393 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4394 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4395 (synopsis "Use ido (nearly) everywhere")
4396 (description
4397 "Ido-ubiquitous enables ido-style completion for almost every function
4398that uses the standard completion function completing-read.")
4399 (license license:gpl3+)))
63de1231
DT
4400
4401(define-public emacs-yaml-mode
4402 (package
4403 (name "emacs-yaml-mode")
847284e1 4404 (version "0.0.13")
63de1231
DT
4405 (source (origin
4406 (method url-fetch)
4407 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4408 "/yaml-mode/v" version "/yaml-mode.el"))
4409 (file-name (string-append "yaml-mode-" version ".el"))
4410 (sha256
4411 (base32
847284e1 4412 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
4413 (build-system emacs-build-system)
4414 (home-page "https://github.com/yoshiki/yaml-mode")
4415 (synopsis "Major mode for editing YAML files")
4416 (description
4417 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4418serialization format. It was initially developed by Yoshiki Kurihara and many
4419features were added by Marshall Vandegrift. As YAML and Python share the fact
4420that indentation determines structure, this mode provides indentation and
4421indentation command behavior very similar to that of python-mode.")
4422 (license license:gpl3+)))
7529c883
DT
4423
4424(define-public emacs-web-mode
4425 (package
4426 (name "emacs-web-mode")
4427 (version "14")
4428 (source (origin
4429 (method url-fetch)
4430 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4431 "/web-mode/v" version "/web-mode.el"))
4432 (file-name (string-append "web-mode-" version ".el"))
4433 (sha256
4434 (base32
4435 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
4436 (build-system emacs-build-system)
4437 (synopsis "Major mode for editing web templates")
4438 (description "Web-mode is an Emacs major mode for editing web templates
4439aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4440client/server side engines). Web-mode is compatible with many template
4441engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4442Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4443Dust.js, React/JSX, Angularjs, ejs, etc.")
4444 (home-page "http://web-mode.org/")
4445 (license license:gpl3+)))
ae609001 4446
814da59f
CB
4447(define-public emacs-wgrep
4448 (package
4449 (name "emacs-wgrep")
4450 (version "2.1.10")
4451 (source (origin
4452 (method url-fetch)
4453 (uri (string-append
4454 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
4455 version ".tar.gz"))
4456 (file-name (string-append name "-" version ".tar.gz"))
4457 (sha256
4458 (base32
4459 "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
4460 (build-system emacs-build-system)
4461 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4462 (synopsis "Edit a grep buffer and apply those changes to the files")
4463 (description
4464 "Emacs wgrep allows you to edit a grep buffer and apply those changes to
4465the file buffer.")
4466 (license license:gpl3+)))
4467
ae609001
MJ
4468(define-public emacs-helm
4469 (package
4470 (name "emacs-helm")
e0b0cafd 4471 (version "2.9.0")
ae609001
MJ
4472 (source (origin
4473 (method url-fetch)
4474 (uri (string-append
4475 "https://github.com/" name "/helm/archive/v"
4476 version ".tar.gz"))
4477 (file-name (string-append name "-" version ".tar.gz"))
4478 (sha256
4479 (base32
e0b0cafd 4480 "1798gn0za11cxdbi436javfczv4abniccxcl0jppl463r8lzb8is"))))
ae609001
MJ
4481 (build-system emacs-build-system)
4482 (propagated-inputs
4483 `(("emacs-async" ,emacs-async)
4484 ("emacs-popup" ,emacs-popup)))
4485 (home-page "https://emacs-helm.github.io/helm/")
4486 (synopsis "Incremental completion and selection narrowing
4487framework for Emacs")
4488 (description "Helm is incremental completion and selection narrowing
4489framework for Emacs. It will help steer you in the right direction when
4490you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4491of @code{anything.el} originally written by Tamas Patrovic and can be
4492considered to be its successor. Helm sets out to clean up the legacy code in
4493@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4494not tied in the trap of backward compatibility.")
4495 (license license:gpl3+)))
f9be4366 4496
03cc1cf3
KM
4497(define-public emacs-helm-swoop
4498 (package
4499 (name "emacs-helm-swoop")
d3d57661 4500 (version "1.7.4")
03cc1cf3
KM
4501 (source (origin
4502 (method url-fetch)
4503 (uri (string-append
4504 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4505 version
4506 ".tar.gz"))
4507 (file-name (string-append name "-" version ".tar.gz"))
4508 (sha256
4509 (base32
d3d57661 4510 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
03cc1cf3
KM
4511 (build-system emacs-build-system)
4512 (propagated-inputs
4513 `(("emacs-helm" ,emacs-helm)))
4514 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4515 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4516 (description
4517 "This package builds on the Helm interface to provide several commands
4518for search-based navigation of buffers.")
4519 (license license:gpl2+)))
4520
f69c29f7
KM
4521(define-public emacs-helm-projectile
4522 (package
4523 (name "emacs-helm-projectile")
4524 (version "0.14.0")
4525 (source (origin
4526 (method url-fetch)
4527 (uri (string-append
4528 "https://github.com/bbatsov/helm-projectile/archive/v"
4529 version
4530 ".tar.gz"))
4531 (file-name (string-append name "-" version ".tar.gz"))
4532 (sha256
4533 (base32
4534 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4535 (build-system emacs-build-system)
4536 (propagated-inputs
4537 `(("emacs-dash" ,emacs-dash)
4538 ("emacs-helm" ,emacs-helm)
4539 ("emacs-projectile" ,emacs-projectile)))
4540 (home-page "https://github.com/bbatsov/helm-projectile")
4541 (synopsis "Helm integration for Projectile")
4542 (description
4543 "This Emacs library provides a Helm interface for Projectile.")
4544 (license license:gpl3+)))
4545
2e4bb8c8 4546(define-public emacs-helm-make
555a7429 4547 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
2e4bb8c8
OP
4548 (revision "1"))
4549 (package
4550 (name "emacs-helm-make")
4551 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
4552 (source
4553 (origin
4554 (method git-fetch)
4555 (uri (git-reference
4556 (url "https://github.com/abo-abo/helm-make.git")
4557 (commit commit)))
4558 (file-name (string-append name "-" version "-checkout"))
4559 (sha256
4560 (base32
555a7429 4561 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
2e4bb8c8
OP
4562 (build-system emacs-build-system)
4563 (propagated-inputs
4564 `(("emacs-helm" ,emacs-helm)
4565 ("emacs-projectile" ,emacs-projectile)))
4566 (home-page "https://github.com/abo-abo/helm-make")
4567 (synopsis "Select a Makefile target with helm")
4568 (description "@code{helm-make} or @code{helm-make-projectile} will give
4569you a @code{helm} selection of directory Makefile's targets. Selecting a
4570target will call @code{compile} on it.")
4571 (license license:gpl3+))))
4572
f9be4366
AP
4573(define-public emacs-cider
4574 (package
4575 (name "emacs-cider")
1f143575 4576 (version "0.15.1")
f9be4366
AP
4577 (source (origin
4578 (method url-fetch)
4579 (uri (string-append
4580 "https://github.com/clojure-emacs/cider/archive/v"
4581 version ".tar.gz"))
4582 (file-name (string-append name "-" version ".tar.gz"))
4583 (sha256
4584 (base32
1f143575 4585 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
f9be4366 4586 (build-system emacs-build-system)
65e4109c
SB
4587 (arguments
4588 '(#:exclude ; Don't exclude 'cider-test.el'.
4589 '("^\\.dir-locals\\.el$" "^test/")))
f9be4366
AP
4590 (propagated-inputs
4591 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4592 ("emacs-spinner" ,emacs-spinner)
4593 ("emacs-pkg-info" ,emacs-pkg-info)
d0a52052 4594 ("emacs-queue" ,emacs-queue)))
f9be4366
AP
4595 (home-page "https://cider.readthedocs.org/")
4596 (synopsis "Clojure development environment for Emacs")
4597 (description
4598 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
4599provide an interactive development experience similar to the one you'd get
4600when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
4601Geiser) and Smalltalk.
4602
4603CIDER is the successor to the now deprecated combination of using SLIME +
4604swank-clojure for Clojure development.
4605
4606There are plenty of differences between CIDER and SLIME, but the core ideas
4607are pretty much the same (and SLIME served as the principle inspiration for
4608CIDER).")
4609 (license license:gpl3+)))
26e08b4d 4610
e982500f
RW
4611;; There hasn't been a tag or release since 2015, so we take the latest
4612;; commit.
4613(define-public emacs-sly
4614 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
4615 (revision "1"))
4616 (package
4617 (name "emacs-sly")
4618 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
4619 (source
4620 (origin
4621 (method git-fetch)
4622 (uri (git-reference
4623 (url "https://github.com/joaotavora/sly.git")
4624 (commit commit)))
aeb95f1f 4625 (file-name (git-file-name name version))
e982500f
RW
4626 (sha256
4627 (base32
4628 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
4629 (build-system emacs-build-system)
4630 (arguments
4631 `(#:include (cons "^lib\\/" %default-include)
4632 #:phases
4633 ;; The package provides autoloads.
4634 (modify-phases %standard-phases
4635 (delete 'make-autoloads))))
4636 (home-page "https://github.com/joaotavora/sly")
4637 (synopsis "Sylvester the Cat's Common Lisp IDE")
4638 (description
4639 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
4640contains the following improvements over it:
4641
4642@enumerate
4643@item Completely redesigned REPL based on Emacs's own full-featured
4644 @code{comint.el}
4645@item Live code annotations via a new @code{sly-stickers} contrib
4646@item Consistent interactive button interface. Everything can be copied to
4647 the REPL.
4648@item Multiple inspectors with independent history
4649@item Regexp-capable @code{M-x sly-apropos}
4650@item Contribs are first class SLY citizens and enabled by default
4651@item Use ASDF to loads contribs on demand.
4652@end enumerate
4653
4654SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
4655xref, etc...) are still available, but with better integration.")
4656 (license license:gpl3+))))
4657
26e08b4d 4658(define-public emacs-lua-mode
69dcad33
AW
4659 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
4660 (revision "1"))
4661 (package
4662 (name "emacs-lua-mode")
4663 (version (string-append "20151025." revision "-" (string-take commit 9)))
4664 (home-page "https://github.com/immerrr/lua-mode/")
4665 (source (origin
4666 (method git-fetch)
4667 (uri (git-reference
4668 (url home-page)
4669 (commit commit)))
4670 (file-name (string-append name "-" version ".checkout"))
4671 (sha256
4672 (base32
4673 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
4674 (build-system emacs-build-system)
4675 (synopsis "Major mode for lua")
4676 (description
4677 "This Emacs package provides a mode for @uref{https://www.lua.org/,
26e08b4d 4678Lua programing language}.")
69dcad33 4679 (license license:gpl2+))))
0202612d 4680
4681(define-public emacs-ebuild-mode
4682 (package
4683 (name "emacs-ebuild-mode")
4735393a 4684 (version "1.37")
0202612d 4685 (source (origin
4686 (method url-fetch)
4687 (uri (string-append
4688 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
4689 "-" version ".tar.xz"))
4690 (file-name (string-append name "-" version ".tar.xz"))
4691 (sha256
4692 (base32
4735393a 4693 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
0202612d 4694 (build-system emacs-build-system)
4695 (home-page "https://devmanual.gentoo.org")
4696 (synopsis "Major modes for Gentoo package files")
4697 (description
4698 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
4699news items, openrc and runscripts.")
4700 (license license:gpl2+)))
a9fbe94e 4701
2edbfbf5 4702(define-public emacs-evil
4703 (package
4704 (name "emacs-evil")
511d8a02 4705 (version "1.2.13")
2edbfbf5 4706 (source
4707 (origin
4708 (method url-fetch)
511d8a02 4709 (uri (string-append "https://github.com/emacs-evil/evil/archive/"
4710 version ".tar.gz"))
4711 (file-name (string-append name "-" version ".tar.gz"))
2edbfbf5 4712 (sha256
4713 (base32
511d8a02 4714 "1z63zsxmsc6mh74wv6065carwqmgs7b7lz5044s12xvgsjfbwi8h"))))
2edbfbf5 4715 (build-system emacs-build-system)
4716 (propagated-inputs
4717 `(("emacs-undo-tree" ,emacs-undo-tree)
4718 ("emacs-goto-chg" ,emacs-goto-chg)))
511d8a02 4719 (home-page "https://github.com/emacs-evil/evil")
2edbfbf5 4720 (synopsis "Extensible Vi layer for Emacs")
4721 (description
4722 "Evil is an extensible vi layer for Emacs. It emulates the
4723main features of Vim, and provides facilities for writing custom
4724extensions.")
4725 (license license:gpl3+)))
4726
a0bee5e7
PN
4727(define-public emacs-evil-collection
4728 (let ((commit "f40704a57fd33b4bfad64147a2b771fc8961fdfc")
4729 (revision "1"))
4730 (package
4731 (name "emacs-evil-collection")
4732 (version (git-version "20180425" revision commit))
4733 (source (origin
4734 (method git-fetch)
4735 (uri (git-reference
4736 (url "https://github.com/emacs-evil/evil-collection")
4737 (commit commit)))
4738 (file-name (string-append name "-" version "-checkout"))
4739 (sha256
4740 (base32
4741 "0qn19k0f3isnbi1hkmcf3qjxbyvp23m5ak5ny7623qgwb2nwz1l5"))))
4742 (build-system emacs-build-system)
4743 (propagated-inputs
4744 `(("emacs-evil" ,emacs-evil)))
4745 (home-page "https://github.com/emacs-evil/evil-collection")
4746 (synopsis "Collection of Evil bindings for many major and minor modes")
4747 (description "This is a collection of Evil bindings for the parts of
4748Emacs that Evil does not cover properly by default, such as @code{help-mode},
4749@code{M-x calendar}, Eshell and more.")
4750 (license license:gpl3+))))
4751
ce74e520 4752(define-public emacs-goto-chg
4753 (package
4754 (name "emacs-goto-chg")
4755 (version "1.6")
4756 (source
4757 (origin
4758 (method url-fetch)
4759 ;; There is no versioned source.
4760 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 4761 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 4762 (sha256
4763 (base32
4764 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4765 (build-system emacs-build-system)
4766 ;; There is no other home page.
4767 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4768 (synopsis "Go to the last change in the Emacs buffer")
4769 (description
4770 "This package provides @code{M-x goto-last-change} command that goes to
4771the point of the most recent edit in the current Emacs buffer. When repeated,
4772go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4773used for reverse direction.")
4774 (license license:gpl2+)))
4775
a1eba1be
VD
4776(define-public emacs-monroe
4777 (package
4778 (name "emacs-monroe")
b125649a 4779 (version "0.3.1")
a1eba1be
VD
4780 (source
4781 (origin
4782 (method url-fetch)
b125649a
VD
4783 (uri (string-append "https://github.com/sanel/monroe/archive/"
4784 version ".tar.gz"))
4785 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
4786 (sha256
4787 (base32
b125649a 4788 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 4789 (build-system emacs-build-system)
b125649a 4790 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
4791 (synopsis "Clojure nREPL client for Emacs")
4792 (description
4793 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4794distribution, primarily targeting Clojure users")
4795 (license license:gpl3+)))
4796
32034405
NG
4797(define-public emacs-orgalist
4798 (package
4799 (name "emacs-orgalist")
4800 (version "1.7")
4801 (source
4802 (origin
4803 (method url-fetch)
4804 (uri (string-append "https://elpa.gnu.org/packages/"
4805 "orgalist-" version ".el"))
4806 (sha256
4807 (base32
4808 "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr"))))
4809 (build-system emacs-build-system)
4810 (home-page "http://elpa.gnu.org/packages/orgalist.html")
4811 (synopsis "Manage Org-like lists in non-Org buffers")
4812 (description "Write Org mode's plain lists in non-Org buffers. More
4813specifically, Orgalist supports the syntax of Org mode for numbered,
4814unnumbered, description items, checkboxes, and counter cookies.
4815
4816The library also implements radio lists, i.e., lists written in Org
40dc6df4 4817syntax later translated into the host format, e.g., LaTeX or HTML.")
32034405
NG
4818 (license license:gpl3+)))
4819
a9fbe94e
LC
4820(define-public emacs-writegood-mode
4821 (package
4822 (name "emacs-writegood-mode")
4823 (version "2.0.2")
7bf837fd 4824 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
4825 (source (origin
4826 (method git-fetch)
4827 (uri (git-reference
4828 (url home-page)
4829 (commit (string-append "v" version))))
4830 (sha256
4831 (base32
4832 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
4833 (file-name (string-append name "-checkout"))))
4834 (build-system emacs-build-system)
4835 (synopsis "Polish up poor writing on the fly")
4836 (description
4837 "This minor mode tries to find and highlight problems with your writing
4838in English as you type. It primarily detects \"weasel words\" and abuse of
4839passive voice.")
4840 (license license:gpl3+)))
e08ca4b9 4841
4842(define-public emacs-neotree
4843 (package
4844 (name "emacs-neotree")
95058772 4845 (version "0.5.2")
e08ca4b9 4846 (home-page "https://github.com/jaypei/emacs-neotree")
4847 (source (origin
4848 (method url-fetch)
4849 (uri (string-append
4850 "https://github.com/jaypei/" name
95058772 4851 "/archive/" version ".tar.gz"))
e08ca4b9 4852 (sha256
4853 (base32
95058772 4854 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
f409d0aa 4855 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 4856 (build-system emacs-build-system)
4857 (synopsis "Folder tree view for Emacs")
4858 (description "This Emacs package provides a folder tree view.")
4859 (license license:gpl3+)))
59065bb3
NG
4860
4861(define-public emacs-org
4862 (package
4863 (name "emacs-org")
769e7155
CL
4864 ;; emacs-org-contrib inherits from this package. Please update its sha256
4865 ;; checksum as well.
90735611 4866 (version "9.1.13")
59065bb3
NG
4867 (source (origin
4868 (method url-fetch)
2d19a7e4 4869 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
4870 version ".tar"))
4871 (sha256
4872 (base32
90735611 4873 "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr"))))
59065bb3 4874 (build-system emacs-build-system)
7cbe77d7 4875 (home-page "https://orgmode.org/")
59065bb3
NG
4876 (synopsis "Outline-based notes management and organizer")
4877 (description "Org is an Emacs mode for keeping notes, maintaining TODO
90735611
NG
4878lists, and project planning with a fast and effective lightweight markup
4879language. It also is an authoring system with unique support for literate
4880programming and reproducible research.")
59065bb3 4881 (license license:gpl3+)))
41392b9a 4882
8e2ae7ee
CB
4883(define-public emacs-org-contrib
4884 (package
4885 (inherit emacs-org)
4886 (name "emacs-org-contrib")
90735611 4887 (version "20180507")
8e2ae7ee
CB
4888 (source (origin
4889 (method url-fetch)
7cbe77d7 4890 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5ecd2d28 4891 version ".tar"))
8e2ae7ee
CB
4892 (sha256
4893 (base32
90735611 4894 "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
8e2ae7ee
CB
4895 (arguments
4896 `(#:modules ((guix build emacs-build-system)
4897 (guix build utils)
4898 (guix build emacs-utils)
4899 (ice-9 ftw)
4900 (srfi srfi-1))
4901 #:phases
4902 (modify-phases %standard-phases
4903 (add-after 'install 'delete-org-files
4904 (lambda* (#:key inputs outputs #:allow-other-keys)
4905 (let* ((out (assoc-ref outputs "out"))
4906 (org (assoc-ref inputs "emacs-org"))
4907 (contrib-files
4908 (map basename (find-files out)))
4909 (org+contrib-files
4910 (map basename (find-files org)))
4911 (duplicates (lset-intersection
4912 string=? contrib-files org+contrib-files)))
4913 (with-directory-excursion
4914 (string-append
5ecd2d28 4915 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
8e2ae7ee
CB
4916 (for-each delete-file duplicates))
4917 #t))))))
4918 (propagated-inputs
0b8823d8
MC
4919 `(("emacs-org" ,emacs-org)
4920 ("emacs-scel" ,emacs-scel)))
35377cfa 4921 (synopsis "Contributed packages to Org mode")
8e2ae7ee
CB
4922 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4923lists, and project planning with a fast and effective plain-text system.
4924
77e3ce3e 4925This package is equivalent to org-plus-contrib, but only includes additional
8e2ae7ee
CB
4926files that you would find in @file{contrib/} from the git repository.")))
4927
41392b9a 4928(define-public emacs-flx
4929 (package
4930 (name "emacs-flx")
4931 (version "0.6.1")
4932 (source
4933 (origin
4934 (method url-fetch)
4935 (uri (string-append "https://github.com/lewang/"
4936 "flx/archive/v" version ".tar.gz"))
4937 (sha256
4938 (base32
4939 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
4940 (file-name (string-append name "-" version ".tar.gz"))))
4941 (build-system emacs-build-system)
4942 (home-page "https://github.com/lewang/flx")
4943 (synopsis "Fuzzy matching for Emacs")
4944 (description
4945 "Flx provides fuzzy matching for emacs a la sublime text.
4946The sorting algorithm is a balance between word beginnings (abbreviation)
4947and contiguous matches (substring). The longer the substring match,
4948the higher it scores. This maps well to how we think about matching.
4949Flx has support for ido (interactively do things) through flx-ido.")
4950 (license license:gpl3+)))
9657aba4 4951
4952(define-public emacs-cyberpunk-theme
4953 (package
4954 (name "emacs-cyberpunk-theme")
88e6086e 4955 (version "1.19")
9657aba4 4956 (source
4957 (origin
4958 (method url-fetch)
4959 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
4960 "archive/" version ".tar.gz"))
4961 (sha256
4962 (base32
88e6086e 4963 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
9657aba4 4964 (file-name (string-append name "-" version ".tar.gz"))))
4965 (build-system emacs-build-system)
4966 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
4967 (synopsis "Cyberpunk theme for emacs built-in color theme support")
4968 (description
4969 "Cyberpunk color theme for the emacs 24+ built-in color theme support
4970known loosely as deftheme. Many mode-specific customizations are included.")
4971 (license license:gpl3+)))
840224aa 4972
8f493950 4973(define-public emacs-danneskjold-theme
4974 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
4975 (revision "1"))
4976 (package
4977 (name "emacs-danneskjold-theme")
4978 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4979 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
4980 (source
4981 (origin
4982 (method git-fetch)
4983 (uri (git-reference
4984 (url home-page)
4985 (commit commit)))
4986 (file-name (string-append name "-" version "-checkout"))
4987 (sha256
4988 (base32
4989 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
4990 (build-system emacs-build-system)
4991 (arguments
4992 `(#:phases
4993 (modify-phases %standard-phases
4994 (add-after 'unpack 'delete-screenshots
4995 (lambda _
4996 (delete-file-recursively "screenshots") #t)))))
4997 (synopsis "High-contrast Emacs theme")
4998 (description
4999 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
5000 (license license:gpl3+))))
5001
1ba67b62 5002(define-public emacs-dream-theme
5003 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
5004 (revision "1"))
5005 (package
5006 (name "emacs-dream-theme")
5007 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
5008 (source
5009 (origin
5010 (method git-fetch)
5011 (uri (git-reference
5012 (url "https://github.com/djcb/dream-theme")
5013 (commit commit)))
5014 (file-name (string-append name "-" version "-checkout"))
5015 (sha256
5016 (base32
5017 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
5018 (build-system emacs-build-system)
5019 (home-page "https://github.com/djcb/dream-theme")
5020 (synopsis "High-contrast Emacs theme")
5021 (description
5022 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
5023by zenburn, sinburn and similar themes, but slowly diverging from them.")
5024 (license license:gpl3+))))
5025
840224aa 5026(define-public emacs-auto-complete
5027 (package
5028 (name "emacs-auto-complete")
5029 (version "1.5.1")
5030 (source
5031 (origin
5032 (method url-fetch)
5033 (uri (string-append "https://github.com/auto-complete/"
5034 "auto-complete/archive/v" version ".tar.gz"))
5035 (sha256
5036 (base32
5037 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
5038 (file-name (string-append name "-" version ".tar.gz"))))
5039 (build-system emacs-build-system)
5040 (propagated-inputs
5041 `(("emacs-popup" ,emacs-popup)))
5042 (home-page "https://github.com/auto-complete/auto-complete")
5043 (synopsis "Intelligent auto-completion extension for Emacs")
5044 (description
5045 "Auto-Complete is an intelligent auto-completion extension for Emacs.
5046It extends the standard Emacs completion interface and provides an environment
5047that allows users to concentrate more on their own work. Its features are:
5048a visual interface, reduce overhead of completion by using statistic method,
5049extensibility.")
5050 (license license:gpl3+)))
154c71e0
AI
5051
5052(define-public m17n-db
5053 (package
5054 (name "m17n-db")
5055 (version "1.7.0")
5056 (source
5057 (origin
5058 (method url-fetch)
5059 (uri (string-append "mirror://savannah/m17n/m17n-db-"
5060 version ".tar.gz"))
5061 (sha256
5062 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
5063 (build-system gnu-build-system)
5064 (inputs
7c90d0f4 5065 `(("gettext" ,gettext-minimal)))
154c71e0
AI
5066 (arguments
5067 `(#:configure-flags
5068 (list (string-append "--with-charmaps="
5069 (assoc-ref %build-inputs "libc")
5070 "/share/i18n/charmaps"))))
5071 ;; With `guix lint' the home-page URI returns a small page saying
5072 ;; that your browser does not handle frames. This triggers the "URI
5073 ;; returns suspiciously small file" warning.
340978d7 5074 (home-page "https://www.nongnu.org/m17n/")
154c71e0
AI
5075 (synopsis "Multilingual text processing library (database)")
5076 (description "The m17n library realizes multilingualization of
5077many aspects of applications. The m17n library represents
5078multilingual text as an object named M-text. M-text is a string with
5079attributes called text properties, and designed to substitute for
5080string in C. Text properties carry any information required to input,
5081display and edit the text.
5082
5083This package contains the library database.")
5084 (license license:lgpl2.1+)))
a80b60f4
AI
5085
5086(define-public m17n-lib
5087 (package
5088 (name "m17n-lib")
5089 (version "1.7.0")
5090 (source
5091 (origin
5092 (method url-fetch)
966a543b
LC
5093 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5094 version ".tar.gz"))
a80b60f4
AI
5095 (sha256
5096 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
5097 (build-system gnu-build-system)
5098 (inputs
5099 `(("fribidi" ,fribidi)
5100 ("gd" ,gd)
5101 ("libotf" ,libotf)
5102 ("libxft" ,libxft)
5103 ("libxml2" ,libxml2)
5104 ("m17n-db" ,m17n-db)))
5105 (arguments
5106 `(#:parallel-build? #f))
5107 ;; With `guix lint' the home-page URI returns a small page saying
5108 ;; that your browser does not handle frames. This triggers the "URI
5109 ;; returns suspiciously small file" warning.
340978d7 5110 (home-page "https://www.nongnu.org/m17n/")
a80b60f4
AI
5111 (synopsis "Multilingual text processing library (runtime)")
5112 (description "The m17n library realizes multilingualization of
5113many aspects of applications. The m17n library represents
5114multilingual text as an object named M-text. M-text is a string with
5115attributes called text properties, and designed to substitute for
5116string in C. Text properties carry any information required to input,
5117display and edit the text.
5118
5119This package contains the library runtime.")
5120 (license license:lgpl2.1+)))
71d3ee1c
AI
5121
5122(define-public emacs-nginx-mode
5123 (package
5124 (name "emacs-nginx-mode")
5125 (version "1.1.4")
5126 (source
5127 (origin
5128 (method url-fetch)
5129 (uri (string-append
5130 "https://github.com/ajc/nginx-mode/archive/v"
5131 version ".tar.gz"))
5132 (file-name (string-append name "-" version ".tar.gz"))
5133 (sha256
5134 (base32
5135 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
5136 (build-system emacs-build-system)
5137 (home-page "https://github.com/ajc/nginx-mode")
5138 (synopsis "Emacs major mode for editing nginx config files")
5139 (description "This package provides an Emacs major mode for
5140editing nginx config files.")
5141 (license license:gpl2+)))
8f50634b
FB
5142
5143(define-public emacs-stream
5144 (package
5145 (name "emacs-stream")
5146 (version "2.2.0")
5147 (home-page "https://github.com/NicolasPetton/stream")
5148 (source
5149 (origin
5150 (method url-fetch)
5151 (file-name (string-append name "-" version ".tar.gz"))
5152 (uri (string-append home-page "/archive/"version ".tar.gz"))
5153 (sha256
5154 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5155 (build-system emacs-build-system)
5156 (synopsis "Implementation of streams for Emacs")
5157 (description "This library provides an implementation of streams for Emacs.
5158Streams are implemented as delayed evaluation of cons cells.")
5159 (license license:gpl3+)))
0fc06f3e
FB
5160
5161(define-public emacs-el-search
5162 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5163 (revision "1"))
5164 (package
5165 (name "emacs-el-search")
5166 ;; No ufficial release.
5167 (version (string-append "0.0-" revision "." (string-take commit 7)))
5168 (home-page "https://github.com/emacsmirror/el-search")
5169 (source
5170 (origin
5171 (method git-fetch)
5172 (file-name (string-append name "-" version ".tar.gz"))
5173 (uri (git-reference
5174 (commit commit)
5175 (url (string-append home-page ".git"))))
5176 (sha256
5177 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5178 (build-system emacs-build-system)
5179 (inputs `(("emacs-stream" ,emacs-stream)))
5180 (synopsis "Expression based interactive search for emacs-lisp-mode")
5181 (description "This package provides expression based interactive search
5182procedures for emacs-lisp-mode.")
5183 (license license:gpl3+))))
1e523180
MO
5184
5185(define-public emacs-ht
5186 (package
5187 (name "emacs-ht")
5188 (version "2.1")
5189 (source
5190 (origin
5191 (method url-fetch)
5192 (uri (string-append
5193 "https://github.com/Wilfred/ht.el/archive/"
5194 version ".tar.gz"))
5195 (file-name (string-append name "-" version ".tar.gz"))
5196 (sha256
5197 (base32
5198 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5199 (build-system emacs-build-system)
5200 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5201 (home-page "https://github.com/Wilfred/ht.el")
5202 (synopsis "Hash table library for Emacs")
5203 (description
5204 "This package simplifies the use of hash tables in elisp. It also
5205provides functions to convert hash tables from and to alists and plists.")
5206 (license license:gpl3+)))
5207
521f5d96
MO
5208(define-public emacs-log4e
5209 (package
5210 (name "emacs-log4e")
5211 (version "0.3.0")
5212 (source
5213 (origin
5214 (method url-fetch)
5215 (uri (string-append
5216 "https://github.com/aki2o/log4e/archive/v"
5217 version ".tar.gz"))
5218 (file-name (string-append name "-" version ".tar.gz"))
5219 (sha256
5220 (base32
5221 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5222 (build-system emacs-build-system)
5223 (arguments
5224 `(#:phases
5225 (modify-phases %standard-phases
5226 (add-after 'unpack 'remove-tests
5227 ;; Guile builder complains about null characters in some
5228 ;; strings of test files. Remove "test" directory (it is not
5229 ;; needed anyway).
5230 (lambda _
5231 (delete-file-recursively "test"))))))
5232 (home-page "https://github.com/aki2o/log4e")
5233 (synopsis "Logging framework for elisp")
5234 (description
5235 "This package provides a logging framework for elisp. It allows
5236you to deal with multiple log levels.")
5237 (license license:gpl3+)))
ba117841
MO
5238
5239(define-public emacs-gntp
5240 (package
5241 (name "emacs-gntp")
5242 (version "0.1")
5243 (source
5244 (origin
5245 (method url-fetch)
5246 (uri (string-append
5247 "https://github.com/tekai/gntp.el/archive/v"
5248 version ".tar.gz"))
5249 (file-name (string-append name "-" version ".tar.gz"))
5250 (sha256
5251 (base32
5252 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5253 (build-system emacs-build-system)
5254 (home-page "https://github.com/tekai/gntp.el")
5255 (synopsis "Growl Notification Protocol for Emacs")
5256 (description
5257 "This package implements the Growl Notification Protocol GNTP
5258described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5259It is incomplete as it only lets you send but not receive
5260notifications.")
5261 (license license:bsd-3)))
2c5e31fa
MO
5262
5263(define-public emacs-alert
5264 (package
5265 (name "emacs-alert")
5266 (version "1.2")
5267 (source
5268 (origin
5269 (method url-fetch)
5270 (uri (string-append
5271 "https://github.com/jwiegley/alert/archive/v"
5272 version ".tar.gz"))
5273 (file-name (string-append name "-" version ".tar.gz"))
5274 (sha256
5275 (base32
5276 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5277 (build-system emacs-build-system)
5278 (propagated-inputs
5279 `(("emacs-gntp" ,emacs-gntp)
5280 ("emacs-log4e" ,emacs-log4e)))
5281 (home-page "https://github.com/jwiegley/alert")
5282 (synopsis "Growl-style notification system for Emacs")
5283 (description
5284 "Alert is a Growl-workalike for Emacs which uses a common notification
5285interface and multiple, selectable \"styles\", whose use is fully
5286customizable by the user.")
5287 (license license:gpl2+)))
c695ed3c
MO
5288
5289(define-public emacs-mu4e-alert
5290 (package
5291 (name "emacs-mu4e-alert")
dd69ff6d 5292 (version "1.0")
c695ed3c
MO
5293 (source
5294 (origin
5295 (method url-fetch)
5296 (uri (string-append
5297 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5298 version ".tar.gz"))
5299 (file-name (string-append name "-" version ".tar.gz"))
5300 (sha256
5301 (base32
dd69ff6d 5302 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
5303 (build-system emacs-build-system)
5304 (propagated-inputs
5305 `(("emacs-alert" ,emacs-alert)
5306 ("emacs-s" ,emacs-s)
b6efe0e8
MC
5307 ("emacs-ht" ,emacs-ht)
5308 ("mu" ,mu)))
c695ed3c
MO
5309 (home-page "https://github.com/iqbalansari/mu4e-alert")
5310 (synopsis "Desktop notification for mu4e")
5311 (description
5312 "This package provides desktop notifications for mu4e.
5313Additionally it can display the number of unread emails in the
5314mode-line.")
5315 (license license:gpl3+)))
e967dd9c 5316
5317(define-public emacs-pretty-mode
5318 (package
5319 (name "emacs-pretty-mode")
5320 (version "2.0.3")
5321 (source
5322 (origin
5323 (method url-fetch)
5324 (uri (string-append "https://github.com/akatov/pretty-mode/"
5325 "archive/" version ".tar.gz"))
5326 (file-name (string-append name "-" version ".tar.gz"))
5327 (sha256
5328 (base32
5329 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5330 (build-system emacs-build-system)
5331 (home-page "https://github.com/akatov/pretty-mode")
5332 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5333 (description
5334 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5335 (license license:gpl3+)))
c1029f86
RW
5336
5337(define-public emacs-yasnippet
5338 (package
5339 (name "emacs-yasnippet")
bf1264ab 5340 (version "0.12.2")
c1029f86
RW
5341 (source (origin
5342 (method url-fetch)
5343 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5344 "archive/" version ".tar.gz"))
5345 (file-name (string-append name "-" version ".tar.gz"))
5346 (sha256
5347 (base32
bf1264ab 5348 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
1f0d4705
KM
5349 (modules '((guix build utils)))
5350 (snippet
5351 '(begin
5352 ;; YASnippet expects a "snippets" subdirectory in the same
5353 ;; directory as yasnippet.el, but we don't install it
5354 ;; because it's a git submodule pointing to an external
5355 ;; repository. Adjust `yas-snippet-dirs' to prevent
5356 ;; warnings about a missing directory.
5357 (substitute* "yasnippet.el"
5358 (("^ +'yas-installed-snippets-dir\\)\\)\n")
6cbee49d
MW
5359 "))\n"))
5360 #t))))
c1029f86 5361 (build-system emacs-build-system)
7bf837fd 5362 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
5363 (synopsis "Yet another snippet extension for Emacs")
5364 (description
5365 "YASnippet is a template system for Emacs. It allows you to type an
5366abbreviation and automatically expand it into function templates.")
5367 (license license:gpl3+)))
55fa5349 5368
4bfdf034
KM
5369(define-public emacs-yasnippet-snippets
5370 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5371 (revision "1"))
5372 (package
5373 (name "emacs-yasnippet-snippets")
5374 (version (string-append "1-" revision "." (string-take commit 8)))
5375 (source
5376 (origin
5377 (method git-fetch)
5378 (uri (git-reference
5379 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5380 (commit commit)))
5381 (file-name (string-append name "-" version "-checkout"))
5382 (sha256
5383 (base32
5384 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5385 (build-system trivial-build-system)
5386 (arguments
5387 `(#:modules ((ice-9 ftw)
5388 (ice-9 regex)
5389 (guix build utils))
5390 #:builder
5391 (begin
5392 (use-modules (ice-9 ftw)
5393 (ice-9 regex)
5394 (guix build utils))
5395 (with-directory-excursion (assoc-ref %build-inputs "source")
5396 (for-each (lambda (dir)
5397 (copy-recursively
5398 dir
5399 (string-append %output
5400 "/share/emacs/yasnippet-snippets/"
5401 dir)))
5402 (scandir "." (lambda (fname)
5403 (and (string-match "-mode$" fname)
e3cfef22
MW
5404 (directory-exists? fname))))))
5405 #t)))
4bfdf034
KM
5406 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5407 (synopsis "Collection of YASnippet snippets for many languages")
5408 (description
5409 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5410the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5411To make YASnippet aware of these snippets, add the above directory to
5412@code{yas-snippet-dirs}.")
5413 (license license:expat))))
5414
2ede8c61
OP
5415(define-public emacs-helm-c-yasnippet
5416 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5417 (revision "1"))
5418 (package
5419 (name "emacs-helm-c-yasnippet")
5420 (version (string-append "0.6.7" "-" revision "."
5421 (string-take commit 7)))
5422 (source (origin
5423 (method git-fetch)
5424 (uri (git-reference
5425 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5426 (commit commit)))
5427 (file-name (string-append name "-" version "-checkout"))
5428 (sha256
5429 (base32
5430 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5431 (build-system emacs-build-system)
5432 (propagated-inputs
5433 `(("emacs-helm" ,emacs-helm)
5434 ("emacs-yasnippet" ,emacs-yasnippet)))
5435 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5436 (synopsis "Helm integration for Yasnippet")
5437 (description "This Emacs library provides Helm interface for
5438Yasnippet.")
5439 (license license:gpl2+))))
5440
b889df27
PN
5441(define-public emacs-helm-system-packages
5442 (let ((commit "986b7bd360a705053500c4ce2c9bea03dd7b24a6")
5443 (revision "1"))
5444 (package
5445 (name "emacs-helm-system-packages")
5446 (version (git-version "1.9.0" revision commit))
5447 (source (origin
5448 (method git-fetch)
5449 (uri (git-reference
5450 (url "https://github.com/emacs-helm/helm-system-packages")
5451 (commit commit)))
5452 (file-name (string-append name "-" version "-checkout"))
5453 (sha256
5454 (base32
5455 "19iklhpxgh5xx6h4dysf58nd46lmyb46xj601lf7kbwl6yq0y61f"))))
5456 (build-system emacs-build-system)
5457 (propagated-inputs
5458 `(("emacs-helm" ,emacs-helm)))
5459 (home-page "https://github.com/emacs-helm/helm-system-packages")
5460 (synopsis "Helm System Packages is an interface to your package manager")
5461 (description "List all available packages in Helm (with installed
5462packages displayed in their own respective face). Fuzzy-search, mark and
5463execute the desired action over any selections of packages: Install,
5464uninstall, display packages details (in Org Mode) or insert details at point,
5465find files owned by packages... And much more, including performing all the
5466above over the network.")
5467 (license license:gpl3+))))
5468
55fa5349
AI
5469(define-public emacs-memoize
5470 (package
1848cdfb
AI
5471 (name "emacs-memoize")
5472 (version "1.1")
5473 (source
5474 (origin
5475 (method url-fetch)
5476 (uri (string-append
5477 "https://github.com/skeeto/emacs-memoize/archive/"
5478 version ".tar.gz"))
5479 (file-name (string-append name "-" version ".tar.gz"))
5480 (sha256
5481 (base32
5482 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5483 (build-system emacs-build-system)
5484 (arguments
5485 `(#:tests? #t
5486 #:test-command '("emacs" "--batch"
5487 "-l" "memoize-test.el"
5488 "-f" "ert-run-tests-batch-and-exit")))
5489 (home-page "https://github.com/skeeto/emacs-memoize")
5490 (synopsis "Emacs lisp memoization library")
5491 (description "@code{emacs-memoize} is an Emacs library for
55fa5349 5492memoizing functions.")
1848cdfb 5493 (license license:unlicense)))
6b7e3362 5494
c86c1991
AI
5495(define-public emacs-linum-relative
5496 (package
5497 (name "emacs-linum-relative")
5498 (version "0.5")
5499 (source
5500 (origin
5501 (method url-fetch)
5502 (uri (string-append
5503 "https://github.com/coldnew/linum-relative/archive/"
5504 version ".tar.gz"))
5505 (file-name (string-append name "-" version ".tar.gz"))
5506 (sha256
5507 (base32
5508 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5509 (build-system emacs-build-system)
5510 (home-page "https://github.com/coldnew/linum-relative")
5511 (synopsis "Relative line numbering for Emacs")
5512 (description "@code{emacs-linum-relative} displays the relative line
5513number on the left margin in Emacs.")
5514 (license license:gpl2+)))
5515
6b7e3362
VD
5516(define-public emacs-idle-highlight
5517 (package
5518 (name "emacs-idle-highlight")
5519 (version "1.1.3")
5520 (source
5521 (origin
5522 (method url-fetch)
5523 (uri (string-append
5524 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5525 version ".tar.gz"))
5526 (file-name (string-append name "-" version ".tar.gz"))
5527 (sha256
5528 (base32
5529 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5530 (build-system emacs-build-system)
5531 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 5532 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
5533 (description
5534 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 5535 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
5536 the point.")
5537 (license license:gpl3+)))
6a91c5f2
VD
5538
5539(define-public emacs-ox-twbs
5540 (package
5541 (name "emacs-ox-twbs")
5542 (version "1.1.1")
5543 (source
5544 (origin
5545 (method url-fetch)
5546 (uri (string-append
5547 "https://github.com/marsmining/ox-twbs/archive/v"
5548 version ".tar.gz"))
5549 (file-name (string-append name "-" version ".tar.gz"))
5550 (sha256
5551 (base32
5552 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5553 (build-system emacs-build-system)
5554 (home-page "https://github.com/marsmining/ox-twbs")
5555 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5556 (description
5557 "This Emacs package outputs your org-mode docs with a simple, clean and
5558modern look. It implements a new HTML back-end for exporting org-mode docs as
5559HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5560jQuery and Bootstrap resources included via osscdn.")
5561 (license license:gpl3+)))
239cf024
VD
5562
5563(define-public emacs-highlight-sexp
5564 (package
5565 (name "emacs-highlight-sexp")
5566 (version "1.0")
5567 (source
5568 (origin
5569 (method url-fetch)
5570 (uri (string-append
5571 "https://github.com/daimrod/highlight-sexp/archive/v"
5572 version ".tar.gz"))
5573 (file-name (string-append name "-" version ".tar.gz"))
5574 (sha256
5575 (base32
5576 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5577 (build-system emacs-build-system)
5578 (home-page "https://github.com/daimrod/highlight-sexp")
5579 (synopsis "Minor mode that highlights the s-exp at the current position")
5580 (description
5581 "This Emacs package highlights the s-exp at the current position.")
5582 (license license:gpl3+)))
350cfccb 5583
7a452689
OP
5584(define-public emacs-highlight-stages
5585 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5586 (revision "1"))
5587 (package
5588 (name "emacs-highlight-stages")
5589 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5590 (source
5591 (origin
5592 (method git-fetch)
5593 (uri (git-reference
5594 (url "https://github.com/zk-phi/highlight-stages.git")
5595 (commit commit)))
5596 (file-name (string-append name "-" version "-checkout"))
5597 (sha256
5598 (base32
5599 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
5600 (patches
5601 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
5602 (build-system emacs-build-system)
5603 (home-page "https://github.com/wigust/highlight-stages")
5604 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
5605 (description "@code{highlight-stages} provides an Emacs minor mode that
5606highlights quasi-quoted expressions.")
5607 (license license:gpl3+))))
5608
acf7d4a7
KK
5609(define-public emacspeak
5610 (package
5611 (name "emacspeak")
147d42fc 5612 (version "47.0")
acf7d4a7
KK
5613 (source
5614 (origin
5615 (method url-fetch)
5616 (uri (string-append
5617 "https://github.com/tvraman/emacspeak/releases/download/"
5618 version "/emacspeak-" version ".tar.bz2"))
5619 (sha256
5620 (base32
147d42fc 5621 "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
acf7d4a7
KK
5622 (build-system gnu-build-system)
5623 (arguments
5624 '(#:make-flags (list (string-append "prefix="
5625 (assoc-ref %outputs "out")))
5626 #:phases
5627 (modify-phases %standard-phases
5628 (replace 'configure
231e48d6
KK
5629 (lambda _
5630 ;; Configure Emacspeak according to etc/install.org.
147d42fc 5631 (setenv "SHELL" (which "sh"))
acf7d4a7 5632 (zero? (system* "make" "config"))))
231e48d6
KK
5633 (add-after 'build 'build-espeak
5634 (lambda _
5635 (zero? (system* "make" "espeak"))))
5636 (replace 'install
acf7d4a7 5637 (lambda* (#:key outputs #:allow-other-keys)
231e48d6
KK
5638 (let* ((out (assoc-ref outputs "out"))
5639 (bin (string-append out "/bin"))
5640 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
5641 (info (string-append out "/share/info")))
5642 ;; According to etc/install.org, the Emacspeak directory should
5643 ;; be copied to its installation destination.
5644 (for-each
5645 (lambda (file)
5646 (copy-recursively file (string-append lisp "/" file)))
5647 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
5648 "xsl"))
5649 ;; Make sure emacspeak is loaded from the correct directory.
5650 (substitute* "etc/emacspeak.sh"
5651 (("exec emacs.*$")
5652 (string-append "exec emacs -l " lisp
5653 "/lisp/emacspeak-setup.el $CL_ALL")))
5654 ;; Install the convenient startup script.
5655 (mkdir-p bin)
5656 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
5657 #t))
5658 (add-after 'install 'wrap-program
acf7d4a7
KK
5659 (lambda* (#:key inputs outputs #:allow-other-keys)
5660 (let* ((out (assoc-ref outputs "out"))
5661 (emacspeak (string-append out "/bin/emacspeak"))
5662 (espeak (string-append (assoc-ref inputs "espeak")
5663 "/bin/espeak")))
5664 ;; The environment variable DTK_PROGRAM tells emacspeak what
5665 ;; program to use for speech.
5666 (wrap-program emacspeak
5667 `("DTK_PROGRAM" ":" prefix (,espeak)))
5668 #t))))
5669 #:tests? #f)) ; no check target
5670 (inputs
5671 `(("espeak" ,espeak)
5672 ("tcl" ,tcl)
5673 ("tclx" ,tclx)))
5674 (native-inputs `(("emacs" ,emacs-minimal)))
5675 (home-page "http://emacspeak.sourceforge.net")
5676 (synopsis "Audio desktop interface for Emacs")
5677 (description
5678 "Emacspeak is a speech interface that allows visually impaired users to
5679interact independently and efficiently with the computer. Audio formatting
5680--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
5681allows Emacspeak to produce rich aural presentations of electronic information.
5682By seamlessly blending all aspects of the Internet such as Web-surfing and
5683messaging, Emacspeak speech-enables local and remote information via a
5684consistent and well-integrated user interface.")
5685 (license license:gpl2+)))
5686
350cfccb
AP
5687(define-public emacs-adaptive-wrap
5688 (package
5689 (name "emacs-adaptive-wrap")
13869ff5 5690 (version "0.5.1")
350cfccb
AP
5691 (source (origin
5692 (method url-fetch)
5693 (uri (string-append
5694 "http://elpa.gnu.org/packages/adaptive-wrap-"
5695 version ".el"))
5696 (sha256
5697 (base32
13869ff5 5698 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
350cfccb
AP
5699 (build-system emacs-build-system)
5700 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
5701 (synopsis "Smart line-wrapping with wrap-prefix")
5702 (description
5703 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
5704minor mode which sets the wrap-prefix property on the fly so that
5705single-long-line paragraphs get word-wrapped in a way similar to what
5706you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
5707actually changing the buffer's text.")
5708 (license license:gpl3+)))
0201c5d4 5709
42e891c2
MC
5710(define-public emacs-diff-hl
5711 (package
5712 (name "emacs-diff-hl")
5713 (version "1.8.4")
5714 (source
5715 (origin
5716 (method url-fetch)
5717 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
5718 version ".tar"))
5719 (sha256
5720 (base32
5721 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
5722 (build-system emacs-build-system)
5723 (home-page "https://github.com/dgutov/diff-hl")
5724 (synopsis
5725 "Highlight uncommitted changes using VC")
5726 (description
5727 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
5728window (using the fringe, by default), allows you to jump between
5729the hunks and revert them selectively.")
5730 (license license:gpl3+)))
5731
0201c5d4
AI
5732(define-public emacs-diminish
5733 (package
5734 (name "emacs-diminish")
5735 (version "0.45")
5736 (source
5737 (origin
5738 (method url-fetch)
5739 (uri (string-append
5740 "https://github.com/myrjola/diminish.el/archive/v"
5741 version ".tar.gz"))
5742 (file-name (string-append name "-" version ".tar.gz"))
5743 (sha256
5744 (base32
5745 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
5746 (build-system emacs-build-system)
5747 (home-page "https://github.com/myrjola/diminish.el")
5748 (synopsis "Diminish minor modes with no modeline display")
5749 (description "@code{emacs-diminish} implements hiding or
5750abbreviation of the mode line displays (lighters) of minor modes.")
5751 (license license:gpl2+)))
b247fb86
AI
5752
5753(define-public emacs-use-package
5754 (package
5755 (name "emacs-use-package")
5756 (version "2.3")
5757 (source
5758 (origin
5759 (method url-fetch)
5760 (uri (string-append
5761 "https://github.com/jwiegley/use-package/archive/"
5762 version ".tar.gz"))
5763 (file-name (string-append name "-" version ".tar.gz"))
5764 (sha256
5765 (base32
5766 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
5767 (build-system emacs-build-system)
5768 (propagated-inputs
5769 `(("emacs-diminish" ,emacs-diminish)))
5770 (arguments
d1d41db6
MC
5771 ;; Tests fail in this release, but have been fixed in
5772 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
5773 `(#:tests? #f
5774 #:test-command '("emacs" "--batch"
5775 "-l" "use-package-tests.el"
5776 "-f" "ert-run-tests-batch-and-exit")))
b247fb86
AI
5777 (home-page "https://github.com/jwiegley/use-package")
5778 (synopsis "Declaration for simplifying your .emacs")
5779 (description "The use-package macro allows you to isolate package
5780configuration in your @file{.emacs} file in a way that is both
5781performance-oriented and tidy.")
5782 (license license:gpl2+)))
e2345554 5783
8ad5a20f
MO
5784(define-public emacs-strace-mode
5785 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
5786 (revision "1"))
5787 (package
5788 (name "emacs-strace-mode")
5789 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
5790 (source (origin
5791 (method git-fetch)
5792 (uri (git-reference
5793 (url "https://github.com/pkmoore/strace-mode")
5794 (commit commit)))
5795 (file-name (string-append name "-" version "-checkout"))
5796 (sha256
5797 (base32
5798 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
5799 (build-system emacs-build-system)
5800 (home-page "https://github.com/pkmoore/strace-mode")
5801 (synopsis "Emacs major mode to highlight strace outputs")
5802 (description "@code{emacs-strace-mode} provides an Emacs major mode
5803 highlighting strace outputs.")
5804 (license license:gpl3+))))
5805
e2345554
CM
5806(define-public emacs-default-encrypt
5807 (package
5808 (name "emacs-default-encrypt")
5809 (version "4.3")
5810 (source
5811 (origin
5812 (method url-fetch)
5813 (uri (string-append
a97f6da4
CM
5814 "https://www.informationelle-selbstbestimmung-im-internet.de"
5815 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
5816 (file-name (string-append "jl-encrypt-" version ".el"))
5817 (sha256
5818 (base32
5819 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
5820 (build-system emacs-build-system)
5821 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
5822 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
5823 (description
5824 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
5825automatically encrypts messages that you send (e.g., email) when public keys
5826for all recipients are available, and it protects you from accidentally
5827sending un-encrypted messages. It can also be configured to automatically
5828sign messages that you send. For details and instructions on how to use
5829DefaultEncrypt, please refer to the home page or read the comments in the
5830source file, @file{jl-encrypt.el}.")
5831 (license license:gpl3+)))
25e810b8
AI
5832
5833(define-public emacs-htmlize
5834 (package
5835 (name "emacs-htmlize")
5836 (version "1.51")
5837 (source
5838 (origin
5839 (method url-fetch)
5840 (uri (string-append
5841 "https://github.com/hniksic/emacs-htmlize/archive/release/"
5842 version ".tar.gz"))
5843 (file-name (string-append name "-" version ".tar.gz"))
5844 (sha256
5845 (base32
5846 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
5847 (build-system emacs-build-system)
5848 (home-page "https://github.com/hniksic/emacs-htmlize")
5849 (synopsis "Convert buffer text and decorations to HTML")
5850 (description "@code{emacs-htmlize} converts the buffer text and
5851the associated decorations to HTML. Output to CSS, inline CSS and
5852fonts is supported.")
5853 (license license:gpl2+)))
0ee59b81
AI
5854
5855(define-public emacs-xmlgen
5856 (package
5857 (name "emacs-xmlgen")
5858 (version "0.5")
5859 (source
5860 (origin
5861 (method url-fetch)
5862 (uri (string-append
5863 "https://github.com/philjackson/xmlgen/archive/"
5864 version ".tar.gz"))
5865 (file-name (string-append name "-" version ".tar.gz"))
5866 (sha256
5867 (base32
5868 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
5869 (build-system emacs-build-system)
5870 (arguments
d1d41db6
MC
5871 `(#:tests? #t
5872 #:test-command '("emacs" "--batch"
5873 "-l" "xmlgen-test.el"
5874 "-f" "ert-run-tests-batch-and-exit")))
0ee59b81
AI
5875 (home-page "https://github.com/philjackson/xmlgen")
5876 (synopsis "S-expression to XML domain specific language (DSL) in
5877Emacs Lisp")
5878 (description "@code{emacs-xmlgen} provides S-expression to XML
5879conversion for Emacs Lisp.")
5880 (license license:gpl2+)))
8d50a990
AI
5881
5882(define-public emacs-cdlatex
5883 (package
5884 (name "emacs-cdlatex")
5885 (version "4.7")
5886 (source
5887 (origin
5888 (method url-fetch)
5889 (uri (string-append
5890 "https://github.com/cdominik/cdlatex/archive/"
5891 version ".tar.gz"))
5892 (file-name (string-append name "-" version ".tar.gz"))
5893 (sha256
5894 (base32
5895 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
5896 (build-system emacs-build-system)
00bdf501
MC
5897 (propagated-inputs
5898 `(("emacs-auctex" ,emacs-auctex)))
8d50a990
AI
5899 (home-page "https://github.com/cdominik/cdlatex")
5900 (synopsis "Fast Emacs input methods for LaTeX environments and
5901math")
5902 (description "CDLaTeX is an Emacs minor mode supporting fast
5903insertion of environment templates and math in LaTeX. Similar
5904commands are also offered as part of the AUCTeX package, but it is not
5905the same - CDLaTeX focuses on speediness for inserting LaTeX
5906constructs.")
5907 (license license:gpl3+)))
deddeb44 5908
65fff6a3
FS
5909(define-public emacs-cnfonts
5910 (package
5911 (name "emacs-cnfonts")
5912 (version "0.9.1")
5913 (source (origin
5914 (method url-fetch)
5915 (uri (string-append
5916 "https://github.com/tumashu/cnfonts/archive/v"
5917 version ".tar.gz"))
5918 (file-name (string-append name "-" version ".tar.gz"))
5919 (sha256
5920 (base32
5921 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
5922 (build-system emacs-build-system)
5923 (home-page "https://github.com/tumashu/cnfonts")
5924 (synopsis "Emacs Chinese fonts setup tool")
5925 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
5926configuration of Chinese fonts.")
5927 (license license:gpl2+)))
5928
57fe82c5
RJ
5929(define-public emacs-php-mode
5930 (package
5931 (name "emacs-php-mode")
5932 (version "20171225.342")
5933 (source (origin
5934 (method url-fetch)
5935 (uri (string-append
5936 "https://melpa.org/packages/php-mode-"
5937 version ".tar"))
5938 (sha256
5939 (base32
5940 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
5941 (build-system emacs-build-system)
5942 (home-page "https://github.com/ejmr/php-mode")
5943 (synopsis "Major mode for editing PHP code")
5944 (description "@code{php-mode} is a major mode for editing PHP source
5945code. It's an extension of C mode; thus it inherits all C mode's navigation
5946functionality. But it colors according to the PHP grammar and indents
5947according to the PEAR coding guidelines. It also includes a couple handy
5948IDE-type features such as documentation search and a source and class
5949browser.")
5950 (license license:gpl3+)))
5951
9f3b27a2
FS
5952(define-public emacs-pos-tip
5953 (package
5954 (name "emacs-pos-tip")
5955 (version "0.4.6")
5956 (source (origin
5957 (method url-fetch)
5958 (uri (string-append
5959 "https://github.com/pitkali/pos-tip/archive/"
5960 version ".tar.gz"))
5961 (file-name (string-append name "-" version ".tar.gz"))
5962 (sha256
5963 (base32
5964 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
5965 (build-system emacs-build-system)
5966 ;; The following functions and variables needed by emacs-pos-tip are
5967 ;; not included in emacs-minimal:
5968 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
5969 (arguments `(#:emacs ,emacs))
5970 (home-page "https://github.com/pitkali/pos-tip")
5971 (synopsis "Show tooltip at point")
5972 (description "The standard library tooltip.el provides a function for
5973displaying a tooltip at the mouse position. However, locating a tooltip at an
5974arbitrary buffer position in a window is not easy. Pos-tip provides such a
5975function to be used by other frontend programs.")
5976 (license license:gpl2+)))
5977
0fa8a932
FS
5978(define-public emacs-pyim-basedict
5979 (package
5980 (name "emacs-pyim-basedict")
5981 (version "0.3.1")
5982 (source (origin
5983 (method url-fetch)
5984 (uri (string-append
5985 "https://github.com/tumashu/pyim-basedict/archive/v"
5986 version ".tar.gz"))
5987 (file-name (string-append name "-" version ".tar.gz"))
5988 (sha256
5989 (base32
5990 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
5991 (build-system emacs-build-system)
5992 (home-page "https://github.com/tumashu/pyim-basedict")
5993 (synopsis "Input method dictionary of pyim")
5994 (description "Pyim-basedict is the default pinyin input method dictionary,
5995containing words from the rime project.")
5996 (license license:gpl2+)))
5997
7493306f
FS
5998(define-public emacs-pyim
5999 (package
6000 (name "emacs-pyim")
6001 (version "1.6.4")
6002 (source (origin
6003 (method url-fetch)
6004 (uri (string-append
6005 "https://github.com/tumashu/pyim/archive/v"
6006 version ".tar.gz"))
6007 (file-name (string-append name "-" version ".tar.gz"))
6008 (sha256
6009 (base32
6010 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
6011 (build-system emacs-build-system)
6012 (propagated-inputs
6013 `(("emacs-async" ,emacs-async)
6fe2d37c 6014 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7493306f
FS
6015 ("emacs-popup" ,emacs-popup)
6016 ("emacs-pos-tip" ,emacs-pos-tip)))
6017 (home-page "https://github.com/tumashu/pyim")
6018 (synopsis "Chinese input method")
6019 (description "Chinese input method which supports quanpin, shuangpin, wubi
6020and cangjie.")
6021 (license license:gpl2+)))
6022
2f1524d0
FS
6023(define-public emacs-el2org
6024 (package
6025 (name "emacs-el2org")
6026 (version "0.6.0")
6027 (source (origin
6028 (method url-fetch)
6029 (uri (string-append
6030 "https://github.com/tumashu/el2org/archive/v"
6031 version ".tar.gz"))
6032 (file-name (string-append name "-" version ".tar.gz"))
6033 (sha256
6034 (base32
6035 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
6036 (build-system emacs-build-system)
6037 (home-page "https://github.com/tumashu/el2org")
6038 (synopsis "Convert Emacs-lisp file to org file")
6039 (description "El2org is a simple tool, which can convert Emacs-lisp file
6040to org file, you can use this tool to write orgify commentary.")
6041 (license license:gpl2+)))
6042
5b38c3e6
FS
6043(define-public emacs-mustache
6044 (package
6045 (name "emacs-mustache")
6046 (version "0.23")
6047 (source (origin
6048 (method url-fetch)
6049 (uri (string-append
6050 "https://github.com/Wilfred/mustache.el/archive/"
6051 version ".tar.gz"))
6052 (file-name (string-append name "-" version ".tar.gz"))
6053 (sha256
6054 (base32
6055 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
6056 (build-system emacs-build-system)
6057 (propagated-inputs
6058 `(("emacs-dash" ,emacs-dash)
6059 ("emacs-ht" ,emacs-ht)
6060 ("emacs-s" ,emacs-s)))
6061 (home-page "https://github.com/Wilfred/mustache.el")
6062 (synopsis "Mustache templating library for Emacs")
6063 (description "Mustache templating library for Emacs, mustache is
6064a simple web template system, which is described as a logic-less system
6065because it lacks any explicit control flow statements, both looping and
6066conditional evaluation can be achieved using section tags processing lists
6067and lambdas.")
6068 (license license:gpl3+)))
6069
f03e15ec
FS
6070(define-public emacs-org2web
6071 (package
6072 (name "emacs-org2web")
6073 (version "0.9.1")
6074 (source (origin
6075 (method url-fetch)
6076 (uri (string-append
6077 "https://github.com/tumashu/org2web/archive/v"
6078 version ".tar.gz"))
6079 (file-name (string-append name "-" version ".tar.gz"))
6080 (sha256
6081 (base32
6082 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6083 (build-system emacs-build-system)
6084 (propagated-inputs
6085 `(("emacs-dash" ,emacs-dash)
6086 ("emacs-el2org" ,emacs-el2org)
6087 ("emacs-ht" ,emacs-ht)
6088 ("emacs-mustache" ,emacs-mustache)
6089 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6090 (home-page "https://github.com/tumashu/org2web")
6091 (synopsis "Static site generator based on org-mode ")
6092 (description "Org2web is a static site generator based on org-mode,
6093which code derived from Kelvin H's org-page.")
6094 (license license:gpl2+)))
6095
deddeb44
FS
6096(define-public emacs-xelb
6097 (package
6098 (name "emacs-xelb")
aaa31d1b 6099 (version "0.14")
deddeb44
FS
6100 (source (origin
6101 (method url-fetch)
6102 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6103 version ".tar"))
6104 (sha256
6105 (base32
aaa31d1b 6106 "09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74"))))
deddeb44
FS
6107 (build-system emacs-build-system)
6108 ;; The following functions and variables needed by emacs-xelb are
6109 ;; not included in emacs-minimal:
6110 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6111 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6112 ;; x-display-pixel-width, x-display-pixel-height
6113 (arguments
6114 `(#:emacs ,emacs
6115 #:phases
6116 (modify-phases %standard-phases
6117 (add-after 'unpack 'regenerate-el-files
6118 (lambda* (#:key inputs #:allow-other-keys)
6119 (zero? (system* "make"
6120 (string-append "PROTO_PATH="
6121 (assoc-ref inputs "xcb-proto")
6122 "/share/xcb")
6123 (string-append "EMACS_BIN="
6124 (assoc-ref inputs "emacs")
6125 "/bin/emacs -Q"))))))))
6126 (native-inputs `(("xcb-proto" ,xcb-proto)))
6127 (home-page "https://github.com/ch11ng/xelb")
6128 (synopsis "X protocol Emacs Lisp binding")
6129 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6130X11 protocol based on the XML description files from the XCB project. It
6131features an object-oriented API and permits a certain degree of concurrency.
6132It should enable you to implement low-level X11 applications.")
6133 (license license:gpl3+)))
2b3b745c
FS
6134
6135(define-public emacs-exwm
6136 (package
6137 (name "emacs-exwm")
9f2a58a0 6138 (version "0.18")
2b3b745c
FS
6139 (synopsis "Emacs X window manager")
6140 (source (origin
6141 (method url-fetch)
6142 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6143 version ".tar"))
6144 (sha256
6145 (base32
9f2a58a0 6146 "1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q"))))
2b3b745c
FS
6147 (build-system emacs-build-system)
6148 (propagated-inputs
6149 `(("emacs-xelb" ,emacs-xelb)))
6150 (inputs
6151 `(("xhost" ,xhost)
6152 ("dbus" ,dbus)))
6153 ;; The following functions and variables needed by emacs-exwm are
6154 ;; not included in emacs-minimal:
6155 ;; scroll-bar-mode, fringe-mode
6156 ;; x-display-pixel-width, x-display-pixel-height
6157 (arguments
6158 `(#:emacs ,emacs
6159 #:phases
6160 (modify-phases %standard-phases
6161 (add-after 'build 'install-xsession
6162 (lambda* (#:key inputs outputs #:allow-other-keys)
6163 (let* ((out (assoc-ref outputs "out"))
6164 (xsessions (string-append out "/share/xsessions"))
6165 (bin (string-append out "/bin"))
6166 (exwm-executable (string-append bin "/exwm")))
6167 ;; Add a .desktop file to xsessions
6168 (mkdir-p xsessions)
6169 (mkdir-p bin)
6170 (with-output-to-file
6171 (string-append xsessions "/exwm.desktop")
6172 (lambda _
6173 (format #t "[Desktop Entry]~@
6174 Name=~a~@
6175 Comment=~a~@
6176 Exec=~a~@
6177 TryExec=~@*~a~@
6178 Type=Application~%" ,name ,synopsis exwm-executable)))
6179 ;; Add a shell wrapper to bin
2b3b745c
FS
6180 (with-output-to-file exwm-executable
6181 (lambda _
6182 (format #t "#!~a ~@
2b3b745c 6183 ~a +SI:localuser:$USER ~@
11f8e028 6184 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
6185 (string-append (assoc-ref inputs "bash") "/bin/sh")
6186 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6187 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6188 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6189 '(cond
6190 ((file-exists-p "~/.exwm")
6191 (load-file "~/.exwm"))
6192 ((not (featurep 'exwm))
6193 (require 'exwm)
6194 (require 'exwm-config)
6195 (exwm-config-default)
87c95cb2
AI
6196 (message (concat "exwm configuration not found. "
6197 "Falling back to default configuration...")))))))
2b3b745c
FS
6198 (chmod exwm-executable #o555)
6199 #t))))))
6200 (home-page "https://github.com/ch11ng/exwm")
6201 (description "EXWM is a full-featured tiling X window manager for Emacs
6202built on top of XELB.")
6203 (license license:gpl3+)))
21b99aad 6204
58addd2b
FS
6205(define-public emacs-switch-window
6206 (package
6207 (name "emacs-switch-window")
adaebe80 6208 (version "1.5.1")
58addd2b
FS
6209 (source (origin
6210 (method url-fetch)
6211 (uri (string-append
6212 "https://github.com/dimitri/switch-window/archive/v"
6213 version ".tar.gz"))
6214 (file-name (string-append name "-" version ".tar.gz"))
6215 (sha256
6216 (base32
adaebe80 6217 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
6218 (build-system emacs-build-system)
6219 (home-page "https://github.com/dimitri/switch-window")
6220 (synopsis "Emacs window switch tool")
6221 (description "Switch-window is an emacs window switch tool, which
6222offer a visual way to choose a window to switch to, delete, split or
6223other operations.")
6224 (license license:wtfpl2)))
6225
f4ade9b6
FS
6226(define-public emacs-exwm-x
6227 (package
6228 (name "emacs-exwm-x")
03a34d54 6229 (version "1.8.1")
f4ade9b6
FS
6230 (synopsis "Derivative window manager based on EXWM")
6231 (source (origin
6232 (method url-fetch)
6233 (uri (string-append
6234 "https://github.com/tumashu/exwm-x/archive/v"
6235 version ".tar.gz"))
6236 (file-name (string-append name "-" version ".tar.gz"))
6237 (sha256
6238 (base32
03a34d54 6239 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
f4ade9b6
FS
6240 (build-system emacs-build-system)
6241 (propagated-inputs
6242 `(("emacs-exwm" ,emacs-exwm)
6243 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
6244 ("emacs-ivy" ,emacs-ivy)
6245 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
6246 (inputs
6247 `(("xhost" ,xhost)
6248 ("dbus" ,dbus)))
6249 ;; Need emacs instead of emacs-minimal,
6250 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6251 (arguments
6252 `(#:emacs ,emacs
6253 #:phases
6254 (modify-phases %standard-phases
6255 (add-after 'build 'install-xsession
6256 (lambda* (#:key inputs outputs #:allow-other-keys)
6257 (let* ((out (assoc-ref outputs "out"))
6258 (xsessions (string-append out "/share/xsessions"))
6259 (bin (string-append out "/bin"))
6260 (exwm-executable (string-append bin "/exwm-x")))
6261 ;; Add a .desktop file to xsessions
6262 (mkdir-p xsessions)
6263 (mkdir-p bin)
6264 (with-output-to-file
6265 (string-append xsessions "/exwm-x.desktop")
6266 (lambda _
6267 (format #t "[Desktop Entry]~@
6268 Name=~a~@
6269 Comment=~a~@
6270 Exec=~a~@
6271 TryExec=~@*~a~@
6272 Type=Application~%" ,name ,synopsis exwm-executable)))
6273 ;; Add a shell wrapper to bin
f4ade9b6
FS
6274 (with-output-to-file exwm-executable
6275 (lambda _
6276 (format #t "#!~a ~@
f4ade9b6
FS
6277 ~a +SI:localuser:$USER ~@
6278 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6279 (string-append (assoc-ref inputs "bash") "/bin/sh")
6280 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6281 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6282 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6283 '(require 'exwmx-loader))))
6284 (chmod exwm-executable #o555)
6285 #t))))))
6286 (home-page "https://github.com/tumashu/exwm-x")
6287 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6288on mouse-control.")
6289 (license license:gpl3+)))
6290
21b99aad
AI
6291(define-public emacs-gnuplot
6292 (package
6293 (name "emacs-gnuplot")
6294 (version "0.7.0")
6295 (source
6296 (origin
6297 (method url-fetch)
6298 (uri (string-append
6299 "https://github.com/bruceravel/gnuplot-mode/archive/"
6300 version ".tar.gz"))
6301 (file-name (string-append name "-" version ".tar.gz"))
6302 (sha256
6303 (base32
6304 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6305 (build-system gnu-build-system)
6306 (native-inputs `(("emacs" ,emacs-minimal)))
6307 (arguments
6308 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6309 "/gnuplot-" version)))
6310 `(#:modules ((guix build gnu-build-system)
6311 (guix build utils)
6312 (guix build emacs-utils))
6313 #:imported-modules (,@%gnu-build-system-modules
6314 (guix build emacs-utils))
6315 #:configure-flags
6316 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6317 "/bin/emacs")
6318 (string-append "--with-lispdir=" %output ,elisp-dir))
6319 #:phases
6320 (modify-phases %standard-phases
6321 (add-after 'install 'generate-autoloads
6322 (lambda* (#:key outputs #:allow-other-keys)
6323 (emacs-generate-autoloads
6324 "gnuplot"
6325 (string-append (assoc-ref outputs "out") ,elisp-dir))
6326 #t))))))
6327 (home-page "https://github.com/bruceravel/gnuplot-mode")
6328 (synopsis "Emacs major mode for interacting with gnuplot")
6329 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6330with gnuplot.")
6331 (license license:gpl2+)))
860f73c6
AI
6332
6333(define-public emacs-transpose-frame
6334 (package
6335 (name "emacs-transpose-frame")
6336 (version "0.1.0")
6337 (source
6338 (origin
6339 (method url-fetch)
6340 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8a421ddb 6341 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
6342 (sha256
6343 (base32
6344 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6345 (build-system emacs-build-system)
6346 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6347 (synopsis "Transpose window arrangement in current frame")
6348 (description "@code{emacs-transpose-frame} provides some interactive
6349functions which allows users to transpose windows arrangement in currently
6350selected frame.")
6351 (license license:bsd-2)))
a34242ee
KM
6352
6353(define-public emacs-key-chord
6354 (package
6355 (name "emacs-key-chord")
6356 (version "0.6")
6357 (source
6358 (origin
6359 (method url-fetch)
6360 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
a742becd 6361 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
6362 (sha256
6363 (base32
6364 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6365 (build-system emacs-build-system)
6366 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6367 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6368 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6369mode for binding key chords to commands. A key chord is defined as two keys
6370pressed simultaneously or a single key quickly pressed twice.")
6371 (license license:gpl2+)))
a993add1
AI
6372
6373(define-public emacs-evil-surround
6374 (package
6375 (name "emacs-evil-surround")
6376 (version "1.0.0")
6377 (source
6378 (origin
6379 (method url-fetch)
6380 (uri (string-append
6381 "https://github.com/timcharper/evil-surround/archive/v"
6382 version ".tar.gz"))
6383 (file-name (string-append name "-" version ".tar.gz"))
6384 (sha256
6385 (base32
6386 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6387 (build-system emacs-build-system)
6388 (propagated-inputs
6389 `(("emacs-evil" ,emacs-evil)))
6390 (home-page "https://github.com/timcharper/evil-surround")
6391 (synopsis "Easily modify surrounding parantheses and quotes")
6392 (description "@code{emacs-evil-surround} allows easy deletion, change and
6393addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6394 (license license:gpl3+)))
2406766e
AI
6395
6396(define-public emacs-evil-commentary
6397 (package
6398 (name "emacs-evil-commentary")
6399 (version "2.1.1")
6400 (source
6401 (origin
6402 (method url-fetch)
6403 (uri (string-append
6404 "https://github.com/linktohack/evil-commentary/archive/v"
6405 version ".tar.gz"))
6406 (file-name (string-append name "-" version ".tar.gz"))
6407 (sha256
6408 (base32
6409 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6410 (build-system emacs-build-system)
6411 (propagated-inputs
6412 `(("emacs-evil" ,emacs-evil)))
6413 (home-page "https://github.com/linktohack/evil-commentary")
6414 (synopsis "Comment out code in evil mode")
6415 (description "@code{emacs-evil-commentary} adds keybindings to easily
6416comment out lines of code in evil mode. It provides @code{gcc} to comment out
6417lines, and @code{gc} to comment out the target of a motion.")
6418 (license license:gpl3+)))
99d406c9
AI
6419
6420;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6421;; therefore cannot be run
6422(define-public emacs-ansi
6423 (package
6424 (name "emacs-ansi")
6425 (version "0.4.1")
6426 (source
6427 (origin
6428 (method url-fetch)
6429 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6430 version ".tar.gz"))
6431 (file-name (string-append name "-" version ".tar.gz"))
6432 (sha256
6433 (base32
6434 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6435 (build-system emacs-build-system)
6436 (propagated-inputs
6437 `(("emacs-dash" ,emacs-dash)
6438 ("emacs-s" ,emacs-s)))
6439 (home-page "https://github.com/rejeep/ansi.el")
6440 (synopsis "Convert strings to ANSI")
6441 (description "@code{emacs-ansi} defines functions that turns simple
6442strings to ANSI strings. Turning a string into an ANSI string can be to add
6443color to a text, add color in the background of a text or adding a style, such
6444as bold, underscore or italic.")
6445 (license license:gpl3+)))
605ecbcb
AI
6446
6447;; Tests for emacs-commander have a circular dependency with ert-runner, and
6448;; therefore cannot be run
6449(define-public emacs-commander
6450 (package
6451 (name "emacs-commander")
6452 (version "0.7.0")
6453 (source
6454 (origin
6455 (method url-fetch)
6456 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6457 version ".tar.gz"))
6458 (file-name (string-append name "-" version ".tar.gz"))
6459 (sha256
6460 (base32
6461 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6462 (build-system emacs-build-system)
6463 (propagated-inputs
6464 `(("emacs-dash" ,emacs-dash)
6465 ("emacs-f" ,emacs-f)
6466 ("emacs-s" ,emacs-s)))
6467 (home-page "https://github.com/rejeep/commander.el")
6468 (synopsis "Emacs command line parser")
6469 (description "@code{emacs-commander} provides command line parsing for
6470Emacs.")
6471 (license license:gpl3+)))
87449013
AI
6472
6473;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6474;; cannot be run
6475(define-public ert-runner
9490c411
MC
6476 (package
6477 (name "ert-runner")
6478 (version "0.7.0")
6479 (source
6480 (origin
6481 (method url-fetch)
6482 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6483 version ".tar.gz"))
6484 (file-name (string-append name "-" version ".tar.gz"))
6485 (sha256
6486 (base32
6487 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6488 (build-system emacs-build-system)
6489 (inputs
6490 `(("emacs-ansi" ,emacs-ansi)
6491 ("emacs-commander" ,emacs-commander)
6492 ("emacs-dash" ,emacs-dash)
6493 ("emacs-f" ,emacs-f)
6494 ("emacs-s" ,emacs-s)
6495 ("emacs-shut-up" ,emacs-shut-up)))
6496 (arguments
6497 `(#:phases
6498 (modify-phases %standard-phases
6499 (add-after 'install 'install-executable
6500 (lambda* (#:key inputs outputs #:allow-other-keys)
6501 (let ((out (assoc-ref outputs "out")))
6502 (substitute* "bin/ert-runner"
6503 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6504 (string-append "ERT_RUNNER=\"" out
6505 "/share/emacs/site-lisp/guix.d/"
6506 ,name "-" ,version)))
6507 (install-file "bin/ert-runner" (string-append out "/bin"))
6508 (wrap-program (string-append out "/bin/ert-runner")
6509 (list "EMACSLOADPATH" ":" 'prefix
6510 (string-split (getenv "EMACSLOADPATH") #\:)))
6511 #t))))
6512 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6513 (home-page "https://github.com/rejeep/ert-runner.el")
6514 (synopsis "Opinionated Ert testing workflow")
6515 (description "@code{ert-runner} is a tool for Emacs projects tested
87449013
AI
6516using ERT. It assumes a certain test structure setup and can therefore make
6517running tests easier.")
9490c411 6518 (license license:gpl3+)))
7a0efa77
JN
6519
6520(define-public emacs-disable-mouse
6521 (package
6522 (name "emacs-disable-mouse")
6523 (version "0.2")
6524 (source
6525 (origin
6526 (method url-fetch)
6527 (uri (string-append
6528 "https://github.com/purcell/disable-mouse/archive/"
6529 version ".tar.gz"))
6530 (file-name (string-append name "-" version ".tar.gz"))
6531 (sha256
6532 (base32
6533 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6534 (build-system emacs-build-system)
6535 (home-page "https://github.com/purcell/disable-mouse")
6536 (synopsis "Disable mouse commands globally")
6537 (description
6538 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6539pair of minor modes which suppress all mouse events by intercepting them and
6540running a customisable handler command (@code{ignore} by default). ")
6541 (license license:gpl3+)))
ce676015 6542
b0912e9f
OP
6543(define-public emacs-json-reformat
6544 (package
6545 (name "emacs-json-reformat")
6546 (version "0.0.6")
6547 (source
6548 (origin
6549 (method url-fetch)
6550 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6551 version ".tar.gz"))
6552 (file-name (string-append name "-" version ".tar.gz"))
6553 (sha256
6554 (base32
6555 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6556 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6557 (build-system emacs-build-system)
d1d41db6
MC
6558 (propagated-inputs
6559 `(("emacs-undercover" ,emacs-undercover)))
6560 (native-inputs
6561 `(("emacs-dash" ,emacs-dash)
6562 ("emacs-shut-up" ,emacs-shut-up)
6563 ("ert-runner" ,ert-runner)))
b0912e9f 6564 (arguments
d1d41db6
MC
6565 `(#:tests? #t
6566 #:test-command '("ert-runner")))
b0912e9f
OP
6567 (home-page "https://github.com/gongo/json-reformat")
6568 (synopsis "Reformatting tool for JSON")
6569 (description "@code{json-reformat} provides a reformatting tool for
6570@url{http://json.org/, JSON}.")
6571 (license license:gpl3+)))
6572
6df27407
OP
6573(define-public emacs-json-snatcher
6574 (package
6575 (name "emacs-json-snatcher")
6576 (version "1.0.0")
6577 (source
6578 (origin
6579 (method url-fetch)
6580 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
6581 version ".tar.gz"))
6582 (file-name (string-append name "-" version ".tar.gz"))
6583 (sha256
6584 (base32
6585 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
6586 (build-system emacs-build-system)
6587 (home-page "https://github.com/sterlingg/json-snatcher")
6588 (synopsis "Grabs the path to JSON values in a JSON file")
6589 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
6590a @url{http://json.org/, JSON} file.")
6591 (license license:gpl3+)))
6592
dd72837d
OP
6593(define-public emacs-json-mode
6594 (package
6595 (name "emacs-json-mode")
6596 (version "1.7.0")
6597 (source
6598 (origin
6599 (method url-fetch)
6600 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
6601 "v" version ".tar.gz"))
6602 (file-name (string-append name "-" version ".tar.gz"))
6603 (sha256
6604 (base32
6605 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
6606 (build-system emacs-build-system)
6607 (propagated-inputs
6608 `(("emacs-json-reformat" ,emacs-json-reformat)
6609 ("emacs-json-snatcher" ,emacs-json-snatcher)))
6610 (home-page "https://github.com/joshwnj/json-mode")
6611 (synopsis "Major mode for editing JSON files")
6612 (description "@code{json-mode} extends the builtin js-mode syntax
6613highlighting.")
6614 (license license:gpl3+)))
6615
ce676015
JR
6616(define-public emacs-restclient
6617 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
6618 (revision "1")) ;Guix package revision,
6619 ;upstream doesn't have official releases
6620 (package
6621 (name "emacs-restclient")
6622 (version (string-append revision "."
6623 (string-take commit 7)))
6624 (source (origin
6625 (method git-fetch)
6626 (uri (git-reference
6627 (url "https://github.com/pashky/restclient.el.git")
6628 (commit commit)))
6629 (sha256
6630 (base32
6631 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
6632 (file-name (git-file-name name version))))
6633 (build-system emacs-build-system)
6634 (propagated-inputs
6635 `(("emacs-helm" ,emacs-helm)))
6636 (home-page "https://github.com/pashky/restclient.el")
6637 (synopsis "Explore and test HTTP REST webservices")
6638 (description
6639 "This tool allows for testing and exploration of HTTP REST Web services
6640from within Emacs. Restclient runs queries from a plan-text query sheet,
6641displays results pretty-printed in XML or JSON with @code{restclient-mode}")
6642 (license license:public-domain))))
730c0790 6643
de5256d3
MC
6644(define-public emacs-eimp
6645 (let ((version "1.4.0")
6646 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
6647 (revision "1"))
6648 (package
6649 (name "emacs-eimp")
6650 (version (git-version version revision commit))
6651 (source
6652 (origin
6653 (method git-fetch)
6654 (uri (git-reference
6655 (url "https://github.com/nicferrier/eimp.git")
6656 (commit commit)))
6657 (file-name (git-file-name name version))
6658 (sha256
6659 (base32
6660 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
6661 (build-system emacs-build-system)
6662 (arguments
6663 `(#:phases
6664 (modify-phases %standard-phases
6665 (add-after 'unpack 'configure
6666 (lambda* (#:key inputs #:allow-other-keys)
6667 (let ((imagemagick (assoc-ref inputs "imagemagick")))
6668 ;; eimp.el is read-only in git.
6669 (chmod "eimp.el" #o644)
6670 (emacs-substitute-variables "eimp.el"
6671 ("eimp-mogrify-program"
6672 (string-append imagemagick "/bin/mogrify"))))
6673 #t)))))
6674 (inputs
6675 `(("imagemagick" ,imagemagick)))
6676 (home-page "https://github.com/nicferrier/eimp")
6677 (synopsis "Interactive image manipulation utility for Emacs")
6678 (description "@code{emacs-eimp} allows interactive image manipulation
6679from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
6680the actual transformations.")
6681 (license license:gpl2+))))
6682
730c0790
OP
6683(define-public emacs-dired-hacks
6684 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
6685 (revision "1"))
6686 (package
6687 (name "emacs-dired-hacks")
6688 (version (string-append "0.0.1-" revision "."
6689 (string-take commit 7)))
6690 (source (origin
6691 (method git-fetch)
6692 (uri (git-reference
6693 (url "https://github.com/Fuco1/dired-hacks.git")
6694 (commit commit)))
6695 (file-name (string-append name "-" version "-checkout"))
6696 (sha256
6697 (base32
6698 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
6699 (build-system emacs-build-system)
6700 (propagated-inputs
6701 `(("emacs-dash" ,emacs-dash)
fee23c17 6702 ("emacs-eimp" ,emacs-eimp)
730c0790
OP
6703 ("emacs-f" ,emacs-f)
6704 ("emacs-s" ,emacs-s)))
6705 (home-page "https://github.com/Fuco1/dired-hacks")
6706 (synopsis
6707 "Collection of useful dired additions")
6708 (description
6709 "Collection of Emacs dired mode additions:
6710@itemize
6711@item dired-avfs
6712@item dired-columns
6713@item dired-filter
6714@item dired-hacks-utils
6715@item dired-images
6716@item dired-list
6717@item dired-narrow
6718@item dired-open
6719@item dired-rainbow
6720@item dired-ranger
6721@item dired-subtree
6722@item dired-tagsistant
6723@end itemize\n")
6724 (license license:gpl3+))))
1a80e4d7
OP
6725
6726(define-public emacs-which-key
6727 (package
6728 (name "emacs-which-key")
5fa1b417 6729 (version "3.0.2")
1a80e4d7
OP
6730 (source
6731 (origin
6732 (method url-fetch)
6733 (uri (string-append
6734 "https://github.com/justbur/emacs-which-key/archive/v"
6735 version ".tar.gz"))
6736 (sha256
6737 (base32
5fa1b417 6738 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
1a80e4d7
OP
6739 (file-name (string-append name "-" version ".tar.gz"))))
6740 (build-system emacs-build-system)
6741 (arguments
d1d41db6
MC
6742 `(#:tests? #t
6743 #:test-command '("emacs" "--batch"
6744 "-l" "which-key-tests.el"
6745 "-f" "ert-run-tests-batch-and-exit")))
1a80e4d7
OP
6746 (home-page "https://github.com/justbur/emacs-which-key")
6747 (synopsis "Display available key bindings in popup")
2482c02f
AI
6748 (description
6749 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
6750bindings following your currently entered incomplete command (a prefix) in a
6751popup. For example, after enabling the minor mode if you enter C-x and wait
6752for the default of 1 second, the minibuffer will expand with all of the
6753available key bindings that follow C-x (or as many as space allows given your
6754settings).")
1a80e4d7 6755 (license license:gpl3+)))
c97979d6 6756
397d7980
MC
6757(define-public emacs-ws-butler
6758 (package
6759 (name "emacs-ws-butler")
6760 (version "0.6")
6761 (source (origin
6762 (method git-fetch)
6763 (uri (git-reference
6764 (url "https://github.com/lewang/ws-butler.git")
6765 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
6766 (file-name (string-append name "-" version "-checkout"))
6767 (sha256
6768 (base32
6769 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
6770 (build-system emacs-build-system)
6771 (native-inputs
6772 `(("ert-runner" ,ert-runner)))
6773 (arguments
d1d41db6
MC
6774 `(#:tests? #t
6775 #:test-command '("ert-runner" "tests")))
397d7980
MC
6776 (home-page "https://github.com/lewang/ws-butler")
6777 (synopsis "Trim spaces from end of lines")
6778 (description
6779 "This Emacs package automatically and unobtrusively trims whitespace
6780characters from end of lines.")
6781 (license license:gpl3+)))
6782
c97979d6
OP
6783(define-public emacs-org-edit-latex
6784 (package
6785 (name "emacs-org-edit-latex")
6786 (version "0.8.0")
6787 (source
6788 (origin
6789 (method url-fetch)
6790 (uri (string-append
6791 "https://github.com/et2010/org-edit-latex/archive/v"
6792 version ".tar.gz"))
6793 (file-name (string-append name "-" version ".tar.gz"))
6794 (sha256
6795 (base32
6796 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
6797 (build-system emacs-build-system)
6798 (propagated-inputs
6799 `(("emacs-auctex" ,emacs-auctex)
6800 ;; The version of org in Emacs 25.2 is not sufficient, because the
6801 ;; `org-latex-make-preamble' function is required.
6802 ("emacs-org" ,emacs-org)))
6803 (home-page "https://github.com/et2010/org-edit-latex")
6804 (synopsis "Edit a latex fragment just like editing a src block")
6805 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
6806It lets you edit a latex fragment in a dedicated buffer just like editing a
6807src block.")
6808 (license license:gpl3+)))
aadd75ac
OP
6809
6810(define-public emacs-emamux
6811 (package
6812 (name "emacs-emamux")
6813 (version "0.14")
6814 (source (origin
6815 (method url-fetch)
6816 (uri (string-append
6817 "https://github.com/syohex/emacs-emamux/archive/"
6818 version ".tar.gz"))
6819 (file-name (string-append name "-" version ".tar.gz"))
6820 (sha256
6821 (base32
6822 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
6823 (build-system emacs-build-system)
6824 (home-page "https://github.com/syohex/emacs-emamux")
6825 (synopsis "Manipulate Tmux from Emacs")
6826 (description
6827 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
6828multiplexer.")
6829 (license license:gpl3+)))
e8d9a878
OP
6830
6831(define-public emacs-rpm-spec-mode
6832 (package
6833 (name "emacs-rpm-spec-mode")
6834 (version "0.16")
6835 (source
6836 (origin
6837 (method url-fetch)
6838 ;; URI has the Fedora release number instead of the version
6839 ;; number. This will have to updated manually every new release.
6840 (uri (string-append
6841 "https://src.fedoraproject.org/cgit/rpms"
6842 "/emacs-rpm-spec-mode.git/snapshot"
6843 "/emacs-rpm-spec-mode-f26.tar.gz"))
6844 (sha256
6845 (base32
6846 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
6847 (build-system emacs-build-system)
6848 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
6849 (synopsis "Emacs major mode for editing RPM spec files")
6850 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
6851editing RPM spec files.")
6852 (license license:gpl2+)))
a88adeb3
OP
6853
6854(define-public emacs-git-messenger
6855 (package
6856 (name "emacs-git-messenger")
6857 (version "0.18")
6858 (source
6859 (origin
6860 (method url-fetch)
6861 (uri (string-append
6862 "https://github.com/syohex/emacs-git-messenger/archive/"
6863 version ".tar.gz"))
6864 (file-name (string-append name "-" version ".tar.gz"))
6865 (sha256
6866 (base32
6867 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
6868 (build-system emacs-build-system)
6869 (propagated-inputs
6870 `(("emacs-popup" ,emacs-popup)))
6871 (arguments
d1d41db6
MC
6872 `(#:tests? #t
6873 #:test-command '("emacs" "--batch" "-l" "test/test.el"
6874 "-f" "ert-run-tests-batch-and-exit")))
a88adeb3
OP
6875 (home-page "https://github.com/syohex/emacs-git-messenger")
6876 (synopsis "Popup commit message at current line")
6877 (description "@code{emacs-git-messenger} provides
6878@code{git-messenger:popup-message}, a function that when called, will popup
6879the last git commit message for the current line. This uses git-blame
6880internally.")
6881 (license license:gpl3+)))
1ee879e9
OP
6882
6883(define-public emacs-gitpatch
6884 (package
6885 (name "emacs-gitpatch")
6886 (version "0.5.0")
6887 (source
6888 (origin
6889 (method url-fetch)
6890 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
6891 "v" version ".tar.gz"))
6892 (file-name (string-append name "-" version ".tar.gz"))
6893 (sha256
6894 (base32
6895 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
6896 (build-system emacs-build-system)
6897 (home-page "https://github.com/tumashu/gitpatch")
6898 (synopsis "Mail git patch from Emacs")
6899 (description "@code{emacs-gitpatch} lets users easily send git patches,
6900created by @code{git format-patch}, from @code{magit}, @code{dired} and
6901@code{ibuffer} buffers.")
6902 (license license:gpl3+)))
27feda65
OP
6903
6904(define-public emacs-erc-hl-nicks
6905 (package
6906 (name "emacs-erc-hl-nicks")
6907 (version "1.3.2")
6908 (source
6909 (origin
6910 (method url-fetch)
6911 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
6912 "/archive/" version ".tar.gz"))
6913 (file-name (string-append name "-" version ".tar.gz"))
6914 (sha256
6915 (base32
6916 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
6917 (build-system emacs-build-system)
6918 (synopsis "Nickname highlighting for Emacs ERC")
6919 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
6920client for Emacs. The main features are:
6921@itemize
6922@item Auto-colorizes nicknames without having to specify colors
6923@item Ignores certain characters that IRC clients add to nicknames to avoid
6924duplicates (nickname, nickname’, nickname\", etc.)
6925@item Attempts to produce colors with a sufficient amount of contrast between
6926the nick color and the background color
6927@end itemize\n")
6928 (home-page "https://github.com/leathekd/erc-hl-nicks")
6929 (license license:gpl3+)))
f262f446
OP
6930
6931(define-public emacs-engine-mode
6932 (package
6933 (name "emacs-engine-mode")
6934 (version "2.0.0")
6935 (source
6936 (origin
6937 (method url-fetch)
6938 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
6939 "v" version ".tar.gz"))
6940 (file-name (string-append name "-" version ".tar.gz"))
6941 (sha256
6942 (base32
6943 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
6944 (build-system emacs-build-system)
6945 (synopsis "Minor mode for defining and querying search engines")
6946 (description "@code{engine-mode} is a global minor mode for Emacs. It
6947enables you to easily define search engines, bind them to keybindings, and
6948query them from the comfort of your editor.")
6949 (home-page "https://github.com/hrs/engine-mode")
6950 (license license:gpl3+)))
b9dcaced
PM
6951
6952(define-public emacs-prop-menu
6953 (package
6954 (name "emacs-prop-menu")
6955 (version "0.1.2")
6956 (source
6957 (origin
6958 (method url-fetch)
6959 (uri (string-append
6960 "http://stable.melpa.org/packages/prop-menu-"
6961 version ".el"))
6962 (sha256
6963 (base32
6964 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
6965 (build-system emacs-build-system)
6966 (home-page
6967 "https://github.com/david-christiansen/prop-menu-el")
6968 (synopsis
6969 "Create and display a context menu based on text and overlay properties")
6970 (description
6971 "This is a library for computing context menus based on text
6972properties and overlays. The intended use is to have tools that
6973annotate source code and others that use these annotations, without
6974requiring a direct coupling between them, but maintaining
6975discoverability.
6976
6977Major modes that wish to use this library should first define an
6978appropriate value for @code{prop-menu-item-functions}. Then, they should
6979bind @code{prop-menu-by-completing-read} to an appropriate
6980key. Optionally, a mouse pop-up can be added by binding
6981@code{prop-menu-show-menu} to a mouse event.")
6982 (license license:gpl3+)))
5883bb76
PM
6983
6984(define-public emacs-idris-mode
6985 (package
6986 (name "emacs-idris-mode")
6987 (version "0.9.19")
6988 (source
6989 (origin
6990 (method url-fetch)
6991 (uri (string-append
6992 "http://stable.melpa.org/packages/idris-mode-"
6993 version ".tar"))
6994 (sha256
6995 (base32
a05a637c 6996 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
5883bb76
PM
6997 (build-system emacs-build-system)
6998 (propagated-inputs
6999 `(("emacs-prop-menu" ,emacs-prop-menu)))
7000 (home-page
7001 "https://github.com/idris-hackers/idris-mode")
7002 (synopsis "Major mode for editing Idris code")
7003 (description
7004 "This is an Emacs mode for editing Idris code. It requires the latest
7005version of Idris, and some features may rely on the latest Git version of
7006Idris.")
7007 (license license:gpl3+)))
eaf4ba6e
OP
7008
7009(define-public emacs-browse-at-remote
0698633d 7010 (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef")
eaf4ba6e
OP
7011 (revision "1"))
7012 (package
7013 (name "emacs-browse-at-remote")
7014 (version (string-append "0.9.0-" revision "."
7015 (string-take commit 7)))
7016 (source (origin
7017 (method git-fetch)
7018 (uri (git-reference
7019 (url "https://github.com/rmuslimov/browse-at-remote.git")
7020 (commit commit)))
7021 (file-name (string-append name "-" version "-checkout"))
61995dce
OP
7022 (patches
7023 (search-patches "emacs-browse-at-remote-cgit-gnu.patch"))
eaf4ba6e
OP
7024 (sha256
7025 (base32
0698633d 7026 "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj"))))
eaf4ba6e
OP
7027 (build-system emacs-build-system)
7028 (propagated-inputs
7029 `(("emacs-f" ,emacs-f)
7030 ("emacs-s" ,emacs-s)))
8505d348
AK
7031 (native-inputs
7032 `(("ert-runner" ,ert-runner)))
eaf4ba6e 7033 (arguments
d1d41db6
MC
7034 `(#:tests? #t
7035 #:test-command '("ert-runner")))
eaf4ba6e
OP
7036 (home-page "https://github.com/rmuslimov/browse-at-remote")
7037 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
7038 (description
7039 "This Emacs package allows you to open a target page on
7040github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
7041It supports dired buffers and opens them in tree mode at destination.")
7042 (license license:gpl3+))))
63253098
OP
7043
7044(define-public emacs-tiny
7045 (package
7046 (name "emacs-tiny")
d8ec1b71 7047 (version "0.2.1")
63253098
OP
7048 (source
7049 (origin
7050 (method url-fetch)
7051 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
7052 (sha256
7053 (base32
d8ec1b71 7054 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
63253098
OP
7055 (build-system emacs-build-system)
7056 (home-page "https://github.com/abo-abo/tiny")
7057 (synopsis "Quickly generate linear ranges in Emacs")
7058 (description
7059 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
a913d9d9 7060It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
63253098
OP
7061proficiency is an advantage, since you can transform your numeric range with
7062an elisp expression.")
0b88f536 7063 (license license:gpl3+)))
4aafce22 7064
7081d4e0
RW
7065(define-public emacs-emojify
7066 (package
7067 (name "emacs-emojify")
7068 (version "0.4")
7069 (source
7070 (origin
7071 (method url-fetch)
7072 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7073 "releases/download/v" version "/emojify-"
7074 version ".tar"))
7075 (sha256
7076 (base32
7077 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7078 (build-system emacs-build-system)
7079 (arguments
7080 `(#:phases
7081 (modify-phases %standard-phases
7082 (add-after 'install 'install-data
7083 (lambda* (#:key outputs #:allow-other-keys)
7084 (copy-recursively "data"
7085 (string-append (assoc-ref outputs "out")
7086 "/share/emacs/site-lisp/guix.d/"
7087 "emojify-" ,version "/data"))
7088 #t)))))
7089 (propagated-inputs
7090 `(("emacs-ht" ,emacs-ht)))
7091 (home-page "https://github.com/iqbalansari/emacs-emojify")
7092 (synopsis "Display emojis in Emacs")
7093 (description "This package displays emojis in Emacs similar to how Github,
7094Slack, and other websites do. It can display plain ASCII like @code{:)} as
7095well as Github-style emojis like @code{:smile:}. It provides a minor mode
7096@code{emojify-mode} to enable the display of emojis in a buffer.")
7097 (license license:gpl3+)))
7098
9c058ef2
RW
7099(define-public emacs-websocket
7100 (package
7101 (name "emacs-websocket")
a6334e6e 7102 (version "1.10")
9c058ef2
RW
7103 (source
7104 (origin
a6334e6e
RW
7105 (method git-fetch)
7106 (uri (git-reference
7107 (url "https://github.com/ahyatt/emacs-websocket.git")
7108 (commit version)))
7109 (file-name (string-append name "-" version "-checkout"))
9c058ef2
RW
7110 (sha256
7111 (base32
a6334e6e 7112 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
9c058ef2
RW
7113 (build-system emacs-build-system)
7114 (home-page "http://elpa.gnu.org/packages/websocket.html")
7115 (synopsis "Emacs WebSocket client and server")
7116 (description "This is an Elisp library for WebSocket clients to talk to
7117WebSocket servers, and for WebSocket servers to accept connections from
7118WebSocket clients. This library is designed to be used by other library
7119writers, to write applications that use WebSockets, and is not useful by
7120itself.")
7121 (license license:gpl3+)))
7122
a204c14c
RW
7123(define-public emacs-oauth2
7124 (package
7125 (name "emacs-oauth2")
7126 (version "0.11")
7127 (source
7128 (origin
7129 (method url-fetch)
7130 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7131 version ".el"))
7132 (sha256
7133 (base32
7134 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7135 (build-system emacs-build-system)
7136 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7137 (synopsis "OAuth 2.0 authorization protocol implementation")
7138 (description
7139 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7140The main entry point is @code{oauth2-auth-and-store} which will return a token
7141structure. This token structure can be then used with
7142@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7143retrieve any data that need OAuth authentication to be accessed. If the token
7144needs to be refreshed, the code handles it automatically and stores the new
7145value of the access token.")
7146 (license license:gpl3+)))
7147
26b388ce
RW
7148(define-public emacs-circe
7149 (package
7150 (name "emacs-circe")
7151 (version "2.6")
7152 (source
7153 (origin
7154 (method git-fetch)
7155 (uri (git-reference
7156 (url "https://github.com/jorgenschaefer/circe.git")
7157 (commit (string-append "v" version))))
7158 (file-name (string-append name "-" version "-checkout"))
7159 (sha256
7160 (base32
7161 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
7162 (build-system emacs-build-system)
7163 ;; In order to securely connect to an IRC server using TLS, Circe requires
7164 ;; the GnuTLS binary.
7165 (propagated-inputs
7166 `(("gnutls" ,gnutls)))
7167 (home-page "https://github.com/jorgenschaefer/circe")
7168 (synopsis "Client for IRC in Emacs")
7169 (description "Circe is a Client for IRC in Emacs. It integrates well with
7170the rest of the editor, using standard Emacs key bindings and indicating
7171activity in channels in the status bar so it stays out of your way unless you
7172want to use it.")
7173 (license license:gpl3+)))
7174
5c8cdd4e 7175(define-public emacs-slack
deb48944
RW
7176 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7177 (revision "4"))
5c8cdd4e
RW
7178 (package
7179 (name "emacs-slack")
7180 (version (string-append "0-" revision "." (string-take commit 7)))
7181 (source (origin
7182 (method git-fetch)
7183 (uri (git-reference
7184 (url "https://github.com/yuya373/emacs-slack.git")
7185 (commit commit)))
7186 (file-name (string-append name "-" version "-checkout"))
7187 (sha256
7188 (base32
deb48944 7189 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
5c8cdd4e
RW
7190 (build-system emacs-build-system)
7191 (propagated-inputs
7192 `(("emacs-alert" ,emacs-alert)
7193 ("emacs-emojify" ,emacs-emojify)
7194 ("emacs-request" ,emacs-request)
7195 ("emacs-websocket" ,emacs-websocket)
7196 ("emacs-oauth2" ,emacs-oauth2)
7197 ("emacs-circe" ,emacs-circe)))
7198 (home-page "https://github.com/yuya373/emacs-slack")
7199 (synopsis "Slack client for Emacs")
7200 (description "This package provides an Emacs client for the Slack
7201messaging service.")
7202 (license license:gpl3+))))
7203
4aafce22
JN
7204(define-public emacs-bash-completion
7205 (package
7206 (name "emacs-bash-completion")
7207 (version "2.0.0")
7208 (source
7209 (origin
7210 (method url-fetch)
7211 (uri (string-append
7212 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7213 version ".tar.gz"))
7214 (file-name (string-append name "-" version ".tar.gz"))
7215 (sha256
7216 (base32
7217 "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
7218 (inputs `(("bash" ,bash)))
7219 (build-system emacs-build-system)
7220 (arguments
7221 `(#:phases
7222 (modify-phases %standard-phases
7223 (add-before 'install 'configure
7224 (lambda* (#:key inputs #:allow-other-keys)
7225 (let ((bash (assoc-ref inputs "bash")))
7226 (emacs-substitute-variables "bash-completion.el"
7227 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7228 #t)))))
7229 (home-page "https://github.com/szermatt/emacs-bash-completion")
7230 (synopsis "BASH completion for the shell buffer")
7231 (description
7232 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7233and shell-command prompts that are based on bash completion.")
7234 (license license:gpl2+)))
d02c2873
KM
7235
7236(define-public emacs-easy-kill
7237 (package
7238 (name "emacs-easy-kill")
7239 (version "0.9.3")
7240 (source (origin
7241 (method url-fetch)
7242 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7243 version ".tar"))
7244 (sha256
7245 (base32
7246 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7247 (build-system emacs-build-system)
7248 (home-page "https://github.com/leoliu/easy-kill")
7249 (synopsis "Kill and mark things easily in Emacs")
7250 (description
7251 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7252let users kill or mark things easily.")
7253 (license license:gpl3+)))
9faa46ee
MC
7254
7255(define-public emacs-csv-mode
7256 (package
7257 (name "emacs-csv-mode")
7258 (version "1.7")
7259 (source
7260 (origin
7261 (method url-fetch)
7262 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7263 version ".el"))
7264 (sha256
7265 (base32
7266 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7267 (build-system emacs-build-system)
7268 (home-page
7269 "http://elpa.gnu.org/packages/csv-mode.html")
7270 (synopsis
7271 "Major mode for editing comma/char separated values")
7272 (description
7273 "This Emacs package implements CSV mode, a major mode for editing records
7274in a generalized CSV (character-separated values) format.")
7275 (license license:gpl3+)))
3fe4c9dc
OP
7276
7277(define-public emacs-transmission
7278 (package
7279 (name "emacs-transmission")
5ad13e6c 7280 (version "0.12.1")
3fe4c9dc
OP
7281 (source (origin
7282 (method url-fetch)
7283 (uri (string-append
7284 "https://github.com/holomorph/transmission/archive/"
7285 version ".tar.gz"))
7286 (file-name (string-append name "-" version ".tar.gz"))
7287 (sha256
7288 (base32
5ad13e6c 7289 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
3fe4c9dc
OP
7290 (build-system emacs-build-system)
7291 (home-page "https://github.com/holomorph/transmission")
7292 (synopsis "Emacs interface to a Transmission session")
7293 (description "This package provides an Emacs interface to interact with a
7294running session of the Transmission Bittorrent client.
7295
7296Features:
7297
7298@itemize
7299@item List, add, start/stop, verify, remove torrents.
7300@item Set speed limits, ratio limits, bandwidth priorities, trackers.
7301@item Navigate to the corresponding file list, torrent info, peer info
7302contexts.
7303@item Toggle downloading and set priorities for individual files.
7304@end itemize\n")
7305 (license license:gpl3+)))
a6d02fc1 7306
c46e654f
RW
7307(define-public emacs-polymode
7308 ;; There hasn't been a proper release.
7309 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7310 (revision "1"))
7311 (package
7312 (name "emacs-polymode")
7313 (version (string-append "1.0-" revision "." (string-take commit 7)))
7314 (source (origin
7315 (method git-fetch)
7316 (uri (git-reference
7317 (url "https://github.com/vspinu/polymode.git")
7318 (commit commit)))
7319 (file-name (string-append name "-" version "-checkout"))
7320 (sha256
7321 (base32
7322 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7323 (build-system emacs-build-system)
74b4d7a1
MC
7324 (arguments
7325 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7326 #:phases
7327 (modify-phases %standard-phases
7328 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7329 (lambda _
7330 (setenv "EMACSLOADPATH"
7331 (string-append (getenv "EMACSLOADPATH")
7332 ":" (getcwd) "/modes" ":")))))))
c46e654f
RW
7333 (home-page "https://github.com/vspinu/polymode")
7334 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7335 (description "Polymode is an Emacs package that offers generic support
7336for multiple major modes inside a single Emacs buffer. It is lightweight,
7337object oriented and highly extensible. Creating a new polymode typically
7338takes only a few lines of code. Polymode also provides extensible facilities
7339for external literate programming tools for exporting, weaving and tangling.")
7340 (license license:gpl3+))))
7341
a6d02fc1
OP
7342(define-public eless
7343 (package
7344 (name "eless")
7345 (version "0.3")
7346 (source (origin
7347 (method url-fetch)
7348 (uri (string-append
7349 "https://github.com/kaushalmodi/eless/archive/"
7350 "v" version ".tar.gz"))
7351 (file-name (string-append name "-" version ".tar.gz"))
7352 (sha256
7353 (base32
7354 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7355 (build-system trivial-build-system)
7356 (inputs
7357 `(("bash" ,bash)))
7358 (native-inputs
7359 `(("tar" ,tar)
7360 ("gzip" ,gzip)))
7361 (arguments
7362 `(#:modules ((guix build utils))
7363 #:builder
7364 (begin
7365 (use-modules (guix build utils))
7366 (setenv "PATH" (string-append
7367 (assoc-ref %build-inputs "tar") "/bin" ":"
7368 (assoc-ref %build-inputs "gzip") "/bin"))
e3cfef22 7369 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
a6d02fc1
OP
7370 (chdir (string-append "eless" "-" ,version))
7371 (substitute* "eless" (("/usr/bin/env bash")
7372 (string-append (assoc-ref %build-inputs "bash")
7373 "/bin/bash")))
7374 (install-file "eless" (string-append %output "/bin"))
7375 (install-file "doc/eless.info" (string-append %output "/share/info"))
7376 #t)))
7377 (home-page "https://github.com/kaushalmodi/eless")
7378 (synopsis "Use Emacs as a paginator")
7379 (description "@code{eless} provides a combination of Bash script
7380and a minimal Emacs view-mode.
7381
7382Feautures:
7383
7384@itemize
7385@item Independent of a user’s Emacs config.
7386@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7387@item Not require an Emacs server to be already running.
7388@item Syntax highlighting.
7389@item Org-mode file rendering.
7390@item @code{man} page viewer.
7391@item Info viewer.
7392@item Dired, wdired, (batch edit symbolic links).
7393@item Colored diffs, git diff, git log, ls with auto ANSI detection.
7394@item Filter log files lines matching a regexp.
7395@item Auto-revert log files similar to @code{tail -f}.
7396@item Quickly change frame and font sizes.
7397@end itemize\n")
7398 (license license:expat)))
491cbd35
MG
7399
7400(define-public emacs-evil-matchit
7401 (package
7402 (name "emacs-evil-matchit")
9a910133 7403 (version "2.2.6")
491cbd35
MG
7404 (source
7405 (origin
7406 (method url-fetch)
7407 (uri (string-append
7408 "https://github.com/redguardtoo/evil-matchit/archive/"
7409 version ".tar.gz"))
7410 (file-name (string-append name "-" version ".tar.gz"))
7411 (sha256
7412 (base32
9a910133 7413 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
491cbd35 7414 (build-system emacs-build-system)
80c4aabb
MC
7415 (propagated-inputs
7416 `(("emacs-evil" ,emacs-evil)))
491cbd35
MG
7417 (home-page "https://github.com/redguardtoo/evil-matchit")
7418 (synopsis "Vim matchit ported into Emacs")
7419 (description
7420 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7421evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7422 (license license:gpl3+)))
ab8a4a78
AI
7423
7424(define-public emacs-evil-smartparens
7425 (package
7426 (name "emacs-evil-smartparens")
7427 (version "0.4.0")
7428 (source
7429 (origin
7430 (method url-fetch)
7431 (uri (string-append
7432 "https://github.com/expez/evil-smartparens/archive/"
7433 version ".tar.gz"))
7434 (file-name (string-append name "-" version ".tar.gz"))
7435 (sha256
7436 (base32
7437 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7438 (build-system emacs-build-system)
7439 (propagated-inputs
7440 `(("emacs-evil" ,emacs-evil)
7441 ("emacs-smartparens" ,emacs-smartparens)))
7442 (home-page "https://github.com/expez/evil-smartparens")
7443 (synopsis "Emacs Evil integration for Smartparens")
7444 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7445makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7446emulates Vim features and provides Vim-like key bindings.")
7447 (license license:gpl3+)))
2891ea39
AI
7448
7449(define-public emacs-evil-quickscope
7450 (package
7451 (name "emacs-evil-quickscope")
7452 (version "0.1.4")
7453 (source
7454 (origin
7455 (method url-fetch)
7456 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7457 version ".tar.gz"))
7458 (file-name (string-append name "-" version ".tar.gz"))
7459 (sha256
7460 (base32
7461 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7462 (build-system emacs-build-system)
7463 (propagated-inputs
7464 `(("emacs-evil" ,emacs-evil)))
7465 (arguments
d1d41db6
MC
7466 `(#:tests? #t
7467 #:test-command '("emacs" "--batch"
7468 "-l" "evil-quickscope-tests.el"
7469 "-f" "ert-run-tests-batch-and-exit")))
2891ea39
AI
7470 (home-page "https://github.com/blorbx/evil-quickscope")
7471 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7472 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7473mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7474port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7475features and provides Vim-like key bindings.")
7476 (license license:gpl3+)))
2a67ff1f
MO
7477
7478(define-public emacs-bongo
7479 (package
7480 (name "emacs-bongo")
7481 (version "1.0")
7482 (source
7483 (origin
7484 (method url-fetch)
7485 (uri (string-append
7486 "https://github.com/dbrock/bongo/archive/"
7487 version ".tar.gz"))
7488 (file-name (string-append name "-" version ".tar.gz"))
7489 (sha256
7490 (base32
7491 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7492 (build-system emacs-build-system)
7493 (home-page "https://github.com/dbrock/bongo")
7494 (synopsis "Media player for Emacs")
7495 (description
7496 "This package provides a flexible media player for Emacs. @code{Bongo}
7497supports multiple backends such as @code{vlc}, @code{mpg123},
7498@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7499@code{afplay}.")
7500 (license license:gpl2+)))
548cc74c
CB
7501
7502(define-public groovy-emacs-modes
7503 (package
7504 (name "groovy-emacs-modes")
7505 (version "2.0")
7506 (source (origin
7507 (method url-fetch)
7508 (uri (string-append
7509 "https://github.com/Groovy-Emacs-Modes/" name
7510 "/archive/" version ".tar.gz"))
7511 (file-name (string-append name "-" version ".tar.gz"))
7512 (sha256
7513 (base32
7514 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7515 (build-system emacs-build-system)
7516 (propagated-inputs
7517 `(("emacs-s" ,emacs-s)))
7518 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7519 (synopsis "Groovy related modes for Emacs")
7520 (description
7521 "This package provides @code{groovy-mode} for syntax highlighing in
7522Groovy source files, REPL integration with run-groovy and Grails project
7523navigation with the grails mode.")
7524 (license license:gpl3+)))
02267798
LC
7525
7526(define-public org-tree-slide
7527 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
7528 (revision "0"))
7529 (package
7530 (name "emacs-org-tree-slide")
7531 (version (git-version "0.1" revision commit))
7532 (home-page "https://github.com/takaxp/org-tree-slide")
7533 (source (origin
7534 (method git-fetch)
7535 (uri (git-reference (url home-page) (commit commit)))
7536 (sha256
7537 (base32
7538 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
7539 (file-name (git-file-name name version))))
7540 (build-system emacs-build-system)
7541 (synopsis "Presentation tool for org-mode")
7542 (description
7543 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
7544@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
7545@kbd{C-<} to jump to the next and previous slide.")
7546 (license license:gpl3+))))
ac07b94a
OP
7547
7548(define-public emacs-scratch-el
7549 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
7550 (revision "1"))
7551 (package
7552 (name "emacs-scratch-el")
7553 (version (git-version "1.2" revision commit))
7554 (source (origin
7555 (method git-fetch)
7556 (uri (git-reference
7557 (url "https://github.com/ieure/scratch-el.git")
7558 (commit commit)))
7559 (file-name (git-file-name name version))
7560 (sha256
7561 (base32
7562 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
7563 (build-system emacs-build-system)
7564 (native-inputs
7565 `(("texinfo" ,texinfo)))
7566 (arguments
7567 '(#:phases
7568 (modify-phases %standard-phases
7569 (add-after 'install 'install-doc
7570 (lambda* (#:key outputs #:allow-other-keys)
7571 (unless (invoke "makeinfo" "scratch.texi")
7572 (error "makeinfo failed"))
7573 (install-file "scratch.info"
7574 (string-append (assoc-ref outputs "out")
7575 "/share/info"))
7576 #t)))))
7577 (home-page "https://github.com/ieure/scratch-el/")
7578 (synopsis "Create scratch buffers with the same mode as current buffer")
7579 (description "Scratch is an extension to Emacs that enables one to create
7580scratch buffers that are in the same mode as the current buffer. This is
7581notably useful when working on code in some language; you may grab code into a
7582scratch buffer, and, by virtue of this extension, do so using the Emacs
7583formatting rules for that language.")
7584 (license license:bsd-2))))
5b238292 7585
62950ec7
MC
7586(define-public emacs-kv
7587 (package
7588 (name "emacs-kv")
7589 (version "0.0.19")
7590 (source
7591 (origin
7592 (method git-fetch)
7593 (uri (git-reference
7594 (url "https://github.com/nicferrier/emacs-kv.git")
7595 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
7596 (file-name (string-append name "-" version "-checkout"))
7597 (sha256
7598 (base32
7599 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
7600 (build-system emacs-build-system)
7601 (arguments
7602 `(#:tests? #t
7603 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
7604 "-f" "ert-run-tests-batch-and-exit")))
7605 (home-page "https://github.com/nicferrier/emacs-kv")
7606 (synopsis "Key/Value data structures library for Emacs Lisp")
7607 (description "@code{emacs-kv} is a collection of tools for dealing with
7608key/value data structures such as plists, alists and hash-tables in Emacs
7609Lisp.")
7610 (license license:gpl3+)))
7611
8d899214
RW
7612(define-public emacs-esxml
7613 (package
7614 (name "emacs-esxml")
7615 (version "0.3.4")
7616 (source (origin
7617 (method git-fetch)
7618 (uri (git-reference
7619 (url "https://github.com/tali713/esxml.git")
7620 (commit version)))
7621 (file-name (git-file-name name version))
7622 (sha256
7623 (base32
7624 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
7625 (build-system emacs-build-system)
9835a71d
MC
7626 (arguments
7627 `(#:phases
7628 (modify-phases %standard-phases
7629 (add-after 'unpack 'fix-sources
7630 (lambda _
7631 ;; See: https://github.com/tali713/esxml/pull/28.
7632 (substitute* "css-lite.el"
7633 ((";;; main interface")
7634 (string-append ";;; main interface\n"
7635 "(require 'cl-lib)"))
7636 (("mapcan")
7637 "cl-mapcan")
7638 (("',\\(cl-mapcan #'process-css-rule rules\\)")
7639 "(cl-mapcan #'process-css-rule ',rules)"))
7640 (substitute* "esxml-form.el"
7641 ((",esxml-form-field-defn")
7642 "#'esxml-form-field-defn"))
7643 ;; See: https://github.com/tali713/esxml/issues/25
7644 (delete-file "esxpath.el")
7645 #t)))))
7646 (propagated-inputs
7647 `(("emacs-kv" ,emacs-kv)))
8d899214
RW
7648 (home-page "https://github.com/tali713/esxml/")
7649 (synopsis "SXML for EmacsLisp")
7650 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
7651Simply, this is the easiest way to write HTML or XML in Lisp. This library
7652uses the native form of XML representation as used by many libraries already
7653included within Emacs. See @code{esxml-to-xml} for a concise description of
7654the format.")
7655 (license license:gpl3+)))
7656
5f78ce49
RW
7657(define-public emacs-nov-el
7658 (package
7659 (name "emacs-nov-el")
7660 (version "0.2.2")
7661 (source (origin
7662 (method git-fetch)
7663 (uri (git-reference
7664 (url "https://github.com/wasamasa/nov.el.git")
7665 (commit version)))
7666 (file-name (git-file-name name version))
7667 (sha256
7668 (base32
7669 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
7670 (build-system emacs-build-system)
7671 (arguments
7672 `(#:phases
7673 (modify-phases %standard-phases
7674 (add-after 'unpack 'embed-path-to-unzip
7675 (lambda _
7676 (substitute* "nov.el"
7677 (("\\(executable-find \"unzip\"\\)")
7678 (string-append "\"" (which "unzip") "\"")))
7679 #t)))))
7680 (propagated-inputs
7681 `(("emacs-dash" ,emacs-dash)
7682 ("emacs-esxml" ,emacs-esxml)))
7683 (inputs
7684 `(("unzip" ,unzip)))
7685 (home-page "https://github.com/wasamasa/nov.el/")
7686 (synopsis "Major mode for reading EPUBs in Emacs")
7687 (description "@code{nov.el} provides a major mode for reading EPUB
7688documents.
7689
7690Features:
7691
7692@itemize
7693@item Basic navigation (jump to TOC, previous/next chapter)
7694@item Remembering and restoring the last read position
7695@item Jump to next chapter when scrolling beyond end
7696@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
7697@item Hyperlinks to internal and external targets
7698@item Supports textual and image documents
7699@item View source of document files
7700@item Metadata display
7701@item Image rescaling
7702@end itemize
7703")
7704 (license license:gpl3+)))
7705
5b238292
OP
7706(define-public epipe
7707 (package
7708 (name "epipe")
7709 (version "0.1.0")
7710 (source
7711 (origin
7712 (method url-fetch)
7713 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
7714 version ".tar.gz"))
7715 (file-name (string-append name "-" version ".tar.gz"))
7716 (sha256
7717 (base32
7718 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
7719 (build-system trivial-build-system)
7720 (inputs
7721 `(("bash" ,bash)
7722 ("perl" ,perl)))
7723 (native-inputs
7724 `(("tar" ,tar)
7725 ("gzip" ,gzip)))
7726 (arguments
7727 `(#:modules
7728 ((guix build utils))
7729 #:builder
7730 (begin
7731 (use-modules (guix build utils))
7732 ;; Extract source
7733 (setenv "PATH" (string-append
7734 (assoc-ref %build-inputs "tar") "/bin" ":"
7735 (assoc-ref %build-inputs "gzip") "/bin"))
e3cfef22 7736 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
5b238292
OP
7737 (chdir (string-append ,name "-" ,version))
7738 ;; Patch shebangs
7739 (substitute* "epipe"
7740 (("/usr/bin/env bash")
7741 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
7742 (patch-shebang "epipe.pl"
7743 (list (string-append (assoc-ref %build-inputs "perl")
7744 "/bin")))
7745 ;; Installation
7746 (for-each (lambda (file)
7747 (install-file file (string-append %output "/bin")))
7748 '("epipe" "epipe.pl"))
7749 #t)))
7750 (home-page "https://github.com/cute-jumper/epipe")
7751 (synopsis "Pipe to the @code{emacsclient}")
7752 (description "@code{epipe} provides an utility to use your editor in
7753the pipeline, featuring the support for running @code{emacsclient}.")
7754 (license license:gpl3+)))
dc97f7e2
CB
7755
7756(define-public emacs-hcl-mode
7757 (package
7758 (name "emacs-hcl-mode")
7759 (version "0.03")
7760 (source
7761 (origin
7762 (method url-fetch)
7763 (uri (string-append
7764 "https://github.com/syohex/emacs-hcl-mode/archive/"
7765 version ".tar.gz"))
7766 (file-name (string-append name "-" version ".tar.gz"))
7767 (sha256
7768 (base32
7769 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
7770 (build-system emacs-build-system)
7771 (home-page "https://github.com/syohex/emacs-hcl-mode")
7772 (synopsis "Major mode for the Hashicorp Configuration Language")
7773 (description
7774 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
7775@acronym{HCL, Hashicorp Configuration Language}. It provides syntax
7776highlighting and indentation support.")
7777 (license license:gpl3+)))
68d70f6a
CB
7778
7779(define-public emacs-terraform-mode
7780 (package
7781 (name "emacs-terraform-mode")
7782 (version "0.06")
7783 (source
7784 (origin
7785 (method url-fetch)
7786 (uri (string-append
7787 "https://github.com/syohex/emacs-terraform-mode/archive/"
7788 version ".tar.gz"))
7789 (file-name (string-append name "-" version ".tar.gz"))
7790 (sha256
7791 (base32
7792 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
7793 (build-system emacs-build-system)
7794 (propagated-inputs
7795 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
7796 (home-page "https://github.com/syohex/emacs-terraform-mode")
7797 (synopsis "Major mode for Terraform")
7798 (description
7799 "@code{emacs-terraform-mode} provides a major mode for working with
7800@uref{https://www.terraform.io/, Terraform} configuration files. Most of the
7801functionality is inherited from @code{hcl-mode}.")
7802 (license license:gpl3+)))
22d62814
KH
7803
7804(define-public emacs-exec-path-from-shell
7805 (package
7806 (name "emacs-exec-path-from-shell")
7807 (version "1.11")
7808 (source
7809 (origin
7810 (method url-fetch)
7811 (uri (string-append
7812 "https://stable.melpa.org/packages/exec-path-from-shell-"
7813 version ".el"))
7814 (sha256
7815 (base32
7816 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
7817 (build-system emacs-build-system)
7818 (home-page "https://github.com/purcell/exec-path-from-shell")
7819 (synopsis "Get environment variables such as @var{PATH} from the shell")
7820 (description
7821 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
7822from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
7823the like work as expected on systems on which Emacs is not guaranteed to
7824inherit a login shell's environment variables. It also allows other
7825environment variables to be retrieved from the shell, so that Emacs will see
7826the same values you get in a terminal.")
7827 (license license:gpl3+)))
5d818b35
KH
7828
7829(define-public emacs-deft
7830 (package
7831 (name "emacs-deft")
7832 (version "0.8")
7833 (source
7834 (origin
7835 (method url-fetch)
7836 (uri (string-append "https://stable.melpa.org/packages/deft-"
7837 version ".el"))
7838 (sha256
7839 (base32
7840 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
7841 (build-system emacs-build-system)
7842 (home-page "https://jblevins.org/projects/deft/")
7843 (synopsis "Quickly browse, filter, and edit plain text notes")
7844 (description
7845 "Deft is an Emacs mode for quickly browsing, filtering, and editing
7846directories of plain text notes, inspired by Notational Velocity.")
7847 (license license:bsd-3)))
62d1105c
SB
7848
7849(define-public emacs-anzu
7850 (package
7851 (name "emacs-anzu")
7852 (version "0.62")
7853 (source
7854 (origin
7855 (method url-fetch)
2d11acb6
SB
7856 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
7857 version ".tar.gz"))
7858 (file-name (string-append name "-" version ".tar.gz"))
62d1105c
SB
7859 (sha256
7860 (base32
2d11acb6 7861 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
62d1105c
SB
7862 (build-system emacs-build-system)
7863 (home-page "https://github.com/syohex/emacs-anzu")
7864 (synopsis "Show number of matches in mode-line while searching")
7865 (description
7866 "Anzu provides a minor mode which displays \"current match/total
7867matches\" in the mode line in various search modes. This is an Emacs port of
7868Anzu.zim.")
7869 (license license:gpl3+)))
c3581ef9
ML
7870
7871(define-public emacs-emmet-mode
7872 (package
7873 (name "emacs-emmet-mode")
7874 (version "1.0.8")
7875 (source (origin
7876 (method url-fetch)
7877 (uri (string-append "https://github.com/smihica/emmet-mode"
7878 "/archive/" version ".tar.gz"))
7879 (file-name (string-append name "-" version ".tar.gz"))
7880 (sha256
7881 (base32
7882 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
7883 (build-system emacs-build-system)
7884 (home-page "https://github.com/smihica/emmet-mode")
7885 (synopsis "Unofficial Emmet's support for Emacs")
7886 (description
7887 "Unfold CSS-selector-like expressions to markup. It is intended to be
7888used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
7889 (license license:gpl3+)))
03efe78c 7890
82bead75
RW
7891(define-public emacs-ergoemacs-mode
7892 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
7893 (revision "1"))
7894 (package
7895 (name "emacs-ergoemacs-mode")
7896 (version (git-version "5.16.10.12" revision commit))
7897 (source
7898 (origin
7899 (method git-fetch)
7900 (uri (git-reference
7901 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
7902 (commit commit)))
7903 (sha256
7904 (base32
7905 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
7906 (build-system emacs-build-system)
7907 (propagated-inputs
7908 `(("emacs-undo-tree" ,emacs-undo-tree)))
7909 (home-page "https://ergoemacs.github.io/")
7910 (synopsis "Emacs mode based on common modern interface and ergonomics")
7911 (description
7912 "This package provides an efficient Emacs keybinding set based on
7913statistics of command frequency, and supports common shortcuts for open,
7914close, copy, cut, paste, undo, redo.")
7915 (license license:gpl3+))))
7916
03efe78c
KH
7917(define-public emacs-password-store
7918 (package
7919 (name "emacs-password-store")
7920 (version "1.7.1")
7921 (source (origin
7922 (method url-fetch)
7923 (uri
7924 (string-append "https://git.zx2c4.com/password-store/snapshot/"
7925 "password-store-" version ".tar.xz"))
7926 (sha256
7927 (base32
7928 "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
7929 (build-system emacs-build-system)
7930 (arguments
7931 `(#:phases
7932 (modify-phases %standard-phases
7933 (add-after 'unpack 'extract-el-file
7934 (lambda _
7935 (copy-file "contrib/emacs/password-store.el" "password-store.el")
7936 (delete-file-recursively "contrib")
7937 (delete-file-recursively "man")
7938 (delete-file-recursively "src")
7939 (delete-file-recursively "tests"))))))
7940 (propagated-inputs
7941 `(("emacs-f" ,emacs-f)
7942 ("emacs-s" ,emacs-s)
7943 ("password-store" ,password-store)))
7944 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
7945 (synopsis "Password store (pass) support for Emacs")
7946 (description
7947 "This package provides functions for working with pass (\"the
7948standard Unix password manager\").")
7949 (license license:gpl2+)))
7950
ab4d1c26
KH
7951(define-public emacs-pass
7952 (package
7953 (name "emacs-pass")
7954 (version "1.7")
7955 (source (origin
7956 (method url-fetch)
7957 (uri (string-append
7958 "https://github.com/NicolasPetton/pass/archive/"
7959 version ".tar.gz"))
7960 (sha256
7961 (base32
7962 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
7963 (file-name (string-append name "-" version ".tar.gz"))))
7964 (build-system emacs-build-system)
7965 (propagated-inputs
7966 `(("emacs-password-store" ,emacs-password-store)
7967 ("emacs-f" ,emacs-f)))
7968 (home-page "https://github.com/NicolasPetton/pass")
7969 (synopsis "Major mode for @file{password-store.el}")
7970 (description "This is a major mode for managing password-store (pass)
7971keychains. The keychain entries are displayed in a directory-like structure
7972and can be consulted and modified.")
7973 (license license:gpl3+)))
7974
d4bb4551
SB
7975(define-public emacs-evil-anzu
7976 (package
7977 (name "emacs-evil-anzu")
7978 (version "0.03")
7979 (source
7980 (origin
7981 (method url-fetch)
7982 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
7983 "/archive/" version ".tar.gz"))
7984 (file-name (string-append name "-" version ".tar.gz"))
7985 (sha256
7986 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
7987 (build-system emacs-build-system)
7988 (propagated-inputs
7989 `(("emacs-evil" ,emacs-evil)
7990 ("emacs-anzu" ,emacs-anzu)))
7991 (home-page "https://github.com/syohex/emacs-evil-anzu")
7992 (synopsis "Anzu for evil-mode")
7993 (description "@code{anzu} provides a minor mode that displays the current
7994match and total match information in the mode-line in various search modes.")
7995 (license license:gpl3+)))
086bfb37
OP
7996
7997(define-public emacs-pg
7998 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
7999 (package
8000 (name "emacs-pg")
8001 (version (git-version "0.1" "1" commit))
8002 (source (origin
8003 (method git-fetch)
8004 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
8005 (commit commit)))
8006 (file-name (git-file-name name version))
8007 (sha256
8008 (base32
8009 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
8010 (build-system emacs-build-system)
8011 (home-page "https://github.com/cbbrowne/pg.el")
8012 (synopsis "Emacs Lisp interface for PostgreSQL")
8013 (description
8014 "This package provides an Emacs Lisp interface for PostgreSQL.")
8015 (license license:gpl3+))))
5b6d6747
OP
8016
8017(define-public emacs-cl-generic
8018 (package
8019 (name "emacs-cl-generic")
8020 (version "0.3")
8021 (source
8022 (origin
8023 (method url-fetch)
8024 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
8025 version ".el"))
8026 (sha256
8027 (base32
8028 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
8029 (build-system emacs-build-system)
8030 (home-page "https://elpa.gnu.org/packages/seq.html")
8031 (synopsis
8032 "Forward @code{cl-generic} compatibility for Emacs before version 25")
8033 (description "This package provides a subset of the features of the
8034@code{cl-generic} package introduced in Emacs-25, for use on previous
8035@code{emacsen}.")
8036 (license license:gpl3+)))
6c92b440
OP
8037
8038(define-public emacs-finalize
8039 (package
8040 (name "emacs-finalize")
8041 (version "2.0.0")
8042 (source
8043 (origin
8044 (method url-fetch)
8045 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
8046 version ".tar.gz"))
8047 (file-name (string-append name "-" version ".tar.gz"))
8048 (sha256
8049 (base32
8050 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
8051 (build-system emacs-build-system)
8052 (propagated-inputs
8053 `(("emacs-cl-generic" ,emacs-cl-generic)))
8054 (home-page "https://github.com/skeeto/elisp-finalize")
8055 (synopsis "Finalizers for Emacs Lisp")
8056 (description
8057 "This package will allows to immediately run a callback (a finalizer)
8058after its registered lisp object has been garbage collected. This allows for
8059extra resources, such as buffers and processes, to be cleaned up after the
8060object has been freed.")
8061 (license license:unlicense)))
4d089b5e
OP
8062
8063(define-public emacs-emacsql
8064 (package
8065 (name "emacs-emacsql")
8066 (version "2.0.3")
8067 (source
8068 (origin
8069 (method url-fetch)
8070 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8071 version ".tar.gz"))
8072 (file-name (string-append name "-" version ".tar.gz"))
8073 (sha256
8074 (base32
8075 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8076 (build-system emacs-build-system)
8077 (arguments
8078 `(#:modules ((guix build emacs-build-system)
8079 (guix build utils)
8080 (guix build emacs-utils)
8081 (srfi srfi-26))
8082 #:phases
8083 (modify-phases %standard-phases
8084 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8085 (add-before 'install 'patch-elisp-shell-shebangs
8086 (lambda _
8087 (substitute* (find-files "." "\\.el")
8088 (("/bin/sh") (which "sh")))
8089 #t))
8090 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8091 (lambda _
8092 (setenv "SHELL" "sh")))
8093 (add-after 'setenv-shell 'build-emacsql-sqlite
8094 (lambda _
8095 (invoke "make" "binary" "CC=gcc")))
8096 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8097 ;; This build phase installs emacs-emacsql binary.
8098 (lambda* (#:key outputs #:allow-other-keys)
8099 (install-file "sqlite/emacsql-sqlite"
8100 (string-append (assoc-ref outputs "out")
8101 "/bin"))
8102 #t))
8103 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8104 ;; This build phase removes interactive prompts
8105 ;; and makes sure Emacs look for binaries in the right places.
8106 (lambda* (#:key outputs #:allow-other-keys)
8107 (let ((file "emacsql-sqlite.el"))
8108 (chmod file #o644)
8109 (emacs-substitute-sexps file
8110 ;; Avoid interactive prompts.
8111 ("(defvar emacsql-sqlite-user-prompted" 't)
8112 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8113 ("(executable-find" (which "gcc"))
8114 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8115 ;; in the right place.
8116 ("(defvar emacsql-sqlite-executable"
8117 (string-append (assoc-ref outputs "out")
8118 "/bin/emacsql-sqlite"))))))
8119 (replace 'install
8120 (lambda* (#:key outputs #:allow-other-keys)
8121 (let* ((out (assoc-ref outputs "out")))
8122 (install-file "sqlite/emacsql-sqlite"
8123 (string-append out "/bin"))
8124 (for-each (cut install-file <>
8125 (string-append out "/share/emacs/site-lisp/guix.d/"
8126 "emacsql" "-" ,version))
8127 (find-files "." "\\.elc*$")))
8128 #t)))))
8129 (inputs
8130 `(("emacs-minimal" ,emacs-minimal)
e0cc7f66 8131 ("mariadb" ,mariadb)
4d089b5e
OP
8132 ("postgresql" ,postgresql)))
8133 (propagated-inputs
8134 `(("emacs-finalize" ,emacs-finalize)
8135 ("emacs-pg" ,emacs-pg)))
8136 (home-page "https://github.com/skeeto/emacsql")
8137 (synopsis "Emacs high-level SQL database front-end")
8138 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8139including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8140has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8141object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8142 (license license:gpl3+)))
93aba854
OP
8143
8144(define-public emacs-closql
8145 (package
8146 (name "emacs-closql")
8147 (version "0.5.1")
8148 (source
8149 (origin
8150 (method url-fetch)
8151 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8152 "v" version ".tar.gz"))
8153 (file-name (string-append name "-" version ".tar.gz"))
8154 (sha256
8155 (base32
8156 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8157 (build-system emacs-build-system)
8158 (propagated-inputs
8159 `(("emacs-emacsql" ,emacs-emacsql)))
8160 (home-page "https://github.com/emacscollective/closql")
8161 (synopsis "Store EIEIO objects using EmacSQL")
8162 (description
8163 "This package allows to store uniform EIEIO objects in an EmacSQL
8164database. SQLite is used as backend. This library imposes some restrictions
8165on what kind of objects can be stored; it isn't intended to store arbitrary
8166objects. All objects have to share a common superclass and subclasses cannot
8167add any additional instance slots.")
8168 (license license:gpl3)))
452454e3
OP
8169
8170(define-public emacs-epkg
8171 ;; The release version is to old for the current database scheme.
8172 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8173 (package
8174 (name "emacs-epkg")
8175 (version (git-version "3.0.0" "1" commit))
8176 (source
8177 (origin
8178 (method git-fetch)
8179 (uri (git-reference
8180 (url "https://github.com/emacscollective/epkg.git")
8181 (commit commit)))
8182 (file-name (git-file-name name version))
8183 (sha256
8184 (base32
8185 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8186 (build-system emacs-build-system)
8187 (propagated-inputs
8188 `(("emacs-closql" ,emacs-closql)
8189 ("emacs-dash" ,emacs-dash)))
8190 (home-page "https://emacsmirror.net")
8191 (synopsis "Browse the Emacsmirror package database")
8192 (description "This package provides access to a local copy of the
8193Emacsmirror package database. It provides low-level functions for querying
8194the database and a @file{package.el} user interface for browsing the database.
8195Epkg itself is not a package manager.
8196
8197Getting a local copy:
8198
8199@example
8200git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8201cd ~/.emacs.d/epkgs
8202git submodule init
8203git config --global url.https://github.com/.insteadOf git@@github.com:
8204git submodule update
8205@end example
8206
8207Some submodule may be missing. In this case Git will prompt for a GitHub user
8208name and password. To skip it press a @key{Return} key.
8209
8210You could get a Epkg package list by invoking @code{epkg-list-packages} in
8211Emacs.")
8212 (license license:gpl3+))))
c51e592d
KH
8213
8214(define-public emacs-elisp-slime-nav
8215 (package
8216 (name "emacs-elisp-slime-nav")
8217 (version "0.9")
8218 (source
8219 (origin
8220 (method url-fetch)
8221 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8222 version ".tar.gz"))
8223 (file-name (string-append name "-" version ".tar.gz"))
8224 (sha256
8225 (base32
8226 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8227 (build-system emacs-build-system)
8228 (home-page "https://github.com/purcell/elisp-slime-nav")
8229 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8230 (description
8231 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8232in @code{emacs-lisp-mode}, together with an elisp equivalent of
8233@code{slime-describe-symbol}.")
8234 (license license:gpl3+)))
4f95a118
CM
8235
8236(define-public emacs-dedicated
8237 (package
8238 (name "emacs-dedicated")
8239 (version "1.0.0")
8240 (source (origin
8241 (method url-fetch)
8242 (uri (string-append
8243 "https://github.com/emacsorphanage/dedicated/archive/"
8244 version
8245 ".tar.gz"))
8246 (sha256
8247 (base32
8248 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8249 (file-name (string-append name "-" version ".tar.gz"))))
8250 (build-system emacs-build-system)
8251 (home-page "https://github.com/emacsorphanage/dedicated")
8252 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8253 (description
8254 "This simple Emacs minor mode allows you to toggle a window's
8255\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8256files into that window. This can be quite handy since many commands will use
8257another window to show results (compilation mode, starting info, and so on).
8258A dedicated window won't be used for such a purpose. For details, please read
8259the source file.")
8260 (license license:gpl2+)))
59dc661f
OP
8261
8262(define-public emacs-nnreddit
8263 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8264 (revision "1"))
8265 (package
8266 (name "emacs-nnreddit")
8267 (version (string-append "0.0.1-" revision "."
8268 (string-take commit 7)))
8269 (source (origin
8270 (method git-fetch)
8271 (uri (git-reference
8272 (url "https://github.com/paul-issartel/nnreddit.git")
8273 (commit commit)))
8274 (file-name (string-append name "-" version "-checkout"))
8275 (sha256
8276 (base32
8277 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8278 (build-system emacs-build-system)
8279 (home-page "https://github.com/paul-issartel/nnreddit")
8280 (synopsis "Reddit backend for the Gnus newsreader")
8281 (description "@url{https://www.reddit.com} backend for the Gnus
8282newsreader.")
8283 (license license:gpl3+))))
63e6c4ad
OP
8284
8285(define-public emacs-makey
8286 (package
8287 (name "emacs-makey")
8288 (version "0.3")
8289 (source
8290 (origin
8291 (method url-fetch)
8292 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8293 version ".tar.gz"))
8294 (file-name (string-append name "-" version ".tar.gz"))
8295 (sha256
8296 (base32
8297 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8298 (build-system emacs-build-system)
8299 (home-page "https://github.com/mickeynp/makey")
8300 (synopsis "Emacs interactive command-line mode")
8301 (description
8302 "This package provides an Emacs interactive command-line mode.")
8303 (license license:gpl3+)))
a34d562a
OP
8304
8305(define-public emacs-outorg
8306 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8307 (package
8308 (name "emacs-outorg")
8309 (version (git-version "2.0" "1" commit))
8310 (source
8311 (origin
8312 (method git-fetch)
8313 (uri (git-reference
8314 (url "https://github.com/alphapapa/outorg")
8315 (commit commit)))
8316 (file-name (git-file-name name version))
8317 (sha256
8318 (base32
8319 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8320 (build-system emacs-build-system)
8321 (home-page "https://github.com/alphapapa/outorg")
8322 (synopsis "Org-style comment editing")
8323 (description "Outorg is for editing comment-sections of source-code
8324files in temporary Org-mode buffers. It turns conventional
8325literate-programming upside-down in that the default mode is the
8326programming-mode, and special action has to be taken to switch to the
8327text-mode (i.e. Org-mode).")
8328 (license license:gpl3+))))
c47c3779
OP
8329
8330(define-public emacs-outshine
8331 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8332 (package
8333 (name "emacs-outshine")
8334 (version (git-version "2.0" "1" commit))
8335 (source (origin
8336 (method git-fetch)
8337 (uri (git-reference
8338 (url "https://github.com/alphapapa/outshine.git")
8339 (commit commit)))
8340 (file-name (git-file-name name version))
8341 (sha256
8342 (base32
8343 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8344 (build-system emacs-build-system)
8345 (propagated-inputs
8346 `(("emacs-outorg" ,emacs-outorg)))
8347 (home-page "https://github.com/alphapapa/outshine")
8348 (synopsis "Emacs outline with outshine")
8349 (description "Outshine attempts to bring the look and feel of
8350@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8351of @code{outline-minor-mode} (@code{org-mode} itself derives from
8352outline-mode), so there is no such thing like an outshine mode, only
8353@code{outline-minor-mode} with outshine extensions loaded.")
8354 (license license:gpl3+))))
de8d9912
OP
8355
8356(define-public emacs-parsebib
8357 (package
8358 (name "emacs-parsebib")
8359 (version "2.3.1")
8360 (source
8361 (origin
8362 (method url-fetch)
8363 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8364 version ".tar.gz"))
8365 (file-name (string-append name "-" version ".tar.gz"))
8366 (sha256
8367 (base32
8368 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8369 (build-system emacs-build-system)
8370 (home-page "https://github.com/joostkremers/parsebib")
8371 (synopsis "Library for parsing bib files")
8372 (description
8373 "This package provides an Emacs library for parsing bib files.")
8374 (license license:gpl3+)))
55d53210
OP
8375
8376(define-public emacs-biblio
8377 (package
8378 (name "emacs-biblio")
8379 (version "0.1")
8380 (source
8381 (origin
8382 (method url-fetch)
8383 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8384 version ".tar.gz"))
8385 (file-name (string-append name "-" version ".tar.gz"))
8386 (sha256
8387 (base32
8388 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8389 (build-system emacs-build-system)
8390 (home-page "https://github.com/cpitclaudel/biblio.el")
8391 (synopsis "Browse and import bibliographic references")
8392 (description "This package provides an extensible Emacs package for
8393browsing and fetching references.
8394
8395@file{biblio.el} makes it easy to browse and gather bibliographic references
8396and publications from various sources, by keywords or by DOI. References are
8397automatically fetched from well-curated sources, and formatted as BibTeX.")
8398 (license license:gpl3+)))
f063e18c
OP
8399
8400(define-public emacs-helm-bibtex
8401 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8402 (revision "1"))
8403 (package
8404 (name "emacs-helm-bibtex")
8405 (version (string-append "2.0.0" "-" revision "."
8406 (string-take commit 7)))
8407 (source
8408 (origin
8409 (method git-fetch)
8410 (uri (git-reference
8411 (url "https://github.com/tmalsburg/helm-bibtex.git")
8412 (commit commit)))
8413 (file-name (string-append name "-" version "-checkout"))
8414 (sha256
8415 (base32
8416 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8417 (build-system emacs-build-system)
8418 (propagated-inputs
8419 `(("emacs-helm" ,emacs-helm)
8420 ("emacs-parsebib" ,emacs-parsebib)
8421 ("emacs-s" ,emacs-s)
8422 ("emacs-dash" ,emacs-dash)
8423 ("emacs-f" ,emacs-f)
8424 ("emacs-biblio" ,emacs-biblio)))
8425 (home-page "https://github.com/tmalsburg/helm-bibtex")
8426 (synopsis "Bibliography manager based on Helm")
8427 (description "This package provides bibliography manager for Emacs,
8428based on Helm and the bibtex-completion backend.
8429
8430Key features:
8431
8432@itemize
8433@item Quick access to your bibliography from within Emacs
8434@item Powerful search capabilities
8435@item Provides instant search results as you type
8436@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8437@item Open the PDFs, URLs, or DOIs associated with an entry
8438@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8439BibTeX entries, or plain text references at point, attach PDFs to emails
8440@item Support for note taking
8441@item Quick access to online bibliographic databases such as Pubmed,
8442arXiv, Google Scholar, Library of Congress, etc.
8443@item Imports BibTeX entries from CrossRef and other sources.
8444@end itemize\n")
8445 (license license:gpl3+))))
f445c75d
OP
8446
8447(define-public emacs-ewmctrl
84960cb7 8448 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
f445c75d
OP
8449 (package
8450 (name "emacs-ewmctrl")
84960cb7 8451 (version (git-version "0.0.1" "1" commit))
f445c75d
OP
8452 (source
8453 (origin
8454 (method git-fetch)
8455 (uri (git-reference
8456 (url "https://github.com/flexibeast/ewmctrl.git")
8457 (commit commit)))
84960cb7 8458 (file-name (git-file-name name version))
f445c75d
OP
8459 (sha256
8460 (base32
8461 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8462 (build-system emacs-build-system)
0bcb9258
OP
8463 (arguments
8464 '(#:phases
8465 (modify-phases %standard-phases
8466 (add-after 'unpack 'patch-ewmctrl
8467 ;; This build phase makes sure ‘ewmctrl’ looks
8468 ;; for ‘wmctrl’ in the right place.
8469 (lambda _
8470 (let ((file "ewmctrl.el"))
8471 (chmod file #o644)
8472 (emacs-substitute-sexps file
8473 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8474 (inputs
8475 `(("wmctrl" ,wmctrl)))
f445c75d
OP
8476 (home-page "https://github.com/flexibeast/ewmctrl")
8477 (synopsis "Emacs interface to @code{wmctrl}")
8478 (description "@code{ewmctrl} provides an Emacs interface to
8479@code{wmctrl} command-line window-management program.")
8480 (license license:gpl3+))))
707ff555
OP
8481
8482(define-public emacs-helm-gtags
8483 (package
8484 (name "emacs-helm-gtags")
8485 (version "1.5.6")
8486 (source (origin
8487 (method url-fetch)
8488 (uri (string-append
8489 "https://github.com/syohex/emacs-helm-gtags/archive/"
8490 version ".tar.gz"))
8491 (file-name (string-append name "-" version ".tar.gz"))
8492 (sha256
8493 (base32
8494 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
8495 (build-system emacs-build-system)
d848f55e
OP
8496 (propagated-inputs
8497 `(("emacs-helm" ,emacs-helm)))
707ff555
OP
8498 (home-page "https://github.com/syohex/emacs-helm-gtags")
8499 (synopsis "Emacs Helm interface to GNU Global")
8500 (description
8501 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
8502 (license license:gpl3+)))
53d4090b
OP
8503
8504(define-public emacs-list-utils
8505 (package
8506 (name "emacs-list-utils")
8507 (version "0.4.4")
8508 (source
8509 (origin
8510 (method url-fetch)
8511 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
8512 "v" version ".tar.gz"))
8513 (file-name (string-append name "-" version ".tar.gz"))
8514 (sha256
8515 (base32
8516 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
8517 (build-system emacs-build-system)
8518 (home-page "https://github.com/rolandwalker/list-utils")
8519 (synopsis "List-manipulation utility functions")
8520 (description "This package provides a list manipulation library for Emacs.")
8521 (license license:gpl3+)))
fb3aeaf7
OP
8522
8523(define-public emacs-move-text
8524 (package
8525 (name "emacs-move-text")
8526 (version "2.0.8")
8527 (source
8528 (origin
8529 (method url-fetch)
8530 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
8531 version ".tar.gz"))
8532 (file-name (string-append name "-" version ".tar.gz"))
8533 (sha256
8534 (base32
8535 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
8536 (build-system emacs-build-system)
8537 (home-page "https://github.com/emacsfodder/move-text")
8538 (synopsis "Move current line or region with M-up or M-down")
8539 (description "This package provide functions to move the current line
8540using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
8541region instead.")
8542 (license license:gpl3+)))
dc586337
OP
8543
8544(define-public emacs-validate
8545 (package
8546 (name "emacs-validate")
8547 (version "1.0.5")
8548 (source (origin
8549 (method url-fetch)
8550 (uri (string-append "https://github.com/Malabarba/validate.el"
8551 "/archive/" version ".tar.gz"))
8552 (file-name (string-append name "-" version ".tar.gz"))
8553 (sha256
8554 (base32
8555 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
8556 (build-system emacs-build-system)
8557 (home-page "https://github.com/Malabarba/validate.el")
8558 (synopsis "Emacs library for scheme validation")
8559 (description "This Emacs library provides two functions that perform
8560schema validation.")
8561 (license license:gpl3+)))
f8a88f22
OP
8562
8563(define-public emacs-load-relative
8564 (let ((commit "738896e3da491b35399178ed2c6bc92cc728d119")
8565 (revision "1"))
8566 (package
8567 (name "emacs-load-relative")
8568 (version (string-append "0.0.1" "-" revision "."
8569 (string-take commit 7)))
8570 (source
8571 (origin
8572 (method git-fetch)
8573 (uri (git-reference
8574 (url "https://github.com/rocky/emacs-load-relative")
8575 (commit commit)))
8576 (file-name (string-append name "-" version "-checkout"))
8577 (sha256
8578 (base32
8579 "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73"))))
8580 (build-system emacs-build-system)
8581 (home-page "https://github.com/rocky/emacs-load-relative")
8582 (synopsis "Relative loads for Emacs Lisp files")
8583 (description "@code{load-relative} allows to write small Emacs
8584functions or modules in a larger multi-file Emacs package and
8585facilitate running from the source tree without having to install the
8586code or fiddle with evil @code{load-path}.")
8587 (license license:gpl3+))))
d7403c12
OP
8588
8589(define-public emacs-rainbow-blocks
8590 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
8591 (package
8592 (name "emacs-rainbow-blocks")
8593 (version (git-version "1.0.0" "1" commit))
8594 (source (origin
8595 (method git-fetch)
8596 (uri (git-reference
8597 (url "https://github.com/istib/rainbow-blocks.git")
8598 (commit commit)))
8599 (file-name (git-file-name name version))
8600 (sha256
8601 (base32
8602 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
8603 (build-system emacs-build-system)
8604 (home-page "https://github.com/istib/rainbow-blocks")
8605 (synopsis "Highlight sexp blocks")
8606 (description "Rainbow-blocks is an Emacs mode that highlights blocks
8607made of parentheses, brackets, and braces according to their depth. Each
8608successive level is highlighted in a different color. This makes it easy to
8609orient yourself in the code, and tell which statements are at a given level.")
8610 (license license:gpl3+))))
20b5b16e
OP
8611
8612(define-public emacs-hierarchy
8613 (package
8614 (name "emacs-hierarchy")
8615 (version "0.7.0")
8616 (source
8617 (origin
8618 (method url-fetch)
8619 (uri (string-append
8620 "https://github.com/DamienCassou/hierarchy/archive/"
8621 "v" version ".tar.gz"))
8622 (file-name (string-append name "-" version ".tar.gz"))
8623 (sha256
8624 (base32
8625 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
8626 (build-system emacs-build-system)
8627 (home-page "https://github.com/DamienCassou/hierarchy")
8628 (synopsis "Library to create and display hierarchy structures")
8629 (description "This package provides an Emacs library to create, query,
8630navigate and display hierarchy structures.")
8631 (license license:gpl3+)))
0acfc481
OP
8632
8633(define-public emacs-tree-mode
8634 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
8635 (revision "1"))
8636 (package
8637 (name "emacs-tree-mode")
8638 (version (string-append "0.0.1" "-" revision "."
8639 (string-take commit 7)))
8640 (source
8641 (origin
8642 (method git-fetch)
8643 (uri (git-reference
8644 (url "https://github.com/emacsorphanage/tree-mode.git")
8645 (commit commit)))
8646 (file-name (string-append name "-" version "-checkout"))
8647 (sha256
8648 (base32
8649 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
8650 (build-system emacs-build-system)
8651 (home-page "https://github.com/emacsorphanage/tree-mode")
8652 (synopsis "Emacs mode to manage tree widgets")
8653 (description
8654 "This package provides an Emacs library to manage tree widgets.")
8655 (license license:gpl3+))))
74b2f745
OP
8656
8657(define-public emacs-md4rd
8658 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
8659 (revision "1"))
8660 (package
8661 (name "emacs-md4rd")
8662 (version (string-append "0.0.1" "-" revision "."
8663 (string-take commit 7)))
8664 (source (origin
8665 (method git-fetch)
8666 (uri (git-reference
8667 (url "https://github.com/ahungry/md4rd.git")
8668 (commit commit)))
8669 (file-name (string-append name "-" version "-checkout"))
8670 (sha256
8671 (base32
8672 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
8673 (propagated-inputs
8674 `(("emacs-hierarchy" ,emacs-hierarchy)
8675 ("emacs-request" ,emacs-request)
8676 ("emacs-dash" ,emacs-dash)
8677 ("emacs-s" ,emacs-s)
8678 ("emacs-tree-mode" ,emacs-tree-mode)))
8679 (build-system emacs-build-system)
8680 (home-page "https://github.com/ahungry/md4rd")
8681 (synopsis "Emacs Mode for Reddit")
8682 (description
8683 "This package allows to read Reddit from within Emacs interactively.")
8684 (license license:gpl3+))))
b8f91043
OP
8685
8686(define-public emacs-pulseaudio-control
8687 (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b")
8688 (revision "1"))
8689 (package
8690 (name "emacs-pulseaudio-control")
8691 (version (string-append "0.0.1" "-" revision "."
8692 (string-take commit 7)))
8693 (source
8694 (origin
8695 (method git-fetch)
8696 (uri (git-reference
8697 (url "https://github.com/flexibeast/pulseaudio-control.git")
8698 (commit commit)))
8699 (file-name (string-append name "-" version "-checkout"))
8700 (sha256
8701 (base32
8702 "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"))))
8703 (build-system emacs-build-system)
8704 (home-page "https://github.com/flexibeast/pulseaudio-control")
8705 (synopsis "Control @code{pulseaudio} from Emacs")
8706 (description
8707 "This package allows to control @code{pulseaudio} from Emacs.")
8708 (license license:gpl3+))))
5746ca13
OP
8709
8710(define-public emacs-datetime
8711 (package
8712 (name "emacs-datetime")
8713 (version "0.3")
8714 (source (origin
8715 (method url-fetch)
8716 (uri (string-append
8717 "https://github.com/doublep/datetime/archive/"
8718 version ".tar.gz"))
8719 (file-name (string-append name "-" version ".tar.gz"))
8720 (sha256
8721 (base32
8722 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
8723 (build-system emacs-build-system)
8724 (home-page "https://github.com/doublep/datetime/")
8725 (synopsis "Library to work with dates in Emacs")
8726 (description "Parsing, formatting, matching and recoding
8727timestamps and date-time format strings library for Emacs.")
8728 (license license:gpl3+)))
a3a876c2
OP
8729
8730(define-public emacs-org-mind-map
8731 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
8732 (revision "1"))
8733 (package
8734 (name "emacs-org-mind-map")
8735 (version (string-append "0.0.1" "-" revision "."
8736 (string-take commit 7)))
8737 (source
8738 (origin
8739 (method git-fetch)
8740 (uri (git-reference
8741 (url "https://github.com/theodorewiles/org-mind-map.git")
8742 (commit commit)))
8743 (file-name (string-append name "-" version "-checkout"))
8744 (sha256
8745 (base32
8746 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
8747 (propagated-inputs
8748 `(("emacs-dash" ,emacs-dash)))
8749 (build-system emacs-build-system)
8750 (home-page "https://github.com/theodorewiles/org-mind-map")
8751 (synopsis "Create Graphviz directed graphs from Org files")
8752 (description
8753 "This package creates Graphviz directed graphs from Org files.")
8754 (license license:gpl3+))))
8d907999
OP
8755
8756(define-public emacs-npm-mode
8757 (package
8758 (name "emacs-npm-mode")
8759 (version "0.6.0")
8760 (source
8761 (origin
8762 (method url-fetch)
8763 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
8764 version ".tar.gz"))
8765 (file-name (string-append name "-" version ".tar.gz"))
8766 (sha256
8767 (base32
8768 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
8769 (build-system emacs-build-system)
8770 (home-page "https://github.com/mojochao/npm-mode")
8771 (synopsis "Minor mode for working with @code{npm} projects")
8772 (description
8773 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
8774 (license license:gpl3+)))
b12fb29e
OP
8775
8776(define-public emacs-seq
8777 (package
8778 (name "emacs-seq")
8779 (version "2.20")
8780 (source
8781 (origin
8782 (method url-fetch)
8783 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
8784 (sha256
8785 (base32
8786 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
8787 (build-system emacs-build-system)
8788 (home-page "http://elpa.gnu.org/packages/seq.html")
8789 (synopsis "Sequence manipulation functions")
8790 (description "Sequence-manipulation functions that complement basic
8791functions provided by @file{subr.el}.")
8792 (license license:gpl3+)))
be3cf803
OP
8793
8794(define-public emacs-itail
8795 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
8796 (revision "1"))
8797 (package
8798 (name "emacs-itail")
8799 (version (string-append "0.0.1" "-" revision "."
8800 (string-take commit 7)))
8801 (source
8802 (origin
8803 (method git-fetch)
8804 (uri (git-reference
8805 (url "https://github.com/re5et/itail.git")
8806 (commit commit)))
8807 (file-name (string-append name "-" version "-checkout"))
8808 (sha256
8809 (base32
8810 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
8811 (build-system emacs-build-system)
8812 (home-page "https://github.com/re5et/itail")
8813 (synopsis "Interactive @code{tail} Emacs mode")
8814 (description "@code{itail} provides interactive @code{tail} mode
8815that allows you to filter the tail with unix pipes and highlight the
8816contents of the tailed file. Works locally or on remote files using
8817tramp.")
8818 (license license:gpl3+))))
b836c650
OP
8819
8820(define-public emacs-loop
8821 (package
8822 (name "emacs-loop")
8823 (version "1.3")
8824 (source
8825 (origin
8826 (method url-fetch)
8827 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
8828 version ".tar.gz"))
8829 (file-name (string-append name "-" version ".tar.gz"))
8830 (sha256
8831 (base32
8832 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
8833 (build-system emacs-build-system)
8834 (home-page "https://github.com/Wilfred/loop.el")
8835 (synopsis "Imperative loop structures for Emacs")
8836 (description "Loop structures familiar to users of other languages. This
8837library adds a selection of popular loop structures as well as break and
8838continue.")
8839 (license license:gpl3+)))
1bd3400d
OP
8840
8841(define-public emacs-elisp-refs
8842 (package
8843 (name "emacs-elisp-refs")
8844 (version "1.2")
8845 (source
8846 (origin
8847 (method url-fetch)
8848 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
8849 version ".tar.gz"))
8850 (file-name (string-append name "-" version ".tar.gz"))
8851 (sha256
8852 (base32
8853 "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
8854 (build-system emacs-build-system)
8855 (propagated-inputs
8856 `(("emacs-dash" ,emacs-dash)
8857 ("emacs-f" ,emacs-f)
8858 ("emacs-list-utils" ,emacs-list-utils)
8859 ("emacs-loop" ,emacs-loop)
8860 ("emacs-s" ,emacs-s)))
8861 (home-page "https://github.com/Wilfred/elisp-refs")
8862 (synopsis "Find callers of elisp functions or macros")
8863 (description "Find references to functions, macros or variables. Unlike a
8864dumb text search, @code{elisp-refs} actually parses the code, so it's never
8865confused by comments or @code{foo-bar} matching @code{foo}.")
8866 (license license:gpl3+)))
08ff4fd1
OP
8867
8868(define-public emacs-crux
8869 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
8870 (revision "1"))
8871 (package
8872 (name "emacs-crux")
8873 (version (string-append "0.3.0" "-" revision "."
8874 (string-take commit 7)))
8875 (source
8876 (origin
8877 (method git-fetch)
8878 (uri (git-reference
8879 (url "https://github.com/bbatsov/crux.git")
8880 (commit commit)))
8881 (file-name (string-append name "-" version "-checkout"))
8882 (sha256
8883 (base32
8884 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
8885 (build-system emacs-build-system)
8886 (home-page "https://github.com/bbatsov/crux")
8887 (synopsis "Collection of useful functions for Emacs")
8888 (description
8889 "@code{crux} provides a collection of useful functions for Emacs.")
8890 (license license:gpl3+))))
3677e5ee
OP
8891
8892(define-public emacs-edit-server
8893 (package
8894 (name "emacs-edit-server")
8895 (version "1.13")
8896 (source
8897 (origin
8898 (method url-fetch)
8899 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
8900 "v" version ".tar.gz"))
8901 (file-name (string-append name "-" version ".tar.gz"))
8902 (sha256
8903 (base32
8904 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
8905 (build-system emacs-build-system)
8906 (arguments
8907 `(#:phases
8908 (modify-phases %standard-phases
8909 (add-after 'unpack 'chdir-elisp
8910 ;; Elisp directory is not in root of the source.
8911 (lambda _
8912 (chdir "servers"))))))
8913 (home-page "https://github.com/stsquad/emacs_chrome")
8914 (synopsis "Server that responds to edit requests from Chromium")
8915 (description
8916 "This package provides an edit server to respond to requests from Emacs.")
8917 (license license:gpl3+)))
40246075
OP
8918
8919(define-public emacs-m-buffer-el
8920 (package
8921 (name "emacs-m-buffer-el")
8922 (version "0.15")
8923 (source
8924 (origin
8925 (method url-fetch)
8926 (uri (string-append "https://github.com/phillord/m-buffer-el"
8927 "/archive/" "v" version ".tar.gz"))
8928 (file-name (string-append name "-" version ".tar.gz"))
8929 (sha256
8930 (base32
8931 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
8932 (arguments
8933 `(#:phases
8934 (modify-phases %standard-phases
8935 (add-before 'install 'check
8936 (lambda* (#:key inputs #:allow-other-keys)
8937 (zero? (system* "emacs" "--batch" "-L" "."
8938 "-l" "test/m-buffer-test.el"
8939 "-l" "test/m-buffer-at-test.el"
8940 "-f" "ert-run-tests-batch-and-exit")))))))
8941 (build-system emacs-build-system)
8942 (home-page "https://github.com/phillord/m-buffer-el")
8943 (synopsis "List oriented buffer operations for Emacs")
8944 (description "@code{m-buffer} provides a set of list-orientated functions
8945for operating over the contents of Emacs buffers.")
8946 (license license:gpl3+)))
15d56833
OP
8947
8948(define-public emacs-let-alist
8949 (package
8950 (name "emacs-let-alist")
8951 (version "1.0.5")
8952 (source
8953 (origin
8954 (method url-fetch)
8955 (uri (string-append
8956 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
8957 (sha256
8958 (base32
8959 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
8960 (build-system emacs-build-system)
8961 (home-page "https://elpa.gnu.org/packages/let-alist.html")
8962 (synopsis "Easily let-bind values of an assoc-list by their names")
8963 (description "This package offers a single macro, @code{let-alist}. This
8964macro takes a first argument (whose value must be an alist) and a body.")
8965 (license license:gpl3+)))
ddc56b80
OP
8966
8967(define-public emacs-esup
8968 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
8969 (revision "1"))
8970 (package
8971 (name "emacs-esup")
8972 (version (string-append "0.6" "-" revision "."
8973 (string-take commit 7)))
8974 (source
8975 (origin
8976 (method git-fetch)
8977 (uri (git-reference
8978 (url "https://github.com/jschaf/esup.git")
8979 (commit commit)))
8980 (file-name (string-append name "-" version "-checkout"))
8981 (sha256
8982 (base32
8983 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
8984 ;; TODO: Add tests
8985 (build-system emacs-build-system)
8986 (home-page "https://github.com/jschaf/esup")
8987 (synopsis "Emacs start up profiler")
8988 (description "Benchmark Emacs Startup time without ever leaving
8989your Emacs.")
8990 (license license:gpl2+))))
e33dba15
OP
8991
8992(define-public emacs-sourcemap
8993 (package
8994 (name "emacs-sourcemap")
8995 (version "0.03")
8996 (source
8997 (origin
8998 (method url-fetch)
8999 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
9000 version ".tar.gz"))
9001 (file-name (string-append name "-" version ".tar.gz"))
9002 (sha256
9003 (base32
9004 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
9005 (build-system emacs-build-system)
9006 (home-page "https://github.com/syohex/emacs-sourcemap")
9007 (synopsis "Sourcemap parser")
9008 (description "Sourcemap parser")
9009 (license license:gpl3+)))
9968e444
OP
9010
9011(define-public emacs-macrostep
9012 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
9013 (package
9014 (name "emacs-macrostep")
9015 (version (git-version "0.9" "1" commit))
9016 (source (origin
9017 (method git-fetch)
9018 (uri (git-reference
9019 (url "https://github.com/joddie/macrostep.git")
9020 (commit commit)))
9021 (file-name (string-append name "-" version "-checkout"))
9022 (sha256
9023 (base32
9024 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
9025 (build-system emacs-build-system)
9026 (arguments
9027 '(#:phases
9028 (modify-phases %standard-phases
9029 (add-before 'check 'remove-test
9030 ;; Fails because of requirement ‘/bin/sh’.
9031 (lambda _
9032 (let ((file "macrostep-test.el"))
9033 (chmod file #o644)
9034 (emacs-batch-edit-file file
9035 `(progn (progn (goto-char (point-min))
9036 (re-search-forward
9037 "(ert-deftest macrostep-expand-c-macros")
9038 (beginning-of-line)
9039 (kill-sexp))
9040 (basic-save-buffer))))))
9041 (add-before 'install 'check
9042 (lambda _
9043 (invoke "emacs" "--batch" "-L" "."
9044 "-l" "macrostep-test.el"
9045 "-f" "ert-run-tests-batch-and-exit"))))))
9046 (home-page "https://github.com/joddie/macrostep")
9047 (synopsis "Interactive macro-expander for Emacs")
9048 (description "@code{macrostep} is an Emacs minor mode for interactively
9049stepping through the expansion of macros in Emacs Lisp source code. It lets
9050you see exactly what happens at each step of the expansion process by
9051pretty-printing the expanded forms inline in the source buffer, which is
9052temporarily read-only while macro expansions are visible. You can expand and
9053collapse macro forms one step at a time, and evaluate or instrument the
9054expansions for debugging with Edebug as normal (but see “Bugs and known
9055limitations”, below). Single-stepping through the expansion is particularly
9056useful for debugging macros that expand into another macro form. These can be
9057difficult to debug with Emacs’ built-in macroexpand, which continues expansion
9058until the top-level form is no longer a macro call.")
9059 (license license:gpl3+))))
02999382
OP
9060
9061(define-public emacs-parent-mode
9062 (package
9063 (name "emacs-parent-mode")
9064 (version "2.3")
9065 (source
9066 (origin
9067 (method url-fetch)
9068 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9069 version ".tar.gz"))
9070 (file-name (string-append name "-" version ".tar.gz"))
9071 (sha256
9072 (base32
9073 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9074 (build-system emacs-build-system)
9075 (home-page "https://github.com/Fanael/parent-mode")
9076 (synopsis "Get major mode's parent modes")
9077 (description "Get major mode's parent modes")
9078 (license license:gpl3+)))
045f6b7c
OP
9079
9080(define-public emacs-lacarte
9081 (package
9082 (name "emacs-lacarte")
9083 (version "0.1")
9084 (source (origin
9085 (method url-fetch)
9086 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9087 (sha256
9088 (base32
9089 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9090 (build-system emacs-build-system)
9091 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9092 (synopsis "Execute menu items as commands, with completion")
9093 (description "Execute menu items as commands, with completion.")
9094 (license license:gpl3)))
b8ddef4b
OP
9095
9096(define-public emacs-company-lua
9097 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9098 (package
9099 (name "emacs-company-lua")
9100 (version (git-version "0.1" "1" commit))
9101 (source
9102 (origin
9103 (method git-fetch)
9104 (uri (git-reference
9105 (url "https://github.com/ptrv/company-lua.git")
9106 (commit commit)))
9107 (file-name (git-file-name name version))
9108 (sha256
9109 (base32
9110 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9111 (build-system emacs-build-system)
9112 (propagated-inputs
9113 `(("emacs-company" ,emacs-company)
9114 ("emacs-s" ,emacs-s)
9115 ("emacs-f" ,emacs-f)
9116 ("emacs-lua-mode" ,emacs-lua-mode)))
9117 (home-page "https://github.com/ptrv/company-lua")
9118 (synopsis "Company backend for Lua")
9119 (description
9120 "This package provides Company backend for Lua programming language.")
9121 (license license:gpl3+))))
f61ecb85
OP
9122
9123(define-public emacs-beginend
9124 (package
9125 (name "emacs-beginend")
9126 (version "2.0.0")
9127 (source
9128 (origin
9129 (method url-fetch)
9130 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9131 "v" version ".tar.gz"))
9132 (file-name (string-append name "-" version ".tar.gz"))
9133 (sha256
9134 (base32
9135 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9136 ;; TODO: Run tests.
9137 (build-system emacs-build-system)
9138 (inputs
9139 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9140 (home-page "https://github.com/DamienCassou/beginend")
9141 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9142 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9143keybindings for Emacs modes so that point moves to meaningful
9144locations. Redefined keys are still accessible by pressing the same
9145key again.")
9146 (license license:gpl3+)))
666e5617
OP
9147
9148(define-public emacs-mbsync
9149 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9150 (revision "1"))
9151 (package
9152 (name "emacs-mbsync")
9153 (version (string-append "0.0.1" "-" revision "."
9154 (string-take commit 7)))
9155 (source
9156 (origin
9157 (method git-fetch)
9158 (uri (git-reference
9159 (url "https://github.com/dimitri/mbsync-el.git")
9160 (commit commit)))
9161 (file-name (string-append name "-" version "-checkout"))
9162 (sha256
9163 (base32
9164 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9165 (build-system emacs-build-system)
9166 (home-page "https://github.com/dimitri/mbsync-el")
9167 (synopsis "Interface to mbsync for Emacs")
9168 (description "This package allows to call the @code{mbsync} from
9169within Emacs.")
9170 (license license:gpl3+))))
60bf9265
OP
9171
9172(define-public emacs-ibuffer-projectile
9173 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9174 (revision "1"))
9175 (package
9176 (name "emacs-ibuffer-projectile")
9177 (version (string-append "0.2" "-" revision "."
9178 (string-take commit 7)))
9179 (source
9180 (origin
9181 (method git-fetch)
9182 (uri (git-reference
9183 (url "https://github.com/purcell/ibuffer-projectile.git")
9184 (commit commit)))
9185 (file-name (string-append name "-" version "-checkout"))
9186 (sha256
9187 (base32
9188 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9189 (build-system emacs-build-system)
9190 (propagated-inputs
9191 `(("emacs-projectile" ,emacs-projectile)))
9192 (home-page "https://github.com/purcell/ibuffer-projectile")
9193 (synopsis "Group ibuffer's list by projectile root")
9194 (description "Adds functionality to Emacs @code{ibuffer} for
9195grouping buffers by their projectile root directory.")
9196 (license license:gpl3+))))
295513c6
OP
9197
9198(define-public emacs-helm-mode-manager
9199 (package
9200 (name "emacs-helm-mode-manager")
9201 (version "1.0.0")
9202 (source
9203 (origin
9204 (method url-fetch)
9205 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9206 "archive/" version ".tar.gz"))
9207 (file-name (string-append name "-" version ".tar.gz"))
9208 (sha256
9209 (base32
9210 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9211 (build-system emacs-build-system)
9212 (propagated-inputs
9213 `(("emacs-helm" ,emacs-helm)))
9214 (home-page "https://github.com/istib/helm-mode-manager/")
9215 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9216 (description "This package provides a Helm interface for toggling Emacs
9217major or minor mode.
9218
9219@itemize
9220@item @code{helm-switch-major-mode} list of all major modes
9221@item @code{helm-enable-minor-mode} list of all inactive minor modes
9222@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9223@end itemize\n
9224
9225Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9226documentation.")
9227 (license license:gpl3+)))
4cdfc9ef
OP
9228
9229(define-public emacs-hy-mode
9230 (package
9231 (name "emacs-hy-mode")
9232 (version "1.0.2")
9233 (source
9234 (origin
9235 (method url-fetch)
9236 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9237 "v" version ".tar.gz"))
9238 (file-name (string-append name "-" version ".tar.gz"))
9239 (sha256
9240 (base32
9241 "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
9242 (build-system emacs-build-system)
9243 (propagated-inputs
9244 `(("emacs-dash" ,emacs-dash)
9245 ("emacs-s" ,emacs-s)))
9246 (home-page "https://github.com/hylang/hy-mode")
9247 (synopsis "Major mode for Hylang")
9248 (description "This package provides a major mode for Hylang.")
9249 (license license:gpl3+)))
8aab3d06
OP
9250
9251(define-public emacs-web-beautify
9252 (package
9253 (name "emacs-web-beautify")
9254 (version "0.3.2")
9255 (source
9256 (origin
9257 (method url-fetch)
9258 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9259 version ".tar.gz"))
9260 (file-name (string-append name "-" version ".tar.gz"))
9261 (sha256
9262 (base32
9263 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9264 (build-system emacs-build-system)
9265 (home-page "https://github.com/yasuyk/web-beautify")
9266 (synopsis "Format HTML, CSS and JavaScript, JSON")
9267 (description "This package provides an Emacs functions to format HTML,
9268CSS, JavaScript, JSON.")
9269 (license license:gpl3+)))
c1b9d72c
OP
9270
9271(define-public emacs-helm-shell-history
9272 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9273 (package
9274 (name "emacs-helm-shell-history")
9275 (version (git-version "0.1" "1" commit))
9276 (source
9277 (origin
9278 (method git-fetch)
9279 (uri (git-reference
9280 (url "https://github.com/yuutayamada/helm-shell-history.git")
9281 (commit commit)))
9282 (file-name (git-file-name name version))
9283 (sha256
9284 (base32
9285 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9286 (build-system emacs-build-system)
9287 (arguments
9288 '(#:phases
9289 (modify-phases %standard-phases
9290 (add-before 'check 'patch-helm-shell-history-file
9291 (lambda _
9292 (let ((file "helm-shell-history.el"))
9293 (chmod file #o644)
9294 (emacs-substitute-sexps file
9295 ("(defvar helm-shell-history-file"
9296 `(expand-file-name "~/.bash_history"))))
9297 #t)))))
f1f6f227
OP
9298 (propagated-inputs
9299 `(("emacs-helm" ,emacs-helm)))
c1b9d72c
OP
9300 (home-page "https://github.com/yuutayamada/helm-shell-history")
9301 (synopsis "Find shell history with Emacs Helm")
9302 (description "This package provides an Emacs Helm interface to search
9303throw a shell history.")
9304 (license license:gpl3+))))
2c63f724
OP
9305
9306(define-public emacs-discover-my-major
9307 (package
9308 (name "emacs-discover-my-major")
9309 (version "1.0")
9310 (source
9311 (origin
9312 (method url-fetch)
9313 (uri
9314 (string-append "https://github.com/steckerhalter/discover-my-major"
9315 "/archive/" version ".tar.gz"))
9316 (file-name (string-append name "-" version ".tar.gz"))
9317 (sha256
9318 (base32
9319 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9320 (build-system emacs-build-system)
9321 (propagated-inputs
9322 `(("emacs-makey" ,emacs-makey)))
9323 (home-page "https://github.com/steckerhalter/discover-my-major")
9324 (synopsis "Discover key bindings for the current Emacs major mode")
9325 (description "This package provides allows to discover key bindings and
9326their meaning for the current Emacs major-mode.")
9327 (license license:gpl3+)))
21a3de58
OP
9328
9329(define-public emacs-org-ref
9330 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9331 (revision "1"))
9332 (package
9333 (name "emacs-org-ref")
9334 (version (string-append "1.1.1" "-" revision "."
9335 (string-take commit 7)))
9336 (source
9337 (origin
9338 (method git-fetch)
9339 (uri (git-reference
9340 (url "https://github.com/jkitchin/org-ref.git")
9341 (commit commit)))
9342 (file-name (string-append name "-" version "-checkout"))
9343 (sha256
9344 (base32
9345 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9346 (build-system emacs-build-system)
9347 (propagated-inputs
9348 `(("emacs-dash" ,emacs-dash)
9349 ("emacs-helm" ,emacs-helm)
9350 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9351 ("emacs-ivy" ,emacs-ivy)
9352 ("emacs-hydra" ,emacs-hydra)
9353 ("emacs-key-chord" ,emacs-key-chord)
9354 ("emacs-s" ,emacs-s)
9355 ("emacs-f" ,emacs-f)
9356 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9357 (home-page "https://github.com/jkitchin/org-ref")
9358 (synopsis "Citations, cross-references and bibliographies in org-mode")
9359 (description
9360 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9361Also sets up reftex and helm for org-mode citations. The links are
9362clickable and do things that are useful.
9363
9364The default setup uses helm-bibtex.
9365
9366You should really read org-ref.org in this package for details.")
9367 (license license:gpl3+))))
56e90e31
OP
9368
9369(define-public emacs-add-hooks
9370 (package
9371 (name "emacs-add-hooks")
9372 (version "3.1.1")
9373 (source (origin
9374 (method url-fetch)
9375 (uri (string-append
9376 "https://github.com/nickmccurdy/add-hooks/archive/"
9377 version ".tar.gz"))
9378 (file-name (string-append name "-" version ".tar.gz"))
9379 (sha256
9380 (base32
9381 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9382 (build-system emacs-build-system)
9383 (home-page "https://github.com/nickmccurdy/add-hooks/")
9384 (synopsis "Emacs function for setting multiple hooks")
9385 (description "This package provides a @code{add-hooks} function tidies up
9386duplicate hook and function names further into a single declarative call.")
9387 (license license:gpl3+)))
58b50580
OP
9388
9389(define-public emacs-fancy-narrow
9390 (package
9391 (name "emacs-fancy-narrow")
9392 (version "0.9.5")
9393 (source
9394 (origin
9395 (method url-fetch)
9396 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9397 version ".tar.gz"))
9398 (file-name (string-append name "-" version ".tar.gz"))
9399 (sha256
9400 (base32
9401 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9402 (build-system emacs-build-system)
9403 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9404 (synopsis "Immitate narrow-to-region with more eye-candy")
9405 (description "Unlike narrow-to-region, which completely hides text outside
9406the narrowed region, this package simply deemphasizes the text, makes it
9407readonly, and makes it unreachable. This leads to a much more natural
9408feeling, where the region stays static (instead of being brutally moved to a
9409blank slate) and is clearly highlighted with respect to the rest of the
9410buffer.")
9411 (license license:gpl2+)))
9b876c69
OP
9412
9413(define-public emacs-know-your-http-well
9414 (package
9415 (name "emacs-know-your-http-well")
9416 (version "0.5.0")
9417 (source
9418 (origin
9419 (method url-fetch)
9420 (uri (string-append
9421 "https://github.com/for-GET/know-your-http-well/archive/"
9422 "v" version ".tar.gz"))
9423 (file-name (string-append name "-" version ".tar.gz"))
9424 (sha256
9425 (base32
9426 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9427 (arguments
9428 `(#:phases
9429 (modify-phases %standard-phases
9430 (add-after 'unpack 'install-json-files
9431 (lambda* (#:key outputs #:allow-other-keys)
9432 (for-each (lambda (directory)
9433 (copy-recursively directory
9434 (string-append
9435 (assoc-ref outputs "out")
9436 directory)))
9437 '("js" "json"))))
9438 (add-after 'unpack 'chdir-elisp
9439 ;; Elisp directory is not in root of the source.
9440 (lambda _
9441 (chdir "emacs"))))))
9442 (build-system emacs-build-system)
9443 (home-page "https://github.com/for-GET/know-your-http-well")
9444 (synopsis "Meaning of HTTP headers codes")
9445 (description "Meaning of HTTP headers codes.")
9446 (license license:gpl3+)))
9f2b572e
OP
9447
9448(define-public emacs-navi-mode
9449 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9450 (package
9451 (name "emacs-navi-mode")
9452 (version (git-version "2.0" "1" commit))
9453 (source
9454 (origin
9455 (method git-fetch)
9456 (uri (git-reference
9457 (url "https://github.com/alphapapa/navi.git")
9458 (commit commit)))
9459 (file-name (git-file-name name version))
9460 (sha256
9461 (base32
9462 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9463 (build-system emacs-build-system)
9464 (propagated-inputs
9465 `(("emacs-outshine" ,emacs-outshine)
9466 ("emacs-outorg" ,emacs-outorg)))
9467 (home-page "https://github.com/alphapapa/navi")
9468 (synopsis "Emacs major-mode for easy buffer-navigation")
9469 (description
9470 "This package provides an Emacs major-mode for easy buffer-navigation")
9471 (license license:gpl3+))))
2f28093e
OP
9472
9473(define-public emacs-download-region
9474 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
9475 (revision "1"))
9476 (package
9477 (name "emacs-download-region")
9478 (version (string-append "0.0.1" "-" revision "."
9479 (string-take commit 7)))
9480 (source
9481 (origin
9482 (method git-fetch)
9483 (uri (git-reference
9484 (url "https://github.com/zk-phi/download-region.git")
9485 (commit commit)))
9486 (file-name (string-append name "-" version "-checkout"))
9487 (sha256
9488 (base32
9489 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
9490 (build-system emacs-build-system)
9491 (home-page "https://github.com/zk-phi/download-region")
9492 (synopsis "In buffer download manager for Emacs")
9493 (description "@code{download-region} provides in buffer
9494downloading manager for Emacs.")
9495 (license license:gpl3+))))
8bc8efc7
OP
9496
9497(define-public emacs-csv-mode
9498 (package
9499 (name "emacs-csv-mode")
9500 (version "1.7")
9501 (source
9502 (origin
9503 (method url-fetch)
9504 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
9505 version ".el"))
9506 (sha256
9507 (base32
9508 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
9509 (build-system emacs-build-system)
9510 (home-page "http://elpa.gnu.org/packages/csv-mode.html")
9511 (synopsis "Major mode for editing comma or char separated values")
9512 (description
9513 "This package provides an Emacs CSV mode, a major mode for editing
9514records in a generalized CSV (character-separated values) format.")
9515 (license license:gpl3+)))
b2bf4f54
OP
9516
9517(define-public emacs-helpful
9518 (package
9519 (name "emacs-helpful")
9520 (version "0.1")
9521 (source (origin
9522 (method url-fetch)
9523 (uri (string-append
9524 "https://github.com/Wilfred/helpful/archive/"
9525 version ".tar.gz"))
9526 (file-name (string-append name "-" version ".tar.gz"))
9527 (sha256
9528 (base32
9529 "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
9530 (build-system emacs-build-system)
9531 (propagated-inputs
9532 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
9533 (home-page "https://github.com/Wilfred/helpful")
9534 (synopsis "More contextual information in Emacs help")
9535 (description "@code{helpful} is an alternative to the built-in Emacs help
9536that provides much more contextual information.
9537
9538@itemize
9539@item Show the source code for interactively defined functions (unlike the
9540built-in Help).
9541@item Fall back to the raw sexp if no source is available.
9542@item Show where a function is being called.
9543@item Docstrings will Highlight the summary (the first sentence), include
9544cross-references, hide superfluous puncuation.
9545@item Show you the properties that have been applied to the current
9546symbol. This provides visibility of features like edebug or byte-code
9547optimisation.
9548@item Provide a separate @code{helpful-command} function to view interactive
9549functions.
9550@item Display any keybindings that apply to interactive functions.
9551@item Trace, disassemble functions from inside Helpful. This is discoverable
9552and doesn't require memorisation of commands.
9553@end itemize\n")
9554 (license license:gpl3+)))
1024dadd
OP
9555
9556(define-public emacs-logview
9557 (package
9558 (name "emacs-logview")
9559 (version "0.9")
9560 (source (origin
9561 (method url-fetch)
9562 (uri (string-append
9563 "https://github.com/doublep/logview/archive/"
9564 version ".tar.gz"))
9565 (file-name (string-append name "-" version ".tar.gz"))
9566 (sha256
9567 (base32
9568 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
9569 (propagated-inputs
9570 `(("emacs-datetime" ,emacs-datetime)))
9571 (build-system emacs-build-system)
9572 (home-page "https://github.com/doublep/logview/")
9573 (synopsis "Emacs mode for viewing log files")
9574 (description "@code{logview} provides an Emacs mode to view log files.")
9575 (license license:gpl3+)))
0bc5a32a
OP
9576
9577(define-public emacs-suggest
9578 (package
9579 (name "emacs-suggest")
9580 (version "0.4")
9581 (source
9582 (origin
9583 (method url-fetch)
9584 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
9585 version ".tar.gz"))
9586 (file-name (string-append name "-" version ".tar.gz"))
9587 (sha256
9588 (base32
9589 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
9590 (build-system emacs-build-system)
9591 (propagated-inputs
9592 `(("emacs-loop" ,emacs-loop)
9593 ("emacs-dash" ,emacs-dash)
9594 ("emacs-s" ,emacs-s)
9595 ("emacs-f" ,emacs-f)))
9596 (home-page "https://github.com/Wilfred/suggest.el")
9597 (synopsis "Suggest Elisp functions that give the output requested")
9598 (description "Suggest.el will find functions that give the output
9599requested. It's a great way of exploring list, string and arithmetic
9600functions.")
9601 (license license:gpl3+)))
c43c0823
OP
9602
9603(define-public emacs-benchmark-init
9604 (package
9605 (name "emacs-benchmark-init")
9606 (version "1.0")
9607 (source (origin
9608 (method url-fetch)
9609 (uri (string-append
9610 "https://github.com/dholm/benchmark-init-el/archive/"
9611 version ".tar.gz"))
9612 (file-name (string-append name "-" version ".tar.gz"))
9613 (sha256
9614 (base32
9615 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
9616 (build-system emacs-build-system)
9617 (home-page "https://github.com/dholm/benchmark-init-el")
9618 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
9619 (description "@code{benchmark-init} provides a way to keep track of where
9620time is being spent during Emacs startup in order to optimize startup time.")
9621 (license license:gpl3+)))
c25dda7e
OP
9622
9623(define-public emacs-emms-player-simple-mpv
9624 (let ((commit "101d120ccdee1c2c213fd2f0423c858b21649c00")
9625 (revision "1"))
9626 (package
9627 (name "emacs-emms-player-simple-mpv")
9628 (version (string-append "0.4.0" "-" revision "."
9629 (string-take commit 7)))
9630
9631 (source
9632 (origin
9633 (method git-fetch)
9634 (uri (git-reference
9635 (url "https://github.com/momomo5717/emms-player-simple-mpv.git")
9636 (commit commit)))
9637 (file-name (git-file-name name version))
9638 (sha256
9639 (base32
9640 "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll"))))
9641 (build-system emacs-build-system)
9642 (propagated-inputs
9643 `(("emacs-emms" ,emms)))
9644 (home-page "https://github.com/momomo5717/emms-player-simple-mpv")
9645 (synopsis "Extension of @file{emms-player-simple.el} for mpv JSON IPC")
9646 (description "@code{emms-player-simple-mpv} provides macros and
9647functions for defining emms simple players of mpv.")
9648 (license license:gpl3+))))
26165a79
OP
9649
9650(define-public emacs-magit-org-todos-el
9651 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
9652 (package
9653 (name "emacs-magit-org-todos-el")
9654 (version (git-version "0.1.1" "1" commit))
9655 (source
9656 (origin
9657 (method git-fetch)
9658 (uri (git-reference
9659 (url "https://github.com/danielma/magit-org-todos.el.git")
9660 (commit commit)))
9661 (file-name (git-file-name name version))
9662 (sha256
9663 (base32
9664 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
ec6f4bda
OP
9665 (propagated-inputs
9666 `(("magit" ,magit)))
26165a79
OP
9667 (build-system emacs-build-system)
9668 (home-page "https://github.com/danielma/magit-org-todos.el")
9669 (synopsis "Get todo.org into Emacs Magit status")
9670 (description "This package allows you to get @file{todo.org} into your
9671magit status.
9672
9673If you have a @file{todo.org} file with @code{TODO} items in the root of your
9674repository, @code{magit-org-todos} will create a section in your Magit status
9675buffer with each of your todos.")
9676 (license license:gpl3+))))
f4dc59a2
OP
9677
9678(define-public emacs-f3
9679 (package
9680 (name "emacs-f3")
9681 (version "0.1")
9682 (source
9683 (origin
9684 (method url-fetch)
9685 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
9686 version ".tar.gz"))
9687 (file-name (string-append name "-" version ".tar.gz"))
9688 (sha256
9689 (base32
9690 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
9691 (build-system emacs-build-system)
9692 (propagated-inputs
9693 `(("emacs-helm" ,emacs-helm)))
9694 (home-page "https://github.com/cosmicexplorer/f3")
9695 (synopsis "Fantastic File Finder for Emacs")
9696 (description
9697 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
9698 (license license:gpl3+)))
89378bb8 9699
6d6d9acc
OP
9700(define-public emacs-lice-el
9701 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
9702 (package
9703 (name "emacs-lice-el")
9704 (version (git-version "0.2" "1" commit))
9705 (source (origin
9706 (method git-fetch)
9707 (uri (git-reference
9708 (url "https://github.com/buzztaiki/lice-el.git")
9709 (commit commit)))
9710 (file-name (git-file-name name version))
9711 (sha256
9712 (base32
9713 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
9714 (build-system emacs-build-system)
9715 (home-page "https://github.com/buzztaiki/lice-el")
9716 (synopsis "License and header template for Emacs")
9717 (description "@code{lice.el} provides following features:
9718
9719@itemize
9720@item License template management.
9721@item File header insertion.
9722@end itemize\n")
9723 (license license:gpl3+))))
fc86ea63
OP
9724
9725(define-public emacs-academic-phrases
9726 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
9727 (package
9728 (name "emacs-academic-phrases")
9729 (version (git-version "0.1" "1" commit))
9730 (source
9731 (origin
9732 (method git-fetch)
9733 (uri (git-reference
9734 (url "https://github.com/nashamri/academic-phrases.git")
9735 (commit commit)))
9736 (file-name (string-append name "-" version "-checkout"))
9737 (sha256
9738 (base32
9739 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
9740 (build-system emacs-build-system)
9741 (propagated-inputs
9742 `(("emacs-dash" ,emacs-dash)
9743 ("emacs-s" ,emacs-s)
9744 ("emacs-ht" ,emacs-ht)))
9745 (home-page "https://github.com/nashamri/academic-phrases")
9746 (synopsis "Bypass that mental block when writing your papers")
9747 (description
9748 "When writing your academic paper, you might get stuck trying to find
9749the right phrase that captures your intention. This package tries to
9750alleviate that problem by presenting you with a list of phrases organized by
9751the topic or by the paper section that you are writing. This package has
9752around 600 phrases so far.
9753
9754Using this package is easy, just call @code{academic-phrases} to get a list of
9755phrases organized by topic, or call @code{academic-phrases-by-section} to
9756browse the phrases by the paper section and fill-in the blanks if required.")
9757 (license license:gpl3+))))
75a87807
OP
9758
9759(define-public emacs-auto-yasnippet
9760 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
9761 (package
9762 (name "emacs-auto-yasnippet")
9763 (version (git-version "0.3.0" "1" commit))
9764 (source (origin
9765 (method git-fetch)
9766 (uri (git-reference
9767 (url "https://github.com/abo-abo/auto-yasnippet.git")
9768 (commit commit)))
9769 (file-name (string-append name "-" version "-checkout"))
9770 (sha256
9771 (base32
9772 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
9773 (build-system emacs-build-system)
9774 (arguments
9775 '(#:phases
9776 (modify-phases %standard-phases
9777 (add-before 'install 'check
9778 (lambda _
9779 (invoke "emacs" "--batch"
9780 "-l" "auto-yasnippet.el"
9781 "-l" "auto-yasnippet-test.el"
9782 "-f" "ert-run-tests-batch-and-exit"))))))
9783 (propagated-inputs
9784 `(("emacs-yasnippet" ,emacs-yasnippet)))
9785 (home-page "https://github.com/abo-abo/auto-yasnippet/")
9786 (synopsis "Quickly create disposable yasnippets")
9787 (description "This package provides a hybrid of keyboard macros and
9788yasnippet. You create the snippet on the go, usually to be used just in the
9789one place. It's fast, because you're not leaving the current buffer, and all
9790you do is enter the code you'd enter anyway, just placing ~ where you'd like
9791yasnippet fields and mirrors to be.")
9792 (license license:gpl3+))))
a79cf99c
OP
9793
9794(define-public emacs-highlight-numbers
9795 (package
9796 (name "emacs-highlight-numbers")
9797 (version "0.2.3")
9798 (source
9799 (origin
9800 (method url-fetch)
9801 (uri (string-append
9802 "https://github.com/Fanael/highlight-numbers/archive/"
9803 version ".tar.gz"))
9804 (file-name (string-append name "-" version ".tar.gz"))
9805 (sha256
9806 (base32
9807 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
9808 (build-system emacs-build-system)
9809 (propagated-inputs
9810 `(("emacs-parent-mode" ,emacs-parent-mode)))
9811 (home-page "https://github.com/Fanael/highlight-numbers")
9812 (synopsis "Highlight numbers in source code")
9813 (description "@code{highlight-numbers-mode} provides a minor mode for
9814syntax highlighting of numeric literals in source code.
9815
9816It s customizable: it's easy to add or redefine what exactly consitutes a
9817\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
9818 (license license:gpl3+)))
6e28f15c
OP
9819
9820(define-public emacs-darkroom
9821 (package
9822 (name "emacs-darkroom")
9823 (version "0.1")
9824 (source (origin
9825 (method url-fetch)
9826 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
9827 version ".el"))
9828 (sha256
9829 (base32
9830 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
9831 (build-system emacs-build-system)
9832 (home-page "https://elpa.gnu.org/packages/darkroom.html")
9833 (synopsis "Remove visual distractions and focus on writing")
9834 (description "@code{darkroom-mode} makes visual distractions disappear.
9835The mode-line is temporarily elided, text is enlarged and margins are adjusted
9836so that it's centered on the window.
9837
9838@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
9839@code{darkroom-mode}, unless the current buffer lives in the sole window of
9840the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
9841split to display more windows and more buffers, the buffer exits
9842@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
9843@code{darkroom-mode}.")
9844 (license license:gpl3+)))
bf8300de
OP
9845
9846(define-public emacs-rsw-elisp
9847 (package
9848 (name "emacs-rsw-elisp")
9849 (version "1.0.5")
9850 (source (origin
9851 (method url-fetch)
9852 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
9853 "/archive/" version ".tar.gz"))
9854 (file-name (string-append name "-" version ".tar.gz"))
9855 (sha256
9856 (base32
9857 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
9858 (build-system emacs-build-system)
9859 (home-page "https://github.com/rswgnu/rsw-elisp")
9860 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
9861 (description "This package improves and replaces the GNU Emacs commands
9862that interactively evaluate Emacs Lisp expressions. The new commands replace
5e5bcc80
RW
9863standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
9864the same way as the old commands when called non-interactively; only the
bf8300de
OP
9865interactive behavior should be different.")
9866 (license license:gpl3+)))
192a9a20
OP
9867
9868(define-public emacs-default-text-scale
9869 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
9870 (revision "1"))
9871 (package
9872 (name "emacs-default-text-scale")
9873 (version (string-append "0.1" "-" revision "."
9874 (string-take commit 7)))
9875 (source (origin
9876 (method git-fetch)
9877 (uri (git-reference
9878 (url "https://github.com/purcell/default-text-scale")
9879 (commit commit)))
9880 (file-name (string-append name "-" version "-checkout"))
9881 (sha256
9882 (base32
9883 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
9884 (build-system emacs-build-system)
9885 (home-page "https://github.com/purcell/default-text-scale")
9886 (synopsis "Adjust the font size in all Emacs frames")
9887 (description "This package provides commands for increasing or
9888decreasing the default font size in all GUI Emacs frames.")
9889 (license license:gpl3+))))
2f9e1378
OP
9890
9891(define-public emacs-visual-regexp
9892 (package
9893 (name "emacs-visual-regexp")
9894 (version "1.1.1")
9895 (source
9896 (origin
9897 (method url-fetch)
9898 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
9899 "v" version ".tar.gz"))
9900 (file-name (string-append name "-" version ".tar.gz"))
9901 (sha256
9902 (base32
9903 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
9904 (build-system emacs-build-system)
9905 (home-page "https://github.com/benma/visual-regexp.el/")
9906 (synopsis "Regexp command with interactive visual feedback")
9907 (description "This package provides an Emacs regexp command with
9908interactive visual feedback.")
9909 (license license:gpl3+)))
6f83725f
OP
9910
9911(define-public emacs-faceup
9912 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
9913 (revision "1"))
9914 (package
9915 (name "emacs-faceup")
9916 (version (string-append "0.0.1" "-" revision "."
9917 (string-take commit 7)))
9918 (source
9919 (origin
9920 (method git-fetch)
9921 (uri (git-reference
9922 (url "https://github.com/Lindydancer/faceup.git")
9923 (commit commit)))
9924 (file-name (string-append name "-" version "-checkout"))
9925 (sha256
9926 (base32
9927 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
9928 (build-system emacs-build-system)
9929 (home-page "https://github.com/Lindydancer/faceup")
9930 (synopsis "Markup language for faces and font-lock regression testing")
9931 (description "Emacs is capable of highlighting buffers based on
9932language-specific @code{font-lock} rules. This package makes it possible to
9933perform regression test for packages that provide font-lock rules.")
9934 (license license:gpl3+))))
f52b635b
OP
9935
9936(define-public emacs-racket-mode
9937 (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451")
9938 (revision "1"))
9939 (package
9940 (name "emacs-racket-mode")
9941 (version (string-append "0.0.1" "-" revision "."
9942 (string-take commit 7)))
9943 (source
9944 (origin
9945 (method git-fetch)
9946 (uri (git-reference
9947 (url "https://github.com/greghendershott/racket-mode")
9948 (commit commit)))
9949 (file-name (string-append name "-" version "-checkout"))
9950 (sha256
9951 (base32
9952 "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"))))
9953 (build-system emacs-build-system)
9954 (propagated-inputs
9955 `(("emacs-faceup" ,emacs-faceup)
9956 ("emacs-s" ,emacs-s)))
9957 (home-page "https://github.com/greghendershott/racket-mode")
9958 (synopsis "Major mode for Racket language")
9959 (description "@code{racket-mode} provides:
9960
9961@itemize
9962@item Focus on Racket (not various Schemes).
9963@item Follow DrRacket concepts where applicable.
9964@item Thorough font-lock and indent.
9965@end itemize\n")
9966 (license license:gpl3+))))
8f052df2
OP
9967
9968(define-public emacs-grep-context
9969 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
9970 (package
9971 (name "emacs-grep-context")
9972 (version (git-version "0.1" "1" commit))
9973 (source
9974 (origin
9975 (method git-fetch)
9976 (uri (git-reference
9977 (url "https://github.com/mkcms/grep-context.git")
9978 (commit commit)))
9979 (file-name (string-append name "-" version "-checkout"))
9980 (sha256
9981 (base32
9982 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
9983 (build-system emacs-build-system)
9984 (propagated-inputs
9985 `(("emacs-dash" ,emacs-dash)))
9986 (home-page "https://github.com/nashamri/academic-phrases")
9987 (synopsis "Increase context in compilation and grep buffers")
9988 (description
9989 "This package provides an Emacs package for more context in
9990compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
9991@code{ivy}.")
9992 (license license:gpl3+))))
d3f7e533
OP
9993
9994(define-public emacs-helm-firefox
9995 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
9996 (revision "1"))
9997 (package
9998 (name "emacs-helm-firefox")
9999 (version (string-append "0.0.1" "-" revision "."
10000 (string-take commit 7)))
10001 (source
10002 (origin
10003 (method git-fetch)
10004 (uri (git-reference
10005 (url "https://github.com/emacs-helm/helm-firefox.git")
10006 (commit commit)))
10007 (file-name (string-append name "-" version "-checkout"))
10008 (sha256
10009 (base32
10010 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
0715a9e6
OP
10011 (propagated-inputs
10012 `(("emacs-helm" ,emacs-helm)))
d3f7e533
OP
10013 (build-system emacs-build-system)
10014 (home-page "https://github.com/emacs-helm/helm-firefox")
10015 (synopsis "Display firefox bookmarks with Emacs Helm interface")
10016 (description "Display firefox bookmarks with Emacs Helm interface")
10017 (license license:gpl3+))))
b268bf18
OP
10018
10019(define-public emacs-interactive-align
10020 (package
10021 (name "emacs-interactive-align")
10022 (version "0.1.0")
10023 (source
10024 (origin
10025 (method url-fetch)
10026 (uri (string-append "https://github.com/mkcms/interactive-align/"
10027 "archive/" "v" version ".tar.gz"))
10028 (file-name (string-append name "-" version ".tar.gz"))
10029 (sha256
10030 (base32
10031 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
10032 (build-system emacs-build-system)
10033 (home-page "https://github.com/mkcms/interactive-align/")
10034 (synopsis "Interactive align-regexp command in Emacs")
10035 (description "Interactive align-regexp command in Emacs")
10036 (license license:gpl3+)))
fcd8d4f7
OP
10037
10038(define-public emacs-shift-number
10039 (package
10040 (name "emacs-shift-number")
10041 (version "0.1")
10042 (source
10043 (origin
10044 (method url-fetch)
10045 (uri (string-append "https://github.com/alezost/shift-number.el"
10046 "/archive/" "v" version ".tar.gz"))
10047 (file-name (string-append name "-" version ".tar.gz"))
10048 (sha256
10049 (base32
10050 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
10051 (build-system emacs-build-system)
10052 (home-page "https://github.com/alezost/shift-number.el")
10053 (synopsis "Increase or decrease the number at point")
10054 (description "@code{emacs-shift-number} provides commands
10055@code{shift-number-up} to increase and @code{shift-number-down} to
10056decrease the number at point.")
10057 (license license:gpl3+)))
b91e1724
OP
10058
10059(define-public emacs-highlight-defined
10060 (package
10061 (name "emacs-highlight-defined")
10062 (version "0.1.5")
10063 (source
10064 (origin
10065 (method url-fetch)
10066 (uri (string-append
10067 "https://github.com/Fanael/highlight-defined/archive/"
10068 version ".tar.gz"))
10069 (file-name (string-append name "-" version ".tar.gz"))
10070 (sha256
10071 (base32
10072 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10073 (build-system emacs-build-system)
10074 (home-page "https://github.com/Fanael/highlight-defined")
10075 (synopsis "Syntax highlighting of known Elisp symbols")
10076 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10077symbols. Currently the code distinguishes Lisp functions, built-in functions,
10078macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10079 (license license:gpl3+)))
8a2ab51a
OP
10080
10081(define-public emacs-parinfer-mode
10082 (package
10083 (name "emacs-parinfer-mode")
10084 (version "0.4.10")
10085 (source
10086 (origin
10087 (method url-fetch)
10088 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10089 "v" version ".tar.gz"))
10090 (file-name (string-append name "-" version ".tar.gz"))
10091 (sha256
10092 (base32
10093 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10094 (propagated-inputs
10095 `(("emacs-dash" ,emacs-dash)
10096 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10097 ("emacs-company" ,emacs-company)))
10098 (build-system emacs-build-system)
10099 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10100 (synopsis "Lisp structure editing mode")
10101 (description "@code{parinfer-mode} is a proof-of-concept editor
10102mode for Lisp programming languages. It will infer some changes to
10103keep Parens and Indentation inline with one another.")
10104 (license license:gpl3+)))
abe8ef7f
OP
10105
10106(define-public emacs-helm-eww
10107 (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac"))
10108 (package
10109 (name "emacs-helm-eww")
10110 (version (git-version "0.1" "1" commit))
10111 (source (origin
10112 (method git-fetch)
10113 (uri (git-reference
10114 (url "https://github.com/emacs-helm/helm-eww.git")
10115 (commit commit)))
10116 (file-name (string-append name "-" version "-checkout"))
10117 (sha256
10118 (base32
10119 "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
9e2529e1
OP
10120 (propagated-inputs
10121 `(("emacs-helm" ,emacs-helm)))
abe8ef7f
OP
10122 (build-system emacs-build-system)
10123 (home-page "https://github.com/emacs-helm/helm-eww/")
10124 (synopsis "Helm interface to EWW")
10125 (description "This package provides a Helm interface for EWW buffers,
10126bookmarks and history.")
10127 (license license:gpl3+))))
b870ee10
OP
10128
10129(define-public emacs-stumpwm-mode
10130 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10131 (revision "1"))
10132 (package
10133 (name "emacs-stumpwm-mode")
10134 (version (string-append "0.0.1-" revision "."
10135 (string-take commit 7)))
10136 (source (origin
10137 (method git-fetch)
10138 (uri (git-reference
10139 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10140 (commit commit)))
10141 (file-name (string-append name "-" version "-checkout"))
10142 (sha256
10143 (base32
10144 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10145 (build-system emacs-build-system)
10146 (arguments
10147 `(#:phases
10148 (modify-phases %standard-phases
10149 (add-after 'unpack 'chdir-elisp
10150 ;; Elisp directory is not in root of the source.
10151 (lambda _
10152 (chdir "util/swm-emacs"))))))
10153 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10154 (synopsis "Emacs minor-mode for Stumpwm")
10155 (description "Emacs minor-mode for Stumpwm")
10156 (license license:gpl3+))))
dbbd6e89
OP
10157
10158(define-public emacs-irfc
10159 (package
10160 (name "emacs-irfc")
10161 (version "20130824.507")
10162 (source
10163 (origin
10164 (method url-fetch)
10165 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10166 (file-name (string-append "irfc-" version ".el"))
10167 (sha256
10168 (base32
10169 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10170 (build-system emacs-build-system)
10171 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10172 (synopsis "Interface for IETF RFC document")
10173 (description
10174 "This package provides an Emacs interface for IETF RFC document.")
10175 (license license:gpl3+)))
0e087b70
OP
10176
10177(define-public emacs-ido-vertical-mode
10178 (package
10179 (name "emacs-ido-vertical-mode")
10180 (version "0.1.6")
10181 (source
10182 (origin
10183 (method url-fetch)
10184 (uri (string-append
10185 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10186 "v" version ".tar.gz"))
10187 (file-name (string-append name "-" version ".tar.gz"))
10188 (sha256
10189 (base32
10190 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10191 (build-system emacs-build-system)
10192 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10193 (synopsis "Makes ido-mode display vertically")
10194 (description "Makes ido-mode display prospects vertically.")
10195 (license license:gpl3+)))
ca0e2ab0
OP
10196
10197(define-public emacs-wordgen
10198 (package
10199 (name "emacs-wordgen")
10200 (version "0.1.4")
10201 (source
10202 (origin
10203 (method url-fetch)
10204 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10205 version ".tar.gz"))
10206 (file-name (string-append name "-" version ".tar.gz"))
10207 (sha256
10208 (base32
10209 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10210 (build-system emacs-build-system)
10211 (home-page "https://github.com/Fanael/wordgen.el")
10212 (synopsis "Random word generator")
10213 (description "This package provides functions to generate random words
10214using user-provided rules.")
10215 (license license:gpl3+)))
47667501
OP
10216
10217(define-public emacs-on-screen
10218 (package
10219 (name "emacs-on-screen")
10220 (version "1.3.2")
10221 (source
10222 (origin
10223 (method url-fetch)
10224 (uri (string-append
10225 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10226 (file-name (string-append name "-" version ".el"))
10227 (sha256
10228 (base32
10229 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10230 (build-system emacs-build-system)
10231 (home-page
10232 "https://github.com/michael-heerdegen/on-screen.el")
10233 (synopsis "Guide your eyes while scrolling")
10234 (description
10235 "Scrolling can be distracting because your eyes may lose
10236orientation. This library implements a minor mode that highlights
10237the previously visible buffer part after each scroll.")
10238 (license license:gpl3+)))
cfeefca9
OP
10239
10240(define-public emacs-highlight-escape-sequences
10241 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10242 (revision "1"))
10243 (package
10244 (name "emacs-highlight-escape-sequences")
10245 (version (string-append "0.0.1" "-" revision "."
10246 (string-take commit 7)))
10247 (source
10248 (origin
10249 (method git-fetch)
10250 (uri (git-reference
10251 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10252 (commit commit)))
10253 (file-name (string-append name "-" version "-checkout"))
10254 (sha256
10255 (base32
10256 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10257 (build-system emacs-build-system)
10258 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10259 (synopsis "Highlight escape sequences in Emacs")
10260 (description "@code{highlight-escape-sequences} provides an
10261Emacs minor mode to escape sequences in code.")
10262 (license license:gpl3+))))
99092bd9
OP
10263
10264(define-public emacs-dashboard
10265 (package
10266 (name "emacs-dashboard")
10267 (version "1.2.4")
10268 (source
10269 (origin
10270 (method url-fetch)
10271 (uri (string-append
10272 "https://github.com/rakanalh/emacs-dashboard/archive/"
10273 version ".tar.gz"))
10274 (file-name (string-append name "-" version ".tar.gz"))
10275 (sha256
10276 (base32
10277 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10278 (build-system emacs-build-system)
10279 (propagated-inputs
10280 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10281 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10282 (home-page "https://github.com/rakanalh/emacs-dashboard")
10283 (synopsis "Startup screen extracted from Spacemacs")
10284 (description "This package provides an extensible Emacs dashboard, with
10285sections for bookmarks, projectil projects, org-agenda and more. ")
10286 (license license:gpl3+)))
37fa904f
OP
10287
10288(define-public emacs-slime-company
10289 (package
10290 (name "emacs-slime-company")
10291 (version "1.1")
10292 (source
10293 (origin
10294 (method url-fetch)
10295 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10296 "v" version ".tar.gz"))
10297 (sha256
10298 (base32
10299 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10300 (file-name (string-append name "-" version ".tar.gz"))))
10301 (build-system emacs-build-system)
10302 (propagated-inputs
10303 `(("emacs-slime" ,emacs-slime)
10304 ("emacs-company" ,emacs-company)))
10305 (home-page "https://company-mode.github.io")
10306 (synopsis "SLIME completion backend for @code{company-mode}")
10307 (description
10308 "This is a backend implementation for the completion package
10309@code{company-mode} which supports the normal and the fuzzy completion
10310modes of SLIME.")
10311 (license license:gpl3+)))
1a73164d
OP
10312
10313(define-public emacs-sml-mode
10314 (package
10315 (name "emacs-sml-mode")
10316 (version "6.8")
10317 (source
10318 (origin
10319 (method url-fetch)
10320 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10321 version ".el"))
10322 (sha256
10323 (base32
10324 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10325 (build-system emacs-build-system)
10326 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10327 (synopsis "Major mode for editing (Standard) ML")
10328 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10329It provides syntax highlighting and automatic indentation and
10330comes with sml-proc which allows interaction with an inferior SML
10331interactive loop.")
10332 (license license:gpl3+)))
c498ff56
OP
10333
10334(define-public emacs-eros
10335 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10336 (revision "1"))
10337 (package
10338 (name "emacs-eros")
10339 (version (string-append "0.0.1" "-" revision "."
10340 (string-take commit 7)))
10341 (source
10342 (origin
10343 (method git-fetch)
10344 (uri (git-reference
10345 (url "https://github.com/xiongtx/eros.git")
10346 (commit commit)))
10347 (file-name (string-append name "-" version "-checkout"))
10348 (sha256
10349 (base32
10350 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10351 (build-system emacs-build-system)
10352 (home-page "https://github.com/xiongtx/eros")
10353 (synopsis "Evaluation result overlays")
10354 (description "@code{eros} provides evaluation result overlays.")
10355 (license license:gpl3+))))
6673bbef
OP
10356
10357(define-public emacs-stickyfunc-enhance
10358 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10359 (revision "1"))
10360 (package
10361 (name "emacs-stickyfunc-enhance")
10362 (version "0.1")
10363 (source
10364 (origin
10365 (method git-fetch)
10366 (uri (git-reference
10367 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10368 (commit commit)))
10369 (file-name (string-append name "-" version "-checkout"))
10370 (sha256
10371 (base32
10372 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10373 (build-system emacs-build-system)
10374 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10375 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10376 (description
10377 "@code{semantic-stickyfunc-mode} shows the function point is currently
10378in at the first line of the current buffer. This is useful when you have a
10379very long function that spreads more than a screen, and you don't have to
10380scroll up to read the function name and then scroll down to original position.")
10381 (license license:gpl3+))))
c9efc229
OP
10382
10383(define-public emacs-git-auto-commit-mode
10384 (package
10385 (name "emacs-git-auto-commit-mode")
10386 (version "4.4.0")
10387 (source
10388 (origin
10389 (method url-fetch)
10390 (uri (string-append
10391 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10392 version ".tar.gz"))
10393 (file-name (string-append name "-" version ".tar.gz"))
10394 (sha256
10395 (base32
10396 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10397 (build-system emacs-build-system)
10398 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10399 (synopsis "Emacs Minor mode to automatically commit and push")
10400 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10401tries to commit changes to a file after every save.
10402
10403When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10404the current upstream.")
10405 (license license:gpl3+)))
deef6d7c
OP
10406
10407(define-public emacs-company-restclient
10408 (package
10409 (name "emacs-company-restclient")
10410 (version "0.1.0")
10411 (source
10412 (origin
10413 (method url-fetch)
10414 (uri (string-append
10415 "https://github.com/iquiw/company-restclient/archive/"
10416 "v" version ".tar.gz"))
10417 (file-name (string-append name "-" version ".tar.gz"))
10418 (sha256
10419 (base32
10420 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10421 (build-system emacs-build-system)
10422 (propagated-inputs
10423 `(("emacs-company" ,emacs-company)
10424 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10425 ("emacs-restclient" ,emacs-restclient)))
10426 (home-page "https://github.com/iquiw/company-restclient")
10427 (synopsis "Company-mode completion back-end for restclient-mode")
10428 (description "@code{company-mode} back-end for
10429@code{restclient-mode}.
10430
10431It provides auto-completion for HTTP methods and headers in
10432@code{restclient-mode}. Completion source is given by
10433@code{know-your-http-well}.")
10434 (license license:gpl3+)))
51eda974
SB
10435
10436(define-public emacs-noflet
10437 (let ((version "20170629")
10438 (revision "1")
10439 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10440 (package
10441 (name "emacs-noflet")
10442 (version (git-version version revision commit))
10443 (source
10444 (origin
10445 (method git-fetch)
10446 (uri (git-reference
10447 (url "https://github.com/nicferrier/emacs-noflet")
10448 (commit commit)))
10449 (file-name (string-append name "-" version "-checkout"))
10450 (sha256
10451 (base32
10452 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10453 (build-system emacs-build-system)
10454 (arguments
10455 `(#:phases
10456 (modify-phases %standard-phases
10457 (add-after 'unpack 'require-dash
10458 ;; noflet.el uses -map from dash, but (require 'dash) is
10459 ;; missing. So, add it.
10460 (lambda _
10461 (substitute* "noflet.el"
10462 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10463 #t)))))
10464 (propagated-inputs
10465 `(("emacs-dash" ,emacs-dash)))
10466 (home-page "https://github.com/nicferrier/emacs-noflet")
10467 (synopsis "Locally override functions")
10468 (description "@code{emacs-noflet} let's you locally override functions,
10469in the manner of @command{flet}, but with access to the original function
10470through the symbol: @command{this-fn}.")
10471 (license license:gpl3+))))
b36f9a80
SB
10472
10473(define-public emacs-dumb-jump
10474 (package
10475 (name "emacs-dumb-jump")
10476 (version "0.5.2")
10477 (source
10478 (origin
10479 (method url-fetch)
10480 (uri (string-append
10481 "https://github.com/jacktasia/dumb-jump/archive/v"
10482 version ".tar.gz"))
10483 (file-name (string-append name "-" version ".tar.gz"))
10484 (sha256
10485 (base32
10486 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10487 (build-system emacs-build-system)
10488 (arguments
10489 `(#:tests? #f ; FIXME: Tests freeze when run.
10490 #:test-command '("ert-runner")
10491 #:phases
10492 (modify-phases %standard-phases
10493 (add-after 'unpack 'set-shell
10494 (lambda _
10495 ;; Setting the SHELL environment variable is required for the
10496 ;; tests to find sh.
10497 (setenv "SHELL" (which "sh"))
10498 #t)))))
10499 (native-inputs
10500 `(("emacs-el-mock" ,emacs-el-mock)
10501 ("emacs-noflet" ,emacs-noflet)
10502 ("emacs-undercover" ,emacs-undercover)
10503 ("ert-runner" ,ert-runner)))
10504 (propagated-inputs
10505 `(("emacs-f" ,emacs-f)
10506 ("emacs-popup" ,emacs-popup)))
10507 (home-page "https://github.com/jacktasia/dumb-jump")
10508 (synopsis "Jump to definition for multiple languages without configuration")
10509 (description "Dumb Jump is an Emacs \"jump to definition\" package with
10510support for multiple programming languages that favors \"just working\" over
10511speed or accuracy. This means minimal --- and ideally zero --- configuration
10512with absolutely no stored indexes (tags) or persistent background processes.
10513Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
10514@command{rg} installed.")
10515 (license license:gpl3+)))
563ab27b
MO
10516
10517(define-public emacs-dts-mode
10518 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
10519 (revision "1"))
10520 (package
10521 (name "emacs-dts-mode")
10522 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
10523 (source
10524 (origin
10525 (method git-fetch)
10526 (uri (git-reference
10527 (url "https://github.com/bgamari/dts-mode.git")
10528 (commit commit)))
10529 (file-name (string-append name "-" version "-checkout"))
10530 (sha256
10531 (base32
10532 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
10533 (build-system emacs-build-system)
10534 (home-page "https://github.com/bgamari/dts-mode.git")
10535 (synopsis "Emacs minor mode for editing device tree files")
10536 (description
10537 "This package provides an Emacs minor mode for highlighting
10538device tree files.")
10539 (license license:gpl3+))))
bdadf855
PN
10540
10541(define-public emacs-daemons
10542 (package
10543 (name "emacs-daemons")
10544 (version "1.2.0")
10545 (source
10546 (origin
10547 (method git-fetch)
10548 (uri (git-reference
10549 (url "https://github.com/cbowdon/daemons.el")
10550 (commit version)))
10551 (file-name (string-append name "-" version "-checkout"))
10552 (sha256
10553 (base32
10554 "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7"))))
10555 (build-system emacs-build-system)
10556 (home-page "https://github.com/cbowdon/daemons.el")
10557 (synopsis "Emacs UI for managing init system services")
10558 (description
10559 "This is an Emacs mode to give you a UI for managing init system
10560daemons (services) for those getting tired of typing out @code{sudo service
35d43843 10561my_thing reload} all the time. It offers a consistent UI over different init
bdadf855
PN
10562systems.")
10563 (license license:gpl3+)))
71d35215
PN
10564
10565(define-public emacs-esh-autosuggest
10566 (package
10567 (name "emacs-esh-autosuggest")
10568 (version "2.0.0")
10569 (source
10570 (origin
10571 (method git-fetch)
10572 (uri (git-reference
10573 (url "https://github.com/dieggsy/esh-autosuggest")
10574 (commit version)))
10575 (file-name (string-append name "-" version "-checkout"))
10576 (sha256
10577 (base32
10578 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
10579 (build-system emacs-build-system)
10580 (propagated-inputs `(("emacs-company" ,emacs-company)))
10581 (home-page "https://github.com/dieggsy/esh-autosuggest")
10582 (synopsis "Fish-like autosuggestions in Eshell")
10583 (description
10584 "This package assumes you use something other than company for eshell
10585completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
10586@code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
10587for history autosuggestions.
10588
10589Unless you're using @code{use-package}'s hook keyword, you can enable the
10590autosuggestions with:
10591@code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
10592 (license license:gpl3+)))
fd29faa8
RW
10593
10594(define-public emacs-desktop-environment
10595 (package
10596 (name "emacs-desktop-environment")
10597 (version "0.2.0")
10598 (source
10599 (origin
10600 (method git-fetch)
10601 (uri (git-reference
10602 (url "https://github.com/DamienCassou/desktop-environment.git")
10603 (commit (string-append "v" version))))
10604 (file-name (string-append name "-" version "-checkout"))
10605 (sha256
10606 (base32
10607 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
10608 (build-system emacs-build-system)
10609 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
10610 (synopsis "Control your GNU/Linux desktop environment from Emacs")
10611 (description
10612 "This package helps you control your GNU/Linux desktop from Emacs.
10613With @code{desktop-environment}, you can control the brightness and volume as
10614well as take screenshots and lock your screen. The package depends on the
10615availability of shell commands to do the hard work for us. These commands can
10616be changed by customizing the appropriate variables.")
10617 (license license:gpl3+)))
45dca193
KH
10618
10619(define-public emacs-org-caldav
10620 (package
10621 (name "emacs-org-caldav")
10622 (version "20180403")
10623 (source
10624 (origin
10625 (method url-fetch)
10626 (uri (string-append
10627 "https://github.com/dengste/org-caldav/raw/"
10628 "8d3492c27a09f437d2d94f2736c56d7652e87aa0"
10629 "/org-caldav.el"))
10630 (sha256
10631 (base32
10632 "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc"))))
10633 (build-system emacs-build-system)
10634 (propagated-inputs `(("emacs-org" ,emacs-org)))
10635 (home-page "https://github.com/dengste/org-caldav")
10636 (synopsis
10637 "Sync Org files with external calendars via the CalDAV protocol")
10638 (description
10639 "Synchronize between events in Org-mode files and a CalDAV calendar.
10640This code is still alpha.")
10641 (license license:gpl3+)))
555ab085
KH
10642
10643(define-public emacs-zotxt
10644 (package
10645 (name "emacs-zotxt")
10646 (version "20180518")
10647 (source
10648 (origin
10649 (method url-fetch)
10650 (uri (string-append
10651 "https://github.com/egh/zotxt-emacs/archive/"
10652 "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
10653 ".tar.gz"))
10654 (sha256
10655 (base32
10656 "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
10657 (build-system emacs-build-system)
10658 (propagated-inputs
10659 `(("emacs-deferred" ,emacs-deferred)
10660 ("emacs-request" ,emacs-request)))
10661 (home-page "https://github.com/egh/zotxt-emacs")
10662 (synopsis "Integrate Emacs with Zotero")
10663 (description "This package provides two integration features between Emacs
10664and the Zotero research assistant: Insertion of links to Zotero items into an
10665Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
10666 (license license:gpl3+)))
22deb034
PN
10667
10668(define-public emacs-evil-ediff
10669 (package
10670 (name "emacs-evil-ediff")
10671 (version "20170724")
10672 (source
10673 (origin
10674 (method url-fetch)
10675 (uri (string-append
10676 "https://github.com/emacs-evil/evil-ediff/archive/"
10677 "67b0e69f65c196eff5b39dacb7a9ec05bb919c74"
10678 ".tar.gz"))
10679 (sha256
10680 (base32
10681 "0j2x26zfc6md54mjf76qpybil4yal70lp5bifcz62l1f8fc1vvlq"))))
10682 (build-system emacs-build-system)
10683 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10684 (home-page "https://github.com/emacs-evil/evil-ediff")
10685 (synopsis "Make Ediff a little evil")
10686 (description
10687 "This Emacs package configures Ediff to be friendlier to users of Vi-like
10688keybindings. Consult the help buffer for more information.")
10689 (license license:gpl3+)))
c6c1f0bf
PN
10690
10691(define-public emacs-evil-magit
10692 (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
10693 (package
10694 (name "emacs-evil-magit")
10695 (version (git-version "0.4.2" "1" commit))
10696 (source
10697 (origin
10698 (method git-fetch)
10699 (uri (git-reference
10700 (url "https://github.com/emacs-evil/evil-magit")
10701 (commit commit)))
10702 (file-name (string-append name "-" version "-checkout"))
10703 (sha256
10704 (base32
10705 "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
10706 (build-system emacs-build-system)
10707 (propagated-inputs
10708 `(("emacs-evil" ,emacs-evil)
10709 ("magit" ,magit)))
10710 (home-page
10711 "https://github.com/emacs-evil/evil-magit")
10712 (synopsis "Evil-based key bindings for Magit")
10713 (description
10714 "This Emacs library configures Magit and Evil to play well with each other.
10715For some background see @url{https://github.com/magit/evil-magit/issues/1}.
10716See the README at @url{https://github.com/justbur/evil-magit} for a table
10717describing the key binding changes.")
10718 (license license:gpl3+))))
e1e09bcb
PN
10719
10720(define-public emacs-evil-mu4e
10721 (package
10722 (name "emacs-evil-mu4e")
10723 (version "0.0.8")
10724 (source
10725 (origin
10726 (method url-fetch)
10727 (uri (string-append
10728 "https://github.com/JorisE/evil-mu4e/archive/"
10729 "c03a0e11afda3092eb1461be09fa6a61ebc0e4f6"
10730 ".tar.gz"))
10731 (sha256
10732 (base32
10733 "1k3z5h04bqslrkq13paqf8pv9r0rf0zjl0zbb57ly043ds3nvxr2"))))
10734 (build-system emacs-build-system)
10735 (propagated-inputs
10736 `(("emacs-dash" ,emacs-dash)
10737 ("emacs-evil" ,emacs-evil)
10738 ("mu" ,mu)))
10739 (home-page "https://github.com/JorisE/evil-mu4e")
10740 (synopsis "Evil-based key bindings for mu4e")
10741 (description
10742 "Use keybindings for the mu4e mail reader in Emacs that make sense for
10743Evil users.")
10744 (license license:gpl3+)))
ac85107c
PN
10745
10746(define-public emacs-evil-multiedit
10747 (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d"))
10748 (package
10749 (name "emacs-evil-multiedit")
10750 (version (git-version "1.3.9" "1" commit))
10751 (source
10752 (origin
10753 (method git-fetch)
10754 (uri (git-reference
10755 (url "https://github.com/hlissner/evil-multiedit")
10756 (commit commit)))
10757 (file-name (string-append name "-" version "-checkout"))
10758 (sha256
10759 (base32
10760 "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w"))))
10761 (build-system emacs-build-system)
10762 (propagated-inputs
10763 `(("emacs-evil" ,emacs-evil)
10764 ("emacs-iedit" ,emacs-iedit)))
10765 (home-page
10766 "https://github.com/hlissner/evil-multiedit")
10767 (synopsis "Multiple cursors for Evil mode")
10768 (description
10769 "This plugin was an answer to the lack of proper multiple cursor support
10770in Emacs+Evil. It allows you to select and edit matches interactively,
10771integrating @code{iedit-mode} into Evil mode with an attempt at sensible
10772defaults.")
10773 (license license:gpl3+))))
e3740109
PN
10774
10775(define-public emacs-evil-org
10776 (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
10777 (package
10778 (name "emacs-evil-org")
10779 (version (git-version "0.1.1" "1" commit))
10780 (source
10781 (origin
10782 (method git-fetch)
10783 (uri (git-reference
10784 (url "https://github.com/Somelauw/evil-org-mode")
10785 (commit commit)))
10786 (file-name (string-append name "-" version "-checkout"))
10787 (sha256
10788 (base32
10789 "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
10790 (build-system emacs-build-system)
10791 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10792 (home-page
10793 "https://github.com/Somelauw/evil-org-mode")
10794 (synopsis "Evil keybindings for Org mode")
10795 (description
10796 "This package adds supplemental Evil mode key-bindings to Emacs
10797Org-mode. It features:
10798@itemize
10799@item normal, visual and insert mode bindings;
10800@item key bindings organised in key themes;
10801@item operators like > and < to work on headings;
10802@item text objects;
10803@item table support;
10804@item calendar (date selection) support;
10805@item agenda support.
10806@end itemize\n")
10807 (license license:gpl3+))))
15dcd292
PN
10808
10809(define-public emacs-fish-completion
10810 (package
10811 (name "emacs-fish-completion")
10812 (version "20180329")
10813 (source
10814 (origin
10815 (method url-fetch)
10816 (uri (string-append
10817 "https://github.com/Ambrevar/emacs-fish-completion/archive/"
10818 "3e3ed1f19fa778b7c35ad88e033dce5a6b1fc153"
10819 ".tar.gz"))
10820 (sha256
10821 (base32
10822 "16329py7fvid0bap1qhqxhdc68m9qqy1p8gc2bhng81zhm5a5zsm"))))
10823 (build-system emacs-build-system)
10824 (propagated-inputs `(("fish" ,fish)))
10825 (home-page
10826 "https://github.com/Ambrevar/emacs-fish-completion")
10827 (synopsis "Fish completion for Emacs pcomplete")
10828 (description
10829 "This package provides completion for the Fish shell to pcomplete (used
10830by shell and Eshell). You can set it up globally with:
10831
10832@example
10833(when (and (executable-find \"fish\")
10834 (require 'fish-completion nil t))
10835 (global-fish-completion-mode))
10836@end example
10837
10838Alternatively, you can call the @code{fish-completion-mode} manually or in
10839shell/Eshell mode hook.
10840
10841The package @code{emacs-bash-completion} is an optional dependency: if available,
10842@code{fish-completion-complete} can be configured to fall back on bash to further
10843try completing. See @code{fish-completion-fallback-on-bash-p}.")
10844 (license license:gpl3+)))
a62d872f
PN
10845
10846(define-public emacs-gif-screencast
10847 (let ((commit "825e606950ec842304bf75cf85baef707b853b03"))
10848 (package
10849 (name "emacs-gif-screencast")
10850 (version (git-version "20180309" "1" commit))
10851 (source
10852 (origin
10853 (method url-fetch)
10854 (uri (string-append
10855 "https://github.com/Ambrevar/emacs-gif-screencast/archive/"
10856 commit
10857 ".tar.gz"))
10858 (sha256
10859 (base32
10860 "1f83sdx4qj4g6byvbdq7aayissbcy5lqm43djp8h0lq455nf7jkc"))))
10861 (build-system emacs-build-system)
10862 (inputs
10863 `(("scrot" ,scrot)
10864 ("imagemagick" ,imagemagick)
10865 ("gifsicle" ,gifsicle)))
10866 (arguments
10867 `(#:phases
10868 (modify-phases %standard-phases
10869 (add-after 'unpack 'configure
10870 (lambda* (#:key inputs outputs #:allow-other-keys)
10871 (let ((scrot (assoc-ref inputs "scrot"))
10872 (imagemagick (assoc-ref inputs "imagemagick"))
10873 (gifsicle (assoc-ref inputs "gifsicle")))
10874 ;; Specify the absolute file names of the various
10875 ;; programs so that everything works out-of-the-box.
10876 (emacs-substitute-variables
10877 "gif-screencast.el"
10878 ("gif-screencast-program"
10879 (string-append scrot "/bin/scrot"))
10880 ("gif-screencast-convert-program"
10881 (string-append imagemagick "/bin/convert"))
10882 ("gif-screencast-cropping-program"
10883 (string-append imagemagick "/bin/mogrify"))
10884 ("gif-screencast-optimize-program"
10885 (string-append imagemagick "/bin/gifsicle")))))))))
10886 (home-page
10887 "https://github.com/Ambrevar/emacs-gif-screencast")
10888 (synopsis "One-frame-per-action GIF recording")
10889 (description
10890 "Call @code{gif-screencast} to start a recording.
10891A screenshot is taken for every user action. Call
10892@code{gif-screencast-stop} (<f9> by default) to finish recording and create
10893the GIF result.")
10894 (license license:gpl3+))))
2dcea9b4
PN
10895
10896(define-public emacs-google-translate
10897 (let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974"))
10898 (package
10899 (name "emacs-google-translate")
10900 (version (git-version "0.11.14" "1" commit))
10901 (source
10902 (origin
10903 (method git-fetch)
10904 (uri (git-reference
10905 (url "https://github.com/atykhonov/google-translate")
10906 (commit commit)))
10907 (file-name (string-append name "-" version "-checkout"))
10908 (sha256
10909 (base32
10910 "1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc"))))
10911 (build-system emacs-build-system)
10912 (home-page "https://github.com/atykhonov/google-translate")
10913 (synopsis "Emacs interface to Google Translate")
10914 (description
10915 "This packages provides an Emacs interface to the Google Translate
10916on-line service.")
10917 (license license:gpl3+))))
3540c6eb
PN
10918
10919(define-public emacs-helm-company
10920 (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d"))
10921 (package
10922 (name "emacs-helm-company")
10923 (version (git-version "0.2.2" "1" commit))
10924 (source
10925 (origin
10926 (method git-fetch)
10927 (uri (git-reference
10928 (url "https://github.com/Sodel-the-Vociferous/helm-company")
10929 (commit commit)))
10930 (file-name (string-append name "-" version "-checkout"))
10931 (sha256
10932 (base32
10933 "1d4q9clp0q56br80c21a4wz1gc4jw3mdy97z9mq07x9i8rhlppzs"))))
10934 (build-system emacs-build-system)
10935 (propagated-inputs
10936 `(("emacs-helm" ,emacs-helm)
10937 ("emacs-company" ,emacs-company)))
10938 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
10939 (synopsis "Helm interface for company-mode")
10940 (description
10941 "This is a Helm interface to company-mode, a text completion
10942framework.")
10943 (license license:gpl3+))))
0b4e4efe
PN
10944
10945(define-public emacs-helm-descbinds
10946 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
10947 (package
10948 (name "emacs-helm-descbinds")
10949 (version (git-version "1.13" "1" commit))
10950 (source
10951 (origin
10952 (method git-fetch)
10953 (uri (git-reference
10954 (url "https://github.com/emacs-helm/helm-descbinds")
10955 (commit commit)))
10956 (file-name (string-append name "-" version "-checkout"))
10957 (sha256
10958 (base32
10959 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
10960 (build-system emacs-build-system)
10961 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
10962 (home-page "https://github.com/emacs-helm/helm-descbinds")
10963 (synopsis "Convenient @code{describe-bindings} with Helm")
10964 (description
10965 "This package is a replacement of @code{describe-bindings} for Helm.
10966@code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
10967type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
10968@code{helm-descbinds}. The bindings are presented in a similar way as
10969@code{describe-bindings} does, but you can use completion to find the command
10970you searched for and execute it, or view its documentation.")
10971 (license license:gpl3+))))
5a949f5b
PN
10972
10973(define-public emacs-helm-emms
10974 (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec"))
10975 (package
10976 (name "emacs-helm-emms")
10977 (version (git-version "1.3" "1" commit))
10978 (source
10979 (origin
10980 (method git-fetch)
10981 (uri (git-reference
10982 (url "https://github.com/emacs-helm/helm-emms")
10983 (commit commit)))
10984 (file-name (string-append name "-" version "-checkout"))
10985 (sha256
10986 (base32
10987 "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa"))))
10988 (build-system emacs-build-system)
10989 (propagated-inputs
10990 `(("emacs-helm" ,emacs-helm)
10991 ("emacs-emms" ,emms)))
10992 (home-page
10993 "https://github.com/emacs-helm/helm-emms")
10994 (synopsis "Emms for Helm")
10995 (description "Helm interface for Emms to browse all tracks and all folders
10996from @code{emms-source-file-default-directory}.")
10997 (license license:gpl3+))))
49fd0392
PN
10998
10999(define-public emacs-helm-exwm
11000 (let ((commit "82a856c80c8d295e3be522a01c5a15af50d08990"))
11001 (package
11002 (name "emacs-helm-exwm")
11003 (version (git-version "20180523" "1" commit))
11004 (source
11005 (origin
11006 (method url-fetch)
11007 (uri (string-append
11008 "https://github.com/emacs-helm/helm-exwm/archive/"
11009 commit
11010 ".tar.gz"))
11011 (sha256
11012 (base32
11013 "1xsg2lar1vh7jmj5lnnyi14vssxkgy95sv9r8pbfhbnkjkbjm9pb"))))
11014 (build-system emacs-build-system)
11015 (propagated-inputs
11016 `(("emacs-helm" ,emacs-helm)
11017 ("emacs-exwm" ,emacs-exwm)))
11018 (home-page
11019 "https://github.com/emacs-helm/helm-exwm")
11020 (synopsis "Helm for EXWM buffers")
11021 (description
11022 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
11023@code{helm-exwm-switch} is a convenience X application launcher using Helm to
11024switch between the various windows of one or several specific applications.
11025See @code{helm-exwm-switch-browser} for an example.")
11026 (license license:gpl3+))))
daa9e89d
PN
11027
11028(define-public emacs-helm-flycheck
11029 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
11030 (package
11031 (name "emacs-helm-flycheck")
11032 (version (git-version "0.4" "1" commit))
11033 (source
11034 (origin
11035 (method git-fetch)
11036 (uri (git-reference
11037 (url "https://github.com/yasuyk/helm-flycheck")
11038 (commit commit)))
11039 (file-name (string-append name "-" version "-checkout"))
11040 (sha256
11041 (base32
11042 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
11043 (build-system emacs-build-system)
11044 (propagated-inputs
11045 `(("emacs-dash" ,emacs-dash)
11046 ("emacs-flycheck" ,flycheck)
11047 ("emacs-helm" ,emacs-helm)))
11048 (home-page "https://github.com/yasuyk/helm-flycheck")
11049 (synopsis "Show Flycheck errors with Helm")
11050 (description
11051 "This integrates Flycheck with Helm.")
11052 (license license:gpl3+))))
1e758526
PN
11053
11054(define-public emacs-helm-ls-git
11055 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
11056 (package
11057 (name "emacs-helm-ls-git")
11058 (version (git-version "1.9.1" "1" commit))
11059 (source
11060 (origin
11061 (method git-fetch)
11062 (uri (git-reference
11063 (url "https://github.com/emacs-helm/helm-ls-git")
11064 (commit commit)))
11065 (file-name (string-append name "-" version "-checkout"))
11066 (sha256
11067 (base32
11068 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
11069 (build-system emacs-build-system)
11070 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
11071 (home-page "https://github.com/emacs-helm/helm-ls-git")
11072 (synopsis "Helm interface for listing the files in a Git repository")
11073 (description
11074 "This package provides a Helm interface for Git files.
11075@itemize
11076@item Display the open buffers in project.
11077@item Display a status source showing state of project (modified files etc.).
11078@item Display a list of all files in project under git control.
11079@item Quickly look at diffs of modified files.
11080@item Allow switching to @code{git status} with your preferred frontend
11081(vc-dir, Magit,etc.).
11082@item Full integration of git-grep, also allow usage of @code{helm-grep} (you
11083can use ack-grep instead of grep).
11084@item Integrate usage of gid from id-utils.
11085@item Full integration with @code{helm-find-files}, allow you to browse
11086projects unrelated to current-buffer.
11087@item In addition, all actions of type files and buffers are provided.
11088@end itemize\n")
11089 (license license:gpl3+))))
2f3aa1d3
PN
11090
11091(define-public emacs-helm-mu
11092 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
11093 (package
11094 (name "emacs-helm-mu")
11095 (version (git-version "20180513" "1" commit))
11096 (source
11097 (origin
11098 (method url-fetch)
11099 (uri (string-append
11100 "https://github.com/emacs-helm/helm-mu/archive/"
11101 commit
11102 ".tar.gz"))
11103 (sha256
11104 (base32
11105 "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
11106 (build-system emacs-build-system)
11107 (propagated-inputs
11108 `(("emacs-helm" ,emacs-helm)
11109 ("mu" ,mu)))
11110 (home-page
11111 "https://github.com/emacs-helm/helm-mu")
11112 (synopsis
11113 "Helm sources for searching emails and contacts")
11114 (description
11115 "Helm sources for searching emails and contacts using @code{mu} and
11116@code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
11117Emacs build on top of mu. Mu is highly efficient making it possible to get
11118instant results even for huge maildirs. It also provides search operators,
11119e.g: @code{from:Peter to:Anne flag:attach search term}.")
11120 (license license:gpl3+))))
bdfebc4b
PN
11121
11122(define-public emacs-helm-pass
11123 (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb"))
11124 (package
11125 (name "emacs-helm-pass")
11126 (version (git-version "20180416" "1" commit))
11127 (source
11128 (origin
11129 (method url-fetch)
11130 (uri (string-append
11131 "https://github.com/jabranham/helm-pass/archive/"
11132 commit
11133 ".tar.gz"))
11134 (sha256
11135 (base32
11136 "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi"))))
11137 (build-system emacs-build-system)
11138 (propagated-inputs
11139 `(("emacs-helm" ,emacs-helm)
11140 ("emacs-password-store" ,emacs-password-store)))
11141 (home-page
11142 "https://github.com/jabranham/helm-pass")
11143 (synopsis "Helm interface to pass, the standard Unix password manager")
11144 (description
11145 "Users of @code{helm-pass} may also be interested in functionality
11146provided by other Emacs packages dealing with pass:
11147@itemize
11148@item @code{emacs-password-store}, which @code{helm-pass} relies on.
11149@item @code{emacs-pass}, a major mode for @code{pass}.
11150@item @code{auth-source-pass.el}: integration of Emacs' auth-source with
11151@code{pass}, included in Emacs 26+).
11152@end itemize\n")
11153 (license license:gpl3+))))
00f37740
PN
11154
11155(define-public emacs-image+
11156 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
11157 (package
11158 (name "emacs-image+")
11159 (version (git-version "0.6.2" "1" commit))
11160 (source
11161 (origin
11162 (method git-fetch)
11163 (uri (git-reference
11164 (url "https://github.com/mhayashi1120/Emacs-imagex")
11165 (commit commit)))
11166 (file-name (string-append name "-" version "-checkout"))
11167 (sha256
11168 (base32
11169 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
11170 (build-system emacs-build-system)
11171 (propagated-inputs `(("imagemagick" ,imagemagick)))
11172 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
11173 (synopsis "Image manipulation extensions for Emacs")
11174 (description
11175 "Image+ provides keybindings allowing you to zoom in or zoom out of an
11176image, rotate it, save modified images, and more.")
11177 (license license:gpl3+))))