gnu: emacs-goto-chg: Set source file-name.
[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>
d95e8e01 14;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
899bcad3 15;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
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>
acf7d4a7 25;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
99517d92 26;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
deddeb44 27;;; Copyright © 2017 Feng Shu <tumashu@163.com>
468bdabb
LC
28;;;
29;;; This file is part of GNU Guix.
30;;;
31;;; GNU Guix is free software; you can redistribute it and/or modify it
32;;; under the terms of the GNU General Public License as published by
33;;; the Free Software Foundation; either version 3 of the License, or (at
34;;; your option) any later version.
35;;;
36;;; GNU Guix is distributed in the hope that it will be useful, but
37;;; WITHOUT ANY WARRANTY; without even the implied warranty of
38;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
39;;; GNU General Public License for more details.
40;;;
41;;; You should have received a copy of the GNU General Public License
42;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
43
1ffa7090 44(define-module (gnu packages emacs)
f61e0e79 45 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
46 #:use-module (guix packages)
47 #:use-module (guix download)
f906d30c 48 #:use-module (guix git-download)
e5045f30
FB
49 #:use-module (guix gexp)
50 #:use-module (guix monads)
51 #:use-module (guix store)
468bdabb 52 #:use-module (guix build-system gnu)
78395334 53 #:use-module (guix build-system emacs)
71f57158 54 #:use-module (guix build-system glib-or-gtk)
fe4163f3 55 #:use-module (guix build-system trivial)
59a43334 56 #:use-module (gnu packages)
acf7d4a7 57 #:use-module (gnu packages audio)
cf006d2e 58 #:use-module (gnu packages code)
f906d30c 59 #:use-module (gnu packages guile)
7abe1965 60 #:use-module (gnu packages gtk)
8ba4dc63 61 #:use-module (gnu packages gnome)
1ffa7090 62 #:use-module (gnu packages ncurses)
99517d92 63 #:use-module (gnu packages python)
41184943 64 #:use-module (gnu packages tex)
1ffa7090 65 #:use-module (gnu packages texinfo)
acf7d4a7 66 #:use-module (gnu packages tcl)
a7fd7b68 67 #:use-module (gnu packages tls)
4f028c8f 68 #:use-module (gnu packages pkg-config)
50efa797
LC
69 #:use-module (gnu packages xorg)
70 #:use-module (gnu packages lesstif)
e55354b8 71 #:use-module (gnu packages image)
504a83af 72 #:use-module (gnu packages linux)
9a4c9715 73 #:use-module (gnu packages version-control)
18d26210
MW
74 #:use-module (gnu packages imagemagick)
75 #:use-module (gnu packages w3m)
89925972 76 #:use-module (gnu packages wget)
18d26210 77 #:use-module (gnu packages autotools)
be379ee7 78 #:use-module (gnu packages base)
f61e0e79 79 #:use-module (gnu packages compression)
50efa797 80 #:use-module (gnu packages xml)
4a3e602c 81 #:use-module (gnu packages glib)
388fd01b 82 #:use-module (gnu packages acl)
13fe4891 83 #:use-module (gnu packages package-management)
77c9286d 84 #:use-module (gnu packages perl)
ec9825d6 85 #:use-module (gnu packages pdf)
58a7dc13 86 #:use-module (gnu packages scheme)
41184943 87 #:use-module (gnu packages statistics)
77c9286d
LC
88 #:use-module (gnu packages xiph)
89 #:use-module (gnu packages mp3)
154c71e0 90 #:use-module (gnu packages gettext)
a80b60f4
AI
91 #:use-module (gnu packages fribidi)
92 #:use-module (gnu packages gd)
93 #:use-module (gnu packages fontutils)
4a3e602c
TUBK
94 #:use-module (guix utils)
95 #:use-module (srfi srfi-1))
468bdabb
LC
96
97(define-public emacs
98 (package
99 (name "emacs")
1f8c4c53 100 (version "25.2")
468bdabb
LC
101 (source (origin
102 (method url-fetch)
103 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 104 version ".tar.xz"))
468bdabb
LC
105 (sha256
106 (base32
1f8c4c53 107 "1ykkq0xl28ljdg61bm6gzy04ww86ajms98gix72qg6cpr6a53dar"))
fc1adab1 108 (patches (search-patches "emacs-exec-path.patch"
4509ec72 109 "emacs-fix-scheme-indent-function.patch"
486f36eb
AK
110 "emacs-source-date-epoch.patch"))
111 (modules '((guix build utils)))
112 (snippet
113 ;; Delete the bundled byte-compiled elisp files and
114 ;; generated autoloads.
115 '(with-directory-excursion "lisp"
116 (for-each delete-file
117 (append (find-files "." "\\.elc$")
118 (find-files "." "loaddefs\\.el$")
119 ;; This is the only "autoloads" file that
120 ;; does not have "*loaddefs.el" name.
dc701091
LC
121 '("eshell/esh-groups.el")))
122
123 ;; Make sure Tramp looks for binaries in the right places on
124 ;; remote GuixSD machines, where 'getconf PATH' returns
125 ;; something bogus.
126 (substitute* "net/tramp-sh.el"
127 ;; Patch the line after "(defcustom tramp-remote-path".
128 (("\\(tramp-default-remote-path")
129 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
130 "~/.guix-profile/bin" "~/.guix-profile/sbin"
131 "/run/current-system/profile/bin"
132 "/run/current-system/profile/sbin")))))))
71f57158 133 (build-system glib-or-gtk-build-system)
468bdabb 134 (arguments
13fe4891
FB
135 `(#:phases
136 (modify-phases %standard-phases
137 (add-before 'configure 'fix-/bin/pwd
138 (lambda _
139 ;; Use `pwd', not `/bin/pwd'.
140 (substitute* (find-files "." "^Makefile\\.in$")
141 (("/bin/pwd")
142 "pwd"))))
13fe4891 143 (add-after 'install 'install-site-start
59d04f63
AK
144 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
145 ;; provided by Guix and installed in
13fe4891
FB
146 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
147 ;; automatically found.
148 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
149 (let* ((out (assoc-ref outputs "out"))
150 (lisp-dir (string-append out "/share/emacs/site-lisp")))
151 (copy-file (assoc-ref inputs "guix-emacs.el")
152 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
153 (with-output-to-file (string-append lisp-dir "/site-start.el")
154 (lambda ()
9bd94544
AK
155 (display
156 (string-append "(when (require 'guix-emacs nil t)\n"
157 " (guix-emacs-autoload-packages))\n"))))
13fe4891 158 #t))))))
468bdabb 159 (inputs
c4c4cc05 160 `(("gnutls" ,gnutls)
468bdabb
LC
161 ("ncurses" ,ncurses)
162
163 ;; TODO: Add the optional dependencies.
fa275717 164 ("libx11" ,libx11)
0a9e9a63 165 ("gtk+" ,gtk+)
fa275717 166 ("libxft" ,libxft)
50efa797 167 ("libtiff" ,libtiff)
504a83af 168 ("giflib" ,giflib)
50efa797 169 ("libjpeg" ,libjpeg-8)
388fd01b 170 ("acl" ,acl)
50efa797
LC
171
172 ;; When looking for libpng `configure' links with `-lpng -lz', so we
173 ;; must also provide zlib as an input.
174 ("libpng" ,libpng)
f61e0e79 175 ("zlib" ,zlib)
50efa797 176
8ba4dc63 177 ("librsvg" ,librsvg)
fa275717 178 ("libxpm" ,libxpm)
50efa797 179 ("libxml2" ,libxml2)
504a83af
MW
180 ("libice" ,libice)
181 ("libsm" ,libsm)
182 ("alsa-lib" ,alsa-lib)
13fe4891 183 ("dbus" ,dbus)
01c5c21a
AI
184
185 ;; multilingualization support
186 ("libotf" ,libotf)
187 ("m17n-lib" ,m17n-lib)))
c4c4cc05 188 (native-inputs
59d04f63
AK
189 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
190 ("pkg-config" ,pkg-config)
c4c4cc05 191 ("texinfo" ,texinfo)))
64c98347
LC
192
193 (native-search-paths
194 (list (search-path-specification
195 (variable "INFOPATH")
196 (files '("share/info")))))
197
6fd52309 198 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 199 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 200 (description
79c311b8
LC
201 "GNU Emacs is an extensible and highly customizable text editor. It is
202based on an Emacs Lisp interpreter with extensions for text editing. Emacs
203has been extended in essentially all areas of computing, giving rise to a
204vast array of packages supporting, e.g., email, IRC and XMPP messaging,
205spreadsheets, remote server editing, and much more. Emacs includes extensive
206documentation on all aspects of the system, from basic editing to writing
207large Lisp programs. It has full Unicode support for nearly all human
208languages.")
f61e0e79 209 (license license:gpl3+)))
4f028c8f 210
b2eaf7ba 211(define-public emacs-minimal
4fd540b7
LC
212 ;; This is the version that you should use as an input to packages that just
213 ;; need to byte-compile .el files.
b2eaf7ba
AK
214 (package (inherit emacs)
215 (name "emacs-minimal")
216 (synopsis "The extensible text editor (used only for byte-compilation)")
217 (build-system gnu-build-system)
218 (arguments
219 (substitute-keyword-arguments (package-arguments emacs)
220 ((#:phases phases)
221 `(modify-phases ,phases
222 (delete 'install-site-start)))))
223 (inputs
224 `(("ncurses" ,ncurses)))
225 (native-inputs
226 `(("pkg-config" ,pkg-config)))))
227
228(define-public emacs-no-x
4fd540b7 229 (package (inherit emacs)
4fd540b7
LC
230 (name "emacs-no-x")
231 (synopsis "The extensible, customizable, self-documenting text
232editor (console only)")
233 (build-system gnu-build-system)
234 (inputs (fold alist-delete
235 (package-inputs emacs)
236 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
8ba4dc63 237 "libpng" "librsvg" "libxpm" "libice" "libsm"
4fd540b7
LC
238
239 ;; D-Bus depends on libx11, so remove it as well.
240 "dbus")))))
241
4a3e602c
TUBK
242(define-public emacs-no-x-toolkit
243 (package (inherit emacs)
244 (name "emacs-no-x-toolkit")
245 (synopsis "The extensible, customizable, self-documenting text
246editor (without an X toolkit)" )
71f57158 247 (build-system gnu-build-system)
388fd01b
MW
248 (inputs (append `(("inotify-tools" ,inotify-tools))
249 (alist-delete "gtk+" (package-inputs emacs))))
250 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
251 (package-arguments emacs)))))
4a3e602c 252
f906d30c
CAW
253(define-public guile-emacs
254 (package (inherit emacs)
255 (name "guile-emacs")
256 (version "20150512.41120e0")
257 (source (origin
258 (method git-fetch)
259 (uri (git-reference
260 (url "git://git.hcoop.net/git/bpt/emacs.git")
261 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
262 (sha256
263 (base32
264 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
265 (native-inputs
266 `(("autoconf" ,autoconf)
267 ("automake" ,automake)
268 ("guile" ,guile-for-guile-emacs)
269 ,@(package-native-inputs emacs)))
270 (arguments
271 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
272 #:parallel-build? #f
273 ;; Tests aren't passing for now.
274 #:tests? #f
275 ,@(package-arguments emacs))
276 ((#:phases phases)
277 `(modify-phases ,phases
278 (add-after 'unpack 'autogen
279 (lambda _
280 (zero? (system* "sh" "autogen.sh"))))))))))
281
4f028c8f
LC
282\f
283;;;
284;;; Emacs hacking.
285;;;
286
287(define-public geiser
288 (package
289 (name "geiser")
113e23e0 290 (version "0.9")
4f028c8f
LC
291 (source (origin
292 (method url-fetch)
cf8f58b2
LC
293 (uri (string-append "mirror://savannah/geiser/" version
294 "/geiser-" version ".tar.gz"))
4f028c8f 295 (sha256
1f8ad12a 296 (base32
a9c61335 297 "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
4f028c8f 298 (build-system gnu-build-system)
d51cafb0
AK
299 (arguments
300 '(#:phases (alist-cons-after
301 'install 'post-install
302 (lambda* (#:key outputs #:allow-other-keys)
303 (symlink "geiser-install.el"
304 (string-append (assoc-ref outputs "out")
305 "/share/emacs/site-lisp/"
306 "geiser-autoloads.el")))
307 %standard-phases)))
6aaf3899 308 (inputs `(("guile" ,guile-2.0)))
b8fc3622 309 (native-inputs `(("emacs" ,emacs-minimal)))
4f028c8f
LC
310 (home-page "http://nongnu.org/geiser/")
311 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
312 (description
9586011d
LC
313 "Geiser is a collection of Emacs major and minor modes that conspire with
314one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
315continuously running Scheme interpreter takes the center of the stage in
316Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
317implementation, Emacs and, ultimately, the schemer, giving them access to live
318metadata.")
f61e0e79 319 (license license:bsd-3)))
9a4c9715 320
11e4c1fd 321(define-public geiser-next
a9c61335
AK
322 ;; This has become "geiser".
323 (deprecated-package "geiser-next" geiser))
11e4c1fd 324
fe4163f3
MW
325(define-public paredit
326 (package
967cfd18 327 (name "emacs-paredit")
c181b870 328 (version "24")
fe4163f3 329 (source (origin
c181b870
AK
330 (method url-fetch)
331 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
332 version ".el"))
333 (sha256
334 (base32
335 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
fe4163f3 336 (build-system trivial-build-system)
b8fc3622 337 (native-inputs `(("emacs" ,emacs-minimal)))
fe4163f3
MW
338 (arguments
339 `(#:modules ((guix build utils)
340 (guix build emacs-utils))
341 #:builder
342 (begin
343 (use-modules (guix build utils))
344 (use-modules (guix build emacs-utils))
345
346 (let* ((emacs (string-append (assoc-ref %build-inputs "emacs")
347 "/bin/emacs"))
348 (source (assoc-ref %build-inputs "source"))
349 (lisp-dir (string-append %output
350 "/share/emacs/site-lisp"))
351 (target (string-append lisp-dir "/paredit.el")))
352 (mkdir-p lisp-dir)
353 (copy-file source target)
354 (with-directory-excursion lisp-dir
355 (parameterize ((%emacs emacs))
d51cafb0 356 (emacs-generate-autoloads ,name lisp-dir)
fe4163f3
MW
357 (emacs-batch-eval '(byte-compile-file "paredit.el"))))))))
358 (home-page "http://mumble.net/~campbell/emacs/paredit/")
359 (synopsis "Emacs minor mode for editing parentheses")
360 (description
361 "ParEdit (paredit.el) is a minor mode for performing structured editing
362of S-expression data. The typical example of this would be Lisp or Scheme
363source code.
364
365ParEdit helps **keep parentheses balanced** and adds many keys for moving
366S-expressions and moving around in S-expressions. Its behavior can be jarring
367for those who may want transient periods of unbalanced parentheses, such as
368when typing parentheses directly or commenting out code line by line.")
f61e0e79 369 (license license:gpl3+)))
fe4163f3 370
967cfd18
LC
371(define-public paredit/old-name
372 (deprecated-package "paredit" paredit))
373
2f910ef6
LC
374(define-public git-modes
375 (package
376 (name "git-modes")
846344d0 377 (version "1.2.4")
2f910ef6
LC
378 (source (origin
379 (method url-fetch)
380 (uri (string-append
381 "https://github.com/magit/git-modes/archive/"
382 version ".tar.gz"))
8fd3c1ff 383 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
384 (sha256
385 (base32
846344d0 386 "0xxrmf0jnyljxvllc22qa0v8lgi4k1ldnayjm5hf68m25jsr378l"))))
2f910ef6
LC
387 (build-system gnu-build-system)
388 (arguments
389 `(#:modules ((guix build gnu-build-system)
390 (guix build emacs-utils)
391 (guix build utils))
392 #:imported-modules (,@%gnu-build-system-modules
393 (guix build emacs-utils))
394
395 #:make-flags (list (string-append "PREFIX="
396 (assoc-ref %outputs "out"))
397 ;; Don't put .el files in a 'git-modes'
398 ;; sub-directory.
399 (string-append "LISPDIR="
400 (assoc-ref %outputs "out")
401 "/share/emacs/site-lisp"))
89949e8f 402 #:tests? #f ; no check target
2f910ef6
LC
403 #:phases (modify-phases %standard-phases
404 (delete 'configure)
405 (add-after 'install 'emacs-autoloads
406 (lambda* (#:key outputs #:allow-other-keys)
407 (let* ((out (assoc-ref outputs "out"))
408 (lisp (string-append
409 out "/share/emacs/site-lisp/")))
410 (emacs-generate-autoloads ,name lisp)))))))
b8fc3622 411 (native-inputs `(("emacs" ,emacs-minimal)))
2f910ef6
LC
412 (home-page "https://github.com/magit/git-modes")
413 (synopsis "Emacs major modes for Git configuration files")
414 (description
415 "This package provides Emacs major modes for editing various Git
416configuration files, such as .gitattributes, .gitignore, and .git/config.")
417 (license license:gpl3+)))
418
2b0e4300
AK
419(define-public emacs-with-editor
420 (package
421 (name "emacs-with-editor")
3e275818 422 (version "2.5.10")
2b0e4300
AK
423 (source (origin
424 (method url-fetch)
425 (uri (string-append
426 "https://github.com/magit/with-editor/archive/v"
427 version ".tar.gz"))
428 (file-name (string-append name "-" version ".tar.gz"))
429 (sha256
430 (base32
3e275818 431 "0lsxa1hghybkzvqhqvvym3hxbyp9vjcnnpb9j800z0vyhbnlka67"))))
2b0e4300
AK
432 (build-system emacs-build-system)
433 (propagated-inputs
434 `(("emacs-dash" ,emacs-dash)))
435 (home-page "https://github.com/magit/with-editor")
436 (synopsis "Emacs library for using Emacsclient as EDITOR")
437 (description
438 "This package provides an Emacs library to use the Emacsclient as
439@code{$EDITOR} of child processes, making sure they know how to call home.
440For remote processes a substitute is provided, which communicates with Emacs
441on stdout instead of using a socket as the Emacsclient does.")
442 (license license:gpl3+)))
443
9a4c9715
MW
444(define-public magit
445 (package
446 (name "magit")
2617050b 447 (version "2.10.3")
9a4c9715
MW
448 (source (origin
449 (method url-fetch)
fac8b30b
MW
450 (uri (string-append
451 "https://github.com/magit/magit/releases/download/"
452 version "/" name "-" version ".tar.gz"))
9a4c9715 453 (sha256
7e4871ba 454 (base32
2617050b 455 "03ln65ss420gc3h4pi56dayd1p163xfxrxrd9fkb9xnkl8mjglqk"))))
9a4c9715 456 (build-system gnu-build-system)
2c047b4a 457 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 458 ("emacs" ,emacs-minimal)))
46bd4515
AG
459 (inputs
460 `(("git" ,git)
461 ("perl" ,perl)))
3db5ed11
AK
462 (propagated-inputs
463 `(("dash" ,emacs-dash)
464 ("with-editor" ,emacs-with-editor)))
9a4c9715
MW
465 (arguments
466 `(#:modules ((guix build gnu-build-system)
467 (guix build utils)
468 (guix build emacs-utils))
8ff3df5b 469 #:imported-modules (,@%gnu-build-system-modules
9a4c9715 470 (guix build emacs-utils))
7e4871ba
LC
471
472 #:test-target "test"
55f29c39 473 #:tests? #f ; tests are not included in the release
7e4871ba 474
55f29c39
AK
475 #:make-flags
476 (list (string-append "PREFIX=" %output)
477 ;; Don't put .el files in a sub-directory.
478 (string-append "lispdir=" %output "/share/emacs/site-lisp")
479 (string-append "DASH_DIR="
480 (assoc-ref %build-inputs "dash")
481 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11
AK
482 ,(package-version emacs-dash))
483 (string-append "WITH_EDITOR_DIR="
484 (assoc-ref %build-inputs "with-editor")
485 "/share/emacs/site-lisp/guix.d/with-editor-"
486 ,(package-version emacs-with-editor)))
d41a8a07 487
9a4c9715 488 #:phases
c466bfd1 489 (modify-phases %standard-phases
55f29c39 490 (delete 'configure)
c466bfd1
LC
491 (add-before
492 'build 'patch-exec-paths
493 (lambda* (#:key inputs #:allow-other-keys)
46bd4515
AG
494 (let ((git (assoc-ref inputs "git"))
495 (perl (assoc-ref inputs "perl")))
55f29c39
AK
496 (emacs-substitute-variables "lisp/magit-git.el"
497 ("magit-git-executable" (string-append git "/bin/git")))
46bd4515
AG
498 (substitute* "lisp/magit-sequence.el"
499 (("perl") (string-append perl "/bin/perl")))
55f29c39 500 #t))))))
9a4c9715
MW
501 (home-page "http://magit.github.io/")
502 (synopsis "Emacs interface for the Git version control system")
503 (description
504 "With Magit, you can inspect and modify your Git repositories with Emacs.
505You can review and commit the changes you have made to the tracked files, for
506example, and you can browse the history of past changes. There is support for
507cherry picking, reverting, merging, rebasing, and other common Git
508operations.")
f61e0e79 509 (license license:gpl3+)))
18d26210 510
97cc51f8
LC
511(define-public magit-svn
512 (package
513 (name "magit-svn")
b7f16845 514 (version "2.1.1")
97cc51f8 515 (source (origin
be379ee7
AK
516 (method url-fetch)
517 (uri (string-append
518 "https://github.com/magit/magit-svn/archive/"
519 version ".tar.gz"))
520 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
521 (sha256
522 (base32
b7f16845 523 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz"))))
97cc51f8 524 (build-system trivial-build-system)
b8fc3622 525 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
526 ("tar" ,tar)
527 ("gzip" ,gzip)))
528 (propagated-inputs `(("dash" ,emacs-dash)
529 ("magit" ,magit)))
97cc51f8
LC
530 (arguments
531 `(#:modules ((guix build utils)
532 (guix build emacs-utils))
533
534 #:builder
535 (begin
536 (use-modules (guix build utils)
537 (guix build emacs-utils))
538
be379ee7
AK
539 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
540 "/bin/tar"))
541 (PATH (string-append (assoc-ref %build-inputs "gzip")
542 "/bin"))
543 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
544 "/bin/emacs"))
545 (magit (string-append (assoc-ref %build-inputs "magit")
546 "/share/emacs/site-lisp"))
be379ee7
AK
547 (dash (string-append (assoc-ref %build-inputs "dash")
548 "/share/emacs/site-lisp/guix.d/dash-"
549 ,(package-version emacs-dash)))
97cc51f8
LC
550 (source (assoc-ref %build-inputs "source"))
551 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7
AK
552 (setenv "PATH" PATH)
553 (system* tar "xvf" source)
96c46210
LC
554
555 (install-file (string-append ,name "-" ,version "/magit-svn.el")
556 lisp-dir)
97cc51f8
LC
557
558 (with-directory-excursion lisp-dir
559 (parameterize ((%emacs emacs))
560 (emacs-generate-autoloads ,name lisp-dir)
561 (setenv "EMACSLOADPATH"
be379ee7 562 (string-append ":" magit ":" dash))
97cc51f8
LC
563 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
564 (home-page "https://github.com/magit/magit-svn")
565 (synopsis "Git-SVN extension to Magit")
566 (description
567 "This package is an extension to Magit, the Git Emacs mode, providing
568support for Git-SVN.")
569 (license license:gpl3+)))
570
c1562e3d
AK
571(define-public emacs-magit-popup
572 (package
573 (name "emacs-magit-popup")
574 (version (package-version magit))
575 (source (origin
576 (method url-fetch)
577 (uri (string-append
578 "https://raw.githubusercontent.com/magit/magit/"
579 version "/lisp/magit-popup.el"))
580 (file-name (string-append "magit-popup-" version ".el"))
581 (sha256
582 (base32
7f86a97c 583 "08b6ypfiq8zavjfq0wcdh26xziwq7rqvvv3lfpib9101146kzx6d"))))
c1562e3d
AK
584 (build-system emacs-build-system)
585 (propagated-inputs
586 `(("emacs-dash" ,emacs-dash)))
587 (home-page "https://github.com/magit/magit")
588 (synopsis "Define prefix-infix-suffix command combos")
589 (description
590 "This library implements a generic interface for toggling switches and
591setting options and then invoking an Emacs command which does something with
592these arguments. The prototypical use is for the command to call an external
593process, passing on the arguments as command line arguments.")
594 (license license:gpl3+)))
595
00f4bd50
FB
596(define-public haskell-mode
597 (package
598 (name "haskell-mode")
08fc0d68 599 (version "16.1")
00f4bd50
FB
600 (source (origin
601 (method url-fetch)
602 (file-name (string-append name "-" version ".tar.gz"))
603 (uri (string-append
604 "https://github.com/haskell/haskell-mode/archive/v"
605 version ".tar.gz"))
606 (sha256
08fc0d68
FB
607 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
608 (inputs
609 `(("emacs-el-search" ,emacs-el-search) ; for tests
610 ("emacs-stream" ,emacs-stream))) ; for tests
611 (propagated-inputs
612 `(("emacs-dash" ,emacs-dash)))
00f4bd50 613 (native-inputs
b8fc3622 614 `(("emacs" ,emacs-minimal)
6aaf3899 615 ("texinfo" ,texinfo)))
00f4bd50
FB
616 (build-system gnu-build-system)
617 (arguments
618 `(#:make-flags (list (string-append "EMACS="
619 (assoc-ref %build-inputs "emacs")
620 "/bin/emacs"))
08fc0d68
FB
621 #:modules ((ice-9 match)
622 (srfi srfi-26)
623 ,@%gnu-build-system-modules)
00f4bd50
FB
624 #:phases
625 (modify-phases %standard-phases
626 (delete 'configure)
627 (add-before
628 'build 'pre-build
629 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68
FB
630 (define (el-dir store-dir)
631 (match (find-files store-dir)
632 ((f1 f2 ...) (dirname f1))
633 (_ "")))
634
00f4bd50 635 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
636 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
637
00f4bd50 638 (setenv "SHELL" "sh")
08fc0d68
FB
639 (setenv "EMACSLOADPATH"
640 (string-concatenate
641 (map (match-lambda
642 (((? emacs-prefix? name) . dir)
643 (string-append (el-dir dir) ":"))
644 (_ ""))
645 inputs)))
00f4bd50 646 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
647 (substitute* "tests/haskell-code-conventions.el"
648 ;; Function name recently changed in "emacs-el-search".
649 (("el-search--search-pattern") "el-search-forward")
650 ;; Don't contact home.
651 (("\\(when \\(>= emacs-major-version 25\\)")
652 "(require 'el-search) (when nil"))
00f4bd50
FB
653 #t)))
654 (replace
655 'install
656 (lambda* (#:key outputs #:allow-other-keys)
657 (let* ((out (assoc-ref outputs "out"))
658 (el-dir (string-append out "/share/emacs/site-lisp"))
659 (doc (string-append
660 out "/share/doc/haskell-mode-" ,version))
661 (info (string-append out "/share/info")))
662 (define (copy-to-dir dir files)
96c46210
LC
663 (for-each (lambda (f)
664 (install-file f dir))
665 files))
00f4bd50
FB
666
667 (with-directory-excursion "doc"
668 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
669 (error "makeinfo failed"))
96c46210 670 (install-file "haskell-mode.info" info))
00f4bd50
FB
671 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
672 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 673 ;; These are part of other packages.
00f4bd50 674 (with-directory-excursion el-dir
08fc0d68 675 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
676 #t))))))
677 (home-page "https://github.com/haskell/haskell-mode")
678 (synopsis "Haskell mode for Emacs")
679 (description
680 "This is an Emacs mode for editing, debugging and developing Haskell
681programs.")
682 (license license:gpl3+)))
683
1defd8cd
LC
684(define-public let-alist
685 (package
686 (name "emacs-let-alist")
687 (version "1.0.4")
688 (source (origin
689 (method url-fetch)
f32ffa04 690 (uri (string-append "https://elpa.gnu.org/packages/let-alist-"
1defd8cd
LC
691 version ".el"))
692 (sha256
693 (base32
694 "07312bvvyz86lf64vdkxg2l1wgfjl25ljdjwlf1bdzj01c4hm88x"))))
695 (build-system trivial-build-system)
696 (arguments
697 `(#:modules ((guix build utils)
698 (guix build emacs-utils))
699
700 #:builder (begin
701 (use-modules (guix build emacs-utils)
702 (guix build utils))
703
704 (let* ((out (assoc-ref %outputs "out"))
705 (lispdir (string-append out
706 "/share/emacs/site-lisp/"
707 "guix.d/let-alist-"
708 ,version))
709 (emacs (assoc-ref %build-inputs "emacs")))
710
711 (mkdir-p lispdir)
712 (copy-file (assoc-ref %build-inputs "source")
713 (string-append lispdir "/let-alist.el"))
714
715 (setenv "PATH" (string-append emacs "/bin"))
716 (emacs-byte-compile-directory lispdir)
717 #t))))
b8fc3622 718 (native-inputs `(("emacs" ,emacs-minimal)))
f32ffa04 719 (home-page "https://elpa.gnu.org/packages/let-alist.html")
1defd8cd
LC
720 (synopsis "Easily let-bind values of an assoc-list by their names")
721 (description
722 "This package offers a single Emacs Lisp macro, @code{let-alist}. This
723macro takes a first argument, whose value must be an alist (association list),
724and a body.
725
726The macro expands to a let form containing the body, where each dotted symbol
727inside body is let-bound to their cdrs in the alist. Only those present in
728the body are let-bound and this search is done at compile time.")
729 (license license:gpl3+)))
730
6e3fdbbe
LC
731(define-public flycheck
732 (package
733 (name "emacs-flycheck")
50edf7fc 734 (version "30")
6e3fdbbe
LC
735 (source (origin
736 (method url-fetch)
0b928076
AK
737 (uri (string-append
738 "https://github.com/flycheck/flycheck/releases/download/"
739 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
740 (sha256
741 (base32
50edf7fc 742 "1rxzkaqsj48z3nska5wsgwafvwkam014dzqd32baycmxjl0jxvy7"))))
6e3fdbbe
LC
743 (build-system emacs-build-system)
744 (propagated-inputs
745 `(("emacs-dash" ,emacs-dash)
bdff55ea
LC
746 ("emacs-let-alist" ,let-alist)
747 ("emacs-seq" ,emacs-seq)))
6e3fdbbe
LC
748 (home-page "https://www.flycheck.org")
749 (synopsis "On-the-fly syntax checking")
750 (description
751 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
752replacement for the older Flymake extension which is part of GNU Emacs, with
753many improvements and additional features.
754
755Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
756checking for over 30 programming and markup languages with more than 70
757different tools. It highlights errors and warnings inline in the buffer, and
758provides an optional IDE-like error list.")
759 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
760
18d26210
MW
761\f
762;;;
763;;; Web browsing.
764;;;
765
766(define-public emacs-w3m
767 (package
768 (name "emacs-w3m")
2e74b9f4 769 (version "1.4.538+0.20141022")
18d26210
MW
770 (source (origin
771 (method url-fetch)
772 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
773 version ".orig.tar.gz"))
774 (sha256
2e74b9f4
AK
775 (base32
776 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
18d26210 777 (build-system gnu-build-system)
6aaf3899 778 (native-inputs `(("autoconf" ,autoconf)
b8fc3622 779 ("emacs" ,emacs-minimal)))
18d26210 780 (inputs `(("w3m" ,w3m)
6aaf3899 781 ("imagemagick" ,imagemagick)))
18d26210 782 (arguments
caaf1933 783 `(#:modules ((guix build gnu-build-system)
18d26210
MW
784 (guix build utils)
785 (guix build emacs-utils))
8ff3df5b 786 #:imported-modules (,@%gnu-build-system-modules
18d26210
MW
787 (guix build emacs-utils))
788 #:configure-flags
789 (let ((out (assoc-ref %outputs "out")))
790 (list (string-append "--with-lispdir="
791 out "/share/emacs/site-lisp")
792 (string-append "--with-icondir="
2e74b9f4
AK
793 out "/share/images/emacs-w3m")
794 ;; Leave .el files uncompressed, otherwise GC can't
795 ;; identify run-time dependencies. See
796 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
797 "--without-compress-install"))
18d26210
MW
798 #:tests? #f ; no check target
799 #:phases
932ece65
AK
800 (modify-phases %standard-phases
801 (add-after 'unpack 'autoconf
802 (lambda _
803 (zero? (system* "autoconf"))))
804 (add-before 'build 'patch-exec-paths
805 (lambda* (#:key inputs outputs #:allow-other-keys)
806 (let ((out (assoc-ref outputs "out"))
807 (w3m (assoc-ref inputs "w3m"))
808 (imagemagick (assoc-ref inputs "imagemagick"))
809 (coreutils (assoc-ref inputs "coreutils")))
810 (emacs-substitute-variables "w3m.el"
811 ("w3m-command" (string-append w3m "/bin/w3m"))
812 ("w3m-touch-command"
813 (string-append coreutils "/bin/touch"))
814 ("w3m-image-viewer"
815 (string-append imagemagick "/bin/display"))
816 ("w3m-icon-directory"
817 (string-append out "/share/images/emacs-w3m")))
818 (emacs-substitute-variables "w3m-image.el"
819 ("w3m-imagick-convert-program"
820 (string-append imagemagick "/bin/convert"))
821 ("w3m-imagick-identify-program"
822 (string-append imagemagick "/bin/identify")))
823 #t)))
824 (replace 'install
825 (lambda* (#:key outputs #:allow-other-keys)
826 (and (zero? (system* "make" "install" "install-icons"))
827 (with-directory-excursion
828 (string-append (assoc-ref outputs "out")
829 "/share/emacs/site-lisp")
830 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
831 (symlink "w3m-load.el" "w3m-autoloads.el")
832 #t)))))))
18d26210
MW
833 (home-page "http://emacs-w3m.namazu.org/")
834 (synopsis "Simple Web browser for Emacs based on w3m")
835 (description
35b9e423 836 "Emacs-w3m is an emacs interface for the w3m web browser.")
f61e0e79 837 (license license:gpl2+)))
89925972
MW
838
839(define-public emacs-wget
840 (package
841 (name "emacs-wget")
842 (version "0.5.0")
843 (source (origin
844 (method url-fetch)
845 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
846 version ".orig.tar.gz"))
847 (sha256
848 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
849 (build-system gnu-build-system)
6aaf3899 850 (inputs `(("wget" ,wget)))
b8fc3622 851 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 852 (arguments
caaf1933 853 `(#:modules ((guix build gnu-build-system)
89925972
MW
854 (guix build utils)
855 (guix build emacs-utils))
caaf1933 856 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
857 (guix build emacs-utils))
858 #:tests? #f ; no check target
859 #:phases
860 (alist-replace
861 'configure
862 (lambda* (#:key outputs #:allow-other-keys)
863 (substitute* "Makefile"
864 (("/usr/local") (assoc-ref outputs "out"))
865 (("/site-lisp/emacs-wget") "/site-lisp")))
866 (alist-cons-before
867 'build 'patch-exec-paths
868 (lambda* (#:key inputs outputs #:allow-other-keys)
869 (let ((wget (assoc-ref inputs "wget")))
870 (emacs-substitute-variables "wget.el"
871 ("wget-command" (string-append wget "/bin/wget")))))
d51cafb0
AK
872 (alist-cons-after
873 'install 'post-install
874 (lambda* (#:key outputs #:allow-other-keys)
875 (emacs-generate-autoloads
876 "wget" (string-append (assoc-ref outputs "out")
877 "/share/emacs/site-lisp/")))
878 %standard-phases)))))
89925972 879 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 880 (synopsis "Simple file downloader for Emacs based on wget")
89925972 881 (description
35b9e423 882 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 883 (license license:gpl2+)))
77c9286d
LC
884
885\f
886;;;
887;;; Multimedia.
888;;;
889
890(define-public emms
891 (package
d06d4d7b 892 (name "emacs-emms")
20832afb 893 (version "4.3")
77c9286d
LC
894 (source (origin
895 (method url-fetch)
896 (uri (string-append "mirror://gnu/emms/emms-"
897 version ".tar.gz"))
898 (sha256
899 (base32
20832afb 900 "0dicgkl8l83n4cah5vk7c242abbwpyzlih451blgw37f3rijs480"))
77c9286d
LC
901 (modules '((guix build utils)))
902 (snippet
903 '(substitute* "Makefile"
904 (("/usr/bin/install-info")
905 ;; No need to use 'install-info' since it would create a
906 ;; useless 'dir' file.
907 "true")
908 (("^INFODIR=.*")
909 ;; Install Info files to $out/share/info, not $out/info.
910 "INFODIR := $(PREFIX)/share/info\n")
911 (("/site-lisp/emms")
912 ;; Install directly in share/emacs/site-lisp, not in a
913 ;; sub-directory.
914 "/site-lisp")
915 (("^all: (.*)\n" _ rest)
916 ;; Build 'emms-print-metadata'.
917 (string-append "all: " rest " emms-print-metadata\n"))))))
918 (build-system gnu-build-system)
919 (arguments
caaf1933 920 `(#:modules ((guix build gnu-build-system)
77c9286d
LC
921 (guix build utils)
922 (guix build emacs-utils))
caaf1933 923 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
924 (guix build emacs-utils))
925
2fe176be
EF
926 #:phases
927 (modify-phases %standard-phases
928 (replace 'configure
929 (lambda* (#:key inputs outputs #:allow-other-keys)
930 (let ((out (assoc-ref outputs "out"))
931 (vorbis (assoc-ref inputs "vorbis-tools"))
932 (alsa (assoc-ref inputs "alsa-utils"))
933 (mpg321 (assoc-ref inputs "mpg321"))
934 (mp3info (assoc-ref inputs "mp3info")))
935 ;; Specify the installation directory.
936 (substitute* "Makefile"
937 (("PREFIX=.*$")
938 (string-append "PREFIX := " out "\n")))
939
940 (setenv "SHELL" (which "sh"))
941 (setenv "CC" "gcc")
942
943 ;; Specify the absolute file names of the various
944 ;; programs so that everything works out-of-the-box.
945 (with-directory-excursion "lisp"
946 (emacs-substitute-variables
947 "emms-player-mpg321-remote.el"
948 ("emms-player-mpg321-remote-command"
949 (string-append mpg321 "/bin/mpg321")))
950 (substitute* "emms-player-simple.el"
951 (("\"ogg123\"")
952 (string-append "\"" vorbis "/bin/ogg123\"")))
953 (emacs-substitute-variables "emms-info-ogginfo.el"
954 ("emms-info-ogginfo-program-name"
955 (string-append vorbis "/bin/ogginfo")))
956 (emacs-substitute-variables "emms-info-libtag.el"
957 ("emms-info-libtag-program-name"
958 (string-append out "/bin/emms-print-metadata")))
959 (emacs-substitute-variables "emms-info-mp3info.el"
960 ("emms-info-mp3info-program-name"
961 (string-append mp3info "/bin/mp3info")))
962 (substitute* "emms-volume-amixer.el"
963 (("\"amixer\"")
964 (string-append "\"" alsa "/bin/amixer\"")))
965 (substitute* "emms-tag-editor.el"
966 (("\"mp3info\"")
967 (string-append "\"" mp3info "/bin/mp3info\"")))))))
968 (add-before 'install 'pre-install
969 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 970 ;; The 'install' rule expects the target directories to exist.
2fe176be 971 (let* ((out (assoc-ref outputs "out"))
c3a10d30 972 (bin (string-append out "/bin"))
2fe176be 973 (man1 (string-append out "/share/man/man1")))
c3a10d30 974 (mkdir-p bin)
2fe176be
EF
975 (mkdir-p man1)
976 #t)))
977 (add-after 'install 'post-install
978 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 979 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
980 (symlink "emms-auto.el"
981 (string-append out "/share/emacs/site-lisp/"
c3a10d30 982 "emms-autoloads.el"))))))
77c9286d 983 #:tests? #f))
b8fc3622 984 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 985 ("texinfo" ,texinfo)))
c72aed6d 986 (inputs `(("alsa-utils" ,alsa-utils)
77c9286d
LC
987 ("vorbis-tools" ,vorbis-tools)
988 ("mpg321" ,mpg321)
989 ("taglib" ,taglib)
990 ("mp3info" ,mp3info)))
38cb4766 991 (properties '((upstream-name . "emms")))
77c9286d
LC
992 (synopsis "Emacs Multimedia System")
993 (description
994 "EMMS is the Emacs Multimedia System. It is a small front-end which
995can control one of the supported external players. Thus, it supports
996whatever formats are supported by your music player. It also
997supports tagging and playlist management, all behind a clean and
998light user interface.")
6fd52309 999 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 1000 (license license:gpl3+)))
c7e553a3 1001
1095bd1d
RW
1002(define-public emacs-emms-player-mpv
1003 (package
1004 (name "emacs-emms-player-mpv")
f9875807 1005 (version "0.0.10")
1095bd1d
RW
1006 (source
1007 (origin
1008 (method url-fetch)
1009 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
1010 version ".tar.gz"))
1011 (file-name (string-append name "-" version ".tar.gz"))
1012 (sha256
1013 (base32
f9875807 1014 "1q81fpmwr8hpdgq71vbdai2nml4yyqbmk4ffdyl4irlwph8gfjyq"))))
1095bd1d
RW
1015 (build-system emacs-build-system)
1016 (propagated-inputs
1017 `(("emms" ,emms)))
1018 (home-page "https://github.com/dochang/emms-player-mpv/")
1019 (synopsis "Mpv support for EMMS")
1020 (description
1021 "This package provides an EMMS player that uses mpv. It supports pause
1022and seeking.")
1023 (license license:gpl3+)))
1024
2316078a
RW
1025(define-public emacs-emms-mode-line-cycle
1026 (package
1027 (name "emacs-emms-mode-line-cycle")
1028 (version "0.2.5")
1029 (source
1030 (origin
1031 (method url-fetch)
1032 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1033 "/archive/" version ".tar.gz"))
1034 (file-name (string-append name "-" version ".tar.gz"))
1035 (sha256
1036 (base32
1037 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1038 (build-system emacs-build-system)
1039 (propagated-inputs
1040 `(("emms" ,emms)))
1041 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1042 (synopsis "Display the EMMS mode line as a ticker")
1043 (description
1044 "This is a minor mode for updating the EMMS mode-line string cyclically
1045within a specified width. It is useful for displaying long track titles.")
1046 (license license:gpl3+)))
1047
c7e553a3
LC
1048\f
1049;;;
1050;;; Miscellaneous.
1051;;;
1052
1053(define-public bbdb
1054 (package
1055 (name "bbdb")
1056 (version "3.1.2")
1057 (source (origin
1058 (method url-fetch)
1059 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1060 version ".tar.gz"))
1061 (sha256
1062 (base32
1063 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1064 (modules '((guix build utils)))
1065 (snippet
1066 ;; We don't want to build and install the PDF.
1067 '(substitute* "doc/Makefile.in"
1068 (("^doc_DATA = .*$")
1069 "doc_DATA =\n")))))
1070 (build-system gnu-build-system)
1071 (arguments
1072 '(#:phases (alist-cons-after
1073 'install 'post-install
1074 (lambda* (#:key outputs #:allow-other-keys)
1075 ;; Add an autoloads file with the right name for guix.el.
1076 (let* ((out (assoc-ref outputs "out"))
1077 (site (string-append out "/share/emacs/site-lisp")))
1078 (with-directory-excursion site
1079 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el"))))
1080 %standard-phases)))
b8fc3622 1081 (native-inputs `(("emacs" ,emacs-minimal)))
c7e553a3
LC
1082 (home-page "http://savannah.nongnu.org/projects/bbdb/")
1083 (synopsis "Contact management utility for Emacs")
1084 (description
1085 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1086an address book for email and snail mail addresses, phone numbers and the
1087like. It can be linked with various Emacs mail clients (Message and Mail
1088mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1089 (license license:gpl3+)))
78395334 1090
4d3d3bd2
VD
1091(define-public emacs-aggressive-indent
1092 (package
1093 (name "emacs-aggressive-indent")
1094 (version "1.8.3")
1095 (source (origin
1096 (method url-fetch)
1097 (uri (string-append "https://elpa.gnu.org/packages/"
1098 "aggressive-indent-" version ".el"))
1099 (sha256
1100 (base32
1101 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1102 (build-system emacs-build-system)
1103 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1104 (synopsis "Minor mode to aggressively keep your code always indented")
1105 (description
1106 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1107always indented. It reindents after every change, making it more reliable
1108than @code{electric-indent-mode}.")
1109 (license license:gpl2+)))
1110
cf006d2e
CB
1111(define-public emacs-ag
1112 (package
1113 (name "emacs-ag")
1114 (version "0.47")
1115 (source (origin
1116 (method url-fetch)
1117 (uri (string-append
1118 "https://github.com/Wilfred/ag.el/archive/"
1119 version ".tar.gz"))
1120 (file-name (string-append name "-" version ".tar.gz"))
1121 (sha256
1122 (base32
1123 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1124 (build-system emacs-build-system)
1125 (arguments
1126 `(#:phases
1127 (modify-phases %standard-phases
99517d92
GC
1128 (add-before 'install 'make-info
1129 (lambda _
1130 (with-directory-excursion "docs"
1131 (zero? (system* "make" "info")))))
1132 (add-after 'install 'install-info
1133 (lambda* (#:key outputs #:allow-other-keys)
1134 (let* ((out (assoc-ref outputs "out"))
1135 (info (string-append out "/share/info")))
1136 (install-file "docs/_build/texinfo/agel.info" info)
1137 #t))))))
99517d92
GC
1138 (native-inputs
1139 `(("python-sphinx" ,python-sphinx)
1140 ("texinfo" ,texinfo)))
cf006d2e
CB
1141 (propagated-inputs
1142 `(("dash" ,emacs-dash)
86470421
CL
1143 ("s" ,emacs-s)
1144 ;; We need to use 'ag' as the executable on remote systems.
1145 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1146 (home-page "https://github.com/Wilfred/ag.el")
1147 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1148 (description "This package provides the ability to use the silver
1149searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1150include version control system awareness, use of Perl compatible regular
1151expressions, editing the search results directly and searching file names
1152rather than the contents of files.")
1153 (license license:gpl3+)))
1154
b654de6d
AK
1155(define-public emacs-async
1156 (package
1157 (name "emacs-async")
a8ce82ac 1158 (version "1.9")
b654de6d
AK
1159 (source (origin
1160 (method url-fetch)
f32ffa04 1161 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1162 version ".tar"))
1163 (sha256
1164 (base32
a8ce82ac 1165 "1ip5nc8xyln5szvqwp6wqva9xr84pn8ssn3nnphrszr19y4js2bm"))))
b654de6d 1166 (build-system emacs-build-system)
f32ffa04 1167 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
1168 (synopsis "Asynchronous processing in Emacs")
1169 (description
1170 "This package provides the ability to call asynchronous functions and
1171processes. For example, it can be used to run dired commands (for copying,
1172moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1173as a library for other Emacs packages.")
1174 (license license:gpl3+)))
1175
78395334
FB
1176(define-public emacs-auctex
1177 (package
1178 (name "emacs-auctex")
6b7f909f 1179 (version "11.90.0")
78395334
FB
1180 (source
1181 (origin
1182 (method url-fetch)
1183 (uri (string-append
f32ffa04 1184 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1185 version
1186 ".tar"))
1187 (sha256
1188 (base32
6b7f909f 1189 "04nsndwcf0dimgc2p1yzzrymc36amzdnjg0158nxplmjkzdp28gy"))))
78395334 1190 (build-system emacs-build-system)
a6eafbed
AK
1191 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1192 ;; ('emacs-minimal' does not provide dbus).
1193 (arguments `(#:emacs ,emacs))
78395334
FB
1194 (native-inputs
1195 `(("perl" ,perl)))
6fd52309 1196 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1197 (synopsis "Integrated environment for TeX")
1198 (description
1199 "AUCTeX is a comprehensive customizable integrated environment for
1200writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1201or XEmacs.")
1202 (license license:gpl3+)))
85ef742c 1203
36890436
VD
1204(define-public emacs-calfw
1205 (package
1206 (name "emacs-calfw")
1207 (version "1.5")
1208 (source
1209 (origin
1210 (method url-fetch)
1211 (uri (string-append
1212 "https://github.com/kiwanami/emacs-calfw/archive/v"
1213 version ".tar.gz"))
1214 (file-name (string-append name "-" version ".tar.gz"))
1215 (sha256
1216 (base32
1217 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1218 (build-system emacs-build-system)
1219 (home-page "https://github.com/kiwanami/emacs-calfw/")
1220 (synopsis "Calendar framework for Emacs")
1221 (description
1222 "This package displays a calendar view with various shedule data in
1223the Emacs buffer.")
1224 (license license:gpl3+)))
1225
63878730
VD
1226(define-public emacs-google-maps
1227 (package
1228 (name "emacs-google-maps")
1229 (version "1.0.0")
1230 (source (origin
1231 (method url-fetch)
1232 (uri (string-append "https://github.com/jd/google-maps.el/"
1233 "archive/" version ".tar.gz"))
1234 (file-name (string-append name "-" version ".tar.gz"))
1235 (sha256
1236 (base32
1237 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1238 (build-system emacs-build-system)
1239 (home-page "https://github.com/jd/google-maps.el")
1240 (synopsis "Access Google Maps from Emacs")
1241 (description "The @code{google-maps} package allows to display Google
1242Maps directly inside Emacs.")
1243 (license license:gpl3+)))
1244
85ef742c
FB
1245(define-public emacs-mmm-mode
1246 (package
1247 (name "emacs-mmm-mode")
1248 (version "0.5.4")
1249 (source
1250 (origin
1251 (method url-fetch)
1252 (uri (string-append
0c909c05
AK
1253 "https://github.com/purcell/mmm-mode/archive/"
1254 version ".tar.gz"))
1255 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1256 (sha256
1257 (base32
0c909c05
AK
1258 "10kwslnflbjqm62wkrq420crqzdqalzfflp9pqk1i12zm6dm4mfv"))))
1259 (build-system gnu-build-system)
1260 (arguments
1261 '(#:phases
1262 (modify-phases %standard-phases
1263 (add-after 'unpack 'autogen
1264 (lambda _
1265 (zero? (system* "sh" "autogen.sh")))))))
1266 (native-inputs
1267 `(("autoconf" ,autoconf)
1268 ("automake" ,automake)
b8fc3622 1269 ("emacs" ,emacs-minimal)
0c909c05 1270 ("texinfo" ,texinfo)))
85ef742c 1271 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1272 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1273 (description
0c909c05 1274 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1275single buffer.")
1276 (license license:gpl3+)))
ec9825d6
RW
1277
1278(define-public emacs-pdf-tools
1279 (package
1280 (name "emacs-pdf-tools")
eccd0b57 1281 (version "0.70")
ec9825d6
RW
1282 (source (origin
1283 (method url-fetch)
1284 (uri (string-append
1285 "https://github.com/politza/pdf-tools/archive/v"
1286 version ".tar.gz"))
1287 (file-name (string-append name "-" version ".tar.gz"))
1288 (sha256
1289 (base32
eccd0b57 1290 "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77"))))
ec9825d6
RW
1291 (build-system gnu-build-system)
1292 (arguments
1293 `(#:tests? #f ; there are no tests
1294 #:modules ((guix build gnu-build-system)
1bcae5c5 1295 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1296 (guix build utils)
1297 (guix build emacs-utils))
1298 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1299 (guix build emacs-build-system)
ec9825d6
RW
1300 (guix build emacs-utils))
1301 #:phases
1302 (modify-phases %standard-phases
1bcae5c5
AK
1303 ;; Build server side using 'gnu-build-system'.
1304 (add-after 'unpack 'enter-server-dir
1305 (lambda _ (chdir "server") #t))
1306 (add-before 'configure 'autogen
1307 (lambda _
1308 (zero? (system* "bash" "autogen.sh"))))
1309
1310 ;; Build emacs side using 'emacs-build-system'.
1311 (add-after 'compress-documentation 'enter-lisp-dir
1312 (lambda _ (chdir "../lisp") #t))
1313 (add-after 'enter-lisp-dir 'emacs-patch-variables
1314 (lambda* (#:key outputs #:allow-other-keys)
1315 ;; Set path to epdfinfo program.
1316 (emacs-substitute-variables "pdf-info.el"
1317 ("pdf-info-epdfinfo-program"
1318 (string-append (assoc-ref outputs "out")
1319 "/bin/epdfinfo")))
1320 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1321 ;; upgrading" that pdf-tools tries to perform.
1322 (emacs-substitute-variables "pdf-tools.el"
1323 ("pdf-tools-handle-upgrades" '()))))
1324 (add-after 'emacs-patch-variables 'emacs-install
1325 (assoc-ref emacs:%standard-phases 'install))
1326 (add-after 'emacs-install 'emacs-build
1327 (assoc-ref emacs:%standard-phases 'build))
1328 (add-after 'emacs-install 'emacs-make-autoloads
1329 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1330 (native-inputs `(("autoconf" ,autoconf)
1331 ("automake" ,automake)
1332 ("pkg-config" ,pkg-config)
b8fc3622 1333 ("emacs" ,emacs-minimal)))
e6527d64
AK
1334 (propagated-inputs
1335 `(("let-alist" ,let-alist)))
ec9825d6
RW
1336 (inputs `(("poppler" ,poppler)
1337 ("cairo" ,cairo)
1338 ("glib" ,glib)
1339 ("libpng" ,libpng)
1340 ("zlib" ,zlib)))
1341 (synopsis "Emacs support library for PDF files")
1342 (description
1343 "PDF Tools is, among other things, a replacement of DocView for PDF
1344files. The key difference is that pages are not pre-rendered by
1345e.g. ghostscript and stored in the file-system, but rather created on-demand
1346and stored in memory.")
1347 (home-page "https://github.com/politza/pdf-tools")
1348 (license license:gpl3+)))
d4dbf10e
FB
1349
1350(define-public emacs-dash
1351 (package
1352 (name "emacs-dash")
a31a79bc 1353 (version "2.13.0")
d4dbf10e
FB
1354 (source (origin
1355 (method url-fetch)
1356 (uri (string-append
1357 "https://github.com/magnars/dash.el/archive/"
1358 version ".tar.gz"))
1359 (file-name (string-append name "-" version ".tar.gz"))
1360 (sha256
1361 (base32
a31a79bc 1362 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
d4dbf10e
FB
1363 (build-system emacs-build-system)
1364 (arguments
1365 `(#:phases
1366 (modify-phases %standard-phases
1367 (add-before 'install 'check
1368 (lambda _
1369 (zero? (system* "./run-tests.sh")))))))
1370 (home-page "https://github.com/magnars/dash.el")
1371 (synopsis "Modern list library for Emacs")
1372 (description "This package provides a modern list API library for Emacs.")
1373 (license license:gpl3+)))
85777fe5 1374
753baf77
AK
1375(define-public emacs-bui
1376 (package
1377 (name "emacs-bui")
f6b1dd23 1378 (version "1.1.0")
753baf77
AK
1379 (source (origin
1380 (method url-fetch)
1381 (uri (string-append
1382 "https://github.com/alezost/bui.el/archive/v"
1383 version ".tar.gz"))
1384 (file-name (string-append name "-" version ".tar.gz"))
1385 (sha256
1386 (base32
f6b1dd23 1387 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1388 (build-system emacs-build-system)
1389 (propagated-inputs
1390 `(("dash" ,emacs-dash)))
1391 (home-page "https://github.com/alezost/bui.el")
1392 (synopsis "Buffer interface library for Emacs")
1393 (description
1394 "BUI (Buffer User Interface) is a library for making @code{list} and
1395@code{info} interfaces to display an arbitrary data of the same
1396type, for example: packages, buffers, files, etc.")
1397 (license license:gpl3+)))
1398
64e43c67
AK
1399(define-public emacs-guix
1400 (package
1401 (name "emacs-guix")
78461856 1402 (version "0.3.1")
64e43c67
AK
1403 (source (origin
1404 (method url-fetch)
1405 (uri (string-append "https://github.com/alezost/guix.el"
1406 "/releases/download/v" version
1407 "/emacs-guix-" version ".tar.gz"))
1408 (sha256
1409 (base32
78461856 1410 "0s7s90rfba8ccbilbvmbcwn4qp4m0jv9y58xq8avm39cygmjgyxz"))))
64e43c67
AK
1411 (build-system gnu-build-system)
1412 (arguments
1413 `(#:configure-flags
1414 (let ((guix (assoc-ref %build-inputs "guix"))
1415 (geiser (assoc-ref %build-inputs "geiser"))
1416 (dash (assoc-ref %build-inputs "dash"))
1417 (bui (assoc-ref %build-inputs "bui"))
1418 (magit-popup (assoc-ref %build-inputs "magit-popup"))
1419 (site-lisp "/share/emacs/site-lisp"))
1420 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1421 (car (find-files (string-append guix
1422 "/share/guile/site")
1423 (lambda (file stat)
1424 (string-prefix?
1425 "2."
1426 (basename file)))
1427 #:directories? #t)))
64e43c67
AK
1428 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1429 (string-append "--with-dash-lispdir="
1430 dash site-lisp "/guix.d/dash-"
1431 ,(package-version emacs-dash))
1432 (string-append "--with-bui-lispdir="
1433 bui site-lisp "/guix.d/bui-"
1434 ,(package-version emacs-bui))
1435 (string-append "--with-popup-lispdir="
1436 magit-popup site-lisp "/guix.d/magit-popup-"
1437 ,(package-version emacs-magit-popup))))))
1438 (native-inputs
1439 `(("pkg-config" ,pkg-config)
1440 ("emacs" ,emacs-minimal)))
1441 (inputs
b4f8edb7 1442 `(("guile" ,guile-2.2)
64e43c67
AK
1443 ("guix" ,guix)))
1444 (propagated-inputs
1445 `(("geiser" ,geiser)
1446 ("dash" ,emacs-dash)
1447 ("bui" ,emacs-bui)
1448 ("magit-popup" ,emacs-magit-popup)))
78461856 1449 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1450 (synopsis "Emacs interface for GNU Guix")
1451 (description
b2f1f7b0
AK
1452 "Emacs-Guix provides a visual interface, tools and features for the GNU
1453Guix package manager. Particularly, it allows you to do various package
1454management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1455@code{M-x guix-help} command.")
64e43c67
AK
1456 (license license:gpl3+)))
1457
d6e5de1e
RJ
1458(define-public emacs-d-mode
1459 (package
1460 (name "emacs-d-mode")
1461 (version "2.0.8")
1462 (source (origin
1463 (method url-fetch)
1464 (uri (string-append
1465 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1466 "archive/" version ".tar.gz"))
1467 (sha256
1468 (base32
1469 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1470 (build-system emacs-build-system)
1471 (propagated-inputs
1472 `(("emacs-undercover" ,emacs-undercover)))
1473 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1474 (synopsis "Emacs major mode for editing D code")
1475 (description "This package provides an Emacs major mode for highlighting
1476code written in the D programming language. This mode is currently known to
1477work with Emacs 24 and 25.")
1478 (license license:gpl2+)))
1479
7f7b38af
VD
1480(define-public emacs-keyfreq
1481 (package
1482 (name "emacs-keyfreq")
1483 (version "20160516.716")
1484 (source
1485 (origin
1486 (method url-fetch)
1487 (uri (string-append "http://melpa.org/packages/keyfreq-"
1488 version ".el"))
1489 (sha256
1490 (base32
1491 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1492 (build-system emacs-build-system)
1493 (home-page "https://github.com/dacap/keyfreq")
1494 (synopsis "Track Emacs command frequencies")
1495 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1496a command.")
1497 (license license:gpl3+)))
1498
1075b437
DB
1499(define-public emacs-undo-tree
1500 (package
1501 (name "emacs-undo-tree")
1502 (version "0.6.4")
1503 (source (origin
1504 (method git-fetch)
1505 (uri (git-reference
1506 (url "http://dr-qubit.org/git/undo-tree.git")
1507 (commit "release/0.6.4")))
1508 (file-name (string-append name "-" version "-checkout"))
1509 (sha256
1510 (base32
1511 "0b6hnv6bq1g5np5q2yw9r9aj1cxpp14akm21br7vpb7wp01fv4b3"))))
1512 (build-system emacs-build-system)
1513 (home-page "http://www.dr-qubit.org/emacs.php")
1514 (synopsis "Treat undo history as a tree")
1515 (description "Tree-like interface to Emacs undo system, providing
1516graphical tree presentation of all previous states of buffer that
1517allows easily move between them.")
1518 (license license:gpl3+)))
1519
85777fe5
FB
1520(define-public emacs-s
1521 (package
1522 (name "emacs-s")
48e28c69 1523 (version "1.11.0")
85777fe5
FB
1524 (source (origin
1525 (method url-fetch)
1526 (uri (string-append
1527 "https://github.com/magnars/s.el/archive/"
1528 version ".tar.gz"))
1529 (file-name (string-append name "-" version ".tar.gz"))
1530 (sha256
1531 (base32
48e28c69 1532 "0krq5nz3llfx0vwdqn18pmq777ja0fac185w0h9qymppb1j1hvc2"))))
85777fe5
FB
1533 (build-system emacs-build-system)
1534 (arguments
1535 `(#:phases
1536 (modify-phases %standard-phases
1537 (add-before 'install 'check
1538 (lambda _
1539 (zero? (system* "./run-tests.sh")))))))
1540 (home-page "https://github.com/magnars/s.el")
a124bbd2 1541 (synopsis "Emacs string manipulation library")
85777fe5
FB
1542 (description "This package provides an Emacs library for manipulating
1543strings.")
1544 (license license:gpl3+)))
cf9ce01f 1545
070e1fe9
VD
1546(define-public emacs-symon
1547 (package
1548 (name "emacs-symon")
d71b758f 1549 (version "20160630")
070e1fe9
VD
1550 (source
1551 (origin
1552 (method url-fetch)
d71b758f
VD
1553 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1554 version ".tar.gz"))
1555 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1556 (sha256
1557 (base32
d71b758f 1558 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1559 (build-system emacs-build-system)
d71b758f 1560 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1561 (synopsis "Tiny graphical system monitor")
1562 (description
1563 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1564 (license license:gpl2+)))
1565
899bcad3 1566(define-public emacs-sx
1567 (package
1568 (name "emacs-sx")
1569 (version "0.4")
1570 (source (origin
1571 (method url-fetch)
1572 (uri (string-append "https://github.com/vermiculus/sx.el/"
1573 "archive/v" version ".tar.gz"))
1574 (file-name (string-append name "-" version ".tar.gz"))
1575 (sha256
1576 (base32
1577 "1w0xghfljqg31axcnv8gzlrd8pw25nji6idnrhflq0af9qh1dw03"))))
1578 (build-system emacs-build-system)
1579 (propagated-inputs
1580 `(("emacs-markdown-mode" ,emacs-markdown-mode)
1581 ("let-alist" ,let-alist)))
1582 (home-page "https://github.com/vermiculus/sx.el/")
1583 (synopsis "Emacs StackExchange client")
1584 (description
1585 "Emacs StackExchange client. Ask and answer questions on
1586Stack Overflow, Super User, and other StackExchange sites.")
1587 (license license:gpl3+)))
1588
cf9ce01f
FB
1589(define-public emacs-f
1590 (package
1591 (name "emacs-f")
ad5d899e 1592 (version "0.18.2")
cf9ce01f
FB
1593 (source (origin
1594 (method url-fetch)
1595 (uri (string-append
1596 "https://github.com/rejeep/f.el/archive/v"
1597 version ".tar.gz"))
1598 (file-name (string-append name "-" version ".tar.gz"))
1599 (sha256
1600 (base32
ad5d899e 1601 "1926shh2ymdsgz05c6q181mzzz1rci99ch568j151xi865jinyg5"))))
cf9ce01f
FB
1602 (build-system emacs-build-system)
1603 (propagated-inputs
1604 `(("emacs-s" ,emacs-s)
1605 ("emacs-dash" ,emacs-dash)))
7bf837fd 1606 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1607 (synopsis "Emacs API for working with files and directories")
1608 (description "This package provides an Emacs library for working with
1609files and directories.")
1610 (license license:gpl3+)))
48dbeef7 1611
0916dc52
CB
1612(define-public emacs-git-gutter
1613 (package
1614 (name "emacs-git-gutter")
1615 (version "0.90")
1616 (source (origin
1617 (method url-fetch)
1618 (uri (string-append
1619 "https://github.com/syohex/" name "/archive/"
1620 version ".tar.gz"))
1621 (file-name (string-append name "-" version ".tar.gz"))
1622 (sha256
1623 (base32
1624 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1625 (build-system emacs-build-system)
1626 (home-page "https://github.com/syohex/emacs-git-gutter")
1627 (synopsis "See and manage hunks of text in a version control system")
1628 (description
1629 "This package is an Emacs minor mode for displaying and interacting with
1630hunks of text managed in a version control system. Added modified and deleted
1631areas can be indicated with symbols on the edge of the buffer, and commands
1632can be used to move between and perform actions on these hunks.
1633
1634Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1635display and behaviour is easily customisable.")
1636 (license license:gpl3+)))
1637
0b35f11d
RW
1638(define-public emacs-git-timemachine
1639 (package
1640 (name "emacs-git-timemachine")
1641 (version "3.0")
1642 (source
1643 (origin
1644 (method url-fetch)
1645 (uri (string-append "https://github.com/pidu/git-timemachine/"
1646 "archive/" version ".tar.gz"))
1647 (file-name (string-append name "-" version ".tar.gz"))
1648 (sha256
1649 (base32
1650 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1651 (build-system emacs-build-system)
1652 (home-page "https://github.com/pidu/git-timemachine")
1653 (synopsis "Step through historic versions of Git-controlled files")
1654 (description "This package enables you to step through historic versions
1655of files under Git version control from within Emacs.")
1656 (license license:gpl3+)))
1657
1c32830b
RW
1658(define-public emacs-el-mock
1659 (package
1660 (name "emacs-el-mock")
1661 (version "1.25.1")
1662 (source
1663 (origin
1664 (method url-fetch)
1665 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1666 "archive/v" version ".tar.gz"))
1667 (file-name (string-append name "-" version ".tar.gz"))
1668 (sha256
1669 (base32
1670 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1671 (build-system emacs-build-system)
7bf837fd 1672 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
1673 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1674 (description
1675 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1676syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1677Expectations, but it can be used in other contexts.")
1678 (license license:gpl3+)))
1679
0c5d837c
RW
1680(define-public emacs-espuds
1681 (package
1682 (name "emacs-espuds")
1683 (version "0.3.3")
1684 (source
1685 (origin
1686 (method url-fetch)
1687 (uri (string-append "https://github.com/ecukes/espuds/"
1688 "archive/v" version ".tar.gz"))
1689 (file-name (string-append name "-" version ".tar.gz"))
1690 (sha256
1691 (base32
1692 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1693 (build-system emacs-build-system)
1694 (propagated-inputs
1695 `(("emacs-s" ,emacs-s)
1696 ("emacs-dash" ,emacs-dash)
1697 ("emacs-f" ,emacs-f)))
7bf837fd 1698 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
1699 (synopsis "Common step definitions for Ecukes")
1700 (description "Espuds is a collection of the most commonly used step
1701definitions for testing with the Ecukes framework.")
1702 (license license:gpl3+)))
1703
8bebe734
CB
1704(define-public emacs-es-mode
1705 (package
1706 (name "emacs-es-mode")
1707 (version "4.2.0")
1708 (source (origin
1709 (method url-fetch)
1710 (uri (string-append
1711 "https://github.com/dakrone/es-mode/archive/"
1712 version ".tar.gz"))
1713 (file-name (string-append name "-" version ".tar.gz"))
1714 (sha256
1715 (base32
1716 "02as82clm553yss7jfjac888308zr1h2229cch4z1yij70j25c8y"))))
1717 (build-system emacs-build-system)
1718 (propagated-inputs
1719 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
1720 ;; to be rendered incorrectly
1721 `(("emacs-org" ,emacs-org)))
1722 (home-page "https://github.com/dakrone/es-mode")
1723 (synopsis "Major mode for editing Elasticsearch queries")
1724 (description "@code{es-mode} includes highlighting, completion and
1725indentation support for Elasticsearch queries. Also supported are
1726@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
1727be processed through @code{jq}, or in the case of aggregations, can be
1728rendered in to a table. In addition, there is an @code{es-command-center}
1729mode, which displays information about Elasticsearch clusters.")
1730 (license license:gpl3+)))
1731
d0e43782
RW
1732(define-public emacs-expand-region
1733 (package
1734 (name "emacs-expand-region")
61c71171 1735 (version "0.11.0")
d0e43782
RW
1736 (source
1737 (origin
1738 (method url-fetch)
1739 (uri (string-append "https://github.com/magnars/expand-region.el"
1740 "/archive/" version ".tar.gz"))
1741 (file-name (string-append name "-" version ".tar.gz"))
1742 (sha256
1743 (base32
61c71171 1744 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
1745 (build-system emacs-build-system)
1746 (home-page "https://github.com/magnars/expand-region.el")
1747 (synopsis "Increase selected region by semantic units")
1748 (description
1749 "Expand region increases the selected region by semantic units. Just
1750keep pressing the key until it selects what you want. There's also
1751@code{er/contract-region} if you expand too far.")
1752 (license license:gpl3+)))
1753
65568446
RW
1754(define-public emacs-fill-column-indicator
1755 (package
1756 (name "emacs-fill-column-indicator")
1757 (version "1.81")
1758 (source
1759 (origin
1760 (method url-fetch)
1761 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
1762 "/archive/v" version ".tar.gz"))
1763 (file-name (string-append name "-" version ".tar.gz"))
1764 (sha256
1765 (base32
1766 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
1767 (build-system emacs-build-system)
1768 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
1769 (synopsis "Graphically indicate the fill column")
1770 (description
1771 "Fill-column-indicator graphically indicates the location of the fill
1772column by drawing a thin line down the length of the editing window.")
1773 (license license:gpl3+)))
1774
7b9769b0
RW
1775(define-public emacs-znc
1776 (package
1777 (name "emacs-znc")
1778 (version "0.0.2")
1779 (source
1780 (origin
1781 (method url-fetch)
1782 (uri (string-append "https://marmalade-repo.org/packages/znc-"
1783 version ".el"))
1784 (sha256
1785 (base32
1786 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
1787 (build-system emacs-build-system)
1788 (home-page "https://github.com/sshirokov/ZNC.el")
1789 (synopsis "Make ERC and ZNC get along better")
1790 (description
1791 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
1792IRC bouncer with ERC.")
1793 (license license:expat)))
1794
1f9a7097
RW
1795(define-public emacs-shut-up
1796 (package
1797 (name "emacs-shut-up")
1798 (version "0.3.2")
1799 (source
1800 (origin
1801 (method url-fetch)
1802 (uri (string-append "https://github.com/cask/shut-up/"
1803 "archive/v" version ".tar.gz"))
1804 (file-name (string-append name "-" version ".tar.gz"))
1805 (sha256
1806 (base32
1807 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
1808 (build-system emacs-build-system)
1809 (home-page "https://github.com/cask/shut-up")
1810 (synopsis "Silence Emacs")
1811 (description "This package silences most output of Emacs when running an
1812Emacs shell script.")
1813 (license license:expat)))
1814
dbe38a3a
RW
1815(define-public emacs-undercover
1816 (package
1817 (name "emacs-undercover")
1818 (version "0.6.0")
1819 (source
1820 (origin
1821 (method url-fetch)
1822 (uri (string-append "https://github.com/sviridov/undercover.el/"
1823 "archive/v" version ".tar.gz"))
1824 (file-name (string-append name "-" version ".tar.gz"))
1825 (sha256
1826 (base32
1827 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
1828 (build-system emacs-build-system)
1829 (propagated-inputs
1830 `(("emacs-dash" ,emacs-dash)
1831 ("emacs-shut-up" ,emacs-shut-up)))
1832 (home-page "https://github.com/sviridov/undercover.el")
1833 (synopsis "Test coverage library for Emacs Lisp")
1834 (description
1835 "Undercover is a test coverage library for software written in Emacs
1836Lisp.")
1837 (license license:expat)))
1838
07046e5f
RW
1839(define-public emacs-paren-face
1840 (package
1841 (name "emacs-paren-face")
1842 (version "1.0.0")
1843 (source
1844 (origin
1845 (method url-fetch)
1846 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
1847 version ".tar.gz"))
1848 (file-name (string-append name "-" version ".tar.gz"))
1849 (sha256
1850 (base32
1851 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
1852 (build-system emacs-build-system)
7bf837fd 1853 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
1854 (synopsis "Face for parentheses in lisp modes")
1855 (description
1856 "This library defines a face named @code{parenthesis} used just for
1857parentheses. The intended purpose of this face is to make parentheses less
1858visible in Lisp code by dimming them. Lispers probably don't need to be
1859constantly made aware of the existence of the parentheses. Dimming them might
1860be even more useful for people new to lisp who have not yet learned to
1861subconsciously blend out the parentheses.")
1862 (license license:gpl3+)))
1863
a46e3c0d
RW
1864(define-public emacs-page-break-lines
1865 (package
1866 (name "emacs-page-break-lines")
1867 (version "0.11")
1868 (source
1869 (origin
1870 (method url-fetch)
1871 (uri (string-append "https://github.com/purcell/page-break-lines/"
1872 "archive/" version ".tar.gz"))
1873 (file-name (string-append name "-" version ".tar.gz"))
1874 (sha256
1875 (base32
1876 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
1877 (build-system emacs-build-system)
1878 (home-page "https://github.com/purcell/page-break-lines")
1879 (synopsis "Display page breaks as tidy horizontal lines")
1880 (description
1881 "This library provides a global mode which displays form feed characters
1882as horizontal rules.")
1883 (license license:gpl3+)))
1884
1f8a951b
RW
1885(define-public emacs-simple-httpd
1886 (package
1887 (name "emacs-simple-httpd")
1888 (version "1.4.6")
1889 (source
1890 (origin
1891 (method url-fetch)
1892 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
1893 "archive/" version ".tar.gz"))
1894 (file-name (string-append name "-" version ".tar.gz"))
1895 (sha256
1896 (base32
1897 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
1898 (build-system emacs-build-system)
1899 (home-page "https://github.com/skeeto/emacs-http-server")
1900 (synopsis "HTTP server in pure Emacs Lisp")
1901 (description
1902 "This package provides a simple HTTP server written in Emacs Lisp to
1903serve files and directory listings.")
1904 (license license:unlicense)))
1905
6c04acaa
RW
1906(define-public emacs-skewer-mode
1907 (package
1908 (name "emacs-skewer-mode")
1909 (version "1.6.2")
1910 (source
1911 (origin
1912 (method url-fetch)
1913 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
1914 version ".tar.gz"))
1915 (file-name (string-append name "-" version ".tar.gz"))
1916 (sha256
1917 (base32
1918 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
1919 (build-system emacs-build-system)
1920 (propagated-inputs
1921 `(("emacs-simple-httpd" ,emacs-simple-httpd)
1922 ("emacs-js2-mode" ,emacs-js2-mode)))
1923 (home-page "https://github.com/skeeto/skewer-mode")
1924 (synopsis "Live web development in Emacs")
1925 (description
1926 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
1927a web browser. Expressions are sent on-the-fly from an editing buffer to be
1928evaluated in the browser, just like Emacs does with an inferior Lisp process
1929in Lisp modes.")
1930 (license license:unlicense)))
1931
ce9701fb
RW
1932(define-public emacs-stripe-buffer
1933 (package
1934 (name "emacs-stripe-buffer")
1935 (version "0.2.5")
1936 (source
1937 (origin
1938 (method url-fetch)
1939 (uri (string-append "https://github.com/sabof/stripe-buffer/"
1940 "archive/" version ".tar.gz"))
1941 (file-name (string-append name "-" version ".tar.gz"))
1942 (sha256
1943 (base32
1944 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
1945 (build-system emacs-build-system)
1946 (home-page "https://github.com/sabof/stripe-buffer/")
1947 (synopsis "Add stripes to list buffers")
1948 (description
1949 "This Emacs package adds faces to add stripes to list buffers and org
1950tables.")
1951 (license license:gpl2+)))
1952
8d810163
RW
1953(define-public emacs-rich-minority
1954 (package
1955 (name "emacs-rich-minority")
1956 (version "1.0.1")
1957 (source
1958 (origin
1959 (method url-fetch)
1960 (uri (string-append "https://github.com/Malabarba/rich-minority/"
1961 "archive/" version ".tar.gz"))
1962 (file-name (string-append name "-" version ".tar.gz"))
1963 (sha256
1964 (base32
1965 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
1966 (build-system emacs-build-system)
1967 (home-page "https://github.com/Malabarba/rich-minority")
1968 (synopsis "Clean-up and beautify the list of minor modes")
1969 (description
1970 "This Emacs package hides and/or highlights minor modes in the
1971mode-line.")
1972 (license license:gpl2+)))
1973
b33f913d
RW
1974(define-public emacs-smart-mode-line
1975 (package
1976 (name "emacs-smart-mode-line")
1977 (version "2.10.1")
1978 (source
1979 (origin
1980 (method url-fetch)
1981 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
1982 "archive/" version ".tar.gz"))
1983 (file-name (string-append name "-" version ".tar.gz"))
1984 (sha256
1985 (base32
1986 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
1987 (build-system emacs-build-system)
1988 (propagated-inputs
1989 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 1990 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 1991 (synopsis "Color-coded smart mode-line")
b33f913d
RW
1992 (description
1993 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
1994read from small to large monitors by using colors, a prefix feature, and smart
1995truncation.")
1996 (license license:gpl2+)))
1997
3bcb304e
RW
1998(define-public emacs-shell-switcher
1999 (package
2000 (name "emacs-shell-switcher")
2001 (version "1.0.1")
2002 (source
2003 (origin
2004 (method url-fetch)
2005 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2006 "/archive/v" version ".tar.gz"))
2007 (file-name (string-append name "-" version ".tar.gz"))
2008 (sha256
2009 (base32
2010 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2011 (build-system emacs-build-system)
2012 (home-page "https://github.com/DamienCassou/shell-switcher")
2013 (synopsis "Provide fast switching between shell buffers")
2014 (description
2015 "This package provides commands to quickly switch between shell buffers.")
2016 (license license:gpl3+)))
2017
48dbeef7
FB
2018(define-public emacs-ob-ipython
2019 (package
2020 (name "emacs-ob-ipython")
2021 (version "20150704.8807064693")
2022 (source (origin
2023 (method git-fetch)
2024 (uri (git-reference
698bd297 2025 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7
FB
2026 (url "https://github.com/gregsexton/ob-ipython.git")))
2027 (sha256
2028 (base32
2029 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2030 (build-system emacs-build-system)
2031 (propagated-inputs
2032 `(("emacs-f" ,emacs-f)))
2033 (home-page "http://www.gregsexton.org")
2034 (synopsis "Org-Babel functions for IPython evaluation")
2035 (description "This package adds support to Org-Babel for evaluating Python
2036source code using IPython.")
2037 (license license:gpl3+)))
6fd66b6c
LC
2038
2039(define-public emacs-debbugs
2040 (package
2041 (name "emacs-debbugs")
b0dd3436 2042 (version "0.14")
6fd66b6c
LC
2043 (source (origin
2044 (method url-fetch)
f32ffa04 2045 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2046 version ".tar"))
2047 (sha256
2048 (base32
b0dd3436 2049 "07wgcvg038l88gxvjr0gjpjhyk743w22x1rqghz3gkmif0g70say"))))
6fd66b6c 2050 (build-system emacs-build-system)
32e16112
AK
2051 (propagated-inputs
2052 `(("emacs-async" ,emacs-async)))
f32ffa04 2053 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2054 (synopsis "Access the Debbugs bug tracker in Emacs")
2055 (description
2056 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2057Tracker} from within Emacs.
2058
2059For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2060and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2061prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2062@code{M-x debbugs-org} and related commands.
2063
2064A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2065Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2066 (license license:gpl3+)))
3ffe36f5
LC
2067
2068(define-public emacs-deferred
2069 (package
2070 (name "emacs-deferred")
2071 (version "0.3.2")
2072 (home-page "https://github.com/kiwanami/emacs-deferred")
2073 (source (origin
2074 (method git-fetch)
2075 (uri (git-reference
2076 (url home-page)
2077 (commit (string-append "v" version))))
2078 (sha256
2079 (base32
2080 "0059jy01ni5irpgrj9fa81ayd9j25nvmjjm79ms3210ysx4pgqdr"))
2081 (file-name (string-append name "-" version))))
2082 (build-system emacs-build-system)
2083 ;; FIXME: Would need 'el-expectations' to actually run tests.
2084 (synopsis "Simple asynchronous functions for Emacs Lisp")
2085 (description
2086 "The @code{deferred.el} library provides support for asynchronous tasks.
2087The API is almost the same as that of
2088@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2089for asynchronous tasks.")
2090 (license license:gpl3+)))
d001bb5a
LC
2091
2092(define-public butler
2093 (package
2094 (name "emacs-butler")
2095 (version "0.2.4")
2096 (home-page "https://github.com/AshtonKem/Butler")
2097 (source (origin
2098 (method git-fetch)
2099 (uri (git-reference
2100 (url home-page)
2101 (commit version)))
2102 (sha256
2103 (base32
2104 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2105 (file-name (string-append name "-" version))))
2106 (build-system emacs-build-system)
2107 (propagated-inputs
2108 `(("emacs-deferred" ,emacs-deferred)))
2109 (synopsis "Emacs client for Jenkins")
2110 (description
2111 "Butler provides an interface to connect to Jenkins continuous
2112integration servers. Users can specify a list of server in the
2113@code{butler-server-list} variable and then use @code{M-x butler-status} to
2114view the build status of those servers' build jobs, and possibly to trigger
2115build jobs.")
2116 (license license:gpl3+)))
2d1db448 2117
d1dbeddd
RW
2118(define-public emacs-company
2119 (package
2120 (name "emacs-company")
1262a2ab 2121 (version "0.9.3")
d1dbeddd
RW
2122 (source
2123 (origin
2124 (method url-fetch)
2125 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2126 version ".tar.gz"))
2127 (file-name (string-append name "-" version ".tar.gz"))
2128 (sha256
2129 (base32
1262a2ab 2130 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2131 (build-system emacs-build-system)
4e644ab8
AI
2132 (arguments
2133 `(#:phases
2134 (modify-phases %standard-phases
2135 (add-before 'install 'check
2136 (lambda _
2137 ;; The company-files-candidates-normal-root test looks
2138 ;; for the /bin directory, but the build environment has
2139 ;; no /bin directory. Modify the test to look for the
2140 ;; /tmp directory.
2141 (substitute* "test/files-tests.el"
2142 (("/bin/") "/tmp/"))
2143 (zero? (system* "make" "test-batch")))))))
d1dbeddd
RW
2144 (home-page "http://company-mode.github.io/")
2145 (synopsis "Modular text completion framework")
2146 (description
2147 "Company is a modular completion mechanism. Modules for retrieving
2148completion candidates are called back-ends, modules for displaying them are
2149front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2150These are distributed in separate files and can be used individually.")
2151 (license license:gpl3+)))
2152
7c438099
RW
2153(define-public emacs-multiple-cursors
2154 (package
2155 (name "emacs-multiple-cursors")
2156 (version "1.4.0")
2157 (source
2158 (origin
2159 (method url-fetch)
2160 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2161 "archive/" version ".tar.gz"))
2162 (file-name (string-append name "-" version ".tar.gz"))
2163 (sha256
2164 (base32
2165 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2166 (build-system emacs-build-system)
2167 (home-page "https://github.com/magnars/multiple-cursors.el")
2168 (synopsis "Multiple cursors for Emacs")
2169 (description
2170 "This package adds support to Emacs for editing text with multiple
2171simultaneous cursors.")
2172 (license license:gpl3+)))
2173
2d1db448
LC
2174(define-public typo
2175 (package
2176 (name "emacs-typo")
2177 (version "1.1")
2178 (home-page "https://github.com/jorgenschaefer/typoel")
2179 (source (origin
2180 (method git-fetch)
2181 (uri (git-reference
2182 (url home-page)
2183 (commit (string-append "v" version))))
2184 (sha256
2185 (base32
2186 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2187 (file-name (string-append name "-" version))))
2188 (build-system emacs-build-system)
2189 (synopsis "Minor mode for typographic editing")
2190 (description
2191 "This package provides two Emacs modes, @code{typo-mode} and
2192@code{typo-global-mode}. These modes automatically insert Unicode characters
2193for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2194automatically inserts a Unicode opening or closing quotation mark, depending
2195on context.")
2196 (license license:gpl3+)))
e037a09f
FB
2197
2198(define-public emacs-scheme-complete
2199 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2200 (package
2201 (name "emacs-scheme-complete")
2202 (version (string-append "20151223." (string-take commit 8)))
2203 (source
2204 (origin
2205 (file-name (string-append name "-" version))
2206 (method git-fetch)
2207 (uri (git-reference
2208 (url "https://github.com/ashinn/scheme-complete.git")
2209 (commit commit)))
2210 (sha256
2211 (base32
2212 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2213 (patches
fc1adab1 2214 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2215 (build-system emacs-build-system)
2216 (home-page "https://github.com/ashinn/scheme-complete")
2217 (synopsis "Smart tab completion for Scheme in Emacs")
2218 (description
2219 "This file provides a single function, @code{scheme-smart-complete},
2220which you can use for intelligent, context-sensitive completion for any Scheme
2221implementation in Emacs. To use it just load this file and bind that function
2222to a key in your preferred mode.")
2223 (license license:public-domain))))
58a7dc13
FB
2224
2225(define-public emacs-mit-scheme-doc
2226 (package
2227 (name "emacs-mit-scheme-doc")
2228 (version "20140203")
2229 (source
2230 (origin
2231 (modules '((guix build utils)))
2232 (snippet
2233 ;; keep only file of interest
2234 '(begin
2235 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2236 (install-file "6.945-config/mit-scheme-doc.el" ".")
58a7dc13
FB
2237 (delete-file-recursively "6.945-config")))
2238 (file-name (string-append name "-" version ".tar.bz2"))
2239 (method url-fetch)
2240 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2241 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2242 (sha256
2243 (base32
2244 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2245 (build-system emacs-build-system)
2246 (inputs `(("mit-scheme" ,mit-scheme)))
2247 (arguments
2248 `(#:phases
2249 (modify-phases %standard-phases
2250 (add-after 'unpack 'configure-doc
2251 (lambda* (#:key inputs #:allow-other-keys)
2252 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2253 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2254 "mit-scheme-"
2255 ,(package-version mit-scheme))))
2256 (substitute* "mit-scheme-doc.el"
2257 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2258 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2259 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2260 (synopsis "MIT-Scheme documentation lookup for Emacs")
2261 (description
2262 "This package provides a set of Emacs functions to search definitions of
2263identifiers in the MIT-Scheme documentation.")
2264 (license license:gpl2+)))
e5045f30 2265
e5045f30
FB
2266(define-public emacs-constants
2267 (package
2268 (name "emacs-constants")
f99f3f24 2269 (version "2.6")
a9e41d2f 2270 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2271 (source
2272 (origin
37dbfc50 2273 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2274 (method url-fetch)
2275 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2276 "/archive/v" version ".tar.gz"))
e5045f30
FB
2277 (sha256
2278 (base32
f99f3f24 2279 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2280 (build-system emacs-build-system)
e5045f30
FB
2281 (synopsis "Enter definition of constants into an Emacs buffer")
2282 (description
2283 "This package provides functions for inserting the definition of natural
2284constants and units into an Emacs buffer.")
2285 (license license:gpl2+)))
85960693 2286
e203221f
RW
2287(define-public emacs-tagedit
2288 (package
2289 (name "emacs-tagedit")
2290 (version "1.4.0")
2291 (source
2292 (origin
2293 (method url-fetch)
2294 (uri (string-append "https://github.com/magnars/tagedit/"
2295 "archive/" version ".tar.gz"))
2296 (file-name (string-append name "-" version ".tar.gz"))
2297 (sha256
2298 (base32
2299 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2300 (build-system emacs-build-system)
2301 (propagated-inputs
2302 `(("emacs-s" ,emacs-s)
2303 ("emacs-dash" ,emacs-dash)))
2304 (home-page "https://github.com/magnars/tagedit")
2305 (synopsis "Some paredit-like features for html-mode")
2306 (description
2307 "This package provides a collection of paredit-like functions for editing
2308in @code{html-mode}.")
2309 (license license:gpl3+)))
2310
85960693
FB
2311(define-public emacs-slime
2312 (package
2313 (name "emacs-slime")
b6bd9a79 2314 (version "2.19")
85960693
FB
2315 (source
2316 (origin
2317 (file-name (string-append name "-" version ".tar.gz"))
2318 (method url-fetch)
2319 (uri (string-append
2320 "https://github.com/slime/slime/archive/v"
2321 version ".tar.gz"))
2322 (sha256
2323 (base32
b6bd9a79 2324 "1jhaq5cn89k45nzyl0jd12gmjxnh1bq9jlfwrxba342agxsscb0p"))))
85960693
FB
2325 (build-system emacs-build-system)
2326 (native-inputs
2327 `(("texinfo" ,texinfo)))
2328 (arguments
2329 `(#:phases
2330 (modify-phases %standard-phases
2331 (add-before 'install 'configure
2332 (lambda* _
2333 (emacs-substitute-variables "slime.el"
2334 ("inferior-lisp-program" "sbcl"))
2335 #t))
2336 (add-before 'install 'install-doc
2337 (lambda* (#:key outputs #:allow-other-keys)
2338 (let* ((out (assoc-ref outputs "out"))
2339 (info-dir (string-append out "/share/info"))
2340 (doc-dir (string-append out "/share/doc/"
2341 ,name "-" ,version))
2342 (doc-files '("doc/slime-refcard.pdf"
2343 "README.md" "NEWS" "PROBLEMS"
2344 "CONTRIBUTING.md")))
2345 (with-directory-excursion "doc"
2346 (substitute* "Makefile"
2347 (("infodir=/usr/local/info")
2348 (string-append "infodir=" info-dir)))
2349 (system* "make" "html/index.html")
2350 (system* "make" "slime.info")
2351 (install-file "slime.info" info-dir)
2352 (copy-recursively "html" (string-append doc-dir "/html")))
2353 (for-each (lambda (f)
2354 (install-file f doc-dir)
2355 (delete-file f))
2356 doc-files)
2357 (delete-file-recursively "doc")
2358 #t))))))
2359 (home-page "https://github.com/slime/slime")
2360 (synopsis "Superior Lisp Interaction Mode for Emacs")
2361 (description
2362 "SLIME extends Emacs with support for interactive programming in
2363Common Lisp. The features are centered around @{slime-mode}, an Emacs
2364minor mode that complements the standard @{lisp-mode}. While lisp-mode
2365supports editing Lisp source files, @{slime-mode} adds support for
2366interacting with a running Common Lisp process for compilation,
2367debugging, documentation lookup, and so on.")
2368 (license license:gpl2+)))
e11d14fe 2369
2370(define-public emacs-popup
2371 (package
2372 (name "emacs-popup")
2373 (version "0.5.3")
2374 (source (origin
2375 (method url-fetch)
2376 (uri (string-append
2377 "https://github.com/auto-complete/popup-el/archive/v"
2378 version ".tar.gz"))
2379 (file-name (string-append name "-" version ".tar.gz"))
2380 (sha256
2381 (base32
2382 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2383 (build-system emacs-build-system)
e11d14fe 2384 (home-page "https://github.com/auto-complete/popup-el")
2385 (synopsis "Visual Popup User Interface for Emacs")
2386 (description
2387 "Popup.el is a visual popup user interface library for Emacs.
2388This provides a basic API and common UI widgets such as popup tooltips
2389and popup menus.")
2390 (license license:gpl3+)))
48766ea8
RW
2391
2392(define-public emacs-god-mode
2393 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2394 (revision "1"))
2395 (package
2396 (name "emacs-god-mode")
2397 (version (string-append "20151005.925."
2398 revision "-" (string-take commit 9)))
2399 (source
2400 (origin
2401 (method git-fetch)
2402 (uri (git-reference
2403 (url "https://github.com/chrisdone/god-mode.git")
2404 (commit commit)))
2405 (file-name (string-append name "-" version "-checkout"))
2406 (sha256
2407 (base32
2408 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2409 (build-system emacs-build-system)
2410 (home-page "https://github.com/chrisdone/god-mode")
2411 (synopsis "Minor mode for entering commands without modifier keys")
2412 (description
2413 "This package provides a global minor mode for entering Emacs commands
2414without modifier keys. It's similar to Vim's separation of commands and
2415insertion mode. When enabled all keys are implicitly prefixed with
2416@samp{C-} (among other helpful shortcuts).")
2417 (license license:gpl3+))))
4670f70a
CM
2418
2419(define-public emacs-rfcview
2420 (package
2421 (name "emacs-rfcview")
2422 (version "0.13")
2423 (home-page "http://www.loveshack.ukfsn.org/emacs")
2424 (source (origin
02736daa 2425 (method url-fetch)
4670f70a
CM
2426 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
2427 (sha256
2428 (base32
2429 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
2430 (build-system emacs-build-system)
4670f70a
CM
2431 (synopsis "Prettify Request for Comments (RFC) documents")
2432 (description "The Internet Engineering Task Force (IETF) and the Internet
2433Society (ISOC) publish various Internet-related protocols and specifications
2434as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
2435documents. RFCs and STDs are published in a simple text form. This package
2436provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
2437read these documents in Emacs. It prettifies the text and adds
2438hyperlinks/menus for easier navigation. It also provides functions for
2439browsing the index of RFC documents and fetching them from remote servers or
2440local directories.")
2441 (license license:gpl3+)))
2442
9e9c71eb
CM
2443(define-public emacs-ffap-rfc-space
2444 (package
2445 (name "emacs-ffap-rfc-space")
2446 (version "12")
2447 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
2448 (source (origin
02736daa 2449 (method url-fetch)
9e9c71eb
CM
2450 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
2451 (sha256
2452 (base32
2453 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
2454 (build-system emacs-build-system)
9e9c71eb
CM
2455 (synopsis "Make ffap recognize an RFC with a space before its number")
2456 (description "The Internet Engineering Task Force (IETF) and the
2457Internet Society (ISOC) publish various Internet-related protocols and
2458specifications as \"Request for Comments\" (RFC) documents. The
2459built-in Emacs module \"ffap\" (Find File at Point) has the ability to
2460recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
2461and load the appropriate RFC from a remote server. However, it fails
2462to recognize a name like \"RFC 1234\". This package enhances ffap so
2463that it correctly finds RFCs even when a space appears before the
2464number.")
2465 (license license:gpl3+)))
9576cc72 2466
db1a4960
RW
2467(define-public emacs-org-bullets
2468 (package
2469 (name "emacs-org-bullets")
2470 (version "0.2.4")
2471 (source
2472 (origin
2473 (method url-fetch)
2474 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
2475 version ".tar.gz"))
2476 (file-name (string-append name "-" version ".tar.gz"))
2477 (sha256
2478 (base32
2479 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
2480 (build-system emacs-build-system)
2481 (home-page "https://github.com/sabof/org-bullets")
2482 (synopsis "Show bullets in org-mode as UTF-8 characters")
2483 (description
2484 "This package provides an Emacs minor mode causing bullets in
2485@code{org-mode} to be rendered as UTF-8 characters.")
2486 (license license:gpl3+)))
2487
ed8bc028
RJ
2488(define-public emacs-org-trello
2489 (package
2490 (name "emacs-org-trello")
2491 (version "0.7.9")
2492 (source (origin
2493 (method url-fetch)
2494 (uri (string-append
2495 "https://github.com/org-trello/org-trello/archive/"
2496 version ".tar.gz"))
2497 (file-name (string-append name "-" version ".tar.gz"))
2498 (sha256
2499 (base32
2500 "074dka8g673bj1ck5vavbjaij5jyniygdlw51mdds005wd2br9wf"))))
2501 (build-system emacs-build-system)
2502 (propagated-inputs
2503 `(("emacs-deferred" ,emacs-deferred)
2504 ("emacs-request" ,emacs-request)
2505 ("emacs-dash" ,emacs-dash)
2506 ("emacs-s" ,emacs-s)))
2507 (home-page "https://org-trello.github.io")
2508 (synopsis "Emacs minor mode for interacting with Trello")
2509 (description "This package provides an Emacs minor mode to extend
2510@code{org-mode} with Trello abilities. Trello is an online project
2511organizer.")
2512 (license license:gpl3+)))
2513
9576cc72
AP
2514(define-public emacs-zenburn-theme
2515 (package
2516 (name "emacs-zenburn-theme")
07716c68 2517 (version "2.5")
9576cc72
AP
2518 (source (origin
2519 (method url-fetch)
2520 (uri (string-append
2521 "https://github.com/bbatsov/zenburn-emacs/archive/v"
2522 version ".tar.gz"))
2523 (file-name (string-append name "-" version ".tar.gz"))
2524 (sha256
2525 (base32
07716c68 2526 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 2527 (build-system emacs-build-system)
7bf837fd 2528 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
2529 (synopsis "Low contrast color theme for Emacs")
2530 (description
2531 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
2532It is built on top of the custom theme support in Emacs 24 or later.")
2533 (license license:gpl3+)))
2534
012c8b35
RW
2535(define-public emacs-solarized-theme
2536 (package
2537 (name "emacs-solarized-theme")
2538 (version "1.2.2")
2539 (source (origin
2540 (method url-fetch)
2541 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
2542 "archive/v" version ".tar.gz"))
2543 (file-name (string-append name "-" version ".tar.gz"))
2544 (sha256
2545 (base32
2546 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
2547 (build-system emacs-build-system)
2548 (propagated-inputs
090bdb9e 2549 `(("emacs-dash" ,emacs-dash)))
7bf837fd 2550 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
2551 (synopsis "Port of the Solarized theme for Emacs")
2552 (description
2553 "Solarized for Emacs is a port of the Solarized theme for Vim. This
2554package provides a light and a dark variant.")
2555 (license license:gpl3+)))
2556
e7761186
AV
2557(define-public emacs-ahungry-theme
2558 (package
2559 (name "emacs-ahungry-theme")
2560 (version "1.3.0")
2561 (source
2562 (origin (method url-fetch)
f32ffa04 2563 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
2564 version ".tar"))
2565 (sha256
2566 (base32
2567 "1p2zaq0s4bbl5cx6wyab24wamw7m0mysb0v47dqjmnvfc25z84rq"))))
2568 (build-system emacs-build-system)
2569 (home-page "https://github.com/ahungry/color-theme-ahungry")
2570 (synopsis "Ahungry color theme for Emacs")
2571 (description "Ahungry theme for Emacs provides bright and bold colors.
2572If you load it from a terminal, you will be able to make use of the
2573transparent background. If you load it from a GUI, it will default to a
2574dark background.")
2575 (license license:gpl3+)))
2576
5c447e28
AP
2577(define-public emacs-smartparens
2578 (package
2579 (name "emacs-smartparens")
e0d4331a 2580 (version "1.10.1")
5c447e28
AP
2581 (source (origin
2582 (method url-fetch)
2583 (uri (string-append
2584 "https://github.com/Fuco1/smartparens/archive/"
2585 version ".tar.gz"))
2586 (file-name (string-append name "-" version ".tar.gz"))
2587 (sha256
2588 (base32
e0d4331a 2589 "1nwsi6fbbxjq3r22r6knmx71la3g0lmwfb95i9q4k138gn0m2l3i"))))
5c447e28
AP
2590 (build-system emacs-build-system)
2591 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
2592 (home-page "https://github.com/Fuco1/smartparens")
2593 (synopsis "Paredit-like insertion, wrapping and navigation with user
2594defined pairs")
2595 (description
2596 "Smartparens is a minor mode for Emacs that deals with parens pairs
2597and tries to be smart about it. It started as a unification effort to
2598combine functionality of several existing packages in a single,
2599compatible and extensible way to deal with parentheses, delimiters, tags
2600and the like. Some of these packages include autopair, textmate,
2601wrap-region, electric-pair-mode, paredit and others. With the basic
2602features found in other packages it also brings many improvements as
2603well as completely new features.")
2604 (license license:gpl3+)))
8eeb301d 2605
8f82641a
RJ
2606(define-public emacs-hl-todo
2607 (package
2608 (name "emacs-hl-todo")
4e0d9fce 2609 (version "1.7.4")
8f82641a
RJ
2610 (source (origin
2611 (method url-fetch)
2612 (uri (string-append
2613 "https://raw.githubusercontent.com/tarsius/hl-todo/"
2614 version "/hl-todo.el"))
0e7c4089 2615 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
2616 (sha256
2617 (base32
4e0d9fce 2618 "016ivl4s0ysrm1xbfi86j5xcs759fcb0mkspxw81x8mpi3yb46ya"))))
8f82641a
RJ
2619 (build-system emacs-build-system)
2620 (home-page "https://github.com/tarsius/hl-todo")
2621 (synopsis "Emacs mode to highlight TODO and similar keywords")
2622 (description
2623 "This package provides an Emacs mode to highlight TODO and similar
2624keywords in comments and strings. This package also provides commands for
2625moving to the next or previous keyword and to invoke @code{occur} with a
2626regexp that matches all known keywords.")
2627 (license license:gpl3+)))
2628
480f7350
RW
2629(define-public emacs-perspective
2630 (package
2631 (name "emacs-perspective")
2632 (version "1.12")
2633 (source
2634 (origin
2635 (method url-fetch)
2636 (uri (string-append "https://github.com/nex3/perspective-el/"
2637 "archive/" version ".tar.gz"))
2638 (file-name (string-append name "-" version ".tar.gz"))
2639 (sha256
2640 (base32
2641 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
2642 (build-system emacs-build-system)
7bf837fd 2643 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
2644 (synopsis "Switch between named \"perspectives\"")
2645 (description
2646 "This package provides tagged workspaces in Emacs, similar to workspaces in
2647windows managers such as Awesome and XMonad. @code{perspective.el} provides
2648multiple workspaces (or \"perspectives\") for each Emacs frame. Each
2649perspective is composed of a window configuration and a set of buffers.
2650Switching to a perspective activates its window configuration, and when in a
2651perspective only its buffers are available by default.")
2652 ;; This package is released under the same license as Emacs (GPLv3+) or
2653 ;; the Expat license.
2654 (license license:gpl3+)))
2655
36e5d103
RJ
2656(define-public emacs-request
2657 (package
2658 (name "emacs-request")
2659 (version "0.2.0")
2660 (source (origin
2661 (method url-fetch)
2662 (uri (string-append
2663 "https://github.com/tkf/emacs-request/archive/v"
2664 version ".tar.gz"))
2665 (file-name (string-append name "-" version ".tar.gz"))
2666 (sha256
2667 (base32 "0sll9g9x15jxrdr58pdxx4iz74rnjd43q521iqm890i6hmkrgwap"))))
2668 (build-system emacs-build-system)
2669 (home-page "https://github.com/tkf/emacs-request")
2670 (synopsis "Package for speaking HTTP in Emacs Lisp")
2671 (description "This package provides a HTTP request library with multiple
2672backends. It supports url.el which is shipped with Emacs and the curl command
2673line program.")
2674 (license license:gpl3+)))
2675
f1b61e26 2676(define-public emacs-rudel
2677 (package
2678 (name "emacs-rudel")
2679 (version "0.3.1")
2680 (source
2681 (origin
2682 (method url-fetch)
2683 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
2684 version ".tar"))
2685 (sha256
2686 (base32
2687 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
2688 (build-system emacs-build-system)
2689 (home-page "http://rudel.sourceforge.net/")
2690 (synopsis "Collaborative editing framework")
2691 (description
2692 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
2693is to share buffers with other users in order to edit the contents of those
2694buffers collaboratively. Rudel supports multiple backends to enable
2695communication with other collaborative editors using different protocols,
2696though currently Obby (for use with the Gobby editor) is the only
2697fully-functional one.")
2698 (license license:gpl3+)))
2699
79b3d3ea
RW
2700(define-public emacs-hydra
2701 (package
2702 (name "emacs-hydra")
86d959bd 2703 (version "0.13.6")
79b3d3ea
RW
2704 (source
2705 (origin
2706 (method url-fetch)
2707 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
2708 version ".tar.gz"))
2709 (file-name (string-append name "-" version ".tar.gz"))
2710 (sha256
2711 (base32
86d959bd 2712 "0575vh858gm35p57s49dy6pc2ij46dmj9zaa4z0cp98sqra3j3l0"))))
79b3d3ea
RW
2713 (build-system emacs-build-system)
2714 (home-page "https://github.com/abo-abo/hydra")
2715 (synopsis "Make Emacs bindings that stick around")
2716 (description
2717 "This package can be used to tie related commands into a family of short
2718bindings with a common prefix---a Hydra. Once you summon the Hydra (through
2719the prefixed binding), all the heads can be called in succession with only a
2720short extension. Any binding that isn't the Hydra's head vanquishes the
2721Hydra. Note that the final binding, besides vanquishing the Hydra, will still
2722serve its original purpose, calling the command assigned to it. This makes
2723the Hydra very seamless; it's like a minor mode that disables itself
2724automatically.")
2725 (license license:gpl3+)))
2726
12db29ba
RW
2727(define-public emacs-ivy
2728 (package
2729 (name "emacs-ivy")
352074d5 2730 (version "0.9.1")
12db29ba
RW
2731 (source
2732 (origin
2733 (method url-fetch)
2734 (uri (string-append "https://github.com/abo-abo/swiper/archive/"
2735 version ".tar.gz"))
2736 (file-name (string-append name "-" version ".tar.gz"))
2737 (sha256
2738 (base32
352074d5 2739 "1abi1rvjarwfxxylpx8qlhck0kbavnj0nmlaaizk9q5zr02xfx1j"))))
12db29ba
RW
2740 (build-system emacs-build-system)
2741 (propagated-inputs
2742 `(("emacs-hydra" ,emacs-hydra)))
2743 (home-page "http://oremacs.com/swiper/")
2744 (synopsis "Incremental vertical completion for Emacs")
2745 (description
2746 "This package provides @code{ivy-read} as an alternative to
2747@code{completing-read} and similar functions. No attempt is made to determine
2748the best candidate. Instead, the user can navigate candidates with
2749@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
2750splitting the input text by spaces and re-building it into a regular
2751expression.")
2752 (license license:gpl3+)))
2753
5edc24ec
RW
2754(define-public emacs-avy
2755 (package
2756 (name "emacs-avy")
2757 (version "0.4.0")
2758 (source
2759 (origin
2760 (method url-fetch)
2761 (uri (string-append "https://github.com/abo-abo/avy/archive/"
2762 version ".tar.gz"))
2763 (file-name (string-append name "-" version ".tar.gz"))
2764 (sha256
2765 (base32
2766 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
2767 (build-system emacs-build-system)
2768 (home-page "https://github.com/abo-abo/avy")
2769 (synopsis "Tree-based completion for Emacs")
2770 (description
2771 "This package provides a generic completion method based on building a
2772balanced decision tree with each candidate being a leaf. To traverse the tree
2773from the root to a desired leaf, typically a sequence of @code{read-key} can
2774be used.
2775
2776In order for @code{read-key} to make sense, the tree needs to be visualized
2777appropriately, with a character at each branch node. So this completion
2778method works only for things that you can see on your screen, all at once,
2779such as the positions of characters, words, line beginnings, links, or
2780windows.")
2781 (license license:gpl3+)))
2782
93dba17c
RW
2783(define-public emacs-ace-window
2784 (package
2785 (name "emacs-ace-window")
2786 (version "0.9.0")
2787 (source
2788 (origin
2789 (method url-fetch)
2790 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
2791 version ".tar.gz"))
2792 (file-name (string-append name "-" version ".tar.gz"))
2793 (sha256
2794 (base32
2795 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
2796 (build-system emacs-build-system)
2797 (propagated-inputs
2798 `(("emacs-avy" ,emacs-avy)))
2799 (home-page "https://github.com/abo-abo/ace-window")
2800 (synopsis "Quickly switch windows in Emacs")
2801 (description
2802 "@code{ace-window} is meant to replace @code{other-window}.
2803In fact, when there are only two windows present, @code{other-window} is
2804called. If there are more, each window will have its first character
2805highlighted. Pressing that character will switch to that window.")
2806 (license license:gpl3+)))
2807
e1918ce4
RW
2808(define-public emacs-iedit
2809 (package
2810 (name "emacs-iedit")
2811 (version "0.9.9")
2812 (source
2813 (origin
2814 (method url-fetch)
2815 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
2816 version ".tar.gz"))
2817 (file-name (string-append name "-" version ".tar.gz"))
2818 (sha256
2819 (base32
2820 "00v86zllcsivmiibigbr91qij2zdf1lr9db8z8again1sn63wkdj"))))
2821 (build-system emacs-build-system)
2822 (home-page "http://www.emacswiki.org/emacs/Iedit")
2823 (synopsis "Edit multiple regions in the same way simultaneously")
2824 (description
2825 "This package is an Emacs minor mode and allows you to edit one
2826occurrence of some text in a buffer (possibly narrowed) or region, and
2827simultaneously have other occurrences edited in the same way.
2828
2829You can also use Iedit mode as a quick way to temporarily show only the buffer
2830lines that match the current text being edited. This gives you the effect of
2831a temporary @code{keep-lines} or @code{occur}.")
2832 (license license:gpl3+)))
2833
a5338dd4
RW
2834(define-public emacs-lispy
2835 (package
2836 (name "emacs-lispy")
2837 (version "0.26.0")
2838 (source
2839 (origin
2840 (method url-fetch)
2841 (uri (string-append "https://github.com/abo-abo/lispy/archive/"
2842 version ".tar.gz"))
2843 (file-name (string-append name "-" version ".tar.gz"))
2844 (sha256
2845 (base32
2846 "15gig95cvamw5zlw99cxggd27c18b9scznjj97gvjn2zbljcaqzl"))))
2847 (build-system emacs-build-system)
2848 (propagated-inputs
2849 `(("emacs-ace-window" ,emacs-ace-window)
2850 ("emacs-iedit" ,emacs-iedit)
2851 ("emacs-ivy" ,emacs-ivy)
2852 ("emacs-hydra" ,emacs-hydra)))
2853 (home-page "https://github.com/abo-abo/lispy")
2854 (synopsis "Modal S-expression editing")
2855 (description
2856 "Due to the structure of Lisp syntax it's very rare for the programmer to
2857want to insert characters right before \"(\" or right after \")\". Thus
2858unprefixed printable characters can be used to call commands when the point is
2859at one of these special locations. Lispy provides unprefixed keybindings for
2860S-expression editing when point is at the beginning or end of an
2861S-expression.")
2862 (license license:gpl3+)))
2863
8eeb301d
AP
2864(define-public emacs-clojure-mode
2865 (package
2866 (name "emacs-clojure-mode")
f8d69be0 2867 (version "5.4.0")
8eeb301d
AP
2868 (source (origin
2869 (method url-fetch)
2870 (uri (string-append
2871 "https://github.com/clojure-emacs/clojure-mode/archive/"
2872 version ".tar.gz"))
2873 (file-name (string-append name "-" version ".tar.gz"))
2874 (sha256
2875 (base32
f8d69be0 2876 "117mvjqh4nm8mvmwmmvy4qmkdg23ldlzk08y91g8b8ac8kxwqg81"))))
8eeb301d 2877 (build-system emacs-build-system)
7bf837fd 2878 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
2879 (synopsis "Major mode for Clojure code")
2880 (description
2881 "This Emacs package provides font-lock, indentation, navigation and basic
2882refactoring for the @uref{http://clojure.org, Clojure programming language}.
2883It is recommended to use @code{clojure-mode} with paredit or smartparens.")
2884 (license license:gpl3+)))
d345491a
AP
2885
2886(define-public emacs-epl
2887 (package
2888 (name "emacs-epl")
2889 (version "0.8")
2890 (source (origin
2891 (method url-fetch)
2892 (uri (string-append
2893 "https://github.com/cask/epl/archive/"
2894 version ".tar.gz"))
2895 (sha256
2896 (base32
2897 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
2898 (build-system emacs-build-system)
7bf837fd 2899 (home-page "https://github.com/cask/epl")
d345491a
AP
2900 (synopsis "Emacs Package Library")
2901 (description
2902 "A package management library for Emacs, based on @code{package.el}.
2903
2904The purpose of this library is to wrap all the quirks and hassle of
2905@code{package.el} into a sane API.")
2906 (license license:gpl3+)))
ad6c4bc4
AP
2907
2908(define-public emacs-queue
2909 (package
2910 (name "emacs-queue")
2911 (version "0.1.1")
2912 (source (origin
02736daa 2913 (method url-fetch)
f32ffa04 2914 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
2915 version ".el"))
2916 (sha256
2917 (base32
2918 "0jw24fxqnf9qcaf2nh09cnds1kqfk7hal35dw83x1ari95say391"))))
2919 (build-system emacs-build-system)
2920 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
2921 (synopsis "Queue data structure for Emacs")
2922 (description
2923 "This Emacs library provides queue data structure. These queues can be
2924used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
2925stack, i.e. elements can be added to the front or back of the queue, and can
2926be removed from the front. This type of data structure is sometimes called an
2927\"output-restricted deque\".")
2928 (license license:gpl3+)))
32abfcf4
AP
2929
2930(define-public emacs-pkg-info
2931 (package
2932 (name "emacs-pkg-info")
2933 (version "0.6")
2934 (source (origin
2935 (method url-fetch)
2936 (uri (string-append
2937 "https://github.com/lunaryorn/pkg-info.el/archive/"
2938 version ".tar.gz"))
2939 (file-name (string-append name "-" version ".tar.gz"))
2940 (sha256
2941 (base32
2942 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
2943 (build-system emacs-build-system)
2944 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
2945 (home-page "https://github.com/lunaryorn/pkg-info.el")
2946 (synopsis "Information about Emacs packages")
2947 (description
2948 "This library extracts information from the installed Emacs packages.")
2949 (license license:gpl3+)))
565bccc5
AP
2950
2951(define-public emacs-spinner
2952 (package
2953 (name "emacs-spinner")
cd4d96b8 2954 (version "1.7.3")
565bccc5 2955 (source (origin
02736daa 2956 (method url-fetch)
f32ffa04 2957 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
2958 version ".el"))
2959 (sha256
2960 (base32
cd4d96b8 2961 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
2962 (build-system emacs-build-system)
2963 (home-page "https://github.com/Malabarba/spinner.el")
2964 (synopsis "Emacs mode-line spinner for operations in progress")
2965 (description
2966 "This Emacs package adds spinners and progress-bars to the mode-line for
2967ongoing operations.")
2968 (license license:gpl3+)))
62a45cb6
AP
2969
2970(define-public emacs-seq
2971 (package
2972 (name "emacs-seq")
a5dee1ac 2973 (version "2.19")
62a45cb6
AP
2974 (source (origin
2975 (method url-fetch)
f32ffa04 2976 (uri (string-append "https://elpa.gnu.org/packages/seq-"
62a45cb6
AP
2977 version ".tar"))
2978 (sha256
2979 (base32
a5dee1ac 2980 "11hb7is6a4h1lscjcfrzh576j0g3m5yjydn16s6x5bxp5gsr6zha"))))
62a45cb6 2981 (build-system emacs-build-system)
f32ffa04 2982 (home-page "https://elpa.gnu.org/packages/seq.html")
62a45cb6
AP
2983 (synopsis "Sequence manipulation functions for Emacs")
2984 (description
2985 "This Emacs library provides sequence-manipulation functions that
2986complement basic functions provided by @code{subr.el}. All provided functions
2987work on lists, strings and vectors.")
2988 (license license:gpl3+)))
6ede256f
DT
2989
2990(define-public emacs-better-defaults
2991 (package
2992 (name "emacs-better-defaults")
2993 (version "0.1.3")
2994 (source
2995 (origin
2996 (method url-fetch)
2997 (uri (string-append "https://github.com/technomancy/better-defaults"
2998 "/archive/" version ".tar.gz"))
13384842 2999 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
3000 (sha256
3001 (base32
3002 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3003 (build-system emacs-build-system)
3004 (home-page "https://github.com/technomancy/better-defaults")
3005 (synopsis "Better defaults for Emacs")
3006 (description
3007 "Better defaults attempts to address the most obvious deficiencies of the
3008Emacs default configuration in uncontroversial ways that nearly everyone can
3009agree upon.")
3010 (license license:gpl3+)))
c5c08f1b 3011
7034791a
RJ
3012(define-public emacs-eprime
3013 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3014 (package
3015 (name "emacs-eprime")
3016 (version (string-append "20140513-" (string-take commit 7)))
3017 (source (origin
3018 (method url-fetch)
3019 (uri (string-append "https://raw.githubusercontent.com"
3020 "/AndrewHynes/eprime-mode/"
3021 commit "/eprime-mode.el"))
3022 (file-name (string-append "eprime-" version ".el"))
3023 (sha256
3024 (base32
3025 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3026 (build-system emacs-build-system)
3027 (home-page "https://github.com/AndrewHynes/eprime-mode")
3028 (synopsis "E-prime checking mode for Emacs")
3029 (description "This package provides an E-prime checking mode for Emacs
3030that highlights non-conforming text. The subset of the English language called
3031E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3032 (license license:gpl3+))))
3033
41184943
RJ
3034(define-public emacs-ess
3035 (package
3036 (name "emacs-ess")
3037 (version "16.04")
3038 (source (origin
3039 (method url-fetch)
3040 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
3041 version ".tgz"))
3042 (sha256
3043 (base32
3044 "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
3045 (build-system gnu-build-system)
3046 (arguments
3047 `(#:tests? #f ; There is no test suite.
3048 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
3049 #:phases
3050 (modify-phases %standard-phases
3051 (delete 'configure)
3052 (add-before 'build 'more-shebang-patching
3053 (lambda* (#:key inputs #:allow-other-keys)
3054 (substitute* "Makeconf"
3055 (("SHELL = /bin/sh")
3056 (string-append "SHELL = " (which "sh")))))))))
3057 (inputs
3058 `(("emacs" ,emacs-minimal)
2d7c4ae3 3059 ("r-minimal" ,r-minimal)))
41184943
RJ
3060 (native-inputs
3061 `(("perl" ,perl)
3062 ("texinfo" ,texinfo)
3063 ("texlive" ,texlive)))
3064 (home-page "http://ess.r-project.org/")
3065 (synopsis "Emacs mode for statistical analysis programs")
3066 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
3067Emacs. It is designed to support editing of scripts and interaction with
3068various statistical analysis programs such as R and OpenBUGS.")
3069 (license license:gpl2+)))
3070
c5c08f1b
DT
3071(define-public emacs-smex
3072 (package
3073 (name "emacs-smex")
3074 (version "3.0")
3075 (source (origin
3076 (method url-fetch)
3077 (uri (string-append "https://raw.githubusercontent.com"
3078 "/nonsequitur/smex/" version "/smex.el"))
3079 (file-name (string-append "smex-" version ".el"))
3080 (sha256
3081 (base32
3082 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
3083 (build-system emacs-build-system)
7bf837fd 3084 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
3085 (synopsis "M-x interface with Ido-style fuzzy matching")
3086 (description
3087 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
3088convenient interface to your recently and most frequently used commands. And
3089to all the other commands, too.")
3090 (license license:gpl3+)))
3e5be84b
DT
3091
3092(define-public emacs-js2-mode
3093 (package
3094 (name "emacs-js2-mode")
3095 (version "20150909")
3096 (source (origin
3097 (method url-fetch)
3098 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
3099 version ".tar.gz"))
3100 (file-name (string-append name "-" version ".tar.gz"))
3101 (sha256
3102 (base32
3103 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
3104 (build-system emacs-build-system)
3105 (home-page "https://github.com/mooz/js2-mode/")
3106 (synopsis "Improved JavaScript editing mode for Emacs")
3107 (description
3108 "Js2-mode provides a JavaScript major mode for Emacs that is more
3109advanced than the built-in javascript-mode. Features include accurate syntax
3110highlighting using a recursive-descent parser, on-the-fly reporting of syntax
3111errors and strict-mode warnings, smart line-wrapping within comments and
3112strings, and code folding.")
3113 (license license:gpl3+)))
b78b6e80
DT
3114
3115(define-public emacs-markdown-mode
3116 (package
3117 (name "emacs-markdown-mode")
3118 (version "2.1")
3119 (source (origin
3120 (method url-fetch)
3121 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
3122 "/markdown-mode/v" version
3123 "/markdown-mode.el"))
3124 (file-name (string-append "markdown-mode-" version ".el"))
3125 (sha256
3126 (base32
3127 "1faibar32jnjia9202swblw91q6z1g5s4k9xmypwjahfh8yznl6w"))))
3128 (build-system emacs-build-system)
3129 (home-page "http://jblevins.org/projects/markdown-mode/")
3130 (synopsis "Emacs Major mode for Markdown files")
3131 (description
3132 "Markdown-mode is a major mode for editing Markdown-formatted text files
3133in Emacs.")
3134 (license license:gpl3+)))
a2670dde
DT
3135
3136(define-public emacs-projectile
3137 (package
3138 (name "emacs-projectile")
6461c44c 3139 (version "0.14.0")
a2670dde
DT
3140 (source (origin
3141 (method url-fetch)
3142 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
3143 "/projectile/v" version "/projectile.el"))
3144 (file-name (string-append "projectile-" version ".el"))
3145 (sha256
3146 (base32
6461c44c 3147 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
3148 (build-system emacs-build-system)
3149 (propagated-inputs
3150 `(("emacs-dash" ,emacs-dash)
3151 ("emacs-pkg-info" ,emacs-pkg-info)))
3152 (home-page "https://github.com/bbatsov/projectile")
3153 (synopsis "Manage and navigate projects in Emacs easily")
3154 (description
3155 "This library provides easy project management and navigation. The
3156concept of a project is pretty basic - just a folder containing special file.
3157Currently git, mercurial and bazaar repos are considered projects by default.
3158If you want to mark a folder manually as a project just create an empty
3159.projectile file in it.")
3160 (license license:gpl3+)))
4aea1e01
DT
3161
3162(define-public emacs-elfeed
3163 (package
3164 (name "emacs-elfeed")
6bd4a889 3165 (version "2.1.0")
4aea1e01
DT
3166 (source (origin
3167 (method url-fetch)
3168 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
3169 version ".tar.gz"))
3170 (file-name (string-append name "-" version ".tar.gz"))
3171 (sha256
3172 (base32
6bd4a889 3173 "145glas04zd0s2rmnif46vhyijs4z03v871gfp1dcrwxvvvns8ap"))))
4aea1e01 3174 (build-system emacs-build-system)
568f977f
AI
3175 (arguments
3176 `(#:phases
3177 (modify-phases %standard-phases
3178 (add-before 'install 'check
3179 (lambda _
3180 (zero? (system* "make" "test")))))))
4aea1e01
DT
3181 (home-page "https://github.com/skeeto/elfeed")
3182 (synopsis "Atom/RSS feed reader for Emacs")
3183 (description
3184 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
3185and RSS, with a user interface inspired by notmuch.")
3186 (license license:gpl3+)))
c86f0207
DT
3187
3188(define-public emacs-rainbow-delimiters
3189 (package
3190 (name "emacs-rainbow-delimiters")
3191 (version "2.1.3")
3192 (source (origin
3193 (method url-fetch)
3194 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3195 "/rainbow-delimiters/" version
3196 "/rainbow-delimiters.el"))
3197 (file-name (string-append "rainbow-delimiters-" version ".el"))
3198 (sha256
3199 (base32
3200 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
3201 (build-system emacs-build-system)
3202 (home-page "https://github.com/Fanael/rainbow-delimiters")
3203 (synopsis "Highlight brackets according to their depth")
3204 (description
3205 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
3206highlights parentheses, brackets, and braces according to their depth. Each
3207successive level is highlighted in a different color, making it easy to spot
3208matching delimiters, orient yourself in the code, and tell which statements
3209are at a given level.")
3210 (license license:gpl3+)))
65b49ae7 3211
d95e8e01
RJ
3212(define-public emacs-rainbow-identifiers
3213 (package
3214 (name "emacs-rainbow-identifiers")
3215 (version "0.2.2")
3216 (source (origin
3217 (method url-fetch)
3218 (uri (string-append "https://raw.githubusercontent.com/Fanael"
3219 "/rainbow-identifiers/" version
3220 "/rainbow-identifiers.el"))
3221 (file-name (string-append "rainbow-identifiers-" version ".el"))
3222 (sha256
3223 (base32
3224 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
3225 (build-system emacs-build-system)
3226 (home-page "https://github.com/Fanael/rainbow-identifiers")
3227 (synopsis "Highlight identifiers in source code")
3228 (description
3229 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
3230identifiers based on their names. Each identifier gets a color based on a hash
3231of its name.")
3232 (license license:bsd-2)))
3233
fede3a90
RW
3234(define-public emacs-visual-fill-column
3235 (package
3236 (name "emacs-visual-fill-column")
3237 (version "1.7")
3238 (source (origin
3239 (method url-fetch)
3240 (uri (string-append "https://codeload.github.com/joostkremers/"
3241 "visual-fill-column/tar.gz/" version))
3242 (file-name (string-append name "-" version ".tar.gz"))
3243 (sha256
3244 (base32
3245 "12vn7kdq2mpz9hgibbn1vhpf23lcm7c26k3fkz8nidhygwl5x5lq"))))
3246 (build-system emacs-build-system)
3247 (home-page "https://github.com/joostkremers/visual-fill-column")
3248 (synopsis "Fill-column for visual-line-mode")
3249 (description
3250 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
3251the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
3252wrapping lines at the window edge, which is the standard behaviour of
3253@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
3254@code{fill-column} is too large for the window, the text is wrapped at the
3255window edge.")
3256 (license license:gpl3+)))
3257
65b49ae7
DT
3258(define-public emacs-ido-completing-read+
3259 (package
3260 (name "emacs-ido-completing-read+")
3261 (version "3.12")
3262 (source (origin
3263 (method url-fetch)
3264 (uri (string-append "https://raw.githubusercontent.com"
3265 "/DarwinAwardWinner/ido-ubiquitous/v"
3266 version "/ido-completing-read+.el"))
3267 (file-name (string-append "ido-completing-read+-" version ".el"))
3268 (sha256
3269 (base32
3270 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
3271 (build-system emacs-build-system)
3272 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3273 (synopsis "Replacement for completing-read using ido")
3274 (description
3275 "The ido-completing-read+ function is a wrapper for ido-completing-read.
3276Importantly, it detects edge cases that ordinary ido cannot handle and either
3277adjusts them so ido can handle them, or else simply falls back to the standard
3278Emacs completion function instead.")
3279 (license license:gpl3+)))
529fe992
DT
3280
3281(define-public emacs-ido-ubiquitous
3282 (package
3283 (name "emacs-ido-ubiquitous")
3284 (version "3.12")
3285 (source (origin
3286 (method url-fetch)
3287 (uri (string-append "https://raw.githubusercontent.com"
3288 "/DarwinAwardWinner/ido-ubiquitous/v"
3289 version "/ido-ubiquitous.el"))
3290 (file-name (string-append "ido-ubiquitous-" version ".el"))
3291 (sha256
3292 (base32
3293 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
3294 (build-system emacs-build-system)
3295 (propagated-inputs
3296 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
3297 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
3298 (synopsis "Use ido (nearly) everywhere")
3299 (description
3300 "Ido-ubiquitous enables ido-style completion for almost every function
3301that uses the standard completion function completing-read.")
3302 (license license:gpl3+)))
63de1231
DT
3303
3304(define-public emacs-yaml-mode
3305 (package
3306 (name "emacs-yaml-mode")
3307 (version "0.0.12")
3308 (source (origin
3309 (method url-fetch)
3310 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
3311 "/yaml-mode/v" version "/yaml-mode.el"))
3312 (file-name (string-append "yaml-mode-" version ".el"))
3313 (sha256
3314 (base32
e08580c5 3315 "17wq433ycli0qx4gdhgrmb392qblm6y2dwcyn38j5ja1lasfb0ax"))))
63de1231
DT
3316 (build-system emacs-build-system)
3317 (home-page "https://github.com/yoshiki/yaml-mode")
3318 (synopsis "Major mode for editing YAML files")
3319 (description
3320 "Yaml-mode is an Emacs major mode for editing files in the YAML data
3321serialization format. It was initially developed by Yoshiki Kurihara and many
3322features were added by Marshall Vandegrift. As YAML and Python share the fact
3323that indentation determines structure, this mode provides indentation and
3324indentation command behavior very similar to that of python-mode.")
3325 (license license:gpl3+)))
7529c883
DT
3326
3327(define-public emacs-web-mode
3328 (package
3329 (name "emacs-web-mode")
3330 (version "14")
3331 (source (origin
3332 (method url-fetch)
3333 (uri (string-append "https://raw.githubusercontent.com/fxbois"
3334 "/web-mode/v" version "/web-mode.el"))
3335 (file-name (string-append "web-mode-" version ".el"))
3336 (sha256
3337 (base32
3338 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
3339 (build-system emacs-build-system)
3340 (synopsis "Major mode for editing web templates")
3341 (description "Web-mode is an Emacs major mode for editing web templates
3342aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
3343client/server side engines). Web-mode is compatible with many template
3344engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
3345Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
3346Dust.js, React/JSX, Angularjs, ejs, etc.")
3347 (home-page "http://web-mode.org/")
3348 (license license:gpl3+)))
ae609001
MJ
3349
3350(define-public emacs-helm
3351 (package
3352 (name "emacs-helm")
fa6a082e 3353 (version "1.9.8")
ae609001
MJ
3354 (source (origin
3355 (method url-fetch)
3356 (uri (string-append
3357 "https://github.com/" name "/helm/archive/v"
3358 version ".tar.gz"))
3359 (file-name (string-append name "-" version ".tar.gz"))
3360 (sha256
3361 (base32
fa6a082e 3362 "019dpzr6l83k1fgxn40aqxjvrpz4dl5d9vi7fc5wjnifmxaqxia6"))))
ae609001
MJ
3363 (build-system emacs-build-system)
3364 (propagated-inputs
3365 `(("emacs-async" ,emacs-async)
3366 ("emacs-popup" ,emacs-popup)))
3367 (home-page "https://emacs-helm.github.io/helm/")
3368 (synopsis "Incremental completion and selection narrowing
3369framework for Emacs")
3370 (description "Helm is incremental completion and selection narrowing
3371framework for Emacs. It will help steer you in the right direction when
3372you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
3373of @code{anything.el} originally written by Tamas Patrovic and can be
3374considered to be its successor. Helm sets out to clean up the legacy code in
3375@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
3376not tied in the trap of backward compatibility.")
3377 (license license:gpl3+)))
f9be4366
AP
3378
3379(define-public emacs-cider
3380 (package
3381 (name "emacs-cider")
3382 (version "0.12.0")
3383 (source (origin
3384 (method url-fetch)
3385 (uri (string-append
3386 "https://github.com/clojure-emacs/cider/archive/v"
3387 version ".tar.gz"))
3388 (file-name (string-append name "-" version ".tar.gz"))
3389 (sha256
3390 (base32
3391 "00qzbfjy3w6bcnki7gw0clmi0cc5yqjdrcyhgv4ymijjs79h9p5s"))))
3392 (build-system emacs-build-system)
3393 (propagated-inputs
3394 `(("emacs-clojure-mode" ,emacs-clojure-mode)
3395 ("emacs-spinner" ,emacs-spinner)
3396 ("emacs-pkg-info" ,emacs-pkg-info)
3397 ("emacs-queue" ,emacs-queue)
3398 ("emacs-seq" ,emacs-seq)))
3399 (home-page "https://cider.readthedocs.org/")
3400 (synopsis "Clojure development environment for Emacs")
3401 (description
3402 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
3403provide an interactive development experience similar to the one you'd get
3404when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
3405Geiser) and Smalltalk.
3406
3407CIDER is the successor to the now deprecated combination of using SLIME +
3408swank-clojure for Clojure development.
3409
3410There are plenty of differences between CIDER and SLIME, but the core ideas
3411are pretty much the same (and SLIME served as the principle inspiration for
3412CIDER).")
3413 (license license:gpl3+)))
26e08b4d 3414
3415(define-public emacs-lua-mode
3416 (package
3417 (name "emacs-lua-mode")
3418 (version "20151025")
3419 (source (origin
3420 (method url-fetch)
3421 (uri (string-append
3422 "https://github.com/immerrr/lua-mode/archive/v"
3423 version ".tar.gz"))
3424 (file-name (string-append name "-" version ".tar.gz"))
3425 (sha256
3426 (base32
3427 "0sbhfny5ib65cnx6xcy6h9bbw27mw034s8m9cca00bhxqaqi6p4v"))))
3428 (build-system emacs-build-system)
7bf837fd 3429 (home-page "https://github.com/immerrr/lua-mode/")
26e08b4d 3430 (synopsis "Major mode for lua")
3431 (description
3432 "This Emacs package provides a mode for @uref{https://www.lua.org/,
3433Lua programing language}.")
3434 (license license:gpl2+)))
0202612d 3435
3436(define-public emacs-ebuild-mode
3437 (package
3438 (name "emacs-ebuild-mode")
3439 (version "1.30")
3440 (source (origin
3441 (method url-fetch)
3442 (uri (string-append
3443 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
3444 "-" version ".tar.xz"))
3445 (file-name (string-append name "-" version ".tar.xz"))
3446 (sha256
3447 (base32
3448 "0vp7lq1kvmh1b2bms2x1kf2k76dy9m02d7cirkxpiglwaxa0h9vz"))))
3449 (build-system emacs-build-system)
3450 (home-page "https://devmanual.gentoo.org")
3451 (synopsis "Major modes for Gentoo package files")
3452 (description
3453 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
3454news items, openrc and runscripts.")
3455 (license license:gpl2+)))
a9fbe94e 3456
2edbfbf5 3457(define-public emacs-evil
3458 (package
3459 (name "emacs-evil")
3460 (version "1.2.12")
3461 (source
3462 (origin
3463 (method url-fetch)
3464 (uri (string-append "https://bitbucket.org/lyro/evil/get/"
3465 version ".tar.bz2"))
3466 (file-name (string-append name "-" version ".tar.bz2"))
3467 (sha256
3468 (base32
3469 "17cda9fnbq3gmjcxs3lyq64gxswrf37y864bm53rldwsk3khq2yi"))))
3470 (build-system emacs-build-system)
3471 (propagated-inputs
3472 `(("emacs-undo-tree" ,emacs-undo-tree)
3473 ("emacs-goto-chg" ,emacs-goto-chg)))
3474 (home-page "https://bitbucket.com/lyro/evil")
3475 (synopsis "Extensible Vi layer for Emacs")
3476 (description
3477 "Evil is an extensible vi layer for Emacs. It emulates the
3478main features of Vim, and provides facilities for writing custom
3479extensions.")
3480 (license license:gpl3+)))
3481
ce74e520 3482(define-public emacs-goto-chg
3483 (package
3484 (name "emacs-goto-chg")
3485 (version "1.6")
3486 (source
3487 (origin
3488 (method url-fetch)
3489 ;; There is no versioned source.
3490 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 3491 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 3492 (sha256
3493 (base32
3494 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
3495 (build-system emacs-build-system)
3496 ;; There is no other home page.
3497 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
3498 (synopsis "Go to the last change in the Emacs buffer")
3499 (description
3500 "This package provides @code{M-x goto-last-change} command that goes to
3501the point of the most recent edit in the current Emacs buffer. When repeated,
3502go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
3503used for reverse direction.")
3504 (license license:gpl2+)))
3505
a1eba1be
VD
3506(define-public emacs-monroe
3507 (package
3508 (name "emacs-monroe")
b125649a 3509 (version "0.3.1")
a1eba1be
VD
3510 (source
3511 (origin
3512 (method url-fetch)
b125649a
VD
3513 (uri (string-append "https://github.com/sanel/monroe/archive/"
3514 version ".tar.gz"))
3515 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
3516 (sha256
3517 (base32
b125649a 3518 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 3519 (build-system emacs-build-system)
b125649a 3520 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
3521 (synopsis "Clojure nREPL client for Emacs")
3522 (description
3523 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
3524distribution, primarily targeting Clojure users")
3525 (license license:gpl3+)))
3526
a9fbe94e
LC
3527(define-public emacs-writegood-mode
3528 (package
3529 (name "emacs-writegood-mode")
3530 (version "2.0.2")
7bf837fd 3531 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
3532 (source (origin
3533 (method git-fetch)
3534 (uri (git-reference
3535 (url home-page)
3536 (commit (string-append "v" version))))
3537 (sha256
3538 (base32
3539 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
3540 (file-name (string-append name "-checkout"))))
3541 (build-system emacs-build-system)
3542 (synopsis "Polish up poor writing on the fly")
3543 (description
3544 "This minor mode tries to find and highlight problems with your writing
3545in English as you type. It primarily detects \"weasel words\" and abuse of
3546passive voice.")
3547 (license license:gpl3+)))
e08ca4b9 3548
3549(define-public emacs-neotree
3550 (package
3551 (name "emacs-neotree")
3552 (version "0.2.1")
3553 (home-page "https://github.com/jaypei/emacs-neotree")
3554 (source (origin
3555 (method url-fetch)
3556 (uri (string-append
3557 "https://github.com/jaypei/" name
3558 "/archive/v" version ".tar.gz"))
3559 (sha256
3560 (base32
3561 "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s"))
f409d0aa 3562 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 3563 (build-system emacs-build-system)
3564 (synopsis "Folder tree view for Emacs")
3565 (description "This Emacs package provides a folder tree view.")
3566 (license license:gpl3+)))
59065bb3
NG
3567
3568(define-public emacs-org
3569 (package
3570 (name "emacs-org")
d7dcaf8a 3571 (version "20170502")
59065bb3
NG
3572 (source (origin
3573 (method url-fetch)
c2662820 3574 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
3575 version ".tar"))
3576 (sha256
3577 (base32
d7dcaf8a 3578 "12inz804j55ycprb2m3ay54d1bhwhjssmn5nrfm7cfklyhfsy27s"))))
59065bb3
NG
3579 (build-system emacs-build-system)
3580 (home-page "http://orgmode.org/")
3581 (synopsis "Outline-based notes management and organizer")
3582 (description "Org is an Emacs mode for keeping notes, maintaining TODO
3583lists, and project planning with a fast and effective plain-text system. It
3584also is an authoring system with unique support for literate programming and
3585reproducible research.")
3586 (license license:gpl3+)))
41392b9a 3587
3588(define-public emacs-flx
3589 (package
3590 (name "emacs-flx")
3591 (version "0.6.1")
3592 (source
3593 (origin
3594 (method url-fetch)
3595 (uri (string-append "https://github.com/lewang/"
3596 "flx/archive/v" version ".tar.gz"))
3597 (sha256
3598 (base32
3599 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
3600 (file-name (string-append name "-" version ".tar.gz"))))
3601 (build-system emacs-build-system)
3602 (home-page "https://github.com/lewang/flx")
3603 (synopsis "Fuzzy matching for Emacs")
3604 (description
3605 "Flx provides fuzzy matching for emacs a la sublime text.
3606The sorting algorithm is a balance between word beginnings (abbreviation)
3607and contiguous matches (substring). The longer the substring match,
3608the higher it scores. This maps well to how we think about matching.
3609Flx has support for ido (interactively do things) through flx-ido.")
3610 (license license:gpl3+)))
9657aba4 3611
3612(define-public emacs-cyberpunk-theme
3613 (package
3614 (name "emacs-cyberpunk-theme")
5cd41292 3615 (version "1.18")
9657aba4 3616 (source
3617 (origin
3618 (method url-fetch)
3619 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
3620 "archive/" version ".tar.gz"))
3621 (sha256
3622 (base32
5cd41292 3623 "0pxzbw0qjxgkhhs3gn3k9qy41kl1a4pfzbw83dk24l4b3nxd24wg"))
9657aba4 3624 (file-name (string-append name "-" version ".tar.gz"))))
3625 (build-system emacs-build-system)
3626 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
3627 (synopsis "Cyberpunk theme for emacs built-in color theme support")
3628 (description
3629 "Cyberpunk color theme for the emacs 24+ built-in color theme support
3630known loosely as deftheme. Many mode-specific customizations are included.")
3631 (license license:gpl3+)))
840224aa 3632
8f493950 3633(define-public emacs-danneskjold-theme
3634 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
3635 (revision "1"))
3636 (package
3637 (name "emacs-danneskjold-theme")
3638 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
3639 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
3640 (source
3641 (origin
3642 (method git-fetch)
3643 (uri (git-reference
3644 (url home-page)
3645 (commit commit)))
3646 (file-name (string-append name "-" version "-checkout"))
3647 (sha256
3648 (base32
3649 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
3650 (build-system emacs-build-system)
3651 (arguments
3652 `(#:phases
3653 (modify-phases %standard-phases
3654 (add-after 'unpack 'delete-screenshots
3655 (lambda _
3656 (delete-file-recursively "screenshots") #t)))))
3657 (synopsis "High-contrast Emacs theme")
3658 (description
3659 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
3660 (license license:gpl3+))))
3661
1ba67b62 3662(define-public emacs-dream-theme
3663 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
3664 (revision "1"))
3665 (package
3666 (name "emacs-dream-theme")
3667 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
3668 (source
3669 (origin
3670 (method git-fetch)
3671 (uri (git-reference
3672 (url "https://github.com/djcb/dream-theme")
3673 (commit commit)))
3674 (file-name (string-append name "-" version "-checkout"))
3675 (sha256
3676 (base32
3677 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
3678 (build-system emacs-build-system)
3679 (home-page "https://github.com/djcb/dream-theme")
3680 (synopsis "High-contrast Emacs theme")
3681 (description
3682 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
3683by zenburn, sinburn and similar themes, but slowly diverging from them.")
3684 (license license:gpl3+))))
3685
840224aa 3686(define-public emacs-auto-complete
3687 (package
3688 (name "emacs-auto-complete")
3689 (version "1.5.1")
3690 (source
3691 (origin
3692 (method url-fetch)
3693 (uri (string-append "https://github.com/auto-complete/"
3694 "auto-complete/archive/v" version ".tar.gz"))
3695 (sha256
3696 (base32
3697 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
3698 (file-name (string-append name "-" version ".tar.gz"))))
3699 (build-system emacs-build-system)
3700 (propagated-inputs
3701 `(("emacs-popup" ,emacs-popup)))
3702 (home-page "https://github.com/auto-complete/auto-complete")
3703 (synopsis "Intelligent auto-completion extension for Emacs")
3704 (description
3705 "Auto-Complete is an intelligent auto-completion extension for Emacs.
3706It extends the standard Emacs completion interface and provides an environment
3707that allows users to concentrate more on their own work. Its features are:
3708a visual interface, reduce overhead of completion by using statistic method,
3709extensibility.")
3710 (license license:gpl3+)))
154c71e0
AI
3711
3712(define-public m17n-db
3713 (package
3714 (name "m17n-db")
3715 (version "1.7.0")
3716 (source
3717 (origin
3718 (method url-fetch)
3719 (uri (string-append "mirror://savannah/m17n/m17n-db-"
3720 version ".tar.gz"))
3721 (sha256
3722 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
3723 (build-system gnu-build-system)
3724 (inputs
7c90d0f4 3725 `(("gettext" ,gettext-minimal)))
154c71e0
AI
3726 (arguments
3727 `(#:configure-flags
3728 (list (string-append "--with-charmaps="
3729 (assoc-ref %build-inputs "libc")
3730 "/share/i18n/charmaps"))))
3731 ;; With `guix lint' the home-page URI returns a small page saying
3732 ;; that your browser does not handle frames. This triggers the "URI
3733 ;; returns suspiciously small file" warning.
3734 (home-page "http://www.nongnu.org/m17n/")
3735 (synopsis "Multilingual text processing library (database)")
3736 (description "The m17n library realizes multilingualization of
3737many aspects of applications. The m17n library represents
3738multilingual text as an object named M-text. M-text is a string with
3739attributes called text properties, and designed to substitute for
3740string in C. Text properties carry any information required to input,
3741display and edit the text.
3742
3743This package contains the library database.")
3744 (license license:lgpl2.1+)))
a80b60f4
AI
3745
3746(define-public m17n-lib
3747 (package
3748 (name "m17n-lib")
3749 (version "1.7.0")
3750 (source
3751 (origin
3752 (method url-fetch)
966a543b
LC
3753 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
3754 version ".tar.gz"))
a80b60f4
AI
3755 (sha256
3756 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
3757 (build-system gnu-build-system)
3758 (inputs
3759 `(("fribidi" ,fribidi)
3760 ("gd" ,gd)
3761 ("libotf" ,libotf)
3762 ("libxft" ,libxft)
3763 ("libxml2" ,libxml2)
3764 ("m17n-db" ,m17n-db)))
3765 (arguments
3766 `(#:parallel-build? #f))
3767 ;; With `guix lint' the home-page URI returns a small page saying
3768 ;; that your browser does not handle frames. This triggers the "URI
3769 ;; returns suspiciously small file" warning.
3770 (home-page "http://www.nongnu.org/m17n/")
3771 (synopsis "Multilingual text processing library (runtime)")
3772 (description "The m17n library realizes multilingualization of
3773many aspects of applications. The m17n library represents
3774multilingual text as an object named M-text. M-text is a string with
3775attributes called text properties, and designed to substitute for
3776string in C. Text properties carry any information required to input,
3777display and edit the text.
3778
3779This package contains the library runtime.")
3780 (license license:lgpl2.1+)))
71d3ee1c
AI
3781
3782(define-public emacs-nginx-mode
3783 (package
3784 (name "emacs-nginx-mode")
3785 (version "1.1.4")
3786 (source
3787 (origin
3788 (method url-fetch)
3789 (uri (string-append
3790 "https://github.com/ajc/nginx-mode/archive/v"
3791 version ".tar.gz"))
3792 (file-name (string-append name "-" version ".tar.gz"))
3793 (sha256
3794 (base32
3795 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
3796 (build-system emacs-build-system)
3797 (home-page "https://github.com/ajc/nginx-mode")
3798 (synopsis "Emacs major mode for editing nginx config files")
3799 (description "This package provides an Emacs major mode for
3800editing nginx config files.")
3801 (license license:gpl2+)))
8f50634b
FB
3802
3803(define-public emacs-stream
3804 (package
3805 (name "emacs-stream")
3806 (version "2.2.0")
3807 (home-page "https://github.com/NicolasPetton/stream")
3808 (source
3809 (origin
3810 (method url-fetch)
3811 (file-name (string-append name "-" version ".tar.gz"))
3812 (uri (string-append home-page "/archive/"version ".tar.gz"))
3813 (sha256
3814 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
3815 (build-system emacs-build-system)
3816 (synopsis "Implementation of streams for Emacs")
3817 (description "This library provides an implementation of streams for Emacs.
3818Streams are implemented as delayed evaluation of cons cells.")
3819 (license license:gpl3+)))
0fc06f3e
FB
3820
3821(define-public emacs-el-search
3822 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
3823 (revision "1"))
3824 (package
3825 (name "emacs-el-search")
3826 ;; No ufficial release.
3827 (version (string-append "0.0-" revision "." (string-take commit 7)))
3828 (home-page "https://github.com/emacsmirror/el-search")
3829 (source
3830 (origin
3831 (method git-fetch)
3832 (file-name (string-append name "-" version ".tar.gz"))
3833 (uri (git-reference
3834 (commit commit)
3835 (url (string-append home-page ".git"))))
3836 (sha256
3837 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
3838 (build-system emacs-build-system)
3839 (inputs `(("emacs-stream" ,emacs-stream)))
3840 (synopsis "Expression based interactive search for emacs-lisp-mode")
3841 (description "This package provides expression based interactive search
3842procedures for emacs-lisp-mode.")
3843 (license license:gpl3+))))
1e523180
MO
3844
3845(define-public emacs-ht
3846 (package
3847 (name "emacs-ht")
3848 (version "2.1")
3849 (source
3850 (origin
3851 (method url-fetch)
3852 (uri (string-append
3853 "https://github.com/Wilfred/ht.el/archive/"
3854 version ".tar.gz"))
3855 (file-name (string-append name "-" version ".tar.gz"))
3856 (sha256
3857 (base32
3858 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
3859 (build-system emacs-build-system)
3860 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
3861 (home-page "https://github.com/Wilfred/ht.el")
3862 (synopsis "Hash table library for Emacs")
3863 (description
3864 "This package simplifies the use of hash tables in elisp. It also
3865provides functions to convert hash tables from and to alists and plists.")
3866 (license license:gpl3+)))
3867
521f5d96
MO
3868(define-public emacs-log4e
3869 (package
3870 (name "emacs-log4e")
3871 (version "0.3.0")
3872 (source
3873 (origin
3874 (method url-fetch)
3875 (uri (string-append
3876 "https://github.com/aki2o/log4e/archive/v"
3877 version ".tar.gz"))
3878 (file-name (string-append name "-" version ".tar.gz"))
3879 (sha256
3880 (base32
3881 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
3882 (build-system emacs-build-system)
3883 (arguments
3884 `(#:phases
3885 (modify-phases %standard-phases
3886 (add-after 'unpack 'remove-tests
3887 ;; Guile builder complains about null characters in some
3888 ;; strings of test files. Remove "test" directory (it is not
3889 ;; needed anyway).
3890 (lambda _
3891 (delete-file-recursively "test"))))))
3892 (home-page "https://github.com/aki2o/log4e")
3893 (synopsis "Logging framework for elisp")
3894 (description
3895 "This package provides a logging framework for elisp. It allows
3896you to deal with multiple log levels.")
3897 (license license:gpl3+)))
ba117841
MO
3898
3899(define-public emacs-gntp
3900 (package
3901 (name "emacs-gntp")
3902 (version "0.1")
3903 (source
3904 (origin
3905 (method url-fetch)
3906 (uri (string-append
3907 "https://github.com/tekai/gntp.el/archive/v"
3908 version ".tar.gz"))
3909 (file-name (string-append name "-" version ".tar.gz"))
3910 (sha256
3911 (base32
3912 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
3913 (build-system emacs-build-system)
3914 (home-page "https://github.com/tekai/gntp.el")
3915 (synopsis "Growl Notification Protocol for Emacs")
3916 (description
3917 "This package implements the Growl Notification Protocol GNTP
3918described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
3919It is incomplete as it only lets you send but not receive
3920notifications.")
3921 (license license:bsd-3)))
2c5e31fa
MO
3922
3923(define-public emacs-alert
3924 (package
3925 (name "emacs-alert")
3926 (version "1.2")
3927 (source
3928 (origin
3929 (method url-fetch)
3930 (uri (string-append
3931 "https://github.com/jwiegley/alert/archive/v"
3932 version ".tar.gz"))
3933 (file-name (string-append name "-" version ".tar.gz"))
3934 (sha256
3935 (base32
3936 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
3937 (build-system emacs-build-system)
3938 (propagated-inputs
3939 `(("emacs-gntp" ,emacs-gntp)
3940 ("emacs-log4e" ,emacs-log4e)))
3941 (home-page "https://github.com/jwiegley/alert")
3942 (synopsis "Growl-style notification system for Emacs")
3943 (description
3944 "Alert is a Growl-workalike for Emacs which uses a common notification
3945interface and multiple, selectable \"styles\", whose use is fully
3946customizable by the user.")
3947 (license license:gpl2+)))
c695ed3c
MO
3948
3949(define-public emacs-mu4e-alert
3950 (package
3951 (name "emacs-mu4e-alert")
dd69ff6d 3952 (version "1.0")
c695ed3c
MO
3953 (source
3954 (origin
3955 (method url-fetch)
3956 (uri (string-append
3957 "https://github.com/iqbalansari/mu4e-alert/archive/v"
3958 version ".tar.gz"))
3959 (file-name (string-append name "-" version ".tar.gz"))
3960 (sha256
3961 (base32
dd69ff6d 3962 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
3963 (build-system emacs-build-system)
3964 (propagated-inputs
3965 `(("emacs-alert" ,emacs-alert)
3966 ("emacs-s" ,emacs-s)
3967 ("emacs-ht" ,emacs-ht)))
3968 (home-page "https://github.com/iqbalansari/mu4e-alert")
3969 (synopsis "Desktop notification for mu4e")
3970 (description
3971 "This package provides desktop notifications for mu4e.
3972Additionally it can display the number of unread emails in the
3973mode-line.")
3974 (license license:gpl3+)))
e967dd9c 3975
3976(define-public emacs-pretty-mode
3977 (package
3978 (name "emacs-pretty-mode")
3979 (version "2.0.3")
3980 (source
3981 (origin
3982 (method url-fetch)
3983 (uri (string-append "https://github.com/akatov/pretty-mode/"
3984 "archive/" version ".tar.gz"))
3985 (file-name (string-append name "-" version ".tar.gz"))
3986 (sha256
3987 (base32
3988 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
3989 (build-system emacs-build-system)
3990 (home-page "https://github.com/akatov/pretty-mode")
3991 (synopsis "Redisplay parts of the buffer as Unicode symbols")
3992 (description
3993 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
3994 (license license:gpl3+)))
c1029f86
RW
3995
3996(define-public emacs-yasnippet
3997 (package
3998 (name "emacs-yasnippet")
3999 (version "0.11.0")
4000 (source (origin
4001 (method url-fetch)
4002 (uri (string-append "https://github.com/joaotavora/yasnippet/"
4003 "archive/" version ".tar.gz"))
4004 (file-name (string-append name "-" version ".tar.gz"))
4005 (sha256
4006 (base32
4007 "15di6mkkf09b7qddpsrm0qln02hji3sx8blya5jxssi9wxxx9iq5"))))
4008 (build-system emacs-build-system)
7bf837fd 4009 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
4010 (synopsis "Yet another snippet extension for Emacs")
4011 (description
4012 "YASnippet is a template system for Emacs. It allows you to type an
4013abbreviation and automatically expand it into function templates.")
4014 (license license:gpl3+)))
55fa5349
AI
4015
4016(define-public emacs-memoize
4017 (package
4018 (name "emacs-memoize")
4019 (version "20130421.b55eab0")
4020 (source
4021 (origin
4022 (method git-fetch)
4023 (uri (git-reference
4024 (url "https://github.com/skeeto/emacs-memoize")
4025 (commit "b55eab0cb6ab05d941e07b8c01f1655c0cf1dd75")))
4026 (file-name (string-append name "-" version ".tar.gz"))
4027 (sha256
4028 (base32
4029 "0fjwlrdm270qcrqffvarw5yhijk656q4lam79ybhaznzj0dq3xpw"))))
4030 (build-system emacs-build-system)
4031 (arguments
4032 `(#:phases
4033 (modify-phases %standard-phases
4034 (add-before 'install 'check
4035 (lambda _
4036 (zero? (system* "emacs" "-batch" "-l" "memoize.el"
4037 "-l" "memoize-test.el"
4038 "-f" "ert-run-tests-batch-and-exit")))))))
4039 (home-page "https://github.com/skeeto/emacs-memoize")
4040 (synopsis "Emacs lisp memoization library")
4041 (description "@code{emacs-memoize} is an Emacs library for
4042memoizing functions.")
4043 (license license:unlicense)))
6b7e3362 4044
c86c1991
AI
4045(define-public emacs-linum-relative
4046 (package
4047 (name "emacs-linum-relative")
4048 (version "0.5")
4049 (source
4050 (origin
4051 (method url-fetch)
4052 (uri (string-append
4053 "https://github.com/coldnew/linum-relative/archive/"
4054 version ".tar.gz"))
4055 (file-name (string-append name "-" version ".tar.gz"))
4056 (sha256
4057 (base32
4058 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
4059 (build-system emacs-build-system)
4060 (home-page "https://github.com/coldnew/linum-relative")
4061 (synopsis "Relative line numbering for Emacs")
4062 (description "@code{emacs-linum-relative} displays the relative line
4063number on the left margin in Emacs.")
4064 (license license:gpl2+)))
4065
6b7e3362
VD
4066(define-public emacs-idle-highlight
4067 (package
4068 (name "emacs-idle-highlight")
4069 (version "1.1.3")
4070 (source
4071 (origin
4072 (method url-fetch)
4073 (uri (string-append
4074 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
4075 version ".tar.gz"))
4076 (file-name (string-append name "-" version ".tar.gz"))
4077 (sha256
4078 (base32
4079 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
4080 (build-system emacs-build-system)
4081 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 4082 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
4083 (description
4084 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 4085 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
4086 the point.")
4087 (license license:gpl3+)))
6a91c5f2
VD
4088
4089(define-public emacs-ox-twbs
4090 (package
4091 (name "emacs-ox-twbs")
4092 (version "1.1.1")
4093 (source
4094 (origin
4095 (method url-fetch)
4096 (uri (string-append
4097 "https://github.com/marsmining/ox-twbs/archive/v"
4098 version ".tar.gz"))
4099 (file-name (string-append name "-" version ".tar.gz"))
4100 (sha256
4101 (base32
4102 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
4103 (build-system emacs-build-system)
4104 (home-page "https://github.com/marsmining/ox-twbs")
4105 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
4106 (description
4107 "This Emacs package outputs your org-mode docs with a simple, clean and
4108modern look. It implements a new HTML back-end for exporting org-mode docs as
4109HTML compatible with Twitter Bootstrap. By default, HTML is exported with
4110jQuery and Bootstrap resources included via osscdn.")
4111 (license license:gpl3+)))
239cf024
VD
4112
4113(define-public emacs-highlight-sexp
4114 (package
4115 (name "emacs-highlight-sexp")
4116 (version "1.0")
4117 (source
4118 (origin
4119 (method url-fetch)
4120 (uri (string-append
4121 "https://github.com/daimrod/highlight-sexp/archive/v"
4122 version ".tar.gz"))
4123 (file-name (string-append name "-" version ".tar.gz"))
4124 (sha256
4125 (base32
4126 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
4127 (build-system emacs-build-system)
4128 (home-page "https://github.com/daimrod/highlight-sexp")
4129 (synopsis "Minor mode that highlights the s-exp at the current position")
4130 (description
4131 "This Emacs package highlights the s-exp at the current position.")
4132 (license license:gpl3+)))
350cfccb 4133
acf7d4a7
KK
4134(define-public emacspeak
4135 (package
4136 (name "emacspeak")
4137 (version "45.0")
4138 (source
4139 (origin
4140 (method url-fetch)
4141 (uri (string-append
4142 "https://github.com/tvraman/emacspeak/releases/download/"
4143 version "/emacspeak-" version ".tar.bz2"))
4144 (sha256
4145 (base32
4146 "0npcr867xbbhwa0i7v26hnk4z2d51522jwcfwc594j74kbv3g6ka"))))
4147 (build-system gnu-build-system)
4148 (arguments
4149 '(#:make-flags (list (string-append "prefix="
4150 (assoc-ref %outputs "out")))
4151 #:phases
4152 (modify-phases %standard-phases
4153 (replace 'configure
4154 (lambda* (#:key outputs #:allow-other-keys)
4155 (substitute* "Makefile"
4156 (("\\$\\(INSTALL\\) -d \\$\\(libdir\\)/servers/linux-outloud")
4157 "")
4158 (("\\$\\(INSTALL\\) -m 755 \\$\\{OUTLOUD\\}.*$") "")
4159 (("\\*info\\*") "*"))
4160 (substitute* "etc/emacspeak.sh.def"
4161 (("<emacspeak-dir>")
4162 (string-append (assoc-ref outputs "out")
4163 "/share/emacs/site-lisp/emacspeak/lisp")))
4164 (zero? (system* "make" "config"))))
4165 (add-after 'install 'install-espeak-server
4166 (lambda* (#:key outputs #:allow-other-keys)
4167 (let ((out (assoc-ref outputs "out")))
4168 (with-directory-excursion "servers/linux-espeak"
4169 (and (zero? (system* "make"))
4170 (zero? (system* "make" "install"
4171 (string-append "PREFIX=" out))))))))
4172 (add-after 'install-espeak-server 'wrap-program
4173 (lambda* (#:key inputs outputs #:allow-other-keys)
4174 (let* ((out (assoc-ref outputs "out"))
4175 (emacspeak (string-append out "/bin/emacspeak"))
4176 (espeak (string-append (assoc-ref inputs "espeak")
4177 "/bin/espeak")))
4178 ;; The environment variable DTK_PROGRAM tells emacspeak what
4179 ;; program to use for speech.
4180 (wrap-program emacspeak
4181 `("DTK_PROGRAM" ":" prefix (,espeak)))
4182 #t))))
4183 #:tests? #f)) ; no check target
4184 (inputs
4185 `(("espeak" ,espeak)
4186 ("tcl" ,tcl)
4187 ("tclx" ,tclx)))
4188 (native-inputs `(("emacs" ,emacs-minimal)))
4189 (home-page "http://emacspeak.sourceforge.net")
4190 (synopsis "Audio desktop interface for Emacs")
4191 (description
4192 "Emacspeak is a speech interface that allows visually impaired users to
4193interact independently and efficiently with the computer. Audio formatting
4194--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
4195allows Emacspeak to produce rich aural presentations of electronic information.
4196By seamlessly blending all aspects of the Internet such as Web-surfing and
4197messaging, Emacspeak speech-enables local and remote information via a
4198consistent and well-integrated user interface.")
4199 (license license:gpl2+)))
4200
350cfccb
AP
4201(define-public emacs-adaptive-wrap
4202 (package
4203 (name "emacs-adaptive-wrap")
4204 (version "0.5")
4205 (source (origin
4206 (method url-fetch)
4207 (uri (string-append
4208 "http://elpa.gnu.org/packages/adaptive-wrap-"
4209 version ".el"))
4210 (sha256
4211 (base32
4212 "0frgmp8vrrml4iykm60j4d6cl9rbcivy9yh24q6kd10bcyx59ypy"))))
4213 (build-system emacs-build-system)
4214 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
4215 (synopsis "Smart line-wrapping with wrap-prefix")
4216 (description
4217 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
4218minor mode which sets the wrap-prefix property on the fly so that
4219single-long-line paragraphs get word-wrapped in a way similar to what
4220you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
4221actually changing the buffer's text.")
4222 (license license:gpl3+)))
0201c5d4
AI
4223
4224(define-public emacs-diminish
4225 (package
4226 (name "emacs-diminish")
4227 (version "0.45")
4228 (source
4229 (origin
4230 (method url-fetch)
4231 (uri (string-append
4232 "https://github.com/myrjola/diminish.el/archive/v"
4233 version ".tar.gz"))
4234 (file-name (string-append name "-" version ".tar.gz"))
4235 (sha256
4236 (base32
4237 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
4238 (build-system emacs-build-system)
4239 (home-page "https://github.com/myrjola/diminish.el")
4240 (synopsis "Diminish minor modes with no modeline display")
4241 (description "@code{emacs-diminish} implements hiding or
4242abbreviation of the mode line displays (lighters) of minor modes.")
4243 (license license:gpl2+)))
b247fb86
AI
4244
4245(define-public emacs-use-package
4246 (package
4247 (name "emacs-use-package")
4248 (version "2.3")
4249 (source
4250 (origin
4251 (method url-fetch)
4252 (uri (string-append
4253 "https://github.com/jwiegley/use-package/archive/"
4254 version ".tar.gz"))
4255 (file-name (string-append name "-" version ".tar.gz"))
4256 (sha256
4257 (base32
4258 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
4259 (build-system emacs-build-system)
4260 (propagated-inputs
4261 `(("emacs-diminish" ,emacs-diminish)))
4262 (arguments
4263 `(#:phases
4264 (modify-phases %standard-phases
4265 (add-before 'install 'check
4266 (lambda _
4267 (zero? (system* "emacs" "--batch" "-L" "."
4268 "-l" "use-package-tests.el"
4269 "-f" "ert-run-tests-batch-and-exit"))
4270 ;; Tests fail in this release, but have been fixed in
4271 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
4272 #t)))))
4273 (home-page "https://github.com/jwiegley/use-package")
4274 (synopsis "Declaration for simplifying your .emacs")
4275 (description "The use-package macro allows you to isolate package
4276configuration in your @file{.emacs} file in a way that is both
4277performance-oriented and tidy.")
4278 (license license:gpl2+)))
e2345554 4279
8ad5a20f
MO
4280(define-public emacs-strace-mode
4281 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
4282 (revision "1"))
4283 (package
4284 (name "emacs-strace-mode")
4285 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
4286 (source (origin
4287 (method git-fetch)
4288 (uri (git-reference
4289 (url "https://github.com/pkmoore/strace-mode")
4290 (commit commit)))
4291 (file-name (string-append name "-" version "-checkout"))
4292 (sha256
4293 (base32
4294 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
4295 (build-system emacs-build-system)
4296 (home-page "https://github.com/pkmoore/strace-mode")
4297 (synopsis "Emacs major mode to highlight strace outputs")
4298 (description "@code{emacs-strace-mode} provides an Emacs major mode
4299 highlighting strace outputs.")
4300 (license license:gpl3+))))
4301
e2345554
CM
4302(define-public emacs-default-encrypt
4303 (package
4304 (name "emacs-default-encrypt")
4305 (version "4.3")
4306 (source
4307 (origin
4308 (method url-fetch)
4309 (uri (string-append
a97f6da4
CM
4310 "https://www.informationelle-selbstbestimmung-im-internet.de"
4311 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
4312 (file-name (string-append "jl-encrypt-" version ".el"))
4313 (sha256
4314 (base32
4315 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
4316 (build-system emacs-build-system)
4317 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
4318 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
4319 (description
4320 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
4321automatically encrypts messages that you send (e.g., email) when public keys
4322for all recipients are available, and it protects you from accidentally
4323sending un-encrypted messages. It can also be configured to automatically
4324sign messages that you send. For details and instructions on how to use
4325DefaultEncrypt, please refer to the home page or read the comments in the
4326source file, @file{jl-encrypt.el}.")
4327 (license license:gpl3+)))
25e810b8
AI
4328
4329(define-public emacs-htmlize
4330 (package
4331 (name "emacs-htmlize")
4332 (version "1.51")
4333 (source
4334 (origin
4335 (method url-fetch)
4336 (uri (string-append
4337 "https://github.com/hniksic/emacs-htmlize/archive/release/"
4338 version ".tar.gz"))
4339 (file-name (string-append name "-" version ".tar.gz"))
4340 (sha256
4341 (base32
4342 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
4343 (build-system emacs-build-system)
4344 (home-page "https://github.com/hniksic/emacs-htmlize")
4345 (synopsis "Convert buffer text and decorations to HTML")
4346 (description "@code{emacs-htmlize} converts the buffer text and
4347the associated decorations to HTML. Output to CSS, inline CSS and
4348fonts is supported.")
4349 (license license:gpl2+)))
0ee59b81
AI
4350
4351(define-public emacs-xmlgen
4352 (package
4353 (name "emacs-xmlgen")
4354 (version "0.5")
4355 (source
4356 (origin
4357 (method url-fetch)
4358 (uri (string-append
4359 "https://github.com/philjackson/xmlgen/archive/"
4360 version ".tar.gz"))
4361 (file-name (string-append name "-" version ".tar.gz"))
4362 (sha256
4363 (base32
4364 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
4365 (build-system emacs-build-system)
4366 (arguments
4367 `(#:phases
4368 (modify-phases %standard-phases
4369 (add-before 'install 'check
4370 (lambda _
4371 (zero? (system* "emacs" "--batch" "-L" "."
4372 "-l" "xmlgen-test.el"
4373 "-f" "ert-run-tests-batch-and-exit")))))))
4374 (home-page "https://github.com/philjackson/xmlgen")
4375 (synopsis "S-expression to XML domain specific language (DSL) in
4376Emacs Lisp")
4377 (description "@code{emacs-xmlgen} provides S-expression to XML
4378conversion for Emacs Lisp.")
4379 (license license:gpl2+)))
8d50a990
AI
4380
4381(define-public emacs-cdlatex
4382 (package
4383 (name "emacs-cdlatex")
4384 (version "4.7")
4385 (source
4386 (origin
4387 (method url-fetch)
4388 (uri (string-append
4389 "https://github.com/cdominik/cdlatex/archive/"
4390 version ".tar.gz"))
4391 (file-name (string-append name "-" version ".tar.gz"))
4392 (sha256
4393 (base32
4394 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
4395 (build-system emacs-build-system)
4396 (home-page "https://github.com/cdominik/cdlatex")
4397 (synopsis "Fast Emacs input methods for LaTeX environments and
4398math")
4399 (description "CDLaTeX is an Emacs minor mode supporting fast
4400insertion of environment templates and math in LaTeX. Similar
4401commands are also offered as part of the AUCTeX package, but it is not
4402the same - CDLaTeX focuses on speediness for inserting LaTeX
4403constructs.")
4404 (license license:gpl3+)))
deddeb44
FS
4405
4406(define-public emacs-xelb
4407 (package
4408 (name "emacs-xelb")
4409 (version "0.12")
4410 (source (origin
4411 (method url-fetch)
4412 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
4413 version ".tar"))
4414 (sha256
4415 (base32
4416 "0i9n0f3ibj4a5pwcsvwrah9m0fz32m0x6a9wsmjn3li20v8pcb81"))))
4417 (build-system emacs-build-system)
4418 ;; The following functions and variables needed by emacs-xelb are
4419 ;; not included in emacs-minimal:
4420 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
4421 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
4422 ;; x-display-pixel-width, x-display-pixel-height
4423 (arguments
4424 `(#:emacs ,emacs
4425 #:phases
4426 (modify-phases %standard-phases
4427 (add-after 'unpack 'regenerate-el-files
4428 (lambda* (#:key inputs #:allow-other-keys)
4429 (zero? (system* "make"
4430 (string-append "PROTO_PATH="
4431 (assoc-ref inputs "xcb-proto")
4432 "/share/xcb")
4433 (string-append "EMACS_BIN="
4434 (assoc-ref inputs "emacs")
4435 "/bin/emacs -Q"))))))))
4436 (native-inputs `(("xcb-proto" ,xcb-proto)))
4437 (home-page "https://github.com/ch11ng/xelb")
4438 (synopsis "X protocol Emacs Lisp binding")
4439 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
4440X11 protocol based on the XML description files from the XCB project. It
4441features an object-oriented API and permits a certain degree of concurrency.
4442It should enable you to implement low-level X11 applications.")
4443 (license license:gpl3+)))
2b3b745c
FS
4444
4445(define-public emacs-exwm
4446 (package
4447 (name "emacs-exwm")
4448 (version "0.13")
4449 (synopsis "Emacs X window manager")
4450 (source (origin
4451 (method url-fetch)
4452 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
4453 version ".tar"))
4454 (sha256
4455 (base32
4456 "0n1wzy6chh024r0yaywjbf7mdsrxs6hrfycv5v0ps0drf6q3zldc"))))
4457 (build-system emacs-build-system)
4458 (propagated-inputs
4459 `(("emacs-xelb" ,emacs-xelb)))
4460 (inputs
4461 `(("xhost" ,xhost)
4462 ("dbus" ,dbus)))
4463 ;; The following functions and variables needed by emacs-exwm are
4464 ;; not included in emacs-minimal:
4465 ;; scroll-bar-mode, fringe-mode
4466 ;; x-display-pixel-width, x-display-pixel-height
4467 (arguments
4468 `(#:emacs ,emacs
4469 #:phases
4470 (modify-phases %standard-phases
4471 (add-after 'build 'install-xsession
4472 (lambda* (#:key inputs outputs #:allow-other-keys)
4473 (let* ((out (assoc-ref outputs "out"))
4474 (xsessions (string-append out "/share/xsessions"))
4475 (bin (string-append out "/bin"))
4476 (exwm-executable (string-append bin "/exwm")))
4477 ;; Add a .desktop file to xsessions
4478 (mkdir-p xsessions)
4479 (mkdir-p bin)
4480 (with-output-to-file
4481 (string-append xsessions "/exwm.desktop")
4482 (lambda _
4483 (format #t "[Desktop Entry]~@
4484 Name=~a~@
4485 Comment=~a~@
4486 Exec=~a~@
4487 TryExec=~@*~a~@
4488 Type=Application~%" ,name ,synopsis exwm-executable)))
4489 ;; Add a shell wrapper to bin
4490 ;; Set DISPLAY variable to work around
4491 ;; https://github.com/ch11ng/exwm/issues/213
4492 (with-output-to-file exwm-executable
4493 (lambda _
4494 (format #t "#!~a ~@
4495 export DISPLAY=:0 ~@
4496 ~a +SI:localuser:$USER ~@
11f8e028 4497 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
4498 (string-append (assoc-ref inputs "bash") "/bin/sh")
4499 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
4500 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
4501 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
4502 '(cond
4503 ((file-exists-p "~/.exwm")
4504 (load-file "~/.exwm"))
4505 ((not (featurep 'exwm))
4506 (require 'exwm)
4507 (require 'exwm-config)
4508 (exwm-config-default)
4509 (message "exwm configuration not found. Falling back to default configuration..."))))))
4510 (chmod exwm-executable #o555)
4511 #t))))))
4512 (home-page "https://github.com/ch11ng/exwm")
4513 (description "EXWM is a full-featured tiling X window manager for Emacs
4514built on top of XELB.")
4515 (license license:gpl3+)))
21b99aad
AI
4516
4517(define-public emacs-gnuplot
4518 (package
4519 (name "emacs-gnuplot")
4520 (version "0.7.0")
4521 (source
4522 (origin
4523 (method url-fetch)
4524 (uri (string-append
4525 "https://github.com/bruceravel/gnuplot-mode/archive/"
4526 version ".tar.gz"))
4527 (file-name (string-append name "-" version ".tar.gz"))
4528 (sha256
4529 (base32
4530 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
4531 (build-system gnu-build-system)
4532 (native-inputs `(("emacs" ,emacs-minimal)))
4533 (arguments
4534 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
4535 "/gnuplot-" version)))
4536 `(#:modules ((guix build gnu-build-system)
4537 (guix build utils)
4538 (guix build emacs-utils))
4539 #:imported-modules (,@%gnu-build-system-modules
4540 (guix build emacs-utils))
4541 #:configure-flags
4542 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
4543 "/bin/emacs")
4544 (string-append "--with-lispdir=" %output ,elisp-dir))
4545 #:phases
4546 (modify-phases %standard-phases
4547 (add-after 'install 'generate-autoloads
4548 (lambda* (#:key outputs #:allow-other-keys)
4549 (emacs-generate-autoloads
4550 "gnuplot"
4551 (string-append (assoc-ref outputs "out") ,elisp-dir))
4552 #t))))))
4553 (home-page "https://github.com/bruceravel/gnuplot-mode")
4554 (synopsis "Emacs major mode for interacting with gnuplot")
4555 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
4556with gnuplot.")
4557 (license license:gpl2+)))
860f73c6
AI
4558
4559(define-public emacs-transpose-frame
4560 (package
4561 (name "emacs-transpose-frame")
4562 (version "0.1.0")
4563 (source
4564 (origin
4565 (method url-fetch)
4566 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
4567 (sha256
4568 (base32
4569 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
4570 (build-system emacs-build-system)
4571 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
4572 (synopsis "Transpose window arrangement in current frame")
4573 (description "@code{emacs-transpose-frame} provides some interactive
4574functions which allows users to transpose windows arrangement in currently
4575selected frame.")
4576 (license license:bsd-2)))
a34242ee
KM
4577
4578(define-public emacs-key-chord
4579 (package
4580 (name "emacs-key-chord")
4581 (version "0.6")
4582 (source
4583 (origin
4584 (method url-fetch)
4585 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
4586 (sha256
4587 (base32
4588 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
4589 (build-system emacs-build-system)
4590 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
4591 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
4592 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
4593mode for binding key chords to commands. A key chord is defined as two keys
4594pressed simultaneously or a single key quickly pressed twice.")
4595 (license license:gpl2+)))
a993add1
AI
4596
4597(define-public emacs-evil-surround
4598 (package
4599 (name "emacs-evil-surround")
4600 (version "1.0.0")
4601 (source
4602 (origin
4603 (method url-fetch)
4604 (uri (string-append
4605 "https://github.com/timcharper/evil-surround/archive/v"
4606 version ".tar.gz"))
4607 (file-name (string-append name "-" version ".tar.gz"))
4608 (sha256
4609 (base32
4610 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
4611 (build-system emacs-build-system)
4612 (propagated-inputs
4613 `(("emacs-evil" ,emacs-evil)))
4614 (home-page "https://github.com/timcharper/evil-surround")
4615 (synopsis "Easily modify surrounding parantheses and quotes")
4616 (description "@code{emacs-evil-surround} allows easy deletion, change and
4617addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
4618 (license license:gpl3+)))
2406766e
AI
4619
4620(define-public emacs-evil-commentary
4621 (package
4622 (name "emacs-evil-commentary")
4623 (version "2.1.1")
4624 (source
4625 (origin
4626 (method url-fetch)
4627 (uri (string-append
4628 "https://github.com/linktohack/evil-commentary/archive/v"
4629 version ".tar.gz"))
4630 (file-name (string-append name "-" version ".tar.gz"))
4631 (sha256
4632 (base32
4633 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
4634 (build-system emacs-build-system)
4635 (propagated-inputs
4636 `(("emacs-evil" ,emacs-evil)))
4637 (home-page "https://github.com/linktohack/evil-commentary")
4638 (synopsis "Comment out code in evil mode")
4639 (description "@code{emacs-evil-commentary} adds keybindings to easily
4640comment out lines of code in evil mode. It provides @code{gcc} to comment out
4641lines, and @code{gc} to comment out the target of a motion.")
4642 (license license:gpl3+)))