gnu: Add emacs-json-snatcher.
[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>
38cb4766 3;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
846b2534 4;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
cfb9026a 5;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
78395334 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
ce9701fb 7;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
e2345554 8;;; Copyright © 2016, 2017 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>
0985f526 11;;; Copyright © 2016 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>
ab966b8f 15;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
46bd4515 16;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
cf95bd3a 17;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
e7761186 18;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
55fa5349 19;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
cf006d2e 20;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
1e523180 21;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
60b57c3d 22;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
4d3d3bd2 23;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
6bd4a889 24;;; Copyright © 2017 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>
730c0790 29;;; Copyright © 2017 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>
468bdabb
LC
32;;;
33;;; This file is part of GNU Guix.
34;;;
35;;; GNU Guix is free software; you can redistribute it and/or modify it
36;;; under the terms of the GNU General Public License as published by
37;;; the Free Software Foundation; either version 3 of the License, or (at
38;;; your option) any later version.
39;;;
40;;; GNU Guix is distributed in the hope that it will be useful, but
41;;; WITHOUT ANY WARRANTY; without even the implied warranty of
42;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
43;;; GNU General Public License for more details.
44;;;
45;;; You should have received a copy of the GNU General Public License
46;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
47
1ffa7090 48(define-module (gnu packages emacs)
f61e0e79 49 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
50 #:use-module (guix packages)
51 #:use-module (guix download)
f906d30c 52 #:use-module (guix git-download)
e5045f30
FB
53 #:use-module (guix gexp)
54 #:use-module (guix monads)
55 #:use-module (guix store)
468bdabb 56 #:use-module (guix build-system gnu)
78395334 57 #:use-module (guix build-system emacs)
71f57158 58 #:use-module (guix build-system glib-or-gtk)
fe4163f3 59 #:use-module (guix build-system trivial)
59a43334 60 #:use-module (gnu packages)
acf7d4a7 61 #:use-module (gnu packages audio)
4aafce22 62 #:use-module (gnu packages bash)
cf006d2e 63 #:use-module (gnu packages code)
f906d30c 64 #:use-module (gnu packages guile)
7abe1965 65 #:use-module (gnu packages gtk)
8ba4dc63 66 #:use-module (gnu packages gnome)
1ffa7090 67 #:use-module (gnu packages ncurses)
99517d92 68 #:use-module (gnu packages python)
41184943 69 #:use-module (gnu packages tex)
1ffa7090 70 #:use-module (gnu packages texinfo)
acf7d4a7 71 #:use-module (gnu packages tcl)
a7fd7b68 72 #:use-module (gnu packages tls)
4f028c8f 73 #:use-module (gnu packages pkg-config)
50efa797
LC
74 #:use-module (gnu packages xorg)
75 #:use-module (gnu packages lesstif)
e55354b8 76 #:use-module (gnu packages image)
504a83af 77 #:use-module (gnu packages linux)
9a4c9715 78 #:use-module (gnu packages version-control)
18d26210
MW
79 #:use-module (gnu packages imagemagick)
80 #:use-module (gnu packages w3m)
89925972 81 #:use-module (gnu packages wget)
18d26210 82 #:use-module (gnu packages autotools)
be379ee7 83 #:use-module (gnu packages base)
f61e0e79 84 #:use-module (gnu packages compression)
50efa797 85 #:use-module (gnu packages xml)
4a3e602c 86 #:use-module (gnu packages glib)
388fd01b 87 #:use-module (gnu packages acl)
13fe4891 88 #:use-module (gnu packages package-management)
77c9286d 89 #:use-module (gnu packages perl)
ec9825d6 90 #:use-module (gnu packages pdf)
58a7dc13 91 #:use-module (gnu packages scheme)
41184943 92 #:use-module (gnu packages statistics)
77c9286d
LC
93 #:use-module (gnu packages xiph)
94 #:use-module (gnu packages mp3)
154c71e0 95 #:use-module (gnu packages gettext)
a80b60f4
AI
96 #:use-module (gnu packages fribidi)
97 #:use-module (gnu packages gd)
98 #:use-module (gnu packages fontutils)
4a3e602c 99 #:use-module (guix utils)
87449013
AI
100 #:use-module (srfi srfi-1)
101 #:use-module (ice-9 match))
468bdabb
LC
102
103(define-public emacs
104 (package
105 (name "emacs")
0cdb6ab4 106 (version "25.3")
468bdabb
LC
107 (source (origin
108 (method url-fetch)
109 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 110 version ".tar.xz"))
468bdabb
LC
111 (sha256
112 (base32
0cdb6ab4 113 "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"))
fc1adab1 114 (patches (search-patches "emacs-exec-path.patch"
4509ec72 115 "emacs-fix-scheme-indent-function.patch"
0cdb6ab4 116 "emacs-source-date-epoch.patch"))
486f36eb
AK
117 (modules '((guix build utils)))
118 (snippet
119 ;; Delete the bundled byte-compiled elisp files and
120 ;; generated autoloads.
121 '(with-directory-excursion "lisp"
122 (for-each delete-file
123 (append (find-files "." "\\.elc$")
124 (find-files "." "loaddefs\\.el$")
125 ;; This is the only "autoloads" file that
126 ;; does not have "*loaddefs.el" name.
dc701091
LC
127 '("eshell/esh-groups.el")))
128
129 ;; Make sure Tramp looks for binaries in the right places on
130 ;; remote GuixSD machines, where 'getconf PATH' returns
131 ;; something bogus.
132 (substitute* "net/tramp-sh.el"
133 ;; Patch the line after "(defcustom tramp-remote-path".
134 (("\\(tramp-default-remote-path")
135 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
136 "~/.guix-profile/bin" "~/.guix-profile/sbin"
137 "/run/current-system/profile/bin"
d1c11418
OP
138 "/run/current-system/profile/sbin")))
139
140 ;; Make sure Man looks for C header files in the right
141 ;; places.
142 (substitute* "man.el"
143 (("\"/usr/local/include\"" line)
144 (string-join
145 (list line
146 "\"~/.guix-profile/include\""
147 "\"/var/guix/profiles/system/profile/include\"")
148 " ")))))))
71f57158 149 (build-system glib-or-gtk-build-system)
468bdabb 150 (arguments
13fe4891
FB
151 `(#:phases
152 (modify-phases %standard-phases
153 (add-before 'configure 'fix-/bin/pwd
154 (lambda _
155 ;; Use `pwd', not `/bin/pwd'.
156 (substitute* (find-files "." "^Makefile\\.in$")
157 (("/bin/pwd")
158 "pwd"))))
13fe4891 159 (add-after 'install 'install-site-start
59d04f63
AK
160 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
161 ;; provided by Guix and installed in
13fe4891
FB
162 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
163 ;; automatically found.
164 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
165 (let* ((out (assoc-ref outputs "out"))
166 (lisp-dir (string-append out "/share/emacs/site-lisp")))
167 (copy-file (assoc-ref inputs "guix-emacs.el")
168 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
169 (with-output-to-file (string-append lisp-dir "/site-start.el")
170 (lambda ()
9bd94544
AK
171 (display
172 (string-append "(when (require 'guix-emacs nil t)\n"
173 " (guix-emacs-autoload-packages))\n"))))
13fe4891 174 #t))))))
468bdabb 175 (inputs
c4c4cc05 176 `(("gnutls" ,gnutls)
468bdabb
LC
177 ("ncurses" ,ncurses)
178
179 ;; TODO: Add the optional dependencies.
fa275717 180 ("libx11" ,libx11)
0a9e9a63 181 ("gtk+" ,gtk+)
fa275717 182 ("libxft" ,libxft)
50efa797 183 ("libtiff" ,libtiff)
504a83af 184 ("giflib" ,giflib)
50efa797 185 ("libjpeg" ,libjpeg-8)
eb737a27 186 ("imagemagick" ,imagemagick)
388fd01b 187 ("acl" ,acl)
50efa797
LC
188
189 ;; When looking for libpng `configure' links with `-lpng -lz', so we
190 ;; must also provide zlib as an input.
191 ("libpng" ,libpng)
f61e0e79 192 ("zlib" ,zlib)
50efa797 193
8ba4dc63 194 ("librsvg" ,librsvg)
fa275717 195 ("libxpm" ,libxpm)
50efa797 196 ("libxml2" ,libxml2)
504a83af
MW
197 ("libice" ,libice)
198 ("libsm" ,libsm)
199 ("alsa-lib" ,alsa-lib)
13fe4891 200 ("dbus" ,dbus)
01c5c21a
AI
201
202 ;; multilingualization support
203 ("libotf" ,libotf)
204 ("m17n-lib" ,m17n-lib)))
c4c4cc05 205 (native-inputs
59d04f63
AK
206 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
207 ("pkg-config" ,pkg-config)
c4c4cc05 208 ("texinfo" ,texinfo)))
64c98347
LC
209
210 (native-search-paths
211 (list (search-path-specification
212 (variable "INFOPATH")
213 (files '("share/info")))))
214
6fd52309 215 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 216 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 217 (description
79c311b8
LC
218 "GNU Emacs is an extensible and highly customizable text editor. It is
219based on an Emacs Lisp interpreter with extensions for text editing. Emacs
220has been extended in essentially all areas of computing, giving rise to a
221vast array of packages supporting, e.g., email, IRC and XMPP messaging,
222spreadsheets, remote server editing, and much more. Emacs includes extensive
223documentation on all aspects of the system, from basic editing to writing
224large Lisp programs. It has full Unicode support for nearly all human
225languages.")
f61e0e79 226 (license license:gpl3+)))
4f028c8f 227
b2eaf7ba 228(define-public emacs-minimal
4fd540b7
LC
229 ;; This is the version that you should use as an input to packages that just
230 ;; need to byte-compile .el files.
b2eaf7ba
AK
231 (package (inherit emacs)
232 (name "emacs-minimal")
233 (synopsis "The extensible text editor (used only for byte-compilation)")
234 (build-system gnu-build-system)
235 (arguments
236 (substitute-keyword-arguments (package-arguments emacs)
237 ((#:phases phases)
238 `(modify-phases ,phases
239 (delete 'install-site-start)))))
240 (inputs
241 `(("ncurses" ,ncurses)))
242 (native-inputs
243 `(("pkg-config" ,pkg-config)))))
244
245(define-public emacs-no-x
4fd540b7 246 (package (inherit emacs)
4fd540b7
LC
247 (name "emacs-no-x")
248 (synopsis "The extensible, customizable, self-documenting text
249editor (console only)")
250 (build-system gnu-build-system)
251 (inputs (fold alist-delete
252 (package-inputs emacs)
253 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
8ba4dc63 254 "libpng" "librsvg" "libxpm" "libice" "libsm"
4fd540b7
LC
255
256 ;; D-Bus depends on libx11, so remove it as well.
257 "dbus")))))
258
4a3e602c
TUBK
259(define-public emacs-no-x-toolkit
260 (package (inherit emacs)
261 (name "emacs-no-x-toolkit")
262 (synopsis "The extensible, customizable, self-documenting text
263editor (without an X toolkit)" )
71f57158 264 (build-system gnu-build-system)
388fd01b
MW
265 (inputs (append `(("inotify-tools" ,inotify-tools))
266 (alist-delete "gtk+" (package-inputs emacs))))
267 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
268 (package-arguments emacs)))))
4a3e602c 269
f906d30c
CAW
270(define-public guile-emacs
271 (package (inherit emacs)
272 (name "guile-emacs")
273 (version "20150512.41120e0")
274 (source (origin
275 (method git-fetch)
276 (uri (git-reference
277 (url "git://git.hcoop.net/git/bpt/emacs.git")
278 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
279 (sha256
280 (base32
281 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
282 (native-inputs
283 `(("autoconf" ,autoconf)
284 ("automake" ,automake)
285 ("guile" ,guile-for-guile-emacs)
286 ,@(package-native-inputs emacs)))
287 (arguments
288 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
289 #:parallel-build? #f
290 ;; Tests aren't passing for now.
291 #:tests? #f
292 ,@(package-arguments emacs))
293 ((#:phases phases)
294 `(modify-phases ,phases
295 (add-after 'unpack 'autogen
296 (lambda _
297 (zero? (system* "sh" "autogen.sh"))))))))))
298
4f028c8f
LC
299\f
300;;;
301;;; Emacs hacking.
302;;;
303
304(define-public geiser
305 (package
306 (name "geiser")
113e23e0 307 (version "0.9")
4f028c8f
LC
308 (source (origin
309 (method url-fetch)
cf8f58b2
LC
310 (uri (string-append "mirror://savannah/geiser/" version
311 "/geiser-" version ".tar.gz"))
4f028c8f 312 (sha256
1f8ad12a 313 (base32
a9c61335 314 "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
4f028c8f 315 (build-system gnu-build-system)
d51cafb0 316 (arguments
dc1d3cde
KK
317 '(#:phases
318 (modify-phases %standard-phases
319 (add-after 'install 'post-install
320 (lambda* (#:key outputs #:allow-other-keys)
321 (symlink "geiser-install.el"
322 (string-append (assoc-ref outputs "out")
323 "/share/emacs/site-lisp/"
324 "geiser-autoloads.el"))
325 #t)))))
6aaf3899 326 (inputs `(("guile" ,guile-2.0)))
b8fc3622 327 (native-inputs `(("emacs" ,emacs-minimal)))
4f028c8f
LC
328 (home-page "http://nongnu.org/geiser/")
329 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
330 (description
9586011d
LC
331 "Geiser is a collection of Emacs major and minor modes that conspire with
332one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
333continuously running Scheme interpreter takes the center of the stage in
334Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
335implementation, Emacs and, ultimately, the schemer, giving them access to live
336metadata.")
f61e0e79 337 (license license:bsd-3)))
9a4c9715 338
11e4c1fd 339(define-public geiser-next
a9c61335
AK
340 ;; This has become "geiser".
341 (deprecated-package "geiser-next" geiser))
11e4c1fd 342
fe4163f3
MW
343(define-public paredit
344 (package
967cfd18 345 (name "emacs-paredit")
c181b870 346 (version "24")
fe4163f3 347 (source (origin
c181b870
AK
348 (method url-fetch)
349 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
350 version ".el"))
351 (sha256
352 (base32
353 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 354 (build-system emacs-build-system)
fe4163f3
MW
355 (home-page "http://mumble.net/~campbell/emacs/paredit/")
356 (synopsis "Emacs minor mode for editing parentheses")
357 (description
358 "ParEdit (paredit.el) is a minor mode for performing structured editing
359of S-expression data. The typical example of this would be Lisp or Scheme
360source code.
361
362ParEdit helps **keep parentheses balanced** and adds many keys for moving
363S-expressions and moving around in S-expressions. Its behavior can be jarring
364for those who may want transient periods of unbalanced parentheses, such as
365when typing parentheses directly or commenting out code line by line.")
f61e0e79 366 (license license:gpl3+)))
fe4163f3 367
967cfd18
LC
368(define-public paredit/old-name
369 (deprecated-package "paredit" paredit))
370
2f910ef6
LC
371(define-public git-modes
372 (package
373 (name "git-modes")
0821e067 374 (version "1.2.6")
2f910ef6
LC
375 (source (origin
376 (method url-fetch)
377 (uri (string-append
378 "https://github.com/magit/git-modes/archive/"
379 version ".tar.gz"))
8fd3c1ff 380 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
381 (sha256
382 (base32
0821e067 383 "18z04wn5ird9l0h6n6x97v0kyzdj73832bj9qakm3fjjl7vcn0pw"))))
3d01b293 384 (build-system emacs-build-system)
2f910ef6
LC
385 (home-page "https://github.com/magit/git-modes")
386 (synopsis "Emacs major modes for Git configuration files")
387 (description
388 "This package provides Emacs major modes for editing various Git
389configuration files, such as .gitattributes, .gitignore, and .git/config.")
390 (license license:gpl3+)))
391
2b0e4300
AK
392(define-public emacs-with-editor
393 (package
394 (name "emacs-with-editor")
dca0718c 395 (version "2.7.0")
2b0e4300
AK
396 (source (origin
397 (method url-fetch)
398 (uri (string-append
399 "https://github.com/magit/with-editor/archive/v"
400 version ".tar.gz"))
401 (file-name (string-append name "-" version ".tar.gz"))
402 (sha256
403 (base32
dca0718c 404 "0kah7pv211zx9fsb5g4hd51bqcq2bxd1chdykd488ihvfz1l5y14"))))
2b0e4300
AK
405 (build-system emacs-build-system)
406 (propagated-inputs
407 `(("emacs-dash" ,emacs-dash)))
408 (home-page "https://github.com/magit/with-editor")
409 (synopsis "Emacs library for using Emacsclient as EDITOR")
410 (description
411 "This package provides an Emacs library to use the Emacsclient as
412@code{$EDITOR} of child processes, making sure they know how to call home.
413For remote processes a substitute is provided, which communicates with Emacs
414on stdout instead of using a socket as the Emacsclient does.")
415 (license license:gpl3+)))
416
9a4c9715
MW
417(define-public magit
418 (package
419 (name "magit")
d5e33910 420 (version "2.11.0")
9a4c9715
MW
421 (source (origin
422 (method url-fetch)
fac8b30b
MW
423 (uri (string-append
424 "https://github.com/magit/magit/releases/download/"
425 version "/" name "-" version ".tar.gz"))
9a4c9715 426 (sha256
7e4871ba 427 (base32
d5e33910 428 "11xly5bma9jc1jhs8fqbqrci8kz1y26yfq7dqjkqfy956wvfg6hz"))))
9a4c9715 429 (build-system gnu-build-system)
2c047b4a 430 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 431 ("emacs" ,emacs-minimal)))
46bd4515
AG
432 (inputs
433 `(("git" ,git)
434 ("perl" ,perl)))
3db5ed11
AK
435 (propagated-inputs
436 `(("dash" ,emacs-dash)
437 ("with-editor" ,emacs-with-editor)))
9a4c9715
MW
438 (arguments
439 `(#:modules ((guix build gnu-build-system)
440 (guix build utils)
441 (guix build emacs-utils))
8ff3df5b 442 #:imported-modules (,@%gnu-build-system-modules
9a4c9715 443 (guix build emacs-utils))
7e4871ba
LC
444
445 #:test-target "test"
55f29c39 446 #:tests? #f ; tests are not included in the release
7e4871ba 447
55f29c39
AK
448 #:make-flags
449 (list (string-append "PREFIX=" %output)
450 ;; Don't put .el files in a sub-directory.
451 (string-append "lispdir=" %output "/share/emacs/site-lisp")
452 (string-append "DASH_DIR="
453 (assoc-ref %build-inputs "dash")
454 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11
AK
455 ,(package-version emacs-dash))
456 (string-append "WITH_EDITOR_DIR="
457 (assoc-ref %build-inputs "with-editor")
458 "/share/emacs/site-lisp/guix.d/with-editor-"
459 ,(package-version emacs-with-editor)))
d41a8a07 460
9a4c9715 461 #:phases
c466bfd1 462 (modify-phases %standard-phases
55f29c39 463 (delete 'configure)
c466bfd1
LC
464 (add-before
465 'build 'patch-exec-paths
466 (lambda* (#:key inputs #:allow-other-keys)
46bd4515
AG
467 (let ((git (assoc-ref inputs "git"))
468 (perl (assoc-ref inputs "perl")))
55f29c39
AK
469 (emacs-substitute-variables "lisp/magit-git.el"
470 ("magit-git-executable" (string-append git "/bin/git")))
46bd4515
AG
471 (substitute* "lisp/magit-sequence.el"
472 (("perl") (string-append perl "/bin/perl")))
55f29c39 473 #t))))))
9a4c9715
MW
474 (home-page "http://magit.github.io/")
475 (synopsis "Emacs interface for the Git version control system")
476 (description
477 "With Magit, you can inspect and modify your Git repositories with Emacs.
478You can review and commit the changes you have made to the tracked files, for
479example, and you can browse the history of past changes. There is support for
480cherry picking, reverting, merging, rebasing, and other common Git
481operations.")
f61e0e79 482 (license license:gpl3+)))
18d26210 483
97cc51f8
LC
484(define-public magit-svn
485 (package
486 (name "magit-svn")
b7f16845 487 (version "2.1.1")
97cc51f8 488 (source (origin
be379ee7
AK
489 (method url-fetch)
490 (uri (string-append
491 "https://github.com/magit/magit-svn/archive/"
492 version ".tar.gz"))
493 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
494 (sha256
495 (base32
b7f16845 496 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz"))))
97cc51f8 497 (build-system trivial-build-system)
b8fc3622 498 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
499 ("tar" ,tar)
500 ("gzip" ,gzip)))
501 (propagated-inputs `(("dash" ,emacs-dash)
502 ("magit" ,magit)))
97cc51f8
LC
503 (arguments
504 `(#:modules ((guix build utils)
505 (guix build emacs-utils))
506
507 #:builder
508 (begin
509 (use-modules (guix build utils)
510 (guix build emacs-utils))
511
be379ee7
AK
512 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
513 "/bin/tar"))
514 (PATH (string-append (assoc-ref %build-inputs "gzip")
515 "/bin"))
516 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
517 "/bin/emacs"))
518 (magit (string-append (assoc-ref %build-inputs "magit")
519 "/share/emacs/site-lisp"))
be379ee7
AK
520 (dash (string-append (assoc-ref %build-inputs "dash")
521 "/share/emacs/site-lisp/guix.d/dash-"
522 ,(package-version emacs-dash)))
97cc51f8
LC
523 (source (assoc-ref %build-inputs "source"))
524 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7
AK
525 (setenv "PATH" PATH)
526 (system* tar "xvf" source)
96c46210
LC
527
528 (install-file (string-append ,name "-" ,version "/magit-svn.el")
529 lisp-dir)
97cc51f8
LC
530
531 (with-directory-excursion lisp-dir
532 (parameterize ((%emacs emacs))
533 (emacs-generate-autoloads ,name lisp-dir)
534 (setenv "EMACSLOADPATH"
be379ee7 535 (string-append ":" magit ":" dash))
97cc51f8
LC
536 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
537 (home-page "https://github.com/magit/magit-svn")
538 (synopsis "Git-SVN extension to Magit")
539 (description
540 "This package is an extension to Magit, the Git Emacs mode, providing
541support for Git-SVN.")
542 (license license:gpl3+)))
543
c1562e3d
AK
544(define-public emacs-magit-popup
545 (package
546 (name "emacs-magit-popup")
547 (version (package-version magit))
548 (source (origin
549 (method url-fetch)
550 (uri (string-append
551 "https://raw.githubusercontent.com/magit/magit/"
552 version "/lisp/magit-popup.el"))
553 (file-name (string-append "magit-popup-" version ".el"))
554 (sha256
555 (base32
d5e33910 556 "0w750kwngq63hi9drad3jxldwkg83sldb9w9r2xl2mqm3hm4l8s6"))))
c1562e3d
AK
557 (build-system emacs-build-system)
558 (propagated-inputs
559 `(("emacs-dash" ,emacs-dash)))
560 (home-page "https://github.com/magit/magit")
561 (synopsis "Define prefix-infix-suffix command combos")
562 (description
563 "This library implements a generic interface for toggling switches and
564setting options and then invoking an Emacs command which does something with
565these arguments. The prototypical use is for the command to call an external
566process, passing on the arguments as command line arguments.")
567 (license license:gpl3+)))
568
00f4bd50
FB
569(define-public haskell-mode
570 (package
571 (name "haskell-mode")
08fc0d68 572 (version "16.1")
00f4bd50
FB
573 (source (origin
574 (method url-fetch)
575 (file-name (string-append name "-" version ".tar.gz"))
576 (uri (string-append
577 "https://github.com/haskell/haskell-mode/archive/v"
578 version ".tar.gz"))
579 (sha256
08fc0d68
FB
580 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
581 (inputs
582 `(("emacs-el-search" ,emacs-el-search) ; for tests
583 ("emacs-stream" ,emacs-stream))) ; for tests
584 (propagated-inputs
585 `(("emacs-dash" ,emacs-dash)))
00f4bd50 586 (native-inputs
b8fc3622 587 `(("emacs" ,emacs-minimal)
6aaf3899 588 ("texinfo" ,texinfo)))
00f4bd50
FB
589 (build-system gnu-build-system)
590 (arguments
591 `(#:make-flags (list (string-append "EMACS="
592 (assoc-ref %build-inputs "emacs")
593 "/bin/emacs"))
08fc0d68
FB
594 #:modules ((ice-9 match)
595 (srfi srfi-26)
596 ,@%gnu-build-system-modules)
00f4bd50
FB
597 #:phases
598 (modify-phases %standard-phases
599 (delete 'configure)
600 (add-before
601 'build 'pre-build
602 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68
FB
603 (define (el-dir store-dir)
604 (match (find-files store-dir)
605 ((f1 f2 ...) (dirname f1))
606 (_ "")))
607
00f4bd50 608 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
609 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
610
00f4bd50 611 (setenv "SHELL" "sh")
08fc0d68
FB
612 (setenv "EMACSLOADPATH"
613 (string-concatenate
614 (map (match-lambda
615 (((? emacs-prefix? name) . dir)
616 (string-append (el-dir dir) ":"))
617 (_ ""))
618 inputs)))
00f4bd50 619 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
620 (substitute* "tests/haskell-code-conventions.el"
621 ;; Function name recently changed in "emacs-el-search".
622 (("el-search--search-pattern") "el-search-forward")
623 ;; Don't contact home.
624 (("\\(when \\(>= emacs-major-version 25\\)")
625 "(require 'el-search) (when nil"))
00f4bd50
FB
626 #t)))
627 (replace
628 'install
629 (lambda* (#:key outputs #:allow-other-keys)
630 (let* ((out (assoc-ref outputs "out"))
631 (el-dir (string-append out "/share/emacs/site-lisp"))
632 (doc (string-append
633 out "/share/doc/haskell-mode-" ,version))
634 (info (string-append out "/share/info")))
635 (define (copy-to-dir dir files)
96c46210
LC
636 (for-each (lambda (f)
637 (install-file f dir))
638 files))
00f4bd50
FB
639
640 (with-directory-excursion "doc"
641 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
642 (error "makeinfo failed"))
96c46210 643 (install-file "haskell-mode.info" info))
00f4bd50
FB
644 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
645 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 646 ;; These are part of other packages.
00f4bd50 647 (with-directory-excursion el-dir
08fc0d68 648 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
649 #t))))))
650 (home-page "https://github.com/haskell/haskell-mode")
651 (synopsis "Haskell mode for Emacs")
652 (description
653 "This is an Emacs mode for editing, debugging and developing Haskell
654programs.")
655 (license license:gpl3+)))
656
6e3fdbbe
LC
657(define-public flycheck
658 (package
659 (name "emacs-flycheck")
50edf7fc 660 (version "30")
6e3fdbbe
LC
661 (source (origin
662 (method url-fetch)
0b928076
AK
663 (uri (string-append
664 "https://github.com/flycheck/flycheck/releases/download/"
665 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
666 (sha256
667 (base32
50edf7fc 668 "1rxzkaqsj48z3nska5wsgwafvwkam014dzqd32baycmxjl0jxvy7"))))
6e3fdbbe
LC
669 (build-system emacs-build-system)
670 (propagated-inputs
d0a52052 671 `(("emacs-dash" ,emacs-dash)))
6e3fdbbe
LC
672 (home-page "https://www.flycheck.org")
673 (synopsis "On-the-fly syntax checking")
674 (description
675 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
676replacement for the older Flymake extension which is part of GNU Emacs, with
677many improvements and additional features.
678
679Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
680checking for over 30 programming and markup languages with more than 70
681different tools. It highlights errors and warnings inline in the buffer, and
682provides an optional IDE-like error list.")
683 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
684
18d26210
MW
685\f
686;;;
687;;; Web browsing.
688;;;
689
690(define-public emacs-w3m
691 (package
692 (name "emacs-w3m")
2e74b9f4 693 (version "1.4.538+0.20141022")
18d26210
MW
694 (source (origin
695 (method url-fetch)
696 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
697 version ".orig.tar.gz"))
698 (sha256
2e74b9f4
AK
699 (base32
700 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
18d26210 701 (build-system gnu-build-system)
6aaf3899 702 (native-inputs `(("autoconf" ,autoconf)
b8fc3622 703 ("emacs" ,emacs-minimal)))
18d26210 704 (inputs `(("w3m" ,w3m)
6aaf3899 705 ("imagemagick" ,imagemagick)))
18d26210 706 (arguments
caaf1933 707 `(#:modules ((guix build gnu-build-system)
18d26210
MW
708 (guix build utils)
709 (guix build emacs-utils))
8ff3df5b 710 #:imported-modules (,@%gnu-build-system-modules
18d26210
MW
711 (guix build emacs-utils))
712 #:configure-flags
713 (let ((out (assoc-ref %outputs "out")))
714 (list (string-append "--with-lispdir="
715 out "/share/emacs/site-lisp")
716 (string-append "--with-icondir="
2e74b9f4
AK
717 out "/share/images/emacs-w3m")
718 ;; Leave .el files uncompressed, otherwise GC can't
719 ;; identify run-time dependencies. See
720 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
721 "--without-compress-install"))
18d26210
MW
722 #:tests? #f ; no check target
723 #:phases
932ece65
AK
724 (modify-phases %standard-phases
725 (add-after 'unpack 'autoconf
726 (lambda _
727 (zero? (system* "autoconf"))))
728 (add-before 'build 'patch-exec-paths
729 (lambda* (#:key inputs outputs #:allow-other-keys)
730 (let ((out (assoc-ref outputs "out"))
731 (w3m (assoc-ref inputs "w3m"))
732 (imagemagick (assoc-ref inputs "imagemagick"))
733 (coreutils (assoc-ref inputs "coreutils")))
734 (emacs-substitute-variables "w3m.el"
735 ("w3m-command" (string-append w3m "/bin/w3m"))
736 ("w3m-touch-command"
737 (string-append coreutils "/bin/touch"))
738 ("w3m-image-viewer"
739 (string-append imagemagick "/bin/display"))
740 ("w3m-icon-directory"
741 (string-append out "/share/images/emacs-w3m")))
742 (emacs-substitute-variables "w3m-image.el"
743 ("w3m-imagick-convert-program"
744 (string-append imagemagick "/bin/convert"))
745 ("w3m-imagick-identify-program"
746 (string-append imagemagick "/bin/identify")))
747 #t)))
748 (replace 'install
749 (lambda* (#:key outputs #:allow-other-keys)
750 (and (zero? (system* "make" "install" "install-icons"))
751 (with-directory-excursion
752 (string-append (assoc-ref outputs "out")
753 "/share/emacs/site-lisp")
754 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
755 (symlink "w3m-load.el" "w3m-autoloads.el")
756 #t)))))))
18d26210
MW
757 (home-page "http://emacs-w3m.namazu.org/")
758 (synopsis "Simple Web browser for Emacs based on w3m")
759 (description
35b9e423 760 "Emacs-w3m is an emacs interface for the w3m web browser.")
f61e0e79 761 (license license:gpl2+)))
89925972
MW
762
763(define-public emacs-wget
764 (package
765 (name "emacs-wget")
766 (version "0.5.0")
767 (source (origin
768 (method url-fetch)
769 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
770 version ".orig.tar.gz"))
771 (sha256
772 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
773 (build-system gnu-build-system)
6aaf3899 774 (inputs `(("wget" ,wget)))
b8fc3622 775 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 776 (arguments
caaf1933 777 `(#:modules ((guix build gnu-build-system)
89925972
MW
778 (guix build utils)
779 (guix build emacs-utils))
caaf1933 780 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
781 (guix build emacs-utils))
782 #:tests? #f ; no check target
783 #:phases
dc1d3cde
KK
784 (modify-phases %standard-phases
785 (replace 'configure
786 (lambda* (#:key outputs #:allow-other-keys)
787 (substitute* "Makefile"
788 (("/usr/local") (assoc-ref outputs "out"))
789 (("/site-lisp/emacs-wget") "/site-lisp"))
790 #t))
791 (add-before 'build 'patch-exec-paths
792 (lambda* (#:key inputs outputs #:allow-other-keys)
793 (let ((wget (assoc-ref inputs "wget")))
794 (emacs-substitute-variables "wget.el"
795 ("wget-command" (string-append wget "/bin/wget"))))
796 #t))
797 (add-after 'install 'post-install
798 (lambda* (#:key outputs #:allow-other-keys)
799 (emacs-generate-autoloads
800 "wget" (string-append (assoc-ref outputs "out")
801 "/share/emacs/site-lisp/"))
802 #t)))))
89925972 803 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 804 (synopsis "Simple file downloader for Emacs based on wget")
89925972 805 (description
35b9e423 806 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 807 (license license:gpl2+)))
77c9286d
LC
808
809\f
810;;;
811;;; Multimedia.
812;;;
813
814(define-public emms
815 (package
d06d4d7b 816 (name "emacs-emms")
20832afb 817 (version "4.3")
77c9286d
LC
818 (source (origin
819 (method url-fetch)
820 (uri (string-append "mirror://gnu/emms/emms-"
821 version ".tar.gz"))
822 (sha256
823 (base32
20832afb 824 "0dicgkl8l83n4cah5vk7c242abbwpyzlih451blgw37f3rijs480"))
77c9286d
LC
825 (modules '((guix build utils)))
826 (snippet
827 '(substitute* "Makefile"
828 (("/usr/bin/install-info")
829 ;; No need to use 'install-info' since it would create a
830 ;; useless 'dir' file.
831 "true")
832 (("^INFODIR=.*")
833 ;; Install Info files to $out/share/info, not $out/info.
834 "INFODIR := $(PREFIX)/share/info\n")
835 (("/site-lisp/emms")
836 ;; Install directly in share/emacs/site-lisp, not in a
837 ;; sub-directory.
838 "/site-lisp")
839 (("^all: (.*)\n" _ rest)
840 ;; Build 'emms-print-metadata'.
841 (string-append "all: " rest " emms-print-metadata\n"))))))
842 (build-system gnu-build-system)
843 (arguments
caaf1933 844 `(#:modules ((guix build gnu-build-system)
77c9286d
LC
845 (guix build utils)
846 (guix build emacs-utils))
caaf1933 847 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
848 (guix build emacs-utils))
849
2fe176be
EF
850 #:phases
851 (modify-phases %standard-phases
852 (replace 'configure
853 (lambda* (#:key inputs outputs #:allow-other-keys)
854 (let ((out (assoc-ref outputs "out"))
66e55700 855 (flac (assoc-ref inputs "flac"))
2fe176be
EF
856 (vorbis (assoc-ref inputs "vorbis-tools"))
857 (alsa (assoc-ref inputs "alsa-utils"))
858 (mpg321 (assoc-ref inputs "mpg321"))
859 (mp3info (assoc-ref inputs "mp3info")))
860 ;; Specify the installation directory.
861 (substitute* "Makefile"
862 (("PREFIX=.*$")
863 (string-append "PREFIX := " out "\n")))
864
865 (setenv "SHELL" (which "sh"))
866 (setenv "CC" "gcc")
867
868 ;; Specify the absolute file names of the various
869 ;; programs so that everything works out-of-the-box.
870 (with-directory-excursion "lisp"
871 (emacs-substitute-variables
872 "emms-player-mpg321-remote.el"
873 ("emms-player-mpg321-remote-command"
874 (string-append mpg321 "/bin/mpg321")))
875 (substitute* "emms-player-simple.el"
876 (("\"ogg123\"")
877 (string-append "\"" vorbis "/bin/ogg123\"")))
66e55700
MC
878 (substitute* "emms-player-simple.el"
879 (("\"mpg321\"")
880 (string-append "\"" mpg321 "/bin/mpg321\"")))
2fe176be
EF
881 (emacs-substitute-variables "emms-info-ogginfo.el"
882 ("emms-info-ogginfo-program-name"
883 (string-append vorbis "/bin/ogginfo")))
884 (emacs-substitute-variables "emms-info-libtag.el"
885 ("emms-info-libtag-program-name"
886 (string-append out "/bin/emms-print-metadata")))
887 (emacs-substitute-variables "emms-info-mp3info.el"
888 ("emms-info-mp3info-program-name"
889 (string-append mp3info "/bin/mp3info")))
66e55700
MC
890 (emacs-substitute-variables "emms-info-metaflac.el"
891 ("emms-info-metaflac-program-name"
892 (string-append flac "/bin/metaflac")))
893 (emacs-substitute-variables "emms-source-file.el"
894 ("emms-source-file-gnu-find" (which "find")))
2fe176be
EF
895 (substitute* "emms-volume-amixer.el"
896 (("\"amixer\"")
897 (string-append "\"" alsa "/bin/amixer\"")))
898 (substitute* "emms-tag-editor.el"
899 (("\"mp3info\"")
900 (string-append "\"" mp3info "/bin/mp3info\"")))))))
901 (add-before 'install 'pre-install
902 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 903 ;; The 'install' rule expects the target directories to exist.
2fe176be 904 (let* ((out (assoc-ref outputs "out"))
c3a10d30 905 (bin (string-append out "/bin"))
2fe176be 906 (man1 (string-append out "/share/man/man1")))
c3a10d30 907 (mkdir-p bin)
2fe176be
EF
908 (mkdir-p man1)
909 #t)))
910 (add-after 'install 'post-install
911 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 912 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
913 (symlink "emms-auto.el"
914 (string-append out "/share/emacs/site-lisp/"
c3a10d30 915 "emms-autoloads.el"))))))
77c9286d 916 #:tests? #f))
b8fc3622 917 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 918 ("texinfo" ,texinfo)))
c72aed6d 919 (inputs `(("alsa-utils" ,alsa-utils)
66e55700 920 ("flac" ,flac) ;for metaflac
77c9286d
LC
921 ("vorbis-tools" ,vorbis-tools)
922 ("mpg321" ,mpg321)
923 ("taglib" ,taglib)
924 ("mp3info" ,mp3info)))
38cb4766 925 (properties '((upstream-name . "emms")))
77c9286d
LC
926 (synopsis "Emacs Multimedia System")
927 (description
928 "EMMS is the Emacs Multimedia System. It is a small front-end which
929can control one of the supported external players. Thus, it supports
930whatever formats are supported by your music player. It also
931supports tagging and playlist management, all behind a clean and
932light user interface.")
6fd52309 933 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 934 (license license:gpl3+)))
c7e553a3 935
1095bd1d
RW
936(define-public emacs-emms-player-mpv
937 (package
938 (name "emacs-emms-player-mpv")
f9875807 939 (version "0.0.10")
1095bd1d
RW
940 (source
941 (origin
942 (method url-fetch)
943 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
944 version ".tar.gz"))
945 (file-name (string-append name "-" version ".tar.gz"))
946 (sha256
947 (base32
f9875807 948 "1q81fpmwr8hpdgq71vbdai2nml4yyqbmk4ffdyl4irlwph8gfjyq"))))
1095bd1d
RW
949 (build-system emacs-build-system)
950 (propagated-inputs
951 `(("emms" ,emms)))
952 (home-page "https://github.com/dochang/emms-player-mpv/")
953 (synopsis "Mpv support for EMMS")
954 (description
955 "This package provides an EMMS player that uses mpv. It supports pause
956and seeking.")
957 (license license:gpl3+)))
958
2316078a
RW
959(define-public emacs-emms-mode-line-cycle
960 (package
961 (name "emacs-emms-mode-line-cycle")
962 (version "0.2.5")
963 (source
964 (origin
965 (method url-fetch)
966 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
967 "/archive/" version ".tar.gz"))
968 (file-name (string-append name "-" version ".tar.gz"))
969 (sha256
970 (base32
971 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
972 (build-system emacs-build-system)
973 (propagated-inputs
974 `(("emms" ,emms)))
975 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
976 (synopsis "Display the EMMS mode line as a ticker")
977 (description
978 "This is a minor mode for updating the EMMS mode-line string cyclically
979within a specified width. It is useful for displaying long track titles.")
980 (license license:gpl3+)))
981
c7e553a3
LC
982\f
983;;;
984;;; Miscellaneous.
985;;;
986
987(define-public bbdb
988 (package
989 (name "bbdb")
990 (version "3.1.2")
991 (source (origin
992 (method url-fetch)
993 (uri (string-append "mirror://savannah/bbdb/bbdb-"
994 version ".tar.gz"))
995 (sha256
996 (base32
997 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
998 (modules '((guix build utils)))
999 (snippet
1000 ;; We don't want to build and install the PDF.
1001 '(substitute* "doc/Makefile.in"
1002 (("^doc_DATA = .*$")
1003 "doc_DATA =\n")))))
1004 (build-system gnu-build-system)
1005 (arguments
dc1d3cde
KK
1006 '(#:phases
1007 (modify-phases %standard-phases
1008 (add-after 'install 'post-install
1009 (lambda* (#:key outputs #:allow-other-keys)
1010 ;; Add an autoloads file with the right name for guix.el.
1011 (let* ((out (assoc-ref outputs "out"))
1012 (site (string-append out "/share/emacs/site-lisp")))
1013 (with-directory-excursion site
1014 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1015 #t)))))
b8fc3622 1016 (native-inputs `(("emacs" ,emacs-minimal)))
c7e553a3
LC
1017 (home-page "http://savannah.nongnu.org/projects/bbdb/")
1018 (synopsis "Contact management utility for Emacs")
1019 (description
1020 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1021an address book for email and snail mail addresses, phone numbers and the
1022like. It can be linked with various Emacs mail clients (Message and Mail
1023mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1024 (license license:gpl3+)))
78395334 1025
4d3d3bd2
VD
1026(define-public emacs-aggressive-indent
1027 (package
1028 (name "emacs-aggressive-indent")
1029 (version "1.8.3")
1030 (source (origin
1031 (method url-fetch)
1032 (uri (string-append "https://elpa.gnu.org/packages/"
1033 "aggressive-indent-" version ".el"))
1034 (sha256
1035 (base32
1036 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1037 (build-system emacs-build-system)
1038 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1039 (synopsis "Minor mode to aggressively keep your code always indented")
1040 (description
1041 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1042always indented. It reindents after every change, making it more reliable
1043than @code{electric-indent-mode}.")
1044 (license license:gpl2+)))
1045
cf006d2e
CB
1046(define-public emacs-ag
1047 (package
1048 (name "emacs-ag")
1049 (version "0.47")
1050 (source (origin
1051 (method url-fetch)
1052 (uri (string-append
1053 "https://github.com/Wilfred/ag.el/archive/"
1054 version ".tar.gz"))
1055 (file-name (string-append name "-" version ".tar.gz"))
1056 (sha256
1057 (base32
1058 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1059 (build-system emacs-build-system)
1060 (arguments
1061 `(#:phases
1062 (modify-phases %standard-phases
99517d92
GC
1063 (add-before 'install 'make-info
1064 (lambda _
1065 (with-directory-excursion "docs"
1066 (zero? (system* "make" "info")))))
1067 (add-after 'install 'install-info
1068 (lambda* (#:key outputs #:allow-other-keys)
1069 (let* ((out (assoc-ref outputs "out"))
1070 (info (string-append out "/share/info")))
1071 (install-file "docs/_build/texinfo/agel.info" info)
1072 #t))))))
99517d92
GC
1073 (native-inputs
1074 `(("python-sphinx" ,python-sphinx)
1075 ("texinfo" ,texinfo)))
cf006d2e
CB
1076 (propagated-inputs
1077 `(("dash" ,emacs-dash)
86470421
CL
1078 ("s" ,emacs-s)
1079 ;; We need to use 'ag' as the executable on remote systems.
1080 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1081 (home-page "https://github.com/Wilfred/ag.el")
1082 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1083 (description "This package provides the ability to use the silver
1084searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1085include version control system awareness, use of Perl compatible regular
1086expressions, editing the search results directly and searching file names
1087rather than the contents of files.")
1088 (license license:gpl3+)))
1089
b654de6d
AK
1090(define-public emacs-async
1091 (package
1092 (name "emacs-async")
51ef4af6 1093 (version "1.9.2")
b654de6d
AK
1094 (source (origin
1095 (method url-fetch)
f32ffa04 1096 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1097 version ".tar"))
1098 (sha256
1099 (base32
51ef4af6 1100 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
b654de6d 1101 (build-system emacs-build-system)
f32ffa04 1102 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
1103 (synopsis "Asynchronous processing in Emacs")
1104 (description
1105 "This package provides the ability to call asynchronous functions and
1106processes. For example, it can be used to run dired commands (for copying,
1107moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1108as a library for other Emacs packages.")
1109 (license license:gpl3+)))
1110
78395334
FB
1111(define-public emacs-auctex
1112 (package
1113 (name "emacs-auctex")
32c4a506 1114 (version "11.91.0")
78395334
FB
1115 (source
1116 (origin
1117 (method url-fetch)
1118 (uri (string-append
f32ffa04 1119 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1120 version
1121 ".tar"))
1122 (sha256
1123 (base32
32c4a506 1124 "1yh182mxgngjmwpkyv2n9km3vyq95bqfq8mnly3dbv78nwk7f2l3"))))
78395334 1125 (build-system emacs-build-system)
a6eafbed
AK
1126 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1127 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1128 (arguments
1129 `(#:emacs ,emacs
1130 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1131 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1132 (native-inputs
1133 `(("perl" ,perl)))
6fd52309 1134 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1135 (synopsis "Integrated environment for TeX")
1136 (description
1137 "AUCTeX is a comprehensive customizable integrated environment for
1138writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1139or XEmacs.")
1140 (license license:gpl3+)))
85ef742c 1141
de2e402b
MM
1142(define-public emacs-autothemer
1143 (package
1144 (name "emacs-autothemer")
1145 (version "0.2.2")
1146 (source
1147 (origin
1148 (method url-fetch)
1149 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1150 version ".tar.gz"))
1151 (file-name (string-append name "-" version ".tar.gz"))
1152 (sha256
1153 (base32
1154 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1155 (build-system emacs-build-system)
1156 (propagated-inputs
1157 `(("emacs-dash" ,emacs-dash)))
1158 (home-page "https://github.com/sebastiansturm/autothemer")
1159 (synopsis "Conveniently create Emacs themes")
1160 (description
1161 "Autothemer provides a thin layer on top of @code{deftheme} and
1162@code{custom-theme-set-faces} that creates a new custom color theme, based on
1163a set of simplified face specifications and a user-supplied color palette")
1164 (license license:gpl3+)))
1165
36890436
VD
1166(define-public emacs-calfw
1167 (package
1168 (name "emacs-calfw")
1169 (version "1.5")
1170 (source
1171 (origin
1172 (method url-fetch)
1173 (uri (string-append
1174 "https://github.com/kiwanami/emacs-calfw/archive/v"
1175 version ".tar.gz"))
1176 (file-name (string-append name "-" version ".tar.gz"))
1177 (sha256
1178 (base32
1179 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1180 (build-system emacs-build-system)
1181 (home-page "https://github.com/kiwanami/emacs-calfw/")
1182 (synopsis "Calendar framework for Emacs")
1183 (description
9dac2a8e
RW
1184 "This package displays a calendar view with various schedule data in the
1185Emacs buffer.")
36890436
VD
1186 (license license:gpl3+)))
1187
a8d0c9cb
CB
1188(define-public emacs-direnv
1189 (package
1190 (name "emacs-direnv")
1191 (version "1.2.0")
1192 (source
1193 (origin
1194 (method url-fetch)
1195 (uri (string-append
1196 "https://github.com/wbolster/emacs-direnv/archive/"
1197 version ".tar.gz"))
1198 (file-name (string-append name "-" version ".tar.gz"))
1199 (sha256
1200 (base32
1201 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1202 (build-system emacs-build-system)
1203 (propagated-inputs
1204 `(("dash" ,emacs-dash)
1205 ("with-editor" ,emacs-with-editor)))
1206 (home-page "https://github.com/wbolster/emacs-direnv")
1207 (synopsis "Direnv integration for Emacs")
1208 (description
1209 "This package provides support for invoking direnv to get the environment
1210for the current file and updating the environment within Emacs to match.
1211
1212Direnv can be invoked manually, and a global minor mode is included that will
1213update the environment when the active buffer changes.
1214
1215Using emacs-direnv means that programs started from Emacs will use the
1216environment set through Direnv.")
1217 (license license:gpl3+)))
1218
21a656f5
CB
1219(define-public emacs-go-mode
1220 (package
1221 (name "emacs-go-mode")
1222 (version "1.5.0")
1223 (source (origin
1224 (method url-fetch)
1225 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1226 "archive/v" version ".tar.gz"))
1227 (file-name (string-append name "-" version ".tar.gz"))
1228 (sha256
1229 (base32
1230 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1231 (build-system emacs-build-system)
1232 (home-page "https://github.com/dominikh/go-mode.el")
1233 (synopsis "Go mode for Emacs")
1234 (description
1235 "This package provides go-mode, an Emacs mode for working with software
1236written in the Go programming language.")
1237 (license license:bsd-3)))
1238
63878730
VD
1239(define-public emacs-google-maps
1240 (package
1241 (name "emacs-google-maps")
1242 (version "1.0.0")
1243 (source (origin
1244 (method url-fetch)
1245 (uri (string-append "https://github.com/jd/google-maps.el/"
1246 "archive/" version ".tar.gz"))
1247 (file-name (string-append name "-" version ".tar.gz"))
1248 (sha256
1249 (base32
1250 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1251 (build-system emacs-build-system)
1252 (home-page "https://github.com/jd/google-maps.el")
1253 (synopsis "Access Google Maps from Emacs")
1254 (description "The @code{google-maps} package allows to display Google
1255Maps directly inside Emacs.")
1256 (license license:gpl3+)))
1257
1f37465a
CB
1258(define-public emacs-graphviz-dot-mode
1259 (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
1260 (revision "1"))
1261 (package
1262 (name "emacs-graphviz-dot-mode")
1263 (version (string-append "0.3.10-" revision "."
1264 (string-take commit 7)))
1265 (source (origin
1266 (method git-fetch)
1267 (uri (git-reference
1268 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1269 (commit commit)))
1270 (file-name (string-append name "-" version "-checkout"))
1271 (sha256
1272 (base32
1273 "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
1274 (build-system emacs-build-system)
1275 (arguments
1276 `(#:phases
1277 (modify-phases %standard-phases
1278 (add-before 'install 'make-info
1279 (lambda* (#:key inputs #:allow-other-keys)
1280 (with-directory-excursion "texinfo"
1281 (substitute* "Makefile"
1282 (("\\/usr\\/bin\\/gzip")
1283 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1284 (zero?
1285 (system* "make"
1286 "clean"
1287 "info"
1288 (string-append "TEXINFODIR="
1289 (assoc-ref inputs "texinfo")
1290 "/bin"))))))
1291 (add-after 'install 'install-info
1292 (lambda* (#:key outputs #:allow-other-keys)
1293 (let* ((out (assoc-ref outputs "out"))
1294 (info (string-append out "/share/info")))
1295 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1296 #t))))))
1297 (native-inputs
1298 `(("texinfo" ,texinfo)
1299 ("gzip" ,gzip)))
1300 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1301 (synopsis "Major mode for editing Graphviz Dot files")
1302 (description
1303 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1304files using the dot syntax, and use Graphviz to convert these files to
1305diagrams.")
1306 (license license:gpl2+))))
1307
85ef742c
FB
1308(define-public emacs-mmm-mode
1309 (package
1310 (name "emacs-mmm-mode")
1311 (version "0.5.4")
1312 (source
1313 (origin
1314 (method url-fetch)
1315 (uri (string-append
0c909c05
AK
1316 "https://github.com/purcell/mmm-mode/archive/"
1317 version ".tar.gz"))
1318 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1319 (sha256
1320 (base32
0c909c05
AK
1321 "10kwslnflbjqm62wkrq420crqzdqalzfflp9pqk1i12zm6dm4mfv"))))
1322 (build-system gnu-build-system)
1323 (arguments
1324 '(#:phases
1325 (modify-phases %standard-phases
1326 (add-after 'unpack 'autogen
1327 (lambda _
1328 (zero? (system* "sh" "autogen.sh")))))))
1329 (native-inputs
1330 `(("autoconf" ,autoconf)
1331 ("automake" ,automake)
b8fc3622 1332 ("emacs" ,emacs-minimal)
0c909c05 1333 ("texinfo" ,texinfo)))
85ef742c 1334 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1335 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1336 (description
0c909c05 1337 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1338single buffer.")
1339 (license license:gpl3+)))
ec9825d6 1340
060348d2
AK
1341(define-public emacs-tablist
1342 (package
1343 (name "emacs-tablist")
1344 (version "0.70")
1345 (source (origin
1346 (method url-fetch)
1347 (uri (string-append
1348 "https://github.com/politza/tablist/archive/v"
1349 version ".tar.gz"))
1350 (file-name (string-append name "-" version ".tar.gz"))
1351 (sha256
1352 (base32
1353 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1354 (build-system emacs-build-system)
1355 (home-page "https://github.com/politza/tablist")
1356 (synopsis "Extension for @code{tabulated-list-mode}")
1357 (description "Tablist is the Emacs package that provides several
1358additional features to @code{tabulated-list-mode}: it adds marks,
1359filters, new key bindings and faces. It can be enabled by
1360@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1361 (license license:gpl3+)))
1362
ec9825d6
RW
1363(define-public emacs-pdf-tools
1364 (package
1365 (name "emacs-pdf-tools")
1210046d 1366 (version "0.80")
ec9825d6
RW
1367 (source (origin
1368 (method url-fetch)
1369 (uri (string-append
1370 "https://github.com/politza/pdf-tools/archive/v"
1371 version ".tar.gz"))
1372 (file-name (string-append name "-" version ".tar.gz"))
1373 (sha256
1374 (base32
1210046d 1375 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
ec9825d6
RW
1376 (build-system gnu-build-system)
1377 (arguments
1378 `(#:tests? #f ; there are no tests
1379 #:modules ((guix build gnu-build-system)
1bcae5c5 1380 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1381 (guix build utils)
1382 (guix build emacs-utils))
1383 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1384 (guix build emacs-build-system)
ec9825d6
RW
1385 (guix build emacs-utils))
1386 #:phases
1387 (modify-phases %standard-phases
1bcae5c5
AK
1388 ;; Build server side using 'gnu-build-system'.
1389 (add-after 'unpack 'enter-server-dir
1390 (lambda _ (chdir "server") #t))
d10092b8 1391 (add-after 'enter-server-dir 'autogen
1bcae5c5
AK
1392 (lambda _
1393 (zero? (system* "bash" "autogen.sh"))))
1394
1395 ;; Build emacs side using 'emacs-build-system'.
1396 (add-after 'compress-documentation 'enter-lisp-dir
1397 (lambda _ (chdir "../lisp") #t))
1398 (add-after 'enter-lisp-dir 'emacs-patch-variables
1399 (lambda* (#:key outputs #:allow-other-keys)
1400 ;; Set path to epdfinfo program.
1401 (emacs-substitute-variables "pdf-info.el"
1402 ("pdf-info-epdfinfo-program"
1403 (string-append (assoc-ref outputs "out")
1404 "/bin/epdfinfo")))
1405 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1406 ;; upgrading" that pdf-tools tries to perform.
1407 (emacs-substitute-variables "pdf-tools.el"
1408 ("pdf-tools-handle-upgrades" '()))))
1409 (add-after 'emacs-patch-variables 'emacs-install
1410 (assoc-ref emacs:%standard-phases 'install))
1411 (add-after 'emacs-install 'emacs-build
1412 (assoc-ref emacs:%standard-phases 'build))
1413 (add-after 'emacs-install 'emacs-make-autoloads
1414 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1415 (native-inputs `(("autoconf" ,autoconf)
1416 ("automake" ,automake)
1417 ("pkg-config" ,pkg-config)
b8fc3622 1418 ("emacs" ,emacs-minimal)))
ec9825d6
RW
1419 (inputs `(("poppler" ,poppler)
1420 ("cairo" ,cairo)
1421 ("glib" ,glib)
1422 ("libpng" ,libpng)
1423 ("zlib" ,zlib)))
1210046d 1424 (propagated-inputs `(("tablist" ,emacs-tablist)))
ec9825d6
RW
1425 (synopsis "Emacs support library for PDF files")
1426 (description
1427 "PDF Tools is, among other things, a replacement of DocView for PDF
1428files. The key difference is that pages are not pre-rendered by
1429e.g. ghostscript and stored in the file-system, but rather created on-demand
1430and stored in memory.")
1431 (home-page "https://github.com/politza/pdf-tools")
1432 (license license:gpl3+)))
d4dbf10e
FB
1433
1434(define-public emacs-dash
1435 (package
1436 (name "emacs-dash")
a31a79bc 1437 (version "2.13.0")
d4dbf10e
FB
1438 (source (origin
1439 (method url-fetch)
1440 (uri (string-append
1441 "https://github.com/magnars/dash.el/archive/"
1442 version ".tar.gz"))
1443 (file-name (string-append name "-" version ".tar.gz"))
1444 (sha256
1445 (base32
a31a79bc 1446 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
d4dbf10e
FB
1447 (build-system emacs-build-system)
1448 (arguments
1449 `(#:phases
1450 (modify-phases %standard-phases
1451 (add-before 'install 'check
1452 (lambda _
1453 (zero? (system* "./run-tests.sh")))))))
1454 (home-page "https://github.com/magnars/dash.el")
1455 (synopsis "Modern list library for Emacs")
1456 (description "This package provides a modern list API library for Emacs.")
1457 (license license:gpl3+)))
85777fe5 1458
753baf77
AK
1459(define-public emacs-bui
1460 (package
1461 (name "emacs-bui")
f6b1dd23 1462 (version "1.1.0")
753baf77
AK
1463 (source (origin
1464 (method url-fetch)
1465 (uri (string-append
1466 "https://github.com/alezost/bui.el/archive/v"
1467 version ".tar.gz"))
1468 (file-name (string-append name "-" version ".tar.gz"))
1469 (sha256
1470 (base32
f6b1dd23 1471 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1472 (build-system emacs-build-system)
1473 (propagated-inputs
1474 `(("dash" ,emacs-dash)))
1475 (home-page "https://github.com/alezost/bui.el")
1476 (synopsis "Buffer interface library for Emacs")
1477 (description
1478 "BUI (Buffer User Interface) is a library for making @code{list} and
1479@code{info} interfaces to display an arbitrary data of the same
1480type, for example: packages, buffers, files, etc.")
1481 (license license:gpl3+)))
1482
64e43c67
AK
1483(define-public emacs-guix
1484 (package
1485 (name "emacs-guix")
780162c7 1486 (version "0.3.3")
64e43c67
AK
1487 (source (origin
1488 (method url-fetch)
1489 (uri (string-append "https://github.com/alezost/guix.el"
1490 "/releases/download/v" version
1491 "/emacs-guix-" version ".tar.gz"))
1492 (sha256
1493 (base32
780162c7 1494 "0mjb2yb454389ds2kr5rkjkl21r78z4c0f88ivf4g471yzg279mc"))))
64e43c67
AK
1495 (build-system gnu-build-system)
1496 (arguments
1497 `(#:configure-flags
1498 (let ((guix (assoc-ref %build-inputs "guix"))
1499 (geiser (assoc-ref %build-inputs "geiser"))
1500 (dash (assoc-ref %build-inputs "dash"))
1501 (bui (assoc-ref %build-inputs "bui"))
1502 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1503 (site-lisp "/share/emacs/site-lisp"))
1504 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1505 (car (find-files (string-append guix
1506 "/share/guile/site")
1507 (lambda (file stat)
1508 (string-prefix?
1509 "2."
1510 (basename file)))
1511 #:directories? #t)))
3fb8e281
AK
1512 (string-append "--with-guix-site-ccache-dir="
1513 (car (find-files (string-append guix "/lib/guile")
1514 (lambda (file stat)
1515 (string-prefix?
1516 "2." (basename file)))
1517 #:directories? #t))
1518 "/site-ccache")
64e43c67
AK
1519 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1520 (string-append "--with-dash-lispdir="
1521 dash site-lisp "/guix.d/dash-"
1522 ,(package-version emacs-dash))
1523 (string-append "--with-bui-lispdir="
1524 bui site-lisp "/guix.d/bui-"
1525 ,(package-version emacs-bui))
1526 (string-append "--with-popup-lispdir="
1527 magit-popup site-lisp "/guix.d/magit-popup-"
1528 ,(package-version emacs-magit-popup))))))
1529 (native-inputs
1530 `(("pkg-config" ,pkg-config)
1531 ("emacs" ,emacs-minimal)))
1532 (inputs
b4f8edb7 1533 `(("guile" ,guile-2.2)
64e43c67
AK
1534 ("guix" ,guix)))
1535 (propagated-inputs
1536 `(("geiser" ,geiser)
1537 ("dash" ,emacs-dash)
1538 ("bui" ,emacs-bui)
1539 ("magit-popup" ,emacs-magit-popup)))
78461856 1540 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1541 (synopsis "Emacs interface for GNU Guix")
1542 (description
b2f1f7b0
AK
1543 "Emacs-Guix provides a visual interface, tools and features for the GNU
1544Guix package manager. Particularly, it allows you to do various package
1545management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1546@code{M-x guix-help} command.")
64e43c67
AK
1547 (license license:gpl3+)))
1548
d6e5de1e
RJ
1549(define-public emacs-d-mode
1550 (package
1551 (name "emacs-d-mode")
1552 (version "2.0.8")
1553 (source (origin
1554 (method url-fetch)
1555 (uri (string-append
1556 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1557 "archive/" version ".tar.gz"))
1558 (sha256
1559 (base32
1560 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1561 (build-system emacs-build-system)
1562 (propagated-inputs
1563 `(("emacs-undercover" ,emacs-undercover)))
1564 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1565 (synopsis "Emacs major mode for editing D code")
1566 (description "This package provides an Emacs major mode for highlighting
1567code written in the D programming language. This mode is currently known to
1568work with Emacs 24 and 25.")
1569 (license license:gpl2+)))
1570
7f7b38af
VD
1571(define-public emacs-keyfreq
1572 (package
1573 (name "emacs-keyfreq")
1574 (version "20160516.716")
1575 (source
1576 (origin
1577 (method url-fetch)
1578 (uri (string-append "http://melpa.org/packages/keyfreq-"
1579 version ".el"))
1580 (sha256
1581 (base32
1582 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1583 (build-system emacs-build-system)
1584 (home-page "https://github.com/dacap/keyfreq")
1585 (synopsis "Track Emacs command frequencies")
1586 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1587a command.")
1588 (license license:gpl3+)))
1589
6aab6c27
RJ
1590(define-public emacs-olivetti
1591 (package
1592 (name "emacs-olivetti")
1593 (version "1.5.7")
1594 (source (origin
1595 (method url-fetch)
1596 (uri (string-append
1597 "https://stable.melpa.org/packages/olivetti-"
1598 version ".el"))
1599 (sha256
1600 (base32
1601 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1602 (build-system emacs-build-system)
1603 (home-page "https://github.com/rnkn/olivetti")
1604 (synopsis "Emacs minor mode for a nice writing environment")
1605 (description "This package provides an Emacs minor mode that puts writing
1606in the center.")
1607 (license license:gpl3+)))
1608
1075b437
DB
1609(define-public emacs-undo-tree
1610 (package
1611 (name "emacs-undo-tree")
1612 (version "0.6.4")
1613 (source (origin
1614 (method git-fetch)
1615 (uri (git-reference
1616 (url "http://dr-qubit.org/git/undo-tree.git")
1617 (commit "release/0.6.4")))
1618 (file-name (string-append name "-" version "-checkout"))
1619 (sha256
1620 (base32
1621 "0b6hnv6bq1g5np5q2yw9r9aj1cxpp14akm21br7vpb7wp01fv4b3"))))
1622 (build-system emacs-build-system)
1623 (home-page "http://www.dr-qubit.org/emacs.php")
1624 (synopsis "Treat undo history as a tree")
1625 (description "Tree-like interface to Emacs undo system, providing
1626graphical tree presentation of all previous states of buffer that
1627allows easily move between them.")
1628 (license license:gpl3+)))
1629
85777fe5
FB
1630(define-public emacs-s
1631 (package
1632 (name "emacs-s")
48e28c69 1633 (version "1.11.0")
85777fe5
FB
1634 (source (origin
1635 (method url-fetch)
1636 (uri (string-append
1637 "https://github.com/magnars/s.el/archive/"
1638 version ".tar.gz"))
1639 (file-name (string-append name "-" version ".tar.gz"))
1640 (sha256
1641 (base32
48e28c69 1642 "0krq5nz3llfx0vwdqn18pmq777ja0fac185w0h9qymppb1j1hvc2"))))
85777fe5
FB
1643 (build-system emacs-build-system)
1644 (arguments
1645 `(#:phases
1646 (modify-phases %standard-phases
1647 (add-before 'install 'check
1648 (lambda _
1649 (zero? (system* "./run-tests.sh")))))))
1650 (home-page "https://github.com/magnars/s.el")
a124bbd2 1651 (synopsis "Emacs string manipulation library")
85777fe5
FB
1652 (description "This package provides an Emacs library for manipulating
1653strings.")
1654 (license license:gpl3+)))
cf9ce01f 1655
070e1fe9
VD
1656(define-public emacs-symon
1657 (package
1658 (name "emacs-symon")
d71b758f 1659 (version "20160630")
070e1fe9
VD
1660 (source
1661 (origin
1662 (method url-fetch)
d71b758f
VD
1663 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1664 version ".tar.gz"))
1665 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1666 (sha256
1667 (base32
d71b758f 1668 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1669 (build-system emacs-build-system)
d71b758f 1670 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1671 (synopsis "Tiny graphical system monitor")
1672 (description
1673 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1674 (license license:gpl2+)))
1675
899bcad3 1676(define-public emacs-sx
1677 (package
1678 (name "emacs-sx")
1679 (version "0.4")
1680 (source (origin
1681 (method url-fetch)
1682 (uri (string-append "https://github.com/vermiculus/sx.el/"
1683 "archive/v" version ".tar.gz"))
1684 (file-name (string-append name "-" version ".tar.gz"))
1685 (sha256
1686 (base32
1687 "1w0xghfljqg31axcnv8gzlrd8pw25nji6idnrhflq0af9qh1dw03"))))
1688 (build-system emacs-build-system)
1689 (propagated-inputs
469c7ce0 1690 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
899bcad3 1691 (home-page "https://github.com/vermiculus/sx.el/")
1692 (synopsis "Emacs StackExchange client")
1693 (description
1694 "Emacs StackExchange client. Ask and answer questions on
1695Stack Overflow, Super User, and other StackExchange sites.")
1696 (license license:gpl3+)))
1697
cf9ce01f
FB
1698(define-public emacs-f
1699 (package
1700 (name "emacs-f")
ad5d899e 1701 (version "0.18.2")
cf9ce01f
FB
1702 (source (origin
1703 (method url-fetch)
1704 (uri (string-append
1705 "https://github.com/rejeep/f.el/archive/v"
1706 version ".tar.gz"))
1707 (file-name (string-append name "-" version ".tar.gz"))
1708 (sha256
1709 (base32
ad5d899e 1710 "1926shh2ymdsgz05c6q181mzzz1rci99ch568j151xi865jinyg5"))))
cf9ce01f
FB
1711 (build-system emacs-build-system)
1712 (propagated-inputs
1713 `(("emacs-s" ,emacs-s)
1714 ("emacs-dash" ,emacs-dash)))
7bf837fd 1715 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1716 (synopsis "Emacs API for working with files and directories")
1717 (description "This package provides an Emacs library for working with
1718files and directories.")
1719 (license license:gpl3+)))
48dbeef7 1720
0916dc52
CB
1721(define-public emacs-git-gutter
1722 (package
1723 (name "emacs-git-gutter")
1724 (version "0.90")
1725 (source (origin
1726 (method url-fetch)
1727 (uri (string-append
1728 "https://github.com/syohex/" name "/archive/"
1729 version ".tar.gz"))
1730 (file-name (string-append name "-" version ".tar.gz"))
1731 (sha256
1732 (base32
1733 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1734 (build-system emacs-build-system)
1735 (home-page "https://github.com/syohex/emacs-git-gutter")
1736 (synopsis "See and manage hunks of text in a version control system")
1737 (description
1738 "This package is an Emacs minor mode for displaying and interacting with
1739hunks of text managed in a version control system. Added modified and deleted
1740areas can be indicated with symbols on the edge of the buffer, and commands
1741can be used to move between and perform actions on these hunks.
1742
1743Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1744display and behaviour is easily customisable.")
1745 (license license:gpl3+)))
1746
0b35f11d
RW
1747(define-public emacs-git-timemachine
1748 (package
1749 (name "emacs-git-timemachine")
1750 (version "3.0")
1751 (source
1752 (origin
1753 (method url-fetch)
1754 (uri (string-append "https://github.com/pidu/git-timemachine/"
1755 "archive/" version ".tar.gz"))
1756 (file-name (string-append name "-" version ".tar.gz"))
1757 (sha256
1758 (base32
1759 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1760 (build-system emacs-build-system)
1761 (home-page "https://github.com/pidu/git-timemachine")
1762 (synopsis "Step through historic versions of Git-controlled files")
1763 (description "This package enables you to step through historic versions
1764of files under Git version control from within Emacs.")
1765 (license license:gpl3+)))
1766
26361de4
CB
1767(define-public emacs-minitest
1768 (package
1769 (name "emacs-minitest")
1770 (version "0.8.0")
1771 (source (origin
1772 (method url-fetch)
1773 (uri (string-append
1774 "https://github.com/arthurnn/minitest-emacs/archive/v"
1775 version ".tar.gz"))
1776 (file-name (string-append name "-" version ".tar.gz"))
1777 (sha256
1778 (base32
1779 "1dsb7kzvs1x6g4sgqmq73jqacb7wzm0wfkiq5m9dqdzq8mppgiqs"))))
1780 (build-system emacs-build-system)
1781 (arguments
1782 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1783 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1784 (propagated-inputs
1785 `(("emacs-dash" ,emacs-dash)
1786 ("emacs-f" ,emacs-f)))
1787 (home-page "https://github.com/arthurnn/minitest-emacs")
1788 (synopsis "Emacs minitest mode")
1789 (description
1790 "The minitest mode provides commands to run the tests for the current
1791file or line, as well as rerunning the previous tests, or all the tests for a
1792project.
1793
1794This package also includes relevant snippets for yasnippet.")
1795 (license license:expat)))
1796
1c32830b
RW
1797(define-public emacs-el-mock
1798 (package
1799 (name "emacs-el-mock")
1800 (version "1.25.1")
1801 (source
1802 (origin
1803 (method url-fetch)
1804 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1805 "archive/v" version ".tar.gz"))
1806 (file-name (string-append name "-" version ".tar.gz"))
1807 (sha256
1808 (base32
1809 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1810 (build-system emacs-build-system)
7bf837fd 1811 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
1812 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1813 (description
1814 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1815syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1816Expectations, but it can be used in other contexts.")
1817 (license license:gpl3+)))
1818
0c5d837c
RW
1819(define-public emacs-espuds
1820 (package
1821 (name "emacs-espuds")
1822 (version "0.3.3")
1823 (source
1824 (origin
1825 (method url-fetch)
1826 (uri (string-append "https://github.com/ecukes/espuds/"
1827 "archive/v" version ".tar.gz"))
1828 (file-name (string-append name "-" version ".tar.gz"))
1829 (sha256
1830 (base32
1831 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1832 (build-system emacs-build-system)
1833 (propagated-inputs
1834 `(("emacs-s" ,emacs-s)
1835 ("emacs-dash" ,emacs-dash)
1836 ("emacs-f" ,emacs-f)))
7bf837fd 1837 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
1838 (synopsis "Common step definitions for Ecukes")
1839 (description "Espuds is a collection of the most commonly used step
1840definitions for testing with the Ecukes framework.")
1841 (license license:gpl3+)))
1842
8bebe734
CB
1843(define-public emacs-es-mode
1844 (package
1845 (name "emacs-es-mode")
1846 (version "4.2.0")
1847 (source (origin
1848 (method url-fetch)
1849 (uri (string-append
1850 "https://github.com/dakrone/es-mode/archive/"
1851 version ".tar.gz"))
1852 (file-name (string-append name "-" version ".tar.gz"))
1853 (sha256
1854 (base32
1855 "02as82clm553yss7jfjac888308zr1h2229cch4z1yij70j25c8y"))))
1856 (build-system emacs-build-system)
1857 (propagated-inputs
1858 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
1859 ;; to be rendered incorrectly
1860 `(("emacs-org" ,emacs-org)))
1861 (home-page "https://github.com/dakrone/es-mode")
1862 (synopsis "Major mode for editing Elasticsearch queries")
1863 (description "@code{es-mode} includes highlighting, completion and
1864indentation support for Elasticsearch queries. Also supported are
1865@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
1866be processed through @code{jq}, or in the case of aggregations, can be
1867rendered in to a table. In addition, there is an @code{es-command-center}
1868mode, which displays information about Elasticsearch clusters.")
1869 (license license:gpl3+)))
1870
d0e43782
RW
1871(define-public emacs-expand-region
1872 (package
1873 (name "emacs-expand-region")
61c71171 1874 (version "0.11.0")
d0e43782
RW
1875 (source
1876 (origin
1877 (method url-fetch)
1878 (uri (string-append "https://github.com/magnars/expand-region.el"
1879 "/archive/" version ".tar.gz"))
1880 (file-name (string-append name "-" version ".tar.gz"))
1881 (sha256
1882 (base32
61c71171 1883 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
1884 (build-system emacs-build-system)
1885 (home-page "https://github.com/magnars/expand-region.el")
1886 (synopsis "Increase selected region by semantic units")
1887 (description
1888 "Expand region increases the selected region by semantic units. Just
1889keep pressing the key until it selects what you want. There's also
1890@code{er/contract-region} if you expand too far.")
1891 (license license:gpl3+)))
1892
65568446
RW
1893(define-public emacs-fill-column-indicator
1894 (package
1895 (name "emacs-fill-column-indicator")
1896 (version "1.81")
1897 (source
1898 (origin
1899 (method url-fetch)
1900 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
1901 "/archive/v" version ".tar.gz"))
1902 (file-name (string-append name "-" version ".tar.gz"))
1903 (sha256
1904 (base32
1905 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
1906 (build-system emacs-build-system)
1907 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
1908 (synopsis "Graphically indicate the fill column")
1909 (description
1910 "Fill-column-indicator graphically indicates the location of the fill
1911column by drawing a thin line down the length of the editing window.")
1912 (license license:gpl3+)))
1913
f450d3c5
CB
1914(define-public emacs-inf-ruby
1915 (package
1916 (name "emacs-inf-ruby")
1917 (version "2.5.1")
1918 (source
1919 (origin
1920 (method url-fetch)
1921 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
1922 "archive/" version ".tar.gz"))
1923 (file-name (string-append name "-" version ".tar.gz"))
1924 (sha256
1925 (base32
1926 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
1927 (build-system emacs-build-system)
1928 (home-page "https://github.com/nonsequitur/inf-ruby")
1929 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
1930 (description
1931 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
1932for easy interaction with a ruby subprocess. Features include support for
1933detecting specific uses of Ruby, e.g. when using rails, and using a
1934appropriate console.")
1935 (license license:gpl3+)))
1936
7b9769b0
RW
1937(define-public emacs-znc
1938 (package
1939 (name "emacs-znc")
1940 (version "0.0.2")
1941 (source
1942 (origin
1943 (method url-fetch)
1944 (uri (string-append "https://marmalade-repo.org/packages/znc-"
1945 version ".el"))
1946 (sha256
1947 (base32
1948 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
1949 (build-system emacs-build-system)
1950 (home-page "https://github.com/sshirokov/ZNC.el")
1951 (synopsis "Make ERC and ZNC get along better")
1952 (description
1953 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
1954IRC bouncer with ERC.")
1955 (license license:expat)))
1956
1f9a7097
RW
1957(define-public emacs-shut-up
1958 (package
1959 (name "emacs-shut-up")
1960 (version "0.3.2")
1961 (source
1962 (origin
1963 (method url-fetch)
1964 (uri (string-append "https://github.com/cask/shut-up/"
1965 "archive/v" version ".tar.gz"))
1966 (file-name (string-append name "-" version ".tar.gz"))
1967 (sha256
1968 (base32
1969 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
1970 (build-system emacs-build-system)
1971 (home-page "https://github.com/cask/shut-up")
1972 (synopsis "Silence Emacs")
1973 (description "This package silences most output of Emacs when running an
1974Emacs shell script.")
1975 (license license:expat)))
1976
dbe38a3a
RW
1977(define-public emacs-undercover
1978 (package
1979 (name "emacs-undercover")
1980 (version "0.6.0")
1981 (source
1982 (origin
1983 (method url-fetch)
1984 (uri (string-append "https://github.com/sviridov/undercover.el/"
1985 "archive/v" version ".tar.gz"))
1986 (file-name (string-append name "-" version ".tar.gz"))
1987 (sha256
1988 (base32
1989 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
1990 (build-system emacs-build-system)
1991 (propagated-inputs
1992 `(("emacs-dash" ,emacs-dash)
1993 ("emacs-shut-up" ,emacs-shut-up)))
1994 (home-page "https://github.com/sviridov/undercover.el")
1995 (synopsis "Test coverage library for Emacs Lisp")
1996 (description
1997 "Undercover is a test coverage library for software written in Emacs
1998Lisp.")
1999 (license license:expat)))
2000
07046e5f
RW
2001(define-public emacs-paren-face
2002 (package
2003 (name "emacs-paren-face")
2004 (version "1.0.0")
2005 (source
2006 (origin
2007 (method url-fetch)
2008 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2009 version ".tar.gz"))
2010 (file-name (string-append name "-" version ".tar.gz"))
2011 (sha256
2012 (base32
2013 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2014 (build-system emacs-build-system)
7bf837fd 2015 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
2016 (synopsis "Face for parentheses in lisp modes")
2017 (description
2018 "This library defines a face named @code{parenthesis} used just for
2019parentheses. The intended purpose of this face is to make parentheses less
2020visible in Lisp code by dimming them. Lispers probably don't need to be
2021constantly made aware of the existence of the parentheses. Dimming them might
2022be even more useful for people new to lisp who have not yet learned to
2023subconsciously blend out the parentheses.")
2024 (license license:gpl3+)))
2025
a46e3c0d
RW
2026(define-public emacs-page-break-lines
2027 (package
2028 (name "emacs-page-break-lines")
2029 (version "0.11")
2030 (source
2031 (origin
2032 (method url-fetch)
2033 (uri (string-append "https://github.com/purcell/page-break-lines/"
2034 "archive/" version ".tar.gz"))
2035 (file-name (string-append name "-" version ".tar.gz"))
2036 (sha256
2037 (base32
2038 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2039 (build-system emacs-build-system)
2040 (home-page "https://github.com/purcell/page-break-lines")
2041 (synopsis "Display page breaks as tidy horizontal lines")
2042 (description
2043 "This library provides a global mode which displays form feed characters
2044as horizontal rules.")
2045 (license license:gpl3+)))
2046
1f8a951b
RW
2047(define-public emacs-simple-httpd
2048 (package
2049 (name "emacs-simple-httpd")
2050 (version "1.4.6")
2051 (source
2052 (origin
2053 (method url-fetch)
2054 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2055 "archive/" version ".tar.gz"))
2056 (file-name (string-append name "-" version ".tar.gz"))
2057 (sha256
2058 (base32
2059 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2060 (build-system emacs-build-system)
2061 (home-page "https://github.com/skeeto/emacs-http-server")
2062 (synopsis "HTTP server in pure Emacs Lisp")
2063 (description
2064 "This package provides a simple HTTP server written in Emacs Lisp to
2065serve files and directory listings.")
2066 (license license:unlicense)))
2067
6c04acaa
RW
2068(define-public emacs-skewer-mode
2069 (package
2070 (name "emacs-skewer-mode")
2071 (version "1.6.2")
2072 (source
2073 (origin
2074 (method url-fetch)
2075 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2076 version ".tar.gz"))
2077 (file-name (string-append name "-" version ".tar.gz"))
2078 (sha256
2079 (base32
2080 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2081 (build-system emacs-build-system)
2082 (propagated-inputs
2083 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2084 ("emacs-js2-mode" ,emacs-js2-mode)))
46f5ae0b 2085 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6c04acaa
RW
2086 (home-page "https://github.com/skeeto/skewer-mode")
2087 (synopsis "Live web development in Emacs")
2088 (description
2089 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2090a web browser. Expressions are sent on-the-fly from an editing buffer to be
2091evaluated in the browser, just like Emacs does with an inferior Lisp process
2092in Lisp modes.")
2093 (license license:unlicense)))
2094
ce9701fb
RW
2095(define-public emacs-stripe-buffer
2096 (package
2097 (name "emacs-stripe-buffer")
2098 (version "0.2.5")
2099 (source
2100 (origin
2101 (method url-fetch)
2102 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2103 "archive/" version ".tar.gz"))
2104 (file-name (string-append name "-" version ".tar.gz"))
2105 (sha256
2106 (base32
2107 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2108 (build-system emacs-build-system)
2109 (home-page "https://github.com/sabof/stripe-buffer/")
2110 (synopsis "Add stripes to list buffers")
2111 (description
2112 "This Emacs package adds faces to add stripes to list buffers and org
2113tables.")
2114 (license license:gpl2+)))
2115
8d810163
RW
2116(define-public emacs-rich-minority
2117 (package
2118 (name "emacs-rich-minority")
2119 (version "1.0.1")
2120 (source
2121 (origin
2122 (method url-fetch)
2123 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2124 "archive/" version ".tar.gz"))
2125 (file-name (string-append name "-" version ".tar.gz"))
2126 (sha256
2127 (base32
2128 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2129 (build-system emacs-build-system)
2130 (home-page "https://github.com/Malabarba/rich-minority")
2131 (synopsis "Clean-up and beautify the list of minor modes")
2132 (description
2133 "This Emacs package hides and/or highlights minor modes in the
2134mode-line.")
2135 (license license:gpl2+)))
2136
81808194
CB
2137(define-public emacs-rspec
2138 (package
2139 (name "emacs-rspec")
2140 (version "1.11")
2141 (source
2142 (origin
2143 (method url-fetch)
2144 (uri (string-append "https://github.com/pezra/rspec-mode/"
2145 "archive/v" version ".tar.gz"))
2146 (file-name (string-append name "-" version ".tar.gz"))
2147 (sha256
2148 (base32
2149 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2150 (build-system emacs-build-system)
2151 (home-page "https://github.com/pezra/rspec-mode")
2152 (synopsis "Provides a rspec mode for working with RSpec")
2153 (description
2154 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2155verify the spec associated with the current buffer, or entire project, as well
2156as moving between the spec files, and coresponding code files.
2157
2158Also included are keybindings for spec files and Dired buffers, as well as
2159snippets for yasnippet.")
2160 (license license:gpl3+)))
2161
b33f913d
RW
2162(define-public emacs-smart-mode-line
2163 (package
2164 (name "emacs-smart-mode-line")
2165 (version "2.10.1")
2166 (source
2167 (origin
2168 (method url-fetch)
2169 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2170 "archive/" version ".tar.gz"))
2171 (file-name (string-append name "-" version ".tar.gz"))
2172 (sha256
2173 (base32
2174 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2175 (build-system emacs-build-system)
2176 (propagated-inputs
2177 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 2178 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2179 (synopsis "Color-coded smart mode-line")
b33f913d
RW
2180 (description
2181 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2182read from small to large monitors by using colors, a prefix feature, and smart
2183truncation.")
2184 (license license:gpl2+)))
2185
69b498a1
OP
2186(define-public emacs-sr-speedbar
2187 (package
2188 (name "emacs-sr-speedbar")
2189 (version "20140914.2339")
2190 (source
2191 (origin
2192 (method url-fetch)
2193 (uri (string-append
2194 "https://github.com/emacsorphanage/sr-speedbar/archive/"
2195 version ".tar.gz"))
2196 (file-name (string-append name "-" version ".tar.gz"))
2197 (sha256
2198 (base32
2199 "15xwwc6kgvmk4wdhx1j8w6m6ivxvc94028ppgdpa2m51a8c9vjm9"))))
2200 (build-system emacs-build-system)
2201 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2202 (synopsis "Same frame Emacs @code{speedbar}")
2203 (description
2204 "This Emacs package allows you to show @code{M-x speedbar} in the
2205same frame (in an extra window). You can customize the initial width of
2206the speedbar window.")
2207 (license license:gpl3+)))
2208
3bcb304e
RW
2209(define-public emacs-shell-switcher
2210 (package
2211 (name "emacs-shell-switcher")
2212 (version "1.0.1")
2213 (source
2214 (origin
2215 (method url-fetch)
2216 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2217 "/archive/v" version ".tar.gz"))
2218 (file-name (string-append name "-" version ".tar.gz"))
2219 (sha256
2220 (base32
2221 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2222 (build-system emacs-build-system)
2223 (home-page "https://github.com/DamienCassou/shell-switcher")
2224 (synopsis "Provide fast switching between shell buffers")
2225 (description
2226 "This package provides commands to quickly switch between shell buffers.")
2227 (license license:gpl3+)))
2228
48dbeef7
FB
2229(define-public emacs-ob-ipython
2230 (package
2231 (name "emacs-ob-ipython")
2232 (version "20150704.8807064693")
2233 (source (origin
2234 (method git-fetch)
2235 (uri (git-reference
698bd297 2236 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7
FB
2237 (url "https://github.com/gregsexton/ob-ipython.git")))
2238 (sha256
2239 (base32
2240 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2241 (build-system emacs-build-system)
2242 (propagated-inputs
2243 `(("emacs-f" ,emacs-f)))
2244 (home-page "http://www.gregsexton.org")
2245 (synopsis "Org-Babel functions for IPython evaluation")
2246 (description "This package adds support to Org-Babel for evaluating Python
2247source code using IPython.")
2248 (license license:gpl3+)))
6fd66b6c
LC
2249
2250(define-public emacs-debbugs
2251 (package
2252 (name "emacs-debbugs")
b0dd3436 2253 (version "0.14")
6fd66b6c
LC
2254 (source (origin
2255 (method url-fetch)
f32ffa04 2256 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2257 version ".tar"))
2258 (sha256
2259 (base32
b0dd3436 2260 "07wgcvg038l88gxvjr0gjpjhyk743w22x1rqghz3gkmif0g70say"))))
6fd66b6c 2261 (build-system emacs-build-system)
91762db6 2262 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2263 (propagated-inputs
2264 `(("emacs-async" ,emacs-async)))
f32ffa04 2265 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2266 (synopsis "Access the Debbugs bug tracker in Emacs")
2267 (description
2268 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2269Tracker} from within Emacs.
2270
2271For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2272and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2273prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2274@code{M-x debbugs-org} and related commands.
2275
2276A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2277Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2278 (license license:gpl3+)))
3ffe36f5
LC
2279
2280(define-public emacs-deferred
2281 (package
2282 (name "emacs-deferred")
2283 (version "0.3.2")
2284 (home-page "https://github.com/kiwanami/emacs-deferred")
2285 (source (origin
2286 (method git-fetch)
2287 (uri (git-reference
2288 (url home-page)
2289 (commit (string-append "v" version))))
2290 (sha256
2291 (base32
2292 "0059jy01ni5irpgrj9fa81ayd9j25nvmjjm79ms3210ysx4pgqdr"))
2293 (file-name (string-append name "-" version))))
2294 (build-system emacs-build-system)
2295 ;; FIXME: Would need 'el-expectations' to actually run tests.
2296 (synopsis "Simple asynchronous functions for Emacs Lisp")
2297 (description
2298 "The @code{deferred.el} library provides support for asynchronous tasks.
2299The API is almost the same as that of
2300@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2301for asynchronous tasks.")
2302 (license license:gpl3+)))
d001bb5a
LC
2303
2304(define-public butler
2305 (package
2306 (name "emacs-butler")
2307 (version "0.2.4")
2308 (home-page "https://github.com/AshtonKem/Butler")
2309 (source (origin
2310 (method git-fetch)
2311 (uri (git-reference
2312 (url home-page)
2313 (commit version)))
2314 (sha256
2315 (base32
2316 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2317 (file-name (string-append name "-" version))))
2318 (build-system emacs-build-system)
2319 (propagated-inputs
2320 `(("emacs-deferred" ,emacs-deferred)))
2321 (synopsis "Emacs client for Jenkins")
2322 (description
2323 "Butler provides an interface to connect to Jenkins continuous
2324integration servers. Users can specify a list of server in the
2325@code{butler-server-list} variable and then use @code{M-x butler-status} to
2326view the build status of those servers' build jobs, and possibly to trigger
2327build jobs.")
2328 (license license:gpl3+)))
2d1db448 2329
d1dbeddd
RW
2330(define-public emacs-company
2331 (package
2332 (name "emacs-company")
1262a2ab 2333 (version "0.9.3")
d1dbeddd
RW
2334 (source
2335 (origin
2336 (method url-fetch)
2337 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2338 version ".tar.gz"))
2339 (file-name (string-append name "-" version ".tar.gz"))
2340 (sha256
2341 (base32
1262a2ab 2342 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2343 (build-system emacs-build-system)
4e644ab8
AI
2344 (arguments
2345 `(#:phases
2346 (modify-phases %standard-phases
2347 (add-before 'install 'check
2348 (lambda _
2349 ;; The company-files-candidates-normal-root test looks
2350 ;; for the /bin directory, but the build environment has
2351 ;; no /bin directory. Modify the test to look for the
2352 ;; /tmp directory.
2353 (substitute* "test/files-tests.el"
2354 (("/bin/") "/tmp/"))
2355 (zero? (system* "make" "test-batch")))))))
d1dbeddd
RW
2356 (home-page "http://company-mode.github.io/")
2357 (synopsis "Modular text completion framework")
2358 (description
2359 "Company is a modular completion mechanism. Modules for retrieving
2360completion candidates are called back-ends, modules for displaying them are
2361front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2362These are distributed in separate files and can be used individually.")
2363 (license license:gpl3+)))
2364
7c438099
RW
2365(define-public emacs-multiple-cursors
2366 (package
2367 (name "emacs-multiple-cursors")
2368 (version "1.4.0")
2369 (source
2370 (origin
2371 (method url-fetch)
2372 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2373 "archive/" version ".tar.gz"))
2374 (file-name (string-append name "-" version ".tar.gz"))
2375 (sha256
2376 (base32
2377 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2378 (build-system emacs-build-system)
2379 (home-page "https://github.com/magnars/multiple-cursors.el")
2380 (synopsis "Multiple cursors for Emacs")
2381 (description
2382 "This package adds support to Emacs for editing text with multiple
2383simultaneous cursors.")
2384 (license license:gpl3+)))
2385
2d1db448
LC
2386(define-public typo
2387 (package
2388 (name "emacs-typo")
2389 (version "1.1")
2390 (home-page "https://github.com/jorgenschaefer/typoel")
2391 (source (origin
2392 (method git-fetch)
2393 (uri (git-reference
2394 (url home-page)
2395 (commit (string-append "v" version))))
2396 (sha256
2397 (base32
2398 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2399 (file-name (string-append name "-" version))))
2400 (build-system emacs-build-system)
2401 (synopsis "Minor mode for typographic editing")
2402 (description
2403 "This package provides two Emacs modes, @code{typo-mode} and
2404@code{typo-global-mode}. These modes automatically insert Unicode characters
2405for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2406automatically inserts a Unicode opening or closing quotation mark, depending
2407on context.")
2408 (license license:gpl3+)))
e037a09f
FB
2409
2410(define-public emacs-scheme-complete
2411 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2412 (package
2413 (name "emacs-scheme-complete")
2414 (version (string-append "20151223." (string-take commit 8)))
2415 (source
2416 (origin
2417 (file-name (string-append name "-" version))
2418 (method git-fetch)
2419 (uri (git-reference
2420 (url "https://github.com/ashinn/scheme-complete.git")
2421 (commit commit)))
2422 (sha256
2423 (base32
2424 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2425 (patches
fc1adab1 2426 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2427 (build-system emacs-build-system)
2428 (home-page "https://github.com/ashinn/scheme-complete")
2429 (synopsis "Smart tab completion for Scheme in Emacs")
2430 (description
2431 "This file provides a single function, @code{scheme-smart-complete},
2432which you can use for intelligent, context-sensitive completion for any Scheme
2433implementation in Emacs. To use it just load this file and bind that function
2434to a key in your preferred mode.")
2435 (license license:public-domain))))
58a7dc13
FB
2436
2437(define-public emacs-mit-scheme-doc
2438 (package
2439 (name "emacs-mit-scheme-doc")
2440 (version "20140203")
2441 (source
2442 (origin
2443 (modules '((guix build utils)))
2444 (snippet
2445 ;; keep only file of interest
2446 '(begin
2447 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2448 (install-file "6.945-config/mit-scheme-doc.el" ".")
58a7dc13
FB
2449 (delete-file-recursively "6.945-config")))
2450 (file-name (string-append name "-" version ".tar.bz2"))
2451 (method url-fetch)
2452 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2453 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2454 (sha256
2455 (base32
2456 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2457 (build-system emacs-build-system)
2458 (inputs `(("mit-scheme" ,mit-scheme)))
2459 (arguments
2460 `(#:phases
2461 (modify-phases %standard-phases
2462 (add-after 'unpack 'configure-doc
2463 (lambda* (#:key inputs #:allow-other-keys)
2464 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2465 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2466 "mit-scheme-"
2467 ,(package-version mit-scheme))))
2468 (substitute* "mit-scheme-doc.el"
2469 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2470 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2471 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2472 (synopsis "MIT-Scheme documentation lookup for Emacs")
2473 (description
2474 "This package provides a set of Emacs functions to search definitions of
2475identifiers in the MIT-Scheme documentation.")
2476 (license license:gpl2+)))
e5045f30 2477
e5045f30
FB
2478(define-public emacs-constants
2479 (package
2480 (name "emacs-constants")
f99f3f24 2481 (version "2.6")
a9e41d2f 2482 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2483 (source
2484 (origin
37dbfc50 2485 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2486 (method url-fetch)
2487 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2488 "/archive/v" version ".tar.gz"))
e5045f30
FB
2489 (sha256
2490 (base32
f99f3f24 2491 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2492 (build-system emacs-build-system)
e5045f30
FB
2493 (synopsis "Enter definition of constants into an Emacs buffer")
2494 (description
2495 "This package provides functions for inserting the definition of natural
2496constants and units into an Emacs buffer.")
2497 (license license:gpl2+)))
85960693 2498
e203221f
RW
2499(define-public emacs-tagedit
2500 (package
2501 (name "emacs-tagedit")
2502 (version "1.4.0")
2503 (source
2504 (origin
2505 (method url-fetch)
2506 (uri (string-append "https://github.com/magnars/tagedit/"
2507 "archive/" version ".tar.gz"))
2508 (file-name (string-append name "-" version ".tar.gz"))
2509 (sha256
2510 (base32
2511 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2512 (build-system emacs-build-system)
2513 (propagated-inputs
2514 `(("emacs-s" ,emacs-s)
2515 ("emacs-dash" ,emacs-dash)))
2516 (home-page "https://github.com/magnars/tagedit")
2517 (synopsis "Some paredit-like features for html-mode")
2518 (description
2519 "This package provides a collection of paredit-like functions for editing
2520in @code{html-mode}.")
2521 (license license:gpl3+)))
2522
85960693
FB
2523(define-public emacs-slime
2524 (package
2525 (name "emacs-slime")
d2f93e61 2526 (version "2.20")
85960693
FB
2527 (source
2528 (origin
2529 (file-name (string-append name "-" version ".tar.gz"))
2530 (method url-fetch)
2531 (uri (string-append
2532 "https://github.com/slime/slime/archive/v"
2533 version ".tar.gz"))
2534 (sha256
2535 (base32
d2f93e61 2536 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
85960693
FB
2537 (build-system emacs-build-system)
2538 (native-inputs
2539 `(("texinfo" ,texinfo)))
2540 (arguments
e8cefe11
AI
2541 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2542 #:exclude '("^slime-tests.el" "^contrib/test/"
2543 "^contrib/Makefile$" "^contrib/README.md$")
2544 #:phases
85960693
FB
2545 (modify-phases %standard-phases
2546 (add-before 'install 'configure
2547 (lambda* _
2548 (emacs-substitute-variables "slime.el"
2549 ("inferior-lisp-program" "sbcl"))
2550 #t))
2551 (add-before 'install 'install-doc
2552 (lambda* (#:key outputs #:allow-other-keys)
2553 (let* ((out (assoc-ref outputs "out"))
2554 (info-dir (string-append out "/share/info"))
2555 (doc-dir (string-append out "/share/doc/"
2556 ,name "-" ,version))
2557 (doc-files '("doc/slime-refcard.pdf"
2558 "README.md" "NEWS" "PROBLEMS"
2559 "CONTRIBUTING.md")))
2560 (with-directory-excursion "doc"
2561 (substitute* "Makefile"
2562 (("infodir=/usr/local/info")
2563 (string-append "infodir=" info-dir)))
2564 (system* "make" "html/index.html")
2565 (system* "make" "slime.info")
2566 (install-file "slime.info" info-dir)
2567 (copy-recursively "html" (string-append doc-dir "/html")))
2568 (for-each (lambda (f)
2569 (install-file f doc-dir)
2570 (delete-file f))
2571 doc-files)
2572 (delete-file-recursively "doc")
2573 #t))))))
2574 (home-page "https://github.com/slime/slime")
2575 (synopsis "Superior Lisp Interaction Mode for Emacs")
2576 (description
2577 "SLIME extends Emacs with support for interactive programming in
2578Common Lisp. The features are centered around @{slime-mode}, an Emacs
2579minor mode that complements the standard @{lisp-mode}. While lisp-mode
2580supports editing Lisp source files, @{slime-mode} adds support for
2581interacting with a running Common Lisp process for compilation,
2582debugging, documentation lookup, and so on.")
2583 (license license:gpl2+)))
e11d14fe 2584
2585(define-public emacs-popup
2586 (package
2587 (name "emacs-popup")
2588 (version "0.5.3")
2589 (source (origin
2590 (method url-fetch)
2591 (uri (string-append
2592 "https://github.com/auto-complete/popup-el/archive/v"
2593 version ".tar.gz"))
2594 (file-name (string-append name "-" version ".tar.gz"))
2595 (sha256
2596 (base32
2597 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2598 (build-system emacs-build-system)
e11d14fe 2599 (home-page "https://github.com/auto-complete/popup-el")
2600 (synopsis "Visual Popup User Interface for Emacs")
2601 (description
2602 "Popup.el is a visual popup user interface library for Emacs.
2603This provides a basic API and common UI widgets such as popup tooltips
2604and popup menus.")
2605 (license license:gpl3+)))
48766ea8
RW
2606
2607(define-public emacs-god-mode
2608 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2609 (revision "1"))
2610 (package
2611 (name "emacs-god-mode")
2612 (version (string-append "20151005.925."
2613 revision "-" (string-take commit 9)))
2614 (source
2615 (origin
2616 (method git-fetch)
2617 (uri (git-reference
2618 (url "https://github.com/chrisdone/god-mode.git")
2619 (commit commit)))
2620 (file-name (string-append name "-" version "-checkout"))
2621 (sha256
2622 (base32
2623 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2624 (build-system emacs-build-system)
2625 (home-page "https://github.com/chrisdone/god-mode")
2626 (synopsis "Minor mode for entering commands without modifier keys")
2627 (description
2628 "This package provides a global minor mode for entering Emacs commands
2629without modifier keys. It's similar to Vim's separation of commands and
2630insertion mode. When enabled all keys are implicitly prefixed with
2631@samp{C-} (among other helpful shortcuts).")
2632 (license license:gpl3+))))
4670f70a 2633
8fc559dc 2634(define-public emacs-jinja2-mode
2635 (package
2636 (name "emacs-jinja2-mode")
2637 (version "0.2")
2638 (source
2639 (origin
2640 (method url-fetch)
2641 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
2642 "archive/v" version ".tar.gz"))
2643 (file-name (string-append name "-" version ".tar.gz"))
2644 (sha256
2645 (base32
2646 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
2647 (build-system emacs-build-system)
2648 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
2649 (synopsis "Major mode for jinja2")
2650 (description
2651 "Emacs major mode for jinja2 with: syntax highlighting,
2652sgml/html integration, and indentation (working with sgml).")
2653 (license license:gpl3+)))
2654
4670f70a
CM
2655(define-public emacs-rfcview
2656 (package
2657 (name "emacs-rfcview")
2658 (version "0.13")
2659 (home-page "http://www.loveshack.ukfsn.org/emacs")
2660 (source (origin
02736daa 2661 (method url-fetch)
4670f70a
CM
2662 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
2663 (sha256
2664 (base32
2665 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
2666 (build-system emacs-build-system)
4670f70a
CM
2667 (synopsis "Prettify Request for Comments (RFC) documents")
2668 (description "The Internet Engineering Task Force (IETF) and the Internet
2669Society (ISOC) publish various Internet-related protocols and specifications
2670as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
2671documents. RFCs and STDs are published in a simple text form. This package
2672provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
2673read these documents in Emacs. It prettifies the text and adds
2674hyperlinks/menus for easier navigation. It also provides functions for
2675browsing the index of RFC documents and fetching them from remote servers or
2676local directories.")
2677 (license license:gpl3+)))
2678
9e9c71eb
CM
2679(define-public emacs-ffap-rfc-space
2680 (package
2681 (name "emacs-ffap-rfc-space")
2682 (version "12")
2683 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
2684 (source (origin
02736daa 2685 (method url-fetch)
9e9c71eb
CM
2686 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
2687 (sha256
2688 (base32
2689 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
2690 (build-system emacs-build-system)
9e9c71eb
CM
2691 (synopsis "Make ffap recognize an RFC with a space before its number")
2692 (description "The Internet Engineering Task Force (IETF) and the
2693Internet Society (ISOC) publish various Internet-related protocols and
2694specifications as \"Request for Comments\" (RFC) documents. The
2695built-in Emacs module \"ffap\" (Find File at Point) has the ability to
2696recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
2697and load the appropriate RFC from a remote server. However, it fails
2698to recognize a name like \"RFC 1234\". This package enhances ffap so
2699that it correctly finds RFCs even when a space appears before the
2700number.")
2701 (license license:gpl3+)))
9576cc72 2702
db1a4960
RW
2703(define-public emacs-org-bullets
2704 (package
2705 (name "emacs-org-bullets")
2706 (version "0.2.4")
2707 (source
2708 (origin
2709 (method url-fetch)
2710 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
2711 version ".tar.gz"))
2712 (file-name (string-append name "-" version ".tar.gz"))
2713 (sha256
2714 (base32
2715 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
2716 (build-system emacs-build-system)
2717 (home-page "https://github.com/sabof/org-bullets")
2718 (synopsis "Show bullets in org-mode as UTF-8 characters")
2719 (description
2720 "This package provides an Emacs minor mode causing bullets in
2721@code{org-mode} to be rendered as UTF-8 characters.")
2722 (license license:gpl3+)))
b1679379
OP
2723
2724(define-public emacs-org-pomodoro
2725 (package
2726 (name "emacs-org-pomodoro")
2727 (version "2.1.0")
2728 (source
2729 (origin
2730 (method url-fetch)
2731 (uri (string-append
2732 "https://github.com/lolownia/org-pomodoro/archive/"
2733 version ".tar.gz"))
2734 (file-name (string-append name "-" version ".tar.gz"))
2735 (sha256
2736 (base32
2737 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
2738 (build-system emacs-build-system)
2739 (propagated-inputs
2740 `(("emacs-alert" ,emacs-alert)))
2741 (home-page "https://github.com/lolownia/org-pomodoro")
2742 (synopsis "Pomodoro technique for org-mode")
2743 (description "@code{emacs-org-pomodoro} adds very basic support for
2744Pomodoro technique in Emacs org-mode.
2745
2746Run @code{M-x org-pomodoro} for the task at point or select one of the
2747last tasks that you clocked time for. Each clocked-in pomodoro starts
2748a timer of 25 minutes and after each pomodoro a break timer of 5
2749minutes is started automatically. Every 4 breaks a long break is
2750started with 20 minutes. All values are customizable.")
2751 (license license:gpl3+)))
db1a4960 2752
ed8bc028
RJ
2753(define-public emacs-org-trello
2754 (package
2755 (name "emacs-org-trello")
2756 (version "0.7.9")
2757 (source (origin
2758 (method url-fetch)
2759 (uri (string-append
2760 "https://github.com/org-trello/org-trello/archive/"
2761 version ".tar.gz"))
2762 (file-name (string-append name "-" version ".tar.gz"))
2763 (sha256
2764 (base32
2765 "074dka8g673bj1ck5vavbjaij5jyniygdlw51mdds005wd2br9wf"))))
2766 (build-system emacs-build-system)
2767 (propagated-inputs
2768 `(("emacs-deferred" ,emacs-deferred)
2769 ("emacs-request" ,emacs-request)
2770 ("emacs-dash" ,emacs-dash)
2771 ("emacs-s" ,emacs-s)))
2772 (home-page "https://org-trello.github.io")
2773 (synopsis "Emacs minor mode for interacting with Trello")
2774 (description "This package provides an Emacs minor mode to extend
2775@code{org-mode} with Trello abilities. Trello is an online project
2776organizer.")
2777 (license license:gpl3+)))
2778
9576cc72
AP
2779(define-public emacs-zenburn-theme
2780 (package
2781 (name "emacs-zenburn-theme")
07716c68 2782 (version "2.5")
9576cc72
AP
2783 (source (origin
2784 (method url-fetch)
2785 (uri (string-append
2786 "https://github.com/bbatsov/zenburn-emacs/archive/v"
2787 version ".tar.gz"))
2788 (file-name (string-append name "-" version ".tar.gz"))
2789 (sha256
2790 (base32
07716c68 2791 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 2792 (build-system emacs-build-system)
7bf837fd 2793 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
2794 (synopsis "Low contrast color theme for Emacs")
2795 (description
2796 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
2797It is built on top of the custom theme support in Emacs 24 or later.")
2798 (license license:gpl3+)))
2799
012c8b35
RW
2800(define-public emacs-solarized-theme
2801 (package
2802 (name "emacs-solarized-theme")
2803 (version "1.2.2")
2804 (source (origin
2805 (method url-fetch)
2806 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
2807 "archive/v" version ".tar.gz"))
2808 (file-name (string-append name "-" version ".tar.gz"))
2809 (sha256
2810 (base32
2811 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
2812 (build-system emacs-build-system)
2813 (propagated-inputs
090bdb9e 2814 `(("emacs-dash" ,emacs-dash)))
7bf837fd 2815 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
2816 (synopsis "Port of the Solarized theme for Emacs")
2817 (description
2818 "Solarized for Emacs is a port of the Solarized theme for Vim. This
2819package provides a light and a dark variant.")
2820 (license license:gpl3+)))
2821
e7761186
AV
2822(define-public emacs-ahungry-theme
2823 (package
2824 (name "emacs-ahungry-theme")
ceba99ef 2825 (version "1.6.0")
e7761186
AV
2826 (source
2827 (origin (method url-fetch)
f32ffa04 2828 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
2829 version ".tar"))
2830 (sha256
2831 (base32
ceba99ef 2832 "1b0x7g753gn7mym8286b937zmxv50jgdish2h6wc05w1g1lygwsz"))))
e7761186
AV
2833 (build-system emacs-build-system)
2834 (home-page "https://github.com/ahungry/color-theme-ahungry")
2835 (synopsis "Ahungry color theme for Emacs")
2836 (description "Ahungry theme for Emacs provides bright and bold colors.
2837If you load it from a terminal, you will be able to make use of the
2838transparent background. If you load it from a GUI, it will default to a
2839dark background.")
2840 (license license:gpl3+)))
2841
ab966b8f 2842(define-public emacs-2048-game
2843 (package
2844 (name "emacs-2048-game")
2845 (version "20151026.1233")
2846 (source
2847 (origin
2848 (method url-fetch)
2849 (uri (string-append "https://melpa.org/packages/2048-game-"
2850 version ".el"))
2851 (sha256
2852 (base32
2853 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
2854 (build-system emacs-build-system)
2855 (home-page "https://bitbucket.org/zck/2048.el")
2856 (synopsis "Implementation of the game 2048 in Emacs Lisp")
2857 (description
2858 "This program is an implementation of 2048 for Emacs.
2859The goal of this game is to create a tile with value 2048. The size of the
2860board and goal value can be customized.")
2861 (license license:gpl3+)))
2862
4da9beab 2863(define-public emacs-base16-theme
2864 (package
2865 (name "emacs-base16-theme")
2866 (version "2.1")
2867 (source
2868 (origin
2869 (method url-fetch)
2870 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
2871 version ".tar"))
2872 (sha256
2873 (base32
2874 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
2875 (build-system emacs-build-system)
2876 (home-page "https://github.com/belak/base16-emacs")
2877 (synopsis "Base16 color themes for Emacs")
2878 (description
2879 "Base16 provides carefully chosen syntax highlighting and a default set
2880of sixteen colors suitable for a wide range of applications. Base16 is not a
2881single theme but a set of guidelines with numerous implementations.")
2882 (license license:expat)))
2883
5c447e28
AP
2884(define-public emacs-smartparens
2885 (package
2886 (name "emacs-smartparens")
e0d4331a 2887 (version "1.10.1")
5c447e28
AP
2888 (source (origin
2889 (method url-fetch)
2890 (uri (string-append
2891 "https://github.com/Fuco1/smartparens/archive/"
2892 version ".tar.gz"))
2893 (file-name (string-append name "-" version ".tar.gz"))
2894 (sha256
2895 (base32
e0d4331a 2896 "1nwsi6fbbxjq3r22r6knmx71la3g0lmwfb95i9q4k138gn0m2l3i"))))
5c447e28
AP
2897 (build-system emacs-build-system)
2898 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
2899 (home-page "https://github.com/Fuco1/smartparens")
2900 (synopsis "Paredit-like insertion, wrapping and navigation with user
2901defined pairs")
2902 (description
2903 "Smartparens is a minor mode for Emacs that deals with parens pairs
2904and tries to be smart about it. It started as a unification effort to
2905combine functionality of several existing packages in a single,
2906compatible and extensible way to deal with parentheses, delimiters, tags
2907and the like. Some of these packages include autopair, textmate,
2908wrap-region, electric-pair-mode, paredit and others. With the basic
2909features found in other packages it also brings many improvements as
2910well as completely new features.")
2911 (license license:gpl3+)))
8eeb301d 2912
425d66f7
OP
2913(define-public emacs-highlight-symbol
2914 (package
2915 (name "emacs-highlight-symbol")
2916 (version "1.3")
2917 (source (origin
2918 (method url-fetch)
2919 (uri (string-append
2920 "https://github.com/nschum/highlight-symbol.el/archive/"
2921 version ".tar.gz"))
2922 (file-name (string-append name "-" version ".tar.gz"))
2923 (sha256
2924 (base32
2925 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
2926 (build-system emacs-build-system)
2927 (home-page "https://nschum.de/src/emacs/highlight-symbol")
2928 (synopsis "Automatic and manual symbol highlighting for Emacs")
2929 (description
2930 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
2931point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
2932the symbol at point highlighted.
2933
2934The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
2935@code{highlight-symbol-next-in-defun} and
2936@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
2937of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
2938bindings @code{M-p} and @code{M-p} for navigation. When
2939@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
2940regardless of @code{highlight-symbol-idle-delay}.
2941
2942@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
2943 (license license:gpl2+)))
2944
8f82641a
RJ
2945(define-public emacs-hl-todo
2946 (package
2947 (name "emacs-hl-todo")
4e0d9fce 2948 (version "1.7.4")
8f82641a
RJ
2949 (source (origin
2950 (method url-fetch)
2951 (uri (string-append
2952 "https://raw.githubusercontent.com/tarsius/hl-todo/"
2953 version "/hl-todo.el"))
0e7c4089 2954 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
2955 (sha256
2956 (base32
4e0d9fce 2957 "016ivl4s0ysrm1xbfi86j5xcs759fcb0mkspxw81x8mpi3yb46ya"))))
8f82641a
RJ
2958 (build-system emacs-build-system)
2959 (home-page "https://github.com/tarsius/hl-todo")
2960 (synopsis "Emacs mode to highlight TODO and similar keywords")
2961 (description
2962 "This package provides an Emacs mode to highlight TODO and similar
2963keywords in comments and strings. This package also provides commands for
2964moving to the next or previous keyword and to invoke @code{occur} with a
2965regexp that matches all known keywords.")
2966 (license license:gpl3+)))
2967
480f7350
RW
2968(define-public emacs-perspective
2969 (package
2970 (name "emacs-perspective")
2971 (version "1.12")
2972 (source
2973 (origin
2974 (method url-fetch)
2975 (uri (string-append "https://github.com/nex3/perspective-el/"
2976 "archive/" version ".tar.gz"))
2977 (file-name (string-append name "-" version ".tar.gz"))
2978 (sha256
2979 (base32
2980 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
2981 (build-system emacs-build-system)
7bf837fd 2982 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
2983 (synopsis "Switch between named \"perspectives\"")
2984 (description
2985 "This package provides tagged workspaces in Emacs, similar to workspaces in
2986windows managers such as Awesome and XMonad. @code{perspective.el} provides
2987multiple workspaces (or \"perspectives\") for each Emacs frame. Each
2988perspective is composed of a window configuration and a set of buffers.
2989Switching to a perspective activates its window configuration, and when in a
2990perspective only its buffers are available by default.")
2991 ;; This package is released under the same license as Emacs (GPLv3+) or
2992 ;; the Expat license.
2993 (license license:gpl3+)))
2994
36e5d103
RJ
2995(define-public emacs-request
2996 (package
2997 (name "emacs-request")
2998 (version "0.2.0")
2999 (source (origin
3000 (method url-fetch)
3001 (uri (string-append
3002 "https://github.com/tkf/emacs-request/archive/v"
3003 version ".tar.gz"))
3004 (file-name (string-append name "-" version ".tar.gz"))
3005 (sha256
3006 (base32 "0sll9g9x15jxrdr58pdxx4iz74rnjd43q521iqm890i6hmkrgwap"))))
3007 (build-system emacs-build-system)
3008 (home-page "https://github.com/tkf/emacs-request")
3009 (synopsis "Package for speaking HTTP in Emacs Lisp")
3010 (description "This package provides a HTTP request library with multiple
3011backends. It supports url.el which is shipped with Emacs and the curl command
3012line program.")
3013 (license license:gpl3+)))
3014
f1b61e26 3015(define-public emacs-rudel
3016 (package
3017 (name "emacs-rudel")
3018 (version "0.3.1")
3019 (source
3020 (origin
3021 (method url-fetch)
3022 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3023 version ".tar"))
3024 (sha256
3025 (base32
3026 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3027 (build-system emacs-build-system)
3028 (home-page "http://rudel.sourceforge.net/")
3029 (synopsis "Collaborative editing framework")
3030 (description
3031 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3032is to share buffers with other users in order to edit the contents of those
3033buffers collaboratively. Rudel supports multiple backends to enable
3034communication with other collaborative editors using different protocols,
3035though currently Obby (for use with the Gobby editor) is the only
3036fully-functional one.")
3037 (license license:gpl3+)))
3038
79b3d3ea
RW
3039(define-public emacs-hydra
3040 (package
3041 (name "emacs-hydra")
86d959bd 3042 (version "0.13.6")
79b3d3ea
RW
3043 (source
3044 (origin
3045 (method url-fetch)
3046 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3047 version ".tar.gz"))
3048 (file-name (string-append name "-" version ".tar.gz"))
3049 (sha256
3050 (base32
86d959bd 3051 "0575vh858gm35p57s49dy6pc2ij46dmj9zaa4z0cp98sqra3j3l0"))))
79b3d3ea
RW
3052 (build-system emacs-build-system)
3053 (home-page "https://github.com/abo-abo/hydra")
3054 (synopsis "Make Emacs bindings that stick around")
3055 (description
3056 "This package can be used to tie related commands into a family of short
3057bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3058the prefixed binding), all the heads can be called in succession with only a
3059short extension. Any binding that isn't the Hydra's head vanquishes the
3060Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3061serve its original purpose, calling the command assigned to it. This makes
3062the Hydra very seamless; it's like a minor mode that disables itself
3063automatically.")
3064 (license license:gpl3+)))
3065
12db29ba
RW
3066(define-public emacs-ivy
3067 (package
3068 (name "emacs-ivy")
352074d5 3069 (version "0.9.1")
12db29ba
RW
3070 (source
3071 (origin
3072 (method url-fetch)
3073 (uri (string-append "https://github.com/abo-abo/swiper/archive/"
3074 version ".tar.gz"))
3075 (file-name (string-append name "-" version ".tar.gz"))
3076 (sha256
3077 (base32
352074d5 3078 "1abi1rvjarwfxxylpx8qlhck0kbavnj0nmlaaizk9q5zr02xfx1j"))))
12db29ba
RW
3079 (build-system emacs-build-system)
3080 (propagated-inputs
3081 `(("emacs-hydra" ,emacs-hydra)))
3082 (home-page "http://oremacs.com/swiper/")
3083 (synopsis "Incremental vertical completion for Emacs")
3084 (description
3085 "This package provides @code{ivy-read} as an alternative to
3086@code{completing-read} and similar functions. No attempt is made to determine
3087the best candidate. Instead, the user can navigate candidates with
3088@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3089splitting the input text by spaces and re-building it into a regular
3090expression.")
3091 (license license:gpl3+)))
3092
5edc24ec
RW
3093(define-public emacs-avy
3094 (package
3095 (name "emacs-avy")
3096 (version "0.4.0")
3097 (source
3098 (origin
3099 (method url-fetch)
3100 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3101 version ".tar.gz"))
3102 (file-name (string-append name "-" version ".tar.gz"))
3103 (sha256
3104 (base32
3105 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3106 (build-system emacs-build-system)
3107 (home-page "https://github.com/abo-abo/avy")
3108 (synopsis "Tree-based completion for Emacs")
3109 (description
3110 "This package provides a generic completion method based on building a
3111balanced decision tree with each candidate being a leaf. To traverse the tree
3112from the root to a desired leaf, typically a sequence of @code{read-key} can
3113be used.
3114
3115In order for @code{read-key} to make sense, the tree needs to be visualized
3116appropriately, with a character at each branch node. So this completion
3117method works only for things that you can see on your screen, all at once,
3118such as the positions of characters, words, line beginnings, links, or
3119windows.")
3120 (license license:gpl3+)))
3121
93dba17c
RW
3122(define-public emacs-ace-window
3123 (package
3124 (name "emacs-ace-window")
3125 (version "0.9.0")
3126 (source
3127 (origin
3128 (method url-fetch)
3129 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3130 version ".tar.gz"))
3131 (file-name (string-append name "-" version ".tar.gz"))
3132 (sha256
3133 (base32
3134 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3135 (build-system emacs-build-system)
3136 (propagated-inputs
3137 `(("emacs-avy" ,emacs-avy)))
3138 (home-page "https://github.com/abo-abo/ace-window")
3139 (synopsis "Quickly switch windows in Emacs")
3140 (description
3141 "@code{ace-window} is meant to replace @code{other-window}.
3142In fact, when there are only two windows present, @code{other-window} is
3143called. If there are more, each window will have its first character
3144highlighted. Pressing that character will switch to that window.")
3145 (license license:gpl3+)))
3146
e1918ce4
RW
3147(define-public emacs-iedit
3148 (package
3149 (name "emacs-iedit")
f9f77a9e 3150 (version "0.9.9.9")
e1918ce4
RW
3151 (source
3152 (origin
3153 (method url-fetch)
3154 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3155 version ".tar.gz"))
3156 (file-name (string-append name "-" version ".tar.gz"))
3157 (sha256
3158 (base32
f9f77a9e 3159 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
3160 (build-system emacs-build-system)
3161 (home-page "http://www.emacswiki.org/emacs/Iedit")
3162 (synopsis "Edit multiple regions in the same way simultaneously")
3163 (description
3164 "This package is an Emacs minor mode and allows you to edit one
3165occurrence of some text in a buffer (possibly narrowed) or region, and
3166simultaneously have other occurrences edited in the same way.
3167
3168You can also use Iedit mode as a quick way to temporarily show only the buffer
3169lines that match the current text being edited. This gives you the effect of
3170a temporary @code{keep-lines} or @code{occur}.")
3171 (license license:gpl3+)))
3172
a5338dd4
RW
3173(define-public emacs-lispy
3174 (package
3175 (name "emacs-lispy")
3176 (version "0.26.0")
3177 (source
3178 (origin
3179 (method url-fetch)
3180 (uri (string-append "https://github.com/abo-abo/lispy/archive/"
3181 version ".tar.gz"))
3182 (file-name (string-append name "-" version ".tar.gz"))
3183 (sha256
3184 (base32
3185 "15gig95cvamw5zlw99cxggd27c18b9scznjj97gvjn2zbljcaqzl"))))
3186 (build-system emacs-build-system)
3187 (propagated-inputs
3188 `(("emacs-ace-window" ,emacs-ace-window)
3189 ("emacs-iedit" ,emacs-iedit)
3190 ("emacs-ivy" ,emacs-ivy)
3191 ("emacs-hydra" ,emacs-hydra)))
3192 (home-page "https://github.com/abo-abo/lispy")
3193 (synopsis "Modal S-expression editing")
3194 (description
3195 "Due to the structure of Lisp syntax it's very rare for the programmer to
3196want to insert characters right before \"(\" or right after \")\". Thus
3197unprefixed printable characters can be used to call commands when the point is
3198at one of these special locations. Lispy provides unprefixed keybindings for
3199S-expression editing when point is at the beginning or end of an
3200S-expression.")
3201 (license license:gpl3+)))
3202
8eeb301d
AP
3203(define-public emacs-clojure-mode
3204 (package
3205 (name "emacs-clojure-mode")
f8d69be0 3206 (version "5.4.0")
8eeb301d
AP
3207 (source (origin
3208 (method url-fetch)
3209 (uri (string-append
3210 "https://github.com/clojure-emacs/clojure-mode/archive/"
3211 version ".tar.gz"))
3212 (file-name (string-append name "-" version ".tar.gz"))
3213 (sha256
3214 (base32
f8d69be0 3215 "117mvjqh4nm8mvmwmmvy4qmkdg23ldlzk08y91g8b8ac8kxwqg81"))))
8eeb301d 3216 (build-system emacs-build-system)
92d9cfef
AI
3217 (native-inputs
3218 `(("emacs-dash" ,emacs-dash)
3219 ("emacs-s" ,emacs-s)
3220 ("ert-runner" ,ert-runner)))
3221 (arguments
3222 `(#:phases
3223 (modify-phases %standard-phases
3224 (add-after 'install 'check
3225 (lambda _
3226 (zero? (system* "ert-runner")))))))
7bf837fd 3227 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
3228 (synopsis "Major mode for Clojure code")
3229 (description
3230 "This Emacs package provides font-lock, indentation, navigation and basic
3231refactoring for the @uref{http://clojure.org, Clojure programming language}.
3232It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3233 (license license:gpl3+)))
d345491a
AP
3234
3235(define-public emacs-epl
3236 (package
3237 (name "emacs-epl")
3238 (version "0.8")
3239 (source (origin
3240 (method url-fetch)
3241 (uri (string-append
3242 "https://github.com/cask/epl/archive/"
3243 version ".tar.gz"))
3244 (sha256
3245 (base32
3246 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3247 (build-system emacs-build-system)
7bf837fd 3248 (home-page "https://github.com/cask/epl")
d345491a
AP
3249 (synopsis "Emacs Package Library")
3250 (description
3251 "A package management library for Emacs, based on @code{package.el}.
3252
3253The purpose of this library is to wrap all the quirks and hassle of
3254@code{package.el} into a sane API.")
3255 (license license:gpl3+)))
ad6c4bc4
AP
3256
3257(define-public emacs-queue
3258 (package
3259 (name "emacs-queue")
5f51f39e 3260 (version "0.2")
ad6c4bc4 3261 (source (origin
02736daa 3262 (method url-fetch)
f32ffa04 3263 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
3264 version ".el"))
3265 (sha256
3266 (base32
5f51f39e 3267 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
ad6c4bc4
AP
3268 (build-system emacs-build-system)
3269 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3270 (synopsis "Queue data structure for Emacs")
3271 (description
3272 "This Emacs library provides queue data structure. These queues can be
3273used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3274stack, i.e. elements can be added to the front or back of the queue, and can
3275be removed from the front. This type of data structure is sometimes called an
3276\"output-restricted deque\".")
3277 (license license:gpl3+)))
32abfcf4
AP
3278
3279(define-public emacs-pkg-info
3280 (package
3281 (name "emacs-pkg-info")
3282 (version "0.6")
3283 (source (origin
3284 (method url-fetch)
3285 (uri (string-append
3286 "https://github.com/lunaryorn/pkg-info.el/archive/"
3287 version ".tar.gz"))
3288 (file-name (string-append name "-" version ".tar.gz"))
3289 (sha256
3290 (base32
3291 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3292 (build-system emacs-build-system)
3293 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3294 (home-page "https://github.com/lunaryorn/pkg-info.el")
3295 (synopsis "Information about Emacs packages")
3296 (description
3297 "This library extracts information from the installed Emacs packages.")
3298 (license license:gpl3+)))
565bccc5
AP
3299
3300(define-public emacs-spinner
3301 (package
3302 (name "emacs-spinner")
cd4d96b8 3303 (version "1.7.3")
565bccc5 3304 (source (origin
02736daa 3305 (method url-fetch)
f32ffa04 3306 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
3307 version ".el"))
3308 (sha256
3309 (base32
cd4d96b8 3310 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
3311 (build-system emacs-build-system)
3312 (home-page "https://github.com/Malabarba/spinner.el")
3313 (synopsis "Emacs mode-line spinner for operations in progress")
3314 (description
3315 "This Emacs package adds spinners and progress-bars to the mode-line for
3316ongoing operations.")
3317 (license license:gpl3+)))
62a45cb6 3318
fd2d17cd
RJ
3319(define-public emacs-sparql-mode
3320 (package
3321 (name "emacs-sparql-mode")
3322 (version "2.0.1")
3323 (source (origin
3324 (method url-fetch)
3325 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3326 "v" version ".tar.gz"))
3327 (file-name (string-append name "-" version ".tar.gz"))
3328 (sha256
3329 (base32
3330 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3331 (build-system emacs-build-system)
3332 (home-page "https://github.com/ljos/sparql-mode")
3333 (synopsis "SPARQL mode for Emacs")
3334 (description "This package provides a major mode for Emacs that provides
3335syntax highlighting for SPARQL. It also provides a way to execute queries
3336against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3337possible to query other endpoints like DBPedia.")
3338 (license license:gpl3+)))
3339
6ede256f
DT
3340(define-public emacs-better-defaults
3341 (package
3342 (name "emacs-better-defaults")
3343 (version "0.1.3")
3344 (source
3345 (origin
3346 (method url-fetch)
3347 (uri (string-append "https://github.com/technomancy/better-defaults"
3348 "/archive/" version ".tar.gz"))
13384842 3349 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
3350 (sha256
3351 (base32
3352 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3353 (build-system emacs-build-system)
3354 (home-page "https://github.com/technomancy/better-defaults")
3355 (synopsis "Better defaults for Emacs")
3356 (description
3357 "Better defaults attempts to address the most obvious deficiencies of the
3358Emacs default configuration in uncontroversial ways that nearly everyone can
3359agree upon.")
3360 (license license:gpl3+)))
c5c08f1b 3361
7034791a
RJ
3362(define-public emacs-eprime
3363 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3364 (package
3365 (name "emacs-eprime")
3366 (version (string-append "20140513-" (string-take commit 7)))
3367 (source (origin
3368 (method url-fetch)
3369 (uri (string-append "https://raw.githubusercontent.com"
3370 "/AndrewHynes/eprime-mode/"
3371 commit "/eprime-mode.el"))
3372 (file-name (string-append "eprime-" version ".el"))
3373 (sha256
3374 (base32
3375 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3376 (build-system emacs-build-system)
3377 (home-page "https://github.com/AndrewHynes/eprime-mode")
3378 (synopsis "E-prime checking mode for Emacs")
3379 (description "This package provides an E-prime checking mode for Emacs
3380that highlights non-conforming text. The subset of the English language called
3381E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3382 (license license:gpl3+))))
3383
db29e598
KM
3384(define-public emacs-julia-mode
3385 ;; XXX: Upstream version remained stuck at 0.3. See
3386 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
3387 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
3388 (revision "1"))
3389 (package
3390 (name "emacs-julia-mode")
3391 (version (string-append "0.3-" revision "." (string-take commit 8)))
3392 (source
3393 (origin
3394 (method git-fetch)
3395 (uri (git-reference
3396 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
3397 (commit commit)))
3398 (file-name (string-append name "-" version "-checkout"))
3399 (sha256
3400 (base32
3401 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
3402 (build-system emacs-build-system)
3403 (arguments
3404 `(#:phases
3405 (modify-phases %standard-phases
3406 (add-before 'install 'check
3407 (lambda _
3408 (zero? (system* "emacs" "-batch"
3409 "-l" "julia-mode.el"
3410 "-l" "julia-mode-tests.el"
3411 "-f" "ert-run-tests-batch-and-exit")))))))
3412 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
3413 (synopsis "Major mode for Julia")
3414 (description "This Emacs package provides a mode for the Julia
3415programming language.")
3416 (license license:expat))))
3417
41184943
RJ
3418(define-public emacs-ess
3419 (package
3420 (name "emacs-ess")
a209907e 3421 (version "16.10")
41184943
RJ
3422 (source (origin
3423 (method url-fetch)
3424 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
3425 version ".tgz"))
3426 (sha256
3427 (base32
a209907e
KM
3428 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
3429 (modules '((guix build utils)))
3430 (snippet
3431 '(begin
3432 ;; Stop ESS from trying to bundle an external julia-mode.el.
3433 (substitute* "lisp/Makefile"
3434 (("^\tjulia-mode.elc\\\\\n") "")
3435 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
3436 "all: $(ELC) ess-custom.el"))))))
41184943
RJ
3437 (build-system gnu-build-system)
3438 (arguments
eaff063a 3439 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
a209907e 3440 `(#:make-flags (list (string-append "PREFIX=" %output)
eaff063a
RJ
3441 (string-append "ETCDIR=" %output "/"
3442 ,base-directory "/etc")
3443 (string-append "LISPDIR=" %output "/"
3444 ,base-directory))
3445 #:phases
3446 (modify-phases %standard-phases
3447 (delete 'configure)
3448 (add-before 'build 'more-shebang-patching
3449 (lambda* (#:key inputs #:allow-other-keys)
3450 (substitute* "Makeconf"
3451 (("SHELL = /bin/sh")
3452 (string-append "SHELL = " (which "sh"))))))
3453 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
3454 ;; them in HOME, so it needs to be writeable.
3455 (add-before 'build 'set-HOME
a209907e
KM
3456 (lambda _ (setenv "HOME" "/tmp") #t))
3457 (replace 'check
3458 (lambda _
3459 (zero? (system* "make" "test"))))))))
41184943
RJ
3460 (inputs
3461 `(("emacs" ,emacs-minimal)
2d7c4ae3 3462 ("r-minimal" ,r-minimal)))
41184943
RJ
3463 (native-inputs
3464 `(("perl" ,perl)
3465 ("texinfo" ,texinfo)
63096366
RW
3466 ("texlive" ,(texlive-union (list texlive-latex-natbib
3467 texlive-latex-seminar
3468 texlive-latex-hyperref
3469 texlive-tex-texinfo)))))
41184943
RJ
3470 (home-page "http://ess.r-project.org/")
3471 (synopsis "Emacs mode for statistical analysis programs")
3472 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
3473Emacs. It is designed to support editing of scripts and interaction with
3474various statistical analysis programs such as R and OpenBUGS.")
3475 (license license:gpl2+)))
3476
c5c08f1b
DT
3477(define-public emacs-smex
3478 (package
3479 (name "emacs-smex")
3480 (version "3.0")
3481 (source (origin
3482 (method url-fetch)
3483 (uri (string-append "https://raw.githubusercontent.com"
3484 "/nonsequitur/smex/" version "/smex.el"))
3485 (file-name (string-append "smex-" version ".el"))
3486 (sha256
3487 (base32
3488 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
3489 (build-system emacs-build-system)
7bf837fd 3490 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
3491 (synopsis "M-x interface with Ido-style fuzzy matching")
3492 (description
3493 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
3494convenient interface to your recently and most frequently used commands. And
3495to all the other commands, too.")
3496 (license license:gpl3+)))
3e5be84b
DT
3497
3498(define-public emacs-js2-mode
3499 (package
3500 (name "emacs-js2-mode")
3501 (version "20150909")
3502 (source (origin
3503 (method url-fetch)
3504 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
3505 version ".tar.gz"))
3506 (file-name (string-append name "-" version ".tar.gz"))
3507 (sha256
3508 (base32
3509 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
3510 (build-system emacs-build-system)
3511 (home-page "https://github.com/mooz/js2-mode/")
3512 (synopsis "Improved JavaScript editing mode for Emacs")
3513 (description
3514 "Js2-mode provides a JavaScript major mode for Emacs that is more
3515advanced than the built-in javascript-mode. Features include accurate syntax
3516highlighting using a recursive-descent parser, on-the-fly reporting of syntax
3517errors and strict-mode warnings, smart line-wrapping within comments and
3518strings, and code folding.")
3519 (license license:gpl3+)))
b78b6e80
DT
3520
3521(define-public emacs-markdown-mode
3522 (package
3523 (name "emacs-markdown-mode")
2175a427 3524 (version "2.3")
b78b6e80
DT
3525 (source (origin
3526 (method url-fetch)
3527 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
3528 "/markdown-mode/v" version
3529 "/markdown-mode.el"))
3530 (file-name (string-append "markdown-mode-" version ".el"))
3531 (sha256
3532 (base32
2175a427 3533 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
b78b6e80
DT
3534 (build-system emacs-build-system)
3535 (home-page "http://jblevins.org/projects/markdown-mode/")
3536 (synopsis "Emacs Major mode for Markdown files")
3537 (description
3538 "Markdown-mode is a major mode for editing Markdown-formatted text files
3539in Emacs.")
3540 (license license:gpl3+)))
a2670dde
DT
3541
3542(define-public emacs-projectile
3543 (package
3544 (name "emacs-projectile")
6461c44c 3545 (version "0.14.0")
a2670dde
DT
3546 (source (origin
3547 (method url-fetch)
3548 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
3549 "/projectile/v" version "/projectile.el"))
3550 (file-name (string-append "projectile-" version ".el"))
3551 (sha256
3552 (base32
6461c44c 3553 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
3554 (build-system emacs-build-system)
3555 (propagated-inputs
3556 `(("emacs-dash" ,emacs-dash)
3557 ("emacs-pkg-info" ,emacs-pkg-info)))
3558 (home-page "https://github.com/bbatsov/projectile")
3559 (synopsis "Manage and navigate projects in Emacs easily")
3560 (description
3561 "This library provides easy project management and navigation. The
3562concept of a project is pretty basic - just a folder containing special file.
3563Currently git, mercurial and bazaar repos are considered projects by default.
3564If you want to mark a folder manually as a project just create an empty
3565.projectile file in it.")
3566 (license license:gpl3+)))
4aea1e01
DT
3567
3568(define-public emacs-elfeed
3569 (package
3570 (name "emacs-elfeed")
e831283d 3571 (version "2.1.1")
4aea1e01
DT
3572 (source (origin
3573 (method url-fetch)
3574 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
3575 version ".tar.gz"))
3576 (file-name (string-append name "-" version ".tar.gz"))
3577 (sha256
3578 (base32
e831283d 3579 "1wlwc8fbkg6w1c8p856ikc20xm72f51clnzz419p0g8cavy27npw"))))
4aea1e01 3580 (build-system emacs-build-system)
568f977f
AI
3581 (arguments
3582 `(#:phases
3583 (modify-phases %standard-phases
3584 (add-before 'install 'check
3585 (lambda _
3586 (zero? (system* "make" "test")))))))
4aea1e01
DT
3587 (home-page "https://github.com/skeeto/elfeed")
3588 (synopsis "Atom/RSS feed reader for Emacs")
3589 (description
3590 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
3591and RSS, with a user interface inspired by notmuch.")
3592 (license license:gpl3+)))
c86f0207
DT
3593
3594(define-public emacs-rainbow-delimiters
3595 (package
3596 (name "emacs-rainbow-delimiters")
3597 (version "2.1.3")
3598 (source (origin
3599 (method url-fetch)
3600 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3601 "/rainbow-delimiters/" version
3602 "/rainbow-delimiters.el"))
3603 (file-name (string-append "rainbow-delimiters-" version ".el"))
3604 (sha256
3605 (base32
3606 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
3607 (build-system emacs-build-system)
3608 (home-page "https://github.com/Fanael/rainbow-delimiters")
3609 (synopsis "Highlight brackets according to their depth")
3610 (description
3611 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
3612highlights parentheses, brackets, and braces according to their depth. Each
3613successive level is highlighted in a different color, making it easy to spot
3614matching delimiters, orient yourself in the code, and tell which statements
3615are at a given level.")
3616 (license license:gpl3+)))
65b49ae7 3617
d95e8e01
RJ
3618(define-public emacs-rainbow-identifiers
3619 (package
3620 (name "emacs-rainbow-identifiers")
3621 (version "0.2.2")
3622 (source (origin
3623 (method url-fetch)
3624 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3625 "/rainbow-identifiers/" version
3626 "/rainbow-identifiers.el"))
3627 (file-name (string-append "rainbow-identifiers-" version ".el"))
3628 (sha256
3629 (base32
3630 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
3631 (build-system emacs-build-system)
3632 (home-page "https://github.com/Fanael/rainbow-identifiers")
3633 (synopsis "Highlight identifiers in source code")
3634 (description
3635 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
3636identifiers based on their names. Each identifier gets a color based on a hash
3637of its name.")
3638 (license license:bsd-2)))
3639
9619a95e
RJ
3640(define-public emacs-rainbow-mode
3641 (package
3642 (name "emacs-rainbow-mode")
61b31ac4 3643 (version "0.13")
9619a95e
RJ
3644 (source (origin
3645 (method url-fetch)
3646 (uri (string-append
3647 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
3648 (sha256
3649 (base32
61b31ac4 3650 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
9619a95e
RJ
3651 (build-system emacs-build-system)
3652 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
3653 (synopsis "Colorize color names in buffers")
3654 (description
3655 "This minor mode sets background color to strings that match color
3656names, e.g. #0000ff is displayed in white with a blue background.")
3657 (license license:gpl3+)))
3658
fede3a90
RW
3659(define-public emacs-visual-fill-column
3660 (package
3661 (name "emacs-visual-fill-column")
32e23aba 3662 (version "1.11")
fede3a90
RW
3663 (source (origin
3664 (method url-fetch)
3665 (uri (string-append "https://codeload.github.com/joostkremers/"
3666 "visual-fill-column/tar.gz/" version))
3667 (file-name (string-append name "-" version ".tar.gz"))
3668 (sha256
3669 (base32
32e23aba 3670 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
fede3a90
RW
3671 (build-system emacs-build-system)
3672 (home-page "https://github.com/joostkremers/visual-fill-column")
3673 (synopsis "Fill-column for visual-line-mode")
3674 (description
3675 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
3676the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
3677wrapping lines at the window edge, which is the standard behaviour of
3678@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
3679@code{fill-column} is too large for the window, the text is wrapped at the
3680window edge.")
3681 (license license:gpl3+)))
3682
0ef1c223
KM
3683(define-public emacs-writeroom
3684 (package
3685 (name "emacs-writeroom")
3686 (version "3.7")
3687 (source (origin
3688 (method url-fetch)
3689 (uri (string-append
3690 "https://github.com/joostkremers/writeroom-mode/archive/"
3691 version ".tar.gz"))
3692 (file-name (string-append name "-" version ".tar.gz"))
3693 (sha256
3694 (base32
3695 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
3696 (build-system emacs-build-system)
3697 (propagated-inputs
3698 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
3699 (home-page "https://github.com/joostkremers/writeroom-mode")
3700 (synopsis "Distraction-free writing for Emacs")
3701 (description
3702 "This package defines a minor mode for distraction-free writing. Some of
3703the default effects include entering fullscreen, deleting other windows of the
3704current frame, disabling the mode line, and adding margins to the buffer that
3705restrict the text width to 80 characters.")
3706 (license license:bsd-3)))
3707
65b49ae7
DT
3708(define-public emacs-ido-completing-read+
3709 (package
3710 (name "emacs-ido-completing-read+")
3711 (version "3.12")
3712 (source (origin
3713 (method url-fetch)
3714 (uri (string-append "https://raw.githubusercontent.com"
3715 "/DarwinAwardWinner/ido-ubiquitous/v"
3716 version "/ido-completing-read+.el"))
3717 (file-name (string-append "ido-completing-read+-" version ".el"))
3718 (sha256
3719 (base32
3720 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
3721 (build-system emacs-build-system)
3722 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3723 (synopsis "Replacement for completing-read using ido")
3724 (description
3725 "The ido-completing-read+ function is a wrapper for ido-completing-read.
3726Importantly, it detects edge cases that ordinary ido cannot handle and either
3727adjusts them so ido can handle them, or else simply falls back to the standard
3728Emacs completion function instead.")
3729 (license license:gpl3+)))
529fe992
DT
3730
3731(define-public emacs-ido-ubiquitous
3732 (package
3733 (name "emacs-ido-ubiquitous")
3734 (version "3.12")
3735 (source (origin
3736 (method url-fetch)
3737 (uri (string-append "https://raw.githubusercontent.com"
3738 "/DarwinAwardWinner/ido-ubiquitous/v"
3739 version "/ido-ubiquitous.el"))
3740 (file-name (string-append "ido-ubiquitous-" version ".el"))
3741 (sha256
3742 (base32
3743 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
3744 (build-system emacs-build-system)
3745 (propagated-inputs
3746 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
3747 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3748 (synopsis "Use ido (nearly) everywhere")
3749 (description
3750 "Ido-ubiquitous enables ido-style completion for almost every function
3751that uses the standard completion function completing-read.")
3752 (license license:gpl3+)))
63de1231
DT
3753
3754(define-public emacs-yaml-mode
3755 (package
3756 (name "emacs-yaml-mode")
847284e1 3757 (version "0.0.13")
63de1231
DT
3758 (source (origin
3759 (method url-fetch)
3760 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
3761 "/yaml-mode/v" version "/yaml-mode.el"))
3762 (file-name (string-append "yaml-mode-" version ".el"))
3763 (sha256
3764 (base32
847284e1 3765 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
3766 (build-system emacs-build-system)
3767 (home-page "https://github.com/yoshiki/yaml-mode")
3768 (synopsis "Major mode for editing YAML files")
3769 (description
3770 "Yaml-mode is an Emacs major mode for editing files in the YAML data
3771serialization format. It was initially developed by Yoshiki Kurihara and many
3772features were added by Marshall Vandegrift. As YAML and Python share the fact
3773that indentation determines structure, this mode provides indentation and
3774indentation command behavior very similar to that of python-mode.")
3775 (license license:gpl3+)))
7529c883
DT
3776
3777(define-public emacs-web-mode
3778 (package
3779 (name "emacs-web-mode")
3780 (version "14")
3781 (source (origin
3782 (method url-fetch)
3783 (uri (string-append "https://raw.githubusercontent.com/fxbois"
3784 "/web-mode/v" version "/web-mode.el"))
3785 (file-name (string-append "web-mode-" version ".el"))
3786 (sha256
3787 (base32
3788 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
3789 (build-system emacs-build-system)
3790 (synopsis "Major mode for editing web templates")
3791 (description "Web-mode is an Emacs major mode for editing web templates
3792aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
3793client/server side engines). Web-mode is compatible with many template
3794engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
3795Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
3796Dust.js, React/JSX, Angularjs, ejs, etc.")
3797 (home-page "http://web-mode.org/")
3798 (license license:gpl3+)))
ae609001 3799
814da59f
CB
3800(define-public emacs-wgrep
3801 (package
3802 (name "emacs-wgrep")
3803 (version "2.1.10")
3804 (source (origin
3805 (method url-fetch)
3806 (uri (string-append
3807 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
3808 version ".tar.gz"))
3809 (file-name (string-append name "-" version ".tar.gz"))
3810 (sha256
3811 (base32
3812 "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
3813 (build-system emacs-build-system)
3814 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
3815 (synopsis "Edit a grep buffer and apply those changes to the files")
3816 (description
3817 "Emacs wgrep allows you to edit a grep buffer and apply those changes to
3818the file buffer.")
3819 (license license:gpl3+)))
3820
ae609001
MJ
3821(define-public emacs-helm
3822 (package
3823 (name "emacs-helm")
b38e4179 3824 (version "2.8.5")
ae609001
MJ
3825 (source (origin
3826 (method url-fetch)
3827 (uri (string-append
3828 "https://github.com/" name "/helm/archive/v"
3829 version ".tar.gz"))
3830 (file-name (string-append name "-" version ".tar.gz"))
3831 (sha256
3832 (base32
b38e4179 3833 "15xlnjm9rsbn0xq7xc09y52h2kn41zwn7ldryammf6i46wl02kq3"))))
ae609001
MJ
3834 (build-system emacs-build-system)
3835 (propagated-inputs
3836 `(("emacs-async" ,emacs-async)
3837 ("emacs-popup" ,emacs-popup)))
3838 (home-page "https://emacs-helm.github.io/helm/")
3839 (synopsis "Incremental completion and selection narrowing
3840framework for Emacs")
3841 (description "Helm is incremental completion and selection narrowing
3842framework for Emacs. It will help steer you in the right direction when
3843you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
3844of @code{anything.el} originally written by Tamas Patrovic and can be
3845considered to be its successor. Helm sets out to clean up the legacy code in
3846@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
3847not tied in the trap of backward compatibility.")
3848 (license license:gpl3+)))
f9be4366 3849
03cc1cf3
KM
3850(define-public emacs-helm-swoop
3851 (package
3852 (name "emacs-helm-swoop")
3853 (version "1.7.2")
3854 (source (origin
3855 (method url-fetch)
3856 (uri (string-append
3857 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
3858 version
3859 ".tar.gz"))
3860 (file-name (string-append name "-" version ".tar.gz"))
3861 (sha256
3862 (base32
3863 "1z34pfi0gsk054pxr906ilaalaw0xz3s536163gf9ykkwmc2356d"))))
3864 (build-system emacs-build-system)
3865 (propagated-inputs
3866 `(("emacs-helm" ,emacs-helm)))
3867 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
3868 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
3869 (description
3870 "This package builds on the Helm interface to provide several commands
3871for search-based navigation of buffers.")
3872 (license license:gpl2+)))
3873
f69c29f7
KM
3874(define-public emacs-helm-projectile
3875 (package
3876 (name "emacs-helm-projectile")
3877 (version "0.14.0")
3878 (source (origin
3879 (method url-fetch)
3880 (uri (string-append
3881 "https://github.com/bbatsov/helm-projectile/archive/v"
3882 version
3883 ".tar.gz"))
3884 (file-name (string-append name "-" version ".tar.gz"))
3885 (sha256
3886 (base32
3887 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
3888 (build-system emacs-build-system)
3889 (propagated-inputs
3890 `(("emacs-dash" ,emacs-dash)
3891 ("emacs-helm" ,emacs-helm)
3892 ("emacs-projectile" ,emacs-projectile)))
3893 (home-page "https://github.com/bbatsov/helm-projectile")
3894 (synopsis "Helm integration for Projectile")
3895 (description
3896 "This Emacs library provides a Helm interface for Projectile.")
3897 (license license:gpl3+)))
3898
f9be4366
AP
3899(define-public emacs-cider
3900 (package
3901 (name "emacs-cider")
65e4109c 3902 (version "0.15.0")
f9be4366
AP
3903 (source (origin
3904 (method url-fetch)
3905 (uri (string-append
3906 "https://github.com/clojure-emacs/cider/archive/v"
3907 version ".tar.gz"))
3908 (file-name (string-append name "-" version ".tar.gz"))
3909 (sha256
3910 (base32
65e4109c 3911 "0j7qjcslh8mnxrr2m8qrscyq9ry240j5jd9dysbvih126lxisf12"))))
f9be4366 3912 (build-system emacs-build-system)
65e4109c
SB
3913 (arguments
3914 '(#:exclude ; Don't exclude 'cider-test.el'.
3915 '("^\\.dir-locals\\.el$" "^test/")))
f9be4366
AP
3916 (propagated-inputs
3917 `(("emacs-clojure-mode" ,emacs-clojure-mode)
3918 ("emacs-spinner" ,emacs-spinner)
3919 ("emacs-pkg-info" ,emacs-pkg-info)
d0a52052 3920 ("emacs-queue" ,emacs-queue)))
f9be4366
AP
3921 (home-page "https://cider.readthedocs.org/")
3922 (synopsis "Clojure development environment for Emacs")
3923 (description
3924 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
3925provide an interactive development experience similar to the one you'd get
3926when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
3927Geiser) and Smalltalk.
3928
3929CIDER is the successor to the now deprecated combination of using SLIME +
3930swank-clojure for Clojure development.
3931
3932There are plenty of differences between CIDER and SLIME, but the core ideas
3933are pretty much the same (and SLIME served as the principle inspiration for
3934CIDER).")
3935 (license license:gpl3+)))
26e08b4d 3936
3937(define-public emacs-lua-mode
69dcad33
AW
3938 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
3939 (revision "1"))
3940 (package
3941 (name "emacs-lua-mode")
3942 (version (string-append "20151025." revision "-" (string-take commit 9)))
3943 (home-page "https://github.com/immerrr/lua-mode/")
3944 (source (origin
3945 (method git-fetch)
3946 (uri (git-reference
3947 (url home-page)
3948 (commit commit)))
3949 (file-name (string-append name "-" version ".checkout"))
3950 (sha256
3951 (base32
3952 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
3953 (build-system emacs-build-system)
3954 (synopsis "Major mode for lua")
3955 (description
3956 "This Emacs package provides a mode for @uref{https://www.lua.org/,
26e08b4d 3957Lua programing language}.")
69dcad33 3958 (license license:gpl2+))))
0202612d 3959
3960(define-public emacs-ebuild-mode
3961 (package
3962 (name "emacs-ebuild-mode")
4735393a 3963 (version "1.37")
0202612d 3964 (source (origin
3965 (method url-fetch)
3966 (uri (string-append
3967 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
3968 "-" version ".tar.xz"))
3969 (file-name (string-append name "-" version ".tar.xz"))
3970 (sha256
3971 (base32
4735393a 3972 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
0202612d 3973 (build-system emacs-build-system)
3974 (home-page "https://devmanual.gentoo.org")
3975 (synopsis "Major modes for Gentoo package files")
3976 (description
3977 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
3978news items, openrc and runscripts.")
3979 (license license:gpl2+)))
a9fbe94e 3980
2edbfbf5 3981(define-public emacs-evil
3982 (package
3983 (name "emacs-evil")
3984 (version "1.2.12")
3985 (source
3986 (origin
3987 (method url-fetch)
3988 (uri (string-append "https://bitbucket.org/lyro/evil/get/"
3989 version ".tar.bz2"))
3990 (file-name (string-append name "-" version ".tar.bz2"))
3991 (sha256
3992 (base32
3993 "17cda9fnbq3gmjcxs3lyq64gxswrf37y864bm53rldwsk3khq2yi"))))
3994 (build-system emacs-build-system)
3995 (propagated-inputs
3996 `(("emacs-undo-tree" ,emacs-undo-tree)
3997 ("emacs-goto-chg" ,emacs-goto-chg)))
3998 (home-page "https://bitbucket.com/lyro/evil")
3999 (synopsis "Extensible Vi layer for Emacs")
4000 (description
4001 "Evil is an extensible vi layer for Emacs. It emulates the
4002main features of Vim, and provides facilities for writing custom
4003extensions.")
4004 (license license:gpl3+)))
4005
ce74e520 4006(define-public emacs-goto-chg
4007 (package
4008 (name "emacs-goto-chg")
4009 (version "1.6")
4010 (source
4011 (origin
4012 (method url-fetch)
4013 ;; There is no versioned source.
4014 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 4015 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 4016 (sha256
4017 (base32
4018 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4019 (build-system emacs-build-system)
4020 ;; There is no other home page.
4021 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4022 (synopsis "Go to the last change in the Emacs buffer")
4023 (description
4024 "This package provides @code{M-x goto-last-change} command that goes to
4025the point of the most recent edit in the current Emacs buffer. When repeated,
4026go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4027used for reverse direction.")
4028 (license license:gpl2+)))
4029
a1eba1be
VD
4030(define-public emacs-monroe
4031 (package
4032 (name "emacs-monroe")
b125649a 4033 (version "0.3.1")
a1eba1be
VD
4034 (source
4035 (origin
4036 (method url-fetch)
b125649a
VD
4037 (uri (string-append "https://github.com/sanel/monroe/archive/"
4038 version ".tar.gz"))
4039 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
4040 (sha256
4041 (base32
b125649a 4042 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 4043 (build-system emacs-build-system)
b125649a 4044 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
4045 (synopsis "Clojure nREPL client for Emacs")
4046 (description
4047 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4048distribution, primarily targeting Clojure users")
4049 (license license:gpl3+)))
4050
a9fbe94e
LC
4051(define-public emacs-writegood-mode
4052 (package
4053 (name "emacs-writegood-mode")
4054 (version "2.0.2")
7bf837fd 4055 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
4056 (source (origin
4057 (method git-fetch)
4058 (uri (git-reference
4059 (url home-page)
4060 (commit (string-append "v" version))))
4061 (sha256
4062 (base32
4063 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
4064 (file-name (string-append name "-checkout"))))
4065 (build-system emacs-build-system)
4066 (synopsis "Polish up poor writing on the fly")
4067 (description
4068 "This minor mode tries to find and highlight problems with your writing
4069in English as you type. It primarily detects \"weasel words\" and abuse of
4070passive voice.")
4071 (license license:gpl3+)))
e08ca4b9 4072
4073(define-public emacs-neotree
4074 (package
4075 (name "emacs-neotree")
4076 (version "0.2.1")
4077 (home-page "https://github.com/jaypei/emacs-neotree")
4078 (source (origin
4079 (method url-fetch)
4080 (uri (string-append
4081 "https://github.com/jaypei/" name
4082 "/archive/v" version ".tar.gz"))
4083 (sha256
4084 (base32
4085 "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s"))
f409d0aa 4086 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 4087 (build-system emacs-build-system)
4088 (synopsis "Folder tree view for Emacs")
4089 (description "This Emacs package provides a folder tree view.")
4090 (license license:gpl3+)))
59065bb3
NG
4091
4092(define-public emacs-org
4093 (package
4094 (name "emacs-org")
484a72a0 4095 (version "20171016")
59065bb3
NG
4096 (source (origin
4097 (method url-fetch)
c2662820 4098 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
4099 version ".tar"))
4100 (sha256
4101 (base32
484a72a0 4102 "1196kv83p953nd9c5gxkn8ndw2kmm2kfw34dldap6m89khqflz5a"))))
59065bb3
NG
4103 (build-system emacs-build-system)
4104 (home-page "http://orgmode.org/")
4105 (synopsis "Outline-based notes management and organizer")
4106 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4107lists, and project planning with a fast and effective plain-text system. It
4108also is an authoring system with unique support for literate programming and
4109reproducible research.")
4110 (license license:gpl3+)))
41392b9a 4111
8e2ae7ee
CB
4112(define-public emacs-org-contrib
4113 (package
4114 (inherit emacs-org)
4115 (name "emacs-org-contrib")
4116 (source (origin
4117 (method url-fetch)
4118 (uri (string-append "http://orgmode.org/elpa/org-plus-contrib-"
4119 (package-version emacs-org) ".tar"))
4120 (sha256
4121 (base32
484a72a0 4122 "0xy2xrndlhs4kyvh6mmv24dnh3fn5p63d2gaimnrypf1p8znwzh4"))))
8e2ae7ee
CB
4123 (arguments
4124 `(#:modules ((guix build emacs-build-system)
4125 (guix build utils)
4126 (guix build emacs-utils)
4127 (ice-9 ftw)
4128 (srfi srfi-1))
4129 #:phases
4130 (modify-phases %standard-phases
4131 (add-after 'install 'delete-org-files
4132 (lambda* (#:key inputs outputs #:allow-other-keys)
4133 (let* ((out (assoc-ref outputs "out"))
4134 (org (assoc-ref inputs "emacs-org"))
4135 (contrib-files
4136 (map basename (find-files out)))
4137 (org+contrib-files
4138 (map basename (find-files org)))
4139 (duplicates (lset-intersection
4140 string=? contrib-files org+contrib-files)))
4141 (with-directory-excursion
4142 (string-append
4143 out "/share/emacs/site-lisp/guix.d/org-contrib-"
4144 ,(package-version emacs-org))
4145 (for-each delete-file duplicates))
4146 #t))))))
4147 (propagated-inputs
4148 `(("emacs-org" ,emacs-org)))
4149 (synopsis "Contributed packages to Org-mode")
4150 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4151lists, and project planning with a fast and effective plain-text system.
4152
4153This package is equivilent to org-plus-contrib, but only includes additional
4154files that you would find in @file{contrib/} from the git repository.")))
4155
41392b9a 4156(define-public emacs-flx
4157 (package
4158 (name "emacs-flx")
4159 (version "0.6.1")
4160 (source
4161 (origin
4162 (method url-fetch)
4163 (uri (string-append "https://github.com/lewang/"
4164 "flx/archive/v" version ".tar.gz"))
4165 (sha256
4166 (base32
4167 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
4168 (file-name (string-append name "-" version ".tar.gz"))))
4169 (build-system emacs-build-system)
4170 (home-page "https://github.com/lewang/flx")
4171 (synopsis "Fuzzy matching for Emacs")
4172 (description
4173 "Flx provides fuzzy matching for emacs a la sublime text.
4174The sorting algorithm is a balance between word beginnings (abbreviation)
4175and contiguous matches (substring). The longer the substring match,
4176the higher it scores. This maps well to how we think about matching.
4177Flx has support for ido (interactively do things) through flx-ido.")
4178 (license license:gpl3+)))
9657aba4 4179
4180(define-public emacs-cyberpunk-theme
4181 (package
4182 (name "emacs-cyberpunk-theme")
88e6086e 4183 (version "1.19")
9657aba4 4184 (source
4185 (origin
4186 (method url-fetch)
4187 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
4188 "archive/" version ".tar.gz"))
4189 (sha256
4190 (base32
88e6086e 4191 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
9657aba4 4192 (file-name (string-append name "-" version ".tar.gz"))))
4193 (build-system emacs-build-system)
4194 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
4195 (synopsis "Cyberpunk theme for emacs built-in color theme support")
4196 (description
4197 "Cyberpunk color theme for the emacs 24+ built-in color theme support
4198known loosely as deftheme. Many mode-specific customizations are included.")
4199 (license license:gpl3+)))
840224aa 4200
8f493950 4201(define-public emacs-danneskjold-theme
4202 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
4203 (revision "1"))
4204 (package
4205 (name "emacs-danneskjold-theme")
4206 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4207 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
4208 (source
4209 (origin
4210 (method git-fetch)
4211 (uri (git-reference
4212 (url home-page)
4213 (commit commit)))
4214 (file-name (string-append name "-" version "-checkout"))
4215 (sha256
4216 (base32
4217 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
4218 (build-system emacs-build-system)
4219 (arguments
4220 `(#:phases
4221 (modify-phases %standard-phases
4222 (add-after 'unpack 'delete-screenshots
4223 (lambda _
4224 (delete-file-recursively "screenshots") #t)))))
4225 (synopsis "High-contrast Emacs theme")
4226 (description
4227 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
4228 (license license:gpl3+))))
4229
1ba67b62 4230(define-public emacs-dream-theme
4231 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
4232 (revision "1"))
4233 (package
4234 (name "emacs-dream-theme")
4235 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4236 (source
4237 (origin
4238 (method git-fetch)
4239 (uri (git-reference
4240 (url "https://github.com/djcb/dream-theme")
4241 (commit commit)))
4242 (file-name (string-append name "-" version "-checkout"))
4243 (sha256
4244 (base32
4245 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
4246 (build-system emacs-build-system)
4247 (home-page "https://github.com/djcb/dream-theme")
4248 (synopsis "High-contrast Emacs theme")
4249 (description
4250 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
4251by zenburn, sinburn and similar themes, but slowly diverging from them.")
4252 (license license:gpl3+))))
4253
840224aa 4254(define-public emacs-auto-complete
4255 (package
4256 (name "emacs-auto-complete")
4257 (version "1.5.1")
4258 (source
4259 (origin
4260 (method url-fetch)
4261 (uri (string-append "https://github.com/auto-complete/"
4262 "auto-complete/archive/v" version ".tar.gz"))
4263 (sha256
4264 (base32
4265 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
4266 (file-name (string-append name "-" version ".tar.gz"))))
4267 (build-system emacs-build-system)
4268 (propagated-inputs
4269 `(("emacs-popup" ,emacs-popup)))
4270 (home-page "https://github.com/auto-complete/auto-complete")
4271 (synopsis "Intelligent auto-completion extension for Emacs")
4272 (description
4273 "Auto-Complete is an intelligent auto-completion extension for Emacs.
4274It extends the standard Emacs completion interface and provides an environment
4275that allows users to concentrate more on their own work. Its features are:
4276a visual interface, reduce overhead of completion by using statistic method,
4277extensibility.")
4278 (license license:gpl3+)))
154c71e0
AI
4279
4280(define-public m17n-db
4281 (package
4282 (name "m17n-db")
4283 (version "1.7.0")
4284 (source
4285 (origin
4286 (method url-fetch)
4287 (uri (string-append "mirror://savannah/m17n/m17n-db-"
4288 version ".tar.gz"))
4289 (sha256
4290 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
4291 (build-system gnu-build-system)
4292 (inputs
7c90d0f4 4293 `(("gettext" ,gettext-minimal)))
154c71e0
AI
4294 (arguments
4295 `(#:configure-flags
4296 (list (string-append "--with-charmaps="
4297 (assoc-ref %build-inputs "libc")
4298 "/share/i18n/charmaps"))))
4299 ;; With `guix lint' the home-page URI returns a small page saying
4300 ;; that your browser does not handle frames. This triggers the "URI
4301 ;; returns suspiciously small file" warning.
4302 (home-page "http://www.nongnu.org/m17n/")
4303 (synopsis "Multilingual text processing library (database)")
4304 (description "The m17n library realizes multilingualization of
4305many aspects of applications. The m17n library represents
4306multilingual text as an object named M-text. M-text is a string with
4307attributes called text properties, and designed to substitute for
4308string in C. Text properties carry any information required to input,
4309display and edit the text.
4310
4311This package contains the library database.")
4312 (license license:lgpl2.1+)))
a80b60f4
AI
4313
4314(define-public m17n-lib
4315 (package
4316 (name "m17n-lib")
4317 (version "1.7.0")
4318 (source
4319 (origin
4320 (method url-fetch)
966a543b
LC
4321 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
4322 version ".tar.gz"))
a80b60f4
AI
4323 (sha256
4324 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
4325 (build-system gnu-build-system)
4326 (inputs
4327 `(("fribidi" ,fribidi)
4328 ("gd" ,gd)
4329 ("libotf" ,libotf)
4330 ("libxft" ,libxft)
4331 ("libxml2" ,libxml2)
4332 ("m17n-db" ,m17n-db)))
4333 (arguments
4334 `(#:parallel-build? #f))
4335 ;; With `guix lint' the home-page URI returns a small page saying
4336 ;; that your browser does not handle frames. This triggers the "URI
4337 ;; returns suspiciously small file" warning.
4338 (home-page "http://www.nongnu.org/m17n/")
4339 (synopsis "Multilingual text processing library (runtime)")
4340 (description "The m17n library realizes multilingualization of
4341many aspects of applications. The m17n library represents
4342multilingual text as an object named M-text. M-text is a string with
4343attributes called text properties, and designed to substitute for
4344string in C. Text properties carry any information required to input,
4345display and edit the text.
4346
4347This package contains the library runtime.")
4348 (license license:lgpl2.1+)))
71d3ee1c
AI
4349
4350(define-public emacs-nginx-mode
4351 (package
4352 (name "emacs-nginx-mode")
4353 (version "1.1.4")
4354 (source
4355 (origin
4356 (method url-fetch)
4357 (uri (string-append
4358 "https://github.com/ajc/nginx-mode/archive/v"
4359 version ".tar.gz"))
4360 (file-name (string-append name "-" version ".tar.gz"))
4361 (sha256
4362 (base32
4363 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
4364 (build-system emacs-build-system)
4365 (home-page "https://github.com/ajc/nginx-mode")
4366 (synopsis "Emacs major mode for editing nginx config files")
4367 (description "This package provides an Emacs major mode for
4368editing nginx config files.")
4369 (license license:gpl2+)))
8f50634b
FB
4370
4371(define-public emacs-stream
4372 (package
4373 (name "emacs-stream")
4374 (version "2.2.0")
4375 (home-page "https://github.com/NicolasPetton/stream")
4376 (source
4377 (origin
4378 (method url-fetch)
4379 (file-name (string-append name "-" version ".tar.gz"))
4380 (uri (string-append home-page "/archive/"version ".tar.gz"))
4381 (sha256
4382 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
4383 (build-system emacs-build-system)
4384 (synopsis "Implementation of streams for Emacs")
4385 (description "This library provides an implementation of streams for Emacs.
4386Streams are implemented as delayed evaluation of cons cells.")
4387 (license license:gpl3+)))
0fc06f3e
FB
4388
4389(define-public emacs-el-search
4390 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
4391 (revision "1"))
4392 (package
4393 (name "emacs-el-search")
4394 ;; No ufficial release.
4395 (version (string-append "0.0-" revision "." (string-take commit 7)))
4396 (home-page "https://github.com/emacsmirror/el-search")
4397 (source
4398 (origin
4399 (method git-fetch)
4400 (file-name (string-append name "-" version ".tar.gz"))
4401 (uri (git-reference
4402 (commit commit)
4403 (url (string-append home-page ".git"))))
4404 (sha256
4405 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
4406 (build-system emacs-build-system)
4407 (inputs `(("emacs-stream" ,emacs-stream)))
4408 (synopsis "Expression based interactive search for emacs-lisp-mode")
4409 (description "This package provides expression based interactive search
4410procedures for emacs-lisp-mode.")
4411 (license license:gpl3+))))
1e523180
MO
4412
4413(define-public emacs-ht
4414 (package
4415 (name "emacs-ht")
4416 (version "2.1")
4417 (source
4418 (origin
4419 (method url-fetch)
4420 (uri (string-append
4421 "https://github.com/Wilfred/ht.el/archive/"
4422 version ".tar.gz"))
4423 (file-name (string-append name "-" version ".tar.gz"))
4424 (sha256
4425 (base32
4426 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
4427 (build-system emacs-build-system)
4428 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
4429 (home-page "https://github.com/Wilfred/ht.el")
4430 (synopsis "Hash table library for Emacs")
4431 (description
4432 "This package simplifies the use of hash tables in elisp. It also
4433provides functions to convert hash tables from and to alists and plists.")
4434 (license license:gpl3+)))
4435
521f5d96
MO
4436(define-public emacs-log4e
4437 (package
4438 (name "emacs-log4e")
4439 (version "0.3.0")
4440 (source
4441 (origin
4442 (method url-fetch)
4443 (uri (string-append
4444 "https://github.com/aki2o/log4e/archive/v"
4445 version ".tar.gz"))
4446 (file-name (string-append name "-" version ".tar.gz"))
4447 (sha256
4448 (base32
4449 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
4450 (build-system emacs-build-system)
4451 (arguments
4452 `(#:phases
4453 (modify-phases %standard-phases
4454 (add-after 'unpack 'remove-tests
4455 ;; Guile builder complains about null characters in some
4456 ;; strings of test files. Remove "test" directory (it is not
4457 ;; needed anyway).
4458 (lambda _
4459 (delete-file-recursively "test"))))))
4460 (home-page "https://github.com/aki2o/log4e")
4461 (synopsis "Logging framework for elisp")
4462 (description
4463 "This package provides a logging framework for elisp. It allows
4464you to deal with multiple log levels.")
4465 (license license:gpl3+)))
ba117841
MO
4466
4467(define-public emacs-gntp
4468 (package
4469 (name "emacs-gntp")
4470 (version "0.1")
4471 (source
4472 (origin
4473 (method url-fetch)
4474 (uri (string-append
4475 "https://github.com/tekai/gntp.el/archive/v"
4476 version ".tar.gz"))
4477 (file-name (string-append name "-" version ".tar.gz"))
4478 (sha256
4479 (base32
4480 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
4481 (build-system emacs-build-system)
4482 (home-page "https://github.com/tekai/gntp.el")
4483 (synopsis "Growl Notification Protocol for Emacs")
4484 (description
4485 "This package implements the Growl Notification Protocol GNTP
4486described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
4487It is incomplete as it only lets you send but not receive
4488notifications.")
4489 (license license:bsd-3)))
2c5e31fa
MO
4490
4491(define-public emacs-alert
4492 (package
4493 (name "emacs-alert")
4494 (version "1.2")
4495 (source
4496 (origin
4497 (method url-fetch)
4498 (uri (string-append
4499 "https://github.com/jwiegley/alert/archive/v"
4500 version ".tar.gz"))
4501 (file-name (string-append name "-" version ".tar.gz"))
4502 (sha256
4503 (base32
4504 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
4505 (build-system emacs-build-system)
4506 (propagated-inputs
4507 `(("emacs-gntp" ,emacs-gntp)
4508 ("emacs-log4e" ,emacs-log4e)))
4509 (home-page "https://github.com/jwiegley/alert")
4510 (synopsis "Growl-style notification system for Emacs")
4511 (description
4512 "Alert is a Growl-workalike for Emacs which uses a common notification
4513interface and multiple, selectable \"styles\", whose use is fully
4514customizable by the user.")
4515 (license license:gpl2+)))
c695ed3c
MO
4516
4517(define-public emacs-mu4e-alert
4518 (package
4519 (name "emacs-mu4e-alert")
dd69ff6d 4520 (version "1.0")
c695ed3c
MO
4521 (source
4522 (origin
4523 (method url-fetch)
4524 (uri (string-append
4525 "https://github.com/iqbalansari/mu4e-alert/archive/v"
4526 version ".tar.gz"))
4527 (file-name (string-append name "-" version ".tar.gz"))
4528 (sha256
4529 (base32
dd69ff6d 4530 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
4531 (build-system emacs-build-system)
4532 (propagated-inputs
4533 `(("emacs-alert" ,emacs-alert)
4534 ("emacs-s" ,emacs-s)
4535 ("emacs-ht" ,emacs-ht)))
4536 (home-page "https://github.com/iqbalansari/mu4e-alert")
4537 (synopsis "Desktop notification for mu4e")
4538 (description
4539 "This package provides desktop notifications for mu4e.
4540Additionally it can display the number of unread emails in the
4541mode-line.")
4542 (license license:gpl3+)))
e967dd9c 4543
4544(define-public emacs-pretty-mode
4545 (package
4546 (name "emacs-pretty-mode")
4547 (version "2.0.3")
4548 (source
4549 (origin
4550 (method url-fetch)
4551 (uri (string-append "https://github.com/akatov/pretty-mode/"
4552 "archive/" version ".tar.gz"))
4553 (file-name (string-append name "-" version ".tar.gz"))
4554 (sha256
4555 (base32
4556 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
4557 (build-system emacs-build-system)
4558 (home-page "https://github.com/akatov/pretty-mode")
4559 (synopsis "Redisplay parts of the buffer as Unicode symbols")
4560 (description
4561 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
4562 (license license:gpl3+)))
c1029f86
RW
4563
4564(define-public emacs-yasnippet
4565 (package
4566 (name "emacs-yasnippet")
1f0d4705 4567 (version "0.12.0")
c1029f86
RW
4568 (source (origin
4569 (method url-fetch)
4570 (uri (string-append "https://github.com/joaotavora/yasnippet/"
4571 "archive/" version ".tar.gz"))
4572 (file-name (string-append name "-" version ".tar.gz"))
4573 (sha256
4574 (base32
1f0d4705
KM
4575 "1yqiprighgqz1hsslph50cy09xxqabc06jffrnjcsdf6nj70xlkc"))
4576 (modules '((guix build utils)))
4577 (snippet
4578 '(begin
4579 ;; YASnippet expects a "snippets" subdirectory in the same
4580 ;; directory as yasnippet.el, but we don't install it
4581 ;; because it's a git submodule pointing to an external
4582 ;; repository. Adjust `yas-snippet-dirs' to prevent
4583 ;; warnings about a missing directory.
4584 (substitute* "yasnippet.el"
4585 (("^ +'yas-installed-snippets-dir\\)\\)\n")
4586 "))\n"))))))
c1029f86 4587 (build-system emacs-build-system)
7bf837fd 4588 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
4589 (synopsis "Yet another snippet extension for Emacs")
4590 (description
4591 "YASnippet is a template system for Emacs. It allows you to type an
4592abbreviation and automatically expand it into function templates.")
4593 (license license:gpl3+)))
55fa5349 4594
4bfdf034
KM
4595(define-public emacs-yasnippet-snippets
4596 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
4597 (revision "1"))
4598 (package
4599 (name "emacs-yasnippet-snippets")
4600 (version (string-append "1-" revision "." (string-take commit 8)))
4601 (source
4602 (origin
4603 (method git-fetch)
4604 (uri (git-reference
4605 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
4606 (commit commit)))
4607 (file-name (string-append name "-" version "-checkout"))
4608 (sha256
4609 (base32
4610 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
4611 (build-system trivial-build-system)
4612 (arguments
4613 `(#:modules ((ice-9 ftw)
4614 (ice-9 regex)
4615 (guix build utils))
4616 #:builder
4617 (begin
4618 (use-modules (ice-9 ftw)
4619 (ice-9 regex)
4620 (guix build utils))
4621 (with-directory-excursion (assoc-ref %build-inputs "source")
4622 (for-each (lambda (dir)
4623 (copy-recursively
4624 dir
4625 (string-append %output
4626 "/share/emacs/yasnippet-snippets/"
4627 dir)))
4628 (scandir "." (lambda (fname)
4629 (and (string-match "-mode$" fname)
4630 (directory-exists? fname)))))))))
4631 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
4632 (synopsis "Collection of YASnippet snippets for many languages")
4633 (description
4634 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
4635the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
4636To make YASnippet aware of these snippets, add the above directory to
4637@code{yas-snippet-dirs}.")
4638 (license license:expat))))
4639
55fa5349
AI
4640(define-public emacs-memoize
4641 (package
4642 (name "emacs-memoize")
4643 (version "20130421.b55eab0")
4644 (source
4645 (origin
4646 (method git-fetch)
4647 (uri (git-reference
4648 (url "https://github.com/skeeto/emacs-memoize")
4649 (commit "b55eab0cb6ab05d941e07b8c01f1655c0cf1dd75")))
4650 (file-name (string-append name "-" version ".tar.gz"))
4651 (sha256
4652 (base32
4653 "0fjwlrdm270qcrqffvarw5yhijk656q4lam79ybhaznzj0dq3xpw"))))
4654 (build-system emacs-build-system)
4655 (arguments
4656 `(#:phases
4657 (modify-phases %standard-phases
4658 (add-before 'install 'check
4659 (lambda _
4660 (zero? (system* "emacs" "-batch" "-l" "memoize.el"
4661 "-l" "memoize-test.el"
4662 "-f" "ert-run-tests-batch-and-exit")))))))
4663 (home-page "https://github.com/skeeto/emacs-memoize")
4664 (synopsis "Emacs lisp memoization library")
4665 (description "@code{emacs-memoize} is an Emacs library for
4666memoizing functions.")
4667 (license license:unlicense)))
6b7e3362 4668
c86c1991
AI
4669(define-public emacs-linum-relative
4670 (package
4671 (name "emacs-linum-relative")
4672 (version "0.5")
4673 (source
4674 (origin
4675 (method url-fetch)
4676 (uri (string-append
4677 "https://github.com/coldnew/linum-relative/archive/"
4678 version ".tar.gz"))
4679 (file-name (string-append name "-" version ".tar.gz"))
4680 (sha256
4681 (base32
4682 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
4683 (build-system emacs-build-system)
4684 (home-page "https://github.com/coldnew/linum-relative")
4685 (synopsis "Relative line numbering for Emacs")
4686 (description "@code{emacs-linum-relative} displays the relative line
4687number on the left margin in Emacs.")
4688 (license license:gpl2+)))
4689
6b7e3362
VD
4690(define-public emacs-idle-highlight
4691 (package
4692 (name "emacs-idle-highlight")
4693 (version "1.1.3")
4694 (source
4695 (origin
4696 (method url-fetch)
4697 (uri (string-append
4698 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
4699 version ".tar.gz"))
4700 (file-name (string-append name "-" version ".tar.gz"))
4701 (sha256
4702 (base32
4703 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
4704 (build-system emacs-build-system)
4705 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 4706 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
4707 (description
4708 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 4709 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
4710 the point.")
4711 (license license:gpl3+)))
6a91c5f2
VD
4712
4713(define-public emacs-ox-twbs
4714 (package
4715 (name "emacs-ox-twbs")
4716 (version "1.1.1")
4717 (source
4718 (origin
4719 (method url-fetch)
4720 (uri (string-append
4721 "https://github.com/marsmining/ox-twbs/archive/v"
4722 version ".tar.gz"))
4723 (file-name (string-append name "-" version ".tar.gz"))
4724 (sha256
4725 (base32
4726 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
4727 (build-system emacs-build-system)
4728 (home-page "https://github.com/marsmining/ox-twbs")
4729 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
4730 (description
4731 "This Emacs package outputs your org-mode docs with a simple, clean and
4732modern look. It implements a new HTML back-end for exporting org-mode docs as
4733HTML compatible with Twitter Bootstrap. By default, HTML is exported with
4734jQuery and Bootstrap resources included via osscdn.")
4735 (license license:gpl3+)))
239cf024
VD
4736
4737(define-public emacs-highlight-sexp
4738 (package
4739 (name "emacs-highlight-sexp")
4740 (version "1.0")
4741 (source
4742 (origin
4743 (method url-fetch)
4744 (uri (string-append
4745 "https://github.com/daimrod/highlight-sexp/archive/v"
4746 version ".tar.gz"))
4747 (file-name (string-append name "-" version ".tar.gz"))
4748 (sha256
4749 (base32
4750 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
4751 (build-system emacs-build-system)
4752 (home-page "https://github.com/daimrod/highlight-sexp")
4753 (synopsis "Minor mode that highlights the s-exp at the current position")
4754 (description
4755 "This Emacs package highlights the s-exp at the current position.")
4756 (license license:gpl3+)))
350cfccb 4757
acf7d4a7
KK
4758(define-public emacspeak
4759 (package
4760 (name "emacspeak")
231e48d6 4761 (version "46.0")
acf7d4a7
KK
4762 (source
4763 (origin
4764 (method url-fetch)
4765 (uri (string-append
4766 "https://github.com/tvraman/emacspeak/releases/download/"
4767 version "/emacspeak-" version ".tar.bz2"))
4768 (sha256
4769 (base32
231e48d6
KK
4770 "15x4yfp3wl2fxm1nkx6pz3clw6zyw3argcsqxgcx6pa28sivlg2n"))
4771 (modules '((guix build utils)))
4772 (snippet
4773 ;; Delete the bundled byte-compiled elisp files.
4774 '(for-each delete-file (find-files "lisp" "\\.elc$")))))
acf7d4a7
KK
4775 (build-system gnu-build-system)
4776 (arguments
4777 '(#:make-flags (list (string-append "prefix="
4778 (assoc-ref %outputs "out")))
4779 #:phases
4780 (modify-phases %standard-phases
4781 (replace 'configure
231e48d6
KK
4782 (lambda _
4783 ;; Configure Emacspeak according to etc/install.org.
acf7d4a7 4784 (zero? (system* "make" "config"))))
231e48d6
KK
4785 (add-after 'build 'build-espeak
4786 (lambda _
4787 (zero? (system* "make" "espeak"))))
4788 (replace 'install
acf7d4a7 4789 (lambda* (#:key outputs #:allow-other-keys)
231e48d6
KK
4790 (let* ((out (assoc-ref outputs "out"))
4791 (bin (string-append out "/bin"))
4792 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
4793 (info (string-append out "/share/info")))
4794 ;; According to etc/install.org, the Emacspeak directory should
4795 ;; be copied to its installation destination.
4796 (for-each
4797 (lambda (file)
4798 (copy-recursively file (string-append lisp "/" file)))
4799 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
4800 "xsl"))
4801 ;; Make sure emacspeak is loaded from the correct directory.
4802 (substitute* "etc/emacspeak.sh"
4803 (("exec emacs.*$")
4804 (string-append "exec emacs -l " lisp
4805 "/lisp/emacspeak-setup.el $CL_ALL")))
4806 ;; Install the convenient startup script.
4807 (mkdir-p bin)
4808 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
4809 #t))
4810 (add-after 'install 'wrap-program
acf7d4a7
KK
4811 (lambda* (#:key inputs outputs #:allow-other-keys)
4812 (let* ((out (assoc-ref outputs "out"))
4813 (emacspeak (string-append out "/bin/emacspeak"))
4814 (espeak (string-append (assoc-ref inputs "espeak")
4815 "/bin/espeak")))
4816 ;; The environment variable DTK_PROGRAM tells emacspeak what
4817 ;; program to use for speech.
4818 (wrap-program emacspeak
4819 `("DTK_PROGRAM" ":" prefix (,espeak)))
4820 #t))))
4821 #:tests? #f)) ; no check target
4822 (inputs
4823 `(("espeak" ,espeak)
4824 ("tcl" ,tcl)
4825 ("tclx" ,tclx)))
4826 (native-inputs `(("emacs" ,emacs-minimal)))
4827 (home-page "http://emacspeak.sourceforge.net")
4828 (synopsis "Audio desktop interface for Emacs")
4829 (description
4830 "Emacspeak is a speech interface that allows visually impaired users to
4831interact independently and efficiently with the computer. Audio formatting
4832--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
4833allows Emacspeak to produce rich aural presentations of electronic information.
4834By seamlessly blending all aspects of the Internet such as Web-surfing and
4835messaging, Emacspeak speech-enables local and remote information via a
4836consistent and well-integrated user interface.")
4837 (license license:gpl2+)))
4838
350cfccb
AP
4839(define-public emacs-adaptive-wrap
4840 (package
4841 (name "emacs-adaptive-wrap")
13869ff5 4842 (version "0.5.1")
350cfccb
AP
4843 (source (origin
4844 (method url-fetch)
4845 (uri (string-append
4846 "http://elpa.gnu.org/packages/adaptive-wrap-"
4847 version ".el"))
4848 (sha256
4849 (base32
13869ff5 4850 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
350cfccb
AP
4851 (build-system emacs-build-system)
4852 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
4853 (synopsis "Smart line-wrapping with wrap-prefix")
4854 (description
4855 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
4856minor mode which sets the wrap-prefix property on the fly so that
4857single-long-line paragraphs get word-wrapped in a way similar to what
4858you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
4859actually changing the buffer's text.")
4860 (license license:gpl3+)))
0201c5d4
AI
4861
4862(define-public emacs-diminish
4863 (package
4864 (name "emacs-diminish")
4865 (version "0.45")
4866 (source
4867 (origin
4868 (method url-fetch)
4869 (uri (string-append
4870 "https://github.com/myrjola/diminish.el/archive/v"
4871 version ".tar.gz"))
4872 (file-name (string-append name "-" version ".tar.gz"))
4873 (sha256
4874 (base32
4875 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
4876 (build-system emacs-build-system)
4877 (home-page "https://github.com/myrjola/diminish.el")
4878 (synopsis "Diminish minor modes with no modeline display")
4879 (description "@code{emacs-diminish} implements hiding or
4880abbreviation of the mode line displays (lighters) of minor modes.")
4881 (license license:gpl2+)))
b247fb86
AI
4882
4883(define-public emacs-use-package
4884 (package
4885 (name "emacs-use-package")
4886 (version "2.3")
4887 (source
4888 (origin
4889 (method url-fetch)
4890 (uri (string-append
4891 "https://github.com/jwiegley/use-package/archive/"
4892 version ".tar.gz"))
4893 (file-name (string-append name "-" version ".tar.gz"))
4894 (sha256
4895 (base32
4896 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
4897 (build-system emacs-build-system)
4898 (propagated-inputs
4899 `(("emacs-diminish" ,emacs-diminish)))
4900 (arguments
4901 `(#:phases
4902 (modify-phases %standard-phases
4903 (add-before 'install 'check
4904 (lambda _
4905 (zero? (system* "emacs" "--batch" "-L" "."
4906 "-l" "use-package-tests.el"
4907 "-f" "ert-run-tests-batch-and-exit"))
4908 ;; Tests fail in this release, but have been fixed in
4909 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
4910 #t)))))
4911 (home-page "https://github.com/jwiegley/use-package")
4912 (synopsis "Declaration for simplifying your .emacs")
4913 (description "The use-package macro allows you to isolate package
4914configuration in your @file{.emacs} file in a way that is both
4915performance-oriented and tidy.")
4916 (license license:gpl2+)))
e2345554 4917
8ad5a20f
MO
4918(define-public emacs-strace-mode
4919 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
4920 (revision "1"))
4921 (package
4922 (name "emacs-strace-mode")
4923 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
4924 (source (origin
4925 (method git-fetch)
4926 (uri (git-reference
4927 (url "https://github.com/pkmoore/strace-mode")
4928 (commit commit)))
4929 (file-name (string-append name "-" version "-checkout"))
4930 (sha256
4931 (base32
4932 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
4933 (build-system emacs-build-system)
4934 (home-page "https://github.com/pkmoore/strace-mode")
4935 (synopsis "Emacs major mode to highlight strace outputs")
4936 (description "@code{emacs-strace-mode} provides an Emacs major mode
4937 highlighting strace outputs.")
4938 (license license:gpl3+))))
4939
e2345554
CM
4940(define-public emacs-default-encrypt
4941 (package
4942 (name "emacs-default-encrypt")
4943 (version "4.3")
4944 (source
4945 (origin
4946 (method url-fetch)
4947 (uri (string-append
a97f6da4
CM
4948 "https://www.informationelle-selbstbestimmung-im-internet.de"
4949 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
4950 (file-name (string-append "jl-encrypt-" version ".el"))
4951 (sha256
4952 (base32
4953 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
4954 (build-system emacs-build-system)
4955 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
4956 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
4957 (description
4958 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
4959automatically encrypts messages that you send (e.g., email) when public keys
4960for all recipients are available, and it protects you from accidentally
4961sending un-encrypted messages. It can also be configured to automatically
4962sign messages that you send. For details and instructions on how to use
4963DefaultEncrypt, please refer to the home page or read the comments in the
4964source file, @file{jl-encrypt.el}.")
4965 (license license:gpl3+)))
25e810b8
AI
4966
4967(define-public emacs-htmlize
4968 (package
4969 (name "emacs-htmlize")
4970 (version "1.51")
4971 (source
4972 (origin
4973 (method url-fetch)
4974 (uri (string-append
4975 "https://github.com/hniksic/emacs-htmlize/archive/release/"
4976 version ".tar.gz"))
4977 (file-name (string-append name "-" version ".tar.gz"))
4978 (sha256
4979 (base32
4980 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
4981 (build-system emacs-build-system)
4982 (home-page "https://github.com/hniksic/emacs-htmlize")
4983 (synopsis "Convert buffer text and decorations to HTML")
4984 (description "@code{emacs-htmlize} converts the buffer text and
4985the associated decorations to HTML. Output to CSS, inline CSS and
4986fonts is supported.")
4987 (license license:gpl2+)))
0ee59b81
AI
4988
4989(define-public emacs-xmlgen
4990 (package
4991 (name "emacs-xmlgen")
4992 (version "0.5")
4993 (source
4994 (origin
4995 (method url-fetch)
4996 (uri (string-append
4997 "https://github.com/philjackson/xmlgen/archive/"
4998 version ".tar.gz"))
4999 (file-name (string-append name "-" version ".tar.gz"))
5000 (sha256
5001 (base32
5002 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
5003 (build-system emacs-build-system)
5004 (arguments
5005 `(#:phases
5006 (modify-phases %standard-phases
5007 (add-before 'install 'check
5008 (lambda _
5009 (zero? (system* "emacs" "--batch" "-L" "."
5010 "-l" "xmlgen-test.el"
5011 "-f" "ert-run-tests-batch-and-exit")))))))
5012 (home-page "https://github.com/philjackson/xmlgen")
5013 (synopsis "S-expression to XML domain specific language (DSL) in
5014Emacs Lisp")
5015 (description "@code{emacs-xmlgen} provides S-expression to XML
5016conversion for Emacs Lisp.")
5017 (license license:gpl2+)))
8d50a990
AI
5018
5019(define-public emacs-cdlatex
5020 (package
5021 (name "emacs-cdlatex")
5022 (version "4.7")
5023 (source
5024 (origin
5025 (method url-fetch)
5026 (uri (string-append
5027 "https://github.com/cdominik/cdlatex/archive/"
5028 version ".tar.gz"))
5029 (file-name (string-append name "-" version ".tar.gz"))
5030 (sha256
5031 (base32
5032 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
5033 (build-system emacs-build-system)
5034 (home-page "https://github.com/cdominik/cdlatex")
5035 (synopsis "Fast Emacs input methods for LaTeX environments and
5036math")
5037 (description "CDLaTeX is an Emacs minor mode supporting fast
5038insertion of environment templates and math in LaTeX. Similar
5039commands are also offered as part of the AUCTeX package, but it is not
5040the same - CDLaTeX focuses on speediness for inserting LaTeX
5041constructs.")
5042 (license license:gpl3+)))
deddeb44 5043
65fff6a3
FS
5044(define-public emacs-cnfonts
5045 (package
5046 (name "emacs-cnfonts")
5047 (version "0.9.1")
5048 (source (origin
5049 (method url-fetch)
5050 (uri (string-append
5051 "https://github.com/tumashu/cnfonts/archive/v"
5052 version ".tar.gz"))
5053 (file-name (string-append name "-" version ".tar.gz"))
5054 (sha256
5055 (base32
5056 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
5057 (build-system emacs-build-system)
5058 (home-page "https://github.com/tumashu/cnfonts")
5059 (synopsis "Emacs Chinese fonts setup tool")
5060 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
5061configuration of Chinese fonts.")
5062 (license license:gpl2+)))
5063
9f3b27a2
FS
5064(define-public emacs-pos-tip
5065 (package
5066 (name "emacs-pos-tip")
5067 (version "0.4.6")
5068 (source (origin
5069 (method url-fetch)
5070 (uri (string-append
5071 "https://github.com/pitkali/pos-tip/archive/"
5072 version ".tar.gz"))
5073 (file-name (string-append name "-" version ".tar.gz"))
5074 (sha256
5075 (base32
5076 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
5077 (build-system emacs-build-system)
5078 ;; The following functions and variables needed by emacs-pos-tip are
5079 ;; not included in emacs-minimal:
5080 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
5081 (arguments `(#:emacs ,emacs))
5082 (home-page "https://github.com/pitkali/pos-tip")
5083 (synopsis "Show tooltip at point")
5084 (description "The standard library tooltip.el provides a function for
5085displaying a tooltip at the mouse position. However, locating a tooltip at an
5086arbitrary buffer position in a window is not easy. Pos-tip provides such a
5087function to be used by other frontend programs.")
5088 (license license:gpl2+)))
5089
0fa8a932
FS
5090(define-public emacs-pyim-basedict
5091 (package
5092 (name "emacs-pyim-basedict")
5093 (version "0.3.1")
5094 (source (origin
5095 (method url-fetch)
5096 (uri (string-append
5097 "https://github.com/tumashu/pyim-basedict/archive/v"
5098 version ".tar.gz"))
5099 (file-name (string-append name "-" version ".tar.gz"))
5100 (sha256
5101 (base32
5102 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
5103 (build-system emacs-build-system)
5104 (home-page "https://github.com/tumashu/pyim-basedict")
5105 (synopsis "Input method dictionary of pyim")
5106 (description "Pyim-basedict is the default pinyin input method dictionary,
5107containing words from the rime project.")
5108 (license license:gpl2+)))
5109
7493306f
FS
5110(define-public emacs-pyim
5111 (package
5112 (name "emacs-pyim")
5113 (version "1.6.4")
5114 (source (origin
5115 (method url-fetch)
5116 (uri (string-append
5117 "https://github.com/tumashu/pyim/archive/v"
5118 version ".tar.gz"))
5119 (file-name (string-append name "-" version ".tar.gz"))
5120 (sha256
5121 (base32
5122 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
5123 (build-system emacs-build-system)
5124 (propagated-inputs
5125 `(("emacs-async" ,emacs-async)
6fe2d37c 5126 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7493306f
FS
5127 ("emacs-popup" ,emacs-popup)
5128 ("emacs-pos-tip" ,emacs-pos-tip)))
5129 (home-page "https://github.com/tumashu/pyim")
5130 (synopsis "Chinese input method")
5131 (description "Chinese input method which supports quanpin, shuangpin, wubi
5132and cangjie.")
5133 (license license:gpl2+)))
5134
2f1524d0
FS
5135(define-public emacs-el2org
5136 (package
5137 (name "emacs-el2org")
5138 (version "0.6.0")
5139 (source (origin
5140 (method url-fetch)
5141 (uri (string-append
5142 "https://github.com/tumashu/el2org/archive/v"
5143 version ".tar.gz"))
5144 (file-name (string-append name "-" version ".tar.gz"))
5145 (sha256
5146 (base32
5147 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
5148 (build-system emacs-build-system)
5149 (home-page "https://github.com/tumashu/el2org")
5150 (synopsis "Convert Emacs-lisp file to org file")
5151 (description "El2org is a simple tool, which can convert Emacs-lisp file
5152to org file, you can use this tool to write orgify commentary.")
5153 (license license:gpl2+)))
5154
5b38c3e6
FS
5155(define-public emacs-mustache
5156 (package
5157 (name "emacs-mustache")
5158 (version "0.23")
5159 (source (origin
5160 (method url-fetch)
5161 (uri (string-append
5162 "https://github.com/Wilfred/mustache.el/archive/"
5163 version ".tar.gz"))
5164 (file-name (string-append name "-" version ".tar.gz"))
5165 (sha256
5166 (base32
5167 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
5168 (build-system emacs-build-system)
5169 (propagated-inputs
5170 `(("emacs-dash" ,emacs-dash)
5171 ("emacs-ht" ,emacs-ht)
5172 ("emacs-s" ,emacs-s)))
5173 (home-page "https://github.com/Wilfred/mustache.el")
5174 (synopsis "Mustache templating library for Emacs")
5175 (description "Mustache templating library for Emacs, mustache is
5176a simple web template system, which is described as a logic-less system
5177because it lacks any explicit control flow statements, both looping and
5178conditional evaluation can be achieved using section tags processing lists
5179and lambdas.")
5180 (license license:gpl3+)))
5181
f03e15ec
FS
5182(define-public emacs-org2web
5183 (package
5184 (name "emacs-org2web")
5185 (version "0.9.1")
5186 (source (origin
5187 (method url-fetch)
5188 (uri (string-append
5189 "https://github.com/tumashu/org2web/archive/v"
5190 version ".tar.gz"))
5191 (file-name (string-append name "-" version ".tar.gz"))
5192 (sha256
5193 (base32
5194 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
5195 (build-system emacs-build-system)
5196 (propagated-inputs
5197 `(("emacs-dash" ,emacs-dash)
5198 ("emacs-el2org" ,emacs-el2org)
5199 ("emacs-ht" ,emacs-ht)
5200 ("emacs-mustache" ,emacs-mustache)
5201 ("emacs-simple-httpd" ,emacs-simple-httpd)))
5202 (home-page "https://github.com/tumashu/org2web")
5203 (synopsis "Static site generator based on org-mode ")
5204 (description "Org2web is a static site generator based on org-mode,
5205which code derived from Kelvin H's org-page.")
5206 (license license:gpl2+)))
5207
deddeb44
FS
5208(define-public emacs-xelb
5209 (package
5210 (name "emacs-xelb")
5211 (version "0.12")
5212 (source (origin
5213 (method url-fetch)
5214 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
5215 version ".tar"))
5216 (sha256
5217 (base32
5218 "0i9n0f3ibj4a5pwcsvwrah9m0fz32m0x6a9wsmjn3li20v8pcb81"))))
5219 (build-system emacs-build-system)
5220 ;; The following functions and variables needed by emacs-xelb are
5221 ;; not included in emacs-minimal:
5222 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
5223 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
5224 ;; x-display-pixel-width, x-display-pixel-height
5225 (arguments
5226 `(#:emacs ,emacs
5227 #:phases
5228 (modify-phases %standard-phases
5229 (add-after 'unpack 'regenerate-el-files
5230 (lambda* (#:key inputs #:allow-other-keys)
5231 (zero? (system* "make"
5232 (string-append "PROTO_PATH="
5233 (assoc-ref inputs "xcb-proto")
5234 "/share/xcb")
5235 (string-append "EMACS_BIN="
5236 (assoc-ref inputs "emacs")
5237 "/bin/emacs -Q"))))))))
5238 (native-inputs `(("xcb-proto" ,xcb-proto)))
5239 (home-page "https://github.com/ch11ng/xelb")
5240 (synopsis "X protocol Emacs Lisp binding")
5241 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
5242X11 protocol based on the XML description files from the XCB project. It
5243features an object-oriented API and permits a certain degree of concurrency.
5244It should enable you to implement low-level X11 applications.")
5245 (license license:gpl3+)))
2b3b745c
FS
5246
5247(define-public emacs-exwm
5248 (package
5249 (name "emacs-exwm")
e78e38a4 5250 (version "0.15")
2b3b745c
FS
5251 (synopsis "Emacs X window manager")
5252 (source (origin
5253 (method url-fetch)
5254 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
5255 version ".tar"))
5256 (sha256
5257 (base32
e78e38a4 5258 "1y7nqry9y0a99bsdqkk9f554vczfw4sz6raadw3138835qy697jg"))))
2b3b745c
FS
5259 (build-system emacs-build-system)
5260 (propagated-inputs
5261 `(("emacs-xelb" ,emacs-xelb)))
5262 (inputs
5263 `(("xhost" ,xhost)
5264 ("dbus" ,dbus)))
5265 ;; The following functions and variables needed by emacs-exwm are
5266 ;; not included in emacs-minimal:
5267 ;; scroll-bar-mode, fringe-mode
5268 ;; x-display-pixel-width, x-display-pixel-height
5269 (arguments
5270 `(#:emacs ,emacs
5271 #:phases
5272 (modify-phases %standard-phases
5273 (add-after 'build 'install-xsession
5274 (lambda* (#:key inputs outputs #:allow-other-keys)
5275 (let* ((out (assoc-ref outputs "out"))
5276 (xsessions (string-append out "/share/xsessions"))
5277 (bin (string-append out "/bin"))
5278 (exwm-executable (string-append bin "/exwm")))
5279 ;; Add a .desktop file to xsessions
5280 (mkdir-p xsessions)
5281 (mkdir-p bin)
5282 (with-output-to-file
5283 (string-append xsessions "/exwm.desktop")
5284 (lambda _
5285 (format #t "[Desktop Entry]~@
5286 Name=~a~@
5287 Comment=~a~@
5288 Exec=~a~@
5289 TryExec=~@*~a~@
5290 Type=Application~%" ,name ,synopsis exwm-executable)))
5291 ;; Add a shell wrapper to bin
2b3b745c
FS
5292 (with-output-to-file exwm-executable
5293 (lambda _
5294 (format #t "#!~a ~@
2b3b745c 5295 ~a +SI:localuser:$USER ~@
11f8e028 5296 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
5297 (string-append (assoc-ref inputs "bash") "/bin/sh")
5298 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
5299 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
5300 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
5301 '(cond
5302 ((file-exists-p "~/.exwm")
5303 (load-file "~/.exwm"))
5304 ((not (featurep 'exwm))
5305 (require 'exwm)
5306 (require 'exwm-config)
5307 (exwm-config-default)
87c95cb2
AI
5308 (message (concat "exwm configuration not found. "
5309 "Falling back to default configuration...")))))))
2b3b745c
FS
5310 (chmod exwm-executable #o555)
5311 #t))))))
5312 (home-page "https://github.com/ch11ng/exwm")
5313 (description "EXWM is a full-featured tiling X window manager for Emacs
5314built on top of XELB.")
5315 (license license:gpl3+)))
21b99aad 5316
58addd2b
FS
5317(define-public emacs-switch-window
5318 (package
5319 (name "emacs-switch-window")
adaebe80 5320 (version "1.5.1")
58addd2b
FS
5321 (source (origin
5322 (method url-fetch)
5323 (uri (string-append
5324 "https://github.com/dimitri/switch-window/archive/v"
5325 version ".tar.gz"))
5326 (file-name (string-append name "-" version ".tar.gz"))
5327 (sha256
5328 (base32
adaebe80 5329 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
5330 (build-system emacs-build-system)
5331 (home-page "https://github.com/dimitri/switch-window")
5332 (synopsis "Emacs window switch tool")
5333 (description "Switch-window is an emacs window switch tool, which
5334offer a visual way to choose a window to switch to, delete, split or
5335other operations.")
5336 (license license:wtfpl2)))
5337
f4ade9b6
FS
5338(define-public emacs-exwm-x
5339 (package
5340 (name "emacs-exwm-x")
2a9a2207 5341 (version "1.7.2")
f4ade9b6
FS
5342 (synopsis "Derivative window manager based on EXWM")
5343 (source (origin
5344 (method url-fetch)
5345 (uri (string-append
5346 "https://github.com/tumashu/exwm-x/archive/v"
5347 version ".tar.gz"))
5348 (file-name (string-append name "-" version ".tar.gz"))
5349 (sha256
5350 (base32
2a9a2207 5351 "1ny13i82fb72917jgl0ndwjg1x6l9f8gfhcx7cwlwhh5saq23mvy"))))
f4ade9b6
FS
5352 (build-system emacs-build-system)
5353 (propagated-inputs
5354 `(("emacs-exwm" ,emacs-exwm)
5355 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
5356 ("emacs-ivy" ,emacs-ivy)
5357 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
5358 (inputs
5359 `(("xhost" ,xhost)
5360 ("dbus" ,dbus)))
5361 ;; Need emacs instead of emacs-minimal,
5362 ;; for emacs's bin path will be inserted into bin/exwm-x file.
5363 (arguments
5364 `(#:emacs ,emacs
5365 #:phases
5366 (modify-phases %standard-phases
5367 (add-after 'build 'install-xsession
5368 (lambda* (#:key inputs outputs #:allow-other-keys)
5369 (let* ((out (assoc-ref outputs "out"))
5370 (xsessions (string-append out "/share/xsessions"))
5371 (bin (string-append out "/bin"))
5372 (exwm-executable (string-append bin "/exwm-x")))
5373 ;; Add a .desktop file to xsessions
5374 (mkdir-p xsessions)
5375 (mkdir-p bin)
5376 (with-output-to-file
5377 (string-append xsessions "/exwm-x.desktop")
5378 (lambda _
5379 (format #t "[Desktop Entry]~@
5380 Name=~a~@
5381 Comment=~a~@
5382 Exec=~a~@
5383 TryExec=~@*~a~@
5384 Type=Application~%" ,name ,synopsis exwm-executable)))
5385 ;; Add a shell wrapper to bin
f4ade9b6
FS
5386 (with-output-to-file exwm-executable
5387 (lambda _
5388 (format #t "#!~a ~@
f4ade9b6
FS
5389 ~a +SI:localuser:$USER ~@
5390 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
5391 (string-append (assoc-ref inputs "bash") "/bin/sh")
5392 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
5393 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
5394 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
5395 '(require 'exwmx-loader))))
5396 (chmod exwm-executable #o555)
5397 #t))))))
5398 (home-page "https://github.com/tumashu/exwm-x")
5399 (description "EXWM-X is a derivative window manager based on EXWM, with focus
5400on mouse-control.")
5401 (license license:gpl3+)))
5402
21b99aad
AI
5403(define-public emacs-gnuplot
5404 (package
5405 (name "emacs-gnuplot")
5406 (version "0.7.0")
5407 (source
5408 (origin
5409 (method url-fetch)
5410 (uri (string-append
5411 "https://github.com/bruceravel/gnuplot-mode/archive/"
5412 version ".tar.gz"))
5413 (file-name (string-append name "-" version ".tar.gz"))
5414 (sha256
5415 (base32
5416 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
5417 (build-system gnu-build-system)
5418 (native-inputs `(("emacs" ,emacs-minimal)))
5419 (arguments
5420 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
5421 "/gnuplot-" version)))
5422 `(#:modules ((guix build gnu-build-system)
5423 (guix build utils)
5424 (guix build emacs-utils))
5425 #:imported-modules (,@%gnu-build-system-modules
5426 (guix build emacs-utils))
5427 #:configure-flags
5428 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
5429 "/bin/emacs")
5430 (string-append "--with-lispdir=" %output ,elisp-dir))
5431 #:phases
5432 (modify-phases %standard-phases
5433 (add-after 'install 'generate-autoloads
5434 (lambda* (#:key outputs #:allow-other-keys)
5435 (emacs-generate-autoloads
5436 "gnuplot"
5437 (string-append (assoc-ref outputs "out") ,elisp-dir))
5438 #t))))))
5439 (home-page "https://github.com/bruceravel/gnuplot-mode")
5440 (synopsis "Emacs major mode for interacting with gnuplot")
5441 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
5442with gnuplot.")
5443 (license license:gpl2+)))
860f73c6
AI
5444
5445(define-public emacs-transpose-frame
5446 (package
5447 (name "emacs-transpose-frame")
5448 (version "0.1.0")
5449 (source
5450 (origin
5451 (method url-fetch)
5452 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8a421ddb 5453 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
5454 (sha256
5455 (base32
5456 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
5457 (build-system emacs-build-system)
5458 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
5459 (synopsis "Transpose window arrangement in current frame")
5460 (description "@code{emacs-transpose-frame} provides some interactive
5461functions which allows users to transpose windows arrangement in currently
5462selected frame.")
5463 (license license:bsd-2)))
a34242ee
KM
5464
5465(define-public emacs-key-chord
5466 (package
5467 (name "emacs-key-chord")
5468 (version "0.6")
5469 (source
5470 (origin
5471 (method url-fetch)
5472 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
a742becd 5473 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
5474 (sha256
5475 (base32
5476 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
5477 (build-system emacs-build-system)
5478 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
5479 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
5480 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
5481mode for binding key chords to commands. A key chord is defined as two keys
5482pressed simultaneously or a single key quickly pressed twice.")
5483 (license license:gpl2+)))
a993add1
AI
5484
5485(define-public emacs-evil-surround
5486 (package
5487 (name "emacs-evil-surround")
5488 (version "1.0.0")
5489 (source
5490 (origin
5491 (method url-fetch)
5492 (uri (string-append
5493 "https://github.com/timcharper/evil-surround/archive/v"
5494 version ".tar.gz"))
5495 (file-name (string-append name "-" version ".tar.gz"))
5496 (sha256
5497 (base32
5498 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
5499 (build-system emacs-build-system)
5500 (propagated-inputs
5501 `(("emacs-evil" ,emacs-evil)))
5502 (home-page "https://github.com/timcharper/evil-surround")
5503 (synopsis "Easily modify surrounding parantheses and quotes")
5504 (description "@code{emacs-evil-surround} allows easy deletion, change and
5505addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
5506 (license license:gpl3+)))
2406766e
AI
5507
5508(define-public emacs-evil-commentary
5509 (package
5510 (name "emacs-evil-commentary")
5511 (version "2.1.1")
5512 (source
5513 (origin
5514 (method url-fetch)
5515 (uri (string-append
5516 "https://github.com/linktohack/evil-commentary/archive/v"
5517 version ".tar.gz"))
5518 (file-name (string-append name "-" version ".tar.gz"))
5519 (sha256
5520 (base32
5521 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
5522 (build-system emacs-build-system)
5523 (propagated-inputs
5524 `(("emacs-evil" ,emacs-evil)))
5525 (home-page "https://github.com/linktohack/evil-commentary")
5526 (synopsis "Comment out code in evil mode")
5527 (description "@code{emacs-evil-commentary} adds keybindings to easily
5528comment out lines of code in evil mode. It provides @code{gcc} to comment out
5529lines, and @code{gc} to comment out the target of a motion.")
5530 (license license:gpl3+)))
99d406c9
AI
5531
5532;; Tests for emacs-ansi have a circular dependency with ert-runner, and
5533;; therefore cannot be run
5534(define-public emacs-ansi
5535 (package
5536 (name "emacs-ansi")
5537 (version "0.4.1")
5538 (source
5539 (origin
5540 (method url-fetch)
5541 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
5542 version ".tar.gz"))
5543 (file-name (string-append name "-" version ".tar.gz"))
5544 (sha256
5545 (base32
5546 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
5547 (build-system emacs-build-system)
5548 (propagated-inputs
5549 `(("emacs-dash" ,emacs-dash)
5550 ("emacs-s" ,emacs-s)))
5551 (home-page "https://github.com/rejeep/ansi.el")
5552 (synopsis "Convert strings to ANSI")
5553 (description "@code{emacs-ansi} defines functions that turns simple
5554strings to ANSI strings. Turning a string into an ANSI string can be to add
5555color to a text, add color in the background of a text or adding a style, such
5556as bold, underscore or italic.")
5557 (license license:gpl3+)))
605ecbcb
AI
5558
5559;; Tests for emacs-commander have a circular dependency with ert-runner, and
5560;; therefore cannot be run
5561(define-public emacs-commander
5562 (package
5563 (name "emacs-commander")
5564 (version "0.7.0")
5565 (source
5566 (origin
5567 (method url-fetch)
5568 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
5569 version ".tar.gz"))
5570 (file-name (string-append name "-" version ".tar.gz"))
5571 (sha256
5572 (base32
5573 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
5574 (build-system emacs-build-system)
5575 (propagated-inputs
5576 `(("emacs-dash" ,emacs-dash)
5577 ("emacs-f" ,emacs-f)
5578 ("emacs-s" ,emacs-s)))
5579 (home-page "https://github.com/rejeep/commander.el")
5580 (synopsis "Emacs command line parser")
5581 (description "@code{emacs-commander} provides command line parsing for
5582Emacs.")
5583 (license license:gpl3+)))
87449013
AI
5584
5585;; Tests for ert-runner have a circular dependency with ecukes, and therefore
5586;; cannot be run
5587(define-public ert-runner
5588 (let ((dependencies
5589 `(("emacs-ansi" ,emacs-ansi)
5590 ("emacs-commander" ,emacs-commander)
5591 ("emacs-dash" ,emacs-dash)
5592 ("emacs-f" ,emacs-f)
5593 ("emacs-s" ,emacs-s)
5594 ("emacs-shut-up" ,emacs-shut-up))))
5595 (package
5596 (name "ert-runner")
5597 (version "0.7.0")
5598 (source
5599 (origin
5600 (method url-fetch)
5601 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
5602 version ".tar.gz"))
5603 (file-name (string-append name "-" version ".tar.gz"))
5604 (sha256
5605 (base32
5606 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
5607 (build-system emacs-build-system)
5608 (inputs dependencies)
5609 (arguments
5610 `(#:phases
5611 (modify-phases %standard-phases
5612 (add-after 'install 'install-executable
5613 (lambda* (#:key inputs outputs #:allow-other-keys)
5614 (let ((out (assoc-ref outputs "out")))
5615 (substitute* "bin/ert-runner"
5616 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
5617 (string-append "ERT_RUNNER=\"" out
5618 "/share/emacs/site-lisp/guix.d/"
5619 ,name "-" ,version)))
5620 (install-file "bin/ert-runner" (string-append out "/bin"))
5621 (wrap-program (string-append out "/bin/ert-runner")
5622 (list "EMACSLOADPATH" ":" '=
5623 (append
5624 ,(match dependencies
5625 (((labels packages) ...)
5626 `(map (lambda (label package version)
5627 (string-append (assoc-ref inputs label)
5628 "/share/emacs/site-lisp/guix.d/"
5629 (string-drop package 6)
5630 "-" version))
5631 ',labels
5632 ',(map package-name packages)
5633 ',(map package-version packages))))
5634 ;; empty element to include the default load path as
5635 ;; determined by emacs' standard initialization
5636 ;; procedure
5637 (list ""))))
45f523d9
MC
5638 #t))))
5639 #:include (cons* "^reporters/.*\\.el$" %default-include)))
87449013
AI
5640 (home-page "https://github.com/rejeep/ert-runner.el")
5641 (synopsis "Opinionated Ert testing workflow")
5642 (description "@code{ert-runner} is a tool for Emacs projects tested
5643using ERT. It assumes a certain test structure setup and can therefore make
5644running tests easier.")
5645 (license license:gpl3+))))
7a0efa77
JN
5646
5647(define-public emacs-disable-mouse
5648 (package
5649 (name "emacs-disable-mouse")
5650 (version "0.2")
5651 (source
5652 (origin
5653 (method url-fetch)
5654 (uri (string-append
5655 "https://github.com/purcell/disable-mouse/archive/"
5656 version ".tar.gz"))
5657 (file-name (string-append name "-" version ".tar.gz"))
5658 (sha256
5659 (base32
5660 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
5661 (build-system emacs-build-system)
5662 (home-page "https://github.com/purcell/disable-mouse")
5663 (synopsis "Disable mouse commands globally")
5664 (description
5665 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
5666pair of minor modes which suppress all mouse events by intercepting them and
5667running a customisable handler command (@code{ignore} by default). ")
5668 (license license:gpl3+)))
ce676015 5669
6df27407
OP
5670(define-public emacs-json-snatcher
5671 (package
5672 (name "emacs-json-snatcher")
5673 (version "1.0.0")
5674 (source
5675 (origin
5676 (method url-fetch)
5677 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
5678 version ".tar.gz"))
5679 (file-name (string-append name "-" version ".tar.gz"))
5680 (sha256
5681 (base32
5682 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
5683 (build-system emacs-build-system)
5684 (home-page "https://github.com/sterlingg/json-snatcher")
5685 (synopsis "Grabs the path to JSON values in a JSON file")
5686 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
5687a @url{http://json.org/, JSON} file.")
5688 (license license:gpl3+)))
5689
ce676015
JR
5690(define-public emacs-restclient
5691 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
5692 (revision "1")) ;Guix package revision,
5693 ;upstream doesn't have official releases
5694 (package
5695 (name "emacs-restclient")
5696 (version (string-append revision "."
5697 (string-take commit 7)))
5698 (source (origin
5699 (method git-fetch)
5700 (uri (git-reference
5701 (url "https://github.com/pashky/restclient.el.git")
5702 (commit commit)))
5703 (sha256
5704 (base32
5705 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
5706 (file-name (git-file-name name version))))
5707 (build-system emacs-build-system)
5708 (propagated-inputs
5709 `(("emacs-helm" ,emacs-helm)))
5710 (home-page "https://github.com/pashky/restclient.el")
5711 (synopsis "Explore and test HTTP REST webservices")
5712 (description
5713 "This tool allows for testing and exploration of HTTP REST Web services
5714from within Emacs. Restclient runs queries from a plan-text query sheet,
5715displays results pretty-printed in XML or JSON with @code{restclient-mode}")
5716 (license license:public-domain))))
730c0790
OP
5717
5718(define-public emacs-dired-hacks
5719 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
5720 (revision "1"))
5721 (package
5722 (name "emacs-dired-hacks")
5723 (version (string-append "0.0.1-" revision "."
5724 (string-take commit 7)))
5725 (source (origin
5726 (method git-fetch)
5727 (uri (git-reference
5728 (url "https://github.com/Fuco1/dired-hacks.git")
5729 (commit commit)))
5730 (file-name (string-append name "-" version "-checkout"))
5731 (sha256
5732 (base32
5733 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
5734 (build-system emacs-build-system)
5735 (propagated-inputs
5736 `(("emacs-dash" ,emacs-dash)
5737 ("emacs-f" ,emacs-f)
5738 ("emacs-s" ,emacs-s)))
5739 (home-page "https://github.com/Fuco1/dired-hacks")
5740 (synopsis
5741 "Collection of useful dired additions")
5742 (description
5743 "Collection of Emacs dired mode additions:
5744@itemize
5745@item dired-avfs
5746@item dired-columns
5747@item dired-filter
5748@item dired-hacks-utils
5749@item dired-images
5750@item dired-list
5751@item dired-narrow
5752@item dired-open
5753@item dired-rainbow
5754@item dired-ranger
5755@item dired-subtree
5756@item dired-tagsistant
5757@end itemize\n")
5758 (license license:gpl3+))))
1a80e4d7
OP
5759
5760(define-public emacs-which-key
5761 (package
5762 (name "emacs-which-key")
5763 (version "3.0.1")
5764 (source
5765 (origin
5766 (method url-fetch)
5767 (uri (string-append
5768 "https://github.com/justbur/emacs-which-key/archive/v"
5769 version ".tar.gz"))
5770 (sha256
5771 (base32
5772 "0zc9yivdkbxmcllhlbbcvsbj8g8nzzgs0xib488s08p4s0l7xs8m"))
5773 (file-name (string-append name "-" version ".tar.gz"))))
5774 (build-system emacs-build-system)
5775 (arguments
5776 `(#:phases
5777 (modify-phases %standard-phases
5778 (add-before 'install 'check
5779 (lambda _
5780 (zero? (system* "emacs" "--batch" "-L" "."
5781 "-l" "which-key-tests.el"
5782 "-f" "ert-run-tests-batch-and-exit")))))))
5783 (home-page "https://github.com/justbur/emacs-which-key")
5784 (synopsis "Display available key bindings in popup")
2482c02f
AI
5785 (description
5786 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
5787bindings following your currently entered incomplete command (a prefix) in a
5788popup. For example, after enabling the minor mode if you enter C-x and wait
5789for the default of 1 second, the minibuffer will expand with all of the
5790available key bindings that follow C-x (or as many as space allows given your
5791settings).")
1a80e4d7 5792 (license license:gpl3+)))
c97979d6
OP
5793
5794(define-public emacs-org-edit-latex
5795 (package
5796 (name "emacs-org-edit-latex")
5797 (version "0.8.0")
5798 (source
5799 (origin
5800 (method url-fetch)
5801 (uri (string-append
5802 "https://github.com/et2010/org-edit-latex/archive/v"
5803 version ".tar.gz"))
5804 (file-name (string-append name "-" version ".tar.gz"))
5805 (sha256
5806 (base32
5807 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
5808 (build-system emacs-build-system)
5809 (propagated-inputs
5810 `(("emacs-auctex" ,emacs-auctex)
5811 ;; The version of org in Emacs 25.2 is not sufficient, because the
5812 ;; `org-latex-make-preamble' function is required.
5813 ("emacs-org" ,emacs-org)))
5814 (home-page "https://github.com/et2010/org-edit-latex")
5815 (synopsis "Edit a latex fragment just like editing a src block")
5816 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
5817It lets you edit a latex fragment in a dedicated buffer just like editing a
5818src block.")
5819 (license license:gpl3+)))
aadd75ac
OP
5820
5821(define-public emacs-emamux
5822 (package
5823 (name "emacs-emamux")
5824 (version "0.14")
5825 (source (origin
5826 (method url-fetch)
5827 (uri (string-append
5828 "https://github.com/syohex/emacs-emamux/archive/"
5829 version ".tar.gz"))
5830 (file-name (string-append name "-" version ".tar.gz"))
5831 (sha256
5832 (base32
5833 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
5834 (build-system emacs-build-system)
5835 (home-page "https://github.com/syohex/emacs-emamux")
5836 (synopsis "Manipulate Tmux from Emacs")
5837 (description
5838 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
5839multiplexer.")
5840 (license license:gpl3+)))
e8d9a878
OP
5841
5842(define-public emacs-rpm-spec-mode
5843 (package
5844 (name "emacs-rpm-spec-mode")
5845 (version "0.16")
5846 (source
5847 (origin
5848 (method url-fetch)
5849 ;; URI has the Fedora release number instead of the version
5850 ;; number. This will have to updated manually every new release.
5851 (uri (string-append
5852 "https://src.fedoraproject.org/cgit/rpms"
5853 "/emacs-rpm-spec-mode.git/snapshot"
5854 "/emacs-rpm-spec-mode-f26.tar.gz"))
5855 (sha256
5856 (base32
5857 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
5858 (build-system emacs-build-system)
5859 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
5860 (synopsis "Emacs major mode for editing RPM spec files")
5861 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
5862editing RPM spec files.")
5863 (license license:gpl2+)))
a88adeb3
OP
5864
5865(define-public emacs-git-messenger
5866 (package
5867 (name "emacs-git-messenger")
5868 (version "0.18")
5869 (source
5870 (origin
5871 (method url-fetch)
5872 (uri (string-append
5873 "https://github.com/syohex/emacs-git-messenger/archive/"
5874 version ".tar.gz"))
5875 (file-name (string-append name "-" version ".tar.gz"))
5876 (sha256
5877 (base32
5878 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
5879 (build-system emacs-build-system)
5880 (propagated-inputs
5881 `(("emacs-popup" ,emacs-popup)))
5882 (arguments
5883 `(#:phases
5884 (modify-phases %standard-phases
5885 (add-before 'install 'check
5886 (lambda* (#:key inputs #:allow-other-keys)
5887 (zero? (system* "emacs" "--batch" "-L" "."
5888 "-L" (string-append
5889 (assoc-ref inputs "emacs-popup")
5890 "/share/emacs/site-lisp/guix.d/popup-"
5891 ,(package-version emacs-popup))
5892 "-l" "test/test.el"
5893 "-f" "ert-run-tests-batch-and-exit")))))))
5894 (home-page "https://github.com/syohex/emacs-git-messenger")
5895 (synopsis "Popup commit message at current line")
5896 (description "@code{emacs-git-messenger} provides
5897@code{git-messenger:popup-message}, a function that when called, will popup
5898the last git commit message for the current line. This uses git-blame
5899internally.")
5900 (license license:gpl3+)))
1ee879e9
OP
5901
5902(define-public emacs-gitpatch
5903 (package
5904 (name "emacs-gitpatch")
5905 (version "0.5.0")
5906 (source
5907 (origin
5908 (method url-fetch)
5909 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
5910 "v" version ".tar.gz"))
5911 (file-name (string-append name "-" version ".tar.gz"))
5912 (sha256
5913 (base32
5914 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
5915 (build-system emacs-build-system)
5916 (home-page "https://github.com/tumashu/gitpatch")
5917 (synopsis "Mail git patch from Emacs")
5918 (description "@code{emacs-gitpatch} lets users easily send git patches,
5919created by @code{git format-patch}, from @code{magit}, @code{dired} and
5920@code{ibuffer} buffers.")
5921 (license license:gpl3+)))
27feda65
OP
5922
5923(define-public emacs-erc-hl-nicks
5924 (package
5925 (name "emacs-erc-hl-nicks")
5926 (version "1.3.2")
5927 (source
5928 (origin
5929 (method url-fetch)
5930 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
5931 "/archive/" version ".tar.gz"))
5932 (file-name (string-append name "-" version ".tar.gz"))
5933 (sha256
5934 (base32
5935 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
5936 (build-system emacs-build-system)
5937 (synopsis "Nickname highlighting for Emacs ERC")
5938 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
5939client for Emacs. The main features are:
5940@itemize
5941@item Auto-colorizes nicknames without having to specify colors
5942@item Ignores certain characters that IRC clients add to nicknames to avoid
5943duplicates (nickname, nickname’, nickname\", etc.)
5944@item Attempts to produce colors with a sufficient amount of contrast between
5945the nick color and the background color
5946@end itemize\n")
5947 (home-page "https://github.com/leathekd/erc-hl-nicks")
5948 (license license:gpl3+)))
f262f446
OP
5949
5950(define-public emacs-engine-mode
5951 (package
5952 (name "emacs-engine-mode")
5953 (version "2.0.0")
5954 (source
5955 (origin
5956 (method url-fetch)
5957 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
5958 "v" version ".tar.gz"))
5959 (file-name (string-append name "-" version ".tar.gz"))
5960 (sha256
5961 (base32
5962 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
5963 (build-system emacs-build-system)
5964 (synopsis "Minor mode for defining and querying search engines")
5965 (description "@code{engine-mode} is a global minor mode for Emacs. It
5966enables you to easily define search engines, bind them to keybindings, and
5967query them from the comfort of your editor.")
5968 (home-page "https://github.com/hrs/engine-mode")
5969 (license license:gpl3+)))
b9dcaced
PM
5970
5971(define-public emacs-prop-menu
5972 (package
5973 (name "emacs-prop-menu")
5974 (version "0.1.2")
5975 (source
5976 (origin
5977 (method url-fetch)
5978 (uri (string-append
5979 "http://stable.melpa.org/packages/prop-menu-"
5980 version ".el"))
5981 (sha256
5982 (base32
5983 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
5984 (build-system emacs-build-system)
5985 (home-page
5986 "https://github.com/david-christiansen/prop-menu-el")
5987 (synopsis
5988 "Create and display a context menu based on text and overlay properties")
5989 (description
5990 "This is a library for computing context menus based on text
5991properties and overlays. The intended use is to have tools that
5992annotate source code and others that use these annotations, without
5993requiring a direct coupling between them, but maintaining
5994discoverability.
5995
5996Major modes that wish to use this library should first define an
5997appropriate value for @code{prop-menu-item-functions}. Then, they should
5998bind @code{prop-menu-by-completing-read} to an appropriate
5999key. Optionally, a mouse pop-up can be added by binding
6000@code{prop-menu-show-menu} to a mouse event.")
6001 (license license:gpl3+)))
5883bb76
PM
6002
6003(define-public emacs-idris-mode
6004 (package
6005 (name "emacs-idris-mode")
6006 (version "0.9.19")
6007 (source
6008 (origin
6009 (method url-fetch)
6010 (uri (string-append
6011 "http://stable.melpa.org/packages/idris-mode-"
6012 version ".tar"))
6013 (sha256
6014 (base32
6015 "0ld4kfwnyyhlsnj5f6cbn4is4mpxdqalk2aifkw02r00mbr9n294"))))
6016 (build-system emacs-build-system)
6017 (propagated-inputs
6018 `(("emacs-prop-menu" ,emacs-prop-menu)))
6019 (home-page
6020 "https://github.com/idris-hackers/idris-mode")
6021 (synopsis "Major mode for editing Idris code")
6022 (description
6023 "This is an Emacs mode for editing Idris code. It requires the latest
6024version of Idris, and some features may rely on the latest Git version of
6025Idris.")
6026 (license license:gpl3+)))
eaf4ba6e
OP
6027
6028(define-public emacs-browse-at-remote
6029 (let ((commit "b5cff7971ca8bbb966e3acd9b7e5c4c007f94215")
6030 (revision "1"))
6031 (package
6032 (name "emacs-browse-at-remote")
6033 (version (string-append "0.9.0-" revision "."
6034 (string-take commit 7)))
6035 (source (origin
6036 (method git-fetch)
6037 (uri (git-reference
6038 (url "https://github.com/rmuslimov/browse-at-remote.git")
6039 (commit commit)))
6040 (file-name (string-append name "-" version "-checkout"))
6041 (sha256
6042 (base32
6043 "16ms9703m15dfxg6ap4mdw7msf8z5rzsdhba51dwivfpjxg7n52c"))))
6044 (build-system emacs-build-system)
6045 (propagated-inputs
6046 `(("emacs-f" ,emacs-f)
6047 ("emacs-s" ,emacs-s)))
8505d348
AK
6048 (native-inputs
6049 `(("ert-runner" ,ert-runner)))
eaf4ba6e
OP
6050 (arguments
6051 `(#:phases
6052 (modify-phases %standard-phases
6053 (add-before 'install 'check
8505d348
AK
6054 (lambda _
6055 (zero? (system* "ert-runner")))))))
eaf4ba6e
OP
6056 (home-page "https://github.com/rmuslimov/browse-at-remote")
6057 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
6058 (description
6059 "This Emacs package allows you to open a target page on
6060github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
6061It supports dired buffers and opens them in tree mode at destination.")
6062 (license license:gpl3+))))
63253098
OP
6063
6064(define-public emacs-tiny
6065 (package
6066 (name "emacs-tiny")
d8ec1b71 6067 (version "0.2.1")
63253098
OP
6068 (source
6069 (origin
6070 (method url-fetch)
6071 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
6072 (sha256
6073 (base32
d8ec1b71 6074 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
63253098
OP
6075 (build-system emacs-build-system)
6076 (home-page "https://github.com/abo-abo/tiny")
6077 (synopsis "Quickly generate linear ranges in Emacs")
6078 (description
6079 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
a913d9d9 6080It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
63253098
OP
6081proficiency is an advantage, since you can transform your numeric range with
6082an elisp expression.")
6083 (license license:gpl3+)))
4aafce22
JN
6084
6085(define-public emacs-bash-completion
6086 (package
6087 (name "emacs-bash-completion")
6088 (version "2.0.0")
6089 (source
6090 (origin
6091 (method url-fetch)
6092 (uri (string-append
6093 "https://github.com/szermatt/emacs-bash-completion/archive/v"
6094 version ".tar.gz"))
6095 (file-name (string-append name "-" version ".tar.gz"))
6096 (sha256
6097 (base32
6098 "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
6099 (inputs `(("bash" ,bash)))
6100 (build-system emacs-build-system)
6101 (arguments
6102 `(#:phases
6103 (modify-phases %standard-phases
6104 (add-before 'install 'configure
6105 (lambda* (#:key inputs #:allow-other-keys)
6106 (let ((bash (assoc-ref inputs "bash")))
6107 (emacs-substitute-variables "bash-completion.el"
6108 ("bash-completion-prog" (string-append bash "/bin/bash"))))
6109 #t)))))
6110 (home-page "https://github.com/szermatt/emacs-bash-completion")
6111 (synopsis "BASH completion for the shell buffer")
6112 (description
6113 "@code{bash-completion} defines dynamic completion hooks for shell-mode
6114and shell-command prompts that are based on bash completion.")
6115 (license license:gpl2+)))
d02c2873
KM
6116
6117(define-public emacs-easy-kill
6118 (package
6119 (name "emacs-easy-kill")
6120 (version "0.9.3")
6121 (source (origin
6122 (method url-fetch)
6123 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
6124 version ".tar"))
6125 (sha256
6126 (base32
6127 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
6128 (build-system emacs-build-system)
6129 (home-page "https://github.com/leoliu/easy-kill")
6130 (synopsis "Kill and mark things easily in Emacs")
6131 (description
6132 "This package provides commands @code{easy-kill} and @code{easy-mark} to
6133let users kill or mark things easily.")
6134 (license license:gpl3+)))