build: emacs-utils: Fail when byte compilation fails.
[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>
1e523180 21;;; Copyright © 2017 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>
468bdabb
LC
37;;;
38;;; This file is part of GNU Guix.
39;;;
40;;; GNU Guix is free software; you can redistribute it and/or modify it
41;;; under the terms of the GNU General Public License as published by
42;;; the Free Software Foundation; either version 3 of the License, or (at
43;;; your option) any later version.
44;;;
45;;; GNU Guix is distributed in the hope that it will be useful, but
46;;; WITHOUT ANY WARRANTY; without even the implied warranty of
47;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
48;;; GNU General Public License for more details.
49;;;
50;;; You should have received a copy of the GNU General Public License
51;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
52
1ffa7090 53(define-module (gnu packages emacs)
f61e0e79 54 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
55 #:use-module (guix packages)
56 #:use-module (guix download)
f906d30c 57 #:use-module (guix git-download)
e5045f30
FB
58 #:use-module (guix gexp)
59 #:use-module (guix monads)
60 #:use-module (guix store)
468bdabb 61 #:use-module (guix build-system gnu)
78395334 62 #:use-module (guix build-system emacs)
71f57158 63 #:use-module (guix build-system glib-or-gtk)
fe4163f3 64 #:use-module (guix build-system trivial)
59a43334 65 #:use-module (gnu packages)
acf7d4a7 66 #:use-module (gnu packages audio)
4aafce22 67 #:use-module (gnu packages bash)
75408149 68 #:use-module (gnu packages cmake)
cf006d2e 69 #:use-module (gnu packages code)
4d089b5e 70 #:use-module (gnu packages databases)
f906d30c 71 #:use-module (gnu packages guile)
7abe1965 72 #:use-module (gnu packages gtk)
8ba4dc63 73 #:use-module (gnu packages gnome)
1ffa7090 74 #:use-module (gnu packages ncurses)
99517d92 75 #:use-module (gnu packages python)
41184943 76 #:use-module (gnu packages tex)
1ffa7090 77 #:use-module (gnu packages texinfo)
acf7d4a7 78 #:use-module (gnu packages tcl)
a7fd7b68 79 #:use-module (gnu packages tls)
4f028c8f 80 #:use-module (gnu packages pkg-config)
50efa797
LC
81 #:use-module (gnu packages xorg)
82 #:use-module (gnu packages lesstif)
e55354b8 83 #:use-module (gnu packages image)
504a83af 84 #:use-module (gnu packages linux)
9a4c9715 85 #:use-module (gnu packages version-control)
18d26210
MW
86 #:use-module (gnu packages imagemagick)
87 #:use-module (gnu packages w3m)
89925972 88 #:use-module (gnu packages wget)
18d26210 89 #:use-module (gnu packages autotools)
be379ee7 90 #:use-module (gnu packages base)
f61e0e79 91 #:use-module (gnu packages compression)
50efa797 92 #:use-module (gnu packages xml)
4a3e602c 93 #:use-module (gnu packages glib)
388fd01b 94 #:use-module (gnu packages acl)
b6efe0e8 95 #:use-module (gnu packages mail)
13fe4891 96 #:use-module (gnu packages package-management)
77c9286d 97 #:use-module (gnu packages perl)
ec9825d6 98 #:use-module (gnu packages pdf)
58a7dc13 99 #:use-module (gnu packages scheme)
41184943 100 #:use-module (gnu packages statistics)
77c9286d
LC
101 #:use-module (gnu packages xiph)
102 #:use-module (gnu packages mp3)
154c71e0 103 #:use-module (gnu packages gettext)
a80b60f4
AI
104 #:use-module (gnu packages fribidi)
105 #:use-module (gnu packages gd)
106 #:use-module (gnu packages fontutils)
03efe78c 107 #:use-module (gnu packages password-utils)
4a3e602c 108 #:use-module (guix utils)
87449013
AI
109 #:use-module (srfi srfi-1)
110 #:use-module (ice-9 match))
468bdabb
LC
111
112(define-public emacs
113 (package
114 (name "emacs")
0cdb6ab4 115 (version "25.3")
468bdabb
LC
116 (source (origin
117 (method url-fetch)
118 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 119 version ".tar.xz"))
468bdabb
LC
120 (sha256
121 (base32
0cdb6ab4 122 "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"))
fc1adab1 123 (patches (search-patches "emacs-exec-path.patch"
4509ec72 124 "emacs-fix-scheme-indent-function.patch"
0cdb6ab4 125 "emacs-source-date-epoch.patch"))
486f36eb
AK
126 (modules '((guix build utils)))
127 (snippet
128 ;; Delete the bundled byte-compiled elisp files and
129 ;; generated autoloads.
130 '(with-directory-excursion "lisp"
131 (for-each delete-file
132 (append (find-files "." "\\.elc$")
133 (find-files "." "loaddefs\\.el$")
134 ;; This is the only "autoloads" file that
135 ;; does not have "*loaddefs.el" name.
dc701091
LC
136 '("eshell/esh-groups.el")))
137
138 ;; Make sure Tramp looks for binaries in the right places on
139 ;; remote GuixSD machines, where 'getconf PATH' returns
140 ;; something bogus.
141 (substitute* "net/tramp-sh.el"
142 ;; Patch the line after "(defcustom tramp-remote-path".
143 (("\\(tramp-default-remote-path")
144 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
145 "~/.guix-profile/bin" "~/.guix-profile/sbin"
146 "/run/current-system/profile/bin"
d1c11418
OP
147 "/run/current-system/profile/sbin")))
148
149 ;; Make sure Man looks for C header files in the right
150 ;; places.
151 (substitute* "man.el"
152 (("\"/usr/local/include\"" line)
153 (string-join
154 (list line
155 "\"~/.guix-profile/include\""
156 "\"/var/guix/profiles/system/profile/include\"")
157 " ")))))))
71f57158 158 (build-system glib-or-gtk-build-system)
468bdabb 159 (arguments
13fe4891
FB
160 `(#:phases
161 (modify-phases %standard-phases
162 (add-before 'configure 'fix-/bin/pwd
163 (lambda _
164 ;; Use `pwd', not `/bin/pwd'.
165 (substitute* (find-files "." "^Makefile\\.in$")
166 (("/bin/pwd")
167 "pwd"))))
13fe4891 168 (add-after 'install 'install-site-start
59d04f63
AK
169 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
170 ;; provided by Guix and installed in
13fe4891
FB
171 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
172 ;; automatically found.
173 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
174 (let* ((out (assoc-ref outputs "out"))
175 (lisp-dir (string-append out "/share/emacs/site-lisp")))
176 (copy-file (assoc-ref inputs "guix-emacs.el")
177 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
178 (with-output-to-file (string-append lisp-dir "/site-start.el")
179 (lambda ()
9bd94544
AK
180 (display
181 (string-append "(when (require 'guix-emacs nil t)\n"
182 " (guix-emacs-autoload-packages))\n"))))
13fe4891 183 #t))))))
468bdabb 184 (inputs
c4c4cc05 185 `(("gnutls" ,gnutls)
468bdabb
LC
186 ("ncurses" ,ncurses)
187
188 ;; TODO: Add the optional dependencies.
fa275717 189 ("libx11" ,libx11)
0a9e9a63 190 ("gtk+" ,gtk+)
fa275717 191 ("libxft" ,libxft)
50efa797 192 ("libtiff" ,libtiff)
504a83af 193 ("giflib" ,giflib)
50efa797 194 ("libjpeg" ,libjpeg-8)
eb737a27 195 ("imagemagick" ,imagemagick)
388fd01b 196 ("acl" ,acl)
50efa797
LC
197
198 ;; When looking for libpng `configure' links with `-lpng -lz', so we
199 ;; must also provide zlib as an input.
200 ("libpng" ,libpng)
f61e0e79 201 ("zlib" ,zlib)
50efa797 202
8ba4dc63 203 ("librsvg" ,librsvg)
fa275717 204 ("libxpm" ,libxpm)
50efa797 205 ("libxml2" ,libxml2)
504a83af
MW
206 ("libice" ,libice)
207 ("libsm" ,libsm)
208 ("alsa-lib" ,alsa-lib)
13fe4891 209 ("dbus" ,dbus)
01c5c21a
AI
210
211 ;; multilingualization support
212 ("libotf" ,libotf)
213 ("m17n-lib" ,m17n-lib)))
c4c4cc05 214 (native-inputs
59d04f63
AK
215 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
216 ("pkg-config" ,pkg-config)
c4c4cc05 217 ("texinfo" ,texinfo)))
64c98347
LC
218
219 (native-search-paths
220 (list (search-path-specification
221 (variable "INFOPATH")
222 (files '("share/info")))))
223
6fd52309 224 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 225 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 226 (description
79c311b8
LC
227 "GNU Emacs is an extensible and highly customizable text editor. It is
228based on an Emacs Lisp interpreter with extensions for text editing. Emacs
229has been extended in essentially all areas of computing, giving rise to a
230vast array of packages supporting, e.g., email, IRC and XMPP messaging,
231spreadsheets, remote server editing, and much more. Emacs includes extensive
232documentation on all aspects of the system, from basic editing to writing
233large Lisp programs. It has full Unicode support for nearly all human
234languages.")
f61e0e79 235 (license license:gpl3+)))
4f028c8f 236
b2eaf7ba 237(define-public emacs-minimal
4fd540b7
LC
238 ;; This is the version that you should use as an input to packages that just
239 ;; need to byte-compile .el files.
b2eaf7ba
AK
240 (package (inherit emacs)
241 (name "emacs-minimal")
242 (synopsis "The extensible text editor (used only for byte-compilation)")
243 (build-system gnu-build-system)
244 (arguments
245 (substitute-keyword-arguments (package-arguments emacs)
246 ((#:phases phases)
247 `(modify-phases ,phases
248 (delete 'install-site-start)))))
249 (inputs
250 `(("ncurses" ,ncurses)))
251 (native-inputs
252 `(("pkg-config" ,pkg-config)))))
253
254(define-public emacs-no-x
4fd540b7 255 (package (inherit emacs)
4fd540b7
LC
256 (name "emacs-no-x")
257 (synopsis "The extensible, customizable, self-documenting text
258editor (console only)")
259 (build-system gnu-build-system)
260 (inputs (fold alist-delete
261 (package-inputs emacs)
262 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
4adde2a9
MW
263 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
264 "libsm"
4fd540b7 265
4adde2a9
MW
266 ;; These depend on libx11, so remove them as well.
267 "libotf" "m17n-lib" "dbus")))))
4fd540b7 268
4a3e602c
TUBK
269(define-public emacs-no-x-toolkit
270 (package (inherit emacs)
271 (name "emacs-no-x-toolkit")
272 (synopsis "The extensible, customizable, self-documenting text
273editor (without an X toolkit)" )
71f57158 274 (build-system gnu-build-system)
388fd01b
MW
275 (inputs (append `(("inotify-tools" ,inotify-tools))
276 (alist-delete "gtk+" (package-inputs emacs))))
277 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
278 (package-arguments emacs)))))
4a3e602c 279
f906d30c
CAW
280(define-public guile-emacs
281 (package (inherit emacs)
282 (name "guile-emacs")
283 (version "20150512.41120e0")
284 (source (origin
285 (method git-fetch)
286 (uri (git-reference
287 (url "git://git.hcoop.net/git/bpt/emacs.git")
288 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
995b7069 289 (file-name (string-append name "-" version "-checkout"))
68cb962a 290 (patches (search-patches "guile-emacs-fix-configure.patch"))
f906d30c
CAW
291 (sha256
292 (base32
293 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
294 (native-inputs
295 `(("autoconf" ,autoconf)
296 ("automake" ,automake)
297 ("guile" ,guile-for-guile-emacs)
298 ,@(package-native-inputs emacs)))
299 (arguments
300 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
301 #:parallel-build? #f
302 ;; Tests aren't passing for now.
303 #:tests? #f
304 ,@(package-arguments emacs))
305 ((#:phases phases)
306 `(modify-phases ,phases
307 (add-after 'unpack 'autogen
308 (lambda _
68cb962a
JN
309 (zero? (system* "sh" "autogen.sh"))))
310 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
311 (add-before 'build 'make-deps-dir
312 (lambda _
313 (zero? (system* "mkdir" "-p" "src/deps"))))))))))
f906d30c 314
4f028c8f
LC
315\f
316;;;
317;;; Emacs hacking.
318;;;
319
320(define-public geiser
321 (package
322 (name "geiser")
e9c3a780 323 (version "0.10")
4f028c8f
LC
324 (source (origin
325 (method url-fetch)
cf8f58b2
LC
326 (uri (string-append "mirror://savannah/geiser/" version
327 "/geiser-" version ".tar.gz"))
4f028c8f 328 (sha256
1f8ad12a 329 (base32
e9c3a780 330 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
4f028c8f 331 (build-system gnu-build-system)
d51cafb0 332 (arguments
dc1d3cde
KK
333 '(#:phases
334 (modify-phases %standard-phases
335 (add-after 'install 'post-install
336 (lambda* (#:key outputs #:allow-other-keys)
337 (symlink "geiser-install.el"
338 (string-append (assoc-ref outputs "out")
339 "/share/emacs/site-lisp/"
340 "geiser-autoloads.el"))
341 #t)))))
bc96a8b5 342 (inputs `(("guile" ,guile-2.2)))
b8fc3622 343 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 344 (home-page "https://nongnu.org/geiser/")
4f028c8f
LC
345 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
346 (description
9586011d
LC
347 "Geiser is a collection of Emacs major and minor modes that conspire with
348one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
349continuously running Scheme interpreter takes the center of the stage in
350Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
351implementation, Emacs and, ultimately, the schemer, giving them access to live
352metadata.")
f61e0e79 353 (license license:bsd-3)))
9a4c9715 354
fe4163f3
MW
355(define-public paredit
356 (package
967cfd18 357 (name "emacs-paredit")
c181b870 358 (version "24")
fe4163f3 359 (source (origin
c181b870
AK
360 (method url-fetch)
361 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
362 version ".el"))
363 (sha256
364 (base32
365 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 366 (build-system emacs-build-system)
fe4163f3
MW
367 (home-page "http://mumble.net/~campbell/emacs/paredit/")
368 (synopsis "Emacs minor mode for editing parentheses")
369 (description
370 "ParEdit (paredit.el) is a minor mode for performing structured editing
371of S-expression data. The typical example of this would be Lisp or Scheme
372source code.
373
374ParEdit helps **keep parentheses balanced** and adds many keys for moving
375S-expressions and moving around in S-expressions. Its behavior can be jarring
376for those who may want transient periods of unbalanced parentheses, such as
377when typing parentheses directly or commenting out code line by line.")
f61e0e79 378 (license license:gpl3+)))
fe4163f3 379
2f910ef6
LC
380(define-public git-modes
381 (package
6d21272b 382 (name "emacs-git-modes")
370ae985 383 (version "1.2.7")
2f910ef6
LC
384 (source (origin
385 (method url-fetch)
386 (uri (string-append
387 "https://github.com/magit/git-modes/archive/"
388 version ".tar.gz"))
8fd3c1ff 389 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
390 (sha256
391 (base32
370ae985 392 "1mzl70s0xyysnjq1j10mc5vn9i022n5vd82kxsgp4xxqq7gc4qnx"))))
3d01b293 393 (build-system emacs-build-system)
2f910ef6
LC
394 (home-page "https://github.com/magit/git-modes")
395 (synopsis "Emacs major modes for Git configuration files")
396 (description
397 "This package provides Emacs major modes for editing various Git
398configuration files, such as .gitattributes, .gitignore, and .git/config.")
399 (license license:gpl3+)))
400
6d21272b
AK
401(define-public git-modes/old-name
402 (deprecated-package "git-modes" git-modes))
403
2b0e4300
AK
404(define-public emacs-with-editor
405 (package
406 (name "emacs-with-editor")
cec021d1 407 (version "2.7.2")
2b0e4300
AK
408 (source (origin
409 (method url-fetch)
410 (uri (string-append
411 "https://github.com/magit/with-editor/archive/v"
412 version ".tar.gz"))
413 (file-name (string-append name "-" version ".tar.gz"))
414 (sha256
415 (base32
cec021d1 416 "1jqi3axcs0cb1pcv1jxxc2a09v6psrm33wwl6hmyshzl8kbxs2mv"))))
2b0e4300
AK
417 (build-system emacs-build-system)
418 (propagated-inputs
419 `(("emacs-dash" ,emacs-dash)))
420 (home-page "https://github.com/magit/with-editor")
421 (synopsis "Emacs library for using Emacsclient as EDITOR")
422 (description
423 "This package provides an Emacs library to use the Emacsclient as
424@code{$EDITOR} of child processes, making sure they know how to call home.
425For remote processes a substitute is provided, which communicates with Emacs
426on stdout instead of using a socket as the Emacsclient does.")
427 (license license:gpl3+)))
428
9a4c9715
MW
429(define-public magit
430 (package
431 (name "magit")
f61719d1 432 (version "2.12.1")
9a4c9715
MW
433 (source (origin
434 (method url-fetch)
fac8b30b
MW
435 (uri (string-append
436 "https://github.com/magit/magit/releases/download/"
437 version "/" name "-" version ".tar.gz"))
9a4c9715 438 (sha256
7e4871ba 439 (base32
f61719d1 440 "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3"))))
9a4c9715 441 (build-system gnu-build-system)
2c047b4a 442 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 443 ("emacs" ,emacs-minimal)))
46bd4515
AG
444 (inputs
445 `(("git" ,git)
446 ("perl" ,perl)))
3db5ed11
AK
447 (propagated-inputs
448 `(("dash" ,emacs-dash)
f61719d1
AK
449 ("ghub" ,emacs-ghub)
450 ("magit-popup" ,emacs-magit-popup)
3db5ed11 451 ("with-editor" ,emacs-with-editor)))
9a4c9715 452 (arguments
84fe4420 453 `(#:test-target "test"
55f29c39 454 #:tests? #f ; tests are not included in the release
7e4871ba 455
55f29c39
AK
456 #:make-flags
457 (list (string-append "PREFIX=" %output)
458 ;; Don't put .el files in a sub-directory.
459 (string-append "lispdir=" %output "/share/emacs/site-lisp")
460 (string-append "DASH_DIR="
461 (assoc-ref %build-inputs "dash")
462 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11 463 ,(package-version emacs-dash))
f61719d1
AK
464 (string-append "GHUB_DIR="
465 (assoc-ref %build-inputs "ghub")
466 "/share/emacs/site-lisp/guix.d/ghub-"
467 ,(package-version emacs-ghub))
468 (string-append "MAGIT_POPUP_DIR="
469 (assoc-ref %build-inputs "magit-popup")
470 "/share/emacs/site-lisp/guix.d/magit-popup-"
471 ,(package-version emacs-magit-popup))
3db5ed11
AK
472 (string-append "WITH_EDITOR_DIR="
473 (assoc-ref %build-inputs "with-editor")
474 "/share/emacs/site-lisp/guix.d/with-editor-"
475 ,(package-version emacs-with-editor)))
d41a8a07 476
9a4c9715 477 #:phases
c466bfd1 478 (modify-phases %standard-phases
55f29c39 479 (delete 'configure)
c466bfd1
LC
480 (add-before
481 'build 'patch-exec-paths
482 (lambda* (#:key inputs #:allow-other-keys)
84fe4420 483 (let ((perl (assoc-ref inputs "perl")))
46bd4515
AG
484 (substitute* "lisp/magit-sequence.el"
485 (("perl") (string-append perl "/bin/perl")))
55f29c39 486 #t))))))
f61719d1 487 (home-page "https://magit.vc/")
9a4c9715
MW
488 (synopsis "Emacs interface for the Git version control system")
489 (description
490 "With Magit, you can inspect and modify your Git repositories with Emacs.
491You can review and commit the changes you have made to the tracked files, for
492example, and you can browse the history of past changes. There is support for
493cherry picking, reverting, merging, rebasing, and other common Git
494operations.")
f61e0e79 495 (license license:gpl3+)))
18d26210 496
97cc51f8
LC
497(define-public magit-svn
498 (package
499 (name "magit-svn")
5ccd8f40 500 (version "2.2.0")
97cc51f8 501 (source (origin
be379ee7
AK
502 (method url-fetch)
503 (uri (string-append
504 "https://github.com/magit/magit-svn/archive/"
505 version ".tar.gz"))
506 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
507 (sha256
508 (base32
5ccd8f40 509 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
97cc51f8 510 (build-system trivial-build-system)
b8fc3622 511 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
512 ("tar" ,tar)
513 ("gzip" ,gzip)))
514 (propagated-inputs `(("dash" ,emacs-dash)
5ccd8f40 515 ("with-editor" ,emacs-with-editor)
be379ee7 516 ("magit" ,magit)))
97cc51f8
LC
517 (arguments
518 `(#:modules ((guix build utils)
519 (guix build emacs-utils))
520
521 #:builder
522 (begin
523 (use-modules (guix build utils)
524 (guix build emacs-utils))
525
be379ee7
AK
526 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
527 "/bin/tar"))
528 (PATH (string-append (assoc-ref %build-inputs "gzip")
529 "/bin"))
530 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
531 "/bin/emacs"))
532 (magit (string-append (assoc-ref %build-inputs "magit")
533 "/share/emacs/site-lisp"))
be379ee7
AK
534 (dash (string-append (assoc-ref %build-inputs "dash")
535 "/share/emacs/site-lisp/guix.d/dash-"
536 ,(package-version emacs-dash)))
5ccd8f40
LC
537 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
538 "/share/emacs/site-lisp/guix.d/with-editor-"
539 ,(package-version emacs-with-editor)))
97cc51f8
LC
540 (source (assoc-ref %build-inputs "source"))
541 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7
AK
542 (setenv "PATH" PATH)
543 (system* tar "xvf" source)
96c46210
LC
544
545 (install-file (string-append ,name "-" ,version "/magit-svn.el")
546 lisp-dir)
97cc51f8
LC
547
548 (with-directory-excursion lisp-dir
549 (parameterize ((%emacs emacs))
550 (emacs-generate-autoloads ,name lisp-dir)
551 (setenv "EMACSLOADPATH"
5ccd8f40 552 (string-append ":" magit ":" dash ":" with-editor))
97cc51f8
LC
553 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
554 (home-page "https://github.com/magit/magit-svn")
555 (synopsis "Git-SVN extension to Magit")
556 (description
557 "This package is an extension to Magit, the Git Emacs mode, providing
558support for Git-SVN.")
559 (license license:gpl3+)))
560
c1562e3d
AK
561(define-public emacs-magit-popup
562 (package
563 (name "emacs-magit-popup")
1f22a544 564 (version "2.12.3")
c1562e3d
AK
565 (source (origin
566 (method url-fetch)
567 (uri (string-append
09f7c41d
AK
568 "https://github.com/magit/magit-popup/archive/v"
569 version ".tar.gz"))
570 (file-name (string-append name "-" version ".tar.gz"))
c1562e3d
AK
571 (sha256
572 (base32
1f22a544 573 "1kz6vj67awkwf9y2wj6m3l2him3znm08z6bkdvnmfr6rwd96dr39"))))
c1562e3d 574 (build-system emacs-build-system)
09f7c41d
AK
575 (arguments
576 `(#:phases
577 (modify-phases %standard-phases
578 (add-before 'install 'make-info
579 (lambda _
580 (zero? (system* "make" "info")))))))
581 (native-inputs
582 `(("texinfo" ,texinfo)))
c1562e3d
AK
583 (propagated-inputs
584 `(("emacs-dash" ,emacs-dash)))
09f7c41d 585 (home-page "https://github.com/magit/magit-popup")
c1562e3d
AK
586 (synopsis "Define prefix-infix-suffix command combos")
587 (description
588 "This library implements a generic interface for toggling switches and
589setting options and then invoking an Emacs command which does something with
590these arguments. The prototypical use is for the command to call an external
591process, passing on the arguments as command line arguments.")
592 (license license:gpl3+)))
593
0a287457
AK
594(define-public emacs-ghub
595 (package
596 (name "emacs-ghub")
597 (version "2.0.0")
598 (source (origin
599 (method url-fetch)
600 (uri (string-append
601 "https://github.com/magit/ghub/archive/v"
602 version ".tar.gz"))
603 (file-name (string-append name "-" version ".tar.gz"))
604 (sha256
605 (base32
606 "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc"))))
607 (build-system emacs-build-system)
608 (arguments
609 `(#:phases
610 (modify-phases %standard-phases
611 (add-before 'install 'make-info
612 (lambda _
613 (zero? (system* "make" "info")))))))
614 (native-inputs
615 `(("texinfo" ,texinfo)))
616 (home-page "https://github.com/magit/ghub")
617 (synopsis "Emacs client library for Github API and Gitlab API")
618 (description
619 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
620which are the libraries that provide basic support for using the Github and
621Gitlab APIs from Emacs packages. It abstracts access to API resources using
622only a handful of functions that are not resource-specific.")
623 (license license:gpl3+)))
624
00f4bd50
FB
625(define-public haskell-mode
626 (package
627 (name "haskell-mode")
08fc0d68 628 (version "16.1")
00f4bd50
FB
629 (source (origin
630 (method url-fetch)
631 (file-name (string-append name "-" version ".tar.gz"))
632 (uri (string-append
633 "https://github.com/haskell/haskell-mode/archive/v"
634 version ".tar.gz"))
635 (sha256
08fc0d68
FB
636 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
637 (inputs
638 `(("emacs-el-search" ,emacs-el-search) ; for tests
639 ("emacs-stream" ,emacs-stream))) ; for tests
640 (propagated-inputs
641 `(("emacs-dash" ,emacs-dash)))
00f4bd50 642 (native-inputs
b8fc3622 643 `(("emacs" ,emacs-minimal)
6aaf3899 644 ("texinfo" ,texinfo)))
00f4bd50
FB
645 (build-system gnu-build-system)
646 (arguments
647 `(#:make-flags (list (string-append "EMACS="
648 (assoc-ref %build-inputs "emacs")
649 "/bin/emacs"))
08fc0d68
FB
650 #:modules ((ice-9 match)
651 (srfi srfi-26)
652 ,@%gnu-build-system-modules)
00f4bd50
FB
653 #:phases
654 (modify-phases %standard-phases
655 (delete 'configure)
656 (add-before
657 'build 'pre-build
658 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68 659 (define (el-dir store-dir)
69611d3e 660 (match (find-files store-dir "\\.el$")
08fc0d68
FB
661 ((f1 f2 ...) (dirname f1))
662 (_ "")))
663
00f4bd50 664 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
665 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
666
00f4bd50 667 (setenv "SHELL" "sh")
08fc0d68
FB
668 (setenv "EMACSLOADPATH"
669 (string-concatenate
670 (map (match-lambda
671 (((? emacs-prefix? name) . dir)
672 (string-append (el-dir dir) ":"))
673 (_ ""))
674 inputs)))
00f4bd50 675 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
676 (substitute* "tests/haskell-code-conventions.el"
677 ;; Function name recently changed in "emacs-el-search".
678 (("el-search--search-pattern") "el-search-forward")
679 ;; Don't contact home.
680 (("\\(when \\(>= emacs-major-version 25\\)")
681 "(require 'el-search) (when nil"))
00f4bd50
FB
682 #t)))
683 (replace
684 'install
685 (lambda* (#:key outputs #:allow-other-keys)
686 (let* ((out (assoc-ref outputs "out"))
687 (el-dir (string-append out "/share/emacs/site-lisp"))
688 (doc (string-append
689 out "/share/doc/haskell-mode-" ,version))
690 (info (string-append out "/share/info")))
691 (define (copy-to-dir dir files)
96c46210
LC
692 (for-each (lambda (f)
693 (install-file f dir))
694 files))
00f4bd50
FB
695
696 (with-directory-excursion "doc"
697 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
698 (error "makeinfo failed"))
96c46210 699 (install-file "haskell-mode.info" info))
00f4bd50
FB
700 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
701 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 702 ;; These are part of other packages.
00f4bd50 703 (with-directory-excursion el-dir
08fc0d68 704 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
705 #t))))))
706 (home-page "https://github.com/haskell/haskell-mode")
707 (synopsis "Haskell mode for Emacs")
708 (description
709 "This is an Emacs mode for editing, debugging and developing Haskell
710programs.")
711 (license license:gpl3+)))
712
6e3fdbbe
LC
713(define-public flycheck
714 (package
715 (name "emacs-flycheck")
6ae0fd21 716 (version "31")
6e3fdbbe
LC
717 (source (origin
718 (method url-fetch)
0b928076
AK
719 (uri (string-append
720 "https://github.com/flycheck/flycheck/releases/download/"
721 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
722 (sha256
723 (base32
6ae0fd21 724 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))))
6e3fdbbe
LC
725 (build-system emacs-build-system)
726 (propagated-inputs
d0a52052 727 `(("emacs-dash" ,emacs-dash)))
6e3fdbbe
LC
728 (home-page "https://www.flycheck.org")
729 (synopsis "On-the-fly syntax checking")
730 (description
731 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
732replacement for the older Flymake extension which is part of GNU Emacs, with
733many improvements and additional features.
734
735Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
736checking for over 30 programming and markup languages with more than 70
737different tools. It highlights errors and warnings inline in the buffer, and
738provides an optional IDE-like error list.")
739 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
740
18d26210
MW
741\f
742;;;
743;;; Web browsing.
744;;;
745
746(define-public emacs-w3m
747 (package
748 (name "emacs-w3m")
2e74b9f4 749 (version "1.4.538+0.20141022")
18d26210
MW
750 (source (origin
751 (method url-fetch)
752 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
753 version ".orig.tar.gz"))
754 (sha256
2e74b9f4
AK
755 (base32
756 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
18d26210 757 (build-system gnu-build-system)
6aaf3899 758 (native-inputs `(("autoconf" ,autoconf)
b8fc3622 759 ("emacs" ,emacs-minimal)))
18d26210 760 (inputs `(("w3m" ,w3m)
6aaf3899 761 ("imagemagick" ,imagemagick)))
18d26210 762 (arguments
caaf1933 763 `(#:modules ((guix build gnu-build-system)
18d26210
MW
764 (guix build utils)
765 (guix build emacs-utils))
8ff3df5b 766 #:imported-modules (,@%gnu-build-system-modules
18d26210
MW
767 (guix build emacs-utils))
768 #:configure-flags
769 (let ((out (assoc-ref %outputs "out")))
770 (list (string-append "--with-lispdir="
771 out "/share/emacs/site-lisp")
772 (string-append "--with-icondir="
2e74b9f4
AK
773 out "/share/images/emacs-w3m")
774 ;; Leave .el files uncompressed, otherwise GC can't
775 ;; identify run-time dependencies. See
776 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
777 "--without-compress-install"))
18d26210
MW
778 #:tests? #f ; no check target
779 #:phases
932ece65
AK
780 (modify-phases %standard-phases
781 (add-after 'unpack 'autoconf
782 (lambda _
783 (zero? (system* "autoconf"))))
784 (add-before 'build 'patch-exec-paths
785 (lambda* (#:key inputs outputs #:allow-other-keys)
786 (let ((out (assoc-ref outputs "out"))
787 (w3m (assoc-ref inputs "w3m"))
788 (imagemagick (assoc-ref inputs "imagemagick"))
789 (coreutils (assoc-ref inputs "coreutils")))
790 (emacs-substitute-variables "w3m.el"
791 ("w3m-command" (string-append w3m "/bin/w3m"))
792 ("w3m-touch-command"
793 (string-append coreutils "/bin/touch"))
794 ("w3m-image-viewer"
795 (string-append imagemagick "/bin/display"))
796 ("w3m-icon-directory"
797 (string-append out "/share/images/emacs-w3m")))
798 (emacs-substitute-variables "w3m-image.el"
799 ("w3m-imagick-convert-program"
800 (string-append imagemagick "/bin/convert"))
801 ("w3m-imagick-identify-program"
802 (string-append imagemagick "/bin/identify")))
803 #t)))
804 (replace 'install
805 (lambda* (#:key outputs #:allow-other-keys)
806 (and (zero? (system* "make" "install" "install-icons"))
807 (with-directory-excursion
808 (string-append (assoc-ref outputs "out")
809 "/share/emacs/site-lisp")
810 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
811 (symlink "w3m-load.el" "w3m-autoloads.el")
812 #t)))))))
18d26210
MW
813 (home-page "http://emacs-w3m.namazu.org/")
814 (synopsis "Simple Web browser for Emacs based on w3m")
815 (description
35b9e423 816 "Emacs-w3m is an emacs interface for the w3m web browser.")
f61e0e79 817 (license license:gpl2+)))
89925972
MW
818
819(define-public emacs-wget
820 (package
821 (name "emacs-wget")
822 (version "0.5.0")
823 (source (origin
824 (method url-fetch)
825 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
826 version ".orig.tar.gz"))
827 (sha256
828 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
829 (build-system gnu-build-system)
6aaf3899 830 (inputs `(("wget" ,wget)))
b8fc3622 831 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 832 (arguments
caaf1933 833 `(#:modules ((guix build gnu-build-system)
89925972
MW
834 (guix build utils)
835 (guix build emacs-utils))
caaf1933 836 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
837 (guix build emacs-utils))
838 #:tests? #f ; no check target
839 #:phases
dc1d3cde
KK
840 (modify-phases %standard-phases
841 (replace 'configure
842 (lambda* (#:key outputs #:allow-other-keys)
843 (substitute* "Makefile"
844 (("/usr/local") (assoc-ref outputs "out"))
845 (("/site-lisp/emacs-wget") "/site-lisp"))
846 #t))
847 (add-before 'build 'patch-exec-paths
848 (lambda* (#:key inputs outputs #:allow-other-keys)
849 (let ((wget (assoc-ref inputs "wget")))
850 (emacs-substitute-variables "wget.el"
851 ("wget-command" (string-append wget "/bin/wget"))))
852 #t))
853 (add-after 'install 'post-install
854 (lambda* (#:key outputs #:allow-other-keys)
855 (emacs-generate-autoloads
856 "wget" (string-append (assoc-ref outputs "out")
857 "/share/emacs/site-lisp/"))
858 #t)))))
89925972 859 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 860 (synopsis "Simple file downloader for Emacs based on wget")
89925972 861 (description
35b9e423 862 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 863 (license license:gpl2+)))
77c9286d
LC
864
865\f
866;;;
867;;; Multimedia.
868;;;
869
870(define-public emms
871 (package
d06d4d7b 872 (name "emacs-emms")
6a65b701 873 (version "5.0")
77c9286d
LC
874 (source (origin
875 (method url-fetch)
876 (uri (string-append "mirror://gnu/emms/emms-"
877 version ".tar.gz"))
878 (sha256
879 (base32
6a65b701 880 "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
77c9286d
LC
881 (modules '((guix build utils)))
882 (snippet
883 '(substitute* "Makefile"
884 (("/usr/bin/install-info")
885 ;; No need to use 'install-info' since it would create a
886 ;; useless 'dir' file.
887 "true")
888 (("^INFODIR=.*")
889 ;; Install Info files to $out/share/info, not $out/info.
890 "INFODIR := $(PREFIX)/share/info\n")
891 (("/site-lisp/emms")
892 ;; Install directly in share/emacs/site-lisp, not in a
893 ;; sub-directory.
894 "/site-lisp")
895 (("^all: (.*)\n" _ rest)
896 ;; Build 'emms-print-metadata'.
897 (string-append "all: " rest " emms-print-metadata\n"))))))
898 (build-system gnu-build-system)
899 (arguments
caaf1933 900 `(#:modules ((guix build gnu-build-system)
77c9286d
LC
901 (guix build utils)
902 (guix build emacs-utils))
caaf1933 903 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
904 (guix build emacs-utils))
905
2fe176be
EF
906 #:phases
907 (modify-phases %standard-phases
908 (replace 'configure
909 (lambda* (#:key inputs outputs #:allow-other-keys)
910 (let ((out (assoc-ref outputs "out"))
66e55700 911 (flac (assoc-ref inputs "flac"))
2fe176be
EF
912 (vorbis (assoc-ref inputs "vorbis-tools"))
913 (alsa (assoc-ref inputs "alsa-utils"))
914 (mpg321 (assoc-ref inputs "mpg321"))
915 (mp3info (assoc-ref inputs "mp3info")))
916 ;; Specify the installation directory.
917 (substitute* "Makefile"
918 (("PREFIX=.*$")
919 (string-append "PREFIX := " out "\n")))
920
921 (setenv "SHELL" (which "sh"))
922 (setenv "CC" "gcc")
923
924 ;; Specify the absolute file names of the various
925 ;; programs so that everything works out-of-the-box.
926 (with-directory-excursion "lisp"
927 (emacs-substitute-variables
928 "emms-player-mpg321-remote.el"
929 ("emms-player-mpg321-remote-command"
930 (string-append mpg321 "/bin/mpg321")))
931 (substitute* "emms-player-simple.el"
932 (("\"ogg123\"")
933 (string-append "\"" vorbis "/bin/ogg123\"")))
66e55700
MC
934 (substitute* "emms-player-simple.el"
935 (("\"mpg321\"")
936 (string-append "\"" mpg321 "/bin/mpg321\"")))
2fe176be
EF
937 (emacs-substitute-variables "emms-info-ogginfo.el"
938 ("emms-info-ogginfo-program-name"
939 (string-append vorbis "/bin/ogginfo")))
940 (emacs-substitute-variables "emms-info-libtag.el"
941 ("emms-info-libtag-program-name"
942 (string-append out "/bin/emms-print-metadata")))
943 (emacs-substitute-variables "emms-info-mp3info.el"
944 ("emms-info-mp3info-program-name"
945 (string-append mp3info "/bin/mp3info")))
66e55700
MC
946 (emacs-substitute-variables "emms-info-metaflac.el"
947 ("emms-info-metaflac-program-name"
948 (string-append flac "/bin/metaflac")))
949 (emacs-substitute-variables "emms-source-file.el"
950 ("emms-source-file-gnu-find" (which "find")))
2fe176be
EF
951 (substitute* "emms-volume-amixer.el"
952 (("\"amixer\"")
953 (string-append "\"" alsa "/bin/amixer\"")))
954 (substitute* "emms-tag-editor.el"
955 (("\"mp3info\"")
956 (string-append "\"" mp3info "/bin/mp3info\"")))))))
957 (add-before 'install 'pre-install
958 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 959 ;; The 'install' rule expects the target directories to exist.
2fe176be 960 (let* ((out (assoc-ref outputs "out"))
c3a10d30 961 (bin (string-append out "/bin"))
2fe176be 962 (man1 (string-append out "/share/man/man1")))
c3a10d30 963 (mkdir-p bin)
2fe176be
EF
964 (mkdir-p man1)
965 #t)))
966 (add-after 'install 'post-install
967 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 968 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
969 (symlink "emms-auto.el"
970 (string-append out "/share/emacs/site-lisp/"
c3a10d30 971 "emms-autoloads.el"))))))
77c9286d 972 #:tests? #f))
b8fc3622 973 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 974 ("texinfo" ,texinfo)))
c72aed6d 975 (inputs `(("alsa-utils" ,alsa-utils)
66e55700 976 ("flac" ,flac) ;for metaflac
77c9286d
LC
977 ("vorbis-tools" ,vorbis-tools)
978 ("mpg321" ,mpg321)
979 ("taglib" ,taglib)
980 ("mp3info" ,mp3info)))
38cb4766 981 (properties '((upstream-name . "emms")))
77c9286d
LC
982 (synopsis "Emacs Multimedia System")
983 (description
984 "EMMS is the Emacs Multimedia System. It is a small front-end which
985can control one of the supported external players. Thus, it supports
986whatever formats are supported by your music player. It also
987supports tagging and playlist management, all behind a clean and
988light user interface.")
6fd52309 989 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 990 (license license:gpl3+)))
c7e553a3 991
1095bd1d
RW
992(define-public emacs-emms-player-mpv
993 (package
994 (name "emacs-emms-player-mpv")
de893dda 995 (version "0.1.0")
1095bd1d
RW
996 (source
997 (origin
998 (method url-fetch)
999 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
1000 version ".tar.gz"))
1001 (file-name (string-append name "-" version ".tar.gz"))
1002 (sha256
1003 (base32
de893dda 1004 "05qwbagc4i7yn7i94r1hdgj6wc5xijy1pxqv08pwsmli9rqj51n9"))))
1095bd1d
RW
1005 (build-system emacs-build-system)
1006 (propagated-inputs
1007 `(("emms" ,emms)))
1008 (home-page "https://github.com/dochang/emms-player-mpv/")
1009 (synopsis "Mpv support for EMMS")
1010 (description
1011 "This package provides an EMMS player that uses mpv. It supports pause
1012and seeking.")
1013 (license license:gpl3+)))
1014
2316078a
RW
1015(define-public emacs-emms-mode-line-cycle
1016 (package
1017 (name "emacs-emms-mode-line-cycle")
1018 (version "0.2.5")
1019 (source
1020 (origin
1021 (method url-fetch)
1022 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1023 "/archive/" version ".tar.gz"))
1024 (file-name (string-append name "-" version ".tar.gz"))
1025 (sha256
1026 (base32
1027 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1028 (build-system emacs-build-system)
1029 (propagated-inputs
1030 `(("emms" ,emms)))
1031 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1032 (synopsis "Display the EMMS mode line as a ticker")
1033 (description
1034 "This is a minor mode for updating the EMMS mode-line string cyclically
1035within a specified width. It is useful for displaying long track titles.")
1036 (license license:gpl3+)))
1037
c7e553a3
LC
1038\f
1039;;;
1040;;; Miscellaneous.
1041;;;
1042
1043(define-public bbdb
1044 (package
1045 (name "bbdb")
1046 (version "3.1.2")
1047 (source (origin
1048 (method url-fetch)
1049 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1050 version ".tar.gz"))
1051 (sha256
1052 (base32
1053 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1054 (modules '((guix build utils)))
1055 (snippet
1056 ;; We don't want to build and install the PDF.
1057 '(substitute* "doc/Makefile.in"
1058 (("^doc_DATA = .*$")
1059 "doc_DATA =\n")))))
1060 (build-system gnu-build-system)
1061 (arguments
dc1d3cde
KK
1062 '(#:phases
1063 (modify-phases %standard-phases
1064 (add-after 'install 'post-install
1065 (lambda* (#:key outputs #:allow-other-keys)
1066 ;; Add an autoloads file with the right name for guix.el.
1067 (let* ((out (assoc-ref outputs "out"))
1068 (site (string-append out "/share/emacs/site-lisp")))
1069 (with-directory-excursion site
1070 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1071 #t)))))
b8fc3622 1072 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 1073 (home-page "https://savannah.nongnu.org/projects/bbdb/")
c7e553a3
LC
1074 (synopsis "Contact management utility for Emacs")
1075 (description
1076 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1077an address book for email and snail mail addresses, phone numbers and the
1078like. It can be linked with various Emacs mail clients (Message and Mail
1079mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1080 (license license:gpl3+)))
78395334 1081
4d3d3bd2
VD
1082(define-public emacs-aggressive-indent
1083 (package
1084 (name "emacs-aggressive-indent")
1085 (version "1.8.3")
1086 (source (origin
1087 (method url-fetch)
1088 (uri (string-append "https://elpa.gnu.org/packages/"
1089 "aggressive-indent-" version ".el"))
1090 (sha256
1091 (base32
1092 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1093 (build-system emacs-build-system)
1094 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1095 (synopsis "Minor mode to aggressively keep your code always indented")
1096 (description
1097 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1098always indented. It reindents after every change, making it more reliable
1099than @code{electric-indent-mode}.")
1100 (license license:gpl2+)))
1101
cf006d2e
CB
1102(define-public emacs-ag
1103 (package
1104 (name "emacs-ag")
1105 (version "0.47")
1106 (source (origin
1107 (method url-fetch)
1108 (uri (string-append
1109 "https://github.com/Wilfred/ag.el/archive/"
1110 version ".tar.gz"))
1111 (file-name (string-append name "-" version ".tar.gz"))
1112 (sha256
1113 (base32
1114 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1115 (build-system emacs-build-system)
1116 (arguments
1117 `(#:phases
1118 (modify-phases %standard-phases
99517d92
GC
1119 (add-before 'install 'make-info
1120 (lambda _
1121 (with-directory-excursion "docs"
1122 (zero? (system* "make" "info")))))
1123 (add-after 'install 'install-info
1124 (lambda* (#:key outputs #:allow-other-keys)
1125 (let* ((out (assoc-ref outputs "out"))
1126 (info (string-append out "/share/info")))
1127 (install-file "docs/_build/texinfo/agel.info" info)
1128 #t))))))
99517d92
GC
1129 (native-inputs
1130 `(("python-sphinx" ,python-sphinx)
1131 ("texinfo" ,texinfo)))
cf006d2e
CB
1132 (propagated-inputs
1133 `(("dash" ,emacs-dash)
86470421
CL
1134 ("s" ,emacs-s)
1135 ;; We need to use 'ag' as the executable on remote systems.
1136 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1137 (home-page "https://github.com/Wilfred/ag.el")
1138 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1139 (description "This package provides the ability to use the silver
1140searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1141include version control system awareness, use of Perl compatible regular
1142expressions, editing the search results directly and searching file names
1143rather than the contents of files.")
1144 (license license:gpl3+)))
1145
b654de6d
AK
1146(define-public emacs-async
1147 (package
1148 (name "emacs-async")
51ef4af6 1149 (version "1.9.2")
b654de6d
AK
1150 (source (origin
1151 (method url-fetch)
f32ffa04 1152 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1153 version ".tar"))
1154 (sha256
1155 (base32
51ef4af6 1156 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
b654de6d 1157 (build-system emacs-build-system)
f32ffa04 1158 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
1159 (synopsis "Asynchronous processing in Emacs")
1160 (description
1161 "This package provides the ability to call asynchronous functions and
1162processes. For example, it can be used to run dired commands (for copying,
1163moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1164as a library for other Emacs packages.")
1165 (license license:gpl3+)))
1166
78395334
FB
1167(define-public emacs-auctex
1168 (package
1169 (name "emacs-auctex")
7f9866a3 1170 (version "12.1.0")
78395334
FB
1171 (source
1172 (origin
1173 (method url-fetch)
1174 (uri (string-append
f32ffa04 1175 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1176 version
1177 ".tar"))
1178 (sha256
1179 (base32
7f9866a3 1180 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
78395334 1181 (build-system emacs-build-system)
a6eafbed
AK
1182 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1183 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1184 (arguments
1185 `(#:emacs ,emacs
1186 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1187 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1188 (native-inputs
1189 `(("perl" ,perl)))
6fd52309 1190 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1191 (synopsis "Integrated environment for TeX")
1192 (description
1193 "AUCTeX is a comprehensive customizable integrated environment for
1194writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1195or XEmacs.")
1196 (license license:gpl3+)))
85ef742c 1197
de2e402b
MM
1198(define-public emacs-autothemer
1199 (package
1200 (name "emacs-autothemer")
1201 (version "0.2.2")
1202 (source
1203 (origin
1204 (method url-fetch)
1205 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1206 version ".tar.gz"))
1207 (file-name (string-append name "-" version ".tar.gz"))
1208 (sha256
1209 (base32
1210 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1211 (build-system emacs-build-system)
1212 (propagated-inputs
1213 `(("emacs-dash" ,emacs-dash)))
1214 (home-page "https://github.com/sebastiansturm/autothemer")
1215 (synopsis "Conveniently create Emacs themes")
1216 (description
1217 "Autothemer provides a thin layer on top of @code{deftheme} and
1218@code{custom-theme-set-faces} that creates a new custom color theme, based on
1219a set of simplified face specifications and a user-supplied color palette")
1220 (license license:gpl3+)))
1221
474e14f7
MC
1222(define-public emacs-howm
1223 (package
1224 (name "emacs-howm")
1225 (version "1.4.4")
1226 (source
1227 (origin
1228 (method url-fetch)
1229 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1230 version ".tar.gz"))
1231 (sha256
1232 (base32
1233 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1234 (build-system gnu-build-system)
1235 (native-inputs
1236 `(("emacs" ,emacs-minimal)))
1237 (arguments
1238 `(#:configure-flags
1239 (list (string-append "--with-howmdir=" %output
1240 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1241 #:modules ((guix build gnu-build-system)
1242 ((guix build emacs-build-system) #:prefix emacs:)
1243 (guix build utils))
1244 #:imported-modules (,@%gnu-build-system-modules
1245 (guix build emacs-build-system)
1246 (guix build emacs-utils))
1247 #:phases
1248 (modify-phases %standard-phases
1249 (add-after 'rename-lispdir 'make-autoloads
1250 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1251 (home-page "http://howm.osdn.jp/")
1252 (synopsis "Note-taking tool for Emacs")
1253 (description "Howm is a note-taking tool for Emacs. Like
1254code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1255searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1256 (license license:gpl1+)))
1257
36890436
VD
1258(define-public emacs-calfw
1259 (package
1260 (name "emacs-calfw")
1261 (version "1.5")
1262 (source
1263 (origin
1264 (method url-fetch)
1265 (uri (string-append
1266 "https://github.com/kiwanami/emacs-calfw/archive/v"
1267 version ".tar.gz"))
1268 (file-name (string-append name "-" version ".tar.gz"))
1269 (sha256
1270 (base32
1271 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1272 (build-system emacs-build-system)
159d10ae
MC
1273 (propagated-inputs
1274 `(("emacs-howm" ,emacs-howm)))
36890436
VD
1275 (home-page "https://github.com/kiwanami/emacs-calfw/")
1276 (synopsis "Calendar framework for Emacs")
1277 (description
9dac2a8e
RW
1278 "This package displays a calendar view with various schedule data in the
1279Emacs buffer.")
36890436
VD
1280 (license license:gpl3+)))
1281
a8d0c9cb
CB
1282(define-public emacs-direnv
1283 (package
1284 (name "emacs-direnv")
1285 (version "1.2.0")
1286 (source
1287 (origin
1288 (method url-fetch)
1289 (uri (string-append
1290 "https://github.com/wbolster/emacs-direnv/archive/"
1291 version ".tar.gz"))
1292 (file-name (string-append name "-" version ".tar.gz"))
1293 (sha256
1294 (base32
1295 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1296 (build-system emacs-build-system)
1297 (propagated-inputs
1298 `(("dash" ,emacs-dash)
1299 ("with-editor" ,emacs-with-editor)))
1300 (home-page "https://github.com/wbolster/emacs-direnv")
1301 (synopsis "Direnv integration for Emacs")
1302 (description
1303 "This package provides support for invoking direnv to get the environment
1304for the current file and updating the environment within Emacs to match.
1305
1306Direnv can be invoked manually, and a global minor mode is included that will
1307update the environment when the active buffer changes.
1308
1309Using emacs-direnv means that programs started from Emacs will use the
1310environment set through Direnv.")
1311 (license license:gpl3+)))
1312
cd5c3979
OP
1313(define-public emacs-ggtags
1314 (package
1315 (name "emacs-ggtags")
1316 (version "0.8.12")
1317 (source
1318 (origin
1319 (method url-fetch)
1320 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1321 version ".el"))
1322 (sha256
1323 (base32
1324 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1325 (build-system emacs-build-system)
1326 (home-page "https://github.com/leoliu/ggtags")
1327 (synopsis "Frontend to the GNU Global source code tagging system")
1328 (description "@code{ggtags} provides a frontend to the GNU Global source
1329code tagging system.
1330
1331Features:
1332
1333@itemize
1334@item Build on @code{compile.el} for asynchronicity and its large feature-set.
1335@item Automatically update Global's tag files when needed with tuning for
1336large source trees.
1337@item Intuitive navigation among multiple matches with mode-line display of
1338current match, total matches and exit status.
1339@item Read tag with completion.
1340@item Show definition at point.
1341@item Jump to #include files.
1342@item Support search history and saving a search to register/bookmark.
1343@item Query replace.
1344@item Manage Global's environment variables on a per-project basis.
1345@item Highlight (definition) tag at point.
1346@item Abbreviated display of file names.
1347@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1348@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1349@code{pygments} backend.
1350@item Support all Global's output formats: @code{grep}, @code{ctags-x},
1351@code{cscope} etc.
1352@item Support projects on remote hosts (e.g. via @code{tramp}).
1353@item Support eldoc.
1354@item Search @code{GTAGSLIBPATH} for references and symbols.
1355@end itemize\n")
1356 (license license:gpl3+)))
1357
21a656f5
CB
1358(define-public emacs-go-mode
1359 (package
1360 (name "emacs-go-mode")
1361 (version "1.5.0")
1362 (source (origin
1363 (method url-fetch)
1364 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1365 "archive/v" version ".tar.gz"))
1366 (file-name (string-append name "-" version ".tar.gz"))
1367 (sha256
1368 (base32
1369 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1370 (build-system emacs-build-system)
1371 (home-page "https://github.com/dominikh/go-mode.el")
1372 (synopsis "Go mode for Emacs")
1373 (description
1374 "This package provides go-mode, an Emacs mode for working with software
1375written in the Go programming language.")
1376 (license license:bsd-3)))
1377
63878730
VD
1378(define-public emacs-google-maps
1379 (package
1380 (name "emacs-google-maps")
1381 (version "1.0.0")
1382 (source (origin
1383 (method url-fetch)
1384 (uri (string-append "https://github.com/jd/google-maps.el/"
1385 "archive/" version ".tar.gz"))
1386 (file-name (string-append name "-" version ".tar.gz"))
1387 (sha256
1388 (base32
1389 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1390 (build-system emacs-build-system)
1391 (home-page "https://github.com/jd/google-maps.el")
1392 (synopsis "Access Google Maps from Emacs")
1393 (description "The @code{google-maps} package allows to display Google
1394Maps directly inside Emacs.")
1395 (license license:gpl3+)))
1396
1f37465a
CB
1397(define-public emacs-graphviz-dot-mode
1398 (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
1399 (revision "1"))
1400 (package
1401 (name "emacs-graphviz-dot-mode")
1402 (version (string-append "0.3.10-" revision "."
1403 (string-take commit 7)))
1404 (source (origin
1405 (method git-fetch)
1406 (uri (git-reference
1407 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1408 (commit commit)))
1409 (file-name (string-append name "-" version "-checkout"))
1410 (sha256
1411 (base32
1412 "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
1413 (build-system emacs-build-system)
1414 (arguments
1415 `(#:phases
1416 (modify-phases %standard-phases
1417 (add-before 'install 'make-info
1418 (lambda* (#:key inputs #:allow-other-keys)
1419 (with-directory-excursion "texinfo"
1420 (substitute* "Makefile"
1421 (("\\/usr\\/bin\\/gzip")
1422 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1423 (zero?
1424 (system* "make"
1425 "clean"
1426 "info"
1427 (string-append "TEXINFODIR="
1428 (assoc-ref inputs "texinfo")
1429 "/bin"))))))
1430 (add-after 'install 'install-info
1431 (lambda* (#:key outputs #:allow-other-keys)
1432 (let* ((out (assoc-ref outputs "out"))
1433 (info (string-append out "/share/info")))
1434 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1435 #t))))))
1436 (native-inputs
1437 `(("texinfo" ,texinfo)
1438 ("gzip" ,gzip)))
1439 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1440 (synopsis "Major mode for editing Graphviz Dot files")
1441 (description
1442 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1443files using the dot syntax, and use Graphviz to convert these files to
1444diagrams.")
1445 (license license:gpl2+))))
1446
85ef742c
FB
1447(define-public emacs-mmm-mode
1448 (package
1449 (name "emacs-mmm-mode")
810cd037 1450 (version "0.5.5")
85ef742c
FB
1451 (source
1452 (origin
1453 (method url-fetch)
1454 (uri (string-append
0c909c05
AK
1455 "https://github.com/purcell/mmm-mode/archive/"
1456 version ".tar.gz"))
1457 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1458 (sha256
1459 (base32
810cd037 1460 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
0c909c05
AK
1461 (build-system gnu-build-system)
1462 (arguments
1463 '(#:phases
1464 (modify-phases %standard-phases
1465 (add-after 'unpack 'autogen
1466 (lambda _
1467 (zero? (system* "sh" "autogen.sh")))))))
1468 (native-inputs
1469 `(("autoconf" ,autoconf)
1470 ("automake" ,automake)
b8fc3622 1471 ("emacs" ,emacs-minimal)
0c909c05 1472 ("texinfo" ,texinfo)))
85ef742c 1473 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1474 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1475 (description
0c909c05 1476 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1477single buffer.")
1478 (license license:gpl3+)))
ec9825d6 1479
060348d2
AK
1480(define-public emacs-tablist
1481 (package
1482 (name "emacs-tablist")
1483 (version "0.70")
1484 (source (origin
1485 (method url-fetch)
1486 (uri (string-append
1487 "https://github.com/politza/tablist/archive/v"
1488 version ".tar.gz"))
1489 (file-name (string-append name "-" version ".tar.gz"))
1490 (sha256
1491 (base32
1492 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1493 (build-system emacs-build-system)
1494 (home-page "https://github.com/politza/tablist")
1495 (synopsis "Extension for @code{tabulated-list-mode}")
1496 (description "Tablist is the Emacs package that provides several
1497additional features to @code{tabulated-list-mode}: it adds marks,
1498filters, new key bindings and faces. It can be enabled by
1499@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1500 (license license:gpl3+)))
1501
ec9825d6
RW
1502(define-public emacs-pdf-tools
1503 (package
1504 (name "emacs-pdf-tools")
1210046d 1505 (version "0.80")
ec9825d6
RW
1506 (source (origin
1507 (method url-fetch)
1508 (uri (string-append
1509 "https://github.com/politza/pdf-tools/archive/v"
1510 version ".tar.gz"))
1511 (file-name (string-append name "-" version ".tar.gz"))
1512 (sha256
1513 (base32
1210046d 1514 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
ec9825d6
RW
1515 (build-system gnu-build-system)
1516 (arguments
1517 `(#:tests? #f ; there are no tests
1518 #:modules ((guix build gnu-build-system)
1bcae5c5 1519 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1520 (guix build utils)
1521 (guix build emacs-utils))
1522 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1523 (guix build emacs-build-system)
ec9825d6
RW
1524 (guix build emacs-utils))
1525 #:phases
1526 (modify-phases %standard-phases
1bcae5c5
AK
1527 ;; Build server side using 'gnu-build-system'.
1528 (add-after 'unpack 'enter-server-dir
1529 (lambda _ (chdir "server") #t))
d10092b8 1530 (add-after 'enter-server-dir 'autogen
1bcae5c5
AK
1531 (lambda _
1532 (zero? (system* "bash" "autogen.sh"))))
1533
1534 ;; Build emacs side using 'emacs-build-system'.
1535 (add-after 'compress-documentation 'enter-lisp-dir
1536 (lambda _ (chdir "../lisp") #t))
1537 (add-after 'enter-lisp-dir 'emacs-patch-variables
1538 (lambda* (#:key outputs #:allow-other-keys)
1539 ;; Set path to epdfinfo program.
1540 (emacs-substitute-variables "pdf-info.el"
1541 ("pdf-info-epdfinfo-program"
1542 (string-append (assoc-ref outputs "out")
1543 "/bin/epdfinfo")))
1544 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1545 ;; upgrading" that pdf-tools tries to perform.
1546 (emacs-substitute-variables "pdf-tools.el"
1547 ("pdf-tools-handle-upgrades" '()))))
259ed58f
MC
1548 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1549 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1550 (add-after 'emacs-set-emacs-load-path 'emacs-install
1bcae5c5
AK
1551 (assoc-ref emacs:%standard-phases 'install))
1552 (add-after 'emacs-install 'emacs-build
1553 (assoc-ref emacs:%standard-phases 'build))
1554 (add-after 'emacs-install 'emacs-make-autoloads
1555 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1556 (native-inputs `(("autoconf" ,autoconf)
1557 ("automake" ,automake)
1558 ("pkg-config" ,pkg-config)
b8fc3622 1559 ("emacs" ,emacs-minimal)))
ec9825d6
RW
1560 (inputs `(("poppler" ,poppler)
1561 ("cairo" ,cairo)
1562 ("glib" ,glib)
1563 ("libpng" ,libpng)
1564 ("zlib" ,zlib)))
1210046d 1565 (propagated-inputs `(("tablist" ,emacs-tablist)))
ec9825d6
RW
1566 (synopsis "Emacs support library for PDF files")
1567 (description
1568 "PDF Tools is, among other things, a replacement of DocView for PDF
1569files. The key difference is that pages are not pre-rendered by
1570e.g. ghostscript and stored in the file-system, but rather created on-demand
1571and stored in memory.")
1572 (home-page "https://github.com/politza/pdf-tools")
1573 (license license:gpl3+)))
d4dbf10e
FB
1574
1575(define-public emacs-dash
1576 (package
1577 (name "emacs-dash")
a31a79bc 1578 (version "2.13.0")
d4dbf10e
FB
1579 (source (origin
1580 (method url-fetch)
1581 (uri (string-append
1582 "https://github.com/magnars/dash.el/archive/"
1583 version ".tar.gz"))
1584 (file-name (string-append name "-" version ".tar.gz"))
1585 (sha256
1586 (base32
a31a79bc 1587 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
d4dbf10e
FB
1588 (build-system emacs-build-system)
1589 (arguments
d1d41db6
MC
1590 `(#:tests? #t
1591 #:test-command '("./run-tests.sh")))
d4dbf10e
FB
1592 (home-page "https://github.com/magnars/dash.el")
1593 (synopsis "Modern list library for Emacs")
1594 (description "This package provides a modern list API library for Emacs.")
1595 (license license:gpl3+)))
85777fe5 1596
753baf77
AK
1597(define-public emacs-bui
1598 (package
1599 (name "emacs-bui")
f6b1dd23 1600 (version "1.1.0")
753baf77
AK
1601 (source (origin
1602 (method url-fetch)
1603 (uri (string-append
1604 "https://github.com/alezost/bui.el/archive/v"
1605 version ".tar.gz"))
1606 (file-name (string-append name "-" version ".tar.gz"))
1607 (sha256
1608 (base32
f6b1dd23 1609 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1610 (build-system emacs-build-system)
1611 (propagated-inputs
1612 `(("dash" ,emacs-dash)))
1613 (home-page "https://github.com/alezost/bui.el")
1614 (synopsis "Buffer interface library for Emacs")
1615 (description
1616 "BUI (Buffer User Interface) is a library for making @code{list} and
1617@code{info} interfaces to display an arbitrary data of the same
1618type, for example: packages, buffers, files, etc.")
1619 (license license:gpl3+)))
1620
64e43c67
AK
1621(define-public emacs-guix
1622 (package
1623 (name "emacs-guix")
65f88296 1624 (version "0.3.4")
64e43c67
AK
1625 (source (origin
1626 (method url-fetch)
1627 (uri (string-append "https://github.com/alezost/guix.el"
1628 "/releases/download/v" version
1629 "/emacs-guix-" version ".tar.gz"))
1630 (sha256
1631 (base32
65f88296 1632 "152zf9vkafmnnf7by5armg165npznb961csgnvr8iwdj3smvivjf"))))
64e43c67
AK
1633 (build-system gnu-build-system)
1634 (arguments
1635 `(#:configure-flags
1636 (let ((guix (assoc-ref %build-inputs "guix"))
1637 (geiser (assoc-ref %build-inputs "geiser"))
1638 (dash (assoc-ref %build-inputs "dash"))
1639 (bui (assoc-ref %build-inputs "bui"))
1640 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1641 (site-lisp "/share/emacs/site-lisp"))
1642 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1643 (car (find-files (string-append guix
1644 "/share/guile/site")
1645 (lambda (file stat)
1646 (string-prefix?
1647 "2."
1648 (basename file)))
1649 #:directories? #t)))
3fb8e281
AK
1650 (string-append "--with-guix-site-ccache-dir="
1651 (car (find-files (string-append guix "/lib/guile")
1652 (lambda (file stat)
1653 (string-prefix?
1654 "2." (basename file)))
1655 #:directories? #t))
1656 "/site-ccache")
64e43c67
AK
1657 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1658 (string-append "--with-dash-lispdir="
1659 dash site-lisp "/guix.d/dash-"
1660 ,(package-version emacs-dash))
1661 (string-append "--with-bui-lispdir="
1662 bui site-lisp "/guix.d/bui-"
1663 ,(package-version emacs-bui))
1664 (string-append "--with-popup-lispdir="
1665 magit-popup site-lisp "/guix.d/magit-popup-"
1666 ,(package-version emacs-magit-popup))))))
1667 (native-inputs
1668 `(("pkg-config" ,pkg-config)
1669 ("emacs" ,emacs-minimal)))
1670 (inputs
b4f8edb7 1671 `(("guile" ,guile-2.2)
64e43c67
AK
1672 ("guix" ,guix)))
1673 (propagated-inputs
1674 `(("geiser" ,geiser)
1675 ("dash" ,emacs-dash)
1676 ("bui" ,emacs-bui)
1677 ("magit-popup" ,emacs-magit-popup)))
78461856 1678 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1679 (synopsis "Emacs interface for GNU Guix")
1680 (description
b2f1f7b0
AK
1681 "Emacs-Guix provides a visual interface, tools and features for the GNU
1682Guix package manager. Particularly, it allows you to do various package
1683management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1684@code{M-x guix-help} command.")
64e43c67
AK
1685 (license license:gpl3+)))
1686
d6e5de1e
RJ
1687(define-public emacs-d-mode
1688 (package
1689 (name "emacs-d-mode")
1690 (version "2.0.8")
1691 (source (origin
1692 (method url-fetch)
1693 (uri (string-append
1694 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1695 "archive/" version ".tar.gz"))
b87047e0 1696 (file-name (string-append name "-" version ".tar.gz"))
d6e5de1e
RJ
1697 (sha256
1698 (base32
1699 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1700 (build-system emacs-build-system)
1701 (propagated-inputs
1702 `(("emacs-undercover" ,emacs-undercover)))
1703 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1704 (synopsis "Emacs major mode for editing D code")
1705 (description "This package provides an Emacs major mode for highlighting
1706code written in the D programming language. This mode is currently known to
1707work with Emacs 24 and 25.")
1708 (license license:gpl2+)))
1709
7f7b38af
VD
1710(define-public emacs-keyfreq
1711 (package
1712 (name "emacs-keyfreq")
1713 (version "20160516.716")
1714 (source
1715 (origin
1716 (method url-fetch)
1717 (uri (string-append "http://melpa.org/packages/keyfreq-"
1718 version ".el"))
1719 (sha256
1720 (base32
1721 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1722 (build-system emacs-build-system)
1723 (home-page "https://github.com/dacap/keyfreq")
1724 (synopsis "Track Emacs command frequencies")
1725 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1726a command.")
1727 (license license:gpl3+)))
1728
6aab6c27
RJ
1729(define-public emacs-olivetti
1730 (package
1731 (name "emacs-olivetti")
1732 (version "1.5.7")
1733 (source (origin
1734 (method url-fetch)
1735 (uri (string-append
1736 "https://stable.melpa.org/packages/olivetti-"
1737 version ".el"))
1738 (sha256
1739 (base32
1740 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1741 (build-system emacs-build-system)
1742 (home-page "https://github.com/rnkn/olivetti")
1743 (synopsis "Emacs minor mode for a nice writing environment")
1744 (description "This package provides an Emacs minor mode that puts writing
1745in the center.")
1746 (license license:gpl3+)))
1747
1075b437
DB
1748(define-public emacs-undo-tree
1749 (package
1750 (name "emacs-undo-tree")
77a7891b 1751 (version "0.6.6")
1075b437
DB
1752 (source (origin
1753 (method git-fetch)
1754 (uri (git-reference
1755 (url "http://dr-qubit.org/git/undo-tree.git")
08e1f38d 1756 (commit (string-append "release/" version))))
1075b437
DB
1757 (file-name (string-append name "-" version "-checkout"))
1758 (sha256
77a7891b 1759 (base32
1760 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1075b437
DB
1761 (build-system emacs-build-system)
1762 (home-page "http://www.dr-qubit.org/emacs.php")
1763 (synopsis "Treat undo history as a tree")
1764 (description "Tree-like interface to Emacs undo system, providing
1765graphical tree presentation of all previous states of buffer that
1766allows easily move between them.")
1767 (license license:gpl3+)))
1768
85777fe5
FB
1769(define-public emacs-s
1770 (package
1771 (name "emacs-s")
4e425584 1772 (version "1.12.0")
85777fe5
FB
1773 (source (origin
1774 (method url-fetch)
1775 (uri (string-append
1776 "https://github.com/magnars/s.el/archive/"
1777 version ".tar.gz"))
1778 (file-name (string-append name "-" version ".tar.gz"))
1779 (sha256
1780 (base32
4e425584 1781 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
85777fe5
FB
1782 (build-system emacs-build-system)
1783 (arguments
d1d41db6
MC
1784 `(#:tests? #t
1785 #:test-command '("./run-tests.sh")))
85777fe5 1786 (home-page "https://github.com/magnars/s.el")
a124bbd2 1787 (synopsis "Emacs string manipulation library")
85777fe5
FB
1788 (description "This package provides an Emacs library for manipulating
1789strings.")
1790 (license license:gpl3+)))
cf9ce01f 1791
070e1fe9
VD
1792(define-public emacs-symon
1793 (package
1794 (name "emacs-symon")
d71b758f 1795 (version "20160630")
070e1fe9
VD
1796 (source
1797 (origin
1798 (method url-fetch)
d71b758f
VD
1799 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1800 version ".tar.gz"))
1801 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1802 (sha256
1803 (base32
d71b758f 1804 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1805 (build-system emacs-build-system)
d71b758f 1806 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1807 (synopsis "Tiny graphical system monitor")
1808 (description
1809 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1810 (license license:gpl2+)))
1811
899bcad3 1812(define-public emacs-sx
582c122e
MC
1813 (let ((version "20180212")
1814 (revision "1")
1815 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1816 (package
1817 (name "emacs-sx")
1818 (version (git-version version revision commit))
1819 (source
1820 (origin
1821 (method git-fetch)
1822 (uri (git-reference
1823 (url "https://github.com/vermiculus/sx.el")
1824 (commit commit)))
1825 (file-name (git-file-name name version))
1826 (sha256
1827 (base32
1828 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1829 (build-system emacs-build-system)
1830 (propagated-inputs
1831 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1832 (home-page "https://github.com/vermiculus/sx.el")
1833 (synopsis "Emacs StackExchange client")
1834 (description
1835 "Emacs StackExchange client. Ask and answer questions on
899bcad3 1836Stack Overflow, Super User, and other StackExchange sites.")
582c122e 1837 (license license:gpl3+))))
899bcad3 1838
cf9ce01f
FB
1839(define-public emacs-f
1840 (package
1841 (name "emacs-f")
2b0ddaaa 1842 (version "0.19.0")
cf9ce01f
FB
1843 (source (origin
1844 (method url-fetch)
1845 (uri (string-append
1846 "https://github.com/rejeep/f.el/archive/v"
1847 version ".tar.gz"))
1848 (file-name (string-append name "-" version ".tar.gz"))
1849 (sha256
1850 (base32
2b0ddaaa 1851 "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
cf9ce01f
FB
1852 (build-system emacs-build-system)
1853 (propagated-inputs
1854 `(("emacs-s" ,emacs-s)
1855 ("emacs-dash" ,emacs-dash)))
7bf837fd 1856 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1857 (synopsis "Emacs API for working with files and directories")
1858 (description "This package provides an Emacs library for working with
1859files and directories.")
1860 (license license:gpl3+)))
48dbeef7 1861
0916dc52
CB
1862(define-public emacs-git-gutter
1863 (package
1864 (name "emacs-git-gutter")
1865 (version "0.90")
1866 (source (origin
1867 (method url-fetch)
1868 (uri (string-append
1869 "https://github.com/syohex/" name "/archive/"
1870 version ".tar.gz"))
1871 (file-name (string-append name "-" version ".tar.gz"))
1872 (sha256
1873 (base32
1874 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1875 (build-system emacs-build-system)
1876 (home-page "https://github.com/syohex/emacs-git-gutter")
1877 (synopsis "See and manage hunks of text in a version control system")
1878 (description
1879 "This package is an Emacs minor mode for displaying and interacting with
1880hunks of text managed in a version control system. Added modified and deleted
1881areas can be indicated with symbols on the edge of the buffer, and commands
1882can be used to move between and perform actions on these hunks.
1883
1884Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1885display and behaviour is easily customisable.")
1886 (license license:gpl3+)))
1887
0b35f11d
RW
1888(define-public emacs-git-timemachine
1889 (package
1890 (name "emacs-git-timemachine")
1891 (version "3.0")
1892 (source
1893 (origin
1894 (method url-fetch)
1895 (uri (string-append "https://github.com/pidu/git-timemachine/"
1896 "archive/" version ".tar.gz"))
1897 (file-name (string-append name "-" version ".tar.gz"))
1898 (sha256
1899 (base32
1900 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1901 (build-system emacs-build-system)
1902 (home-page "https://github.com/pidu/git-timemachine")
1903 (synopsis "Step through historic versions of Git-controlled files")
1904 (description "This package enables you to step through historic versions
1905of files under Git version control from within Emacs.")
1906 (license license:gpl3+)))
1907
26361de4 1908(define-public emacs-minitest
158943f2
CB
1909 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1910 (revision "1"))
1911 (package
1912 (name "emacs-minitest")
1913 (version (git-version "0.8.0" revision commit))
1914 (source (origin
1915 (method git-fetch)
1916 (uri (git-reference
1917 (url "https://github.com/arthurnn/minitest-emacs")
1918 (commit commit)))
1919 (file-name (git-file-name name commit))
1920 (sha256
1921 (base32
1922 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1923 (build-system emacs-build-system)
1924 (arguments
1925 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1926 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1927 (propagated-inputs
1928 `(("emacs-dash" ,emacs-dash)
1929 ("emacs-f" ,emacs-f)))
1930 (home-page "https://github.com/arthurnn/minitest-emacs")
1931 (synopsis "Emacs minitest mode")
1932 (description
1933 "The minitest mode provides commands to run the tests for the current
26361de4
CB
1934file or line, as well as rerunning the previous tests, or all the tests for a
1935project.
1936
1937This package also includes relevant snippets for yasnippet.")
158943f2 1938 (license license:expat))))
26361de4 1939
1c32830b
RW
1940(define-public emacs-el-mock
1941 (package
1942 (name "emacs-el-mock")
1943 (version "1.25.1")
1944 (source
1945 (origin
1946 (method url-fetch)
1947 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1948 "archive/v" version ".tar.gz"))
1949 (file-name (string-append name "-" version ".tar.gz"))
1950 (sha256
1951 (base32
1952 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1953 (build-system emacs-build-system)
7bf837fd 1954 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
1955 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1956 (description
1957 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1958syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1959Expectations, but it can be used in other contexts.")
1960 (license license:gpl3+)))
1961
0c5d837c
RW
1962(define-public emacs-espuds
1963 (package
1964 (name "emacs-espuds")
1965 (version "0.3.3")
1966 (source
1967 (origin
1968 (method url-fetch)
1969 (uri (string-append "https://github.com/ecukes/espuds/"
1970 "archive/v" version ".tar.gz"))
1971 (file-name (string-append name "-" version ".tar.gz"))
1972 (sha256
1973 (base32
1974 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1975 (build-system emacs-build-system)
1976 (propagated-inputs
1977 `(("emacs-s" ,emacs-s)
1978 ("emacs-dash" ,emacs-dash)
1979 ("emacs-f" ,emacs-f)))
7bf837fd 1980 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
1981 (synopsis "Common step definitions for Ecukes")
1982 (description "Espuds is a collection of the most commonly used step
1983definitions for testing with the Ecukes framework.")
1984 (license license:gpl3+)))
1985
bae8e59e
MC
1986(define-public emacs-spark
1987 (let ((version "20160503") ; no proper tag, use date of commit
1988 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
1989 (revision "1"))
1990 (package
1991 (name "emacs-spark")
1992 (version (git-version version revision commit))
1993 (source
1994 (origin
1995 (method git-fetch)
1996 (uri (git-reference
1997 (url "https://github.com/alvinfrancis/spark.git")
1998 (commit commit)))
1999 (file-name (git-file-name name version))
2000 (sha256
2001 (base32
2002 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2003 (build-system emacs-build-system)
2004 (home-page "https://github.com/alvinfrancis/spark")
2005 (synopsis "Sparkline generation library for Emacs Lisp")
2006 (description "@code{emacs-spark} is a sparkline generation library for
2007Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2008port of @code{cl-spark} to Emacs Lisp.")
2009 (license license:expat))))
2010
8bebe734
CB
2011(define-public emacs-es-mode
2012 (package
2013 (name "emacs-es-mode")
c4373a60 2014 (version "4.3.0")
8bebe734
CB
2015 (source (origin
2016 (method url-fetch)
2017 (uri (string-append
2018 "https://github.com/dakrone/es-mode/archive/"
2019 version ".tar.gz"))
2020 (file-name (string-append name "-" version ".tar.gz"))
2021 (sha256
2022 (base32
c4373a60 2023 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
8bebe734
CB
2024 (build-system emacs-build-system)
2025 (propagated-inputs
2026 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2027 ;; to be rendered incorrectly
a262ac68
MC
2028 `(("emacs-dash" ,emacs-dash)
2029 ("emacs-org" ,emacs-org)
2030 ("emacs-spark" ,emacs-spark)))
8bebe734
CB
2031 (home-page "https://github.com/dakrone/es-mode")
2032 (synopsis "Major mode for editing Elasticsearch queries")
2033 (description "@code{es-mode} includes highlighting, completion and
2034indentation support for Elasticsearch queries. Also supported are
2035@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2036be processed through @code{jq}, or in the case of aggregations, can be
2037rendered in to a table. In addition, there is an @code{es-command-center}
2038mode, which displays information about Elasticsearch clusters.")
2039 (license license:gpl3+)))
2040
d0e43782
RW
2041(define-public emacs-expand-region
2042 (package
2043 (name "emacs-expand-region")
61c71171 2044 (version "0.11.0")
d0e43782
RW
2045 (source
2046 (origin
2047 (method url-fetch)
2048 (uri (string-append "https://github.com/magnars/expand-region.el"
2049 "/archive/" version ".tar.gz"))
2050 (file-name (string-append name "-" version ".tar.gz"))
2051 (sha256
2052 (base32
61c71171 2053 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
2054 (build-system emacs-build-system)
2055 (home-page "https://github.com/magnars/expand-region.el")
2056 (synopsis "Increase selected region by semantic units")
2057 (description
2058 "Expand region increases the selected region by semantic units. Just
2059keep pressing the key until it selects what you want. There's also
2060@code{er/contract-region} if you expand too far.")
2061 (license license:gpl3+)))
2062
65568446
RW
2063(define-public emacs-fill-column-indicator
2064 (package
2065 (name "emacs-fill-column-indicator")
2066 (version "1.81")
2067 (source
2068 (origin
2069 (method url-fetch)
2070 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2071 "/archive/v" version ".tar.gz"))
2072 (file-name (string-append name "-" version ".tar.gz"))
2073 (sha256
2074 (base32
2075 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2076 (build-system emacs-build-system)
2077 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2078 (synopsis "Graphically indicate the fill column")
2079 (description
2080 "Fill-column-indicator graphically indicates the location of the fill
2081column by drawing a thin line down the length of the editing window.")
2082 (license license:gpl3+)))
2083
fbc60db8
MC
2084(define-public emacs-grep-a-lot
2085 (package
2086 (name "emacs-grep-a-lot")
2087 (version "1.0.7")
2088 (source (origin
2089 (method git-fetch)
2090 (uri (git-reference
2091 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2092 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2093 (file-name (string-append name "-" version "-checkout"))
2094 (sha256
2095 (base32
2096 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2097 (build-system emacs-build-system)
2098 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2099 (synopsis "Enables multiple grep buffers in Emacs")
2100 (description
2101 "This Emacs package allows managing multiple grep buffers.")
2102 (license license:gpl3+)))
2103
f450d3c5
CB
2104(define-public emacs-inf-ruby
2105 (package
2106 (name "emacs-inf-ruby")
2107 (version "2.5.1")
2108 (source
2109 (origin
2110 (method url-fetch)
2111 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2112 "archive/" version ".tar.gz"))
2113 (file-name (string-append name "-" version ".tar.gz"))
2114 (sha256
2115 (base32
2116 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2117 (build-system emacs-build-system)
2118 (home-page "https://github.com/nonsequitur/inf-ruby")
2119 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2120 (description
2121 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2122for easy interaction with a ruby subprocess. Features include support for
2123detecting specific uses of Ruby, e.g. when using rails, and using a
2124appropriate console.")
2125 (license license:gpl3+)))
2126
7b9769b0
RW
2127(define-public emacs-znc
2128 (package
2129 (name "emacs-znc")
2130 (version "0.0.2")
2131 (source
2132 (origin
2133 (method url-fetch)
2134 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2135 version ".el"))
2136 (sha256
2137 (base32
2138 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2139 (build-system emacs-build-system)
2140 (home-page "https://github.com/sshirokov/ZNC.el")
2141 (synopsis "Make ERC and ZNC get along better")
2142 (description
2143 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2144IRC bouncer with ERC.")
2145 (license license:expat)))
2146
1f9a7097
RW
2147(define-public emacs-shut-up
2148 (package
2149 (name "emacs-shut-up")
2150 (version "0.3.2")
2151 (source
2152 (origin
2153 (method url-fetch)
2154 (uri (string-append "https://github.com/cask/shut-up/"
2155 "archive/v" version ".tar.gz"))
2156 (file-name (string-append name "-" version ".tar.gz"))
2157 (sha256
2158 (base32
2159 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2160 (build-system emacs-build-system)
2161 (home-page "https://github.com/cask/shut-up")
2162 (synopsis "Silence Emacs")
2163 (description "This package silences most output of Emacs when running an
2164Emacs shell script.")
2165 (license license:expat)))
2166
dbe38a3a
RW
2167(define-public emacs-undercover
2168 (package
2169 (name "emacs-undercover")
2170 (version "0.6.0")
2171 (source
2172 (origin
2173 (method url-fetch)
2174 (uri (string-append "https://github.com/sviridov/undercover.el/"
2175 "archive/v" version ".tar.gz"))
2176 (file-name (string-append name "-" version ".tar.gz"))
2177 (sha256
2178 (base32
2179 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2180 (build-system emacs-build-system)
2181 (propagated-inputs
2182 `(("emacs-dash" ,emacs-dash)
2183 ("emacs-shut-up" ,emacs-shut-up)))
2184 (home-page "https://github.com/sviridov/undercover.el")
2185 (synopsis "Test coverage library for Emacs Lisp")
2186 (description
2187 "Undercover is a test coverage library for software written in Emacs
2188Lisp.")
2189 (license license:expat)))
2190
07046e5f
RW
2191(define-public emacs-paren-face
2192 (package
2193 (name "emacs-paren-face")
2194 (version "1.0.0")
2195 (source
2196 (origin
2197 (method url-fetch)
2198 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2199 version ".tar.gz"))
2200 (file-name (string-append name "-" version ".tar.gz"))
2201 (sha256
2202 (base32
2203 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2204 (build-system emacs-build-system)
7bf837fd 2205 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
2206 (synopsis "Face for parentheses in lisp modes")
2207 (description
2208 "This library defines a face named @code{parenthesis} used just for
2209parentheses. The intended purpose of this face is to make parentheses less
2210visible in Lisp code by dimming them. Lispers probably don't need to be
2211constantly made aware of the existence of the parentheses. Dimming them might
2212be even more useful for people new to lisp who have not yet learned to
2213subconsciously blend out the parentheses.")
2214 (license license:gpl3+)))
2215
a46e3c0d
RW
2216(define-public emacs-page-break-lines
2217 (package
2218 (name "emacs-page-break-lines")
2219 (version "0.11")
2220 (source
2221 (origin
2222 (method url-fetch)
2223 (uri (string-append "https://github.com/purcell/page-break-lines/"
2224 "archive/" version ".tar.gz"))
2225 (file-name (string-append name "-" version ".tar.gz"))
2226 (sha256
2227 (base32
2228 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2229 (build-system emacs-build-system)
2230 (home-page "https://github.com/purcell/page-break-lines")
2231 (synopsis "Display page breaks as tidy horizontal lines")
2232 (description
2233 "This library provides a global mode which displays form feed characters
2234as horizontal rules.")
2235 (license license:gpl3+)))
2236
1f8a951b
RW
2237(define-public emacs-simple-httpd
2238 (package
2239 (name "emacs-simple-httpd")
2240 (version "1.4.6")
2241 (source
2242 (origin
2243 (method url-fetch)
2244 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2245 "archive/" version ".tar.gz"))
2246 (file-name (string-append name "-" version ".tar.gz"))
2247 (sha256
2248 (base32
2249 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2250 (build-system emacs-build-system)
2251 (home-page "https://github.com/skeeto/emacs-http-server")
2252 (synopsis "HTTP server in pure Emacs Lisp")
2253 (description
2254 "This package provides a simple HTTP server written in Emacs Lisp to
2255serve files and directory listings.")
2256 (license license:unlicense)))
2257
6c04acaa
RW
2258(define-public emacs-skewer-mode
2259 (package
2260 (name "emacs-skewer-mode")
2261 (version "1.6.2")
2262 (source
2263 (origin
2264 (method url-fetch)
2265 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2266 version ".tar.gz"))
2267 (file-name (string-append name "-" version ".tar.gz"))
2268 (sha256
2269 (base32
2270 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2271 (build-system emacs-build-system)
2272 (propagated-inputs
2273 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2274 ("emacs-js2-mode" ,emacs-js2-mode)))
46f5ae0b 2275 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6c04acaa
RW
2276 (home-page "https://github.com/skeeto/skewer-mode")
2277 (synopsis "Live web development in Emacs")
2278 (description
2279 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2280a web browser. Expressions are sent on-the-fly from an editing buffer to be
2281evaluated in the browser, just like Emacs does with an inferior Lisp process
2282in Lisp modes.")
2283 (license license:unlicense)))
2284
cdba3a84
MC
2285(define-public emacs-string-inflection
2286 (package
2287 (name "emacs-string-inflection")
2288 (version "1.0.6")
2289 (source (origin
2290 (method git-fetch)
2291 (uri (git-reference
2292 (url "https://github.com/akicho8/string-inflection")
2293 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2294 (file-name (string-append name "-" version "-checkout"))
2295 (sha256
2296 (base32
2297 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2298 (build-system emacs-build-system)
2299 (native-inputs
2300 `(("ert-runner" ,ert-runner)))
2301 (arguments
d1d41db6
MC
2302 `(#:tests? #t
2303 #:test-command '("ert-runner")))
cdba3a84
MC
2304 (home-page "https://github.com/akicho8/string-inflection")
2305 (synopsis "Convert symbol names between different naming conventions")
2306 (description
2307 "This Emacs package provides convenient methods for manipulating the
2308naming style of a symbol. It supports different naming conventions such as:
2309
2310@enumerate
2311@item camel case
2312@item Pascal case
2313@item all upper case
2314@item lower case separated by underscore
2315@item etc...
2316@end enumerate\n")
2317 (license license:gpl2+)))
2318
ce9701fb
RW
2319(define-public emacs-stripe-buffer
2320 (package
2321 (name "emacs-stripe-buffer")
2322 (version "0.2.5")
2323 (source
2324 (origin
2325 (method url-fetch)
2326 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2327 "archive/" version ".tar.gz"))
2328 (file-name (string-append name "-" version ".tar.gz"))
2329 (sha256
2330 (base32
2331 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2332 (build-system emacs-build-system)
2333 (home-page "https://github.com/sabof/stripe-buffer/")
2334 (synopsis "Add stripes to list buffers")
2335 (description
2336 "This Emacs package adds faces to add stripes to list buffers and org
2337tables.")
2338 (license license:gpl2+)))
2339
8d810163
RW
2340(define-public emacs-rich-minority
2341 (package
2342 (name "emacs-rich-minority")
2343 (version "1.0.1")
2344 (source
2345 (origin
2346 (method url-fetch)
2347 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2348 "archive/" version ".tar.gz"))
2349 (file-name (string-append name "-" version ".tar.gz"))
2350 (sha256
2351 (base32
2352 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2353 (build-system emacs-build-system)
2354 (home-page "https://github.com/Malabarba/rich-minority")
2355 (synopsis "Clean-up and beautify the list of minor modes")
2356 (description
2357 "This Emacs package hides and/or highlights minor modes in the
2358mode-line.")
2359 (license license:gpl2+)))
2360
8733fc91
CB
2361(define-public emacs-robe
2362 (package
2363 (name "emacs-robe")
2364 (version "0.8.1")
2365 (source
2366 (origin
2367 (method url-fetch)
2368 (uri (string-append "https://github.com/dgutov/robe/"
2369 "archive/" version ".tar.gz"))
2370 (file-name (string-append name "-" version ".tar.gz"))
2371 (sha256
2372 (base32
2373 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2374 (build-system emacs-build-system)
376015c3
CB
2375 (arguments
2376 '(#:include (cons "^lib\\/" %default-include)))
8733fc91
CB
2377 (propagated-inputs
2378 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2379 (home-page "https://github.com/dgutov/robe")
2380 (synopsis "Ruby code assistance tool for Emacs")
2381 (description
2382 "Robe can provide information on loaded classes and modules in Ruby code,
2383as well as where methods are defined. This allows the user to jump to method
2384definitions, modules and classes, display method documentation and provide
2385method and constant name completion.")
2386 (license license:gpl3+)))
2387
81808194
CB
2388(define-public emacs-rspec
2389 (package
2390 (name "emacs-rspec")
2391 (version "1.11")
2392 (source
2393 (origin
2394 (method url-fetch)
2395 (uri (string-append "https://github.com/pezra/rspec-mode/"
2396 "archive/v" version ".tar.gz"))
2397 (file-name (string-append name "-" version ".tar.gz"))
2398 (sha256
2399 (base32
2400 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2401 (build-system emacs-build-system)
2402 (home-page "https://github.com/pezra/rspec-mode")
2403 (synopsis "Provides a rspec mode for working with RSpec")
2404 (description
2405 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2406verify the spec associated with the current buffer, or entire project, as well
2407as moving between the spec files, and coresponding code files.
2408
2409Also included are keybindings for spec files and Dired buffers, as well as
2410snippets for yasnippet.")
2411 (license license:gpl3+)))
2412
b33f913d
RW
2413(define-public emacs-smart-mode-line
2414 (package
2415 (name "emacs-smart-mode-line")
2416 (version "2.10.1")
2417 (source
2418 (origin
2419 (method url-fetch)
2420 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2421 "archive/" version ".tar.gz"))
2422 (file-name (string-append name "-" version ".tar.gz"))
2423 (sha256
2424 (base32
2425 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2426 (build-system emacs-build-system)
2427 (propagated-inputs
2428 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 2429 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2430 (synopsis "Color-coded smart mode-line")
b33f913d
RW
2431 (description
2432 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2433read from small to large monitors by using colors, a prefix feature, and smart
2434truncation.")
2435 (license license:gpl2+)))
2436
69b498a1 2437(define-public emacs-sr-speedbar
33ca12f3
MC
2438 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2439 (revision "0"))
2440 (package
2441 (name "emacs-sr-speedbar")
2442 (version (git-version "20161025" revision commit))
2443 (source
2444 (origin
2445 (method git-fetch)
2446 (uri (git-reference
2447 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2448 (commit commit)))
2449 (file-name (git-file-name name version))
2450 (sha256
2451 (base32
2452 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2453 (build-system emacs-build-system)
2454 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2455 (synopsis "Same frame Emacs @code{speedbar}")
2456 (description
2457 "This Emacs package allows you to show @code{M-x speedbar} in the
69b498a1
OP
2458same frame (in an extra window). You can customize the initial width of
2459the speedbar window.")
33ca12f3 2460 (license license:gpl3+))))
69b498a1 2461
3bcb304e
RW
2462(define-public emacs-shell-switcher
2463 (package
2464 (name "emacs-shell-switcher")
2465 (version "1.0.1")
2466 (source
2467 (origin
2468 (method url-fetch)
2469 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2470 "/archive/v" version ".tar.gz"))
2471 (file-name (string-append name "-" version ".tar.gz"))
2472 (sha256
2473 (base32
2474 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2475 (build-system emacs-build-system)
2476 (home-page "https://github.com/DamienCassou/shell-switcher")
2477 (synopsis "Provide fast switching between shell buffers")
2478 (description
2479 "This package provides commands to quickly switch between shell buffers.")
2480 (license license:gpl3+)))
2481
48dbeef7
FB
2482(define-public emacs-ob-ipython
2483 (package
2484 (name "emacs-ob-ipython")
2485 (version "20150704.8807064693")
2486 (source (origin
2487 (method git-fetch)
2488 (uri (git-reference
698bd297 2489 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7 2490 (url "https://github.com/gregsexton/ob-ipython.git")))
eb6b471b 2491 (file-name (string-append name "-" version "-checkout"))
48dbeef7
FB
2492 (sha256
2493 (base32
2494 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2495 (build-system emacs-build-system)
2496 (propagated-inputs
2497 `(("emacs-f" ,emacs-f)))
2498 (home-page "http://www.gregsexton.org")
2499 (synopsis "Org-Babel functions for IPython evaluation")
2500 (description "This package adds support to Org-Babel for evaluating Python
2501source code using IPython.")
2502 (license license:gpl3+)))
6fd66b6c
LC
2503
2504(define-public emacs-debbugs
2505 (package
2506 (name "emacs-debbugs")
8180a406 2507 (version "0.15")
6fd66b6c
LC
2508 (source (origin
2509 (method url-fetch)
f32ffa04 2510 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2511 version ".tar"))
2512 (sha256
2513 (base32
8180a406 2514 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
6fd66b6c 2515 (build-system emacs-build-system)
91762db6 2516 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2517 (propagated-inputs
2518 `(("emacs-async" ,emacs-async)))
f32ffa04 2519 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2520 (synopsis "Access the Debbugs bug tracker in Emacs")
2521 (description
2522 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2523Tracker} from within Emacs.
2524
2525For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2526and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2527prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2528@code{M-x debbugs-org} and related commands.
2529
2530A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2531Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2532 (license license:gpl3+)))
3ffe36f5 2533
1fcd7e6c
MC
2534(define-public emacs-ert-expectations
2535 (package
2536 (name "emacs-ert-expectations")
2537 (version "0.2")
2538 (source
2539 (origin
2540 (method url-fetch)
2541 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2542 (sha256
2543 (base32
2544 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2545 (build-system emacs-build-system)
2546 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2547 (synopsis "Simple unit test framework for Emacs Lisp")
2548 (description "@code{emacs-ert-expectations} is a simple unit test
2549framework for Emacs Lisp to be used with @code{ert}.")
2550 (license license:gpl3+)))
2551
3ffe36f5
LC
2552(define-public emacs-deferred
2553 (package
2554 (name "emacs-deferred")
4dd0f8c0 2555 (version "0.5.1")
3ffe36f5
LC
2556 (home-page "https://github.com/kiwanami/emacs-deferred")
2557 (source (origin
2558 (method git-fetch)
2559 (uri (git-reference
2560 (url home-page)
2561 (commit (string-append "v" version))))
2562 (sha256
2563 (base32
4dd0f8c0 2564 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
3ffe36f5
LC
2565 (file-name (string-append name "-" version))))
2566 (build-system emacs-build-system)
652741cf
MC
2567 (arguments
2568 `(#:phases
2569 (modify-phases %standard-phases
2570 (add-before 'check 'fix-makefile
2571 (lambda _
2572 (substitute* "Makefile"
2573 (("\\$\\(CASK\\) exec ") ""))
2574 #t)))
2575 #:tests? #t
2576 ;; FIXME: Normally we'd run the "test" target but for some reason the
2577 ;; test-deferred target fails when run in the Guix build environment
2578 ;; with the error: (file-error "Searching for program" "No such file or
2579 ;; directory" "/bin/sh").
2580 #:test-command '("make" "test-concurrent" "test-concurrent-compiled")))
2581 (native-inputs
2582 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2583 ("emacs-undercover" ,emacs-undercover)
2584 ("ert-runner" ,ert-runner)))
3ffe36f5
LC
2585 (synopsis "Simple asynchronous functions for Emacs Lisp")
2586 (description
2587 "The @code{deferred.el} library provides support for asynchronous tasks.
2588The API is almost the same as that of
2589@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2590for asynchronous tasks.")
2591 (license license:gpl3+)))
d001bb5a
LC
2592
2593(define-public butler
2594 (package
2595 (name "emacs-butler")
2596 (version "0.2.4")
2597 (home-page "https://github.com/AshtonKem/Butler")
2598 (source (origin
2599 (method git-fetch)
2600 (uri (git-reference
2601 (url home-page)
2602 (commit version)))
2603 (sha256
2604 (base32
2605 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2606 (file-name (string-append name "-" version))))
2607 (build-system emacs-build-system)
2608 (propagated-inputs
2609 `(("emacs-deferred" ,emacs-deferred)))
2610 (synopsis "Emacs client for Jenkins")
2611 (description
2612 "Butler provides an interface to connect to Jenkins continuous
2613integration servers. Users can specify a list of server in the
2614@code{butler-server-list} variable and then use @code{M-x butler-status} to
2615view the build status of those servers' build jobs, and possibly to trigger
2616build jobs.")
2617 (license license:gpl3+)))
2d1db448 2618
d1dbeddd
RW
2619(define-public emacs-company
2620 (package
2621 (name "emacs-company")
1262a2ab 2622 (version "0.9.3")
d1dbeddd
RW
2623 (source
2624 (origin
2625 (method url-fetch)
2626 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2627 version ".tar.gz"))
2628 (file-name (string-append name "-" version ".tar.gz"))
2629 (sha256
2630 (base32
1262a2ab 2631 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2632 (build-system emacs-build-system)
4e644ab8
AI
2633 (arguments
2634 `(#:phases
2635 (modify-phases %standard-phases
d1d41db6 2636 (add-before 'check 'fix-bin-dir
4e644ab8
AI
2637 (lambda _
2638 ;; The company-files-candidates-normal-root test looks
2639 ;; for the /bin directory, but the build environment has
2640 ;; no /bin directory. Modify the test to look for the
2641 ;; /tmp directory.
2642 (substitute* "test/files-tests.el"
2643 (("/bin/") "/tmp/"))
d1d41db6
MC
2644 #t)))
2645 #:tests? #t
2646 #:test-command '("make" "test-batch")))
d1dbeddd
RW
2647 (home-page "http://company-mode.github.io/")
2648 (synopsis "Modular text completion framework")
2649 (description
2650 "Company is a modular completion mechanism. Modules for retrieving
2651completion candidates are called back-ends, modules for displaying them are
2652front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2653These are distributed in separate files and can be used individually.")
2654 (license license:gpl3+)))
2655
016590a9
OP
2656(define-public emacs-company-quickhelp
2657 (package
2658 (name "emacs-company-quickhelp")
2659 (version "2.3.0")
2660 (source
2661 (origin
2662 (method url-fetch)
2663 (uri (string-append
2664 "https://github.com/expez/company-quickhelp/archive/"
2665 version ".tar.gz"))
2666 (file-name (string-append name "-" version ".tar.gz"))
2667 (sha256
2668 (base32
2669 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2670 (build-system emacs-build-system)
2671 (propagated-inputs
2672 `(("emacs-pos-tip" ,emacs-pos-tip)
2673 ("emacs-company" ,emacs-company)))
2674 (home-page "https://github.com/expez/company-quickhelp")
2675 (synopsis "Popup documentation for completion candidates")
2676 (description "@code{company-quickhelp} shows documentation for the
2677completion candidate when using the Company text completion framework.")
2678 (license license:gpl3+)))
2679
7c438099
RW
2680(define-public emacs-multiple-cursors
2681 (package
2682 (name "emacs-multiple-cursors")
2683 (version "1.4.0")
2684 (source
2685 (origin
2686 (method url-fetch)
2687 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2688 "archive/" version ".tar.gz"))
2689 (file-name (string-append name "-" version ".tar.gz"))
2690 (sha256
2691 (base32
2692 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2693 (build-system emacs-build-system)
2694 (home-page "https://github.com/magnars/multiple-cursors.el")
2695 (synopsis "Multiple cursors for Emacs")
2696 (description
2697 "This package adds support to Emacs for editing text with multiple
2698simultaneous cursors.")
2699 (license license:gpl3+)))
2700
2d1db448
LC
2701(define-public typo
2702 (package
2703 (name "emacs-typo")
2704 (version "1.1")
2705 (home-page "https://github.com/jorgenschaefer/typoel")
2706 (source (origin
2707 (method git-fetch)
2708 (uri (git-reference
2709 (url home-page)
2710 (commit (string-append "v" version))))
2711 (sha256
2712 (base32
2713 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2714 (file-name (string-append name "-" version))))
2715 (build-system emacs-build-system)
2716 (synopsis "Minor mode for typographic editing")
2717 (description
2718 "This package provides two Emacs modes, @code{typo-mode} and
2719@code{typo-global-mode}. These modes automatically insert Unicode characters
2720for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2721automatically inserts a Unicode opening or closing quotation mark, depending
2722on context.")
2723 (license license:gpl3+)))
e037a09f
FB
2724
2725(define-public emacs-scheme-complete
2726 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2727 (package
2728 (name "emacs-scheme-complete")
2729 (version (string-append "20151223." (string-take commit 8)))
2730 (source
2731 (origin
2732 (file-name (string-append name "-" version))
2733 (method git-fetch)
2734 (uri (git-reference
2735 (url "https://github.com/ashinn/scheme-complete.git")
2736 (commit commit)))
2737 (sha256
2738 (base32
2739 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2740 (patches
fc1adab1 2741 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2742 (build-system emacs-build-system)
2743 (home-page "https://github.com/ashinn/scheme-complete")
2744 (synopsis "Smart tab completion for Scheme in Emacs")
2745 (description
2746 "This file provides a single function, @code{scheme-smart-complete},
2747which you can use for intelligent, context-sensitive completion for any Scheme
2748implementation in Emacs. To use it just load this file and bind that function
2749to a key in your preferred mode.")
2750 (license license:public-domain))))
58a7dc13 2751
75408149
MC
2752(define-public emacs-scel
2753 (let ((version "20170629")
2754 (revision "1")
2755 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2756 (package
2757 (name "emacs-scel")
2758 (version (git-version version revision commit))
2759 (source
2760 (origin
2761 (method git-fetch)
2762 (uri (git-reference
2763 (url "https://github.com/supercollider/scel.git")
2764 (commit commit)))
2765 (file-name (string-append name "-" version "-checkout"))
2766 (sha256
2767 (base32
2768 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2769 (build-system emacs-build-system)
2770 (arguments
2771 `(#:modules ((guix build emacs-build-system)
2772 ((guix build cmake-build-system) #:prefix cmake:)
2773 (guix build utils))
2774 #:imported-modules (,@%emacs-build-system-modules
2775 (guix build cmake-build-system))
2776 #:phases
2777 (modify-phases %standard-phases
2778 (add-after 'unpack 'configure
2779 (lambda* (#:key outputs #:allow-other-keys)
2780 (substitute* "el/CMakeLists.txt"
2781 (("share/emacs/site-lisp/SuperCollider")
2782 (string-append
2783 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2784 ((assoc-ref cmake:%standard-phases 'configure)
2785 #:outputs outputs
2786 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2787 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2788 (lambda _
2789 (setenv "EMACSLOADPATH"
2790 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2791 #t))
2792 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2793 (inputs
2794 `(("supercollider" ,supercollider)))
2795 (native-inputs
2796 `(("cmake" ,cmake)))
2797 (home-page "https://github.com/supercollider/scel")
2798 (synopsis "SuperCollider Emacs interface")
2799 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2800SuperCollider is a platform for audio synthesis and algorithmic composition.")
2801 (license license:gpl2+))))
2802
58a7dc13
FB
2803(define-public emacs-mit-scheme-doc
2804 (package
2805 (name "emacs-mit-scheme-doc")
2806 (version "20140203")
2807 (source
2808 (origin
2809 (modules '((guix build utils)))
2810 (snippet
2811 ;; keep only file of interest
2812 '(begin
2813 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2814 (install-file "6.945-config/mit-scheme-doc.el" ".")
58a7dc13
FB
2815 (delete-file-recursively "6.945-config")))
2816 (file-name (string-append name "-" version ".tar.bz2"))
2817 (method url-fetch)
2818 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2819 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2820 (sha256
2821 (base32
2822 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2823 (build-system emacs-build-system)
2824 (inputs `(("mit-scheme" ,mit-scheme)))
2825 (arguments
2826 `(#:phases
2827 (modify-phases %standard-phases
2828 (add-after 'unpack 'configure-doc
2829 (lambda* (#:key inputs #:allow-other-keys)
2830 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2831 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2832 "mit-scheme-"
2833 ,(package-version mit-scheme))))
2834 (substitute* "mit-scheme-doc.el"
2835 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2836 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2837 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2838 (synopsis "MIT-Scheme documentation lookup for Emacs")
2839 (description
2840 "This package provides a set of Emacs functions to search definitions of
2841identifiers in the MIT-Scheme documentation.")
2842 (license license:gpl2+)))
e5045f30 2843
e5045f30
FB
2844(define-public emacs-constants
2845 (package
2846 (name "emacs-constants")
f99f3f24 2847 (version "2.6")
a9e41d2f 2848 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2849 (source
2850 (origin
37dbfc50 2851 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2852 (method url-fetch)
2853 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2854 "/archive/v" version ".tar.gz"))
e5045f30
FB
2855 (sha256
2856 (base32
f99f3f24 2857 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2858 (build-system emacs-build-system)
e5045f30
FB
2859 (synopsis "Enter definition of constants into an Emacs buffer")
2860 (description
2861 "This package provides functions for inserting the definition of natural
2862constants and units into an Emacs buffer.")
2863 (license license:gpl2+)))
85960693 2864
e203221f
RW
2865(define-public emacs-tagedit
2866 (package
2867 (name "emacs-tagedit")
2868 (version "1.4.0")
2869 (source
2870 (origin
2871 (method url-fetch)
2872 (uri (string-append "https://github.com/magnars/tagedit/"
2873 "archive/" version ".tar.gz"))
2874 (file-name (string-append name "-" version ".tar.gz"))
2875 (sha256
2876 (base32
2877 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2878 (build-system emacs-build-system)
2879 (propagated-inputs
2880 `(("emacs-s" ,emacs-s)
2881 ("emacs-dash" ,emacs-dash)))
2882 (home-page "https://github.com/magnars/tagedit")
2883 (synopsis "Some paredit-like features for html-mode")
2884 (description
2885 "This package provides a collection of paredit-like functions for editing
2886in @code{html-mode}.")
2887 (license license:gpl3+)))
2888
85960693
FB
2889(define-public emacs-slime
2890 (package
2891 (name "emacs-slime")
d2f93e61 2892 (version "2.20")
85960693
FB
2893 (source
2894 (origin
2895 (file-name (string-append name "-" version ".tar.gz"))
2896 (method url-fetch)
2897 (uri (string-append
2898 "https://github.com/slime/slime/archive/v"
2899 version ".tar.gz"))
2900 (sha256
2901 (base32
d2f93e61 2902 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
85960693
FB
2903 (build-system emacs-build-system)
2904 (native-inputs
2905 `(("texinfo" ,texinfo)))
2906 (arguments
e8cefe11
AI
2907 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2908 #:exclude '("^slime-tests.el" "^contrib/test/"
2909 "^contrib/Makefile$" "^contrib/README.md$")
2910 #:phases
85960693
FB
2911 (modify-phases %standard-phases
2912 (add-before 'install 'configure
2913 (lambda* _
2914 (emacs-substitute-variables "slime.el"
2915 ("inferior-lisp-program" "sbcl"))
2916 #t))
2917 (add-before 'install 'install-doc
2918 (lambda* (#:key outputs #:allow-other-keys)
2919 (let* ((out (assoc-ref outputs "out"))
2920 (info-dir (string-append out "/share/info"))
2921 (doc-dir (string-append out "/share/doc/"
2922 ,name "-" ,version))
2923 (doc-files '("doc/slime-refcard.pdf"
2924 "README.md" "NEWS" "PROBLEMS"
2925 "CONTRIBUTING.md")))
2926 (with-directory-excursion "doc"
2927 (substitute* "Makefile"
2928 (("infodir=/usr/local/info")
2929 (string-append "infodir=" info-dir)))
2930 (system* "make" "html/index.html")
2931 (system* "make" "slime.info")
2932 (install-file "slime.info" info-dir)
2933 (copy-recursively "html" (string-append doc-dir "/html")))
2934 (for-each (lambda (f)
2935 (install-file f doc-dir)
2936 (delete-file f))
2937 doc-files)
2938 (delete-file-recursively "doc")
2939 #t))))))
2940 (home-page "https://github.com/slime/slime")
2941 (synopsis "Superior Lisp Interaction Mode for Emacs")
2942 (description
2943 "SLIME extends Emacs with support for interactive programming in
db574f71 2944Common Lisp. The features are centered around @command{slime-mode},
2945an Emacs minor mode that complements the standard @command{lisp-mode}.
2946While lisp-mode supports editing Lisp source files, @command{slime-mode}
2947adds support for interacting with a running Common Lisp process
2948for compilation, debugging, documentation lookup, and so on.")
85960693 2949 (license license:gpl2+)))
e11d14fe 2950
2951(define-public emacs-popup
2952 (package
2953 (name "emacs-popup")
2954 (version "0.5.3")
2955 (source (origin
2956 (method url-fetch)
2957 (uri (string-append
2958 "https://github.com/auto-complete/popup-el/archive/v"
2959 version ".tar.gz"))
2960 (file-name (string-append name "-" version ".tar.gz"))
2961 (sha256
2962 (base32
2963 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2964 (build-system emacs-build-system)
e11d14fe 2965 (home-page "https://github.com/auto-complete/popup-el")
2966 (synopsis "Visual Popup User Interface for Emacs")
2967 (description
2968 "Popup.el is a visual popup user interface library for Emacs.
2969This provides a basic API and common UI widgets such as popup tooltips
2970and popup menus.")
2971 (license license:gpl3+)))
48766ea8
RW
2972
2973(define-public emacs-god-mode
2974 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2975 (revision "1"))
2976 (package
2977 (name "emacs-god-mode")
2978 (version (string-append "20151005.925."
2979 revision "-" (string-take commit 9)))
2980 (source
2981 (origin
2982 (method git-fetch)
2983 (uri (git-reference
2984 (url "https://github.com/chrisdone/god-mode.git")
2985 (commit commit)))
2986 (file-name (string-append name "-" version "-checkout"))
2987 (sha256
2988 (base32
2989 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2990 (build-system emacs-build-system)
2991 (home-page "https://github.com/chrisdone/god-mode")
2992 (synopsis "Minor mode for entering commands without modifier keys")
2993 (description
2994 "This package provides a global minor mode for entering Emacs commands
2995without modifier keys. It's similar to Vim's separation of commands and
2996insertion mode. When enabled all keys are implicitly prefixed with
2997@samp{C-} (among other helpful shortcuts).")
2998 (license license:gpl3+))))
4670f70a 2999
8fc559dc 3000(define-public emacs-jinja2-mode
3001 (package
3002 (name "emacs-jinja2-mode")
3003 (version "0.2")
3004 (source
3005 (origin
3006 (method url-fetch)
3007 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3008 "archive/v" version ".tar.gz"))
3009 (file-name (string-append name "-" version ".tar.gz"))
3010 (sha256
3011 (base32
3012 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3013 (build-system emacs-build-system)
3014 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3015 (synopsis "Major mode for jinja2")
3016 (description
3017 "Emacs major mode for jinja2 with: syntax highlighting,
3018sgml/html integration, and indentation (working with sgml).")
3019 (license license:gpl3+)))
3020
4670f70a
CM
3021(define-public emacs-rfcview
3022 (package
3023 (name "emacs-rfcview")
3024 (version "0.13")
3025 (home-page "http://www.loveshack.ukfsn.org/emacs")
3026 (source (origin
02736daa 3027 (method url-fetch)
4670f70a
CM
3028 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3029 (sha256
3030 (base32
3031 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3032 (build-system emacs-build-system)
4670f70a
CM
3033 (synopsis "Prettify Request for Comments (RFC) documents")
3034 (description "The Internet Engineering Task Force (IETF) and the Internet
3035Society (ISOC) publish various Internet-related protocols and specifications
3036as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3037documents. RFCs and STDs are published in a simple text form. This package
3038provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3039read these documents in Emacs. It prettifies the text and adds
3040hyperlinks/menus for easier navigation. It also provides functions for
3041browsing the index of RFC documents and fetching them from remote servers or
3042local directories.")
3043 (license license:gpl3+)))
3044
9e9c71eb
CM
3045(define-public emacs-ffap-rfc-space
3046 (package
3047 (name "emacs-ffap-rfc-space")
3048 (version "12")
3049 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3050 (source (origin
02736daa 3051 (method url-fetch)
9e9c71eb
CM
3052 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3053 (sha256
3054 (base32
3055 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3056 (build-system emacs-build-system)
9e9c71eb
CM
3057 (synopsis "Make ffap recognize an RFC with a space before its number")
3058 (description "The Internet Engineering Task Force (IETF) and the
3059Internet Society (ISOC) publish various Internet-related protocols and
3060specifications as \"Request for Comments\" (RFC) documents. The
3061built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3062recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3063and load the appropriate RFC from a remote server. However, it fails
3064to recognize a name like \"RFC 1234\". This package enhances ffap so
3065that it correctly finds RFCs even when a space appears before the
3066number.")
3067 (license license:gpl3+)))
9576cc72 3068
db1a4960
RW
3069(define-public emacs-org-bullets
3070 (package
3071 (name "emacs-org-bullets")
3072 (version "0.2.4")
3073 (source
3074 (origin
3075 (method url-fetch)
3076 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3077 version ".tar.gz"))
3078 (file-name (string-append name "-" version ".tar.gz"))
3079 (sha256
3080 (base32
3081 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3082 (build-system emacs-build-system)
3083 (home-page "https://github.com/sabof/org-bullets")
3084 (synopsis "Show bullets in org-mode as UTF-8 characters")
3085 (description
3086 "This package provides an Emacs minor mode causing bullets in
3087@code{org-mode} to be rendered as UTF-8 characters.")
3088 (license license:gpl3+)))
b1679379
OP
3089
3090(define-public emacs-org-pomodoro
3091 (package
3092 (name "emacs-org-pomodoro")
3093 (version "2.1.0")
3094 (source
3095 (origin
3096 (method url-fetch)
3097 (uri (string-append
3098 "https://github.com/lolownia/org-pomodoro/archive/"
3099 version ".tar.gz"))
3100 (file-name (string-append name "-" version ".tar.gz"))
3101 (sha256
3102 (base32
3103 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3104 (build-system emacs-build-system)
3105 (propagated-inputs
3106 `(("emacs-alert" ,emacs-alert)))
3107 (home-page "https://github.com/lolownia/org-pomodoro")
3108 (synopsis "Pomodoro technique for org-mode")
3109 (description "@code{emacs-org-pomodoro} adds very basic support for
3110Pomodoro technique in Emacs org-mode.
3111
3112Run @code{M-x org-pomodoro} for the task at point or select one of the
3113last tasks that you clocked time for. Each clocked-in pomodoro starts
3114a timer of 25 minutes and after each pomodoro a break timer of 5
3115minutes is started automatically. Every 4 breaks a long break is
3116started with 20 minutes. All values are customizable.")
3117 (license license:gpl3+)))
db1a4960 3118
ed8bc028
RJ
3119(define-public emacs-org-trello
3120 (package
3121 (name "emacs-org-trello")
bf86533b 3122 (version "0.8.0")
ed8bc028
RJ
3123 (source (origin
3124 (method url-fetch)
3125 (uri (string-append
3126 "https://github.com/org-trello/org-trello/archive/"
3127 version ".tar.gz"))
3128 (file-name (string-append name "-" version ".tar.gz"))
3129 (sha256
3130 (base32
bf86533b 3131 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
ed8bc028
RJ
3132 (build-system emacs-build-system)
3133 (propagated-inputs
8865d476
MC
3134 `(("emacs-dash" ,emacs-dash)
3135 ("emacs-deferred" ,emacs-deferred)
3136 ("emacs-f" ,emacs-f)
3137 ("emacs-helm" ,emacs-helm)
ed8bc028 3138 ("emacs-request" ,emacs-request)
ed8bc028
RJ
3139 ("emacs-s" ,emacs-s)))
3140 (home-page "https://org-trello.github.io")
3141 (synopsis "Emacs minor mode for interacting with Trello")
3142 (description "This package provides an Emacs minor mode to extend
3143@code{org-mode} with Trello abilities. Trello is an online project
3144organizer.")
3145 (license license:gpl3+)))
3146
9576cc72
AP
3147(define-public emacs-zenburn-theme
3148 (package
3149 (name "emacs-zenburn-theme")
07716c68 3150 (version "2.5")
9576cc72
AP
3151 (source (origin
3152 (method url-fetch)
3153 (uri (string-append
3154 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3155 version ".tar.gz"))
3156 (file-name (string-append name "-" version ".tar.gz"))
3157 (sha256
3158 (base32
07716c68 3159 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 3160 (build-system emacs-build-system)
7bf837fd 3161 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
3162 (synopsis "Low contrast color theme for Emacs")
3163 (description
3164 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3165It is built on top of the custom theme support in Emacs 24 or later.")
3166 (license license:gpl3+)))
3167
012c8b35
RW
3168(define-public emacs-solarized-theme
3169 (package
3170 (name "emacs-solarized-theme")
3171 (version "1.2.2")
3172 (source (origin
3173 (method url-fetch)
3174 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3175 "archive/v" version ".tar.gz"))
3176 (file-name (string-append name "-" version ".tar.gz"))
3177 (sha256
3178 (base32
3179 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3180 (build-system emacs-build-system)
3181 (propagated-inputs
090bdb9e 3182 `(("emacs-dash" ,emacs-dash)))
7bf837fd 3183 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
3184 (synopsis "Port of the Solarized theme for Emacs")
3185 (description
3186 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3187package provides a light and a dark variant.")
3188 (license license:gpl3+)))
3189
e7761186
AV
3190(define-public emacs-ahungry-theme
3191 (package
3192 (name "emacs-ahungry-theme")
e5f95406 3193 (version "1.10.0")
e7761186
AV
3194 (source
3195 (origin (method url-fetch)
f32ffa04 3196 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
3197 version ".tar"))
3198 (sha256
3199 (base32
e5f95406 3200 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
e7761186
AV
3201 (build-system emacs-build-system)
3202 (home-page "https://github.com/ahungry/color-theme-ahungry")
3203 (synopsis "Ahungry color theme for Emacs")
3204 (description "Ahungry theme for Emacs provides bright and bold colors.
3205If you load it from a terminal, you will be able to make use of the
3206transparent background. If you load it from a GUI, it will default to a
3207dark background.")
3208 (license license:gpl3+)))
3209
ab966b8f 3210(define-public emacs-2048-game
3211 (package
3212 (name "emacs-2048-game")
3213 (version "20151026.1233")
3214 (source
3215 (origin
3216 (method url-fetch)
3217 (uri (string-append "https://melpa.org/packages/2048-game-"
3218 version ".el"))
3219 (sha256
3220 (base32
3221 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3222 (build-system emacs-build-system)
3223 (home-page "https://bitbucket.org/zck/2048.el")
3224 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3225 (description
3226 "This program is an implementation of 2048 for Emacs.
3227The goal of this game is to create a tile with value 2048. The size of the
3228board and goal value can be customized.")
3229 (license license:gpl3+)))
3230
4da9beab 3231(define-public emacs-base16-theme
3232 (package
3233 (name "emacs-base16-theme")
3234 (version "2.1")
3235 (source
3236 (origin
3237 (method url-fetch)
3238 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3239 version ".tar"))
3240 (sha256
3241 (base32
3242 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3243 (build-system emacs-build-system)
3244 (home-page "https://github.com/belak/base16-emacs")
3245 (synopsis "Base16 color themes for Emacs")
3246 (description
3247 "Base16 provides carefully chosen syntax highlighting and a default set
3248of sixteen colors suitable for a wide range of applications. Base16 is not a
3249single theme but a set of guidelines with numerous implementations.")
3250 (license license:expat)))
3251
5c447e28
AP
3252(define-public emacs-smartparens
3253 (package
3254 (name "emacs-smartparens")
308b8f79 3255 (version "1.11.0")
5c447e28
AP
3256 (source (origin
3257 (method url-fetch)
3258 (uri (string-append
3259 "https://github.com/Fuco1/smartparens/archive/"
3260 version ".tar.gz"))
3261 (file-name (string-append name "-" version ".tar.gz"))
3262 (sha256
3263 (base32
308b8f79 3264 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
5c447e28 3265 (build-system emacs-build-system)
db95d8ca
MC
3266 (propagated-inputs
3267 `(("emacs-dash" ,emacs-dash)
3268 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5c447e28
AP
3269 (home-page "https://github.com/Fuco1/smartparens")
3270 (synopsis "Paredit-like insertion, wrapping and navigation with user
3271defined pairs")
3272 (description
3273 "Smartparens is a minor mode for Emacs that deals with parens pairs
3274and tries to be smart about it. It started as a unification effort to
3275combine functionality of several existing packages in a single,
3276compatible and extensible way to deal with parentheses, delimiters, tags
3277and the like. Some of these packages include autopair, textmate,
3278wrap-region, electric-pair-mode, paredit and others. With the basic
3279features found in other packages it also brings many improvements as
3280well as completely new features.")
3281 (license license:gpl3+)))
8eeb301d 3282
425d66f7
OP
3283(define-public emacs-highlight-symbol
3284 (package
3285 (name "emacs-highlight-symbol")
3286 (version "1.3")
3287 (source (origin
3288 (method url-fetch)
3289 (uri (string-append
3290 "https://github.com/nschum/highlight-symbol.el/archive/"
3291 version ".tar.gz"))
3292 (file-name (string-append name "-" version ".tar.gz"))
3293 (sha256
3294 (base32
3295 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3296 (build-system emacs-build-system)
3297 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3298 (synopsis "Automatic and manual symbol highlighting for Emacs")
3299 (description
3300 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3301point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3302the symbol at point highlighted.
3303
3304The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3305@code{highlight-symbol-next-in-defun} and
3306@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3307of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3308bindings @code{M-p} and @code{M-p} for navigation. When
3309@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3310regardless of @code{highlight-symbol-idle-delay}.
3311
3312@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3313 (license license:gpl2+)))
3314
8f82641a
RJ
3315(define-public emacs-hl-todo
3316 (package
3317 (name "emacs-hl-todo")
f61aaaf3 3318 (version "1.8.0")
8f82641a
RJ
3319 (source (origin
3320 (method url-fetch)
3321 (uri (string-append
3322 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3323 version "/hl-todo.el"))
0e7c4089 3324 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
3325 (sha256
3326 (base32
f61aaaf3 3327 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
8f82641a
RJ
3328 (build-system emacs-build-system)
3329 (home-page "https://github.com/tarsius/hl-todo")
3330 (synopsis "Emacs mode to highlight TODO and similar keywords")
3331 (description
3332 "This package provides an Emacs mode to highlight TODO and similar
3333keywords in comments and strings. This package also provides commands for
3334moving to the next or previous keyword and to invoke @code{occur} with a
3335regexp that matches all known keywords.")
3336 (license license:gpl3+)))
3337
480f7350
RW
3338(define-public emacs-perspective
3339 (package
3340 (name "emacs-perspective")
3341 (version "1.12")
3342 (source
3343 (origin
3344 (method url-fetch)
3345 (uri (string-append "https://github.com/nex3/perspective-el/"
3346 "archive/" version ".tar.gz"))
3347 (file-name (string-append name "-" version ".tar.gz"))
3348 (sha256
3349 (base32
3350 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3351 (build-system emacs-build-system)
7bf837fd 3352 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
3353 (synopsis "Switch between named \"perspectives\"")
3354 (description
3355 "This package provides tagged workspaces in Emacs, similar to workspaces in
3356windows managers such as Awesome and XMonad. @code{perspective.el} provides
3357multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3358perspective is composed of a window configuration and a set of buffers.
3359Switching to a perspective activates its window configuration, and when in a
3360perspective only its buffers are available by default.")
3361 ;; This package is released under the same license as Emacs (GPLv3+) or
3362 ;; the Expat license.
3363 (license license:gpl3+)))
3364
439ad15d
MC
3365(define-public emacs-test-simple
3366 (package
3367 (name "emacs-test-simple")
3368 (version "1.3.0")
3369 (source
3370 (origin
3371 (method url-fetch)
3372 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3373 version ".el"))
3374 (sha256
3375 (base32
3376 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3377 (build-system emacs-build-system)
3378 (home-page "https://github.com/rocky/emacs-test-simple")
3379 (synopsis "Simple unit test framework for Emacs Lisp")
3380 (description
3381 "Test Simple is a simple unit test framework for Emacs Lisp. It
3382alleviates the need for context macros, enclosing specifications or required
3383test tags. It supports both interactive and non-interactive use.")
3384 (license license:gpl3+)))
3385
fa1a17b7
MC
3386(define-public emacs-load-relative
3387 (package
3388 (name "emacs-load-relative")
3389 (version "1.3")
3390 (source
3391 (origin
3392 (method url-fetch)
3393 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3394 version ".el"))
3395 (sha256
3396 (base32
3397 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3398 (build-system emacs-build-system)
3399 (home-page "http://github.com/rocky/emacs-load-relative")
3400 (synopsis "Emacs Lisp relative file loading related functions")
3401 (description
3402 "Provides functions which facilitate writing multi-file Emacs packages
3403and running from the source tree without having to \"install\" code or fiddle
3404with @{load-path}.
3405
3406The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3407another (presumably currently running) Emacs Lisp file.")
3408 (license license:gpl3+)))
3409
fd38bfe2
MC
3410(define-public emacs-loc-changes
3411 (package
3412 (name "emacs-loc-changes")
3413 (version "1.2")
3414 (source
3415 (origin
3416 (method url-fetch)
3417 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3418 version ".el"))
3419 (sha256
3420 (base32
3421 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3422 (build-system emacs-build-system)
3423 (home-page "https://github.com/rocky/emacs-loc-changes")
3424 (synopsis "Keeps track of positions even after buffer changes")
3425 (description
3426 "This Emacs package provides a mean to track important buffer positions
3427after buffer changes.")
3428 (license license:gpl3+)))
3429
b1968d86
MC
3430(define-public emacs-realgud
3431 (package
3432 (name "emacs-realgud")
5368e67c 3433 (version "1.4.5")
b1968d86
MC
3434 (source
3435 (origin
3436 (method url-fetch)
3437 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3438 version ".tar"))
3439 (sha256
3440 (base32
5368e67c 3441 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
b1968d86
MC
3442 (build-system emacs-build-system)
3443 (arguments
3444 `(#:tests? #t
3445 #:phases
3446 (modify-phases %standard-phases
aea388cf 3447 (add-after 'set-emacs-load-path 'fix-autogen-script
b1968d86
MC
3448 (lambda _
3449 (substitute* "autogen.sh"
3450 (("./configure") "sh configure"))))
3451 (add-after 'fix-autogen-script 'autogen
3452 (lambda _
3453 (setenv "CONFIG_SHELL" "sh")
3454 (invoke "sh" "autogen.sh")))
3455 (add-after 'fix-autogen-script 'set-home
3456 (lambda _
3457 (setenv "HOME" (getenv "TMPDIR"))))
3458 (add-before 'patch-el-files 'remove-realgud-pkg.el
3459 (lambda _
3460 ;; XXX: This file is auto-generated at some point and causes
3461 ;; substitute* to crash during the `patch-el-files' phase with:
3462 ;; ERROR: In procedure stat: No such file or directory:
3463 ;; "./realgud-pkg.el"
3464 (delete-file "./realgud-pkg.el")
3465 ;; FIXME: `patch-el-files' crashes on this file with error:
3466 ;; unable to locate "bashdb".
3467 (delete-file "./test/test-regexp-bashdb.el"))))
3468 #:include (cons* ".*\\.el$" %default-include)))
3469 (native-inputs
3470 `(("autoconf" ,autoconf)
3471 ("automake" ,automake)
3472 ("emacs-test-simple" ,emacs-test-simple)))
3473 (propagated-inputs
3474 `(("emacs-load-relative" ,emacs-load-relative)
3475 ("emacs-loc-changes" ,emacs-loc-changes)))
3476 (home-page "https://github.com/realgud/realgud/")
3477 (synopsis
3478 "Modular front-end for interacting with external debuggers")
3479 (description
3480 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3481with external debuggers. It integrates various debuggers such as gdb, pdb,
3482ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3483sources. Unlike GUD, it also supports running multiple debug sessions in
3484parallel.")
3485 (license license:gpl3+)))
3486
36e5d103
RJ
3487(define-public emacs-request
3488 (package
3489 (name "emacs-request")
5a545aab 3490 (version "0.3.0")
36e5d103 3491 (source (origin
5a545aab
RW
3492 (method git-fetch)
3493 (uri (git-reference
3494 (url "https://github.com/tkf/emacs-request.git")
3495 (commit (string-append "v" version))))
3496 (file-name (string-append name "-" version "-checkout"))
36e5d103 3497 (sha256
5a545aab
RW
3498 (base32
3499 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
36e5d103 3500 (build-system emacs-build-system)
4e782fff
MC
3501 (propagated-inputs
3502 `(("emacs-deferred" ,emacs-deferred)))
36e5d103
RJ
3503 (home-page "https://github.com/tkf/emacs-request")
3504 (synopsis "Package for speaking HTTP in Emacs Lisp")
3505 (description "This package provides a HTTP request library with multiple
3506backends. It supports url.el which is shipped with Emacs and the curl command
3507line program.")
3508 (license license:gpl3+)))
3509
f1b61e26 3510(define-public emacs-rudel
3511 (package
3512 (name "emacs-rudel")
3513 (version "0.3.1")
3514 (source
3515 (origin
3516 (method url-fetch)
3517 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3518 version ".tar"))
3519 (sha256
3520 (base32
3521 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3522 (build-system emacs-build-system)
3523 (home-page "http://rudel.sourceforge.net/")
3524 (synopsis "Collaborative editing framework")
3525 (description
3526 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3527is to share buffers with other users in order to edit the contents of those
3528buffers collaboratively. Rudel supports multiple backends to enable
3529communication with other collaborative editors using different protocols,
3530though currently Obby (for use with the Gobby editor) is the only
3531fully-functional one.")
3532 (license license:gpl3+)))
3533
79b3d3ea
RW
3534(define-public emacs-hydra
3535 (package
3536 (name "emacs-hydra")
9932dabf 3537 (version "0.14.0")
79b3d3ea
RW
3538 (source
3539 (origin
3540 (method url-fetch)
3541 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3542 version ".tar.gz"))
3543 (file-name (string-append name "-" version ".tar.gz"))
3544 (sha256
3545 (base32
9932dabf 3546 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
79b3d3ea
RW
3547 (build-system emacs-build-system)
3548 (home-page "https://github.com/abo-abo/hydra")
3549 (synopsis "Make Emacs bindings that stick around")
3550 (description
3551 "This package can be used to tie related commands into a family of short
3552bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3553the prefixed binding), all the heads can be called in succession with only a
3554short extension. Any binding that isn't the Hydra's head vanquishes the
3555Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3556serve its original purpose, calling the command assigned to it. This makes
3557the Hydra very seamless; it's like a minor mode that disables itself
3558automatically.")
3559 (license license:gpl3+)))
3560
12db29ba
RW
3561(define-public emacs-ivy
3562 (package
3563 (name "emacs-ivy")
a8374234 3564 (version "0.10.0")
12db29ba
RW
3565 (source
3566 (origin
a8374234
RW
3567 (method git-fetch)
3568 (uri (git-reference
3569 (url "https://github.com/abo-abo/swiper.git")
3570 (commit version)))
3571 (file-name (string-append name "-" version "-checkout"))
12db29ba
RW
3572 (sha256
3573 (base32
a8374234 3574 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
12db29ba 3575 (build-system emacs-build-system)
5f66a0a7
RW
3576 (arguments
3577 `(#:phases
3578 (modify-phases %standard-phases
3579 (add-after 'install 'install-doc
3580 (lambda* (#:key outputs #:allow-other-keys)
3581 (let* ((out (assoc-ref outputs "out"))
3582 (info (string-append out "/share/info")))
3583 (with-directory-excursion "doc"
3584 (unless (zero? (system* "makeinfo" "ivy.texi"))
3585 (error "makeinfo failed"))
3586 (install-file "ivy.info" info))))))))
12db29ba
RW
3587 (propagated-inputs
3588 `(("emacs-hydra" ,emacs-hydra)))
5f66a0a7
RW
3589 (native-inputs
3590 `(("texinfo" ,texinfo)))
12db29ba
RW
3591 (home-page "http://oremacs.com/swiper/")
3592 (synopsis "Incremental vertical completion for Emacs")
3593 (description
3594 "This package provides @code{ivy-read} as an alternative to
3595@code{completing-read} and similar functions. No attempt is made to determine
3596the best candidate. Instead, the user can navigate candidates with
3597@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3598splitting the input text by spaces and re-building it into a regular
3599expression.")
3600 (license license:gpl3+)))
3601
5edc24ec
RW
3602(define-public emacs-avy
3603 (package
3604 (name "emacs-avy")
3605 (version "0.4.0")
3606 (source
3607 (origin
3608 (method url-fetch)
3609 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3610 version ".tar.gz"))
3611 (file-name (string-append name "-" version ".tar.gz"))
3612 (sha256
3613 (base32
3614 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3615 (build-system emacs-build-system)
3616 (home-page "https://github.com/abo-abo/avy")
3617 (synopsis "Tree-based completion for Emacs")
3618 (description
3619 "This package provides a generic completion method based on building a
3620balanced decision tree with each candidate being a leaf. To traverse the tree
3621from the root to a desired leaf, typically a sequence of @code{read-key} can
3622be used.
3623
3624In order for @code{read-key} to make sense, the tree needs to be visualized
3625appropriately, with a character at each branch node. So this completion
3626method works only for things that you can see on your screen, all at once,
3627such as the positions of characters, words, line beginnings, links, or
3628windows.")
3629 (license license:gpl3+)))
3630
93dba17c
RW
3631(define-public emacs-ace-window
3632 (package
3633 (name "emacs-ace-window")
3634 (version "0.9.0")
3635 (source
3636 (origin
3637 (method url-fetch)
3638 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3639 version ".tar.gz"))
3640 (file-name (string-append name "-" version ".tar.gz"))
3641 (sha256
3642 (base32
3643 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3644 (build-system emacs-build-system)
3645 (propagated-inputs
3646 `(("emacs-avy" ,emacs-avy)))
3647 (home-page "https://github.com/abo-abo/ace-window")
3648 (synopsis "Quickly switch windows in Emacs")
3649 (description
3650 "@code{ace-window} is meant to replace @code{other-window}.
3651In fact, when there are only two windows present, @code{other-window} is
3652called. If there are more, each window will have its first character
3653highlighted. Pressing that character will switch to that window.")
3654 (license license:gpl3+)))
3655
e1918ce4
RW
3656(define-public emacs-iedit
3657 (package
3658 (name "emacs-iedit")
f9f77a9e 3659 (version "0.9.9.9")
e1918ce4
RW
3660 (source
3661 (origin
3662 (method url-fetch)
3663 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3664 version ".tar.gz"))
3665 (file-name (string-append name "-" version ".tar.gz"))
3666 (sha256
3667 (base32
f9f77a9e 3668 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
3669 (build-system emacs-build-system)
3670 (home-page "http://www.emacswiki.org/emacs/Iedit")
3671 (synopsis "Edit multiple regions in the same way simultaneously")
3672 (description
3673 "This package is an Emacs minor mode and allows you to edit one
3674occurrence of some text in a buffer (possibly narrowed) or region, and
3675simultaneously have other occurrences edited in the same way.
3676
3677You can also use Iedit mode as a quick way to temporarily show only the buffer
3678lines that match the current text being edited. This gives you the effect of
3679a temporary @code{keep-lines} or @code{occur}.")
3680 (license license:gpl3+)))
3681
30cf7070
CL
3682(define-public emacs-zoutline
3683 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3684 (revision "0"))
3685 (package
3686 (name "emacs-zoutline")
3687 (version (git-version "0.1" revision commit))
3688 (home-page "https://github.com/abo-abo/zoutline")
3689 (source (origin
3690 (method git-fetch)
3691 (uri (git-reference (url home-page) (commit commit)))
3692 (sha256
3693 (base32
3694 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3695 (file-name (git-file-name name version))))
3696 (build-system emacs-build-system)
3697 (synopsis "Simple outline library")
3698 (description
3699 "This library provides helpers for outlines. Outlines allow users to
3700navigate code in a tree-like fashion.")
3701 (license license:gpl3+))))
3702
a5338dd4 3703(define-public emacs-lispy
e8360eb8
CL
3704 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3705 ;; since.
3706 (let ((commit "a7e1cf742e72199cc75aa5e1e686991ba4a23bc4")
3707 (revision "0"))
3708 (package
3709 (name "emacs-lispy")
3710 (version (git-version "0.26.0" revision commit))
3711 (home-page "https://github.com/abo-abo/lispy")
3712 (source (origin
3713 (method git-fetch)
3714 (uri (git-reference (url home-page) (commit commit)))
3715 (sha256
3716 (base32
3717 "0qg85gz5akayvhb5fmn1qx7s9847gry4g20xcnq8llr839lq28dl"))
3718 (file-name (git-file-name name version))))
3719 (build-system emacs-build-system)
3720 (propagated-inputs
3721 `(("emacs-ace-window" ,emacs-ace-window)
3722 ("emacs-iedit" ,emacs-iedit)
3723 ("emacs-ivy" ,emacs-ivy)
3724 ("emacs-hydra" ,emacs-hydra)
3725 ("emacs-zoutline" ,emacs-zoutline)))
3726 (synopsis "Modal S-expression editing")
3727 (description
3728 "Due to the structure of Lisp syntax it's very rare for the programmer
3729to want to insert characters right before \"(\" or right after \")\". Thus
a5338dd4
RW
3730unprefixed printable characters can be used to call commands when the point is
3731at one of these special locations. Lispy provides unprefixed keybindings for
3732S-expression editing when point is at the beginning or end of an
3733S-expression.")
e8360eb8 3734 (license license:gpl3+))))
a5338dd4 3735
28ca6b35
CL
3736(define-public emacs-lispyville
3737 ;; Later versions need a more recent Evil, with an evil-define-key*
3738 ;; supporting nil for the state.
3739 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
3740 (revision "0"))
3741 (package
3742 (name "emacs-lispyville")
3743 (version (git-version "0.1" revision commit))
3744 (home-page "https://github.com/noctuid/lispyville")
3745 (source (origin
3746 (method git-fetch)
3747 (uri (git-reference (url home-page) (commit commit)))
3748 (sha256
3749 (base32
3750 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
3751 (file-name (git-file-name name version))))
3752 (propagated-inputs
3753 `(("emacs-evil" ,emacs-evil)
3754 ("emacs-lispy" ,emacs-lispy)))
3755 (build-system emacs-build-system)
3756 (synopsis "Minor mode for integrating Evil with lispy")
3757 (description
3758 "LispyVille's main purpose is to provide a Lisp editing environment
3759suited towards Evil users. It can serve as a minimal layer on top of lispy
3760for better integration with Evil, but it does not require the use of lispy’s
3761keybinding style. The provided commands allow for editing Lisp in normal
3762state and will work even without lispy being enabled.")
3763 (license license:gpl3+))))
3764
8eeb301d
AP
3765(define-public emacs-clojure-mode
3766 (package
3767 (name "emacs-clojure-mode")
2fa6f63b 3768 (version "5.6.1")
8eeb301d
AP
3769 (source (origin
3770 (method url-fetch)
3771 (uri (string-append
3772 "https://github.com/clojure-emacs/clojure-mode/archive/"
3773 version ".tar.gz"))
3774 (file-name (string-append name "-" version ".tar.gz"))
3775 (sha256
3776 (base32
2fa6f63b 3777 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
8eeb301d 3778 (build-system emacs-build-system)
92d9cfef
AI
3779 (native-inputs
3780 `(("emacs-dash" ,emacs-dash)
3781 ("emacs-s" ,emacs-s)
3782 ("ert-runner" ,ert-runner)))
3783 (arguments
d1d41db6
MC
3784 `(#:tests? #t
3785 #:test-command '("ert-runner")))
7bf837fd 3786 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
3787 (synopsis "Major mode for Clojure code")
3788 (description
3789 "This Emacs package provides font-lock, indentation, navigation and basic
3790refactoring for the @uref{http://clojure.org, Clojure programming language}.
3791It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3792 (license license:gpl3+)))
d345491a
AP
3793
3794(define-public emacs-epl
3795 (package
3796 (name "emacs-epl")
3797 (version "0.8")
3798 (source (origin
3799 (method url-fetch)
3800 (uri (string-append
3801 "https://github.com/cask/epl/archive/"
3802 version ".tar.gz"))
5a6f7a68 3803 (file-name (string-append name "-" version ".tar.gz"))
d345491a
AP
3804 (sha256
3805 (base32
3806 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3807 (build-system emacs-build-system)
7bf837fd 3808 (home-page "https://github.com/cask/epl")
d345491a
AP
3809 (synopsis "Emacs Package Library")
3810 (description
3811 "A package management library for Emacs, based on @code{package.el}.
3812
3813The purpose of this library is to wrap all the quirks and hassle of
3814@code{package.el} into a sane API.")
3815 (license license:gpl3+)))
ad6c4bc4
AP
3816
3817(define-public emacs-queue
3818 (package
3819 (name "emacs-queue")
5f51f39e 3820 (version "0.2")
ad6c4bc4 3821 (source (origin
02736daa 3822 (method url-fetch)
f32ffa04 3823 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
3824 version ".el"))
3825 (sha256
3826 (base32
5f51f39e 3827 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
ad6c4bc4
AP
3828 (build-system emacs-build-system)
3829 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3830 (synopsis "Queue data structure for Emacs")
3831 (description
3832 "This Emacs library provides queue data structure. These queues can be
3833used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3834stack, i.e. elements can be added to the front or back of the queue, and can
3835be removed from the front. This type of data structure is sometimes called an
3836\"output-restricted deque\".")
3837 (license license:gpl3+)))
32abfcf4
AP
3838
3839(define-public emacs-pkg-info
3840 (package
3841 (name "emacs-pkg-info")
3842 (version "0.6")
3843 (source (origin
3844 (method url-fetch)
3845 (uri (string-append
3846 "https://github.com/lunaryorn/pkg-info.el/archive/"
3847 version ".tar.gz"))
3848 (file-name (string-append name "-" version ".tar.gz"))
3849 (sha256
3850 (base32
3851 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3852 (build-system emacs-build-system)
3853 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3854 (home-page "https://github.com/lunaryorn/pkg-info.el")
3855 (synopsis "Information about Emacs packages")
3856 (description
3857 "This library extracts information from the installed Emacs packages.")
3858 (license license:gpl3+)))
565bccc5
AP
3859
3860(define-public emacs-spinner
3861 (package
3862 (name "emacs-spinner")
cd4d96b8 3863 (version "1.7.3")
565bccc5 3864 (source (origin
02736daa 3865 (method url-fetch)
f32ffa04 3866 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
3867 version ".el"))
3868 (sha256
3869 (base32
cd4d96b8 3870 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
3871 (build-system emacs-build-system)
3872 (home-page "https://github.com/Malabarba/spinner.el")
3873 (synopsis "Emacs mode-line spinner for operations in progress")
3874 (description
3875 "This Emacs package adds spinners and progress-bars to the mode-line for
3876ongoing operations.")
3877 (license license:gpl3+)))
62a45cb6 3878
fd2d17cd
RJ
3879(define-public emacs-sparql-mode
3880 (package
3881 (name "emacs-sparql-mode")
3882 (version "2.0.1")
3883 (source (origin
3884 (method url-fetch)
3885 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3886 "v" version ".tar.gz"))
3887 (file-name (string-append name "-" version ".tar.gz"))
3888 (sha256
3889 (base32
3890 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3891 (build-system emacs-build-system)
3892 (home-page "https://github.com/ljos/sparql-mode")
3893 (synopsis "SPARQL mode for Emacs")
3894 (description "This package provides a major mode for Emacs that provides
3895syntax highlighting for SPARQL. It also provides a way to execute queries
3896against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3897possible to query other endpoints like DBPedia.")
3898 (license license:gpl3+)))
3899
6ede256f
DT
3900(define-public emacs-better-defaults
3901 (package
3902 (name "emacs-better-defaults")
3903 (version "0.1.3")
3904 (source
3905 (origin
3906 (method url-fetch)
3907 (uri (string-append "https://github.com/technomancy/better-defaults"
3908 "/archive/" version ".tar.gz"))
13384842 3909 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
3910 (sha256
3911 (base32
3912 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3913 (build-system emacs-build-system)
3914 (home-page "https://github.com/technomancy/better-defaults")
3915 (synopsis "Better defaults for Emacs")
3916 (description
3917 "Better defaults attempts to address the most obvious deficiencies of the
3918Emacs default configuration in uncontroversial ways that nearly everyone can
3919agree upon.")
3920 (license license:gpl3+)))
c5c08f1b 3921
7034791a
RJ
3922(define-public emacs-eprime
3923 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3924 (package
3925 (name "emacs-eprime")
3926 (version (string-append "20140513-" (string-take commit 7)))
3927 (source (origin
3928 (method url-fetch)
3929 (uri (string-append "https://raw.githubusercontent.com"
3930 "/AndrewHynes/eprime-mode/"
3931 commit "/eprime-mode.el"))
3932 (file-name (string-append "eprime-" version ".el"))
3933 (sha256
3934 (base32
3935 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3936 (build-system emacs-build-system)
3937 (home-page "https://github.com/AndrewHynes/eprime-mode")
3938 (synopsis "E-prime checking mode for Emacs")
3939 (description "This package provides an E-prime checking mode for Emacs
3940that highlights non-conforming text. The subset of the English language called
3941E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3942 (license license:gpl3+))))
3943
db29e598
KM
3944(define-public emacs-julia-mode
3945 ;; XXX: Upstream version remained stuck at 0.3. See
3946 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
3947 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
3948 (revision "1"))
3949 (package
3950 (name "emacs-julia-mode")
3951 (version (string-append "0.3-" revision "." (string-take commit 8)))
3952 (source
3953 (origin
3954 (method git-fetch)
3955 (uri (git-reference
3956 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
3957 (commit commit)))
3958 (file-name (string-append name "-" version "-checkout"))
3959 (sha256
3960 (base32
3961 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
3962 (build-system emacs-build-system)
3963 (arguments
d1d41db6
MC
3964 `(#:tests? #t
3965 #:test-command '("emacs" "--batch"
3966 "-l" "julia-mode-tests.el"
3967 "-f" "ert-run-tests-batch-and-exit")))
db29e598
KM
3968 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
3969 (synopsis "Major mode for Julia")
3970 (description "This Emacs package provides a mode for the Julia
3971programming language.")
3972 (license license:expat))))
3973
41184943
RJ
3974(define-public emacs-ess
3975 (package
3976 (name "emacs-ess")
a209907e 3977 (version "16.10")
41184943
RJ
3978 (source (origin
3979 (method url-fetch)
3980 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
3981 version ".tgz"))
3982 (sha256
3983 (base32
a209907e
KM
3984 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
3985 (modules '((guix build utils)))
3986 (snippet
3987 '(begin
3988 ;; Stop ESS from trying to bundle an external julia-mode.el.
3989 (substitute* "lisp/Makefile"
3990 (("^\tjulia-mode.elc\\\\\n") "")
3991 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
3992 "all: $(ELC) ess-custom.el"))))))
41184943
RJ
3993 (build-system gnu-build-system)
3994 (arguments
eaff063a 3995 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
a209907e 3996 `(#:make-flags (list (string-append "PREFIX=" %output)
eaff063a
RJ
3997 (string-append "ETCDIR=" %output "/"
3998 ,base-directory "/etc")
3999 (string-append "LISPDIR=" %output "/"
4000 ,base-directory))
4001 #:phases
4002 (modify-phases %standard-phases
4003 (delete 'configure)
4004 (add-before 'build 'more-shebang-patching
4005 (lambda* (#:key inputs #:allow-other-keys)
4006 (substitute* "Makeconf"
4007 (("SHELL = /bin/sh")
4008 (string-append "SHELL = " (which "sh"))))))
4009 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
4010 ;; them in HOME, so it needs to be writeable.
4011 (add-before 'build 'set-HOME
a209907e
KM
4012 (lambda _ (setenv "HOME" "/tmp") #t))
4013 (replace 'check
4014 (lambda _
4015 (zero? (system* "make" "test"))))))))
41184943
RJ
4016 (inputs
4017 `(("emacs" ,emacs-minimal)
2d7c4ae3 4018 ("r-minimal" ,r-minimal)))
41184943
RJ
4019 (native-inputs
4020 `(("perl" ,perl)
4021 ("texinfo" ,texinfo)
63096366
RW
4022 ("texlive" ,(texlive-union (list texlive-latex-natbib
4023 texlive-latex-seminar
4024 texlive-latex-hyperref
4025 texlive-tex-texinfo)))))
d062957a 4026 (home-page "https://ess.r-project.org/")
41184943
RJ
4027 (synopsis "Emacs mode for statistical analysis programs")
4028 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4029Emacs. It is designed to support editing of scripts and interaction with
4030various statistical analysis programs such as R and OpenBUGS.")
4031 (license license:gpl2+)))
4032
c5c08f1b
DT
4033(define-public emacs-smex
4034 (package
4035 (name "emacs-smex")
4036 (version "3.0")
4037 (source (origin
4038 (method url-fetch)
4039 (uri (string-append "https://raw.githubusercontent.com"
4040 "/nonsequitur/smex/" version "/smex.el"))
4041 (file-name (string-append "smex-" version ".el"))
4042 (sha256
4043 (base32
4044 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4045 (build-system emacs-build-system)
7bf837fd 4046 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
4047 (synopsis "M-x interface with Ido-style fuzzy matching")
4048 (description
4049 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4050convenient interface to your recently and most frequently used commands. And
4051to all the other commands, too.")
4052 (license license:gpl3+)))
3e5be84b
DT
4053
4054(define-public emacs-js2-mode
4055 (package
4056 (name "emacs-js2-mode")
4057 (version "20150909")
4058 (source (origin
4059 (method url-fetch)
4060 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4061 version ".tar.gz"))
4062 (file-name (string-append name "-" version ".tar.gz"))
4063 (sha256
4064 (base32
4065 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4066 (build-system emacs-build-system)
4067 (home-page "https://github.com/mooz/js2-mode/")
4068 (synopsis "Improved JavaScript editing mode for Emacs")
4069 (description
4070 "Js2-mode provides a JavaScript major mode for Emacs that is more
4071advanced than the built-in javascript-mode. Features include accurate syntax
4072highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4073errors and strict-mode warnings, smart line-wrapping within comments and
4074strings, and code folding.")
4075 (license license:gpl3+)))
b78b6e80
DT
4076
4077(define-public emacs-markdown-mode
4078 (package
4079 (name "emacs-markdown-mode")
2175a427 4080 (version "2.3")
b78b6e80
DT
4081 (source (origin
4082 (method url-fetch)
4083 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4084 "/markdown-mode/v" version
4085 "/markdown-mode.el"))
4086 (file-name (string-append "markdown-mode-" version ".el"))
4087 (sha256
4088 (base32
2175a427 4089 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
b78b6e80
DT
4090 (build-system emacs-build-system)
4091 (home-page "http://jblevins.org/projects/markdown-mode/")
4092 (synopsis "Emacs Major mode for Markdown files")
4093 (description
4094 "Markdown-mode is a major mode for editing Markdown-formatted text files
4095in Emacs.")
4096 (license license:gpl3+)))
a2670dde 4097
659f790b
OP
4098(define-public emacs-edit-indirect
4099 (package
4100 (name "emacs-edit-indirect")
4101 (version "0.1.4")
4102 (source
4103 (origin
4104 (method url-fetch)
4105 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4106 version ".tar.gz"))
4107 (file-name (string-append name "-" version ".tar.gz"))
4108 (sha256
4109 (base32
4110 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4111 (build-system emacs-build-system)
4112 (home-page "https://github.com/Fanael/edit-indirect")
4113 (synopsis "Edit regions in separate buffers")
4114 (description "This package allows you to edit regions in separate buffers,
4115like @code{org-edit-src-code} but for arbitrary regions.")
4116 (license license:gpl3+)))
4117
a2670dde
DT
4118(define-public emacs-projectile
4119 (package
4120 (name "emacs-projectile")
6461c44c 4121 (version "0.14.0")
a2670dde
DT
4122 (source (origin
4123 (method url-fetch)
4124 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4125 "/projectile/v" version "/projectile.el"))
4126 (file-name (string-append "projectile-" version ".el"))
4127 (sha256
4128 (base32
6461c44c 4129 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
4130 (build-system emacs-build-system)
4131 (propagated-inputs
4132 `(("emacs-dash" ,emacs-dash)
4133 ("emacs-pkg-info" ,emacs-pkg-info)))
4134 (home-page "https://github.com/bbatsov/projectile")
4135 (synopsis "Manage and navigate projects in Emacs easily")
4136 (description
4137 "This library provides easy project management and navigation. The
4138concept of a project is pretty basic - just a folder containing special file.
4139Currently git, mercurial and bazaar repos are considered projects by default.
4140If you want to mark a folder manually as a project just create an empty
4141.projectile file in it.")
4142 (license license:gpl3+)))
4aea1e01
DT
4143
4144(define-public emacs-elfeed
4145 (package
4146 (name "emacs-elfeed")
4fca8a02 4147 (version "2.3.0")
4aea1e01
DT
4148 (source (origin
4149 (method url-fetch)
4150 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4151 version ".tar.gz"))
4152 (file-name (string-append name "-" version ".tar.gz"))
4153 (sha256
4154 (base32
4fca8a02 4155 "1fd1mx0q1qb9vgdzls5ppxfriyid48blg8smgjspiazp7kxakzxv"))))
4aea1e01 4156 (build-system emacs-build-system)
568f977f 4157 (arguments
d1d41db6
MC
4158 `(#:tests? #t
4159 #:test-command '("make" "test")))
4aea1e01
DT
4160 (home-page "https://github.com/skeeto/elfeed")
4161 (synopsis "Atom/RSS feed reader for Emacs")
4162 (description
4163 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4164and RSS, with a user interface inspired by notmuch.")
4165 (license license:gpl3+)))
c86f0207
DT
4166
4167(define-public emacs-rainbow-delimiters
4168 (package
4169 (name "emacs-rainbow-delimiters")
4170 (version "2.1.3")
4171 (source (origin
4172 (method url-fetch)
4173 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4174 "/rainbow-delimiters/" version
4175 "/rainbow-delimiters.el"))
4176 (file-name (string-append "rainbow-delimiters-" version ".el"))
4177 (sha256
4178 (base32
4179 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4180 (build-system emacs-build-system)
4181 (home-page "https://github.com/Fanael/rainbow-delimiters")
4182 (synopsis "Highlight brackets according to their depth")
4183 (description
4184 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4185highlights parentheses, brackets, and braces according to their depth. Each
4186successive level is highlighted in a different color, making it easy to spot
4187matching delimiters, orient yourself in the code, and tell which statements
4188are at a given level.")
4189 (license license:gpl3+)))
65b49ae7 4190
d95e8e01
RJ
4191(define-public emacs-rainbow-identifiers
4192 (package
4193 (name "emacs-rainbow-identifiers")
4194 (version "0.2.2")
4195 (source (origin
4196 (method url-fetch)
4197 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4198 "/rainbow-identifiers/" version
4199 "/rainbow-identifiers.el"))
4200 (file-name (string-append "rainbow-identifiers-" version ".el"))
4201 (sha256
4202 (base32
4203 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4204 (build-system emacs-build-system)
4205 (home-page "https://github.com/Fanael/rainbow-identifiers")
4206 (synopsis "Highlight identifiers in source code")
4207 (description
4208 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4209identifiers based on their names. Each identifier gets a color based on a hash
4210of its name.")
4211 (license license:bsd-2)))
4212
9619a95e
RJ
4213(define-public emacs-rainbow-mode
4214 (package
4215 (name "emacs-rainbow-mode")
61b31ac4 4216 (version "0.13")
9619a95e
RJ
4217 (source (origin
4218 (method url-fetch)
4219 (uri (string-append
4220 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4221 (sha256
4222 (base32
61b31ac4 4223 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
9619a95e
RJ
4224 (build-system emacs-build-system)
4225 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4226 (synopsis "Colorize color names in buffers")
4227 (description
4228 "This minor mode sets background color to strings that match color
4229names, e.g. #0000ff is displayed in white with a blue background.")
4230 (license license:gpl3+)))
4231
fede3a90
RW
4232(define-public emacs-visual-fill-column
4233 (package
4234 (name "emacs-visual-fill-column")
32e23aba 4235 (version "1.11")
fede3a90
RW
4236 (source (origin
4237 (method url-fetch)
4238 (uri (string-append "https://codeload.github.com/joostkremers/"
4239 "visual-fill-column/tar.gz/" version))
4240 (file-name (string-append name "-" version ".tar.gz"))
4241 (sha256
4242 (base32
32e23aba 4243 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
fede3a90
RW
4244 (build-system emacs-build-system)
4245 (home-page "https://github.com/joostkremers/visual-fill-column")
4246 (synopsis "Fill-column for visual-line-mode")
4247 (description
4248 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4249the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4250wrapping lines at the window edge, which is the standard behaviour of
4251@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4252@code{fill-column} is too large for the window, the text is wrapped at the
4253window edge.")
4254 (license license:gpl3+)))
4255
0ef1c223
KM
4256(define-public emacs-writeroom
4257 (package
4258 (name "emacs-writeroom")
4259 (version "3.7")
4260 (source (origin
4261 (method url-fetch)
4262 (uri (string-append
4263 "https://github.com/joostkremers/writeroom-mode/archive/"
4264 version ".tar.gz"))
4265 (file-name (string-append name "-" version ".tar.gz"))
4266 (sha256
4267 (base32
4268 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4269 (build-system emacs-build-system)
4270 (propagated-inputs
4271 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4272 (home-page "https://github.com/joostkremers/writeroom-mode")
4273 (synopsis "Distraction-free writing for Emacs")
4274 (description
4275 "This package defines a minor mode for distraction-free writing. Some of
4276the default effects include entering fullscreen, deleting other windows of the
4277current frame, disabling the mode line, and adding margins to the buffer that
4278restrict the text width to 80 characters.")
4279 (license license:bsd-3)))
4280
65b49ae7
DT
4281(define-public emacs-ido-completing-read+
4282 (package
4283 (name "emacs-ido-completing-read+")
4284 (version "3.12")
4285 (source (origin
4286 (method url-fetch)
4287 (uri (string-append "https://raw.githubusercontent.com"
4288 "/DarwinAwardWinner/ido-ubiquitous/v"
4289 version "/ido-completing-read+.el"))
4290 (file-name (string-append "ido-completing-read+-" version ".el"))
4291 (sha256
4292 (base32
4293 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4294 (build-system emacs-build-system)
4295 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4296 (synopsis "Replacement for completing-read using ido")
4297 (description
4298 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4299Importantly, it detects edge cases that ordinary ido cannot handle and either
4300adjusts them so ido can handle them, or else simply falls back to the standard
4301Emacs completion function instead.")
4302 (license license:gpl3+)))
529fe992
DT
4303
4304(define-public emacs-ido-ubiquitous
4305 (package
4306 (name "emacs-ido-ubiquitous")
4307 (version "3.12")
4308 (source (origin
4309 (method url-fetch)
4310 (uri (string-append "https://raw.githubusercontent.com"
4311 "/DarwinAwardWinner/ido-ubiquitous/v"
4312 version "/ido-ubiquitous.el"))
4313 (file-name (string-append "ido-ubiquitous-" version ".el"))
4314 (sha256
4315 (base32
4316 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4317 (build-system emacs-build-system)
4318 (propagated-inputs
4319 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4320 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4321 (synopsis "Use ido (nearly) everywhere")
4322 (description
4323 "Ido-ubiquitous enables ido-style completion for almost every function
4324that uses the standard completion function completing-read.")
4325 (license license:gpl3+)))
63de1231
DT
4326
4327(define-public emacs-yaml-mode
4328 (package
4329 (name "emacs-yaml-mode")
847284e1 4330 (version "0.0.13")
63de1231
DT
4331 (source (origin
4332 (method url-fetch)
4333 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4334 "/yaml-mode/v" version "/yaml-mode.el"))
4335 (file-name (string-append "yaml-mode-" version ".el"))
4336 (sha256
4337 (base32
847284e1 4338 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
4339 (build-system emacs-build-system)
4340 (home-page "https://github.com/yoshiki/yaml-mode")
4341 (synopsis "Major mode for editing YAML files")
4342 (description
4343 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4344serialization format. It was initially developed by Yoshiki Kurihara and many
4345features were added by Marshall Vandegrift. As YAML and Python share the fact
4346that indentation determines structure, this mode provides indentation and
4347indentation command behavior very similar to that of python-mode.")
4348 (license license:gpl3+)))
7529c883
DT
4349
4350(define-public emacs-web-mode
4351 (package
4352 (name "emacs-web-mode")
4353 (version "14")
4354 (source (origin
4355 (method url-fetch)
4356 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4357 "/web-mode/v" version "/web-mode.el"))
4358 (file-name (string-append "web-mode-" version ".el"))
4359 (sha256
4360 (base32
4361 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
4362 (build-system emacs-build-system)
4363 (synopsis "Major mode for editing web templates")
4364 (description "Web-mode is an Emacs major mode for editing web templates
4365aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4366client/server side engines). Web-mode is compatible with many template
4367engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4368Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4369Dust.js, React/JSX, Angularjs, ejs, etc.")
4370 (home-page "http://web-mode.org/")
4371 (license license:gpl3+)))
ae609001 4372
814da59f
CB
4373(define-public emacs-wgrep
4374 (package
4375 (name "emacs-wgrep")
4376 (version "2.1.10")
4377 (source (origin
4378 (method url-fetch)
4379 (uri (string-append
4380 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
4381 version ".tar.gz"))
4382 (file-name (string-append name "-" version ".tar.gz"))
4383 (sha256
4384 (base32
4385 "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
4386 (build-system emacs-build-system)
4387 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4388 (synopsis "Edit a grep buffer and apply those changes to the files")
4389 (description
4390 "Emacs wgrep allows you to edit a grep buffer and apply those changes to
4391the file buffer.")
4392 (license license:gpl3+)))
4393
ae609001
MJ
4394(define-public emacs-helm
4395 (package
4396 (name "emacs-helm")
e0b0cafd 4397 (version "2.9.0")
ae609001
MJ
4398 (source (origin
4399 (method url-fetch)
4400 (uri (string-append
4401 "https://github.com/" name "/helm/archive/v"
4402 version ".tar.gz"))
4403 (file-name (string-append name "-" version ".tar.gz"))
4404 (sha256
4405 (base32
e0b0cafd 4406 "1798gn0za11cxdbi436javfczv4abniccxcl0jppl463r8lzb8is"))))
ae609001
MJ
4407 (build-system emacs-build-system)
4408 (propagated-inputs
4409 `(("emacs-async" ,emacs-async)
4410 ("emacs-popup" ,emacs-popup)))
4411 (home-page "https://emacs-helm.github.io/helm/")
4412 (synopsis "Incremental completion and selection narrowing
4413framework for Emacs")
4414 (description "Helm is incremental completion and selection narrowing
4415framework for Emacs. It will help steer you in the right direction when
4416you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4417of @code{anything.el} originally written by Tamas Patrovic and can be
4418considered to be its successor. Helm sets out to clean up the legacy code in
4419@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4420not tied in the trap of backward compatibility.")
4421 (license license:gpl3+)))
f9be4366 4422
03cc1cf3
KM
4423(define-public emacs-helm-swoop
4424 (package
4425 (name "emacs-helm-swoop")
d3d57661 4426 (version "1.7.4")
03cc1cf3
KM
4427 (source (origin
4428 (method url-fetch)
4429 (uri (string-append
4430 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4431 version
4432 ".tar.gz"))
4433 (file-name (string-append name "-" version ".tar.gz"))
4434 (sha256
4435 (base32
d3d57661 4436 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
03cc1cf3
KM
4437 (build-system emacs-build-system)
4438 (propagated-inputs
4439 `(("emacs-helm" ,emacs-helm)))
4440 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4441 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4442 (description
4443 "This package builds on the Helm interface to provide several commands
4444for search-based navigation of buffers.")
4445 (license license:gpl2+)))
4446
f69c29f7
KM
4447(define-public emacs-helm-projectile
4448 (package
4449 (name "emacs-helm-projectile")
4450 (version "0.14.0")
4451 (source (origin
4452 (method url-fetch)
4453 (uri (string-append
4454 "https://github.com/bbatsov/helm-projectile/archive/v"
4455 version
4456 ".tar.gz"))
4457 (file-name (string-append name "-" version ".tar.gz"))
4458 (sha256
4459 (base32
4460 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4461 (build-system emacs-build-system)
4462 (propagated-inputs
4463 `(("emacs-dash" ,emacs-dash)
4464 ("emacs-helm" ,emacs-helm)
4465 ("emacs-projectile" ,emacs-projectile)))
4466 (home-page "https://github.com/bbatsov/helm-projectile")
4467 (synopsis "Helm integration for Projectile")
4468 (description
4469 "This Emacs library provides a Helm interface for Projectile.")
4470 (license license:gpl3+)))
4471
2e4bb8c8 4472(define-public emacs-helm-make
555a7429 4473 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
2e4bb8c8
OP
4474 (revision "1"))
4475 (package
4476 (name "emacs-helm-make")
4477 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
4478 (source
4479 (origin
4480 (method git-fetch)
4481 (uri (git-reference
4482 (url "https://github.com/abo-abo/helm-make.git")
4483 (commit commit)))
4484 (file-name (string-append name "-" version "-checkout"))
4485 (sha256
4486 (base32
555a7429 4487 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
2e4bb8c8
OP
4488 (build-system emacs-build-system)
4489 (propagated-inputs
4490 `(("emacs-helm" ,emacs-helm)
4491 ("emacs-projectile" ,emacs-projectile)))
4492 (home-page "https://github.com/abo-abo/helm-make")
4493 (synopsis "Select a Makefile target with helm")
4494 (description "@code{helm-make} or @code{helm-make-projectile} will give
4495you a @code{helm} selection of directory Makefile's targets. Selecting a
4496target will call @code{compile} on it.")
4497 (license license:gpl3+))))
4498
f9be4366
AP
4499(define-public emacs-cider
4500 (package
4501 (name "emacs-cider")
1f143575 4502 (version "0.15.1")
f9be4366
AP
4503 (source (origin
4504 (method url-fetch)
4505 (uri (string-append
4506 "https://github.com/clojure-emacs/cider/archive/v"
4507 version ".tar.gz"))
4508 (file-name (string-append name "-" version ".tar.gz"))
4509 (sha256
4510 (base32
1f143575 4511 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
f9be4366 4512 (build-system emacs-build-system)
65e4109c
SB
4513 (arguments
4514 '(#:exclude ; Don't exclude 'cider-test.el'.
4515 '("^\\.dir-locals\\.el$" "^test/")))
f9be4366
AP
4516 (propagated-inputs
4517 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4518 ("emacs-spinner" ,emacs-spinner)
4519 ("emacs-pkg-info" ,emacs-pkg-info)
d0a52052 4520 ("emacs-queue" ,emacs-queue)))
f9be4366
AP
4521 (home-page "https://cider.readthedocs.org/")
4522 (synopsis "Clojure development environment for Emacs")
4523 (description
4524 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
4525provide an interactive development experience similar to the one you'd get
4526when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
4527Geiser) and Smalltalk.
4528
4529CIDER is the successor to the now deprecated combination of using SLIME +
4530swank-clojure for Clojure development.
4531
4532There are plenty of differences between CIDER and SLIME, but the core ideas
4533are pretty much the same (and SLIME served as the principle inspiration for
4534CIDER).")
4535 (license license:gpl3+)))
26e08b4d 4536
e982500f
RW
4537;; There hasn't been a tag or release since 2015, so we take the latest
4538;; commit.
4539(define-public emacs-sly
4540 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
4541 (revision "1"))
4542 (package
4543 (name "emacs-sly")
4544 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
4545 (source
4546 (origin
4547 (method git-fetch)
4548 (uri (git-reference
4549 (url "https://github.com/joaotavora/sly.git")
4550 (commit commit)))
aeb95f1f 4551 (file-name (git-file-name name version))
e982500f
RW
4552 (sha256
4553 (base32
4554 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
4555 (build-system emacs-build-system)
4556 (arguments
4557 `(#:include (cons "^lib\\/" %default-include)
4558 #:phases
4559 ;; The package provides autoloads.
4560 (modify-phases %standard-phases
4561 (delete 'make-autoloads))))
4562 (home-page "https://github.com/joaotavora/sly")
4563 (synopsis "Sylvester the Cat's Common Lisp IDE")
4564 (description
4565 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
4566contains the following improvements over it:
4567
4568@enumerate
4569@item Completely redesigned REPL based on Emacs's own full-featured
4570 @code{comint.el}
4571@item Live code annotations via a new @code{sly-stickers} contrib
4572@item Consistent interactive button interface. Everything can be copied to
4573 the REPL.
4574@item Multiple inspectors with independent history
4575@item Regexp-capable @code{M-x sly-apropos}
4576@item Contribs are first class SLY citizens and enabled by default
4577@item Use ASDF to loads contribs on demand.
4578@end enumerate
4579
4580SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
4581xref, etc...) are still available, but with better integration.")
4582 (license license:gpl3+))))
4583
26e08b4d 4584(define-public emacs-lua-mode
69dcad33
AW
4585 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
4586 (revision "1"))
4587 (package
4588 (name "emacs-lua-mode")
4589 (version (string-append "20151025." revision "-" (string-take commit 9)))
4590 (home-page "https://github.com/immerrr/lua-mode/")
4591 (source (origin
4592 (method git-fetch)
4593 (uri (git-reference
4594 (url home-page)
4595 (commit commit)))
4596 (file-name (string-append name "-" version ".checkout"))
4597 (sha256
4598 (base32
4599 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
4600 (build-system emacs-build-system)
4601 (synopsis "Major mode for lua")
4602 (description
4603 "This Emacs package provides a mode for @uref{https://www.lua.org/,
26e08b4d 4604Lua programing language}.")
69dcad33 4605 (license license:gpl2+))))
0202612d 4606
4607(define-public emacs-ebuild-mode
4608 (package
4609 (name "emacs-ebuild-mode")
4735393a 4610 (version "1.37")
0202612d 4611 (source (origin
4612 (method url-fetch)
4613 (uri (string-append
4614 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
4615 "-" version ".tar.xz"))
4616 (file-name (string-append name "-" version ".tar.xz"))
4617 (sha256
4618 (base32
4735393a 4619 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
0202612d 4620 (build-system emacs-build-system)
4621 (home-page "https://devmanual.gentoo.org")
4622 (synopsis "Major modes for Gentoo package files")
4623 (description
4624 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
4625news items, openrc and runscripts.")
4626 (license license:gpl2+)))
a9fbe94e 4627
2edbfbf5 4628(define-public emacs-evil
4629 (package
4630 (name "emacs-evil")
511d8a02 4631 (version "1.2.13")
2edbfbf5 4632 (source
4633 (origin
4634 (method url-fetch)
511d8a02 4635 (uri (string-append "https://github.com/emacs-evil/evil/archive/"
4636 version ".tar.gz"))
4637 (file-name (string-append name "-" version ".tar.gz"))
2edbfbf5 4638 (sha256
4639 (base32
511d8a02 4640 "1z63zsxmsc6mh74wv6065carwqmgs7b7lz5044s12xvgsjfbwi8h"))))
2edbfbf5 4641 (build-system emacs-build-system)
4642 (propagated-inputs
4643 `(("emacs-undo-tree" ,emacs-undo-tree)
4644 ("emacs-goto-chg" ,emacs-goto-chg)))
511d8a02 4645 (home-page "https://github.com/emacs-evil/evil")
2edbfbf5 4646 (synopsis "Extensible Vi layer for Emacs")
4647 (description
4648 "Evil is an extensible vi layer for Emacs. It emulates the
4649main features of Vim, and provides facilities for writing custom
4650extensions.")
4651 (license license:gpl3+)))
4652
a0bee5e7
PN
4653(define-public emacs-evil-collection
4654 (let ((commit "f40704a57fd33b4bfad64147a2b771fc8961fdfc")
4655 (revision "1"))
4656 (package
4657 (name "emacs-evil-collection")
4658 (version (git-version "20180425" revision commit))
4659 (source (origin
4660 (method git-fetch)
4661 (uri (git-reference
4662 (url "https://github.com/emacs-evil/evil-collection")
4663 (commit commit)))
4664 (file-name (string-append name "-" version "-checkout"))
4665 (sha256
4666 (base32
4667 "0qn19k0f3isnbi1hkmcf3qjxbyvp23m5ak5ny7623qgwb2nwz1l5"))))
4668 (build-system emacs-build-system)
4669 (propagated-inputs
4670 `(("emacs-evil" ,emacs-evil)))
4671 (home-page "https://github.com/emacs-evil/evil-collection")
4672 (synopsis "Collection of Evil bindings for many major and minor modes")
4673 (description "This is a collection of Evil bindings for the parts of
4674Emacs that Evil does not cover properly by default, such as @code{help-mode},
4675@code{M-x calendar}, Eshell and more.")
4676 (license license:gpl3+))))
4677
ce74e520 4678(define-public emacs-goto-chg
4679 (package
4680 (name "emacs-goto-chg")
4681 (version "1.6")
4682 (source
4683 (origin
4684 (method url-fetch)
4685 ;; There is no versioned source.
4686 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 4687 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 4688 (sha256
4689 (base32
4690 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4691 (build-system emacs-build-system)
4692 ;; There is no other home page.
4693 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4694 (synopsis "Go to the last change in the Emacs buffer")
4695 (description
4696 "This package provides @code{M-x goto-last-change} command that goes to
4697the point of the most recent edit in the current Emacs buffer. When repeated,
4698go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4699used for reverse direction.")
4700 (license license:gpl2+)))
4701
a1eba1be
VD
4702(define-public emacs-monroe
4703 (package
4704 (name "emacs-monroe")
b125649a 4705 (version "0.3.1")
a1eba1be
VD
4706 (source
4707 (origin
4708 (method url-fetch)
b125649a
VD
4709 (uri (string-append "https://github.com/sanel/monroe/archive/"
4710 version ".tar.gz"))
4711 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
4712 (sha256
4713 (base32
b125649a 4714 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 4715 (build-system emacs-build-system)
b125649a 4716 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
4717 (synopsis "Clojure nREPL client for Emacs")
4718 (description
4719 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4720distribution, primarily targeting Clojure users")
4721 (license license:gpl3+)))
4722
a9fbe94e
LC
4723(define-public emacs-writegood-mode
4724 (package
4725 (name "emacs-writegood-mode")
4726 (version "2.0.2")
7bf837fd 4727 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
4728 (source (origin
4729 (method git-fetch)
4730 (uri (git-reference
4731 (url home-page)
4732 (commit (string-append "v" version))))
4733 (sha256
4734 (base32
4735 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
4736 (file-name (string-append name "-checkout"))))
4737 (build-system emacs-build-system)
4738 (synopsis "Polish up poor writing on the fly")
4739 (description
4740 "This minor mode tries to find and highlight problems with your writing
4741in English as you type. It primarily detects \"weasel words\" and abuse of
4742passive voice.")
4743 (license license:gpl3+)))
e08ca4b9 4744
4745(define-public emacs-neotree
4746 (package
4747 (name "emacs-neotree")
95058772 4748 (version "0.5.2")
e08ca4b9 4749 (home-page "https://github.com/jaypei/emacs-neotree")
4750 (source (origin
4751 (method url-fetch)
4752 (uri (string-append
4753 "https://github.com/jaypei/" name
95058772 4754 "/archive/" version ".tar.gz"))
e08ca4b9 4755 (sha256
4756 (base32
95058772 4757 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
f409d0aa 4758 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 4759 (build-system emacs-build-system)
4760 (synopsis "Folder tree view for Emacs")
4761 (description "This Emacs package provides a folder tree view.")
4762 (license license:gpl3+)))
59065bb3
NG
4763
4764(define-public emacs-org
4765 (package
4766 (name "emacs-org")
769e7155
CL
4767 ;; emacs-org-contrib inherits from this package. Please update its sha256
4768 ;; checksum as well.
1a04c893 4769 (version "9.1.11")
59065bb3
NG
4770 (source (origin
4771 (method url-fetch)
2d19a7e4 4772 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
4773 version ".tar"))
4774 (sha256
4775 (base32
1a04c893 4776 "0i27g5qbkfqbxhgiz917pjwkxg3rwid99d0ickwx43bzq0zi7c1m"))))
59065bb3 4777 (build-system emacs-build-system)
7cbe77d7 4778 (home-page "https://orgmode.org/")
59065bb3
NG
4779 (synopsis "Outline-based notes management and organizer")
4780 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4781lists, and project planning with a fast and effective plain-text system. It
4782also is an authoring system with unique support for literate programming and
4783reproducible research.")
4784 (license license:gpl3+)))
41392b9a 4785
8e2ae7ee
CB
4786(define-public emacs-org-contrib
4787 (package
4788 (inherit emacs-org)
4789 (name "emacs-org-contrib")
1a04c893 4790 (version "20180423")
8e2ae7ee
CB
4791 (source (origin
4792 (method url-fetch)
7cbe77d7 4793 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5ecd2d28 4794 version ".tar"))
8e2ae7ee
CB
4795 (sha256
4796 (base32
1a04c893 4797 "1aggvdy74q8p79xyc19zring5gjvlzp6lbsq8ar319zkmcjrapqd"))))
8e2ae7ee
CB
4798 (arguments
4799 `(#:modules ((guix build emacs-build-system)
4800 (guix build utils)
4801 (guix build emacs-utils)
4802 (ice-9 ftw)
4803 (srfi srfi-1))
4804 #:phases
4805 (modify-phases %standard-phases
4806 (add-after 'install 'delete-org-files
4807 (lambda* (#:key inputs outputs #:allow-other-keys)
4808 (let* ((out (assoc-ref outputs "out"))
4809 (org (assoc-ref inputs "emacs-org"))
4810 (contrib-files
4811 (map basename (find-files out)))
4812 (org+contrib-files
4813 (map basename (find-files org)))
4814 (duplicates (lset-intersection
4815 string=? contrib-files org+contrib-files)))
4816 (with-directory-excursion
4817 (string-append
5ecd2d28 4818 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
8e2ae7ee
CB
4819 (for-each delete-file duplicates))
4820 #t))))))
4821 (propagated-inputs
0b8823d8
MC
4822 `(("emacs-org" ,emacs-org)
4823 ("emacs-scel" ,emacs-scel)))
35377cfa 4824 (synopsis "Contributed packages to Org mode")
8e2ae7ee
CB
4825 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4826lists, and project planning with a fast and effective plain-text system.
4827
77e3ce3e 4828This package is equivalent to org-plus-contrib, but only includes additional
8e2ae7ee
CB
4829files that you would find in @file{contrib/} from the git repository.")))
4830
41392b9a 4831(define-public emacs-flx
4832 (package
4833 (name "emacs-flx")
4834 (version "0.6.1")
4835 (source
4836 (origin
4837 (method url-fetch)
4838 (uri (string-append "https://github.com/lewang/"
4839 "flx/archive/v" version ".tar.gz"))
4840 (sha256
4841 (base32
4842 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
4843 (file-name (string-append name "-" version ".tar.gz"))))
4844 (build-system emacs-build-system)
4845 (home-page "https://github.com/lewang/flx")
4846 (synopsis "Fuzzy matching for Emacs")
4847 (description
4848 "Flx provides fuzzy matching for emacs a la sublime text.
4849The sorting algorithm is a balance between word beginnings (abbreviation)
4850and contiguous matches (substring). The longer the substring match,
4851the higher it scores. This maps well to how we think about matching.
4852Flx has support for ido (interactively do things) through flx-ido.")
4853 (license license:gpl3+)))
9657aba4 4854
4855(define-public emacs-cyberpunk-theme
4856 (package
4857 (name "emacs-cyberpunk-theme")
88e6086e 4858 (version "1.19")
9657aba4 4859 (source
4860 (origin
4861 (method url-fetch)
4862 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
4863 "archive/" version ".tar.gz"))
4864 (sha256
4865 (base32
88e6086e 4866 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
9657aba4 4867 (file-name (string-append name "-" version ".tar.gz"))))
4868 (build-system emacs-build-system)
4869 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
4870 (synopsis "Cyberpunk theme for emacs built-in color theme support")
4871 (description
4872 "Cyberpunk color theme for the emacs 24+ built-in color theme support
4873known loosely as deftheme. Many mode-specific customizations are included.")
4874 (license license:gpl3+)))
840224aa 4875
8f493950 4876(define-public emacs-danneskjold-theme
4877 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
4878 (revision "1"))
4879 (package
4880 (name "emacs-danneskjold-theme")
4881 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4882 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
4883 (source
4884 (origin
4885 (method git-fetch)
4886 (uri (git-reference
4887 (url home-page)
4888 (commit commit)))
4889 (file-name (string-append name "-" version "-checkout"))
4890 (sha256
4891 (base32
4892 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
4893 (build-system emacs-build-system)
4894 (arguments
4895 `(#:phases
4896 (modify-phases %standard-phases
4897 (add-after 'unpack 'delete-screenshots
4898 (lambda _
4899 (delete-file-recursively "screenshots") #t)))))
4900 (synopsis "High-contrast Emacs theme")
4901 (description
4902 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
4903 (license license:gpl3+))))
4904
1ba67b62 4905(define-public emacs-dream-theme
4906 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
4907 (revision "1"))
4908 (package
4909 (name "emacs-dream-theme")
4910 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4911 (source
4912 (origin
4913 (method git-fetch)
4914 (uri (git-reference
4915 (url "https://github.com/djcb/dream-theme")
4916 (commit commit)))
4917 (file-name (string-append name "-" version "-checkout"))
4918 (sha256
4919 (base32
4920 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
4921 (build-system emacs-build-system)
4922 (home-page "https://github.com/djcb/dream-theme")
4923 (synopsis "High-contrast Emacs theme")
4924 (description
4925 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
4926by zenburn, sinburn and similar themes, but slowly diverging from them.")
4927 (license license:gpl3+))))
4928
840224aa 4929(define-public emacs-auto-complete
4930 (package
4931 (name "emacs-auto-complete")
4932 (version "1.5.1")
4933 (source
4934 (origin
4935 (method url-fetch)
4936 (uri (string-append "https://github.com/auto-complete/"
4937 "auto-complete/archive/v" version ".tar.gz"))
4938 (sha256
4939 (base32
4940 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
4941 (file-name (string-append name "-" version ".tar.gz"))))
4942 (build-system emacs-build-system)
4943 (propagated-inputs
4944 `(("emacs-popup" ,emacs-popup)))
4945 (home-page "https://github.com/auto-complete/auto-complete")
4946 (synopsis "Intelligent auto-completion extension for Emacs")
4947 (description
4948 "Auto-Complete is an intelligent auto-completion extension for Emacs.
4949It extends the standard Emacs completion interface and provides an environment
4950that allows users to concentrate more on their own work. Its features are:
4951a visual interface, reduce overhead of completion by using statistic method,
4952extensibility.")
4953 (license license:gpl3+)))
154c71e0
AI
4954
4955(define-public m17n-db
4956 (package
4957 (name "m17n-db")
4958 (version "1.7.0")
4959 (source
4960 (origin
4961 (method url-fetch)
4962 (uri (string-append "mirror://savannah/m17n/m17n-db-"
4963 version ".tar.gz"))
4964 (sha256
4965 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
4966 (build-system gnu-build-system)
4967 (inputs
7c90d0f4 4968 `(("gettext" ,gettext-minimal)))
154c71e0
AI
4969 (arguments
4970 `(#:configure-flags
4971 (list (string-append "--with-charmaps="
4972 (assoc-ref %build-inputs "libc")
4973 "/share/i18n/charmaps"))))
4974 ;; With `guix lint' the home-page URI returns a small page saying
4975 ;; that your browser does not handle frames. This triggers the "URI
4976 ;; returns suspiciously small file" warning.
340978d7 4977 (home-page "https://www.nongnu.org/m17n/")
154c71e0
AI
4978 (synopsis "Multilingual text processing library (database)")
4979 (description "The m17n library realizes multilingualization of
4980many aspects of applications. The m17n library represents
4981multilingual text as an object named M-text. M-text is a string with
4982attributes called text properties, and designed to substitute for
4983string in C. Text properties carry any information required to input,
4984display and edit the text.
4985
4986This package contains the library database.")
4987 (license license:lgpl2.1+)))
a80b60f4
AI
4988
4989(define-public m17n-lib
4990 (package
4991 (name "m17n-lib")
4992 (version "1.7.0")
4993 (source
4994 (origin
4995 (method url-fetch)
966a543b
LC
4996 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
4997 version ".tar.gz"))
a80b60f4
AI
4998 (sha256
4999 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
5000 (build-system gnu-build-system)
5001 (inputs
5002 `(("fribidi" ,fribidi)
5003 ("gd" ,gd)
5004 ("libotf" ,libotf)
5005 ("libxft" ,libxft)
5006 ("libxml2" ,libxml2)
5007 ("m17n-db" ,m17n-db)))
5008 (arguments
5009 `(#:parallel-build? #f))
5010 ;; With `guix lint' the home-page URI returns a small page saying
5011 ;; that your browser does not handle frames. This triggers the "URI
5012 ;; returns suspiciously small file" warning.
340978d7 5013 (home-page "https://www.nongnu.org/m17n/")
a80b60f4
AI
5014 (synopsis "Multilingual text processing library (runtime)")
5015 (description "The m17n library realizes multilingualization of
5016many aspects of applications. The m17n library represents
5017multilingual text as an object named M-text. M-text is a string with
5018attributes called text properties, and designed to substitute for
5019string in C. Text properties carry any information required to input,
5020display and edit the text.
5021
5022This package contains the library runtime.")
5023 (license license:lgpl2.1+)))
71d3ee1c
AI
5024
5025(define-public emacs-nginx-mode
5026 (package
5027 (name "emacs-nginx-mode")
5028 (version "1.1.4")
5029 (source
5030 (origin
5031 (method url-fetch)
5032 (uri (string-append
5033 "https://github.com/ajc/nginx-mode/archive/v"
5034 version ".tar.gz"))
5035 (file-name (string-append name "-" version ".tar.gz"))
5036 (sha256
5037 (base32
5038 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
5039 (build-system emacs-build-system)
5040 (home-page "https://github.com/ajc/nginx-mode")
5041 (synopsis "Emacs major mode for editing nginx config files")
5042 (description "This package provides an Emacs major mode for
5043editing nginx config files.")
5044 (license license:gpl2+)))
8f50634b
FB
5045
5046(define-public emacs-stream
5047 (package
5048 (name "emacs-stream")
5049 (version "2.2.0")
5050 (home-page "https://github.com/NicolasPetton/stream")
5051 (source
5052 (origin
5053 (method url-fetch)
5054 (file-name (string-append name "-" version ".tar.gz"))
5055 (uri (string-append home-page "/archive/"version ".tar.gz"))
5056 (sha256
5057 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5058 (build-system emacs-build-system)
5059 (synopsis "Implementation of streams for Emacs")
5060 (description "This library provides an implementation of streams for Emacs.
5061Streams are implemented as delayed evaluation of cons cells.")
5062 (license license:gpl3+)))
0fc06f3e
FB
5063
5064(define-public emacs-el-search
5065 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5066 (revision "1"))
5067 (package
5068 (name "emacs-el-search")
5069 ;; No ufficial release.
5070 (version (string-append "0.0-" revision "." (string-take commit 7)))
5071 (home-page "https://github.com/emacsmirror/el-search")
5072 (source
5073 (origin
5074 (method git-fetch)
5075 (file-name (string-append name "-" version ".tar.gz"))
5076 (uri (git-reference
5077 (commit commit)
5078 (url (string-append home-page ".git"))))
5079 (sha256
5080 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5081 (build-system emacs-build-system)
5082 (inputs `(("emacs-stream" ,emacs-stream)))
5083 (synopsis "Expression based interactive search for emacs-lisp-mode")
5084 (description "This package provides expression based interactive search
5085procedures for emacs-lisp-mode.")
5086 (license license:gpl3+))))
1e523180
MO
5087
5088(define-public emacs-ht
5089 (package
5090 (name "emacs-ht")
5091 (version "2.1")
5092 (source
5093 (origin
5094 (method url-fetch)
5095 (uri (string-append
5096 "https://github.com/Wilfred/ht.el/archive/"
5097 version ".tar.gz"))
5098 (file-name (string-append name "-" version ".tar.gz"))
5099 (sha256
5100 (base32
5101 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5102 (build-system emacs-build-system)
5103 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5104 (home-page "https://github.com/Wilfred/ht.el")
5105 (synopsis "Hash table library for Emacs")
5106 (description
5107 "This package simplifies the use of hash tables in elisp. It also
5108provides functions to convert hash tables from and to alists and plists.")
5109 (license license:gpl3+)))
5110
521f5d96
MO
5111(define-public emacs-log4e
5112 (package
5113 (name "emacs-log4e")
5114 (version "0.3.0")
5115 (source
5116 (origin
5117 (method url-fetch)
5118 (uri (string-append
5119 "https://github.com/aki2o/log4e/archive/v"
5120 version ".tar.gz"))
5121 (file-name (string-append name "-" version ".tar.gz"))
5122 (sha256
5123 (base32
5124 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5125 (build-system emacs-build-system)
5126 (arguments
5127 `(#:phases
5128 (modify-phases %standard-phases
5129 (add-after 'unpack 'remove-tests
5130 ;; Guile builder complains about null characters in some
5131 ;; strings of test files. Remove "test" directory (it is not
5132 ;; needed anyway).
5133 (lambda _
5134 (delete-file-recursively "test"))))))
5135 (home-page "https://github.com/aki2o/log4e")
5136 (synopsis "Logging framework for elisp")
5137 (description
5138 "This package provides a logging framework for elisp. It allows
5139you to deal with multiple log levels.")
5140 (license license:gpl3+)))
ba117841
MO
5141
5142(define-public emacs-gntp
5143 (package
5144 (name "emacs-gntp")
5145 (version "0.1")
5146 (source
5147 (origin
5148 (method url-fetch)
5149 (uri (string-append
5150 "https://github.com/tekai/gntp.el/archive/v"
5151 version ".tar.gz"))
5152 (file-name (string-append name "-" version ".tar.gz"))
5153 (sha256
5154 (base32
5155 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5156 (build-system emacs-build-system)
5157 (home-page "https://github.com/tekai/gntp.el")
5158 (synopsis "Growl Notification Protocol for Emacs")
5159 (description
5160 "This package implements the Growl Notification Protocol GNTP
5161described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5162It is incomplete as it only lets you send but not receive
5163notifications.")
5164 (license license:bsd-3)))
2c5e31fa
MO
5165
5166(define-public emacs-alert
5167 (package
5168 (name "emacs-alert")
5169 (version "1.2")
5170 (source
5171 (origin
5172 (method url-fetch)
5173 (uri (string-append
5174 "https://github.com/jwiegley/alert/archive/v"
5175 version ".tar.gz"))
5176 (file-name (string-append name "-" version ".tar.gz"))
5177 (sha256
5178 (base32
5179 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5180 (build-system emacs-build-system)
5181 (propagated-inputs
5182 `(("emacs-gntp" ,emacs-gntp)
5183 ("emacs-log4e" ,emacs-log4e)))
5184 (home-page "https://github.com/jwiegley/alert")
5185 (synopsis "Growl-style notification system for Emacs")
5186 (description
5187 "Alert is a Growl-workalike for Emacs which uses a common notification
5188interface and multiple, selectable \"styles\", whose use is fully
5189customizable by the user.")
5190 (license license:gpl2+)))
c695ed3c
MO
5191
5192(define-public emacs-mu4e-alert
5193 (package
5194 (name "emacs-mu4e-alert")
dd69ff6d 5195 (version "1.0")
c695ed3c
MO
5196 (source
5197 (origin
5198 (method url-fetch)
5199 (uri (string-append
5200 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5201 version ".tar.gz"))
5202 (file-name (string-append name "-" version ".tar.gz"))
5203 (sha256
5204 (base32
dd69ff6d 5205 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
5206 (build-system emacs-build-system)
5207 (propagated-inputs
5208 `(("emacs-alert" ,emacs-alert)
5209 ("emacs-s" ,emacs-s)
b6efe0e8
MC
5210 ("emacs-ht" ,emacs-ht)
5211 ("mu" ,mu)))
c695ed3c
MO
5212 (home-page "https://github.com/iqbalansari/mu4e-alert")
5213 (synopsis "Desktop notification for mu4e")
5214 (description
5215 "This package provides desktop notifications for mu4e.
5216Additionally it can display the number of unread emails in the
5217mode-line.")
5218 (license license:gpl3+)))
e967dd9c 5219
5220(define-public emacs-pretty-mode
5221 (package
5222 (name "emacs-pretty-mode")
5223 (version "2.0.3")
5224 (source
5225 (origin
5226 (method url-fetch)
5227 (uri (string-append "https://github.com/akatov/pretty-mode/"
5228 "archive/" version ".tar.gz"))
5229 (file-name (string-append name "-" version ".tar.gz"))
5230 (sha256
5231 (base32
5232 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5233 (build-system emacs-build-system)
5234 (home-page "https://github.com/akatov/pretty-mode")
5235 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5236 (description
5237 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5238 (license license:gpl3+)))
c1029f86
RW
5239
5240(define-public emacs-yasnippet
5241 (package
5242 (name "emacs-yasnippet")
bf1264ab 5243 (version "0.12.2")
c1029f86
RW
5244 (source (origin
5245 (method url-fetch)
5246 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5247 "archive/" version ".tar.gz"))
5248 (file-name (string-append name "-" version ".tar.gz"))
5249 (sha256
5250 (base32
bf1264ab 5251 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
1f0d4705
KM
5252 (modules '((guix build utils)))
5253 (snippet
5254 '(begin
5255 ;; YASnippet expects a "snippets" subdirectory in the same
5256 ;; directory as yasnippet.el, but we don't install it
5257 ;; because it's a git submodule pointing to an external
5258 ;; repository. Adjust `yas-snippet-dirs' to prevent
5259 ;; warnings about a missing directory.
5260 (substitute* "yasnippet.el"
5261 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5262 "))\n"))))))
c1029f86 5263 (build-system emacs-build-system)
7bf837fd 5264 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
5265 (synopsis "Yet another snippet extension for Emacs")
5266 (description
5267 "YASnippet is a template system for Emacs. It allows you to type an
5268abbreviation and automatically expand it into function templates.")
5269 (license license:gpl3+)))
55fa5349 5270
4bfdf034
KM
5271(define-public emacs-yasnippet-snippets
5272 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5273 (revision "1"))
5274 (package
5275 (name "emacs-yasnippet-snippets")
5276 (version (string-append "1-" revision "." (string-take commit 8)))
5277 (source
5278 (origin
5279 (method git-fetch)
5280 (uri (git-reference
5281 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5282 (commit commit)))
5283 (file-name (string-append name "-" version "-checkout"))
5284 (sha256
5285 (base32
5286 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5287 (build-system trivial-build-system)
5288 (arguments
5289 `(#:modules ((ice-9 ftw)
5290 (ice-9 regex)
5291 (guix build utils))
5292 #:builder
5293 (begin
5294 (use-modules (ice-9 ftw)
5295 (ice-9 regex)
5296 (guix build utils))
5297 (with-directory-excursion (assoc-ref %build-inputs "source")
5298 (for-each (lambda (dir)
5299 (copy-recursively
5300 dir
5301 (string-append %output
5302 "/share/emacs/yasnippet-snippets/"
5303 dir)))
5304 (scandir "." (lambda (fname)
5305 (and (string-match "-mode$" fname)
5306 (directory-exists? fname)))))))))
5307 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5308 (synopsis "Collection of YASnippet snippets for many languages")
5309 (description
5310 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5311the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5312To make YASnippet aware of these snippets, add the above directory to
5313@code{yas-snippet-dirs}.")
5314 (license license:expat))))
5315
2ede8c61
OP
5316(define-public emacs-helm-c-yasnippet
5317 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5318 (revision "1"))
5319 (package
5320 (name "emacs-helm-c-yasnippet")
5321 (version (string-append "0.6.7" "-" revision "."
5322 (string-take commit 7)))
5323 (source (origin
5324 (method git-fetch)
5325 (uri (git-reference
5326 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5327 (commit commit)))
5328 (file-name (string-append name "-" version "-checkout"))
5329 (sha256
5330 (base32
5331 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5332 (build-system emacs-build-system)
5333 (propagated-inputs
5334 `(("emacs-helm" ,emacs-helm)
5335 ("emacs-yasnippet" ,emacs-yasnippet)))
5336 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5337 (synopsis "Helm integration for Yasnippet")
5338 (description "This Emacs library provides Helm interface for
5339Yasnippet.")
5340 (license license:gpl2+))))
5341
b889df27
PN
5342(define-public emacs-helm-system-packages
5343 (let ((commit "986b7bd360a705053500c4ce2c9bea03dd7b24a6")
5344 (revision "1"))
5345 (package
5346 (name "emacs-helm-system-packages")
5347 (version (git-version "1.9.0" revision commit))
5348 (source (origin
5349 (method git-fetch)
5350 (uri (git-reference
5351 (url "https://github.com/emacs-helm/helm-system-packages")
5352 (commit commit)))
5353 (file-name (string-append name "-" version "-checkout"))
5354 (sha256
5355 (base32
5356 "19iklhpxgh5xx6h4dysf58nd46lmyb46xj601lf7kbwl6yq0y61f"))))
5357 (build-system emacs-build-system)
5358 (propagated-inputs
5359 `(("emacs-helm" ,emacs-helm)))
5360 (home-page "https://github.com/emacs-helm/helm-system-packages")
5361 (synopsis "Helm System Packages is an interface to your package manager")
5362 (description "List all available packages in Helm (with installed
5363packages displayed in their own respective face). Fuzzy-search, mark and
5364execute the desired action over any selections of packages: Install,
5365uninstall, display packages details (in Org Mode) or insert details at point,
5366find files owned by packages... And much more, including performing all the
5367above over the network.")
5368 (license license:gpl3+))))
5369
55fa5349
AI
5370(define-public emacs-memoize
5371 (package
1848cdfb
AI
5372 (name "emacs-memoize")
5373 (version "1.1")
5374 (source
5375 (origin
5376 (method url-fetch)
5377 (uri (string-append
5378 "https://github.com/skeeto/emacs-memoize/archive/"
5379 version ".tar.gz"))
5380 (file-name (string-append name "-" version ".tar.gz"))
5381 (sha256
5382 (base32
5383 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5384 (build-system emacs-build-system)
5385 (arguments
5386 `(#:tests? #t
5387 #:test-command '("emacs" "--batch"
5388 "-l" "memoize-test.el"
5389 "-f" "ert-run-tests-batch-and-exit")))
5390 (home-page "https://github.com/skeeto/emacs-memoize")
5391 (synopsis "Emacs lisp memoization library")
5392 (description "@code{emacs-memoize} is an Emacs library for
55fa5349 5393memoizing functions.")
1848cdfb 5394 (license license:unlicense)))
6b7e3362 5395
c86c1991
AI
5396(define-public emacs-linum-relative
5397 (package
5398 (name "emacs-linum-relative")
5399 (version "0.5")
5400 (source
5401 (origin
5402 (method url-fetch)
5403 (uri (string-append
5404 "https://github.com/coldnew/linum-relative/archive/"
5405 version ".tar.gz"))
5406 (file-name (string-append name "-" version ".tar.gz"))
5407 (sha256
5408 (base32
5409 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5410 (build-system emacs-build-system)
5411 (home-page "https://github.com/coldnew/linum-relative")
5412 (synopsis "Relative line numbering for Emacs")
5413 (description "@code{emacs-linum-relative} displays the relative line
5414number on the left margin in Emacs.")
5415 (license license:gpl2+)))
5416
6b7e3362
VD
5417(define-public emacs-idle-highlight
5418 (package
5419 (name "emacs-idle-highlight")
5420 (version "1.1.3")
5421 (source
5422 (origin
5423 (method url-fetch)
5424 (uri (string-append
5425 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5426 version ".tar.gz"))
5427 (file-name (string-append name "-" version ".tar.gz"))
5428 (sha256
5429 (base32
5430 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5431 (build-system emacs-build-system)
5432 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 5433 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
5434 (description
5435 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 5436 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
5437 the point.")
5438 (license license:gpl3+)))
6a91c5f2
VD
5439
5440(define-public emacs-ox-twbs
5441 (package
5442 (name "emacs-ox-twbs")
5443 (version "1.1.1")
5444 (source
5445 (origin
5446 (method url-fetch)
5447 (uri (string-append
5448 "https://github.com/marsmining/ox-twbs/archive/v"
5449 version ".tar.gz"))
5450 (file-name (string-append name "-" version ".tar.gz"))
5451 (sha256
5452 (base32
5453 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5454 (build-system emacs-build-system)
5455 (home-page "https://github.com/marsmining/ox-twbs")
5456 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5457 (description
5458 "This Emacs package outputs your org-mode docs with a simple, clean and
5459modern look. It implements a new HTML back-end for exporting org-mode docs as
5460HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5461jQuery and Bootstrap resources included via osscdn.")
5462 (license license:gpl3+)))
239cf024
VD
5463
5464(define-public emacs-highlight-sexp
5465 (package
5466 (name "emacs-highlight-sexp")
5467 (version "1.0")
5468 (source
5469 (origin
5470 (method url-fetch)
5471 (uri (string-append
5472 "https://github.com/daimrod/highlight-sexp/archive/v"
5473 version ".tar.gz"))
5474 (file-name (string-append name "-" version ".tar.gz"))
5475 (sha256
5476 (base32
5477 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5478 (build-system emacs-build-system)
5479 (home-page "https://github.com/daimrod/highlight-sexp")
5480 (synopsis "Minor mode that highlights the s-exp at the current position")
5481 (description
5482 "This Emacs package highlights the s-exp at the current position.")
5483 (license license:gpl3+)))
350cfccb 5484
7a452689
OP
5485(define-public emacs-highlight-stages
5486 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5487 (revision "1"))
5488 (package
5489 (name "emacs-highlight-stages")
5490 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5491 (source
5492 (origin
5493 (method git-fetch)
5494 (uri (git-reference
5495 (url "https://github.com/zk-phi/highlight-stages.git")
5496 (commit commit)))
5497 (file-name (string-append name "-" version "-checkout"))
5498 (sha256
5499 (base32
5500 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
5501 (patches
5502 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
5503 (build-system emacs-build-system)
5504 (home-page "https://github.com/wigust/highlight-stages")
5505 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
5506 (description "@code{highlight-stages} provides an Emacs minor mode that
5507highlights quasi-quoted expressions.")
5508 (license license:gpl3+))))
5509
acf7d4a7
KK
5510(define-public emacspeak
5511 (package
5512 (name "emacspeak")
147d42fc 5513 (version "47.0")
acf7d4a7
KK
5514 (source
5515 (origin
5516 (method url-fetch)
5517 (uri (string-append
5518 "https://github.com/tvraman/emacspeak/releases/download/"
5519 version "/emacspeak-" version ".tar.bz2"))
5520 (sha256
5521 (base32
147d42fc 5522 "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
acf7d4a7
KK
5523 (build-system gnu-build-system)
5524 (arguments
5525 '(#:make-flags (list (string-append "prefix="
5526 (assoc-ref %outputs "out")))
5527 #:phases
5528 (modify-phases %standard-phases
5529 (replace 'configure
231e48d6
KK
5530 (lambda _
5531 ;; Configure Emacspeak according to etc/install.org.
147d42fc 5532 (setenv "SHELL" (which "sh"))
acf7d4a7 5533 (zero? (system* "make" "config"))))
231e48d6
KK
5534 (add-after 'build 'build-espeak
5535 (lambda _
5536 (zero? (system* "make" "espeak"))))
5537 (replace 'install
acf7d4a7 5538 (lambda* (#:key outputs #:allow-other-keys)
231e48d6
KK
5539 (let* ((out (assoc-ref outputs "out"))
5540 (bin (string-append out "/bin"))
5541 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
5542 (info (string-append out "/share/info")))
5543 ;; According to etc/install.org, the Emacspeak directory should
5544 ;; be copied to its installation destination.
5545 (for-each
5546 (lambda (file)
5547 (copy-recursively file (string-append lisp "/" file)))
5548 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
5549 "xsl"))
5550 ;; Make sure emacspeak is loaded from the correct directory.
5551 (substitute* "etc/emacspeak.sh"
5552 (("exec emacs.*$")
5553 (string-append "exec emacs -l " lisp
5554 "/lisp/emacspeak-setup.el $CL_ALL")))
5555 ;; Install the convenient startup script.
5556 (mkdir-p bin)
5557 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
5558 #t))
5559 (add-after 'install 'wrap-program
acf7d4a7
KK
5560 (lambda* (#:key inputs outputs #:allow-other-keys)
5561 (let* ((out (assoc-ref outputs "out"))
5562 (emacspeak (string-append out "/bin/emacspeak"))
5563 (espeak (string-append (assoc-ref inputs "espeak")
5564 "/bin/espeak")))
5565 ;; The environment variable DTK_PROGRAM tells emacspeak what
5566 ;; program to use for speech.
5567 (wrap-program emacspeak
5568 `("DTK_PROGRAM" ":" prefix (,espeak)))
5569 #t))))
5570 #:tests? #f)) ; no check target
5571 (inputs
5572 `(("espeak" ,espeak)
5573 ("tcl" ,tcl)
5574 ("tclx" ,tclx)))
5575 (native-inputs `(("emacs" ,emacs-minimal)))
5576 (home-page "http://emacspeak.sourceforge.net")
5577 (synopsis "Audio desktop interface for Emacs")
5578 (description
5579 "Emacspeak is a speech interface that allows visually impaired users to
5580interact independently and efficiently with the computer. Audio formatting
5581--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
5582allows Emacspeak to produce rich aural presentations of electronic information.
5583By seamlessly blending all aspects of the Internet such as Web-surfing and
5584messaging, Emacspeak speech-enables local and remote information via a
5585consistent and well-integrated user interface.")
5586 (license license:gpl2+)))
5587
350cfccb
AP
5588(define-public emacs-adaptive-wrap
5589 (package
5590 (name "emacs-adaptive-wrap")
13869ff5 5591 (version "0.5.1")
350cfccb
AP
5592 (source (origin
5593 (method url-fetch)
5594 (uri (string-append
5595 "http://elpa.gnu.org/packages/adaptive-wrap-"
5596 version ".el"))
5597 (sha256
5598 (base32
13869ff5 5599 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
350cfccb
AP
5600 (build-system emacs-build-system)
5601 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
5602 (synopsis "Smart line-wrapping with wrap-prefix")
5603 (description
5604 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
5605minor mode which sets the wrap-prefix property on the fly so that
5606single-long-line paragraphs get word-wrapped in a way similar to what
5607you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
5608actually changing the buffer's text.")
5609 (license license:gpl3+)))
0201c5d4 5610
42e891c2
MC
5611(define-public emacs-diff-hl
5612 (package
5613 (name "emacs-diff-hl")
5614 (version "1.8.4")
5615 (source
5616 (origin
5617 (method url-fetch)
5618 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
5619 version ".tar"))
5620 (sha256
5621 (base32
5622 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
5623 (build-system emacs-build-system)
5624 (home-page "https://github.com/dgutov/diff-hl")
5625 (synopsis
5626 "Highlight uncommitted changes using VC")
5627 (description
5628 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
5629window (using the fringe, by default), allows you to jump between
5630the hunks and revert them selectively.")
5631 (license license:gpl3+)))
5632
0201c5d4
AI
5633(define-public emacs-diminish
5634 (package
5635 (name "emacs-diminish")
5636 (version "0.45")
5637 (source
5638 (origin
5639 (method url-fetch)
5640 (uri (string-append
5641 "https://github.com/myrjola/diminish.el/archive/v"
5642 version ".tar.gz"))
5643 (file-name (string-append name "-" version ".tar.gz"))
5644 (sha256
5645 (base32
5646 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
5647 (build-system emacs-build-system)
5648 (home-page "https://github.com/myrjola/diminish.el")
5649 (synopsis "Diminish minor modes with no modeline display")
5650 (description "@code{emacs-diminish} implements hiding or
5651abbreviation of the mode line displays (lighters) of minor modes.")
5652 (license license:gpl2+)))
b247fb86
AI
5653
5654(define-public emacs-use-package
5655 (package
5656 (name "emacs-use-package")
5657 (version "2.3")
5658 (source
5659 (origin
5660 (method url-fetch)
5661 (uri (string-append
5662 "https://github.com/jwiegley/use-package/archive/"
5663 version ".tar.gz"))
5664 (file-name (string-append name "-" version ".tar.gz"))
5665 (sha256
5666 (base32
5667 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
5668 (build-system emacs-build-system)
5669 (propagated-inputs
5670 `(("emacs-diminish" ,emacs-diminish)))
5671 (arguments
d1d41db6
MC
5672 ;; Tests fail in this release, but have been fixed in
5673 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
5674 `(#:tests? #f
5675 #:test-command '("emacs" "--batch"
5676 "-l" "use-package-tests.el"
5677 "-f" "ert-run-tests-batch-and-exit")))
b247fb86
AI
5678 (home-page "https://github.com/jwiegley/use-package")
5679 (synopsis "Declaration for simplifying your .emacs")
5680 (description "The use-package macro allows you to isolate package
5681configuration in your @file{.emacs} file in a way that is both
5682performance-oriented and tidy.")
5683 (license license:gpl2+)))
e2345554 5684
8ad5a20f
MO
5685(define-public emacs-strace-mode
5686 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
5687 (revision "1"))
5688 (package
5689 (name "emacs-strace-mode")
5690 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
5691 (source (origin
5692 (method git-fetch)
5693 (uri (git-reference
5694 (url "https://github.com/pkmoore/strace-mode")
5695 (commit commit)))
5696 (file-name (string-append name "-" version "-checkout"))
5697 (sha256
5698 (base32
5699 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
5700 (build-system emacs-build-system)
5701 (home-page "https://github.com/pkmoore/strace-mode")
5702 (synopsis "Emacs major mode to highlight strace outputs")
5703 (description "@code{emacs-strace-mode} provides an Emacs major mode
5704 highlighting strace outputs.")
5705 (license license:gpl3+))))
5706
e2345554
CM
5707(define-public emacs-default-encrypt
5708 (package
5709 (name "emacs-default-encrypt")
5710 (version "4.3")
5711 (source
5712 (origin
5713 (method url-fetch)
5714 (uri (string-append
a97f6da4
CM
5715 "https://www.informationelle-selbstbestimmung-im-internet.de"
5716 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
5717 (file-name (string-append "jl-encrypt-" version ".el"))
5718 (sha256
5719 (base32
5720 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
5721 (build-system emacs-build-system)
5722 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
5723 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
5724 (description
5725 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
5726automatically encrypts messages that you send (e.g., email) when public keys
5727for all recipients are available, and it protects you from accidentally
5728sending un-encrypted messages. It can also be configured to automatically
5729sign messages that you send. For details and instructions on how to use
5730DefaultEncrypt, please refer to the home page or read the comments in the
5731source file, @file{jl-encrypt.el}.")
5732 (license license:gpl3+)))
25e810b8
AI
5733
5734(define-public emacs-htmlize
5735 (package
5736 (name "emacs-htmlize")
5737 (version "1.51")
5738 (source
5739 (origin
5740 (method url-fetch)
5741 (uri (string-append
5742 "https://github.com/hniksic/emacs-htmlize/archive/release/"
5743 version ".tar.gz"))
5744 (file-name (string-append name "-" version ".tar.gz"))
5745 (sha256
5746 (base32
5747 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
5748 (build-system emacs-build-system)
5749 (home-page "https://github.com/hniksic/emacs-htmlize")
5750 (synopsis "Convert buffer text and decorations to HTML")
5751 (description "@code{emacs-htmlize} converts the buffer text and
5752the associated decorations to HTML. Output to CSS, inline CSS and
5753fonts is supported.")
5754 (license license:gpl2+)))
0ee59b81
AI
5755
5756(define-public emacs-xmlgen
5757 (package
5758 (name "emacs-xmlgen")
5759 (version "0.5")
5760 (source
5761 (origin
5762 (method url-fetch)
5763 (uri (string-append
5764 "https://github.com/philjackson/xmlgen/archive/"
5765 version ".tar.gz"))
5766 (file-name (string-append name "-" version ".tar.gz"))
5767 (sha256
5768 (base32
5769 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
5770 (build-system emacs-build-system)
5771 (arguments
d1d41db6
MC
5772 `(#:tests? #t
5773 #:test-command '("emacs" "--batch"
5774 "-l" "xmlgen-test.el"
5775 "-f" "ert-run-tests-batch-and-exit")))
0ee59b81
AI
5776 (home-page "https://github.com/philjackson/xmlgen")
5777 (synopsis "S-expression to XML domain specific language (DSL) in
5778Emacs Lisp")
5779 (description "@code{emacs-xmlgen} provides S-expression to XML
5780conversion for Emacs Lisp.")
5781 (license license:gpl2+)))
8d50a990
AI
5782
5783(define-public emacs-cdlatex
5784 (package
5785 (name "emacs-cdlatex")
5786 (version "4.7")
5787 (source
5788 (origin
5789 (method url-fetch)
5790 (uri (string-append
5791 "https://github.com/cdominik/cdlatex/archive/"
5792 version ".tar.gz"))
5793 (file-name (string-append name "-" version ".tar.gz"))
5794 (sha256
5795 (base32
5796 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
5797 (build-system emacs-build-system)
00bdf501
MC
5798 (propagated-inputs
5799 `(("emacs-auctex" ,emacs-auctex)))
8d50a990
AI
5800 (home-page "https://github.com/cdominik/cdlatex")
5801 (synopsis "Fast Emacs input methods for LaTeX environments and
5802math")
5803 (description "CDLaTeX is an Emacs minor mode supporting fast
5804insertion of environment templates and math in LaTeX. Similar
5805commands are also offered as part of the AUCTeX package, but it is not
5806the same - CDLaTeX focuses on speediness for inserting LaTeX
5807constructs.")
5808 (license license:gpl3+)))
deddeb44 5809
65fff6a3
FS
5810(define-public emacs-cnfonts
5811 (package
5812 (name "emacs-cnfonts")
5813 (version "0.9.1")
5814 (source (origin
5815 (method url-fetch)
5816 (uri (string-append
5817 "https://github.com/tumashu/cnfonts/archive/v"
5818 version ".tar.gz"))
5819 (file-name (string-append name "-" version ".tar.gz"))
5820 (sha256
5821 (base32
5822 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
5823 (build-system emacs-build-system)
5824 (home-page "https://github.com/tumashu/cnfonts")
5825 (synopsis "Emacs Chinese fonts setup tool")
5826 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
5827configuration of Chinese fonts.")
5828 (license license:gpl2+)))
5829
57fe82c5
RJ
5830(define-public emacs-php-mode
5831 (package
5832 (name "emacs-php-mode")
5833 (version "20171225.342")
5834 (source (origin
5835 (method url-fetch)
5836 (uri (string-append
5837 "https://melpa.org/packages/php-mode-"
5838 version ".tar"))
5839 (sha256
5840 (base32
5841 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
5842 (build-system emacs-build-system)
5843 (home-page "https://github.com/ejmr/php-mode")
5844 (synopsis "Major mode for editing PHP code")
5845 (description "@code{php-mode} is a major mode for editing PHP source
5846code. It's an extension of C mode; thus it inherits all C mode's navigation
5847functionality. But it colors according to the PHP grammar and indents
5848according to the PEAR coding guidelines. It also includes a couple handy
5849IDE-type features such as documentation search and a source and class
5850browser.")
5851 (license license:gpl3+)))
5852
9f3b27a2
FS
5853(define-public emacs-pos-tip
5854 (package
5855 (name "emacs-pos-tip")
5856 (version "0.4.6")
5857 (source (origin
5858 (method url-fetch)
5859 (uri (string-append
5860 "https://github.com/pitkali/pos-tip/archive/"
5861 version ".tar.gz"))
5862 (file-name (string-append name "-" version ".tar.gz"))
5863 (sha256
5864 (base32
5865 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
5866 (build-system emacs-build-system)
5867 ;; The following functions and variables needed by emacs-pos-tip are
5868 ;; not included in emacs-minimal:
5869 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
5870 (arguments `(#:emacs ,emacs))
5871 (home-page "https://github.com/pitkali/pos-tip")
5872 (synopsis "Show tooltip at point")
5873 (description "The standard library tooltip.el provides a function for
5874displaying a tooltip at the mouse position. However, locating a tooltip at an
5875arbitrary buffer position in a window is not easy. Pos-tip provides such a
5876function to be used by other frontend programs.")
5877 (license license:gpl2+)))
5878
0fa8a932
FS
5879(define-public emacs-pyim-basedict
5880 (package
5881 (name "emacs-pyim-basedict")
5882 (version "0.3.1")
5883 (source (origin
5884 (method url-fetch)
5885 (uri (string-append
5886 "https://github.com/tumashu/pyim-basedict/archive/v"
5887 version ".tar.gz"))
5888 (file-name (string-append name "-" version ".tar.gz"))
5889 (sha256
5890 (base32
5891 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
5892 (build-system emacs-build-system)
5893 (home-page "https://github.com/tumashu/pyim-basedict")
5894 (synopsis "Input method dictionary of pyim")
5895 (description "Pyim-basedict is the default pinyin input method dictionary,
5896containing words from the rime project.")
5897 (license license:gpl2+)))
5898
7493306f
FS
5899(define-public emacs-pyim
5900 (package
5901 (name "emacs-pyim")
5902 (version "1.6.4")
5903 (source (origin
5904 (method url-fetch)
5905 (uri (string-append
5906 "https://github.com/tumashu/pyim/archive/v"
5907 version ".tar.gz"))
5908 (file-name (string-append name "-" version ".tar.gz"))
5909 (sha256
5910 (base32
5911 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
5912 (build-system emacs-build-system)
5913 (propagated-inputs
5914 `(("emacs-async" ,emacs-async)
6fe2d37c 5915 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7493306f
FS
5916 ("emacs-popup" ,emacs-popup)
5917 ("emacs-pos-tip" ,emacs-pos-tip)))
5918 (home-page "https://github.com/tumashu/pyim")
5919 (synopsis "Chinese input method")
5920 (description "Chinese input method which supports quanpin, shuangpin, wubi
5921and cangjie.")
5922 (license license:gpl2+)))
5923
2f1524d0
FS
5924(define-public emacs-el2org
5925 (package
5926 (name "emacs-el2org")
5927 (version "0.6.0")
5928 (source (origin
5929 (method url-fetch)
5930 (uri (string-append
5931 "https://github.com/tumashu/el2org/archive/v"
5932 version ".tar.gz"))
5933 (file-name (string-append name "-" version ".tar.gz"))
5934 (sha256
5935 (base32
5936 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
5937 (build-system emacs-build-system)
5938 (home-page "https://github.com/tumashu/el2org")
5939 (synopsis "Convert Emacs-lisp file to org file")
5940 (description "El2org is a simple tool, which can convert Emacs-lisp file
5941to org file, you can use this tool to write orgify commentary.")
5942 (license license:gpl2+)))
5943
5b38c3e6
FS
5944(define-public emacs-mustache
5945 (package
5946 (name "emacs-mustache")
5947 (version "0.23")
5948 (source (origin
5949 (method url-fetch)
5950 (uri (string-append
5951 "https://github.com/Wilfred/mustache.el/archive/"
5952 version ".tar.gz"))
5953 (file-name (string-append name "-" version ".tar.gz"))
5954 (sha256
5955 (base32
5956 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
5957 (build-system emacs-build-system)
5958 (propagated-inputs
5959 `(("emacs-dash" ,emacs-dash)
5960 ("emacs-ht" ,emacs-ht)
5961 ("emacs-s" ,emacs-s)))
5962 (home-page "https://github.com/Wilfred/mustache.el")
5963 (synopsis "Mustache templating library for Emacs")
5964 (description "Mustache templating library for Emacs, mustache is
5965a simple web template system, which is described as a logic-less system
5966because it lacks any explicit control flow statements, both looping and
5967conditional evaluation can be achieved using section tags processing lists
5968and lambdas.")
5969 (license license:gpl3+)))
5970
f03e15ec
FS
5971(define-public emacs-org2web
5972 (package
5973 (name "emacs-org2web")
5974 (version "0.9.1")
5975 (source (origin
5976 (method url-fetch)
5977 (uri (string-append
5978 "https://github.com/tumashu/org2web/archive/v"
5979 version ".tar.gz"))
5980 (file-name (string-append name "-" version ".tar.gz"))
5981 (sha256
5982 (base32
5983 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
5984 (build-system emacs-build-system)
5985 (propagated-inputs
5986 `(("emacs-dash" ,emacs-dash)
5987 ("emacs-el2org" ,emacs-el2org)
5988 ("emacs-ht" ,emacs-ht)
5989 ("emacs-mustache" ,emacs-mustache)
5990 ("emacs-simple-httpd" ,emacs-simple-httpd)))
5991 (home-page "https://github.com/tumashu/org2web")
5992 (synopsis "Static site generator based on org-mode ")
5993 (description "Org2web is a static site generator based on org-mode,
5994which code derived from Kelvin H's org-page.")
5995 (license license:gpl2+)))
5996
deddeb44
FS
5997(define-public emacs-xelb
5998 (package
5999 (name "emacs-xelb")
aaa31d1b 6000 (version "0.14")
deddeb44
FS
6001 (source (origin
6002 (method url-fetch)
6003 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6004 version ".tar"))
6005 (sha256
6006 (base32
aaa31d1b 6007 "09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74"))))
deddeb44
FS
6008 (build-system emacs-build-system)
6009 ;; The following functions and variables needed by emacs-xelb are
6010 ;; not included in emacs-minimal:
6011 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6012 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6013 ;; x-display-pixel-width, x-display-pixel-height
6014 (arguments
6015 `(#:emacs ,emacs
6016 #:phases
6017 (modify-phases %standard-phases
6018 (add-after 'unpack 'regenerate-el-files
6019 (lambda* (#:key inputs #:allow-other-keys)
6020 (zero? (system* "make"
6021 (string-append "PROTO_PATH="
6022 (assoc-ref inputs "xcb-proto")
6023 "/share/xcb")
6024 (string-append "EMACS_BIN="
6025 (assoc-ref inputs "emacs")
6026 "/bin/emacs -Q"))))))))
6027 (native-inputs `(("xcb-proto" ,xcb-proto)))
6028 (home-page "https://github.com/ch11ng/xelb")
6029 (synopsis "X protocol Emacs Lisp binding")
6030 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6031X11 protocol based on the XML description files from the XCB project. It
6032features an object-oriented API and permits a certain degree of concurrency.
6033It should enable you to implement low-level X11 applications.")
6034 (license license:gpl3+)))
2b3b745c
FS
6035
6036(define-public emacs-exwm
6037 (package
6038 (name "emacs-exwm")
9f2a58a0 6039 (version "0.18")
2b3b745c
FS
6040 (synopsis "Emacs X window manager")
6041 (source (origin
6042 (method url-fetch)
6043 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6044 version ".tar"))
6045 (sha256
6046 (base32
9f2a58a0 6047 "1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q"))))
2b3b745c
FS
6048 (build-system emacs-build-system)
6049 (propagated-inputs
6050 `(("emacs-xelb" ,emacs-xelb)))
6051 (inputs
6052 `(("xhost" ,xhost)
6053 ("dbus" ,dbus)))
6054 ;; The following functions and variables needed by emacs-exwm are
6055 ;; not included in emacs-minimal:
6056 ;; scroll-bar-mode, fringe-mode
6057 ;; x-display-pixel-width, x-display-pixel-height
6058 (arguments
6059 `(#:emacs ,emacs
6060 #:phases
6061 (modify-phases %standard-phases
6062 (add-after 'build 'install-xsession
6063 (lambda* (#:key inputs outputs #:allow-other-keys)
6064 (let* ((out (assoc-ref outputs "out"))
6065 (xsessions (string-append out "/share/xsessions"))
6066 (bin (string-append out "/bin"))
6067 (exwm-executable (string-append bin "/exwm")))
6068 ;; Add a .desktop file to xsessions
6069 (mkdir-p xsessions)
6070 (mkdir-p bin)
6071 (with-output-to-file
6072 (string-append xsessions "/exwm.desktop")
6073 (lambda _
6074 (format #t "[Desktop Entry]~@
6075 Name=~a~@
6076 Comment=~a~@
6077 Exec=~a~@
6078 TryExec=~@*~a~@
6079 Type=Application~%" ,name ,synopsis exwm-executable)))
6080 ;; Add a shell wrapper to bin
2b3b745c
FS
6081 (with-output-to-file exwm-executable
6082 (lambda _
6083 (format #t "#!~a ~@
2b3b745c 6084 ~a +SI:localuser:$USER ~@
11f8e028 6085 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
6086 (string-append (assoc-ref inputs "bash") "/bin/sh")
6087 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6088 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6089 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6090 '(cond
6091 ((file-exists-p "~/.exwm")
6092 (load-file "~/.exwm"))
6093 ((not (featurep 'exwm))
6094 (require 'exwm)
6095 (require 'exwm-config)
6096 (exwm-config-default)
87c95cb2
AI
6097 (message (concat "exwm configuration not found. "
6098 "Falling back to default configuration...")))))))
2b3b745c
FS
6099 (chmod exwm-executable #o555)
6100 #t))))))
6101 (home-page "https://github.com/ch11ng/exwm")
6102 (description "EXWM is a full-featured tiling X window manager for Emacs
6103built on top of XELB.")
6104 (license license:gpl3+)))
21b99aad 6105
58addd2b
FS
6106(define-public emacs-switch-window
6107 (package
6108 (name "emacs-switch-window")
adaebe80 6109 (version "1.5.1")
58addd2b
FS
6110 (source (origin
6111 (method url-fetch)
6112 (uri (string-append
6113 "https://github.com/dimitri/switch-window/archive/v"
6114 version ".tar.gz"))
6115 (file-name (string-append name "-" version ".tar.gz"))
6116 (sha256
6117 (base32
adaebe80 6118 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
6119 (build-system emacs-build-system)
6120 (home-page "https://github.com/dimitri/switch-window")
6121 (synopsis "Emacs window switch tool")
6122 (description "Switch-window is an emacs window switch tool, which
6123offer a visual way to choose a window to switch to, delete, split or
6124other operations.")
6125 (license license:wtfpl2)))
6126
f4ade9b6
FS
6127(define-public emacs-exwm-x
6128 (package
6129 (name "emacs-exwm-x")
03a34d54 6130 (version "1.8.1")
f4ade9b6
FS
6131 (synopsis "Derivative window manager based on EXWM")
6132 (source (origin
6133 (method url-fetch)
6134 (uri (string-append
6135 "https://github.com/tumashu/exwm-x/archive/v"
6136 version ".tar.gz"))
6137 (file-name (string-append name "-" version ".tar.gz"))
6138 (sha256
6139 (base32
03a34d54 6140 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
f4ade9b6
FS
6141 (build-system emacs-build-system)
6142 (propagated-inputs
6143 `(("emacs-exwm" ,emacs-exwm)
6144 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
6145 ("emacs-ivy" ,emacs-ivy)
6146 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
6147 (inputs
6148 `(("xhost" ,xhost)
6149 ("dbus" ,dbus)))
6150 ;; Need emacs instead of emacs-minimal,
6151 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6152 (arguments
6153 `(#:emacs ,emacs
6154 #:phases
6155 (modify-phases %standard-phases
6156 (add-after 'build 'install-xsession
6157 (lambda* (#:key inputs outputs #:allow-other-keys)
6158 (let* ((out (assoc-ref outputs "out"))
6159 (xsessions (string-append out "/share/xsessions"))
6160 (bin (string-append out "/bin"))
6161 (exwm-executable (string-append bin "/exwm-x")))
6162 ;; Add a .desktop file to xsessions
6163 (mkdir-p xsessions)
6164 (mkdir-p bin)
6165 (with-output-to-file
6166 (string-append xsessions "/exwm-x.desktop")
6167 (lambda _
6168 (format #t "[Desktop Entry]~@
6169 Name=~a~@
6170 Comment=~a~@
6171 Exec=~a~@
6172 TryExec=~@*~a~@
6173 Type=Application~%" ,name ,synopsis exwm-executable)))
6174 ;; Add a shell wrapper to bin
f4ade9b6
FS
6175 (with-output-to-file exwm-executable
6176 (lambda _
6177 (format #t "#!~a ~@
f4ade9b6
FS
6178 ~a +SI:localuser:$USER ~@
6179 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6180 (string-append (assoc-ref inputs "bash") "/bin/sh")
6181 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6182 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6183 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6184 '(require 'exwmx-loader))))
6185 (chmod exwm-executable #o555)
6186 #t))))))
6187 (home-page "https://github.com/tumashu/exwm-x")
6188 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6189on mouse-control.")
6190 (license license:gpl3+)))
6191
21b99aad
AI
6192(define-public emacs-gnuplot
6193 (package
6194 (name "emacs-gnuplot")
6195 (version "0.7.0")
6196 (source
6197 (origin
6198 (method url-fetch)
6199 (uri (string-append
6200 "https://github.com/bruceravel/gnuplot-mode/archive/"
6201 version ".tar.gz"))
6202 (file-name (string-append name "-" version ".tar.gz"))
6203 (sha256
6204 (base32
6205 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6206 (build-system gnu-build-system)
6207 (native-inputs `(("emacs" ,emacs-minimal)))
6208 (arguments
6209 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6210 "/gnuplot-" version)))
6211 `(#:modules ((guix build gnu-build-system)
6212 (guix build utils)
6213 (guix build emacs-utils))
6214 #:imported-modules (,@%gnu-build-system-modules
6215 (guix build emacs-utils))
6216 #:configure-flags
6217 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6218 "/bin/emacs")
6219 (string-append "--with-lispdir=" %output ,elisp-dir))
6220 #:phases
6221 (modify-phases %standard-phases
6222 (add-after 'install 'generate-autoloads
6223 (lambda* (#:key outputs #:allow-other-keys)
6224 (emacs-generate-autoloads
6225 "gnuplot"
6226 (string-append (assoc-ref outputs "out") ,elisp-dir))
6227 #t))))))
6228 (home-page "https://github.com/bruceravel/gnuplot-mode")
6229 (synopsis "Emacs major mode for interacting with gnuplot")
6230 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6231with gnuplot.")
6232 (license license:gpl2+)))
860f73c6
AI
6233
6234(define-public emacs-transpose-frame
6235 (package
6236 (name "emacs-transpose-frame")
6237 (version "0.1.0")
6238 (source
6239 (origin
6240 (method url-fetch)
6241 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8a421ddb 6242 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
6243 (sha256
6244 (base32
6245 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6246 (build-system emacs-build-system)
6247 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6248 (synopsis "Transpose window arrangement in current frame")
6249 (description "@code{emacs-transpose-frame} provides some interactive
6250functions which allows users to transpose windows arrangement in currently
6251selected frame.")
6252 (license license:bsd-2)))
a34242ee
KM
6253
6254(define-public emacs-key-chord
6255 (package
6256 (name "emacs-key-chord")
6257 (version "0.6")
6258 (source
6259 (origin
6260 (method url-fetch)
6261 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
a742becd 6262 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
6263 (sha256
6264 (base32
6265 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6266 (build-system emacs-build-system)
6267 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6268 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6269 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6270mode for binding key chords to commands. A key chord is defined as two keys
6271pressed simultaneously or a single key quickly pressed twice.")
6272 (license license:gpl2+)))
a993add1
AI
6273
6274(define-public emacs-evil-surround
6275 (package
6276 (name "emacs-evil-surround")
6277 (version "1.0.0")
6278 (source
6279 (origin
6280 (method url-fetch)
6281 (uri (string-append
6282 "https://github.com/timcharper/evil-surround/archive/v"
6283 version ".tar.gz"))
6284 (file-name (string-append name "-" version ".tar.gz"))
6285 (sha256
6286 (base32
6287 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6288 (build-system emacs-build-system)
6289 (propagated-inputs
6290 `(("emacs-evil" ,emacs-evil)))
6291 (home-page "https://github.com/timcharper/evil-surround")
6292 (synopsis "Easily modify surrounding parantheses and quotes")
6293 (description "@code{emacs-evil-surround} allows easy deletion, change and
6294addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6295 (license license:gpl3+)))
2406766e
AI
6296
6297(define-public emacs-evil-commentary
6298 (package
6299 (name "emacs-evil-commentary")
6300 (version "2.1.1")
6301 (source
6302 (origin
6303 (method url-fetch)
6304 (uri (string-append
6305 "https://github.com/linktohack/evil-commentary/archive/v"
6306 version ".tar.gz"))
6307 (file-name (string-append name "-" version ".tar.gz"))
6308 (sha256
6309 (base32
6310 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6311 (build-system emacs-build-system)
6312 (propagated-inputs
6313 `(("emacs-evil" ,emacs-evil)))
6314 (home-page "https://github.com/linktohack/evil-commentary")
6315 (synopsis "Comment out code in evil mode")
6316 (description "@code{emacs-evil-commentary} adds keybindings to easily
6317comment out lines of code in evil mode. It provides @code{gcc} to comment out
6318lines, and @code{gc} to comment out the target of a motion.")
6319 (license license:gpl3+)))
99d406c9
AI
6320
6321;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6322;; therefore cannot be run
6323(define-public emacs-ansi
6324 (package
6325 (name "emacs-ansi")
6326 (version "0.4.1")
6327 (source
6328 (origin
6329 (method url-fetch)
6330 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6331 version ".tar.gz"))
6332 (file-name (string-append name "-" version ".tar.gz"))
6333 (sha256
6334 (base32
6335 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6336 (build-system emacs-build-system)
6337 (propagated-inputs
6338 `(("emacs-dash" ,emacs-dash)
6339 ("emacs-s" ,emacs-s)))
6340 (home-page "https://github.com/rejeep/ansi.el")
6341 (synopsis "Convert strings to ANSI")
6342 (description "@code{emacs-ansi} defines functions that turns simple
6343strings to ANSI strings. Turning a string into an ANSI string can be to add
6344color to a text, add color in the background of a text or adding a style, such
6345as bold, underscore or italic.")
6346 (license license:gpl3+)))
605ecbcb
AI
6347
6348;; Tests for emacs-commander have a circular dependency with ert-runner, and
6349;; therefore cannot be run
6350(define-public emacs-commander
6351 (package
6352 (name "emacs-commander")
6353 (version "0.7.0")
6354 (source
6355 (origin
6356 (method url-fetch)
6357 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6358 version ".tar.gz"))
6359 (file-name (string-append name "-" version ".tar.gz"))
6360 (sha256
6361 (base32
6362 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6363 (build-system emacs-build-system)
6364 (propagated-inputs
6365 `(("emacs-dash" ,emacs-dash)
6366 ("emacs-f" ,emacs-f)
6367 ("emacs-s" ,emacs-s)))
6368 (home-page "https://github.com/rejeep/commander.el")
6369 (synopsis "Emacs command line parser")
6370 (description "@code{emacs-commander} provides command line parsing for
6371Emacs.")
6372 (license license:gpl3+)))
87449013
AI
6373
6374;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6375;; cannot be run
6376(define-public ert-runner
9490c411
MC
6377 (package
6378 (name "ert-runner")
6379 (version "0.7.0")
6380 (source
6381 (origin
6382 (method url-fetch)
6383 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6384 version ".tar.gz"))
6385 (file-name (string-append name "-" version ".tar.gz"))
6386 (sha256
6387 (base32
6388 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6389 (build-system emacs-build-system)
6390 (inputs
6391 `(("emacs-ansi" ,emacs-ansi)
6392 ("emacs-commander" ,emacs-commander)
6393 ("emacs-dash" ,emacs-dash)
6394 ("emacs-f" ,emacs-f)
6395 ("emacs-s" ,emacs-s)
6396 ("emacs-shut-up" ,emacs-shut-up)))
6397 (arguments
6398 `(#:phases
6399 (modify-phases %standard-phases
6400 (add-after 'install 'install-executable
6401 (lambda* (#:key inputs outputs #:allow-other-keys)
6402 (let ((out (assoc-ref outputs "out")))
6403 (substitute* "bin/ert-runner"
6404 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6405 (string-append "ERT_RUNNER=\"" out
6406 "/share/emacs/site-lisp/guix.d/"
6407 ,name "-" ,version)))
6408 (install-file "bin/ert-runner" (string-append out "/bin"))
6409 (wrap-program (string-append out "/bin/ert-runner")
6410 (list "EMACSLOADPATH" ":" 'prefix
6411 (string-split (getenv "EMACSLOADPATH") #\:)))
6412 #t))))
6413 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6414 (home-page "https://github.com/rejeep/ert-runner.el")
6415 (synopsis "Opinionated Ert testing workflow")
6416 (description "@code{ert-runner} is a tool for Emacs projects tested
87449013
AI
6417using ERT. It assumes a certain test structure setup and can therefore make
6418running tests easier.")
9490c411 6419 (license license:gpl3+)))
7a0efa77
JN
6420
6421(define-public emacs-disable-mouse
6422 (package
6423 (name "emacs-disable-mouse")
6424 (version "0.2")
6425 (source
6426 (origin
6427 (method url-fetch)
6428 (uri (string-append
6429 "https://github.com/purcell/disable-mouse/archive/"
6430 version ".tar.gz"))
6431 (file-name (string-append name "-" version ".tar.gz"))
6432 (sha256
6433 (base32
6434 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6435 (build-system emacs-build-system)
6436 (home-page "https://github.com/purcell/disable-mouse")
6437 (synopsis "Disable mouse commands globally")
6438 (description
6439 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6440pair of minor modes which suppress all mouse events by intercepting them and
6441running a customisable handler command (@code{ignore} by default). ")
6442 (license license:gpl3+)))
ce676015 6443
b0912e9f
OP
6444(define-public emacs-json-reformat
6445 (package
6446 (name "emacs-json-reformat")
6447 (version "0.0.6")
6448 (source
6449 (origin
6450 (method url-fetch)
6451 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6452 version ".tar.gz"))
6453 (file-name (string-append name "-" version ".tar.gz"))
6454 (sha256
6455 (base32
6456 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6457 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6458 (build-system emacs-build-system)
d1d41db6
MC
6459 (propagated-inputs
6460 `(("emacs-undercover" ,emacs-undercover)))
6461 (native-inputs
6462 `(("emacs-dash" ,emacs-dash)
6463 ("emacs-shut-up" ,emacs-shut-up)
6464 ("ert-runner" ,ert-runner)))
b0912e9f 6465 (arguments
d1d41db6
MC
6466 `(#:tests? #t
6467 #:test-command '("ert-runner")))
b0912e9f
OP
6468 (home-page "https://github.com/gongo/json-reformat")
6469 (synopsis "Reformatting tool for JSON")
6470 (description "@code{json-reformat} provides a reformatting tool for
6471@url{http://json.org/, JSON}.")
6472 (license license:gpl3+)))
6473
6df27407
OP
6474(define-public emacs-json-snatcher
6475 (package
6476 (name "emacs-json-snatcher")
6477 (version "1.0.0")
6478 (source
6479 (origin
6480 (method url-fetch)
6481 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
6482 version ".tar.gz"))
6483 (file-name (string-append name "-" version ".tar.gz"))
6484 (sha256
6485 (base32
6486 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
6487 (build-system emacs-build-system)
6488 (home-page "https://github.com/sterlingg/json-snatcher")
6489 (synopsis "Grabs the path to JSON values in a JSON file")
6490 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
6491a @url{http://json.org/, JSON} file.")
6492 (license license:gpl3+)))
6493
dd72837d
OP
6494(define-public emacs-json-mode
6495 (package
6496 (name "emacs-json-mode")
6497 (version "1.7.0")
6498 (source
6499 (origin
6500 (method url-fetch)
6501 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
6502 "v" version ".tar.gz"))
6503 (file-name (string-append name "-" version ".tar.gz"))
6504 (sha256
6505 (base32
6506 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
6507 (build-system emacs-build-system)
6508 (propagated-inputs
6509 `(("emacs-json-reformat" ,emacs-json-reformat)
6510 ("emacs-json-snatcher" ,emacs-json-snatcher)))
6511 (home-page "https://github.com/joshwnj/json-mode")
6512 (synopsis "Major mode for editing JSON files")
6513 (description "@code{json-mode} extends the builtin js-mode syntax
6514highlighting.")
6515 (license license:gpl3+)))
6516
ce676015
JR
6517(define-public emacs-restclient
6518 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
6519 (revision "1")) ;Guix package revision,
6520 ;upstream doesn't have official releases
6521 (package
6522 (name "emacs-restclient")
6523 (version (string-append revision "."
6524 (string-take commit 7)))
6525 (source (origin
6526 (method git-fetch)
6527 (uri (git-reference
6528 (url "https://github.com/pashky/restclient.el.git")
6529 (commit commit)))
6530 (sha256
6531 (base32
6532 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
6533 (file-name (git-file-name name version))))
6534 (build-system emacs-build-system)
6535 (propagated-inputs
6536 `(("emacs-helm" ,emacs-helm)))
6537 (home-page "https://github.com/pashky/restclient.el")
6538 (synopsis "Explore and test HTTP REST webservices")
6539 (description
6540 "This tool allows for testing and exploration of HTTP REST Web services
6541from within Emacs. Restclient runs queries from a plan-text query sheet,
6542displays results pretty-printed in XML or JSON with @code{restclient-mode}")
6543 (license license:public-domain))))
730c0790 6544
de5256d3
MC
6545(define-public emacs-eimp
6546 (let ((version "1.4.0")
6547 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
6548 (revision "1"))
6549 (package
6550 (name "emacs-eimp")
6551 (version (git-version version revision commit))
6552 (source
6553 (origin
6554 (method git-fetch)
6555 (uri (git-reference
6556 (url "https://github.com/nicferrier/eimp.git")
6557 (commit commit)))
6558 (file-name (git-file-name name version))
6559 (sha256
6560 (base32
6561 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
6562 (build-system emacs-build-system)
6563 (arguments
6564 `(#:phases
6565 (modify-phases %standard-phases
6566 (add-after 'unpack 'configure
6567 (lambda* (#:key inputs #:allow-other-keys)
6568 (let ((imagemagick (assoc-ref inputs "imagemagick")))
6569 ;; eimp.el is read-only in git.
6570 (chmod "eimp.el" #o644)
6571 (emacs-substitute-variables "eimp.el"
6572 ("eimp-mogrify-program"
6573 (string-append imagemagick "/bin/mogrify"))))
6574 #t)))))
6575 (inputs
6576 `(("imagemagick" ,imagemagick)))
6577 (home-page "https://github.com/nicferrier/eimp")
6578 (synopsis "Interactive image manipulation utility for Emacs")
6579 (description "@code{emacs-eimp} allows interactive image manipulation
6580from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
6581the actual transformations.")
6582 (license license:gpl2+))))
6583
730c0790
OP
6584(define-public emacs-dired-hacks
6585 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
6586 (revision "1"))
6587 (package
6588 (name "emacs-dired-hacks")
6589 (version (string-append "0.0.1-" revision "."
6590 (string-take commit 7)))
6591 (source (origin
6592 (method git-fetch)
6593 (uri (git-reference
6594 (url "https://github.com/Fuco1/dired-hacks.git")
6595 (commit commit)))
6596 (file-name (string-append name "-" version "-checkout"))
6597 (sha256
6598 (base32
6599 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
6600 (build-system emacs-build-system)
6601 (propagated-inputs
6602 `(("emacs-dash" ,emacs-dash)
fee23c17 6603 ("emacs-eimp" ,emacs-eimp)
730c0790
OP
6604 ("emacs-f" ,emacs-f)
6605 ("emacs-s" ,emacs-s)))
6606 (home-page "https://github.com/Fuco1/dired-hacks")
6607 (synopsis
6608 "Collection of useful dired additions")
6609 (description
6610 "Collection of Emacs dired mode additions:
6611@itemize
6612@item dired-avfs
6613@item dired-columns
6614@item dired-filter
6615@item dired-hacks-utils
6616@item dired-images
6617@item dired-list
6618@item dired-narrow
6619@item dired-open
6620@item dired-rainbow
6621@item dired-ranger
6622@item dired-subtree
6623@item dired-tagsistant
6624@end itemize\n")
6625 (license license:gpl3+))))
1a80e4d7
OP
6626
6627(define-public emacs-which-key
6628 (package
6629 (name "emacs-which-key")
5fa1b417 6630 (version "3.0.2")
1a80e4d7
OP
6631 (source
6632 (origin
6633 (method url-fetch)
6634 (uri (string-append
6635 "https://github.com/justbur/emacs-which-key/archive/v"
6636 version ".tar.gz"))
6637 (sha256
6638 (base32
5fa1b417 6639 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
1a80e4d7
OP
6640 (file-name (string-append name "-" version ".tar.gz"))))
6641 (build-system emacs-build-system)
6642 (arguments
d1d41db6
MC
6643 `(#:tests? #t
6644 #:test-command '("emacs" "--batch"
6645 "-l" "which-key-tests.el"
6646 "-f" "ert-run-tests-batch-and-exit")))
1a80e4d7
OP
6647 (home-page "https://github.com/justbur/emacs-which-key")
6648 (synopsis "Display available key bindings in popup")
2482c02f
AI
6649 (description
6650 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
6651bindings following your currently entered incomplete command (a prefix) in a
6652popup. For example, after enabling the minor mode if you enter C-x and wait
6653for the default of 1 second, the minibuffer will expand with all of the
6654available key bindings that follow C-x (or as many as space allows given your
6655settings).")
1a80e4d7 6656 (license license:gpl3+)))
c97979d6 6657
397d7980
MC
6658(define-public emacs-ws-butler
6659 (package
6660 (name "emacs-ws-butler")
6661 (version "0.6")
6662 (source (origin
6663 (method git-fetch)
6664 (uri (git-reference
6665 (url "https://github.com/lewang/ws-butler.git")
6666 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
6667 (file-name (string-append name "-" version "-checkout"))
6668 (sha256
6669 (base32
6670 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
6671 (build-system emacs-build-system)
6672 (native-inputs
6673 `(("ert-runner" ,ert-runner)))
6674 (arguments
d1d41db6
MC
6675 `(#:tests? #t
6676 #:test-command '("ert-runner" "tests")))
397d7980
MC
6677 (home-page "https://github.com/lewang/ws-butler")
6678 (synopsis "Trim spaces from end of lines")
6679 (description
6680 "This Emacs package automatically and unobtrusively trims whitespace
6681characters from end of lines.")
6682 (license license:gpl3+)))
6683
c97979d6
OP
6684(define-public emacs-org-edit-latex
6685 (package
6686 (name "emacs-org-edit-latex")
6687 (version "0.8.0")
6688 (source
6689 (origin
6690 (method url-fetch)
6691 (uri (string-append
6692 "https://github.com/et2010/org-edit-latex/archive/v"
6693 version ".tar.gz"))
6694 (file-name (string-append name "-" version ".tar.gz"))
6695 (sha256
6696 (base32
6697 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
6698 (build-system emacs-build-system)
6699 (propagated-inputs
6700 `(("emacs-auctex" ,emacs-auctex)
6701 ;; The version of org in Emacs 25.2 is not sufficient, because the
6702 ;; `org-latex-make-preamble' function is required.
6703 ("emacs-org" ,emacs-org)))
6704 (home-page "https://github.com/et2010/org-edit-latex")
6705 (synopsis "Edit a latex fragment just like editing a src block")
6706 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
6707It lets you edit a latex fragment in a dedicated buffer just like editing a
6708src block.")
6709 (license license:gpl3+)))
aadd75ac
OP
6710
6711(define-public emacs-emamux
6712 (package
6713 (name "emacs-emamux")
6714 (version "0.14")
6715 (source (origin
6716 (method url-fetch)
6717 (uri (string-append
6718 "https://github.com/syohex/emacs-emamux/archive/"
6719 version ".tar.gz"))
6720 (file-name (string-append name "-" version ".tar.gz"))
6721 (sha256
6722 (base32
6723 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
6724 (build-system emacs-build-system)
6725 (home-page "https://github.com/syohex/emacs-emamux")
6726 (synopsis "Manipulate Tmux from Emacs")
6727 (description
6728 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
6729multiplexer.")
6730 (license license:gpl3+)))
e8d9a878
OP
6731
6732(define-public emacs-rpm-spec-mode
6733 (package
6734 (name "emacs-rpm-spec-mode")
6735 (version "0.16")
6736 (source
6737 (origin
6738 (method url-fetch)
6739 ;; URI has the Fedora release number instead of the version
6740 ;; number. This will have to updated manually every new release.
6741 (uri (string-append
6742 "https://src.fedoraproject.org/cgit/rpms"
6743 "/emacs-rpm-spec-mode.git/snapshot"
6744 "/emacs-rpm-spec-mode-f26.tar.gz"))
6745 (sha256
6746 (base32
6747 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
6748 (build-system emacs-build-system)
6749 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
6750 (synopsis "Emacs major mode for editing RPM spec files")
6751 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
6752editing RPM spec files.")
6753 (license license:gpl2+)))
a88adeb3
OP
6754
6755(define-public emacs-git-messenger
6756 (package
6757 (name "emacs-git-messenger")
6758 (version "0.18")
6759 (source
6760 (origin
6761 (method url-fetch)
6762 (uri (string-append
6763 "https://github.com/syohex/emacs-git-messenger/archive/"
6764 version ".tar.gz"))
6765 (file-name (string-append name "-" version ".tar.gz"))
6766 (sha256
6767 (base32
6768 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
6769 (build-system emacs-build-system)
6770 (propagated-inputs
6771 `(("emacs-popup" ,emacs-popup)))
6772 (arguments
d1d41db6
MC
6773 `(#:tests? #t
6774 #:test-command '("emacs" "--batch" "-l" "test/test.el"
6775 "-f" "ert-run-tests-batch-and-exit")))
a88adeb3
OP
6776 (home-page "https://github.com/syohex/emacs-git-messenger")
6777 (synopsis "Popup commit message at current line")
6778 (description "@code{emacs-git-messenger} provides
6779@code{git-messenger:popup-message}, a function that when called, will popup
6780the last git commit message for the current line. This uses git-blame
6781internally.")
6782 (license license:gpl3+)))
1ee879e9
OP
6783
6784(define-public emacs-gitpatch
6785 (package
6786 (name "emacs-gitpatch")
6787 (version "0.5.0")
6788 (source
6789 (origin
6790 (method url-fetch)
6791 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
6792 "v" version ".tar.gz"))
6793 (file-name (string-append name "-" version ".tar.gz"))
6794 (sha256
6795 (base32
6796 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
6797 (build-system emacs-build-system)
6798 (home-page "https://github.com/tumashu/gitpatch")
6799 (synopsis "Mail git patch from Emacs")
6800 (description "@code{emacs-gitpatch} lets users easily send git patches,
6801created by @code{git format-patch}, from @code{magit}, @code{dired} and
6802@code{ibuffer} buffers.")
6803 (license license:gpl3+)))
27feda65
OP
6804
6805(define-public emacs-erc-hl-nicks
6806 (package
6807 (name "emacs-erc-hl-nicks")
6808 (version "1.3.2")
6809 (source
6810 (origin
6811 (method url-fetch)
6812 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
6813 "/archive/" version ".tar.gz"))
6814 (file-name (string-append name "-" version ".tar.gz"))
6815 (sha256
6816 (base32
6817 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
6818 (build-system emacs-build-system)
6819 (synopsis "Nickname highlighting for Emacs ERC")
6820 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
6821client for Emacs. The main features are:
6822@itemize
6823@item Auto-colorizes nicknames without having to specify colors
6824@item Ignores certain characters that IRC clients add to nicknames to avoid
6825duplicates (nickname, nickname’, nickname\", etc.)
6826@item Attempts to produce colors with a sufficient amount of contrast between
6827the nick color and the background color
6828@end itemize\n")
6829 (home-page "https://github.com/leathekd/erc-hl-nicks")
6830 (license license:gpl3+)))
f262f446
OP
6831
6832(define-public emacs-engine-mode
6833 (package
6834 (name "emacs-engine-mode")
6835 (version "2.0.0")
6836 (source
6837 (origin
6838 (method url-fetch)
6839 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
6840 "v" version ".tar.gz"))
6841 (file-name (string-append name "-" version ".tar.gz"))
6842 (sha256
6843 (base32
6844 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
6845 (build-system emacs-build-system)
6846 (synopsis "Minor mode for defining and querying search engines")
6847 (description "@code{engine-mode} is a global minor mode for Emacs. It
6848enables you to easily define search engines, bind them to keybindings, and
6849query them from the comfort of your editor.")
6850 (home-page "https://github.com/hrs/engine-mode")
6851 (license license:gpl3+)))
b9dcaced
PM
6852
6853(define-public emacs-prop-menu
6854 (package
6855 (name "emacs-prop-menu")
6856 (version "0.1.2")
6857 (source
6858 (origin
6859 (method url-fetch)
6860 (uri (string-append
6861 "http://stable.melpa.org/packages/prop-menu-"
6862 version ".el"))
6863 (sha256
6864 (base32
6865 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
6866 (build-system emacs-build-system)
6867 (home-page
6868 "https://github.com/david-christiansen/prop-menu-el")
6869 (synopsis
6870 "Create and display a context menu based on text and overlay properties")
6871 (description
6872 "This is a library for computing context menus based on text
6873properties and overlays. The intended use is to have tools that
6874annotate source code and others that use these annotations, without
6875requiring a direct coupling between them, but maintaining
6876discoverability.
6877
6878Major modes that wish to use this library should first define an
6879appropriate value for @code{prop-menu-item-functions}. Then, they should
6880bind @code{prop-menu-by-completing-read} to an appropriate
6881key. Optionally, a mouse pop-up can be added by binding
6882@code{prop-menu-show-menu} to a mouse event.")
6883 (license license:gpl3+)))
5883bb76
PM
6884
6885(define-public emacs-idris-mode
6886 (package
6887 (name "emacs-idris-mode")
6888 (version "0.9.19")
6889 (source
6890 (origin
6891 (method url-fetch)
6892 (uri (string-append
6893 "http://stable.melpa.org/packages/idris-mode-"
6894 version ".tar"))
6895 (sha256
6896 (base32
a05a637c 6897 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
5883bb76
PM
6898 (build-system emacs-build-system)
6899 (propagated-inputs
6900 `(("emacs-prop-menu" ,emacs-prop-menu)))
6901 (home-page
6902 "https://github.com/idris-hackers/idris-mode")
6903 (synopsis "Major mode for editing Idris code")
6904 (description
6905 "This is an Emacs mode for editing Idris code. It requires the latest
6906version of Idris, and some features may rely on the latest Git version of
6907Idris.")
6908 (license license:gpl3+)))
eaf4ba6e
OP
6909
6910(define-public emacs-browse-at-remote
0698633d 6911 (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef")
eaf4ba6e
OP
6912 (revision "1"))
6913 (package
6914 (name "emacs-browse-at-remote")
6915 (version (string-append "0.9.0-" revision "."
6916 (string-take commit 7)))
6917 (source (origin
6918 (method git-fetch)
6919 (uri (git-reference
6920 (url "https://github.com/rmuslimov/browse-at-remote.git")
6921 (commit commit)))
6922 (file-name (string-append name "-" version "-checkout"))
61995dce
OP
6923 (patches
6924 (search-patches "emacs-browse-at-remote-cgit-gnu.patch"))
eaf4ba6e
OP
6925 (sha256
6926 (base32
0698633d 6927 "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj"))))
eaf4ba6e
OP
6928 (build-system emacs-build-system)
6929 (propagated-inputs
6930 `(("emacs-f" ,emacs-f)
6931 ("emacs-s" ,emacs-s)))
8505d348
AK
6932 (native-inputs
6933 `(("ert-runner" ,ert-runner)))
eaf4ba6e 6934 (arguments
d1d41db6
MC
6935 `(#:tests? #t
6936 #:test-command '("ert-runner")))
eaf4ba6e
OP
6937 (home-page "https://github.com/rmuslimov/browse-at-remote")
6938 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
6939 (description
6940 "This Emacs package allows you to open a target page on
6941github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
6942It supports dired buffers and opens them in tree mode at destination.")
6943 (license license:gpl3+))))
63253098
OP
6944
6945(define-public emacs-tiny
6946 (package
6947 (name "emacs-tiny")
d8ec1b71 6948 (version "0.2.1")
63253098
OP
6949 (source
6950 (origin
6951 (method url-fetch)
6952 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
6953 (sha256
6954 (base32
d8ec1b71 6955 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
63253098
OP
6956 (build-system emacs-build-system)
6957 (home-page "https://github.com/abo-abo/tiny")
6958 (synopsis "Quickly generate linear ranges in Emacs")
6959 (description
6960 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
a913d9d9 6961It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
63253098
OP
6962proficiency is an advantage, since you can transform your numeric range with
6963an elisp expression.")
0b88f536 6964 (license license:gpl3+)))
4aafce22 6965
7081d4e0
RW
6966(define-public emacs-emojify
6967 (package
6968 (name "emacs-emojify")
6969 (version "0.4")
6970 (source
6971 (origin
6972 (method url-fetch)
6973 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
6974 "releases/download/v" version "/emojify-"
6975 version ".tar"))
6976 (sha256
6977 (base32
6978 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
6979 (build-system emacs-build-system)
6980 (arguments
6981 `(#:phases
6982 (modify-phases %standard-phases
6983 (add-after 'install 'install-data
6984 (lambda* (#:key outputs #:allow-other-keys)
6985 (copy-recursively "data"
6986 (string-append (assoc-ref outputs "out")
6987 "/share/emacs/site-lisp/guix.d/"
6988 "emojify-" ,version "/data"))
6989 #t)))))
6990 (propagated-inputs
6991 `(("emacs-ht" ,emacs-ht)))
6992 (home-page "https://github.com/iqbalansari/emacs-emojify")
6993 (synopsis "Display emojis in Emacs")
6994 (description "This package displays emojis in Emacs similar to how Github,
6995Slack, and other websites do. It can display plain ASCII like @code{:)} as
6996well as Github-style emojis like @code{:smile:}. It provides a minor mode
6997@code{emojify-mode} to enable the display of emojis in a buffer.")
6998 (license license:gpl3+)))
6999
9c058ef2
RW
7000(define-public emacs-websocket
7001 (package
7002 (name "emacs-websocket")
a6334e6e 7003 (version "1.10")
9c058ef2
RW
7004 (source
7005 (origin
a6334e6e
RW
7006 (method git-fetch)
7007 (uri (git-reference
7008 (url "https://github.com/ahyatt/emacs-websocket.git")
7009 (commit version)))
7010 (file-name (string-append name "-" version "-checkout"))
9c058ef2
RW
7011 (sha256
7012 (base32
a6334e6e 7013 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
9c058ef2
RW
7014 (build-system emacs-build-system)
7015 (home-page "http://elpa.gnu.org/packages/websocket.html")
7016 (synopsis "Emacs WebSocket client and server")
7017 (description "This is an Elisp library for WebSocket clients to talk to
7018WebSocket servers, and for WebSocket servers to accept connections from
7019WebSocket clients. This library is designed to be used by other library
7020writers, to write applications that use WebSockets, and is not useful by
7021itself.")
7022 (license license:gpl3+)))
7023
a204c14c
RW
7024(define-public emacs-oauth2
7025 (package
7026 (name "emacs-oauth2")
7027 (version "0.11")
7028 (source
7029 (origin
7030 (method url-fetch)
7031 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7032 version ".el"))
7033 (sha256
7034 (base32
7035 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7036 (build-system emacs-build-system)
7037 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7038 (synopsis "OAuth 2.0 authorization protocol implementation")
7039 (description
7040 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7041The main entry point is @code{oauth2-auth-and-store} which will return a token
7042structure. This token structure can be then used with
7043@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7044retrieve any data that need OAuth authentication to be accessed. If the token
7045needs to be refreshed, the code handles it automatically and stores the new
7046value of the access token.")
7047 (license license:gpl3+)))
7048
26b388ce
RW
7049(define-public emacs-circe
7050 (package
7051 (name "emacs-circe")
7052 (version "2.6")
7053 (source
7054 (origin
7055 (method git-fetch)
7056 (uri (git-reference
7057 (url "https://github.com/jorgenschaefer/circe.git")
7058 (commit (string-append "v" version))))
7059 (file-name (string-append name "-" version "-checkout"))
7060 (sha256
7061 (base32
7062 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
7063 (build-system emacs-build-system)
7064 ;; In order to securely connect to an IRC server using TLS, Circe requires
7065 ;; the GnuTLS binary.
7066 (propagated-inputs
7067 `(("gnutls" ,gnutls)))
7068 (home-page "https://github.com/jorgenschaefer/circe")
7069 (synopsis "Client for IRC in Emacs")
7070 (description "Circe is a Client for IRC in Emacs. It integrates well with
7071the rest of the editor, using standard Emacs key bindings and indicating
7072activity in channels in the status bar so it stays out of your way unless you
7073want to use it.")
7074 (license license:gpl3+)))
7075
5c8cdd4e 7076(define-public emacs-slack
deb48944
RW
7077 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7078 (revision "4"))
5c8cdd4e
RW
7079 (package
7080 (name "emacs-slack")
7081 (version (string-append "0-" revision "." (string-take commit 7)))
7082 (source (origin
7083 (method git-fetch)
7084 (uri (git-reference
7085 (url "https://github.com/yuya373/emacs-slack.git")
7086 (commit commit)))
7087 (file-name (string-append name "-" version "-checkout"))
7088 (sha256
7089 (base32
deb48944 7090 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
5c8cdd4e
RW
7091 (build-system emacs-build-system)
7092 (propagated-inputs
7093 `(("emacs-alert" ,emacs-alert)
7094 ("emacs-emojify" ,emacs-emojify)
7095 ("emacs-request" ,emacs-request)
7096 ("emacs-websocket" ,emacs-websocket)
7097 ("emacs-oauth2" ,emacs-oauth2)
7098 ("emacs-circe" ,emacs-circe)))
7099 (home-page "https://github.com/yuya373/emacs-slack")
7100 (synopsis "Slack client for Emacs")
7101 (description "This package provides an Emacs client for the Slack
7102messaging service.")
7103 (license license:gpl3+))))
7104
4aafce22
JN
7105(define-public emacs-bash-completion
7106 (package
7107 (name "emacs-bash-completion")
7108 (version "2.0.0")
7109 (source
7110 (origin
7111 (method url-fetch)
7112 (uri (string-append
7113 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7114 version ".tar.gz"))
7115 (file-name (string-append name "-" version ".tar.gz"))
7116 (sha256
7117 (base32
7118 "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
7119 (inputs `(("bash" ,bash)))
7120 (build-system emacs-build-system)
7121 (arguments
7122 `(#:phases
7123 (modify-phases %standard-phases
7124 (add-before 'install 'configure
7125 (lambda* (#:key inputs #:allow-other-keys)
7126 (let ((bash (assoc-ref inputs "bash")))
7127 (emacs-substitute-variables "bash-completion.el"
7128 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7129 #t)))))
7130 (home-page "https://github.com/szermatt/emacs-bash-completion")
7131 (synopsis "BASH completion for the shell buffer")
7132 (description
7133 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7134and shell-command prompts that are based on bash completion.")
7135 (license license:gpl2+)))
d02c2873
KM
7136
7137(define-public emacs-easy-kill
7138 (package
7139 (name "emacs-easy-kill")
7140 (version "0.9.3")
7141 (source (origin
7142 (method url-fetch)
7143 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7144 version ".tar"))
7145 (sha256
7146 (base32
7147 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7148 (build-system emacs-build-system)
7149 (home-page "https://github.com/leoliu/easy-kill")
7150 (synopsis "Kill and mark things easily in Emacs")
7151 (description
7152 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7153let users kill or mark things easily.")
7154 (license license:gpl3+)))
9faa46ee
MC
7155
7156(define-public emacs-csv-mode
7157 (package
7158 (name "emacs-csv-mode")
7159 (version "1.7")
7160 (source
7161 (origin
7162 (method url-fetch)
7163 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7164 version ".el"))
7165 (sha256
7166 (base32
7167 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7168 (build-system emacs-build-system)
7169 (home-page
7170 "http://elpa.gnu.org/packages/csv-mode.html")
7171 (synopsis
7172 "Major mode for editing comma/char separated values")
7173 (description
7174 "This Emacs package implements CSV mode, a major mode for editing records
7175in a generalized CSV (character-separated values) format.")
7176 (license license:gpl3+)))
3fe4c9dc
OP
7177
7178(define-public emacs-transmission
7179 (package
7180 (name "emacs-transmission")
5ad13e6c 7181 (version "0.12.1")
3fe4c9dc
OP
7182 (source (origin
7183 (method url-fetch)
7184 (uri (string-append
7185 "https://github.com/holomorph/transmission/archive/"
7186 version ".tar.gz"))
7187 (file-name (string-append name "-" version ".tar.gz"))
7188 (sha256
7189 (base32
5ad13e6c 7190 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
3fe4c9dc
OP
7191 (build-system emacs-build-system)
7192 (home-page "https://github.com/holomorph/transmission")
7193 (synopsis "Emacs interface to a Transmission session")
7194 (description "This package provides an Emacs interface to interact with a
7195running session of the Transmission Bittorrent client.
7196
7197Features:
7198
7199@itemize
7200@item List, add, start/stop, verify, remove torrents.
7201@item Set speed limits, ratio limits, bandwidth priorities, trackers.
7202@item Navigate to the corresponding file list, torrent info, peer info
7203contexts.
7204@item Toggle downloading and set priorities for individual files.
7205@end itemize\n")
7206 (license license:gpl3+)))
a6d02fc1 7207
c46e654f
RW
7208(define-public emacs-polymode
7209 ;; There hasn't been a proper release.
7210 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7211 (revision "1"))
7212 (package
7213 (name "emacs-polymode")
7214 (version (string-append "1.0-" revision "." (string-take commit 7)))
7215 (source (origin
7216 (method git-fetch)
7217 (uri (git-reference
7218 (url "https://github.com/vspinu/polymode.git")
7219 (commit commit)))
7220 (file-name (string-append name "-" version "-checkout"))
7221 (sha256
7222 (base32
7223 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7224 (build-system emacs-build-system)
74b4d7a1
MC
7225 (arguments
7226 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7227 #:phases
7228 (modify-phases %standard-phases
7229 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7230 (lambda _
7231 (setenv "EMACSLOADPATH"
7232 (string-append (getenv "EMACSLOADPATH")
7233 ":" (getcwd) "/modes" ":")))))))
c46e654f
RW
7234 (home-page "https://github.com/vspinu/polymode")
7235 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7236 (description "Polymode is an Emacs package that offers generic support
7237for multiple major modes inside a single Emacs buffer. It is lightweight,
7238object oriented and highly extensible. Creating a new polymode typically
7239takes only a few lines of code. Polymode also provides extensible facilities
7240for external literate programming tools for exporting, weaving and tangling.")
7241 (license license:gpl3+))))
7242
a6d02fc1
OP
7243(define-public eless
7244 (package
7245 (name "eless")
7246 (version "0.3")
7247 (source (origin
7248 (method url-fetch)
7249 (uri (string-append
7250 "https://github.com/kaushalmodi/eless/archive/"
7251 "v" version ".tar.gz"))
7252 (file-name (string-append name "-" version ".tar.gz"))
7253 (sha256
7254 (base32
7255 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7256 (build-system trivial-build-system)
7257 (inputs
7258 `(("bash" ,bash)))
7259 (native-inputs
7260 `(("tar" ,tar)
7261 ("gzip" ,gzip)))
7262 (arguments
7263 `(#:modules ((guix build utils))
7264 #:builder
7265 (begin
7266 (use-modules (guix build utils))
7267 (setenv "PATH" (string-append
7268 (assoc-ref %build-inputs "tar") "/bin" ":"
7269 (assoc-ref %build-inputs "gzip") "/bin"))
7270 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7271 (chdir (string-append "eless" "-" ,version))
7272 (substitute* "eless" (("/usr/bin/env bash")
7273 (string-append (assoc-ref %build-inputs "bash")
7274 "/bin/bash")))
7275 (install-file "eless" (string-append %output "/bin"))
7276 (install-file "doc/eless.info" (string-append %output "/share/info"))
7277 #t)))
7278 (home-page "https://github.com/kaushalmodi/eless")
7279 (synopsis "Use Emacs as a paginator")
7280 (description "@code{eless} provides a combination of Bash script
7281and a minimal Emacs view-mode.
7282
7283Feautures:
7284
7285@itemize
7286@item Independent of a user’s Emacs config.
7287@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7288@item Not require an Emacs server to be already running.
7289@item Syntax highlighting.
7290@item Org-mode file rendering.
7291@item @code{man} page viewer.
7292@item Info viewer.
7293@item Dired, wdired, (batch edit symbolic links).
7294@item Colored diffs, git diff, git log, ls with auto ANSI detection.
7295@item Filter log files lines matching a regexp.
7296@item Auto-revert log files similar to @code{tail -f}.
7297@item Quickly change frame and font sizes.
7298@end itemize\n")
7299 (license license:expat)))
491cbd35
MG
7300
7301(define-public emacs-evil-matchit
7302 (package
7303 (name "emacs-evil-matchit")
9a910133 7304 (version "2.2.6")
491cbd35
MG
7305 (source
7306 (origin
7307 (method url-fetch)
7308 (uri (string-append
7309 "https://github.com/redguardtoo/evil-matchit/archive/"
7310 version ".tar.gz"))
7311 (file-name (string-append name "-" version ".tar.gz"))
7312 (sha256
7313 (base32
9a910133 7314 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
491cbd35 7315 (build-system emacs-build-system)
80c4aabb
MC
7316 (propagated-inputs
7317 `(("emacs-evil" ,emacs-evil)))
491cbd35
MG
7318 (home-page "https://github.com/redguardtoo/evil-matchit")
7319 (synopsis "Vim matchit ported into Emacs")
7320 (description
7321 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7322evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7323 (license license:gpl3+)))
ab8a4a78
AI
7324
7325(define-public emacs-evil-smartparens
7326 (package
7327 (name "emacs-evil-smartparens")
7328 (version "0.4.0")
7329 (source
7330 (origin
7331 (method url-fetch)
7332 (uri (string-append
7333 "https://github.com/expez/evil-smartparens/archive/"
7334 version ".tar.gz"))
7335 (file-name (string-append name "-" version ".tar.gz"))
7336 (sha256
7337 (base32
7338 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7339 (build-system emacs-build-system)
7340 (propagated-inputs
7341 `(("emacs-evil" ,emacs-evil)
7342 ("emacs-smartparens" ,emacs-smartparens)))
7343 (home-page "https://github.com/expez/evil-smartparens")
7344 (synopsis "Emacs Evil integration for Smartparens")
7345 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7346makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7347emulates Vim features and provides Vim-like key bindings.")
7348 (license license:gpl3+)))
2891ea39
AI
7349
7350(define-public emacs-evil-quickscope
7351 (package
7352 (name "emacs-evil-quickscope")
7353 (version "0.1.4")
7354 (source
7355 (origin
7356 (method url-fetch)
7357 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7358 version ".tar.gz"))
7359 (file-name (string-append name "-" version ".tar.gz"))
7360 (sha256
7361 (base32
7362 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7363 (build-system emacs-build-system)
7364 (propagated-inputs
7365 `(("emacs-evil" ,emacs-evil)))
7366 (arguments
d1d41db6
MC
7367 `(#:tests? #t
7368 #:test-command '("emacs" "--batch"
7369 "-l" "evil-quickscope-tests.el"
7370 "-f" "ert-run-tests-batch-and-exit")))
2891ea39
AI
7371 (home-page "https://github.com/blorbx/evil-quickscope")
7372 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7373 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7374mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7375port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7376features and provides Vim-like key bindings.")
7377 (license license:gpl3+)))
2a67ff1f
MO
7378
7379(define-public emacs-bongo
7380 (package
7381 (name "emacs-bongo")
7382 (version "1.0")
7383 (source
7384 (origin
7385 (method url-fetch)
7386 (uri (string-append
7387 "https://github.com/dbrock/bongo/archive/"
7388 version ".tar.gz"))
7389 (file-name (string-append name "-" version ".tar.gz"))
7390 (sha256
7391 (base32
7392 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7393 (build-system emacs-build-system)
7394 (home-page "https://github.com/dbrock/bongo")
7395 (synopsis "Media player for Emacs")
7396 (description
7397 "This package provides a flexible media player for Emacs. @code{Bongo}
7398supports multiple backends such as @code{vlc}, @code{mpg123},
7399@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7400@code{afplay}.")
7401 (license license:gpl2+)))
548cc74c
CB
7402
7403(define-public groovy-emacs-modes
7404 (package
7405 (name "groovy-emacs-modes")
7406 (version "2.0")
7407 (source (origin
7408 (method url-fetch)
7409 (uri (string-append
7410 "https://github.com/Groovy-Emacs-Modes/" name
7411 "/archive/" version ".tar.gz"))
7412 (file-name (string-append name "-" version ".tar.gz"))
7413 (sha256
7414 (base32
7415 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7416 (build-system emacs-build-system)
7417 (propagated-inputs
7418 `(("emacs-s" ,emacs-s)))
7419 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7420 (synopsis "Groovy related modes for Emacs")
7421 (description
7422 "This package provides @code{groovy-mode} for syntax highlighing in
7423Groovy source files, REPL integration with run-groovy and Grails project
7424navigation with the grails mode.")
7425 (license license:gpl3+)))
02267798
LC
7426
7427(define-public org-tree-slide
7428 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
7429 (revision "0"))
7430 (package
7431 (name "emacs-org-tree-slide")
7432 (version (git-version "0.1" revision commit))
7433 (home-page "https://github.com/takaxp/org-tree-slide")
7434 (source (origin
7435 (method git-fetch)
7436 (uri (git-reference (url home-page) (commit commit)))
7437 (sha256
7438 (base32
7439 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
7440 (file-name (git-file-name name version))))
7441 (build-system emacs-build-system)
7442 (synopsis "Presentation tool for org-mode")
7443 (description
7444 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
7445@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
7446@kbd{C-<} to jump to the next and previous slide.")
7447 (license license:gpl3+))))
ac07b94a
OP
7448
7449(define-public emacs-scratch-el
7450 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
7451 (revision "1"))
7452 (package
7453 (name "emacs-scratch-el")
7454 (version (git-version "1.2" revision commit))
7455 (source (origin
7456 (method git-fetch)
7457 (uri (git-reference
7458 (url "https://github.com/ieure/scratch-el.git")
7459 (commit commit)))
7460 (file-name (git-file-name name version))
7461 (sha256
7462 (base32
7463 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
7464 (build-system emacs-build-system)
7465 (native-inputs
7466 `(("texinfo" ,texinfo)))
7467 (arguments
7468 '(#:phases
7469 (modify-phases %standard-phases
7470 (add-after 'install 'install-doc
7471 (lambda* (#:key outputs #:allow-other-keys)
7472 (unless (invoke "makeinfo" "scratch.texi")
7473 (error "makeinfo failed"))
7474 (install-file "scratch.info"
7475 (string-append (assoc-ref outputs "out")
7476 "/share/info"))
7477 #t)))))
7478 (home-page "https://github.com/ieure/scratch-el/")
7479 (synopsis "Create scratch buffers with the same mode as current buffer")
7480 (description "Scratch is an extension to Emacs that enables one to create
7481scratch buffers that are in the same mode as the current buffer. This is
7482notably useful when working on code in some language; you may grab code into a
7483scratch buffer, and, by virtue of this extension, do so using the Emacs
7484formatting rules for that language.")
7485 (license license:bsd-2))))
5b238292 7486
62950ec7
MC
7487(define-public emacs-kv
7488 (package
7489 (name "emacs-kv")
7490 (version "0.0.19")
7491 (source
7492 (origin
7493 (method git-fetch)
7494 (uri (git-reference
7495 (url "https://github.com/nicferrier/emacs-kv.git")
7496 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
7497 (file-name (string-append name "-" version "-checkout"))
7498 (sha256
7499 (base32
7500 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
7501 (build-system emacs-build-system)
7502 (arguments
7503 `(#:tests? #t
7504 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
7505 "-f" "ert-run-tests-batch-and-exit")))
7506 (home-page "https://github.com/nicferrier/emacs-kv")
7507 (synopsis "Key/Value data structures library for Emacs Lisp")
7508 (description "@code{emacs-kv} is a collection of tools for dealing with
7509key/value data structures such as plists, alists and hash-tables in Emacs
7510Lisp.")
7511 (license license:gpl3+)))
7512
8d899214
RW
7513(define-public emacs-esxml
7514 (package
7515 (name "emacs-esxml")
7516 (version "0.3.4")
7517 (source (origin
7518 (method git-fetch)
7519 (uri (git-reference
7520 (url "https://github.com/tali713/esxml.git")
7521 (commit version)))
7522 (file-name (git-file-name name version))
7523 (sha256
7524 (base32
7525 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
7526 (build-system emacs-build-system)
9835a71d
MC
7527 (arguments
7528 `(#:phases
7529 (modify-phases %standard-phases
7530 (add-after 'unpack 'fix-sources
7531 (lambda _
7532 ;; See: https://github.com/tali713/esxml/pull/28.
7533 (substitute* "css-lite.el"
7534 ((";;; main interface")
7535 (string-append ";;; main interface\n"
7536 "(require 'cl-lib)"))
7537 (("mapcan")
7538 "cl-mapcan")
7539 (("',\\(cl-mapcan #'process-css-rule rules\\)")
7540 "(cl-mapcan #'process-css-rule ',rules)"))
7541 (substitute* "esxml-form.el"
7542 ((",esxml-form-field-defn")
7543 "#'esxml-form-field-defn"))
7544 ;; See: https://github.com/tali713/esxml/issues/25
7545 (delete-file "esxpath.el")
7546 #t)))))
7547 (propagated-inputs
7548 `(("emacs-kv" ,emacs-kv)))
8d899214
RW
7549 (home-page "https://github.com/tali713/esxml/")
7550 (synopsis "SXML for EmacsLisp")
7551 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
7552Simply, this is the easiest way to write HTML or XML in Lisp. This library
7553uses the native form of XML representation as used by many libraries already
7554included within Emacs. See @code{esxml-to-xml} for a concise description of
7555the format.")
7556 (license license:gpl3+)))
7557
5f78ce49
RW
7558(define-public emacs-nov-el
7559 (package
7560 (name "emacs-nov-el")
7561 (version "0.2.2")
7562 (source (origin
7563 (method git-fetch)
7564 (uri (git-reference
7565 (url "https://github.com/wasamasa/nov.el.git")
7566 (commit version)))
7567 (file-name (git-file-name name version))
7568 (sha256
7569 (base32
7570 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
7571 (build-system emacs-build-system)
7572 (arguments
7573 `(#:phases
7574 (modify-phases %standard-phases
7575 (add-after 'unpack 'embed-path-to-unzip
7576 (lambda _
7577 (substitute* "nov.el"
7578 (("\\(executable-find \"unzip\"\\)")
7579 (string-append "\"" (which "unzip") "\"")))
7580 #t)))))
7581 (propagated-inputs
7582 `(("emacs-dash" ,emacs-dash)
7583 ("emacs-esxml" ,emacs-esxml)))
7584 (inputs
7585 `(("unzip" ,unzip)))
7586 (home-page "https://github.com/wasamasa/nov.el/")
7587 (synopsis "Major mode for reading EPUBs in Emacs")
7588 (description "@code{nov.el} provides a major mode for reading EPUB
7589documents.
7590
7591Features:
7592
7593@itemize
7594@item Basic navigation (jump to TOC, previous/next chapter)
7595@item Remembering and restoring the last read position
7596@item Jump to next chapter when scrolling beyond end
7597@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
7598@item Hyperlinks to internal and external targets
7599@item Supports textual and image documents
7600@item View source of document files
7601@item Metadata display
7602@item Image rescaling
7603@end itemize
7604")
7605 (license license:gpl3+)))
7606
5b238292
OP
7607(define-public epipe
7608 (package
7609 (name "epipe")
7610 (version "0.1.0")
7611 (source
7612 (origin
7613 (method url-fetch)
7614 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
7615 version ".tar.gz"))
7616 (file-name (string-append name "-" version ".tar.gz"))
7617 (sha256
7618 (base32
7619 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
7620 (build-system trivial-build-system)
7621 (inputs
7622 `(("bash" ,bash)
7623 ("perl" ,perl)))
7624 (native-inputs
7625 `(("tar" ,tar)
7626 ("gzip" ,gzip)))
7627 (arguments
7628 `(#:modules
7629 ((guix build utils))
7630 #:builder
7631 (begin
7632 (use-modules (guix build utils))
7633 ;; Extract source
7634 (setenv "PATH" (string-append
7635 (assoc-ref %build-inputs "tar") "/bin" ":"
7636 (assoc-ref %build-inputs "gzip") "/bin"))
7637 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7638 (chdir (string-append ,name "-" ,version))
7639 ;; Patch shebangs
7640 (substitute* "epipe"
7641 (("/usr/bin/env bash")
7642 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
7643 (patch-shebang "epipe.pl"
7644 (list (string-append (assoc-ref %build-inputs "perl")
7645 "/bin")))
7646 ;; Installation
7647 (for-each (lambda (file)
7648 (install-file file (string-append %output "/bin")))
7649 '("epipe" "epipe.pl"))
7650 #t)))
7651 (home-page "https://github.com/cute-jumper/epipe")
7652 (synopsis "Pipe to the @code{emacsclient}")
7653 (description "@code{epipe} provides an utility to use your editor in
7654the pipeline, featuring the support for running @code{emacsclient}.")
7655 (license license:gpl3+)))
dc97f7e2
CB
7656
7657(define-public emacs-hcl-mode
7658 (package
7659 (name "emacs-hcl-mode")
7660 (version "0.03")
7661 (source
7662 (origin
7663 (method url-fetch)
7664 (uri (string-append
7665 "https://github.com/syohex/emacs-hcl-mode/archive/"
7666 version ".tar.gz"))
7667 (file-name (string-append name "-" version ".tar.gz"))
7668 (sha256
7669 (base32
7670 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
7671 (build-system emacs-build-system)
7672 (home-page "https://github.com/syohex/emacs-hcl-mode")
7673 (synopsis "Major mode for the Hashicorp Configuration Language")
7674 (description
7675 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
7676@acronym{HCL, Hashicorp Configuration Language}. It provides syntax
7677highlighting and indentation support.")
7678 (license license:gpl3+)))
68d70f6a
CB
7679
7680(define-public emacs-terraform-mode
7681 (package
7682 (name "emacs-terraform-mode")
7683 (version "0.06")
7684 (source
7685 (origin
7686 (method url-fetch)
7687 (uri (string-append
7688 "https://github.com/syohex/emacs-terraform-mode/archive/"
7689 version ".tar.gz"))
7690 (file-name (string-append name "-" version ".tar.gz"))
7691 (sha256
7692 (base32
7693 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
7694 (build-system emacs-build-system)
7695 (propagated-inputs
7696 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
7697 (home-page "https://github.com/syohex/emacs-terraform-mode")
7698 (synopsis "Major mode for Terraform")
7699 (description
7700 "@code{emacs-terraform-mode} provides a major mode for working with
7701@uref{https://www.terraform.io/, Terraform} configuration files. Most of the
7702functionality is inherited from @code{hcl-mode}.")
7703 (license license:gpl3+)))
22d62814
KH
7704
7705(define-public emacs-exec-path-from-shell
7706 (package
7707 (name "emacs-exec-path-from-shell")
7708 (version "1.11")
7709 (source
7710 (origin
7711 (method url-fetch)
7712 (uri (string-append
7713 "https://stable.melpa.org/packages/exec-path-from-shell-"
7714 version ".el"))
7715 (sha256
7716 (base32
7717 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
7718 (build-system emacs-build-system)
7719 (home-page "https://github.com/purcell/exec-path-from-shell")
7720 (synopsis "Get environment variables such as @var{PATH} from the shell")
7721 (description
7722 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
7723from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
7724the like work as expected on systems on which Emacs is not guaranteed to
7725inherit a login shell's environment variables. It also allows other
7726environment variables to be retrieved from the shell, so that Emacs will see
7727the same values you get in a terminal.")
7728 (license license:gpl3+)))
5d818b35
KH
7729
7730(define-public emacs-deft
7731 (package
7732 (name "emacs-deft")
7733 (version "0.8")
7734 (source
7735 (origin
7736 (method url-fetch)
7737 (uri (string-append "https://stable.melpa.org/packages/deft-"
7738 version ".el"))
7739 (sha256
7740 (base32
7741 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
7742 (build-system emacs-build-system)
7743 (home-page "https://jblevins.org/projects/deft/")
7744 (synopsis "Quickly browse, filter, and edit plain text notes")
7745 (description
7746 "Deft is an Emacs mode for quickly browsing, filtering, and editing
7747directories of plain text notes, inspired by Notational Velocity.")
7748 (license license:bsd-3)))
62d1105c
SB
7749
7750(define-public emacs-anzu
7751 (package
7752 (name "emacs-anzu")
7753 (version "0.62")
7754 (source
7755 (origin
7756 (method url-fetch)
2d11acb6
SB
7757 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
7758 version ".tar.gz"))
7759 (file-name (string-append name "-" version ".tar.gz"))
62d1105c
SB
7760 (sha256
7761 (base32
2d11acb6 7762 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
62d1105c
SB
7763 (build-system emacs-build-system)
7764 (home-page "https://github.com/syohex/emacs-anzu")
7765 (synopsis "Show number of matches in mode-line while searching")
7766 (description
7767 "Anzu provides a minor mode which displays \"current match/total
7768matches\" in the mode line in various search modes. This is an Emacs port of
7769Anzu.zim.")
7770 (license license:gpl3+)))
c3581ef9
ML
7771
7772(define-public emacs-emmet-mode
7773 (package
7774 (name "emacs-emmet-mode")
7775 (version "1.0.8")
7776 (source (origin
7777 (method url-fetch)
7778 (uri (string-append "https://github.com/smihica/emmet-mode"
7779 "/archive/" version ".tar.gz"))
7780 (file-name (string-append name "-" version ".tar.gz"))
7781 (sha256
7782 (base32
7783 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
7784 (build-system emacs-build-system)
7785 (home-page "https://github.com/smihica/emmet-mode")
7786 (synopsis "Unofficial Emmet's support for Emacs")
7787 (description
7788 "Unfold CSS-selector-like expressions to markup. It is intended to be
7789used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
7790 (license license:gpl3+)))
03efe78c 7791
82bead75
RW
7792(define-public emacs-ergoemacs-mode
7793 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
7794 (revision "1"))
7795 (package
7796 (name "emacs-ergoemacs-mode")
7797 (version (git-version "5.16.10.12" revision commit))
7798 (source
7799 (origin
7800 (method git-fetch)
7801 (uri (git-reference
7802 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
7803 (commit commit)))
7804 (sha256
7805 (base32
7806 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
7807 (build-system emacs-build-system)
7808 (propagated-inputs
7809 `(("emacs-undo-tree" ,emacs-undo-tree)))
7810 (home-page "https://ergoemacs.github.io/")
7811 (synopsis "Emacs mode based on common modern interface and ergonomics")
7812 (description
7813 "This package provides an efficient Emacs keybinding set based on
7814statistics of command frequency, and supports common shortcuts for open,
7815close, copy, cut, paste, undo, redo.")
7816 (license license:gpl3+))))
7817
03efe78c
KH
7818(define-public emacs-password-store
7819 (package
7820 (name "emacs-password-store")
7821 (version "1.7.1")
7822 (source (origin
7823 (method url-fetch)
7824 (uri
7825 (string-append "https://git.zx2c4.com/password-store/snapshot/"
7826 "password-store-" version ".tar.xz"))
7827 (sha256
7828 (base32
7829 "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
7830 (build-system emacs-build-system)
7831 (arguments
7832 `(#:phases
7833 (modify-phases %standard-phases
7834 (add-after 'unpack 'extract-el-file
7835 (lambda _
7836 (copy-file "contrib/emacs/password-store.el" "password-store.el")
7837 (delete-file-recursively "contrib")
7838 (delete-file-recursively "man")
7839 (delete-file-recursively "src")
7840 (delete-file-recursively "tests"))))))
7841 (propagated-inputs
7842 `(("emacs-f" ,emacs-f)
7843 ("emacs-s" ,emacs-s)
7844 ("password-store" ,password-store)))
7845 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
7846 (synopsis "Password store (pass) support for Emacs")
7847 (description
7848 "This package provides functions for working with pass (\"the
7849standard Unix password manager\").")
7850 (license license:gpl2+)))
7851
ab4d1c26
KH
7852(define-public emacs-pass
7853 (package
7854 (name "emacs-pass")
7855 (version "1.7")
7856 (source (origin
7857 (method url-fetch)
7858 (uri (string-append
7859 "https://github.com/NicolasPetton/pass/archive/"
7860 version ".tar.gz"))
7861 (sha256
7862 (base32
7863 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
7864 (file-name (string-append name "-" version ".tar.gz"))))
7865 (build-system emacs-build-system)
7866 (propagated-inputs
7867 `(("emacs-password-store" ,emacs-password-store)
7868 ("emacs-f" ,emacs-f)))
7869 (home-page "https://github.com/NicolasPetton/pass")
7870 (synopsis "Major mode for @file{password-store.el}")
7871 (description "This is a major mode for managing password-store (pass)
7872keychains. The keychain entries are displayed in a directory-like structure
7873and can be consulted and modified.")
7874 (license license:gpl3+)))
7875
d4bb4551
SB
7876(define-public emacs-evil-anzu
7877 (package
7878 (name "emacs-evil-anzu")
7879 (version "0.03")
7880 (source
7881 (origin
7882 (method url-fetch)
7883 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
7884 "/archive/" version ".tar.gz"))
7885 (file-name (string-append name "-" version ".tar.gz"))
7886 (sha256
7887 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
7888 (build-system emacs-build-system)
7889 (propagated-inputs
7890 `(("emacs-evil" ,emacs-evil)
7891 ("emacs-anzu" ,emacs-anzu)))
7892 (home-page "https://github.com/syohex/emacs-evil-anzu")
7893 (synopsis "Anzu for evil-mode")
7894 (description "@code{anzu} provides a minor mode that displays the current
7895match and total match information in the mode-line in various search modes.")
7896 (license license:gpl3+)))
086bfb37
OP
7897
7898(define-public emacs-pg
7899 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
7900 (package
7901 (name "emacs-pg")
7902 (version (git-version "0.1" "1" commit))
7903 (source (origin
7904 (method git-fetch)
7905 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
7906 (commit commit)))
7907 (file-name (git-file-name name version))
7908 (sha256
7909 (base32
7910 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
7911 (build-system emacs-build-system)
7912 (home-page "https://github.com/cbbrowne/pg.el")
7913 (synopsis "Emacs Lisp interface for PostgreSQL")
7914 (description
7915 "This package provides an Emacs Lisp interface for PostgreSQL.")
7916 (license license:gpl3+))))
5b6d6747
OP
7917
7918(define-public emacs-cl-generic
7919 (package
7920 (name "emacs-cl-generic")
7921 (version "0.3")
7922 (source
7923 (origin
7924 (method url-fetch)
7925 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
7926 version ".el"))
7927 (sha256
7928 (base32
7929 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
7930 (build-system emacs-build-system)
7931 (home-page "https://elpa.gnu.org/packages/seq.html")
7932 (synopsis
7933 "Forward @code{cl-generic} compatibility for Emacs before version 25")
7934 (description "This package provides a subset of the features of the
7935@code{cl-generic} package introduced in Emacs-25, for use on previous
7936@code{emacsen}.")
7937 (license license:gpl3+)))
6c92b440
OP
7938
7939(define-public emacs-finalize
7940 (package
7941 (name "emacs-finalize")
7942 (version "2.0.0")
7943 (source
7944 (origin
7945 (method url-fetch)
7946 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
7947 version ".tar.gz"))
7948 (file-name (string-append name "-" version ".tar.gz"))
7949 (sha256
7950 (base32
7951 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
7952 (build-system emacs-build-system)
7953 (propagated-inputs
7954 `(("emacs-cl-generic" ,emacs-cl-generic)))
7955 (home-page "https://github.com/skeeto/elisp-finalize")
7956 (synopsis "Finalizers for Emacs Lisp")
7957 (description
7958 "This package will allows to immediately run a callback (a finalizer)
7959after its registered lisp object has been garbage collected. This allows for
7960extra resources, such as buffers and processes, to be cleaned up after the
7961object has been freed.")
7962 (license license:unlicense)))
4d089b5e
OP
7963
7964(define-public emacs-emacsql
7965 (package
7966 (name "emacs-emacsql")
7967 (version "2.0.3")
7968 (source
7969 (origin
7970 (method url-fetch)
7971 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
7972 version ".tar.gz"))
7973 (file-name (string-append name "-" version ".tar.gz"))
7974 (sha256
7975 (base32
7976 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
7977 (build-system emacs-build-system)
7978 (arguments
7979 `(#:modules ((guix build emacs-build-system)
7980 (guix build utils)
7981 (guix build emacs-utils)
7982 (srfi srfi-26))
7983 #:phases
7984 (modify-phases %standard-phases
7985 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
7986 (add-before 'install 'patch-elisp-shell-shebangs
7987 (lambda _
7988 (substitute* (find-files "." "\\.el")
7989 (("/bin/sh") (which "sh")))
7990 #t))
7991 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
7992 (lambda _
7993 (setenv "SHELL" "sh")))
7994 (add-after 'setenv-shell 'build-emacsql-sqlite
7995 (lambda _
7996 (invoke "make" "binary" "CC=gcc")))
7997 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
7998 ;; This build phase installs emacs-emacsql binary.
7999 (lambda* (#:key outputs #:allow-other-keys)
8000 (install-file "sqlite/emacsql-sqlite"
8001 (string-append (assoc-ref outputs "out")
8002 "/bin"))
8003 #t))
8004 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8005 ;; This build phase removes interactive prompts
8006 ;; and makes sure Emacs look for binaries in the right places.
8007 (lambda* (#:key outputs #:allow-other-keys)
8008 (let ((file "emacsql-sqlite.el"))
8009 (chmod file #o644)
8010 (emacs-substitute-sexps file
8011 ;; Avoid interactive prompts.
8012 ("(defvar emacsql-sqlite-user-prompted" 't)
8013 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8014 ("(executable-find" (which "gcc"))
8015 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8016 ;; in the right place.
8017 ("(defvar emacsql-sqlite-executable"
8018 (string-append (assoc-ref outputs "out")
8019 "/bin/emacsql-sqlite"))))))
8020 (replace 'install
8021 (lambda* (#:key outputs #:allow-other-keys)
8022 (let* ((out (assoc-ref outputs "out")))
8023 (install-file "sqlite/emacsql-sqlite"
8024 (string-append out "/bin"))
8025 (for-each (cut install-file <>
8026 (string-append out "/share/emacs/site-lisp/guix.d/"
8027 "emacsql" "-" ,version))
8028 (find-files "." "\\.elc*$")))
8029 #t)))))
8030 (inputs
8031 `(("emacs-minimal" ,emacs-minimal)
8032 ("mysql" ,mysql)
8033 ("postgresql" ,postgresql)))
8034 (propagated-inputs
8035 `(("emacs-finalize" ,emacs-finalize)
8036 ("emacs-pg" ,emacs-pg)))
8037 (home-page "https://github.com/skeeto/emacsql")
8038 (synopsis "Emacs high-level SQL database front-end")
8039 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8040including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8041has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8042object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8043 (license license:gpl3+)))
93aba854
OP
8044
8045(define-public emacs-closql
8046 (package
8047 (name "emacs-closql")
8048 (version "0.5.1")
8049 (source
8050 (origin
8051 (method url-fetch)
8052 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8053 "v" version ".tar.gz"))
8054 (file-name (string-append name "-" version ".tar.gz"))
8055 (sha256
8056 (base32
8057 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8058 (build-system emacs-build-system)
8059 (propagated-inputs
8060 `(("emacs-emacsql" ,emacs-emacsql)))
8061 (home-page "https://github.com/emacscollective/closql")
8062 (synopsis "Store EIEIO objects using EmacSQL")
8063 (description
8064 "This package allows to store uniform EIEIO objects in an EmacSQL
8065database. SQLite is used as backend. This library imposes some restrictions
8066on what kind of objects can be stored; it isn't intended to store arbitrary
8067objects. All objects have to share a common superclass and subclasses cannot
8068add any additional instance slots.")
8069 (license license:gpl3)))
452454e3
OP
8070
8071(define-public emacs-epkg
8072 ;; The release version is to old for the current database scheme.
8073 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8074 (package
8075 (name "emacs-epkg")
8076 (version (git-version "3.0.0" "1" commit))
8077 (source
8078 (origin
8079 (method git-fetch)
8080 (uri (git-reference
8081 (url "https://github.com/emacscollective/epkg.git")
8082 (commit commit)))
8083 (file-name (git-file-name name version))
8084 (sha256
8085 (base32
8086 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8087 (build-system emacs-build-system)
8088 (propagated-inputs
8089 `(("emacs-closql" ,emacs-closql)
8090 ("emacs-dash" ,emacs-dash)))
8091 (home-page "https://emacsmirror.net")
8092 (synopsis "Browse the Emacsmirror package database")
8093 (description "This package provides access to a local copy of the
8094Emacsmirror package database. It provides low-level functions for querying
8095the database and a @file{package.el} user interface for browsing the database.
8096Epkg itself is not a package manager.
8097
8098Getting a local copy:
8099
8100@example
8101git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8102cd ~/.emacs.d/epkgs
8103git submodule init
8104git config --global url.https://github.com/.insteadOf git@@github.com:
8105git submodule update
8106@end example
8107
8108Some submodule may be missing. In this case Git will prompt for a GitHub user
8109name and password. To skip it press a @key{Return} key.
8110
8111You could get a Epkg package list by invoking @code{epkg-list-packages} in
8112Emacs.")
8113 (license license:gpl3+))))
c51e592d
KH
8114
8115(define-public emacs-elisp-slime-nav
8116 (package
8117 (name "emacs-elisp-slime-nav")
8118 (version "0.9")
8119 (source
8120 (origin
8121 (method url-fetch)
8122 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8123 version ".tar.gz"))
8124 (file-name (string-append name "-" version ".tar.gz"))
8125 (sha256
8126 (base32
8127 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8128 (build-system emacs-build-system)
8129 (home-page "https://github.com/purcell/elisp-slime-nav")
8130 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8131 (description
8132 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8133in @code{emacs-lisp-mode}, together with an elisp equivalent of
8134@code{slime-describe-symbol}.")
8135 (license license:gpl3+)))
4f95a118
CM
8136
8137(define-public emacs-dedicated
8138 (package
8139 (name "emacs-dedicated")
8140 (version "1.0.0")
8141 (source (origin
8142 (method url-fetch)
8143 (uri (string-append
8144 "https://github.com/emacsorphanage/dedicated/archive/"
8145 version
8146 ".tar.gz"))
8147 (sha256
8148 (base32
8149 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8150 (file-name (string-append name "-" version ".tar.gz"))))
8151 (build-system emacs-build-system)
8152 (home-page "https://github.com/emacsorphanage/dedicated")
8153 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8154 (description
8155 "This simple Emacs minor mode allows you to toggle a window's
8156\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8157files into that window. This can be quite handy since many commands will use
8158another window to show results (compilation mode, starting info, and so on).
8159A dedicated window won't be used for such a purpose. For details, please read
8160the source file.")
8161 (license license:gpl2+)))
59dc661f
OP
8162
8163(define-public emacs-nnreddit
8164 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8165 (revision "1"))
8166 (package
8167 (name "emacs-nnreddit")
8168 (version (string-append "0.0.1-" revision "."
8169 (string-take commit 7)))
8170 (source (origin
8171 (method git-fetch)
8172 (uri (git-reference
8173 (url "https://github.com/paul-issartel/nnreddit.git")
8174 (commit commit)))
8175 (file-name (string-append name "-" version "-checkout"))
8176 (sha256
8177 (base32
8178 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8179 (build-system emacs-build-system)
8180 (home-page "https://github.com/paul-issartel/nnreddit")
8181 (synopsis "Reddit backend for the Gnus newsreader")
8182 (description "@url{https://www.reddit.com} backend for the Gnus
8183newsreader.")
8184 (license license:gpl3+))))
63e6c4ad
OP
8185
8186(define-public emacs-makey
8187 (package
8188 (name "emacs-makey")
8189 (version "0.3")
8190 (source
8191 (origin
8192 (method url-fetch)
8193 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8194 version ".tar.gz"))
8195 (file-name (string-append name "-" version ".tar.gz"))
8196 (sha256
8197 (base32
8198 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8199 (build-system emacs-build-system)
8200 (home-page "https://github.com/mickeynp/makey")
8201 (synopsis "Emacs interactive command-line mode")
8202 (description
8203 "This package provides an Emacs interactive command-line mode.")
8204 (license license:gpl3+)))
a34d562a
OP
8205
8206(define-public emacs-outorg
8207 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8208 (package
8209 (name "emacs-outorg")
8210 (version (git-version "2.0" "1" commit))
8211 (source
8212 (origin
8213 (method git-fetch)
8214 (uri (git-reference
8215 (url "https://github.com/alphapapa/outorg")
8216 (commit commit)))
8217 (file-name (git-file-name name version))
8218 (sha256
8219 (base32
8220 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8221 (build-system emacs-build-system)
8222 (home-page "https://github.com/alphapapa/outorg")
8223 (synopsis "Org-style comment editing")
8224 (description "Outorg is for editing comment-sections of source-code
8225files in temporary Org-mode buffers. It turns conventional
8226literate-programming upside-down in that the default mode is the
8227programming-mode, and special action has to be taken to switch to the
8228text-mode (i.e. Org-mode).")
8229 (license license:gpl3+))))
c47c3779
OP
8230
8231(define-public emacs-outshine
8232 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8233 (package
8234 (name "emacs-outshine")
8235 (version (git-version "2.0" "1" commit))
8236 (source (origin
8237 (method git-fetch)
8238 (uri (git-reference
8239 (url "https://github.com/alphapapa/outshine.git")
8240 (commit commit)))
8241 (file-name (git-file-name name version))
8242 (sha256
8243 (base32
8244 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8245 (build-system emacs-build-system)
8246 (propagated-inputs
8247 `(("emacs-outorg" ,emacs-outorg)))
8248 (home-page "https://github.com/alphapapa/outshine")
8249 (synopsis "Emacs outline with outshine")
8250 (description "Outshine attempts to bring the look and feel of
8251@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8252of @code{outline-minor-mode} (@code{org-mode} itself derives from
8253outline-mode), so there is no such thing like an outshine mode, only
8254@code{outline-minor-mode} with outshine extensions loaded.")
8255 (license license:gpl3+))))
de8d9912
OP
8256
8257(define-public emacs-parsebib
8258 (package
8259 (name "emacs-parsebib")
8260 (version "2.3.1")
8261 (source
8262 (origin
8263 (method url-fetch)
8264 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8265 version ".tar.gz"))
8266 (file-name (string-append name "-" version ".tar.gz"))
8267 (sha256
8268 (base32
8269 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8270 (build-system emacs-build-system)
8271 (home-page "https://github.com/joostkremers/parsebib")
8272 (synopsis "Library for parsing bib files")
8273 (description
8274 "This package provides an Emacs library for parsing bib files.")
8275 (license license:gpl3+)))
55d53210
OP
8276
8277(define-public emacs-biblio
8278 (package
8279 (name "emacs-biblio")
8280 (version "0.1")
8281 (source
8282 (origin
8283 (method url-fetch)
8284 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8285 version ".tar.gz"))
8286 (file-name (string-append name "-" version ".tar.gz"))
8287 (sha256
8288 (base32
8289 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8290 (build-system emacs-build-system)
8291 (home-page "https://github.com/cpitclaudel/biblio.el")
8292 (synopsis "Browse and import bibliographic references")
8293 (description "This package provides an extensible Emacs package for
8294browsing and fetching references.
8295
8296@file{biblio.el} makes it easy to browse and gather bibliographic references
8297and publications from various sources, by keywords or by DOI. References are
8298automatically fetched from well-curated sources, and formatted as BibTeX.")
8299 (license license:gpl3+)))
f063e18c
OP
8300
8301(define-public emacs-helm-bibtex
8302 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8303 (revision "1"))
8304 (package
8305 (name "emacs-helm-bibtex")
8306 (version (string-append "2.0.0" "-" revision "."
8307 (string-take commit 7)))
8308 (source
8309 (origin
8310 (method git-fetch)
8311 (uri (git-reference
8312 (url "https://github.com/tmalsburg/helm-bibtex.git")
8313 (commit commit)))
8314 (file-name (string-append name "-" version "-checkout"))
8315 (sha256
8316 (base32
8317 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8318 (build-system emacs-build-system)
8319 (propagated-inputs
8320 `(("emacs-helm" ,emacs-helm)
8321 ("emacs-parsebib" ,emacs-parsebib)
8322 ("emacs-s" ,emacs-s)
8323 ("emacs-dash" ,emacs-dash)
8324 ("emacs-f" ,emacs-f)
8325 ("emacs-biblio" ,emacs-biblio)))
8326 (home-page "https://github.com/tmalsburg/helm-bibtex")
8327 (synopsis "Bibliography manager based on Helm")
8328 (description "This package provides bibliography manager for Emacs,
8329based on Helm and the bibtex-completion backend.
8330
8331Key features:
8332
8333@itemize
8334@item Quick access to your bibliography from within Emacs
8335@item Powerful search capabilities
8336@item Provides instant search results as you type
8337@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8338@item Open the PDFs, URLs, or DOIs associated with an entry
8339@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8340BibTeX entries, or plain text references at point, attach PDFs to emails
8341@item Support for note taking
8342@item Quick access to online bibliographic databases such as Pubmed,
8343arXiv, Google Scholar, Library of Congress, etc.
8344@item Imports BibTeX entries from CrossRef and other sources.
8345@end itemize\n")
8346 (license license:gpl3+))))
f445c75d
OP
8347
8348(define-public emacs-ewmctrl
8349 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf")
8350 (revision "1"))
8351 (package
8352 (name "emacs-ewmctrl")
8353 (version (string-append "0.0.1" "-" revision "."
8354 (string-take commit 7)))
8355 (source
8356 (origin
8357 (method git-fetch)
8358 (uri (git-reference
8359 (url "https://github.com/flexibeast/ewmctrl.git")
8360 (commit commit)))
8361 (file-name (string-append name "-" version "-checkout"))
8362 (sha256
8363 (base32
8364 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8365 (build-system emacs-build-system)
8366 (home-page "https://github.com/flexibeast/ewmctrl")
8367 (synopsis "Emacs interface to @code{wmctrl}")
8368 (description "@code{ewmctrl} provides an Emacs interface to
8369@code{wmctrl} command-line window-management program.")
8370 (license license:gpl3+))))
707ff555
OP
8371
8372(define-public emacs-helm-gtags
8373 (package
8374 (name "emacs-helm-gtags")
8375 (version "1.5.6")
8376 (source (origin
8377 (method url-fetch)
8378 (uri (string-append
8379 "https://github.com/syohex/emacs-helm-gtags/archive/"
8380 version ".tar.gz"))
8381 (file-name (string-append name "-" version ".tar.gz"))
8382 (sha256
8383 (base32
8384 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
8385 (build-system emacs-build-system)
8386 (home-page "https://github.com/syohex/emacs-helm-gtags")
8387 (synopsis "Emacs Helm interface to GNU Global")
8388 (description
8389 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
8390 (license license:gpl3+)))
53d4090b
OP
8391
8392(define-public emacs-list-utils
8393 (package
8394 (name "emacs-list-utils")
8395 (version "0.4.4")
8396 (source
8397 (origin
8398 (method url-fetch)
8399 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
8400 "v" version ".tar.gz"))
8401 (file-name (string-append name "-" version ".tar.gz"))
8402 (sha256
8403 (base32
8404 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
8405 (build-system emacs-build-system)
8406 (home-page "https://github.com/rolandwalker/list-utils")
8407 (synopsis "List-manipulation utility functions")
8408 (description "This package provides a list manipulation library for Emacs.")
8409 (license license:gpl3+)))
fb3aeaf7
OP
8410
8411(define-public emacs-move-text
8412 (package
8413 (name "emacs-move-text")
8414 (version "2.0.8")
8415 (source
8416 (origin
8417 (method url-fetch)
8418 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
8419 version ".tar.gz"))
8420 (file-name (string-append name "-" version ".tar.gz"))
8421 (sha256
8422 (base32
8423 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
8424 (build-system emacs-build-system)
8425 (home-page "https://github.com/emacsfodder/move-text")
8426 (synopsis "Move current line or region with M-up or M-down")
8427 (description "This package provide functions to move the current line
8428using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
8429region instead.")
8430 (license license:gpl3+)))
dc586337
OP
8431
8432(define-public emacs-validate
8433 (package
8434 (name "emacs-validate")
8435 (version "1.0.5")
8436 (source (origin
8437 (method url-fetch)
8438 (uri (string-append "https://github.com/Malabarba/validate.el"
8439 "/archive/" version ".tar.gz"))
8440 (file-name (string-append name "-" version ".tar.gz"))
8441 (sha256
8442 (base32
8443 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
8444 (build-system emacs-build-system)
8445 (home-page "https://github.com/Malabarba/validate.el")
8446 (synopsis "Emacs library for scheme validation")
8447 (description "This Emacs library provides two functions that perform
8448schema validation.")
8449 (license license:gpl3+)))
f8a88f22
OP
8450
8451(define-public emacs-load-relative
8452 (let ((commit "738896e3da491b35399178ed2c6bc92cc728d119")
8453 (revision "1"))
8454 (package
8455 (name "emacs-load-relative")
8456 (version (string-append "0.0.1" "-" revision "."
8457 (string-take commit 7)))
8458 (source
8459 (origin
8460 (method git-fetch)
8461 (uri (git-reference
8462 (url "https://github.com/rocky/emacs-load-relative")
8463 (commit commit)))
8464 (file-name (string-append name "-" version "-checkout"))
8465 (sha256
8466 (base32
8467 "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73"))))
8468 (build-system emacs-build-system)
8469 (home-page "https://github.com/rocky/emacs-load-relative")
8470 (synopsis "Relative loads for Emacs Lisp files")
8471 (description "@code{load-relative} allows to write small Emacs
8472functions or modules in a larger multi-file Emacs package and
8473facilitate running from the source tree without having to install the
8474code or fiddle with evil @code{load-path}.")
8475 (license license:gpl3+))))
d7403c12
OP
8476
8477(define-public emacs-rainbow-blocks
8478 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
8479 (package
8480 (name "emacs-rainbow-blocks")
8481 (version (git-version "1.0.0" "1" commit))
8482 (source (origin
8483 (method git-fetch)
8484 (uri (git-reference
8485 (url "https://github.com/istib/rainbow-blocks.git")
8486 (commit commit)))
8487 (file-name (git-file-name name version))
8488 (sha256
8489 (base32
8490 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
8491 (build-system emacs-build-system)
8492 (home-page "https://github.com/istib/rainbow-blocks")
8493 (synopsis "Highlight sexp blocks")
8494 (description "Rainbow-blocks is an Emacs mode that highlights blocks
8495made of parentheses, brackets, and braces according to their depth. Each
8496successive level is highlighted in a different color. This makes it easy to
8497orient yourself in the code, and tell which statements are at a given level.")
8498 (license license:gpl3+))))
20b5b16e
OP
8499
8500(define-public emacs-hierarchy
8501 (package
8502 (name "emacs-hierarchy")
8503 (version "0.7.0")
8504 (source
8505 (origin
8506 (method url-fetch)
8507 (uri (string-append
8508 "https://github.com/DamienCassou/hierarchy/archive/"
8509 "v" version ".tar.gz"))
8510 (file-name (string-append name "-" version ".tar.gz"))
8511 (sha256
8512 (base32
8513 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
8514 (build-system emacs-build-system)
8515 (home-page "https://github.com/DamienCassou/hierarchy")
8516 (synopsis "Library to create and display hierarchy structures")
8517 (description "This package provides an Emacs library to create, query,
8518navigate and display hierarchy structures.")
8519 (license license:gpl3+)))
0acfc481
OP
8520
8521(define-public emacs-tree-mode
8522 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
8523 (revision "1"))
8524 (package
8525 (name "emacs-tree-mode")
8526 (version (string-append "0.0.1" "-" revision "."
8527 (string-take commit 7)))
8528 (source
8529 (origin
8530 (method git-fetch)
8531 (uri (git-reference
8532 (url "https://github.com/emacsorphanage/tree-mode.git")
8533 (commit commit)))
8534 (file-name (string-append name "-" version "-checkout"))
8535 (sha256
8536 (base32
8537 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
8538 (build-system emacs-build-system)
8539 (home-page "https://github.com/emacsorphanage/tree-mode")
8540 (synopsis "Emacs mode to manage tree widgets")
8541 (description
8542 "This package provides an Emacs library to manage tree widgets.")
8543 (license license:gpl3+))))
74b2f745
OP
8544
8545(define-public emacs-md4rd
8546 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
8547 (revision "1"))
8548 (package
8549 (name "emacs-md4rd")
8550 (version (string-append "0.0.1" "-" revision "."
8551 (string-take commit 7)))
8552 (source (origin
8553 (method git-fetch)
8554 (uri (git-reference
8555 (url "https://github.com/ahungry/md4rd.git")
8556 (commit commit)))
8557 (file-name (string-append name "-" version "-checkout"))
8558 (sha256
8559 (base32
8560 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
8561 (propagated-inputs
8562 `(("emacs-hierarchy" ,emacs-hierarchy)
8563 ("emacs-request" ,emacs-request)
8564 ("emacs-dash" ,emacs-dash)
8565 ("emacs-s" ,emacs-s)
8566 ("emacs-tree-mode" ,emacs-tree-mode)))
8567 (build-system emacs-build-system)
8568 (home-page "https://github.com/ahungry/md4rd")
8569 (synopsis "Emacs Mode for Reddit")
8570 (description
8571 "This package allows to read Reddit from within Emacs interactively.")
8572 (license license:gpl3+))))
b8f91043
OP
8573
8574(define-public emacs-pulseaudio-control
8575 (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b")
8576 (revision "1"))
8577 (package
8578 (name "emacs-pulseaudio-control")
8579 (version (string-append "0.0.1" "-" revision "."
8580 (string-take commit 7)))
8581 (source
8582 (origin
8583 (method git-fetch)
8584 (uri (git-reference
8585 (url "https://github.com/flexibeast/pulseaudio-control.git")
8586 (commit commit)))
8587 (file-name (string-append name "-" version "-checkout"))
8588 (sha256
8589 (base32
8590 "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"))))
8591 (build-system emacs-build-system)
8592 (home-page "https://github.com/flexibeast/pulseaudio-control")
8593 (synopsis "Control @code{pulseaudio} from Emacs")
8594 (description
8595 "This package allows to control @code{pulseaudio} from Emacs.")
8596 (license license:gpl3+))))
5746ca13
OP
8597
8598(define-public emacs-datetime
8599 (package
8600 (name "emacs-datetime")
8601 (version "0.3")
8602 (source (origin
8603 (method url-fetch)
8604 (uri (string-append
8605 "https://github.com/doublep/datetime/archive/"
8606 version ".tar.gz"))
8607 (file-name (string-append name "-" version ".tar.gz"))
8608 (sha256
8609 (base32
8610 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
8611 (build-system emacs-build-system)
8612 (home-page "https://github.com/doublep/datetime/")
8613 (synopsis "Library to work with dates in Emacs")
8614 (description "Parsing, formatting, matching and recoding
8615timestamps and date-time format strings library for Emacs.")
8616 (license license:gpl3+)))
a3a876c2
OP
8617
8618(define-public emacs-org-mind-map
8619 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
8620 (revision "1"))
8621 (package
8622 (name "emacs-org-mind-map")
8623 (version (string-append "0.0.1" "-" revision "."
8624 (string-take commit 7)))
8625 (source
8626 (origin
8627 (method git-fetch)
8628 (uri (git-reference
8629 (url "https://github.com/theodorewiles/org-mind-map.git")
8630 (commit commit)))
8631 (file-name (string-append name "-" version "-checkout"))
8632 (sha256
8633 (base32
8634 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
8635 (propagated-inputs
8636 `(("emacs-dash" ,emacs-dash)))
8637 (build-system emacs-build-system)
8638 (home-page "https://github.com/theodorewiles/org-mind-map")
8639 (synopsis "Create Graphviz directed graphs from Org files")
8640 (description
8641 "This package creates Graphviz directed graphs from Org files.")
8642 (license license:gpl3+))))
8d907999
OP
8643
8644(define-public emacs-npm-mode
8645 (package
8646 (name "emacs-npm-mode")
8647 (version "0.6.0")
8648 (source
8649 (origin
8650 (method url-fetch)
8651 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
8652 version ".tar.gz"))
8653 (file-name (string-append name "-" version ".tar.gz"))
8654 (sha256
8655 (base32
8656 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
8657 (build-system emacs-build-system)
8658 (home-page "https://github.com/mojochao/npm-mode")
8659 (synopsis "Minor mode for working with @code{npm} projects")
8660 (description
8661 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
8662 (license license:gpl3+)))
b12fb29e
OP
8663
8664(define-public emacs-seq
8665 (package
8666 (name "emacs-seq")
8667 (version "2.20")
8668 (source
8669 (origin
8670 (method url-fetch)
8671 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
8672 (sha256
8673 (base32
8674 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
8675 (build-system emacs-build-system)
8676 (home-page "http://elpa.gnu.org/packages/seq.html")
8677 (synopsis "Sequence manipulation functions")
8678 (description "Sequence-manipulation functions that complement basic
8679functions provided by @file{subr.el}.")
8680 (license license:gpl3+)))
be3cf803
OP
8681
8682(define-public emacs-itail
8683 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
8684 (revision "1"))
8685 (package
8686 (name "emacs-itail")
8687 (version (string-append "0.0.1" "-" revision "."
8688 (string-take commit 7)))
8689 (source
8690 (origin
8691 (method git-fetch)
8692 (uri (git-reference
8693 (url "https://github.com/re5et/itail.git")
8694 (commit commit)))
8695 (file-name (string-append name "-" version "-checkout"))
8696 (sha256
8697 (base32
8698 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
8699 (build-system emacs-build-system)
8700 (home-page "https://github.com/re5et/itail")
8701 (synopsis "Interactive @code{tail} Emacs mode")
8702 (description "@code{itail} provides interactive @code{tail} mode
8703that allows you to filter the tail with unix pipes and highlight the
8704contents of the tailed file. Works locally or on remote files using
8705tramp.")
8706 (license license:gpl3+))))
b836c650
OP
8707
8708(define-public emacs-loop
8709 (package
8710 (name "emacs-loop")
8711 (version "1.3")
8712 (source
8713 (origin
8714 (method url-fetch)
8715 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
8716 version ".tar.gz"))
8717 (file-name (string-append name "-" version ".tar.gz"))
8718 (sha256
8719 (base32
8720 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
8721 (build-system emacs-build-system)
8722 (home-page "https://github.com/Wilfred/loop.el")
8723 (synopsis "Imperative loop structures for Emacs")
8724 (description "Loop structures familiar to users of other languages. This
8725library adds a selection of popular loop structures as well as break and
8726continue.")
8727 (license license:gpl3+)))
1bd3400d
OP
8728
8729(define-public emacs-elisp-refs
8730 (package
8731 (name "emacs-elisp-refs")
8732 (version "1.2")
8733 (source
8734 (origin
8735 (method url-fetch)
8736 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
8737 version ".tar.gz"))
8738 (file-name (string-append name "-" version ".tar.gz"))
8739 (sha256
8740 (base32
8741 "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
8742 (build-system emacs-build-system)
8743 (propagated-inputs
8744 `(("emacs-dash" ,emacs-dash)
8745 ("emacs-f" ,emacs-f)
8746 ("emacs-list-utils" ,emacs-list-utils)
8747 ("emacs-loop" ,emacs-loop)
8748 ("emacs-s" ,emacs-s)))
8749 (home-page "https://github.com/Wilfred/elisp-refs")
8750 (synopsis "Find callers of elisp functions or macros")
8751 (description "Find references to functions, macros or variables. Unlike a
8752dumb text search, @code{elisp-refs} actually parses the code, so it's never
8753confused by comments or @code{foo-bar} matching @code{foo}.")
8754 (license license:gpl3+)))
08ff4fd1
OP
8755
8756(define-public emacs-crux
8757 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
8758 (revision "1"))
8759 (package
8760 (name "emacs-crux")
8761 (version (string-append "0.3.0" "-" revision "."
8762 (string-take commit 7)))
8763 (source
8764 (origin
8765 (method git-fetch)
8766 (uri (git-reference
8767 (url "https://github.com/bbatsov/crux.git")
8768 (commit commit)))
8769 (file-name (string-append name "-" version "-checkout"))
8770 (sha256
8771 (base32
8772 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
8773 (build-system emacs-build-system)
8774 (home-page "https://github.com/bbatsov/crux")
8775 (synopsis "Collection of useful functions for Emacs")
8776 (description
8777 "@code{crux} provides a collection of useful functions for Emacs.")
8778 (license license:gpl3+))))
3677e5ee
OP
8779
8780(define-public emacs-edit-server
8781 (package
8782 (name "emacs-edit-server")
8783 (version "1.13")
8784 (source
8785 (origin
8786 (method url-fetch)
8787 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
8788 "v" version ".tar.gz"))
8789 (file-name (string-append name "-" version ".tar.gz"))
8790 (sha256
8791 (base32
8792 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
8793 (build-system emacs-build-system)
8794 (arguments
8795 `(#:phases
8796 (modify-phases %standard-phases
8797 (add-after 'unpack 'chdir-elisp
8798 ;; Elisp directory is not in root of the source.
8799 (lambda _
8800 (chdir "servers"))))))
8801 (home-page "https://github.com/stsquad/emacs_chrome")
8802 (synopsis "Server that responds to edit requests from Chromium")
8803 (description
8804 "This package provides an edit server to respond to requests from Emacs.")
8805 (license license:gpl3+)))
40246075
OP
8806
8807(define-public emacs-m-buffer-el
8808 (package
8809 (name "emacs-m-buffer-el")
8810 (version "0.15")
8811 (source
8812 (origin
8813 (method url-fetch)
8814 (uri (string-append "https://github.com/phillord/m-buffer-el"
8815 "/archive/" "v" version ".tar.gz"))
8816 (file-name (string-append name "-" version ".tar.gz"))
8817 (sha256
8818 (base32
8819 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
8820 (arguments
8821 `(#:phases
8822 (modify-phases %standard-phases
8823 (add-before 'install 'check
8824 (lambda* (#:key inputs #:allow-other-keys)
8825 (zero? (system* "emacs" "--batch" "-L" "."
8826 "-l" "test/m-buffer-test.el"
8827 "-l" "test/m-buffer-at-test.el"
8828 "-f" "ert-run-tests-batch-and-exit")))))))
8829 (build-system emacs-build-system)
8830 (home-page "https://github.com/phillord/m-buffer-el")
8831 (synopsis "List oriented buffer operations for Emacs")
8832 (description "@code{m-buffer} provides a set of list-orientated functions
8833for operating over the contents of Emacs buffers.")
8834 (license license:gpl3+)))
15d56833
OP
8835
8836(define-public emacs-let-alist
8837 (package
8838 (name "emacs-let-alist")
8839 (version "1.0.5")
8840 (source
8841 (origin
8842 (method url-fetch)
8843 (uri (string-append
8844 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
8845 (sha256
8846 (base32
8847 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
8848 (build-system emacs-build-system)
8849 (home-page "https://elpa.gnu.org/packages/let-alist.html")
8850 (synopsis "Easily let-bind values of an assoc-list by their names")
8851 (description "This package offers a single macro, @code{let-alist}. This
8852macro takes a first argument (whose value must be an alist) and a body.")
8853 (license license:gpl3+)))
ddc56b80
OP
8854
8855(define-public emacs-esup
8856 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
8857 (revision "1"))
8858 (package
8859 (name "emacs-esup")
8860 (version (string-append "0.6" "-" revision "."
8861 (string-take commit 7)))
8862 (source
8863 (origin
8864 (method git-fetch)
8865 (uri (git-reference
8866 (url "https://github.com/jschaf/esup.git")
8867 (commit commit)))
8868 (file-name (string-append name "-" version "-checkout"))
8869 (sha256
8870 (base32
8871 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
8872 ;; TODO: Add tests
8873 (build-system emacs-build-system)
8874 (home-page "https://github.com/jschaf/esup")
8875 (synopsis "Emacs start up profiler")
8876 (description "Benchmark Emacs Startup time without ever leaving
8877your Emacs.")
8878 (license license:gpl2+))))
e33dba15
OP
8879
8880(define-public emacs-sourcemap
8881 (package
8882 (name "emacs-sourcemap")
8883 (version "0.03")
8884 (source
8885 (origin
8886 (method url-fetch)
8887 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
8888 version ".tar.gz"))
8889 (file-name (string-append name "-" version ".tar.gz"))
8890 (sha256
8891 (base32
8892 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
8893 (build-system emacs-build-system)
8894 (home-page "https://github.com/syohex/emacs-sourcemap")
8895 (synopsis "Sourcemap parser")
8896 (description "Sourcemap parser")
8897 (license license:gpl3+)))
9968e444
OP
8898
8899(define-public emacs-macrostep
8900 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
8901 (package
8902 (name "emacs-macrostep")
8903 (version (git-version "0.9" "1" commit))
8904 (source (origin
8905 (method git-fetch)
8906 (uri (git-reference
8907 (url "https://github.com/joddie/macrostep.git")
8908 (commit commit)))
8909 (file-name (string-append name "-" version "-checkout"))
8910 (sha256
8911 (base32
8912 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
8913 (build-system emacs-build-system)
8914 (arguments
8915 '(#:phases
8916 (modify-phases %standard-phases
8917 (add-before 'check 'remove-test
8918 ;; Fails because of requirement ‘/bin/sh’.
8919 (lambda _
8920 (let ((file "macrostep-test.el"))
8921 (chmod file #o644)
8922 (emacs-batch-edit-file file
8923 `(progn (progn (goto-char (point-min))
8924 (re-search-forward
8925 "(ert-deftest macrostep-expand-c-macros")
8926 (beginning-of-line)
8927 (kill-sexp))
8928 (basic-save-buffer))))))
8929 (add-before 'install 'check
8930 (lambda _
8931 (invoke "emacs" "--batch" "-L" "."
8932 "-l" "macrostep-test.el"
8933 "-f" "ert-run-tests-batch-and-exit"))))))
8934 (home-page "https://github.com/joddie/macrostep")
8935 (synopsis "Interactive macro-expander for Emacs")
8936 (description "@code{macrostep} is an Emacs minor mode for interactively
8937stepping through the expansion of macros in Emacs Lisp source code. It lets
8938you see exactly what happens at each step of the expansion process by
8939pretty-printing the expanded forms inline in the source buffer, which is
8940temporarily read-only while macro expansions are visible. You can expand and
8941collapse macro forms one step at a time, and evaluate or instrument the
8942expansions for debugging with Edebug as normal (but see “Bugs and known
8943limitations”, below). Single-stepping through the expansion is particularly
8944useful for debugging macros that expand into another macro form. These can be
8945difficult to debug with Emacs’ built-in macroexpand, which continues expansion
8946until the top-level form is no longer a macro call.")
8947 (license license:gpl3+))))
02999382
OP
8948
8949(define-public emacs-parent-mode
8950 (package
8951 (name "emacs-parent-mode")
8952 (version "2.3")
8953 (source
8954 (origin
8955 (method url-fetch)
8956 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
8957 version ".tar.gz"))
8958 (file-name (string-append name "-" version ".tar.gz"))
8959 (sha256
8960 (base32
8961 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
8962 (build-system emacs-build-system)
8963 (home-page "https://github.com/Fanael/parent-mode")
8964 (synopsis "Get major mode's parent modes")
8965 (description "Get major mode's parent modes")
8966 (license license:gpl3+)))
045f6b7c
OP
8967
8968(define-public emacs-lacarte
8969 (package
8970 (name "emacs-lacarte")
8971 (version "0.1")
8972 (source (origin
8973 (method url-fetch)
8974 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
8975 (sha256
8976 (base32
8977 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
8978 (build-system emacs-build-system)
8979 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
8980 (synopsis "Execute menu items as commands, with completion")
8981 (description "Execute menu items as commands, with completion.")
8982 (license license:gpl3)))
b8ddef4b
OP
8983
8984(define-public emacs-company-lua
8985 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
8986 (package
8987 (name "emacs-company-lua")
8988 (version (git-version "0.1" "1" commit))
8989 (source
8990 (origin
8991 (method git-fetch)
8992 (uri (git-reference
8993 (url "https://github.com/ptrv/company-lua.git")
8994 (commit commit)))
8995 (file-name (git-file-name name version))
8996 (sha256
8997 (base32
8998 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
8999 (build-system emacs-build-system)
9000 (propagated-inputs
9001 `(("emacs-company" ,emacs-company)
9002 ("emacs-s" ,emacs-s)
9003 ("emacs-f" ,emacs-f)
9004 ("emacs-lua-mode" ,emacs-lua-mode)))
9005 (home-page "https://github.com/ptrv/company-lua")
9006 (synopsis "Company backend for Lua")
9007 (description
9008 "This package provides Company backend for Lua programming language.")
9009 (license license:gpl3+))))
f61ecb85
OP
9010
9011(define-public emacs-beginend
9012 (package
9013 (name "emacs-beginend")
9014 (version "2.0.0")
9015 (source
9016 (origin
9017 (method url-fetch)
9018 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9019 "v" version ".tar.gz"))
9020 (file-name (string-append name "-" version ".tar.gz"))
9021 (sha256
9022 (base32
9023 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9024 ;; TODO: Run tests.
9025 (build-system emacs-build-system)
9026 (inputs
9027 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9028 (home-page "https://github.com/DamienCassou/beginend")
9029 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9030 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9031keybindings for Emacs modes so that point moves to meaningful
9032locations. Redefined keys are still accessible by pressing the same
9033key again.")
9034 (license license:gpl3+)))
666e5617
OP
9035
9036(define-public emacs-mbsync
9037 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9038 (revision "1"))
9039 (package
9040 (name "emacs-mbsync")
9041 (version (string-append "0.0.1" "-" revision "."
9042 (string-take commit 7)))
9043 (source
9044 (origin
9045 (method git-fetch)
9046 (uri (git-reference
9047 (url "https://github.com/dimitri/mbsync-el.git")
9048 (commit commit)))
9049 (file-name (string-append name "-" version "-checkout"))
9050 (sha256
9051 (base32
9052 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9053 (build-system emacs-build-system)
9054 (home-page "https://github.com/dimitri/mbsync-el")
9055 (synopsis "Interface to mbsync for Emacs")
9056 (description "This package allows to call the @code{mbsync} from
9057within Emacs.")
9058 (license license:gpl3+))))
60bf9265
OP
9059
9060(define-public emacs-ibuffer-projectile
9061 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9062 (revision "1"))
9063 (package
9064 (name "emacs-ibuffer-projectile")
9065 (version (string-append "0.2" "-" revision "."
9066 (string-take commit 7)))
9067 (source
9068 (origin
9069 (method git-fetch)
9070 (uri (git-reference
9071 (url "https://github.com/purcell/ibuffer-projectile.git")
9072 (commit commit)))
9073 (file-name (string-append name "-" version "-checkout"))
9074 (sha256
9075 (base32
9076 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9077 (build-system emacs-build-system)
9078 (propagated-inputs
9079 `(("emacs-projectile" ,emacs-projectile)))
9080 (home-page "https://github.com/purcell/ibuffer-projectile")
9081 (synopsis "Group ibuffer's list by projectile root")
9082 (description "Adds functionality to Emacs @code{ibuffer} for
9083grouping buffers by their projectile root directory.")
9084 (license license:gpl3+))))
295513c6
OP
9085
9086(define-public emacs-helm-mode-manager
9087 (package
9088 (name "emacs-helm-mode-manager")
9089 (version "1.0.0")
9090 (source
9091 (origin
9092 (method url-fetch)
9093 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9094 "archive/" version ".tar.gz"))
9095 (file-name (string-append name "-" version ".tar.gz"))
9096 (sha256
9097 (base32
9098 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9099 (build-system emacs-build-system)
9100 (propagated-inputs
9101 `(("emacs-helm" ,emacs-helm)))
9102 (home-page "https://github.com/istib/helm-mode-manager/")
9103 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9104 (description "This package provides a Helm interface for toggling Emacs
9105major or minor mode.
9106
9107@itemize
9108@item @code{helm-switch-major-mode} list of all major modes
9109@item @code{helm-enable-minor-mode} list of all inactive minor modes
9110@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9111@end itemize\n
9112
9113Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9114documentation.")
9115 (license license:gpl3+)))
4cdfc9ef
OP
9116
9117(define-public emacs-hy-mode
9118 (package
9119 (name "emacs-hy-mode")
9120 (version "1.0.2")
9121 (source
9122 (origin
9123 (method url-fetch)
9124 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9125 "v" version ".tar.gz"))
9126 (file-name (string-append name "-" version ".tar.gz"))
9127 (sha256
9128 (base32
9129 "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
9130 (build-system emacs-build-system)
9131 (propagated-inputs
9132 `(("emacs-dash" ,emacs-dash)
9133 ("emacs-s" ,emacs-s)))
9134 (home-page "https://github.com/hylang/hy-mode")
9135 (synopsis "Major mode for Hylang")
9136 (description "This package provides a major mode for Hylang.")
9137 (license license:gpl3+)))
8aab3d06
OP
9138
9139(define-public emacs-web-beautify
9140 (package
9141 (name "emacs-web-beautify")
9142 (version "0.3.2")
9143 (source
9144 (origin
9145 (method url-fetch)
9146 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9147 version ".tar.gz"))
9148 (file-name (string-append name "-" version ".tar.gz"))
9149 (sha256
9150 (base32
9151 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9152 (build-system emacs-build-system)
9153 (home-page "https://github.com/yasuyk/web-beautify")
9154 (synopsis "Format HTML, CSS and JavaScript, JSON")
9155 (description "This package provides an Emacs functions to format HTML,
9156CSS, JavaScript, JSON.")
9157 (license license:gpl3+)))
c1b9d72c
OP
9158
9159(define-public emacs-helm-shell-history
9160 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9161 (package
9162 (name "emacs-helm-shell-history")
9163 (version (git-version "0.1" "1" commit))
9164 (source
9165 (origin
9166 (method git-fetch)
9167 (uri (git-reference
9168 (url "https://github.com/yuutayamada/helm-shell-history.git")
9169 (commit commit)))
9170 (file-name (git-file-name name version))
9171 (sha256
9172 (base32
9173 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9174 (build-system emacs-build-system)
9175 (arguments
9176 '(#:phases
9177 (modify-phases %standard-phases
9178 (add-before 'check 'patch-helm-shell-history-file
9179 (lambda _
9180 (let ((file "helm-shell-history.el"))
9181 (chmod file #o644)
9182 (emacs-substitute-sexps file
9183 ("(defvar helm-shell-history-file"
9184 `(expand-file-name "~/.bash_history"))))
9185 #t)))))
9186 (home-page "https://github.com/yuutayamada/helm-shell-history")
9187 (synopsis "Find shell history with Emacs Helm")
9188 (description "This package provides an Emacs Helm interface to search
9189throw a shell history.")
9190 (license license:gpl3+))))
2c63f724
OP
9191
9192(define-public emacs-discover-my-major
9193 (package
9194 (name "emacs-discover-my-major")
9195 (version "1.0")
9196 (source
9197 (origin
9198 (method url-fetch)
9199 (uri
9200 (string-append "https://github.com/steckerhalter/discover-my-major"
9201 "/archive/" version ".tar.gz"))
9202 (file-name (string-append name "-" version ".tar.gz"))
9203 (sha256
9204 (base32
9205 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9206 (build-system emacs-build-system)
9207 (propagated-inputs
9208 `(("emacs-makey" ,emacs-makey)))
9209 (home-page "https://github.com/steckerhalter/discover-my-major")
9210 (synopsis "Discover key bindings for the current Emacs major mode")
9211 (description "This package provides allows to discover key bindings and
9212their meaning for the current Emacs major-mode.")
9213 (license license:gpl3+)))
21a3de58
OP
9214
9215(define-public emacs-org-ref
9216 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9217 (revision "1"))
9218 (package
9219 (name "emacs-org-ref")
9220 (version (string-append "1.1.1" "-" revision "."
9221 (string-take commit 7)))
9222 (source
9223 (origin
9224 (method git-fetch)
9225 (uri (git-reference
9226 (url "https://github.com/jkitchin/org-ref.git")
9227 (commit commit)))
9228 (file-name (string-append name "-" version "-checkout"))
9229 (sha256
9230 (base32
9231 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9232 (build-system emacs-build-system)
9233 (propagated-inputs
9234 `(("emacs-dash" ,emacs-dash)
9235 ("emacs-helm" ,emacs-helm)
9236 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9237 ("emacs-ivy" ,emacs-ivy)
9238 ("emacs-hydra" ,emacs-hydra)
9239 ("emacs-key-chord" ,emacs-key-chord)
9240 ("emacs-s" ,emacs-s)
9241 ("emacs-f" ,emacs-f)
9242 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9243 (home-page "https://github.com/jkitchin/org-ref")
9244 (synopsis "Citations, cross-references and bibliographies in org-mode")
9245 (description
9246 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9247Also sets up reftex and helm for org-mode citations. The links are
9248clickable and do things that are useful.
9249
9250The default setup uses helm-bibtex.
9251
9252You should really read org-ref.org in this package for details.")
9253 (license license:gpl3+))))
56e90e31
OP
9254
9255(define-public emacs-add-hooks
9256 (package
9257 (name "emacs-add-hooks")
9258 (version "3.1.1")
9259 (source (origin
9260 (method url-fetch)
9261 (uri (string-append
9262 "https://github.com/nickmccurdy/add-hooks/archive/"
9263 version ".tar.gz"))
9264 (file-name (string-append name "-" version ".tar.gz"))
9265 (sha256
9266 (base32
9267 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9268 (build-system emacs-build-system)
9269 (home-page "https://github.com/nickmccurdy/add-hooks/")
9270 (synopsis "Emacs function for setting multiple hooks")
9271 (description "This package provides a @code{add-hooks} function tidies up
9272duplicate hook and function names further into a single declarative call.")
9273 (license license:gpl3+)))
58b50580
OP
9274
9275(define-public emacs-fancy-narrow
9276 (package
9277 (name "emacs-fancy-narrow")
9278 (version "0.9.5")
9279 (source
9280 (origin
9281 (method url-fetch)
9282 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9283 version ".tar.gz"))
9284 (file-name (string-append name "-" version ".tar.gz"))
9285 (sha256
9286 (base32
9287 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9288 (build-system emacs-build-system)
9289 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9290 (synopsis "Immitate narrow-to-region with more eye-candy")
9291 (description "Unlike narrow-to-region, which completely hides text outside
9292the narrowed region, this package simply deemphasizes the text, makes it
9293readonly, and makes it unreachable. This leads to a much more natural
9294feeling, where the region stays static (instead of being brutally moved to a
9295blank slate) and is clearly highlighted with respect to the rest of the
9296buffer.")
9297 (license license:gpl2+)))
9b876c69
OP
9298
9299(define-public emacs-know-your-http-well
9300 (package
9301 (name "emacs-know-your-http-well")
9302 (version "0.5.0")
9303 (source
9304 (origin
9305 (method url-fetch)
9306 (uri (string-append
9307 "https://github.com/for-GET/know-your-http-well/archive/"
9308 "v" version ".tar.gz"))
9309 (file-name (string-append name "-" version ".tar.gz"))
9310 (sha256
9311 (base32
9312 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9313 (arguments
9314 `(#:phases
9315 (modify-phases %standard-phases
9316 (add-after 'unpack 'install-json-files
9317 (lambda* (#:key outputs #:allow-other-keys)
9318 (for-each (lambda (directory)
9319 (copy-recursively directory
9320 (string-append
9321 (assoc-ref outputs "out")
9322 directory)))
9323 '("js" "json"))))
9324 (add-after 'unpack 'chdir-elisp
9325 ;; Elisp directory is not in root of the source.
9326 (lambda _
9327 (chdir "emacs"))))))
9328 (build-system emacs-build-system)
9329 (home-page "https://github.com/for-GET/know-your-http-well")
9330 (synopsis "Meaning of HTTP headers codes")
9331 (description "Meaning of HTTP headers codes.")
9332 (license license:gpl3+)))
9f2b572e
OP
9333
9334(define-public emacs-navi-mode
9335 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9336 (package
9337 (name "emacs-navi-mode")
9338 (version (git-version "2.0" "1" commit))
9339 (source
9340 (origin
9341 (method git-fetch)
9342 (uri (git-reference
9343 (url "https://github.com/alphapapa/navi.git")
9344 (commit commit)))
9345 (file-name (git-file-name name version))
9346 (sha256
9347 (base32
9348 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9349 (build-system emacs-build-system)
9350 (propagated-inputs
9351 `(("emacs-outshine" ,emacs-outshine)
9352 ("emacs-outorg" ,emacs-outorg)))
9353 (home-page "https://github.com/alphapapa/navi")
9354 (synopsis "Emacs major-mode for easy buffer-navigation")
9355 (description
9356 "This package provides an Emacs major-mode for easy buffer-navigation")
9357 (license license:gpl3+))))
2f28093e
OP
9358
9359(define-public emacs-download-region
9360 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
9361 (revision "1"))
9362 (package
9363 (name "emacs-download-region")
9364 (version (string-append "0.0.1" "-" revision "."
9365 (string-take commit 7)))
9366 (source
9367 (origin
9368 (method git-fetch)
9369 (uri (git-reference
9370 (url "https://github.com/zk-phi/download-region.git")
9371 (commit commit)))
9372 (file-name (string-append name "-" version "-checkout"))
9373 (sha256
9374 (base32
9375 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
9376 (build-system emacs-build-system)
9377 (home-page "https://github.com/zk-phi/download-region")
9378 (synopsis "In buffer download manager for Emacs")
9379 (description "@code{download-region} provides in buffer
9380downloading manager for Emacs.")
9381 (license license:gpl3+))))
8bc8efc7
OP
9382
9383(define-public emacs-csv-mode
9384 (package
9385 (name "emacs-csv-mode")
9386 (version "1.7")
9387 (source
9388 (origin
9389 (method url-fetch)
9390 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
9391 version ".el"))
9392 (sha256
9393 (base32
9394 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
9395 (build-system emacs-build-system)
9396 (home-page "http://elpa.gnu.org/packages/csv-mode.html")
9397 (synopsis "Major mode for editing comma or char separated values")
9398 (description
9399 "This package provides an Emacs CSV mode, a major mode for editing
9400records in a generalized CSV (character-separated values) format.")
9401 (license license:gpl3+)))
b2bf4f54
OP
9402
9403(define-public emacs-helpful
9404 (package
9405 (name "emacs-helpful")
9406 (version "0.1")
9407 (source (origin
9408 (method url-fetch)
9409 (uri (string-append
9410 "https://github.com/Wilfred/helpful/archive/"
9411 version ".tar.gz"))
9412 (file-name (string-append name "-" version ".tar.gz"))
9413 (sha256
9414 (base32
9415 "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
9416 (build-system emacs-build-system)
9417 (propagated-inputs
9418 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
9419 (home-page "https://github.com/Wilfred/helpful")
9420 (synopsis "More contextual information in Emacs help")
9421 (description "@code{helpful} is an alternative to the built-in Emacs help
9422that provides much more contextual information.
9423
9424@itemize
9425@item Show the source code for interactively defined functions (unlike the
9426built-in Help).
9427@item Fall back to the raw sexp if no source is available.
9428@item Show where a function is being called.
9429@item Docstrings will Highlight the summary (the first sentence), include
9430cross-references, hide superfluous puncuation.
9431@item Show you the properties that have been applied to the current
9432symbol. This provides visibility of features like edebug or byte-code
9433optimisation.
9434@item Provide a separate @code{helpful-command} function to view interactive
9435functions.
9436@item Display any keybindings that apply to interactive functions.
9437@item Trace, disassemble functions from inside Helpful. This is discoverable
9438and doesn't require memorisation of commands.
9439@end itemize\n")
9440 (license license:gpl3+)))
1024dadd
OP
9441
9442(define-public emacs-logview
9443 (package
9444 (name "emacs-logview")
9445 (version "0.9")
9446 (source (origin
9447 (method url-fetch)
9448 (uri (string-append
9449 "https://github.com/doublep/logview/archive/"
9450 version ".tar.gz"))
9451 (file-name (string-append name "-" version ".tar.gz"))
9452 (sha256
9453 (base32
9454 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
9455 (propagated-inputs
9456 `(("emacs-datetime" ,emacs-datetime)))
9457 (build-system emacs-build-system)
9458 (home-page "https://github.com/doublep/logview/")
9459 (synopsis "Emacs mode for viewing log files")
9460 (description "@code{logview} provides an Emacs mode to view log files.")
9461 (license license:gpl3+)))
0bc5a32a
OP
9462
9463(define-public emacs-suggest
9464 (package
9465 (name "emacs-suggest")
9466 (version "0.4")
9467 (source
9468 (origin
9469 (method url-fetch)
9470 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
9471 version ".tar.gz"))
9472 (file-name (string-append name "-" version ".tar.gz"))
9473 (sha256
9474 (base32
9475 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
9476 (build-system emacs-build-system)
9477 (propagated-inputs
9478 `(("emacs-loop" ,emacs-loop)
9479 ("emacs-dash" ,emacs-dash)
9480 ("emacs-s" ,emacs-s)
9481 ("emacs-f" ,emacs-f)))
9482 (home-page "https://github.com/Wilfred/suggest.el")
9483 (synopsis "Suggest Elisp functions that give the output requested")
9484 (description "Suggest.el will find functions that give the output
9485requested. It's a great way of exploring list, string and arithmetic
9486functions.")
9487 (license license:gpl3+)))
c43c0823
OP
9488
9489(define-public emacs-benchmark-init
9490 (package
9491 (name "emacs-benchmark-init")
9492 (version "1.0")
9493 (source (origin
9494 (method url-fetch)
9495 (uri (string-append
9496 "https://github.com/dholm/benchmark-init-el/archive/"
9497 version ".tar.gz"))
9498 (file-name (string-append name "-" version ".tar.gz"))
9499 (sha256
9500 (base32
9501 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
9502 (build-system emacs-build-system)
9503 (home-page "https://github.com/dholm/benchmark-init-el")
9504 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
9505 (description "@code{benchmark-init} provides a way to keep track of where
9506time is being spent during Emacs startup in order to optimize startup time.")
9507 (license license:gpl3+)))
c25dda7e
OP
9508
9509(define-public emacs-emms-player-simple-mpv
9510 (let ((commit "101d120ccdee1c2c213fd2f0423c858b21649c00")
9511 (revision "1"))
9512 (package
9513 (name "emacs-emms-player-simple-mpv")
9514 (version (string-append "0.4.0" "-" revision "."
9515 (string-take commit 7)))
9516
9517 (source
9518 (origin
9519 (method git-fetch)
9520 (uri (git-reference
9521 (url "https://github.com/momomo5717/emms-player-simple-mpv.git")
9522 (commit commit)))
9523 (file-name (git-file-name name version))
9524 (sha256
9525 (base32
9526 "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll"))))
9527 (build-system emacs-build-system)
9528 (propagated-inputs
9529 `(("emacs-emms" ,emms)))
9530 (home-page "https://github.com/momomo5717/emms-player-simple-mpv")
9531 (synopsis "Extension of @file{emms-player-simple.el} for mpv JSON IPC")
9532 (description "@code{emms-player-simple-mpv} provides macros and
9533functions for defining emms simple players of mpv.")
9534 (license license:gpl3+))))
26165a79
OP
9535
9536(define-public emacs-magit-org-todos-el
9537 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
9538 (package
9539 (name "emacs-magit-org-todos-el")
9540 (version (git-version "0.1.1" "1" commit))
9541 (source
9542 (origin
9543 (method git-fetch)
9544 (uri (git-reference
9545 (url "https://github.com/danielma/magit-org-todos.el.git")
9546 (commit commit)))
9547 (file-name (git-file-name name version))
9548 (sha256
9549 (base32
9550 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
9551 (build-system emacs-build-system)
9552 (home-page "https://github.com/danielma/magit-org-todos.el")
9553 (synopsis "Get todo.org into Emacs Magit status")
9554 (description "This package allows you to get @file{todo.org} into your
9555magit status.
9556
9557If you have a @file{todo.org} file with @code{TODO} items in the root of your
9558repository, @code{magit-org-todos} will create a section in your Magit status
9559buffer with each of your todos.")
9560 (license license:gpl3+))))
f4dc59a2
OP
9561
9562(define-public emacs-f3
9563 (package
9564 (name "emacs-f3")
9565 (version "0.1")
9566 (source
9567 (origin
9568 (method url-fetch)
9569 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
9570 version ".tar.gz"))
9571 (file-name (string-append name "-" version ".tar.gz"))
9572 (sha256
9573 (base32
9574 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
9575 (build-system emacs-build-system)
9576 (propagated-inputs
9577 `(("emacs-helm" ,emacs-helm)))
9578 (home-page "https://github.com/cosmicexplorer/f3")
9579 (synopsis "Fantastic File Finder for Emacs")
9580 (description
9581 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
9582 (license license:gpl3+)))
89378bb8
OP
9583
9584(define-public emacs-dumb-jump
9585 (package
9586 (name "emacs-dumb-jump")
9587 (version "0.5.2")
9588 (source
9589 (origin
9590 (method url-fetch)
9591 (uri (string-append "https://github.com/jacktasia/dumb-jump/archive/"
9592 "v" version ".tar.gz"))
9593 (file-name (string-append name "-" version ".tar.gz"))
9594 (sha256
9595 (base32
9596 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
9597 (build-system emacs-build-system)
9598 (propagated-inputs
9599 `(("emacs-f" ,emacs-f)
9600 ("emacs-s" ,emacs-s)
9601 ("emacs-dash" ,emacs-dash)
9602 ("emacs-popup" ,emacs-popup)))
9603 (home-page "https://github.com/jacktasia/dumb-jump")
9604 (synopsis "Jump to definition for multiple languages without configuration")
9605 (description "Dumb Jump is an Emacs \"jump to definition\" package with
9606support for multiple programming languages that favors \"just working\" over
9607speed or accuracy. This means minimal -- and ideally zero -- configuration
9608with absolutely no stored indexes (TAGS) or persistent background processes.
9609Dumb Jump performs best with The Silver Searcher `ag` or ripgrep `rg`
9610installed. Dumb Jump requires at least GNU Emacs 24.3. ")
9611 (license license:gpl3+)))
6d6d9acc
OP
9612
9613(define-public emacs-lice-el
9614 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
9615 (package
9616 (name "emacs-lice-el")
9617 (version (git-version "0.2" "1" commit))
9618 (source (origin
9619 (method git-fetch)
9620 (uri (git-reference
9621 (url "https://github.com/buzztaiki/lice-el.git")
9622 (commit commit)))
9623 (file-name (git-file-name name version))
9624 (sha256
9625 (base32
9626 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
9627 (build-system emacs-build-system)
9628 (home-page "https://github.com/buzztaiki/lice-el")
9629 (synopsis "License and header template for Emacs")
9630 (description "@code{lice.el} provides following features:
9631
9632@itemize
9633@item License template management.
9634@item File header insertion.
9635@end itemize\n")
9636 (license license:gpl3+))))
fc86ea63
OP
9637
9638(define-public emacs-academic-phrases
9639 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
9640 (package
9641 (name "emacs-academic-phrases")
9642 (version (git-version "0.1" "1" commit))
9643 (source
9644 (origin
9645 (method git-fetch)
9646 (uri (git-reference
9647 (url "https://github.com/nashamri/academic-phrases.git")
9648 (commit commit)))
9649 (file-name (string-append name "-" version "-checkout"))
9650 (sha256
9651 (base32
9652 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
9653 (build-system emacs-build-system)
9654 (propagated-inputs
9655 `(("emacs-dash" ,emacs-dash)
9656 ("emacs-s" ,emacs-s)
9657 ("emacs-ht" ,emacs-ht)))
9658 (home-page "https://github.com/nashamri/academic-phrases")
9659 (synopsis "Bypass that mental block when writing your papers")
9660 (description
9661 "When writing your academic paper, you might get stuck trying to find
9662the right phrase that captures your intention. This package tries to
9663alleviate that problem by presenting you with a list of phrases organized by
9664the topic or by the paper section that you are writing. This package has
9665around 600 phrases so far.
9666
9667Using this package is easy, just call @code{academic-phrases} to get a list of
9668phrases organized by topic, or call @code{academic-phrases-by-section} to
9669browse the phrases by the paper section and fill-in the blanks if required.")
9670 (license license:gpl3+))))
75a87807
OP
9671
9672(define-public emacs-auto-yasnippet
9673 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
9674 (package
9675 (name "emacs-auto-yasnippet")
9676 (version (git-version "0.3.0" "1" commit))
9677 (source (origin
9678 (method git-fetch)
9679 (uri (git-reference
9680 (url "https://github.com/abo-abo/auto-yasnippet.git")
9681 (commit commit)))
9682 (file-name (string-append name "-" version "-checkout"))
9683 (sha256
9684 (base32
9685 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
9686 (build-system emacs-build-system)
9687 (arguments
9688 '(#:phases
9689 (modify-phases %standard-phases
9690 (add-before 'install 'check
9691 (lambda _
9692 (invoke "emacs" "--batch"
9693 "-l" "auto-yasnippet.el"
9694 "-l" "auto-yasnippet-test.el"
9695 "-f" "ert-run-tests-batch-and-exit"))))))
9696 (propagated-inputs
9697 `(("emacs-yasnippet" ,emacs-yasnippet)))
9698 (home-page "https://github.com/abo-abo/auto-yasnippet/")
9699 (synopsis "Quickly create disposable yasnippets")
9700 (description "This package provides a hybrid of keyboard macros and
9701yasnippet. You create the snippet on the go, usually to be used just in the
9702one place. It's fast, because you're not leaving the current buffer, and all
9703you do is enter the code you'd enter anyway, just placing ~ where you'd like
9704yasnippet fields and mirrors to be.")
9705 (license license:gpl3+))))
a79cf99c
OP
9706
9707(define-public emacs-highlight-numbers
9708 (package
9709 (name "emacs-highlight-numbers")
9710 (version "0.2.3")
9711 (source
9712 (origin
9713 (method url-fetch)
9714 (uri (string-append
9715 "https://github.com/Fanael/highlight-numbers/archive/"
9716 version ".tar.gz"))
9717 (file-name (string-append name "-" version ".tar.gz"))
9718 (sha256
9719 (base32
9720 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
9721 (build-system emacs-build-system)
9722 (propagated-inputs
9723 `(("emacs-parent-mode" ,emacs-parent-mode)))
9724 (home-page "https://github.com/Fanael/highlight-numbers")
9725 (synopsis "Highlight numbers in source code")
9726 (description "@code{highlight-numbers-mode} provides a minor mode for
9727syntax highlighting of numeric literals in source code.
9728
9729It s customizable: it's easy to add or redefine what exactly consitutes a
9730\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
9731 (license license:gpl3+)))
6e28f15c
OP
9732
9733(define-public emacs-darkroom
9734 (package
9735 (name "emacs-darkroom")
9736 (version "0.1")
9737 (source (origin
9738 (method url-fetch)
9739 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
9740 version ".el"))
9741 (sha256
9742 (base32
9743 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
9744 (build-system emacs-build-system)
9745 (home-page "https://elpa.gnu.org/packages/darkroom.html")
9746 (synopsis "Remove visual distractions and focus on writing")
9747 (description "@code{darkroom-mode} makes visual distractions disappear.
9748The mode-line is temporarily elided, text is enlarged and margins are adjusted
9749so that it's centered on the window.
9750
9751@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
9752@code{darkroom-mode}, unless the current buffer lives in the sole window of
9753the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
9754split to display more windows and more buffers, the buffer exits
9755@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
9756@code{darkroom-mode}.")
9757 (license license:gpl3+)))
bf8300de
OP
9758
9759(define-public emacs-rsw-elisp
9760 (package
9761 (name "emacs-rsw-elisp")
9762 (version "1.0.5")
9763 (source (origin
9764 (method url-fetch)
9765 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
9766 "/archive/" version ".tar.gz"))
9767 (file-name (string-append name "-" version ".tar.gz"))
9768 (sha256
9769 (base32
9770 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
9771 (build-system emacs-build-system)
9772 (home-page "https://github.com/rswgnu/rsw-elisp")
9773 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
9774 (description "This package improves and replaces the GNU Emacs commands
9775that interactively evaluate Emacs Lisp expressions. The new commands replace
9776standard key bindings and are all prefixed with rsw-elisp-. They work the
9777same way as the old commands when called non-interactively; only the
9778interactive behavior should be different.")
9779 (license license:gpl3+)))
192a9a20
OP
9780
9781(define-public emacs-default-text-scale
9782 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
9783 (revision "1"))
9784 (package
9785 (name "emacs-default-text-scale")
9786 (version (string-append "0.1" "-" revision "."
9787 (string-take commit 7)))
9788 (source (origin
9789 (method git-fetch)
9790 (uri (git-reference
9791 (url "https://github.com/purcell/default-text-scale")
9792 (commit commit)))
9793 (file-name (string-append name "-" version "-checkout"))
9794 (sha256
9795 (base32
9796 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
9797 (build-system emacs-build-system)
9798 (home-page "https://github.com/purcell/default-text-scale")
9799 (synopsis "Adjust the font size in all Emacs frames")
9800 (description "This package provides commands for increasing or
9801decreasing the default font size in all GUI Emacs frames.")
9802 (license license:gpl3+))))
2f9e1378
OP
9803
9804(define-public emacs-visual-regexp
9805 (package
9806 (name "emacs-visual-regexp")
9807 (version "1.1.1")
9808 (source
9809 (origin
9810 (method url-fetch)
9811 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
9812 "v" version ".tar.gz"))
9813 (file-name (string-append name "-" version ".tar.gz"))
9814 (sha256
9815 (base32
9816 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
9817 (build-system emacs-build-system)
9818 (home-page "https://github.com/benma/visual-regexp.el/")
9819 (synopsis "Regexp command with interactive visual feedback")
9820 (description "This package provides an Emacs regexp command with
9821interactive visual feedback.")
9822 (license license:gpl3+)))
6f83725f
OP
9823
9824(define-public emacs-faceup
9825 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
9826 (revision "1"))
9827 (package
9828 (name "emacs-faceup")
9829 (version (string-append "0.0.1" "-" revision "."
9830 (string-take commit 7)))
9831 (source
9832 (origin
9833 (method git-fetch)
9834 (uri (git-reference
9835 (url "https://github.com/Lindydancer/faceup.git")
9836 (commit commit)))
9837 (file-name (string-append name "-" version "-checkout"))
9838 (sha256
9839 (base32
9840 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
9841 (build-system emacs-build-system)
9842 (home-page "https://github.com/Lindydancer/faceup")
9843 (synopsis "Markup language for faces and font-lock regression testing")
9844 (description "Emacs is capable of highlighting buffers based on
9845language-specific @code{font-lock} rules. This package makes it possible to
9846perform regression test for packages that provide font-lock rules.")
9847 (license license:gpl3+))))
f52b635b
OP
9848
9849(define-public emacs-racket-mode
9850 (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451")
9851 (revision "1"))
9852 (package
9853 (name "emacs-racket-mode")
9854 (version (string-append "0.0.1" "-" revision "."
9855 (string-take commit 7)))
9856 (source
9857 (origin
9858 (method git-fetch)
9859 (uri (git-reference
9860 (url "https://github.com/greghendershott/racket-mode")
9861 (commit commit)))
9862 (file-name (string-append name "-" version "-checkout"))
9863 (sha256
9864 (base32
9865 "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"))))
9866 (build-system emacs-build-system)
9867 (propagated-inputs
9868 `(("emacs-faceup" ,emacs-faceup)
9869 ("emacs-s" ,emacs-s)))
9870 (home-page "https://github.com/greghendershott/racket-mode")
9871 (synopsis "Major mode for Racket language")
9872 (description "@code{racket-mode} provides:
9873
9874@itemize
9875@item Focus on Racket (not various Schemes).
9876@item Follow DrRacket concepts where applicable.
9877@item Thorough font-lock and indent.
9878@end itemize\n")
9879 (license license:gpl3+))))
8f052df2
OP
9880
9881(define-public emacs-grep-context
9882 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
9883 (package
9884 (name "emacs-grep-context")
9885 (version (git-version "0.1" "1" commit))
9886 (source
9887 (origin
9888 (method git-fetch)
9889 (uri (git-reference
9890 (url "https://github.com/mkcms/grep-context.git")
9891 (commit commit)))
9892 (file-name (string-append name "-" version "-checkout"))
9893 (sha256
9894 (base32
9895 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
9896 (build-system emacs-build-system)
9897 (propagated-inputs
9898 `(("emacs-dash" ,emacs-dash)))
9899 (home-page "https://github.com/nashamri/academic-phrases")
9900 (synopsis "Increase context in compilation and grep buffers")
9901 (description
9902 "This package provides an Emacs package for more context in
9903compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
9904@code{ivy}.")
9905 (license license:gpl3+))))
d3f7e533
OP
9906
9907(define-public emacs-helm-firefox
9908 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
9909 (revision "1"))
9910 (package
9911 (name "emacs-helm-firefox")
9912 (version (string-append "0.0.1" "-" revision "."
9913 (string-take commit 7)))
9914 (source
9915 (origin
9916 (method git-fetch)
9917 (uri (git-reference
9918 (url "https://github.com/emacs-helm/helm-firefox.git")
9919 (commit commit)))
9920 (file-name (string-append name "-" version "-checkout"))
9921 (sha256
9922 (base32
9923 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
9924 (build-system emacs-build-system)
9925 (home-page "https://github.com/emacs-helm/helm-firefox")
9926 (synopsis "Display firefox bookmarks with Emacs Helm interface")
9927 (description "Display firefox bookmarks with Emacs Helm interface")
9928 (license license:gpl3+))))
b268bf18
OP
9929
9930(define-public emacs-interactive-align
9931 (package
9932 (name "emacs-interactive-align")
9933 (version "0.1.0")
9934 (source
9935 (origin
9936 (method url-fetch)
9937 (uri (string-append "https://github.com/mkcms/interactive-align/"
9938 "archive/" "v" version ".tar.gz"))
9939 (file-name (string-append name "-" version ".tar.gz"))
9940 (sha256
9941 (base32
9942 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
9943 (build-system emacs-build-system)
9944 (home-page "https://github.com/mkcms/interactive-align/")
9945 (synopsis "Interactive align-regexp command in Emacs")
9946 (description "Interactive align-regexp command in Emacs")
9947 (license license:gpl3+)))
fcd8d4f7
OP
9948
9949(define-public emacs-shift-number
9950 (package
9951 (name "emacs-shift-number")
9952 (version "0.1")
9953 (source
9954 (origin
9955 (method url-fetch)
9956 (uri (string-append "https://github.com/alezost/shift-number.el"
9957 "/archive/" "v" version ".tar.gz"))
9958 (file-name (string-append name "-" version ".tar.gz"))
9959 (sha256
9960 (base32
9961 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
9962 (build-system emacs-build-system)
9963 (home-page "https://github.com/alezost/shift-number.el")
9964 (synopsis "Increase or decrease the number at point")
9965 (description "@code{emacs-shift-number} provides commands
9966@code{shift-number-up} to increase and @code{shift-number-down} to
9967decrease the number at point.")
9968 (license license:gpl3+)))
b91e1724
OP
9969
9970(define-public emacs-highlight-defined
9971 (package
9972 (name "emacs-highlight-defined")
9973 (version "0.1.5")
9974 (source
9975 (origin
9976 (method url-fetch)
9977 (uri (string-append
9978 "https://github.com/Fanael/highlight-defined/archive/"
9979 version ".tar.gz"))
9980 (file-name (string-append name "-" version ".tar.gz"))
9981 (sha256
9982 (base32
9983 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
9984 (build-system emacs-build-system)
9985 (home-page "https://github.com/Fanael/highlight-defined")
9986 (synopsis "Syntax highlighting of known Elisp symbols")
9987 (description "Minor mode providing syntax highlighting of known Emacs Lisp
9988symbols. Currently the code distinguishes Lisp functions, built-in functions,
9989macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
9990 (license license:gpl3+)))
8a2ab51a
OP
9991
9992(define-public emacs-parinfer-mode
9993 (package
9994 (name "emacs-parinfer-mode")
9995 (version "0.4.10")
9996 (source
9997 (origin
9998 (method url-fetch)
9999 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10000 "v" version ".tar.gz"))
10001 (file-name (string-append name "-" version ".tar.gz"))
10002 (sha256
10003 (base32
10004 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10005 (propagated-inputs
10006 `(("emacs-dash" ,emacs-dash)
10007 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10008 ("emacs-company" ,emacs-company)))
10009 (build-system emacs-build-system)
10010 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10011 (synopsis "Lisp structure editing mode")
10012 (description "@code{parinfer-mode} is a proof-of-concept editor
10013mode for Lisp programming languages. It will infer some changes to
10014keep Parens and Indentation inline with one another.")
10015 (license license:gpl3+)))
abe8ef7f
OP
10016
10017(define-public emacs-helm-eww
10018 (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac"))
10019 (package
10020 (name "emacs-helm-eww")
10021 (version (git-version "0.1" "1" commit))
10022 (source (origin
10023 (method git-fetch)
10024 (uri (git-reference
10025 (url "https://github.com/emacs-helm/helm-eww.git")
10026 (commit commit)))
10027 (file-name (string-append name "-" version "-checkout"))
10028 (sha256
10029 (base32
10030 "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
10031 (build-system emacs-build-system)
10032 (home-page "https://github.com/emacs-helm/helm-eww/")
10033 (synopsis "Helm interface to EWW")
10034 (description "This package provides a Helm interface for EWW buffers,
10035bookmarks and history.")
10036 (license license:gpl3+))))
b870ee10
OP
10037
10038(define-public emacs-stumpwm-mode
10039 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10040 (revision "1"))
10041 (package
10042 (name "emacs-stumpwm-mode")
10043 (version (string-append "0.0.1-" revision "."
10044 (string-take commit 7)))
10045 (source (origin
10046 (method git-fetch)
10047 (uri (git-reference
10048 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10049 (commit commit)))
10050 (file-name (string-append name "-" version "-checkout"))
10051 (sha256
10052 (base32
10053 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10054 (build-system emacs-build-system)
10055 (arguments
10056 `(#:phases
10057 (modify-phases %standard-phases
10058 (add-after 'unpack 'chdir-elisp
10059 ;; Elisp directory is not in root of the source.
10060 (lambda _
10061 (chdir "util/swm-emacs"))))))
10062 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10063 (synopsis "Emacs minor-mode for Stumpwm")
10064 (description "Emacs minor-mode for Stumpwm")
10065 (license license:gpl3+))))
dbbd6e89
OP
10066
10067(define-public emacs-irfc
10068 (package
10069 (name "emacs-irfc")
10070 (version "20130824.507")
10071 (source
10072 (origin
10073 (method url-fetch)
10074 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10075 (file-name (string-append "irfc-" version ".el"))
10076 (sha256
10077 (base32
10078 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10079 (build-system emacs-build-system)
10080 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10081 (synopsis "Interface for IETF RFC document")
10082 (description
10083 "This package provides an Emacs interface for IETF RFC document.")
10084 (license license:gpl3+)))
0e087b70
OP
10085
10086(define-public emacs-ido-vertical-mode
10087 (package
10088 (name "emacs-ido-vertical-mode")
10089 (version "0.1.6")
10090 (source
10091 (origin
10092 (method url-fetch)
10093 (uri (string-append
10094 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10095 "v" version ".tar.gz"))
10096 (file-name (string-append name "-" version ".tar.gz"))
10097 (sha256
10098 (base32
10099 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10100 (build-system emacs-build-system)
10101 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10102 (synopsis "Makes ido-mode display vertically")
10103 (description "Makes ido-mode display prospects vertically.")
10104 (license license:gpl3+)))
ca0e2ab0
OP
10105
10106(define-public emacs-wordgen
10107 (package
10108 (name "emacs-wordgen")
10109 (version "0.1.4")
10110 (source
10111 (origin
10112 (method url-fetch)
10113 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10114 version ".tar.gz"))
10115 (file-name (string-append name "-" version ".tar.gz"))
10116 (sha256
10117 (base32
10118 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10119 (build-system emacs-build-system)
10120 (home-page "https://github.com/Fanael/wordgen.el")
10121 (synopsis "Random word generator")
10122 (description "This package provides functions to generate random words
10123using user-provided rules.")
10124 (license license:gpl3+)))
47667501
OP
10125
10126(define-public emacs-on-screen
10127 (package
10128 (name "emacs-on-screen")
10129 (version "1.3.2")
10130 (source
10131 (origin
10132 (method url-fetch)
10133 (uri (string-append
10134 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10135 (file-name (string-append name "-" version ".el"))
10136 (sha256
10137 (base32
10138 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10139 (build-system emacs-build-system)
10140 (home-page
10141 "https://github.com/michael-heerdegen/on-screen.el")
10142 (synopsis "Guide your eyes while scrolling")
10143 (description
10144 "Scrolling can be distracting because your eyes may lose
10145orientation. This library implements a minor mode that highlights
10146the previously visible buffer part after each scroll.")
10147 (license license:gpl3+)))
cfeefca9
OP
10148
10149(define-public emacs-highlight-escape-sequences
10150 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10151 (revision "1"))
10152 (package
10153 (name "emacs-highlight-escape-sequences")
10154 (version (string-append "0.0.1" "-" revision "."
10155 (string-take commit 7)))
10156 (source
10157 (origin
10158 (method git-fetch)
10159 (uri (git-reference
10160 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10161 (commit commit)))
10162 (file-name (string-append name "-" version "-checkout"))
10163 (sha256
10164 (base32
10165 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10166 (build-system emacs-build-system)
10167 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10168 (synopsis "Highlight escape sequences in Emacs")
10169 (description "@code{highlight-escape-sequences} provides an
10170Emacs minor mode to escape sequences in code.")
10171 (license license:gpl3+))))
99092bd9
OP
10172
10173(define-public emacs-dashboard
10174 (package
10175 (name "emacs-dashboard")
10176 (version "1.2.4")
10177 (source
10178 (origin
10179 (method url-fetch)
10180 (uri (string-append
10181 "https://github.com/rakanalh/emacs-dashboard/archive/"
10182 version ".tar.gz"))
10183 (file-name (string-append name "-" version ".tar.gz"))
10184 (sha256
10185 (base32
10186 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10187 (build-system emacs-build-system)
10188 (propagated-inputs
10189 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10190 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10191 (home-page "https://github.com/rakanalh/emacs-dashboard")
10192 (synopsis "Startup screen extracted from Spacemacs")
10193 (description "This package provides an extensible Emacs dashboard, with
10194sections for bookmarks, projectil projects, org-agenda and more. ")
10195 (license license:gpl3+)))
37fa904f
OP
10196
10197(define-public emacs-slime-company
10198 (package
10199 (name "emacs-slime-company")
10200 (version "1.1")
10201 (source
10202 (origin
10203 (method url-fetch)
10204 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10205 "v" version ".tar.gz"))
10206 (sha256
10207 (base32
10208 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10209 (file-name (string-append name "-" version ".tar.gz"))))
10210 (build-system emacs-build-system)
10211 (propagated-inputs
10212 `(("emacs-slime" ,emacs-slime)
10213 ("emacs-company" ,emacs-company)))
10214 (home-page "https://company-mode.github.io")
10215 (synopsis "SLIME completion backend for @code{company-mode}")
10216 (description
10217 "This is a backend implementation for the completion package
10218@code{company-mode} which supports the normal and the fuzzy completion
10219modes of SLIME.")
10220 (license license:gpl3+)))
1a73164d
OP
10221
10222(define-public emacs-sml-mode
10223 (package
10224 (name "emacs-sml-mode")
10225 (version "6.8")
10226 (source
10227 (origin
10228 (method url-fetch)
10229 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10230 version ".el"))
10231 (sha256
10232 (base32
10233 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10234 (build-system emacs-build-system)
10235 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10236 (synopsis "Major mode for editing (Standard) ML")
10237 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10238It provides syntax highlighting and automatic indentation and
10239comes with sml-proc which allows interaction with an inferior SML
10240interactive loop.")
10241 (license license:gpl3+)))
c498ff56
OP
10242
10243(define-public emacs-eros
10244 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10245 (revision "1"))
10246 (package
10247 (name "emacs-eros")
10248 (version (string-append "0.0.1" "-" revision "."
10249 (string-take commit 7)))
10250 (source
10251 (origin
10252 (method git-fetch)
10253 (uri (git-reference
10254 (url "https://github.com/xiongtx/eros.git")
10255 (commit commit)))
10256 (file-name (string-append name "-" version "-checkout"))
10257 (sha256
10258 (base32
10259 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10260 (build-system emacs-build-system)
10261 (home-page "https://github.com/xiongtx/eros")
10262 (synopsis "Evaluation result overlays")
10263 (description "@code{eros} provides evaluation result overlays.")
10264 (license license:gpl3+))))
6673bbef
OP
10265
10266(define-public emacs-stickyfunc-enhance
10267 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10268 (revision "1"))
10269 (package
10270 (name "emacs-stickyfunc-enhance")
10271 (version "0.1")
10272 (source
10273 (origin
10274 (method git-fetch)
10275 (uri (git-reference
10276 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10277 (commit commit)))
10278 (file-name (string-append name "-" version "-checkout"))
10279 (sha256
10280 (base32
10281 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10282 (build-system emacs-build-system)
10283 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10284 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10285 (description
10286 "@code{semantic-stickyfunc-mode} shows the function point is currently
10287in at the first line of the current buffer. This is useful when you have a
10288very long function that spreads more than a screen, and you don't have to
10289scroll up to read the function name and then scroll down to original position.")
10290 (license license:gpl3+))))
c9efc229
OP
10291
10292(define-public emacs-git-auto-commit-mode
10293 (package
10294 (name "emacs-git-auto-commit-mode")
10295 (version "4.4.0")
10296 (source
10297 (origin
10298 (method url-fetch)
10299 (uri (string-append
10300 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10301 version ".tar.gz"))
10302 (file-name (string-append name "-" version ".tar.gz"))
10303 (sha256
10304 (base32
10305 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10306 (build-system emacs-build-system)
10307 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10308 (synopsis "Emacs Minor mode to automatically commit and push")
10309 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10310tries to commit changes to a file after every save.
10311
10312When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10313the current upstream.")
10314 (license license:gpl3+)))
deef6d7c
OP
10315
10316(define-public emacs-company-restclient
10317 (package
10318 (name "emacs-company-restclient")
10319 (version "0.1.0")
10320 (source
10321 (origin
10322 (method url-fetch)
10323 (uri (string-append
10324 "https://github.com/iquiw/company-restclient/archive/"
10325 "v" version ".tar.gz"))
10326 (file-name (string-append name "-" version ".tar.gz"))
10327 (sha256
10328 (base32
10329 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10330 (build-system emacs-build-system)
10331 (propagated-inputs
10332 `(("emacs-company" ,emacs-company)
10333 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10334 ("emacs-restclient" ,emacs-restclient)))
10335 (home-page "https://github.com/iquiw/company-restclient")
10336 (synopsis "Company-mode completion back-end for restclient-mode")
10337 (description "@code{company-mode} back-end for
10338@code{restclient-mode}.
10339
10340It provides auto-completion for HTTP methods and headers in
10341@code{restclient-mode}. Completion source is given by
10342@code{know-your-http-well}.")
10343 (license license:gpl3+)))