gnu: emacs-guix: Update to 0.4.
[jackhill/guix/guix.git] / gnu / packages / emacs.scm
CommitLineData
468bdabb 1;;; GNU Guix --- Functional package management for GNU
4a3e602c 2;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
02267798 3;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
84fe4420 4;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
e9c3a780 5;;; Copyright © 2014, 2015, 2016, 2017, 2018 Alex Kost <alezost@gmail.com>
78395334 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5a545aab 7;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
4f95a118 8;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
11e4c1fd 9;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
f9f67fcb 10;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
995b7069 11;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
c5c08f1b 12;;; Copyright © 2016 David Thompson <davet@gnu.org>
ae609001 13;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
fd2d17cd 14;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
4a78fd46 15;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
46bd4515 16;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
7ad05d85 17;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
d3150731 18;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
2891ea39 19;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
cf006d2e 20;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
563ab27b 21;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
30cf7070 22;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
4d3d3bd2 23;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
4fca8a02 24;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
3c8ba11a 25;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
99517d92 26;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
deddeb44 27;;; Copyright © 2017 Feng Shu <tumashu@163.com>
7a0efa77 28;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
b0912e9f 29;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
de2e402b 30;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
b9dcaced 31;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
370ae985 32;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
491cbd35 33;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
33ca12f3 34;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
62d1105c 35;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
c3581ef9 36;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
468bdabb
LC
37;;;
38;;; This file is part of GNU Guix.
39;;;
40;;; GNU Guix is free software; you can redistribute it and/or modify it
41;;; under the terms of the GNU General Public License as published by
42;;; the Free Software Foundation; either version 3 of the License, or (at
43;;; your option) any later version.
44;;;
45;;; GNU Guix is distributed in the hope that it will be useful, but
46;;; WITHOUT ANY WARRANTY; without even the implied warranty of
47;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
48;;; GNU General Public License for more details.
49;;;
50;;; You should have received a copy of the GNU General Public License
51;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
52
1ffa7090 53(define-module (gnu packages emacs)
f61e0e79 54 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
55 #:use-module (guix packages)
56 #:use-module (guix download)
f906d30c 57 #:use-module (guix git-download)
e5045f30
FB
58 #:use-module (guix gexp)
59 #:use-module (guix monads)
60 #:use-module (guix store)
468bdabb 61 #:use-module (guix build-system gnu)
78395334 62 #:use-module (guix build-system emacs)
71f57158 63 #:use-module (guix build-system glib-or-gtk)
fe4163f3 64 #:use-module (guix build-system trivial)
59a43334 65 #:use-module (gnu packages)
acf7d4a7 66 #:use-module (gnu packages audio)
4aafce22 67 #:use-module (gnu packages bash)
75408149 68 #:use-module (gnu packages cmake)
cf006d2e 69 #:use-module (gnu packages code)
4d089b5e 70 #:use-module (gnu packages databases)
f906d30c 71 #:use-module (gnu packages guile)
7abe1965 72 #:use-module (gnu packages gtk)
8ba4dc63 73 #:use-module (gnu packages gnome)
1ffa7090 74 #:use-module (gnu packages ncurses)
99517d92 75 #:use-module (gnu packages python)
41184943 76 #:use-module (gnu packages tex)
1ffa7090 77 #:use-module (gnu packages texinfo)
acf7d4a7 78 #:use-module (gnu packages tcl)
a7fd7b68 79 #:use-module (gnu packages tls)
4f028c8f 80 #:use-module (gnu packages pkg-config)
50efa797
LC
81 #:use-module (gnu packages xorg)
82 #:use-module (gnu packages lesstif)
e55354b8 83 #:use-module (gnu packages image)
504a83af 84 #:use-module (gnu packages linux)
9a4c9715 85 #:use-module (gnu packages version-control)
18d26210
MW
86 #:use-module (gnu packages imagemagick)
87 #:use-module (gnu packages w3m)
89925972 88 #:use-module (gnu packages wget)
18d26210 89 #:use-module (gnu packages autotools)
be379ee7 90 #:use-module (gnu packages base)
f61e0e79 91 #:use-module (gnu packages compression)
50efa797 92 #:use-module (gnu packages xml)
4a3e602c 93 #:use-module (gnu packages glib)
388fd01b 94 #:use-module (gnu packages acl)
b6efe0e8 95 #:use-module (gnu packages mail)
13fe4891 96 #:use-module (gnu packages package-management)
77c9286d 97 #:use-module (gnu packages perl)
ec9825d6 98 #:use-module (gnu packages pdf)
58a7dc13 99 #:use-module (gnu packages scheme)
41184943 100 #:use-module (gnu packages statistics)
77c9286d
LC
101 #:use-module (gnu packages xiph)
102 #:use-module (gnu packages mp3)
154c71e0 103 #:use-module (gnu packages gettext)
a80b60f4
AI
104 #:use-module (gnu packages fribidi)
105 #:use-module (gnu packages gd)
106 #:use-module (gnu packages fontutils)
03efe78c 107 #:use-module (gnu packages password-utils)
0bcb9258 108 #:use-module (gnu packages xdisorg)
4a3e602c 109 #:use-module (guix utils)
87449013
AI
110 #:use-module (srfi srfi-1)
111 #:use-module (ice-9 match))
468bdabb
LC
112
113(define-public emacs
114 (package
115 (name "emacs")
0cdb6ab4 116 (version "25.3")
468bdabb
LC
117 (source (origin
118 (method url-fetch)
119 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 120 version ".tar.xz"))
468bdabb
LC
121 (sha256
122 (base32
0cdb6ab4 123 "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"))
fc1adab1 124 (patches (search-patches "emacs-exec-path.patch"
4509ec72 125 "emacs-fix-scheme-indent-function.patch"
0cdb6ab4 126 "emacs-source-date-epoch.patch"))
486f36eb
AK
127 (modules '((guix build utils)))
128 (snippet
129 ;; Delete the bundled byte-compiled elisp files and
130 ;; generated autoloads.
131 '(with-directory-excursion "lisp"
132 (for-each delete-file
133 (append (find-files "." "\\.elc$")
134 (find-files "." "loaddefs\\.el$")
135 ;; This is the only "autoloads" file that
136 ;; does not have "*loaddefs.el" name.
dc701091
LC
137 '("eshell/esh-groups.el")))
138
139 ;; Make sure Tramp looks for binaries in the right places on
140 ;; remote GuixSD machines, where 'getconf PATH' returns
141 ;; something bogus.
142 (substitute* "net/tramp-sh.el"
143 ;; Patch the line after "(defcustom tramp-remote-path".
144 (("\\(tramp-default-remote-path")
145 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
146 "~/.guix-profile/bin" "~/.guix-profile/sbin"
147 "/run/current-system/profile/bin"
d1c11418
OP
148 "/run/current-system/profile/sbin")))
149
150 ;; Make sure Man looks for C header files in the right
151 ;; places.
152 (substitute* "man.el"
153 (("\"/usr/local/include\"" line)
154 (string-join
155 (list line
156 "\"~/.guix-profile/include\""
157 "\"/var/guix/profiles/system/profile/include\"")
158 " ")))))))
71f57158 159 (build-system glib-or-gtk-build-system)
468bdabb 160 (arguments
13fe4891
FB
161 `(#:phases
162 (modify-phases %standard-phases
163 (add-before 'configure 'fix-/bin/pwd
164 (lambda _
165 ;; Use `pwd', not `/bin/pwd'.
166 (substitute* (find-files "." "^Makefile\\.in$")
167 (("/bin/pwd")
168 "pwd"))))
13fe4891 169 (add-after 'install 'install-site-start
59d04f63
AK
170 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
171 ;; provided by Guix and installed in
13fe4891
FB
172 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
173 ;; automatically found.
174 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
175 (let* ((out (assoc-ref outputs "out"))
176 (lisp-dir (string-append out "/share/emacs/site-lisp")))
177 (copy-file (assoc-ref inputs "guix-emacs.el")
178 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
179 (with-output-to-file (string-append lisp-dir "/site-start.el")
180 (lambda ()
9bd94544
AK
181 (display
182 (string-append "(when (require 'guix-emacs nil t)\n"
183 " (guix-emacs-autoload-packages))\n"))))
13fe4891 184 #t))))))
468bdabb 185 (inputs
c4c4cc05 186 `(("gnutls" ,gnutls)
468bdabb
LC
187 ("ncurses" ,ncurses)
188
189 ;; TODO: Add the optional dependencies.
fa275717 190 ("libx11" ,libx11)
0a9e9a63 191 ("gtk+" ,gtk+)
fa275717 192 ("libxft" ,libxft)
50efa797 193 ("libtiff" ,libtiff)
504a83af 194 ("giflib" ,giflib)
50efa797 195 ("libjpeg" ,libjpeg-8)
eb737a27 196 ("imagemagick" ,imagemagick)
388fd01b 197 ("acl" ,acl)
50efa797
LC
198
199 ;; When looking for libpng `configure' links with `-lpng -lz', so we
200 ;; must also provide zlib as an input.
201 ("libpng" ,libpng)
f61e0e79 202 ("zlib" ,zlib)
50efa797 203
8ba4dc63 204 ("librsvg" ,librsvg)
fa275717 205 ("libxpm" ,libxpm)
50efa797 206 ("libxml2" ,libxml2)
504a83af
MW
207 ("libice" ,libice)
208 ("libsm" ,libsm)
209 ("alsa-lib" ,alsa-lib)
13fe4891 210 ("dbus" ,dbus)
01c5c21a
AI
211
212 ;; multilingualization support
213 ("libotf" ,libotf)
214 ("m17n-lib" ,m17n-lib)))
c4c4cc05 215 (native-inputs
59d04f63
AK
216 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
217 ("pkg-config" ,pkg-config)
c4c4cc05 218 ("texinfo" ,texinfo)))
64c98347
LC
219
220 (native-search-paths
221 (list (search-path-specification
222 (variable "INFOPATH")
223 (files '("share/info")))))
224
6fd52309 225 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 226 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 227 (description
79c311b8
LC
228 "GNU Emacs is an extensible and highly customizable text editor. It is
229based on an Emacs Lisp interpreter with extensions for text editing. Emacs
230has been extended in essentially all areas of computing, giving rise to a
231vast array of packages supporting, e.g., email, IRC and XMPP messaging,
232spreadsheets, remote server editing, and much more. Emacs includes extensive
233documentation on all aspects of the system, from basic editing to writing
234large Lisp programs. It has full Unicode support for nearly all human
235languages.")
f61e0e79 236 (license license:gpl3+)))
4f028c8f 237
b2eaf7ba 238(define-public emacs-minimal
4fd540b7
LC
239 ;; This is the version that you should use as an input to packages that just
240 ;; need to byte-compile .el files.
b2eaf7ba
AK
241 (package (inherit emacs)
242 (name "emacs-minimal")
243 (synopsis "The extensible text editor (used only for byte-compilation)")
244 (build-system gnu-build-system)
245 (arguments
246 (substitute-keyword-arguments (package-arguments emacs)
247 ((#:phases phases)
248 `(modify-phases ,phases
249 (delete 'install-site-start)))))
250 (inputs
251 `(("ncurses" ,ncurses)))
252 (native-inputs
253 `(("pkg-config" ,pkg-config)))))
254
255(define-public emacs-no-x
4fd540b7 256 (package (inherit emacs)
4fd540b7
LC
257 (name "emacs-no-x")
258 (synopsis "The extensible, customizable, self-documenting text
259editor (console only)")
260 (build-system gnu-build-system)
261 (inputs (fold alist-delete
262 (package-inputs emacs)
263 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
4adde2a9
MW
264 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
265 "libsm"
4fd540b7 266
4adde2a9
MW
267 ;; These depend on libx11, so remove them as well.
268 "libotf" "m17n-lib" "dbus")))))
4fd540b7 269
4a3e602c
TUBK
270(define-public emacs-no-x-toolkit
271 (package (inherit emacs)
272 (name "emacs-no-x-toolkit")
273 (synopsis "The extensible, customizable, self-documenting text
274editor (without an X toolkit)" )
71f57158 275 (build-system gnu-build-system)
388fd01b
MW
276 (inputs (append `(("inotify-tools" ,inotify-tools))
277 (alist-delete "gtk+" (package-inputs emacs))))
278 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
279 (package-arguments emacs)))))
4a3e602c 280
f906d30c
CAW
281(define-public guile-emacs
282 (package (inherit emacs)
283 (name "guile-emacs")
284 (version "20150512.41120e0")
285 (source (origin
286 (method git-fetch)
287 (uri (git-reference
288 (url "git://git.hcoop.net/git/bpt/emacs.git")
289 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
995b7069 290 (file-name (string-append name "-" version "-checkout"))
68cb962a 291 (patches (search-patches "guile-emacs-fix-configure.patch"))
f906d30c
CAW
292 (sha256
293 (base32
294 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
295 (native-inputs
296 `(("autoconf" ,autoconf)
297 ("automake" ,automake)
298 ("guile" ,guile-for-guile-emacs)
299 ,@(package-native-inputs emacs)))
300 (arguments
301 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
302 #:parallel-build? #f
303 ;; Tests aren't passing for now.
304 #:tests? #f
305 ,@(package-arguments emacs))
306 ((#:phases phases)
307 `(modify-phases ,phases
308 (add-after 'unpack 'autogen
309 (lambda _
68cb962a
JN
310 (zero? (system* "sh" "autogen.sh"))))
311 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
312 (add-before 'build 'make-deps-dir
313 (lambda _
314 (zero? (system* "mkdir" "-p" "src/deps"))))))))))
f906d30c 315
4f028c8f
LC
316\f
317;;;
318;;; Emacs hacking.
319;;;
320
321(define-public geiser
322 (package
323 (name "geiser")
e9c3a780 324 (version "0.10")
4f028c8f
LC
325 (source (origin
326 (method url-fetch)
cf8f58b2
LC
327 (uri (string-append "mirror://savannah/geiser/" version
328 "/geiser-" version ".tar.gz"))
4f028c8f 329 (sha256
1f8ad12a 330 (base32
e9c3a780 331 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
4f028c8f 332 (build-system gnu-build-system)
d51cafb0 333 (arguments
dc1d3cde
KK
334 '(#:phases
335 (modify-phases %standard-phases
336 (add-after 'install 'post-install
337 (lambda* (#:key outputs #:allow-other-keys)
338 (symlink "geiser-install.el"
339 (string-append (assoc-ref outputs "out")
340 "/share/emacs/site-lisp/"
341 "geiser-autoloads.el"))
342 #t)))))
bc96a8b5 343 (inputs `(("guile" ,guile-2.2)))
b8fc3622 344 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 345 (home-page "https://nongnu.org/geiser/")
4f028c8f
LC
346 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
347 (description
9586011d
LC
348 "Geiser is a collection of Emacs major and minor modes that conspire with
349one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
350continuously running Scheme interpreter takes the center of the stage in
351Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
352implementation, Emacs and, ultimately, the schemer, giving them access to live
353metadata.")
f61e0e79 354 (license license:bsd-3)))
9a4c9715 355
fe4163f3
MW
356(define-public paredit
357 (package
967cfd18 358 (name "emacs-paredit")
c181b870 359 (version "24")
fe4163f3 360 (source (origin
c181b870
AK
361 (method url-fetch)
362 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
363 version ".el"))
364 (sha256
365 (base32
366 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 367 (build-system emacs-build-system)
fe4163f3
MW
368 (home-page "http://mumble.net/~campbell/emacs/paredit/")
369 (synopsis "Emacs minor mode for editing parentheses")
370 (description
371 "ParEdit (paredit.el) is a minor mode for performing structured editing
372of S-expression data. The typical example of this would be Lisp or Scheme
373source code.
374
375ParEdit helps **keep parentheses balanced** and adds many keys for moving
376S-expressions and moving around in S-expressions. Its behavior can be jarring
377for those who may want transient periods of unbalanced parentheses, such as
378when typing parentheses directly or commenting out code line by line.")
f61e0e79 379 (license license:gpl3+)))
fe4163f3 380
2f910ef6
LC
381(define-public git-modes
382 (package
6d21272b 383 (name "emacs-git-modes")
370ae985 384 (version "1.2.7")
2f910ef6
LC
385 (source (origin
386 (method url-fetch)
387 (uri (string-append
388 "https://github.com/magit/git-modes/archive/"
389 version ".tar.gz"))
8fd3c1ff 390 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
391 (sha256
392 (base32
370ae985 393 "1mzl70s0xyysnjq1j10mc5vn9i022n5vd82kxsgp4xxqq7gc4qnx"))))
3d01b293 394 (build-system emacs-build-system)
2f910ef6
LC
395 (home-page "https://github.com/magit/git-modes")
396 (synopsis "Emacs major modes for Git configuration files")
397 (description
398 "This package provides Emacs major modes for editing various Git
399configuration files, such as .gitattributes, .gitignore, and .git/config.")
400 (license license:gpl3+)))
401
6d21272b
AK
402(define-public git-modes/old-name
403 (deprecated-package "git-modes" git-modes))
404
2b0e4300
AK
405(define-public emacs-with-editor
406 (package
407 (name "emacs-with-editor")
cec021d1 408 (version "2.7.2")
2b0e4300
AK
409 (source (origin
410 (method url-fetch)
411 (uri (string-append
412 "https://github.com/magit/with-editor/archive/v"
413 version ".tar.gz"))
414 (file-name (string-append name "-" version ".tar.gz"))
415 (sha256
416 (base32
cec021d1 417 "1jqi3axcs0cb1pcv1jxxc2a09v6psrm33wwl6hmyshzl8kbxs2mv"))))
2b0e4300
AK
418 (build-system emacs-build-system)
419 (propagated-inputs
420 `(("emacs-dash" ,emacs-dash)))
421 (home-page "https://github.com/magit/with-editor")
422 (synopsis "Emacs library for using Emacsclient as EDITOR")
423 (description
424 "This package provides an Emacs library to use the Emacsclient as
425@code{$EDITOR} of child processes, making sure they know how to call home.
426For remote processes a substitute is provided, which communicates with Emacs
427on stdout instead of using a socket as the Emacsclient does.")
428 (license license:gpl3+)))
429
9a4c9715
MW
430(define-public magit
431 (package
432 (name "magit")
f61719d1 433 (version "2.12.1")
9a4c9715
MW
434 (source (origin
435 (method url-fetch)
fac8b30b
MW
436 (uri (string-append
437 "https://github.com/magit/magit/releases/download/"
438 version "/" name "-" version ".tar.gz"))
9a4c9715 439 (sha256
7e4871ba 440 (base32
f61719d1 441 "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3"))))
9a4c9715 442 (build-system gnu-build-system)
2c047b4a 443 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 444 ("emacs" ,emacs-minimal)))
46bd4515
AG
445 (inputs
446 `(("git" ,git)
447 ("perl" ,perl)))
3db5ed11
AK
448 (propagated-inputs
449 `(("dash" ,emacs-dash)
f61719d1
AK
450 ("ghub" ,emacs-ghub)
451 ("magit-popup" ,emacs-magit-popup)
3db5ed11 452 ("with-editor" ,emacs-with-editor)))
9a4c9715 453 (arguments
84fe4420 454 `(#:test-target "test"
55f29c39 455 #:tests? #f ; tests are not included in the release
7e4871ba 456
55f29c39
AK
457 #:make-flags
458 (list (string-append "PREFIX=" %output)
459 ;; Don't put .el files in a sub-directory.
460 (string-append "lispdir=" %output "/share/emacs/site-lisp")
461 (string-append "DASH_DIR="
462 (assoc-ref %build-inputs "dash")
463 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11 464 ,(package-version emacs-dash))
f61719d1
AK
465 (string-append "GHUB_DIR="
466 (assoc-ref %build-inputs "ghub")
467 "/share/emacs/site-lisp/guix.d/ghub-"
468 ,(package-version emacs-ghub))
469 (string-append "MAGIT_POPUP_DIR="
470 (assoc-ref %build-inputs "magit-popup")
471 "/share/emacs/site-lisp/guix.d/magit-popup-"
472 ,(package-version emacs-magit-popup))
3db5ed11
AK
473 (string-append "WITH_EDITOR_DIR="
474 (assoc-ref %build-inputs "with-editor")
475 "/share/emacs/site-lisp/guix.d/with-editor-"
476 ,(package-version emacs-with-editor)))
d41a8a07 477
9a4c9715 478 #:phases
c466bfd1 479 (modify-phases %standard-phases
55f29c39 480 (delete 'configure)
c466bfd1
LC
481 (add-before
482 'build 'patch-exec-paths
483 (lambda* (#:key inputs #:allow-other-keys)
84fe4420 484 (let ((perl (assoc-ref inputs "perl")))
46bd4515
AG
485 (substitute* "lisp/magit-sequence.el"
486 (("perl") (string-append perl "/bin/perl")))
55f29c39 487 #t))))))
f61719d1 488 (home-page "https://magit.vc/")
9a4c9715
MW
489 (synopsis "Emacs interface for the Git version control system")
490 (description
491 "With Magit, you can inspect and modify your Git repositories with Emacs.
492You can review and commit the changes you have made to the tracked files, for
493example, and you can browse the history of past changes. There is support for
494cherry picking, reverting, merging, rebasing, and other common Git
495operations.")
f61e0e79 496 (license license:gpl3+)))
18d26210 497
97cc51f8
LC
498(define-public magit-svn
499 (package
500 (name "magit-svn")
5ccd8f40 501 (version "2.2.0")
97cc51f8 502 (source (origin
be379ee7
AK
503 (method url-fetch)
504 (uri (string-append
505 "https://github.com/magit/magit-svn/archive/"
506 version ".tar.gz"))
507 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
508 (sha256
509 (base32
5ccd8f40 510 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
97cc51f8 511 (build-system trivial-build-system)
b8fc3622 512 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
513 ("tar" ,tar)
514 ("gzip" ,gzip)))
515 (propagated-inputs `(("dash" ,emacs-dash)
5ccd8f40 516 ("with-editor" ,emacs-with-editor)
be379ee7 517 ("magit" ,magit)))
97cc51f8
LC
518 (arguments
519 `(#:modules ((guix build utils)
520 (guix build emacs-utils))
521
522 #:builder
523 (begin
524 (use-modules (guix build utils)
525 (guix build emacs-utils))
526
be379ee7
AK
527 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
528 "/bin/tar"))
529 (PATH (string-append (assoc-ref %build-inputs "gzip")
530 "/bin"))
531 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
532 "/bin/emacs"))
533 (magit (string-append (assoc-ref %build-inputs "magit")
534 "/share/emacs/site-lisp"))
be379ee7
AK
535 (dash (string-append (assoc-ref %build-inputs "dash")
536 "/share/emacs/site-lisp/guix.d/dash-"
537 ,(package-version emacs-dash)))
5ccd8f40
LC
538 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
539 "/share/emacs/site-lisp/guix.d/with-editor-"
540 ,(package-version emacs-with-editor)))
97cc51f8
LC
541 (source (assoc-ref %build-inputs "source"))
542 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7
AK
543 (setenv "PATH" PATH)
544 (system* tar "xvf" source)
96c46210
LC
545
546 (install-file (string-append ,name "-" ,version "/magit-svn.el")
547 lisp-dir)
97cc51f8
LC
548
549 (with-directory-excursion lisp-dir
550 (parameterize ((%emacs emacs))
551 (emacs-generate-autoloads ,name lisp-dir)
552 (setenv "EMACSLOADPATH"
5ccd8f40 553 (string-append ":" magit ":" dash ":" with-editor))
97cc51f8
LC
554 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
555 (home-page "https://github.com/magit/magit-svn")
556 (synopsis "Git-SVN extension to Magit")
557 (description
558 "This package is an extension to Magit, the Git Emacs mode, providing
559support for Git-SVN.")
560 (license license:gpl3+)))
561
c1562e3d
AK
562(define-public emacs-magit-popup
563 (package
564 (name "emacs-magit-popup")
1f22a544 565 (version "2.12.3")
c1562e3d
AK
566 (source (origin
567 (method url-fetch)
568 (uri (string-append
09f7c41d
AK
569 "https://github.com/magit/magit-popup/archive/v"
570 version ".tar.gz"))
571 (file-name (string-append name "-" version ".tar.gz"))
c1562e3d
AK
572 (sha256
573 (base32
1f22a544 574 "1kz6vj67awkwf9y2wj6m3l2him3znm08z6bkdvnmfr6rwd96dr39"))))
c1562e3d 575 (build-system emacs-build-system)
09f7c41d
AK
576 (arguments
577 `(#:phases
578 (modify-phases %standard-phases
579 (add-before 'install 'make-info
580 (lambda _
581 (zero? (system* "make" "info")))))))
582 (native-inputs
583 `(("texinfo" ,texinfo)))
c1562e3d
AK
584 (propagated-inputs
585 `(("emacs-dash" ,emacs-dash)))
09f7c41d 586 (home-page "https://github.com/magit/magit-popup")
c1562e3d
AK
587 (synopsis "Define prefix-infix-suffix command combos")
588 (description
589 "This library implements a generic interface for toggling switches and
590setting options and then invoking an Emacs command which does something with
591these arguments. The prototypical use is for the command to call an external
592process, passing on the arguments as command line arguments.")
593 (license license:gpl3+)))
594
0a287457
AK
595(define-public emacs-ghub
596 (package
597 (name "emacs-ghub")
598 (version "2.0.0")
599 (source (origin
600 (method url-fetch)
601 (uri (string-append
602 "https://github.com/magit/ghub/archive/v"
603 version ".tar.gz"))
604 (file-name (string-append name "-" version ".tar.gz"))
605 (sha256
606 (base32
607 "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc"))))
608 (build-system emacs-build-system)
609 (arguments
610 `(#:phases
611 (modify-phases %standard-phases
612 (add-before 'install 'make-info
613 (lambda _
614 (zero? (system* "make" "info")))))))
615 (native-inputs
616 `(("texinfo" ,texinfo)))
617 (home-page "https://github.com/magit/ghub")
618 (synopsis "Emacs client library for Github API and Gitlab API")
619 (description
620 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
621which are the libraries that provide basic support for using the Github and
622Gitlab APIs from Emacs packages. It abstracts access to API resources using
623only a handful of functions that are not resource-specific.")
624 (license license:gpl3+)))
625
00f4bd50
FB
626(define-public haskell-mode
627 (package
628 (name "haskell-mode")
08fc0d68 629 (version "16.1")
00f4bd50
FB
630 (source (origin
631 (method url-fetch)
632 (file-name (string-append name "-" version ".tar.gz"))
633 (uri (string-append
634 "https://github.com/haskell/haskell-mode/archive/v"
635 version ".tar.gz"))
636 (sha256
08fc0d68
FB
637 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
638 (inputs
639 `(("emacs-el-search" ,emacs-el-search) ; for tests
640 ("emacs-stream" ,emacs-stream))) ; for tests
641 (propagated-inputs
642 `(("emacs-dash" ,emacs-dash)))
00f4bd50 643 (native-inputs
b8fc3622 644 `(("emacs" ,emacs-minimal)
6aaf3899 645 ("texinfo" ,texinfo)))
00f4bd50
FB
646 (build-system gnu-build-system)
647 (arguments
648 `(#:make-flags (list (string-append "EMACS="
649 (assoc-ref %build-inputs "emacs")
650 "/bin/emacs"))
08fc0d68
FB
651 #:modules ((ice-9 match)
652 (srfi srfi-26)
653 ,@%gnu-build-system-modules)
00f4bd50
FB
654 #:phases
655 (modify-phases %standard-phases
656 (delete 'configure)
657 (add-before
658 'build 'pre-build
659 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68 660 (define (el-dir store-dir)
69611d3e 661 (match (find-files store-dir "\\.el$")
08fc0d68
FB
662 ((f1 f2 ...) (dirname f1))
663 (_ "")))
664
00f4bd50 665 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
666 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
667
00f4bd50 668 (setenv "SHELL" "sh")
08fc0d68
FB
669 (setenv "EMACSLOADPATH"
670 (string-concatenate
671 (map (match-lambda
672 (((? emacs-prefix? name) . dir)
673 (string-append (el-dir dir) ":"))
674 (_ ""))
675 inputs)))
00f4bd50 676 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
677 (substitute* "tests/haskell-code-conventions.el"
678 ;; Function name recently changed in "emacs-el-search".
679 (("el-search--search-pattern") "el-search-forward")
680 ;; Don't contact home.
681 (("\\(when \\(>= emacs-major-version 25\\)")
682 "(require 'el-search) (when nil"))
00f4bd50
FB
683 #t)))
684 (replace
685 'install
686 (lambda* (#:key outputs #:allow-other-keys)
687 (let* ((out (assoc-ref outputs "out"))
688 (el-dir (string-append out "/share/emacs/site-lisp"))
689 (doc (string-append
690 out "/share/doc/haskell-mode-" ,version))
691 (info (string-append out "/share/info")))
692 (define (copy-to-dir dir files)
96c46210
LC
693 (for-each (lambda (f)
694 (install-file f dir))
695 files))
00f4bd50
FB
696
697 (with-directory-excursion "doc"
698 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
699 (error "makeinfo failed"))
96c46210 700 (install-file "haskell-mode.info" info))
00f4bd50
FB
701 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
702 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 703 ;; These are part of other packages.
00f4bd50 704 (with-directory-excursion el-dir
08fc0d68 705 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
706 #t))))))
707 (home-page "https://github.com/haskell/haskell-mode")
708 (synopsis "Haskell mode for Emacs")
709 (description
710 "This is an Emacs mode for editing, debugging and developing Haskell
711programs.")
712 (license license:gpl3+)))
713
6e3fdbbe
LC
714(define-public flycheck
715 (package
716 (name "emacs-flycheck")
6ae0fd21 717 (version "31")
6e3fdbbe
LC
718 (source (origin
719 (method url-fetch)
0b928076
AK
720 (uri (string-append
721 "https://github.com/flycheck/flycheck/releases/download/"
722 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
723 (sha256
724 (base32
6ae0fd21 725 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))))
6e3fdbbe
LC
726 (build-system emacs-build-system)
727 (propagated-inputs
d0a52052 728 `(("emacs-dash" ,emacs-dash)))
6e3fdbbe
LC
729 (home-page "https://www.flycheck.org")
730 (synopsis "On-the-fly syntax checking")
731 (description
732 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
733replacement for the older Flymake extension which is part of GNU Emacs, with
734many improvements and additional features.
735
736Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
737checking for over 30 programming and markup languages with more than 70
738different tools. It highlights errors and warnings inline in the buffer, and
739provides an optional IDE-like error list.")
740 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
741
18d26210
MW
742\f
743;;;
744;;; Web browsing.
745;;;
746
747(define-public emacs-w3m
748 (package
749 (name "emacs-w3m")
2e74b9f4 750 (version "1.4.538+0.20141022")
18d26210
MW
751 (source (origin
752 (method url-fetch)
753 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
754 version ".orig.tar.gz"))
755 (sha256
2e74b9f4
AK
756 (base32
757 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
18d26210 758 (build-system gnu-build-system)
6aaf3899 759 (native-inputs `(("autoconf" ,autoconf)
b8fc3622 760 ("emacs" ,emacs-minimal)))
18d26210 761 (inputs `(("w3m" ,w3m)
6aaf3899 762 ("imagemagick" ,imagemagick)))
18d26210 763 (arguments
caaf1933 764 `(#:modules ((guix build gnu-build-system)
18d26210
MW
765 (guix build utils)
766 (guix build emacs-utils))
8ff3df5b 767 #:imported-modules (,@%gnu-build-system-modules
18d26210
MW
768 (guix build emacs-utils))
769 #:configure-flags
770 (let ((out (assoc-ref %outputs "out")))
771 (list (string-append "--with-lispdir="
772 out "/share/emacs/site-lisp")
773 (string-append "--with-icondir="
2e74b9f4
AK
774 out "/share/images/emacs-w3m")
775 ;; Leave .el files uncompressed, otherwise GC can't
776 ;; identify run-time dependencies. See
777 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
778 "--without-compress-install"))
18d26210
MW
779 #:tests? #f ; no check target
780 #:phases
932ece65
AK
781 (modify-phases %standard-phases
782 (add-after 'unpack 'autoconf
783 (lambda _
784 (zero? (system* "autoconf"))))
785 (add-before 'build 'patch-exec-paths
786 (lambda* (#:key inputs outputs #:allow-other-keys)
787 (let ((out (assoc-ref outputs "out"))
788 (w3m (assoc-ref inputs "w3m"))
789 (imagemagick (assoc-ref inputs "imagemagick"))
790 (coreutils (assoc-ref inputs "coreutils")))
791 (emacs-substitute-variables "w3m.el"
792 ("w3m-command" (string-append w3m "/bin/w3m"))
793 ("w3m-touch-command"
794 (string-append coreutils "/bin/touch"))
795 ("w3m-image-viewer"
796 (string-append imagemagick "/bin/display"))
797 ("w3m-icon-directory"
798 (string-append out "/share/images/emacs-w3m")))
799 (emacs-substitute-variables "w3m-image.el"
800 ("w3m-imagick-convert-program"
801 (string-append imagemagick "/bin/convert"))
802 ("w3m-imagick-identify-program"
803 (string-append imagemagick "/bin/identify")))
804 #t)))
805 (replace 'install
806 (lambda* (#:key outputs #:allow-other-keys)
807 (and (zero? (system* "make" "install" "install-icons"))
808 (with-directory-excursion
809 (string-append (assoc-ref outputs "out")
810 "/share/emacs/site-lisp")
811 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
812 (symlink "w3m-load.el" "w3m-autoloads.el")
813 #t)))))))
18d26210
MW
814 (home-page "http://emacs-w3m.namazu.org/")
815 (synopsis "Simple Web browser for Emacs based on w3m")
816 (description
35b9e423 817 "Emacs-w3m is an emacs interface for the w3m web browser.")
f61e0e79 818 (license license:gpl2+)))
89925972
MW
819
820(define-public emacs-wget
821 (package
822 (name "emacs-wget")
823 (version "0.5.0")
824 (source (origin
825 (method url-fetch)
826 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
827 version ".orig.tar.gz"))
828 (sha256
829 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
830 (build-system gnu-build-system)
6aaf3899 831 (inputs `(("wget" ,wget)))
b8fc3622 832 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 833 (arguments
caaf1933 834 `(#:modules ((guix build gnu-build-system)
89925972
MW
835 (guix build utils)
836 (guix build emacs-utils))
caaf1933 837 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
838 (guix build emacs-utils))
839 #:tests? #f ; no check target
840 #:phases
dc1d3cde
KK
841 (modify-phases %standard-phases
842 (replace 'configure
843 (lambda* (#:key outputs #:allow-other-keys)
844 (substitute* "Makefile"
845 (("/usr/local") (assoc-ref outputs "out"))
846 (("/site-lisp/emacs-wget") "/site-lisp"))
847 #t))
848 (add-before 'build 'patch-exec-paths
849 (lambda* (#:key inputs outputs #:allow-other-keys)
850 (let ((wget (assoc-ref inputs "wget")))
851 (emacs-substitute-variables "wget.el"
852 ("wget-command" (string-append wget "/bin/wget"))))
853 #t))
854 (add-after 'install 'post-install
855 (lambda* (#:key outputs #:allow-other-keys)
856 (emacs-generate-autoloads
857 "wget" (string-append (assoc-ref outputs "out")
858 "/share/emacs/site-lisp/"))
859 #t)))))
89925972 860 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 861 (synopsis "Simple file downloader for Emacs based on wget")
89925972 862 (description
35b9e423 863 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 864 (license license:gpl2+)))
77c9286d
LC
865
866\f
867;;;
868;;; Multimedia.
869;;;
870
871(define-public emms
872 (package
d06d4d7b 873 (name "emacs-emms")
6a65b701 874 (version "5.0")
77c9286d
LC
875 (source (origin
876 (method url-fetch)
877 (uri (string-append "mirror://gnu/emms/emms-"
878 version ".tar.gz"))
879 (sha256
880 (base32
6a65b701 881 "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
77c9286d
LC
882 (modules '((guix build utils)))
883 (snippet
884 '(substitute* "Makefile"
885 (("/usr/bin/install-info")
886 ;; No need to use 'install-info' since it would create a
887 ;; useless 'dir' file.
888 "true")
889 (("^INFODIR=.*")
890 ;; Install Info files to $out/share/info, not $out/info.
891 "INFODIR := $(PREFIX)/share/info\n")
892 (("/site-lisp/emms")
893 ;; Install directly in share/emacs/site-lisp, not in a
894 ;; sub-directory.
895 "/site-lisp")
896 (("^all: (.*)\n" _ rest)
897 ;; Build 'emms-print-metadata'.
898 (string-append "all: " rest " emms-print-metadata\n"))))))
899 (build-system gnu-build-system)
900 (arguments
caaf1933 901 `(#:modules ((guix build gnu-build-system)
77c9286d
LC
902 (guix build utils)
903 (guix build emacs-utils))
caaf1933 904 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
905 (guix build emacs-utils))
906
2fe176be
EF
907 #:phases
908 (modify-phases %standard-phases
909 (replace 'configure
910 (lambda* (#:key inputs outputs #:allow-other-keys)
911 (let ((out (assoc-ref outputs "out"))
66e55700 912 (flac (assoc-ref inputs "flac"))
2fe176be
EF
913 (vorbis (assoc-ref inputs "vorbis-tools"))
914 (alsa (assoc-ref inputs "alsa-utils"))
915 (mpg321 (assoc-ref inputs "mpg321"))
916 (mp3info (assoc-ref inputs "mp3info")))
917 ;; Specify the installation directory.
918 (substitute* "Makefile"
919 (("PREFIX=.*$")
920 (string-append "PREFIX := " out "\n")))
921
922 (setenv "SHELL" (which "sh"))
923 (setenv "CC" "gcc")
924
925 ;; Specify the absolute file names of the various
926 ;; programs so that everything works out-of-the-box.
927 (with-directory-excursion "lisp"
928 (emacs-substitute-variables
929 "emms-player-mpg321-remote.el"
930 ("emms-player-mpg321-remote-command"
931 (string-append mpg321 "/bin/mpg321")))
932 (substitute* "emms-player-simple.el"
933 (("\"ogg123\"")
934 (string-append "\"" vorbis "/bin/ogg123\"")))
66e55700
MC
935 (substitute* "emms-player-simple.el"
936 (("\"mpg321\"")
937 (string-append "\"" mpg321 "/bin/mpg321\"")))
2fe176be
EF
938 (emacs-substitute-variables "emms-info-ogginfo.el"
939 ("emms-info-ogginfo-program-name"
940 (string-append vorbis "/bin/ogginfo")))
941 (emacs-substitute-variables "emms-info-libtag.el"
942 ("emms-info-libtag-program-name"
943 (string-append out "/bin/emms-print-metadata")))
944 (emacs-substitute-variables "emms-info-mp3info.el"
945 ("emms-info-mp3info-program-name"
946 (string-append mp3info "/bin/mp3info")))
66e55700
MC
947 (emacs-substitute-variables "emms-info-metaflac.el"
948 ("emms-info-metaflac-program-name"
949 (string-append flac "/bin/metaflac")))
950 (emacs-substitute-variables "emms-source-file.el"
951 ("emms-source-file-gnu-find" (which "find")))
2fe176be
EF
952 (substitute* "emms-volume-amixer.el"
953 (("\"amixer\"")
954 (string-append "\"" alsa "/bin/amixer\"")))
955 (substitute* "emms-tag-editor.el"
956 (("\"mp3info\"")
957 (string-append "\"" mp3info "/bin/mp3info\"")))))))
958 (add-before 'install 'pre-install
959 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 960 ;; The 'install' rule expects the target directories to exist.
2fe176be 961 (let* ((out (assoc-ref outputs "out"))
c3a10d30 962 (bin (string-append out "/bin"))
2fe176be 963 (man1 (string-append out "/share/man/man1")))
c3a10d30 964 (mkdir-p bin)
2fe176be
EF
965 (mkdir-p man1)
966 #t)))
967 (add-after 'install 'post-install
968 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 969 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
970 (symlink "emms-auto.el"
971 (string-append out "/share/emacs/site-lisp/"
c3a10d30 972 "emms-autoloads.el"))))))
77c9286d 973 #:tests? #f))
b8fc3622 974 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 975 ("texinfo" ,texinfo)))
c72aed6d 976 (inputs `(("alsa-utils" ,alsa-utils)
66e55700 977 ("flac" ,flac) ;for metaflac
77c9286d
LC
978 ("vorbis-tools" ,vorbis-tools)
979 ("mpg321" ,mpg321)
980 ("taglib" ,taglib)
981 ("mp3info" ,mp3info)))
38cb4766 982 (properties '((upstream-name . "emms")))
77c9286d
LC
983 (synopsis "Emacs Multimedia System")
984 (description
985 "EMMS is the Emacs Multimedia System. It is a small front-end which
986can control one of the supported external players. Thus, it supports
987whatever formats are supported by your music player. It also
988supports tagging and playlist management, all behind a clean and
989light user interface.")
6fd52309 990 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 991 (license license:gpl3+)))
c7e553a3 992
1095bd1d
RW
993(define-public emacs-emms-player-mpv
994 (package
995 (name "emacs-emms-player-mpv")
de893dda 996 (version "0.1.0")
1095bd1d
RW
997 (source
998 (origin
999 (method url-fetch)
1000 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
1001 version ".tar.gz"))
1002 (file-name (string-append name "-" version ".tar.gz"))
1003 (sha256
1004 (base32
de893dda 1005 "05qwbagc4i7yn7i94r1hdgj6wc5xijy1pxqv08pwsmli9rqj51n9"))))
1095bd1d
RW
1006 (build-system emacs-build-system)
1007 (propagated-inputs
1008 `(("emms" ,emms)))
1009 (home-page "https://github.com/dochang/emms-player-mpv/")
1010 (synopsis "Mpv support for EMMS")
1011 (description
1012 "This package provides an EMMS player that uses mpv. It supports pause
1013and seeking.")
1014 (license license:gpl3+)))
1015
2316078a
RW
1016(define-public emacs-emms-mode-line-cycle
1017 (package
1018 (name "emacs-emms-mode-line-cycle")
1019 (version "0.2.5")
1020 (source
1021 (origin
1022 (method url-fetch)
1023 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1024 "/archive/" version ".tar.gz"))
1025 (file-name (string-append name "-" version ".tar.gz"))
1026 (sha256
1027 (base32
1028 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1029 (build-system emacs-build-system)
1030 (propagated-inputs
1031 `(("emms" ,emms)))
1032 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1033 (synopsis "Display the EMMS mode line as a ticker")
1034 (description
1035 "This is a minor mode for updating the EMMS mode-line string cyclically
1036within a specified width. It is useful for displaying long track titles.")
1037 (license license:gpl3+)))
1038
c7e553a3
LC
1039\f
1040;;;
1041;;; Miscellaneous.
1042;;;
1043
1044(define-public bbdb
1045 (package
1046 (name "bbdb")
1047 (version "3.1.2")
1048 (source (origin
1049 (method url-fetch)
1050 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1051 version ".tar.gz"))
1052 (sha256
1053 (base32
1054 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1055 (modules '((guix build utils)))
1056 (snippet
1057 ;; We don't want to build and install the PDF.
1058 '(substitute* "doc/Makefile.in"
1059 (("^doc_DATA = .*$")
1060 "doc_DATA =\n")))))
1061 (build-system gnu-build-system)
1062 (arguments
dc1d3cde
KK
1063 '(#:phases
1064 (modify-phases %standard-phases
1065 (add-after 'install 'post-install
1066 (lambda* (#:key outputs #:allow-other-keys)
1067 ;; Add an autoloads file with the right name for guix.el.
1068 (let* ((out (assoc-ref outputs "out"))
1069 (site (string-append out "/share/emacs/site-lisp")))
1070 (with-directory-excursion site
1071 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1072 #t)))))
b8fc3622 1073 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 1074 (home-page "https://savannah.nongnu.org/projects/bbdb/")
c7e553a3
LC
1075 (synopsis "Contact management utility for Emacs")
1076 (description
1077 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1078an address book for email and snail mail addresses, phone numbers and the
1079like. It can be linked with various Emacs mail clients (Message and Mail
1080mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1081 (license license:gpl3+)))
78395334 1082
4d3d3bd2
VD
1083(define-public emacs-aggressive-indent
1084 (package
1085 (name "emacs-aggressive-indent")
1086 (version "1.8.3")
1087 (source (origin
1088 (method url-fetch)
1089 (uri (string-append "https://elpa.gnu.org/packages/"
1090 "aggressive-indent-" version ".el"))
1091 (sha256
1092 (base32
1093 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1094 (build-system emacs-build-system)
1095 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1096 (synopsis "Minor mode to aggressively keep your code always indented")
1097 (description
1098 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1099always indented. It reindents after every change, making it more reliable
1100than @code{electric-indent-mode}.")
1101 (license license:gpl2+)))
1102
cf006d2e
CB
1103(define-public emacs-ag
1104 (package
1105 (name "emacs-ag")
1106 (version "0.47")
1107 (source (origin
1108 (method url-fetch)
1109 (uri (string-append
1110 "https://github.com/Wilfred/ag.el/archive/"
1111 version ".tar.gz"))
1112 (file-name (string-append name "-" version ".tar.gz"))
1113 (sha256
1114 (base32
1115 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1116 (build-system emacs-build-system)
1117 (arguments
1118 `(#:phases
1119 (modify-phases %standard-phases
99517d92
GC
1120 (add-before 'install 'make-info
1121 (lambda _
1122 (with-directory-excursion "docs"
1123 (zero? (system* "make" "info")))))
1124 (add-after 'install 'install-info
1125 (lambda* (#:key outputs #:allow-other-keys)
1126 (let* ((out (assoc-ref outputs "out"))
1127 (info (string-append out "/share/info")))
1128 (install-file "docs/_build/texinfo/agel.info" info)
1129 #t))))))
99517d92
GC
1130 (native-inputs
1131 `(("python-sphinx" ,python-sphinx)
1132 ("texinfo" ,texinfo)))
cf006d2e
CB
1133 (propagated-inputs
1134 `(("dash" ,emacs-dash)
86470421
CL
1135 ("s" ,emacs-s)
1136 ;; We need to use 'ag' as the executable on remote systems.
1137 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1138 (home-page "https://github.com/Wilfred/ag.el")
1139 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1140 (description "This package provides the ability to use the silver
1141searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1142include version control system awareness, use of Perl compatible regular
1143expressions, editing the search results directly and searching file names
1144rather than the contents of files.")
1145 (license license:gpl3+)))
1146
b654de6d
AK
1147(define-public emacs-async
1148 (package
1149 (name "emacs-async")
51ef4af6 1150 (version "1.9.2")
b654de6d
AK
1151 (source (origin
1152 (method url-fetch)
f32ffa04 1153 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1154 version ".tar"))
1155 (sha256
1156 (base32
51ef4af6 1157 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
b654de6d 1158 (build-system emacs-build-system)
f32ffa04 1159 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
1160 (synopsis "Asynchronous processing in Emacs")
1161 (description
1162 "This package provides the ability to call asynchronous functions and
1163processes. For example, it can be used to run dired commands (for copying,
1164moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1165as a library for other Emacs packages.")
1166 (license license:gpl3+)))
1167
78395334
FB
1168(define-public emacs-auctex
1169 (package
1170 (name "emacs-auctex")
7f9866a3 1171 (version "12.1.0")
78395334
FB
1172 (source
1173 (origin
1174 (method url-fetch)
1175 (uri (string-append
f32ffa04 1176 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1177 version
1178 ".tar"))
1179 (sha256
1180 (base32
7f9866a3 1181 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
78395334 1182 (build-system emacs-build-system)
a6eafbed
AK
1183 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1184 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1185 (arguments
1186 `(#:emacs ,emacs
1187 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1188 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1189 (native-inputs
1190 `(("perl" ,perl)))
6fd52309 1191 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1192 (synopsis "Integrated environment for TeX")
1193 (description
1194 "AUCTeX is a comprehensive customizable integrated environment for
1195writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1196or XEmacs.")
1197 (license license:gpl3+)))
85ef742c 1198
de2e402b
MM
1199(define-public emacs-autothemer
1200 (package
1201 (name "emacs-autothemer")
1202 (version "0.2.2")
1203 (source
1204 (origin
1205 (method url-fetch)
1206 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1207 version ".tar.gz"))
1208 (file-name (string-append name "-" version ".tar.gz"))
1209 (sha256
1210 (base32
1211 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1212 (build-system emacs-build-system)
1213 (propagated-inputs
1214 `(("emacs-dash" ,emacs-dash)))
1215 (home-page "https://github.com/sebastiansturm/autothemer")
1216 (synopsis "Conveniently create Emacs themes")
1217 (description
1218 "Autothemer provides a thin layer on top of @code{deftheme} and
1219@code{custom-theme-set-faces} that creates a new custom color theme, based on
1220a set of simplified face specifications and a user-supplied color palette")
1221 (license license:gpl3+)))
1222
474e14f7
MC
1223(define-public emacs-howm
1224 (package
1225 (name "emacs-howm")
1226 (version "1.4.4")
1227 (source
1228 (origin
1229 (method url-fetch)
1230 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1231 version ".tar.gz"))
1232 (sha256
1233 (base32
1234 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1235 (build-system gnu-build-system)
1236 (native-inputs
1237 `(("emacs" ,emacs-minimal)))
1238 (arguments
1239 `(#:configure-flags
1240 (list (string-append "--with-howmdir=" %output
1241 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1242 #:modules ((guix build gnu-build-system)
1243 ((guix build emacs-build-system) #:prefix emacs:)
1244 (guix build utils))
1245 #:imported-modules (,@%gnu-build-system-modules
1246 (guix build emacs-build-system)
1247 (guix build emacs-utils))
1248 #:phases
1249 (modify-phases %standard-phases
1250 (add-after 'rename-lispdir 'make-autoloads
1251 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1252 (home-page "http://howm.osdn.jp/")
1253 (synopsis "Note-taking tool for Emacs")
1254 (description "Howm is a note-taking tool for Emacs. Like
1255code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1256searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1257 (license license:gpl1+)))
1258
36890436
VD
1259(define-public emacs-calfw
1260 (package
1261 (name "emacs-calfw")
1262 (version "1.5")
1263 (source
1264 (origin
1265 (method url-fetch)
1266 (uri (string-append
1267 "https://github.com/kiwanami/emacs-calfw/archive/v"
1268 version ".tar.gz"))
1269 (file-name (string-append name "-" version ".tar.gz"))
1270 (sha256
1271 (base32
1272 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1273 (build-system emacs-build-system)
159d10ae
MC
1274 (propagated-inputs
1275 `(("emacs-howm" ,emacs-howm)))
36890436
VD
1276 (home-page "https://github.com/kiwanami/emacs-calfw/")
1277 (synopsis "Calendar framework for Emacs")
1278 (description
9dac2a8e
RW
1279 "This package displays a calendar view with various schedule data in the
1280Emacs buffer.")
36890436
VD
1281 (license license:gpl3+)))
1282
a8d0c9cb
CB
1283(define-public emacs-direnv
1284 (package
1285 (name "emacs-direnv")
1286 (version "1.2.0")
1287 (source
1288 (origin
1289 (method url-fetch)
1290 (uri (string-append
1291 "https://github.com/wbolster/emacs-direnv/archive/"
1292 version ".tar.gz"))
1293 (file-name (string-append name "-" version ".tar.gz"))
1294 (sha256
1295 (base32
1296 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1297 (build-system emacs-build-system)
1298 (propagated-inputs
1299 `(("dash" ,emacs-dash)
1300 ("with-editor" ,emacs-with-editor)))
1301 (home-page "https://github.com/wbolster/emacs-direnv")
1302 (synopsis "Direnv integration for Emacs")
1303 (description
1304 "This package provides support for invoking direnv to get the environment
1305for the current file and updating the environment within Emacs to match.
1306
1307Direnv can be invoked manually, and a global minor mode is included that will
1308update the environment when the active buffer changes.
1309
1310Using emacs-direnv means that programs started from Emacs will use the
1311environment set through Direnv.")
1312 (license license:gpl3+)))
1313
cd5c3979
OP
1314(define-public emacs-ggtags
1315 (package
1316 (name "emacs-ggtags")
1317 (version "0.8.12")
1318 (source
1319 (origin
1320 (method url-fetch)
1321 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1322 version ".el"))
1323 (sha256
1324 (base32
1325 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1326 (build-system emacs-build-system)
1327 (home-page "https://github.com/leoliu/ggtags")
1328 (synopsis "Frontend to the GNU Global source code tagging system")
1329 (description "@code{ggtags} provides a frontend to the GNU Global source
1330code tagging system.
1331
1332Features:
1333
1334@itemize
1335@item Build on @code{compile.el} for asynchronicity and its large feature-set.
1336@item Automatically update Global's tag files when needed with tuning for
1337large source trees.
1338@item Intuitive navigation among multiple matches with mode-line display of
1339current match, total matches and exit status.
1340@item Read tag with completion.
1341@item Show definition at point.
1342@item Jump to #include files.
1343@item Support search history and saving a search to register/bookmark.
1344@item Query replace.
1345@item Manage Global's environment variables on a per-project basis.
1346@item Highlight (definition) tag at point.
1347@item Abbreviated display of file names.
1348@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1349@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1350@code{pygments} backend.
1351@item Support all Global's output formats: @code{grep}, @code{ctags-x},
1352@code{cscope} etc.
1353@item Support projects on remote hosts (e.g. via @code{tramp}).
1354@item Support eldoc.
1355@item Search @code{GTAGSLIBPATH} for references and symbols.
1356@end itemize\n")
1357 (license license:gpl3+)))
1358
21a656f5
CB
1359(define-public emacs-go-mode
1360 (package
1361 (name "emacs-go-mode")
1362 (version "1.5.0")
1363 (source (origin
1364 (method url-fetch)
1365 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1366 "archive/v" version ".tar.gz"))
1367 (file-name (string-append name "-" version ".tar.gz"))
1368 (sha256
1369 (base32
1370 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1371 (build-system emacs-build-system)
1372 (home-page "https://github.com/dominikh/go-mode.el")
1373 (synopsis "Go mode for Emacs")
1374 (description
1375 "This package provides go-mode, an Emacs mode for working with software
1376written in the Go programming language.")
1377 (license license:bsd-3)))
1378
63878730
VD
1379(define-public emacs-google-maps
1380 (package
1381 (name "emacs-google-maps")
1382 (version "1.0.0")
1383 (source (origin
1384 (method url-fetch)
1385 (uri (string-append "https://github.com/jd/google-maps.el/"
1386 "archive/" version ".tar.gz"))
1387 (file-name (string-append name "-" version ".tar.gz"))
1388 (sha256
1389 (base32
1390 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1391 (build-system emacs-build-system)
1392 (home-page "https://github.com/jd/google-maps.el")
1393 (synopsis "Access Google Maps from Emacs")
1394 (description "The @code{google-maps} package allows to display Google
1395Maps directly inside Emacs.")
1396 (license license:gpl3+)))
1397
1f37465a
CB
1398(define-public emacs-graphviz-dot-mode
1399 (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
1400 (revision "1"))
1401 (package
1402 (name "emacs-graphviz-dot-mode")
1403 (version (string-append "0.3.10-" revision "."
1404 (string-take commit 7)))
1405 (source (origin
1406 (method git-fetch)
1407 (uri (git-reference
1408 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1409 (commit commit)))
1410 (file-name (string-append name "-" version "-checkout"))
1411 (sha256
1412 (base32
1413 "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
1414 (build-system emacs-build-system)
1415 (arguments
1416 `(#:phases
1417 (modify-phases %standard-phases
1418 (add-before 'install 'make-info
1419 (lambda* (#:key inputs #:allow-other-keys)
1420 (with-directory-excursion "texinfo"
1421 (substitute* "Makefile"
1422 (("\\/usr\\/bin\\/gzip")
1423 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1424 (zero?
1425 (system* "make"
1426 "clean"
1427 "info"
1428 (string-append "TEXINFODIR="
1429 (assoc-ref inputs "texinfo")
1430 "/bin"))))))
1431 (add-after 'install 'install-info
1432 (lambda* (#:key outputs #:allow-other-keys)
1433 (let* ((out (assoc-ref outputs "out"))
1434 (info (string-append out "/share/info")))
1435 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1436 #t))))))
1437 (native-inputs
1438 `(("texinfo" ,texinfo)
1439 ("gzip" ,gzip)))
1440 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1441 (synopsis "Major mode for editing Graphviz Dot files")
1442 (description
1443 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1444files using the dot syntax, and use Graphviz to convert these files to
1445diagrams.")
1446 (license license:gpl2+))))
1447
85ef742c
FB
1448(define-public emacs-mmm-mode
1449 (package
1450 (name "emacs-mmm-mode")
810cd037 1451 (version "0.5.5")
85ef742c
FB
1452 (source
1453 (origin
1454 (method url-fetch)
1455 (uri (string-append
0c909c05
AK
1456 "https://github.com/purcell/mmm-mode/archive/"
1457 version ".tar.gz"))
1458 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1459 (sha256
1460 (base32
810cd037 1461 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
0c909c05
AK
1462 (build-system gnu-build-system)
1463 (arguments
1464 '(#:phases
1465 (modify-phases %standard-phases
1466 (add-after 'unpack 'autogen
1467 (lambda _
1468 (zero? (system* "sh" "autogen.sh")))))))
1469 (native-inputs
1470 `(("autoconf" ,autoconf)
1471 ("automake" ,automake)
b8fc3622 1472 ("emacs" ,emacs-minimal)
0c909c05 1473 ("texinfo" ,texinfo)))
85ef742c 1474 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1475 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1476 (description
0c909c05 1477 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1478single buffer.")
1479 (license license:gpl3+)))
ec9825d6 1480
060348d2
AK
1481(define-public emacs-tablist
1482 (package
1483 (name "emacs-tablist")
1484 (version "0.70")
1485 (source (origin
1486 (method url-fetch)
1487 (uri (string-append
1488 "https://github.com/politza/tablist/archive/v"
1489 version ".tar.gz"))
1490 (file-name (string-append name "-" version ".tar.gz"))
1491 (sha256
1492 (base32
1493 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1494 (build-system emacs-build-system)
1495 (home-page "https://github.com/politza/tablist")
1496 (synopsis "Extension for @code{tabulated-list-mode}")
1497 (description "Tablist is the Emacs package that provides several
1498additional features to @code{tabulated-list-mode}: it adds marks,
1499filters, new key bindings and faces. It can be enabled by
1500@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1501 (license license:gpl3+)))
1502
ec9825d6
RW
1503(define-public emacs-pdf-tools
1504 (package
1505 (name "emacs-pdf-tools")
1210046d 1506 (version "0.80")
ec9825d6
RW
1507 (source (origin
1508 (method url-fetch)
1509 (uri (string-append
1510 "https://github.com/politza/pdf-tools/archive/v"
1511 version ".tar.gz"))
1512 (file-name (string-append name "-" version ".tar.gz"))
1513 (sha256
1514 (base32
1210046d 1515 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
ec9825d6
RW
1516 (build-system gnu-build-system)
1517 (arguments
1518 `(#:tests? #f ; there are no tests
1519 #:modules ((guix build gnu-build-system)
1bcae5c5 1520 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1521 (guix build utils)
1522 (guix build emacs-utils))
1523 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1524 (guix build emacs-build-system)
ec9825d6
RW
1525 (guix build emacs-utils))
1526 #:phases
1527 (modify-phases %standard-phases
1bcae5c5
AK
1528 ;; Build server side using 'gnu-build-system'.
1529 (add-after 'unpack 'enter-server-dir
1530 (lambda _ (chdir "server") #t))
d10092b8 1531 (add-after 'enter-server-dir 'autogen
1bcae5c5
AK
1532 (lambda _
1533 (zero? (system* "bash" "autogen.sh"))))
1534
1535 ;; Build emacs side using 'emacs-build-system'.
1536 (add-after 'compress-documentation 'enter-lisp-dir
1537 (lambda _ (chdir "../lisp") #t))
1538 (add-after 'enter-lisp-dir 'emacs-patch-variables
1539 (lambda* (#:key outputs #:allow-other-keys)
1540 ;; Set path to epdfinfo program.
1541 (emacs-substitute-variables "pdf-info.el"
1542 ("pdf-info-epdfinfo-program"
1543 (string-append (assoc-ref outputs "out")
1544 "/bin/epdfinfo")))
1545 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1546 ;; upgrading" that pdf-tools tries to perform.
1547 (emacs-substitute-variables "pdf-tools.el"
1548 ("pdf-tools-handle-upgrades" '()))))
259ed58f
MC
1549 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1550 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1551 (add-after 'emacs-set-emacs-load-path 'emacs-install
1bcae5c5
AK
1552 (assoc-ref emacs:%standard-phases 'install))
1553 (add-after 'emacs-install 'emacs-build
1554 (assoc-ref emacs:%standard-phases 'build))
1555 (add-after 'emacs-install 'emacs-make-autoloads
1556 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1557 (native-inputs `(("autoconf" ,autoconf)
1558 ("automake" ,automake)
1559 ("pkg-config" ,pkg-config)
b8fc3622 1560 ("emacs" ,emacs-minimal)))
ec9825d6
RW
1561 (inputs `(("poppler" ,poppler)
1562 ("cairo" ,cairo)
1563 ("glib" ,glib)
1564 ("libpng" ,libpng)
1565 ("zlib" ,zlib)))
1210046d 1566 (propagated-inputs `(("tablist" ,emacs-tablist)))
ec9825d6
RW
1567 (synopsis "Emacs support library for PDF files")
1568 (description
1569 "PDF Tools is, among other things, a replacement of DocView for PDF
1570files. The key difference is that pages are not pre-rendered by
1571e.g. ghostscript and stored in the file-system, but rather created on-demand
1572and stored in memory.")
1573 (home-page "https://github.com/politza/pdf-tools")
1574 (license license:gpl3+)))
d4dbf10e
FB
1575
1576(define-public emacs-dash
1577 (package
1578 (name "emacs-dash")
a31a79bc 1579 (version "2.13.0")
d4dbf10e
FB
1580 (source (origin
1581 (method url-fetch)
1582 (uri (string-append
1583 "https://github.com/magnars/dash.el/archive/"
1584 version ".tar.gz"))
1585 (file-name (string-append name "-" version ".tar.gz"))
1586 (sha256
1587 (base32
a31a79bc 1588 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
d4dbf10e
FB
1589 (build-system emacs-build-system)
1590 (arguments
d1d41db6
MC
1591 `(#:tests? #t
1592 #:test-command '("./run-tests.sh")))
d4dbf10e
FB
1593 (home-page "https://github.com/magnars/dash.el")
1594 (synopsis "Modern list library for Emacs")
1595 (description "This package provides a modern list API library for Emacs.")
1596 (license license:gpl3+)))
85777fe5 1597
753baf77
AK
1598(define-public emacs-bui
1599 (package
1600 (name "emacs-bui")
f6b1dd23 1601 (version "1.1.0")
753baf77
AK
1602 (source (origin
1603 (method url-fetch)
1604 (uri (string-append
1605 "https://github.com/alezost/bui.el/archive/v"
1606 version ".tar.gz"))
1607 (file-name (string-append name "-" version ".tar.gz"))
1608 (sha256
1609 (base32
f6b1dd23 1610 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1611 (build-system emacs-build-system)
1612 (propagated-inputs
1613 `(("dash" ,emacs-dash)))
1614 (home-page "https://github.com/alezost/bui.el")
1615 (synopsis "Buffer interface library for Emacs")
1616 (description
1617 "BUI (Buffer User Interface) is a library for making @code{list} and
1618@code{info} interfaces to display an arbitrary data of the same
1619type, for example: packages, buffers, files, etc.")
1620 (license license:gpl3+)))
1621
64e43c67
AK
1622(define-public emacs-guix
1623 (package
1624 (name "emacs-guix")
ca59ce41 1625 (version "0.4")
64e43c67
AK
1626 (source (origin
1627 (method url-fetch)
1628 (uri (string-append "https://github.com/alezost/guix.el"
1629 "/releases/download/v" version
1630 "/emacs-guix-" version ".tar.gz"))
1631 (sha256
1632 (base32
ca59ce41 1633 "1nn4b0gd895g0k4fynzrip7z8yb1r3qmvznq9v8a6q7sm84irmqq"))))
64e43c67
AK
1634 (build-system gnu-build-system)
1635 (arguments
1636 `(#:configure-flags
1637 (let ((guix (assoc-ref %build-inputs "guix"))
1638 (geiser (assoc-ref %build-inputs "geiser"))
1639 (dash (assoc-ref %build-inputs "dash"))
1640 (bui (assoc-ref %build-inputs "bui"))
1641 (magit-popup (assoc-ref %build-inputs "magit-popup"))
ca59ce41 1642 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
64e43c67
AK
1643 (site-lisp "/share/emacs/site-lisp"))
1644 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1645 (car (find-files (string-append guix
1646 "/share/guile/site")
1647 (lambda (file stat)
1648 (string-prefix?
1649 "2."
1650 (basename file)))
1651 #:directories? #t)))
3fb8e281
AK
1652 (string-append "--with-guix-site-ccache-dir="
1653 (car (find-files (string-append guix "/lib/guile")
1654 (lambda (file stat)
1655 (string-prefix?
1656 "2." (basename file)))
1657 #:directories? #t))
1658 "/site-ccache")
64e43c67
AK
1659 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1660 (string-append "--with-dash-lispdir="
1661 dash site-lisp "/guix.d/dash-"
1662 ,(package-version emacs-dash))
1663 (string-append "--with-bui-lispdir="
1664 bui site-lisp "/guix.d/bui-"
1665 ,(package-version emacs-bui))
ca59ce41
AK
1666 (string-append "--with-editindirect-lispdir="
1667 edit-indirect site-lisp "/guix.d/edit-indirect-"
1668 ,(package-version emacs-edit-indirect))
64e43c67
AK
1669 (string-append "--with-popup-lispdir="
1670 magit-popup site-lisp "/guix.d/magit-popup-"
1671 ,(package-version emacs-magit-popup))))))
1672 (native-inputs
1673 `(("pkg-config" ,pkg-config)
1674 ("emacs" ,emacs-minimal)))
1675 (inputs
b4f8edb7 1676 `(("guile" ,guile-2.2)
64e43c67
AK
1677 ("guix" ,guix)))
1678 (propagated-inputs
1679 `(("geiser" ,geiser)
1680 ("dash" ,emacs-dash)
1681 ("bui" ,emacs-bui)
ca59ce41 1682 ("edit-indirect" ,emacs-edit-indirect)
64e43c67 1683 ("magit-popup" ,emacs-magit-popup)))
78461856 1684 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1685 (synopsis "Emacs interface for GNU Guix")
1686 (description
b2f1f7b0
AK
1687 "Emacs-Guix provides a visual interface, tools and features for the GNU
1688Guix package manager. Particularly, it allows you to do various package
1689management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1690@code{M-x guix-help} command.")
64e43c67
AK
1691 (license license:gpl3+)))
1692
d6e5de1e
RJ
1693(define-public emacs-d-mode
1694 (package
1695 (name "emacs-d-mode")
1696 (version "2.0.8")
1697 (source (origin
1698 (method url-fetch)
1699 (uri (string-append
1700 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1701 "archive/" version ".tar.gz"))
b87047e0 1702 (file-name (string-append name "-" version ".tar.gz"))
d6e5de1e
RJ
1703 (sha256
1704 (base32
1705 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1706 (build-system emacs-build-system)
1707 (propagated-inputs
1708 `(("emacs-undercover" ,emacs-undercover)))
1709 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1710 (synopsis "Emacs major mode for editing D code")
1711 (description "This package provides an Emacs major mode for highlighting
1712code written in the D programming language. This mode is currently known to
1713work with Emacs 24 and 25.")
1714 (license license:gpl2+)))
1715
7f7b38af
VD
1716(define-public emacs-keyfreq
1717 (package
1718 (name "emacs-keyfreq")
1719 (version "20160516.716")
1720 (source
1721 (origin
1722 (method url-fetch)
1723 (uri (string-append "http://melpa.org/packages/keyfreq-"
1724 version ".el"))
1725 (sha256
1726 (base32
1727 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1728 (build-system emacs-build-system)
1729 (home-page "https://github.com/dacap/keyfreq")
1730 (synopsis "Track Emacs command frequencies")
1731 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1732a command.")
1733 (license license:gpl3+)))
1734
6aab6c27
RJ
1735(define-public emacs-olivetti
1736 (package
1737 (name "emacs-olivetti")
1738 (version "1.5.7")
1739 (source (origin
1740 (method url-fetch)
1741 (uri (string-append
1742 "https://stable.melpa.org/packages/olivetti-"
1743 version ".el"))
1744 (sha256
1745 (base32
1746 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1747 (build-system emacs-build-system)
1748 (home-page "https://github.com/rnkn/olivetti")
1749 (synopsis "Emacs minor mode for a nice writing environment")
1750 (description "This package provides an Emacs minor mode that puts writing
1751in the center.")
1752 (license license:gpl3+)))
1753
1075b437
DB
1754(define-public emacs-undo-tree
1755 (package
1756 (name "emacs-undo-tree")
77a7891b 1757 (version "0.6.6")
1075b437
DB
1758 (source (origin
1759 (method git-fetch)
1760 (uri (git-reference
1761 (url "http://dr-qubit.org/git/undo-tree.git")
08e1f38d 1762 (commit (string-append "release/" version))))
1075b437
DB
1763 (file-name (string-append name "-" version "-checkout"))
1764 (sha256
77a7891b 1765 (base32
1766 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1075b437
DB
1767 (build-system emacs-build-system)
1768 (home-page "http://www.dr-qubit.org/emacs.php")
1769 (synopsis "Treat undo history as a tree")
1770 (description "Tree-like interface to Emacs undo system, providing
1771graphical tree presentation of all previous states of buffer that
1772allows easily move between them.")
1773 (license license:gpl3+)))
1774
85777fe5
FB
1775(define-public emacs-s
1776 (package
1777 (name "emacs-s")
4e425584 1778 (version "1.12.0")
85777fe5
FB
1779 (source (origin
1780 (method url-fetch)
1781 (uri (string-append
1782 "https://github.com/magnars/s.el/archive/"
1783 version ".tar.gz"))
1784 (file-name (string-append name "-" version ".tar.gz"))
1785 (sha256
1786 (base32
4e425584 1787 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
85777fe5
FB
1788 (build-system emacs-build-system)
1789 (arguments
d1d41db6
MC
1790 `(#:tests? #t
1791 #:test-command '("./run-tests.sh")))
85777fe5 1792 (home-page "https://github.com/magnars/s.el")
a124bbd2 1793 (synopsis "Emacs string manipulation library")
85777fe5
FB
1794 (description "This package provides an Emacs library for manipulating
1795strings.")
1796 (license license:gpl3+)))
cf9ce01f 1797
070e1fe9
VD
1798(define-public emacs-symon
1799 (package
1800 (name "emacs-symon")
d71b758f 1801 (version "20160630")
070e1fe9
VD
1802 (source
1803 (origin
1804 (method url-fetch)
d71b758f
VD
1805 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1806 version ".tar.gz"))
1807 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1808 (sha256
1809 (base32
d71b758f 1810 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1811 (build-system emacs-build-system)
d71b758f 1812 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1813 (synopsis "Tiny graphical system monitor")
1814 (description
1815 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1816 (license license:gpl2+)))
1817
899bcad3 1818(define-public emacs-sx
582c122e
MC
1819 (let ((version "20180212")
1820 (revision "1")
1821 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1822 (package
1823 (name "emacs-sx")
1824 (version (git-version version revision commit))
1825 (source
1826 (origin
1827 (method git-fetch)
1828 (uri (git-reference
1829 (url "https://github.com/vermiculus/sx.el")
1830 (commit commit)))
1831 (file-name (git-file-name name version))
1832 (sha256
1833 (base32
1834 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1835 (build-system emacs-build-system)
1836 (propagated-inputs
1837 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1838 (home-page "https://github.com/vermiculus/sx.el")
1839 (synopsis "Emacs StackExchange client")
1840 (description
1841 "Emacs StackExchange client. Ask and answer questions on
899bcad3 1842Stack Overflow, Super User, and other StackExchange sites.")
582c122e 1843 (license license:gpl3+))))
899bcad3 1844
cf9ce01f
FB
1845(define-public emacs-f
1846 (package
1847 (name "emacs-f")
2b0ddaaa 1848 (version "0.19.0")
cf9ce01f
FB
1849 (source (origin
1850 (method url-fetch)
1851 (uri (string-append
1852 "https://github.com/rejeep/f.el/archive/v"
1853 version ".tar.gz"))
1854 (file-name (string-append name "-" version ".tar.gz"))
1855 (sha256
1856 (base32
2b0ddaaa 1857 "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
cf9ce01f
FB
1858 (build-system emacs-build-system)
1859 (propagated-inputs
1860 `(("emacs-s" ,emacs-s)
1861 ("emacs-dash" ,emacs-dash)))
7bf837fd 1862 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1863 (synopsis "Emacs API for working with files and directories")
1864 (description "This package provides an Emacs library for working with
1865files and directories.")
1866 (license license:gpl3+)))
48dbeef7 1867
0916dc52
CB
1868(define-public emacs-git-gutter
1869 (package
1870 (name "emacs-git-gutter")
1871 (version "0.90")
1872 (source (origin
1873 (method url-fetch)
1874 (uri (string-append
1875 "https://github.com/syohex/" name "/archive/"
1876 version ".tar.gz"))
1877 (file-name (string-append name "-" version ".tar.gz"))
1878 (sha256
1879 (base32
1880 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1881 (build-system emacs-build-system)
1882 (home-page "https://github.com/syohex/emacs-git-gutter")
1883 (synopsis "See and manage hunks of text in a version control system")
1884 (description
1885 "This package is an Emacs minor mode for displaying and interacting with
1886hunks of text managed in a version control system. Added modified and deleted
1887areas can be indicated with symbols on the edge of the buffer, and commands
1888can be used to move between and perform actions on these hunks.
1889
1890Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1891display and behaviour is easily customisable.")
1892 (license license:gpl3+)))
1893
0b35f11d
RW
1894(define-public emacs-git-timemachine
1895 (package
1896 (name "emacs-git-timemachine")
1897 (version "3.0")
1898 (source
1899 (origin
1900 (method url-fetch)
1901 (uri (string-append "https://github.com/pidu/git-timemachine/"
1902 "archive/" version ".tar.gz"))
1903 (file-name (string-append name "-" version ".tar.gz"))
1904 (sha256
1905 (base32
1906 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1907 (build-system emacs-build-system)
1908 (home-page "https://github.com/pidu/git-timemachine")
1909 (synopsis "Step through historic versions of Git-controlled files")
1910 (description "This package enables you to step through historic versions
1911of files under Git version control from within Emacs.")
1912 (license license:gpl3+)))
1913
26361de4 1914(define-public emacs-minitest
158943f2
CB
1915 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1916 (revision "1"))
1917 (package
1918 (name "emacs-minitest")
1919 (version (git-version "0.8.0" revision commit))
1920 (source (origin
1921 (method git-fetch)
1922 (uri (git-reference
1923 (url "https://github.com/arthurnn/minitest-emacs")
1924 (commit commit)))
1925 (file-name (git-file-name name commit))
1926 (sha256
1927 (base32
1928 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1929 (build-system emacs-build-system)
1930 (arguments
1931 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1932 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1933 (propagated-inputs
1934 `(("emacs-dash" ,emacs-dash)
1935 ("emacs-f" ,emacs-f)))
1936 (home-page "https://github.com/arthurnn/minitest-emacs")
1937 (synopsis "Emacs minitest mode")
1938 (description
1939 "The minitest mode provides commands to run the tests for the current
26361de4
CB
1940file or line, as well as rerunning the previous tests, or all the tests for a
1941project.
1942
1943This package also includes relevant snippets for yasnippet.")
158943f2 1944 (license license:expat))))
26361de4 1945
1c32830b
RW
1946(define-public emacs-el-mock
1947 (package
1948 (name "emacs-el-mock")
1949 (version "1.25.1")
1950 (source
1951 (origin
1952 (method url-fetch)
1953 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1954 "archive/v" version ".tar.gz"))
1955 (file-name (string-append name "-" version ".tar.gz"))
1956 (sha256
1957 (base32
1958 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1959 (build-system emacs-build-system)
7bf837fd 1960 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
1961 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1962 (description
1963 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1964syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1965Expectations, but it can be used in other contexts.")
1966 (license license:gpl3+)))
1967
0c5d837c
RW
1968(define-public emacs-espuds
1969 (package
1970 (name "emacs-espuds")
1971 (version "0.3.3")
1972 (source
1973 (origin
1974 (method url-fetch)
1975 (uri (string-append "https://github.com/ecukes/espuds/"
1976 "archive/v" version ".tar.gz"))
1977 (file-name (string-append name "-" version ".tar.gz"))
1978 (sha256
1979 (base32
1980 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1981 (build-system emacs-build-system)
1982 (propagated-inputs
1983 `(("emacs-s" ,emacs-s)
1984 ("emacs-dash" ,emacs-dash)
1985 ("emacs-f" ,emacs-f)))
7bf837fd 1986 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
1987 (synopsis "Common step definitions for Ecukes")
1988 (description "Espuds is a collection of the most commonly used step
1989definitions for testing with the Ecukes framework.")
1990 (license license:gpl3+)))
1991
bae8e59e
MC
1992(define-public emacs-spark
1993 (let ((version "20160503") ; no proper tag, use date of commit
1994 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
1995 (revision "1"))
1996 (package
1997 (name "emacs-spark")
1998 (version (git-version version revision commit))
1999 (source
2000 (origin
2001 (method git-fetch)
2002 (uri (git-reference
2003 (url "https://github.com/alvinfrancis/spark.git")
2004 (commit commit)))
2005 (file-name (git-file-name name version))
2006 (sha256
2007 (base32
2008 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2009 (build-system emacs-build-system)
2010 (home-page "https://github.com/alvinfrancis/spark")
2011 (synopsis "Sparkline generation library for Emacs Lisp")
2012 (description "@code{emacs-spark} is a sparkline generation library for
2013Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2014port of @code{cl-spark} to Emacs Lisp.")
2015 (license license:expat))))
2016
8bebe734
CB
2017(define-public emacs-es-mode
2018 (package
2019 (name "emacs-es-mode")
c4373a60 2020 (version "4.3.0")
8bebe734
CB
2021 (source (origin
2022 (method url-fetch)
2023 (uri (string-append
2024 "https://github.com/dakrone/es-mode/archive/"
2025 version ".tar.gz"))
2026 (file-name (string-append name "-" version ".tar.gz"))
2027 (sha256
2028 (base32
c4373a60 2029 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
8bebe734
CB
2030 (build-system emacs-build-system)
2031 (propagated-inputs
2032 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2033 ;; to be rendered incorrectly
a262ac68
MC
2034 `(("emacs-dash" ,emacs-dash)
2035 ("emacs-org" ,emacs-org)
2036 ("emacs-spark" ,emacs-spark)))
8bebe734
CB
2037 (home-page "https://github.com/dakrone/es-mode")
2038 (synopsis "Major mode for editing Elasticsearch queries")
2039 (description "@code{es-mode} includes highlighting, completion and
2040indentation support for Elasticsearch queries. Also supported are
2041@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2042be processed through @code{jq}, or in the case of aggregations, can be
2043rendered in to a table. In addition, there is an @code{es-command-center}
2044mode, which displays information about Elasticsearch clusters.")
2045 (license license:gpl3+)))
2046
d0e43782
RW
2047(define-public emacs-expand-region
2048 (package
2049 (name "emacs-expand-region")
61c71171 2050 (version "0.11.0")
d0e43782
RW
2051 (source
2052 (origin
2053 (method url-fetch)
2054 (uri (string-append "https://github.com/magnars/expand-region.el"
2055 "/archive/" version ".tar.gz"))
2056 (file-name (string-append name "-" version ".tar.gz"))
2057 (sha256
2058 (base32
61c71171 2059 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
2060 (build-system emacs-build-system)
2061 (home-page "https://github.com/magnars/expand-region.el")
2062 (synopsis "Increase selected region by semantic units")
2063 (description
2064 "Expand region increases the selected region by semantic units. Just
2065keep pressing the key until it selects what you want. There's also
2066@code{er/contract-region} if you expand too far.")
2067 (license license:gpl3+)))
2068
65568446
RW
2069(define-public emacs-fill-column-indicator
2070 (package
2071 (name "emacs-fill-column-indicator")
2072 (version "1.81")
2073 (source
2074 (origin
2075 (method url-fetch)
2076 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2077 "/archive/v" version ".tar.gz"))
2078 (file-name (string-append name "-" version ".tar.gz"))
2079 (sha256
2080 (base32
2081 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2082 (build-system emacs-build-system)
2083 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2084 (synopsis "Graphically indicate the fill column")
2085 (description
2086 "Fill-column-indicator graphically indicates the location of the fill
2087column by drawing a thin line down the length of the editing window.")
2088 (license license:gpl3+)))
2089
fbc60db8
MC
2090(define-public emacs-grep-a-lot
2091 (package
2092 (name "emacs-grep-a-lot")
2093 (version "1.0.7")
2094 (source (origin
2095 (method git-fetch)
2096 (uri (git-reference
2097 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2098 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2099 (file-name (string-append name "-" version "-checkout"))
2100 (sha256
2101 (base32
2102 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2103 (build-system emacs-build-system)
2104 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2105 (synopsis "Enables multiple grep buffers in Emacs")
2106 (description
2107 "This Emacs package allows managing multiple grep buffers.")
2108 (license license:gpl3+)))
2109
f450d3c5
CB
2110(define-public emacs-inf-ruby
2111 (package
2112 (name "emacs-inf-ruby")
2113 (version "2.5.1")
2114 (source
2115 (origin
2116 (method url-fetch)
2117 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2118 "archive/" version ".tar.gz"))
2119 (file-name (string-append name "-" version ".tar.gz"))
2120 (sha256
2121 (base32
2122 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2123 (build-system emacs-build-system)
2124 (home-page "https://github.com/nonsequitur/inf-ruby")
2125 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2126 (description
2127 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2128for easy interaction with a ruby subprocess. Features include support for
2129detecting specific uses of Ruby, e.g. when using rails, and using a
2130appropriate console.")
2131 (license license:gpl3+)))
2132
7b9769b0
RW
2133(define-public emacs-znc
2134 (package
2135 (name "emacs-znc")
2136 (version "0.0.2")
2137 (source
2138 (origin
2139 (method url-fetch)
2140 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2141 version ".el"))
2142 (sha256
2143 (base32
2144 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2145 (build-system emacs-build-system)
2146 (home-page "https://github.com/sshirokov/ZNC.el")
2147 (synopsis "Make ERC and ZNC get along better")
2148 (description
2149 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2150IRC bouncer with ERC.")
2151 (license license:expat)))
2152
1f9a7097
RW
2153(define-public emacs-shut-up
2154 (package
2155 (name "emacs-shut-up")
2156 (version "0.3.2")
2157 (source
2158 (origin
2159 (method url-fetch)
2160 (uri (string-append "https://github.com/cask/shut-up/"
2161 "archive/v" version ".tar.gz"))
2162 (file-name (string-append name "-" version ".tar.gz"))
2163 (sha256
2164 (base32
2165 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2166 (build-system emacs-build-system)
2167 (home-page "https://github.com/cask/shut-up")
2168 (synopsis "Silence Emacs")
2169 (description "This package silences most output of Emacs when running an
2170Emacs shell script.")
2171 (license license:expat)))
2172
dbe38a3a
RW
2173(define-public emacs-undercover
2174 (package
2175 (name "emacs-undercover")
2176 (version "0.6.0")
2177 (source
2178 (origin
2179 (method url-fetch)
2180 (uri (string-append "https://github.com/sviridov/undercover.el/"
2181 "archive/v" version ".tar.gz"))
2182 (file-name (string-append name "-" version ".tar.gz"))
2183 (sha256
2184 (base32
2185 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2186 (build-system emacs-build-system)
2187 (propagated-inputs
2188 `(("emacs-dash" ,emacs-dash)
2189 ("emacs-shut-up" ,emacs-shut-up)))
2190 (home-page "https://github.com/sviridov/undercover.el")
2191 (synopsis "Test coverage library for Emacs Lisp")
2192 (description
2193 "Undercover is a test coverage library for software written in Emacs
2194Lisp.")
2195 (license license:expat)))
2196
07046e5f
RW
2197(define-public emacs-paren-face
2198 (package
2199 (name "emacs-paren-face")
2200 (version "1.0.0")
2201 (source
2202 (origin
2203 (method url-fetch)
2204 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2205 version ".tar.gz"))
2206 (file-name (string-append name "-" version ".tar.gz"))
2207 (sha256
2208 (base32
2209 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2210 (build-system emacs-build-system)
7bf837fd 2211 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
2212 (synopsis "Face for parentheses in lisp modes")
2213 (description
2214 "This library defines a face named @code{parenthesis} used just for
2215parentheses. The intended purpose of this face is to make parentheses less
2216visible in Lisp code by dimming them. Lispers probably don't need to be
2217constantly made aware of the existence of the parentheses. Dimming them might
2218be even more useful for people new to lisp who have not yet learned to
2219subconsciously blend out the parentheses.")
2220 (license license:gpl3+)))
2221
a46e3c0d
RW
2222(define-public emacs-page-break-lines
2223 (package
2224 (name "emacs-page-break-lines")
2225 (version "0.11")
2226 (source
2227 (origin
2228 (method url-fetch)
2229 (uri (string-append "https://github.com/purcell/page-break-lines/"
2230 "archive/" version ".tar.gz"))
2231 (file-name (string-append name "-" version ".tar.gz"))
2232 (sha256
2233 (base32
2234 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2235 (build-system emacs-build-system)
2236 (home-page "https://github.com/purcell/page-break-lines")
2237 (synopsis "Display page breaks as tidy horizontal lines")
2238 (description
2239 "This library provides a global mode which displays form feed characters
2240as horizontal rules.")
2241 (license license:gpl3+)))
2242
1f8a951b
RW
2243(define-public emacs-simple-httpd
2244 (package
2245 (name "emacs-simple-httpd")
2246 (version "1.4.6")
2247 (source
2248 (origin
2249 (method url-fetch)
2250 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2251 "archive/" version ".tar.gz"))
2252 (file-name (string-append name "-" version ".tar.gz"))
2253 (sha256
2254 (base32
2255 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2256 (build-system emacs-build-system)
2257 (home-page "https://github.com/skeeto/emacs-http-server")
2258 (synopsis "HTTP server in pure Emacs Lisp")
2259 (description
2260 "This package provides a simple HTTP server written in Emacs Lisp to
2261serve files and directory listings.")
2262 (license license:unlicense)))
2263
6c04acaa
RW
2264(define-public emacs-skewer-mode
2265 (package
2266 (name "emacs-skewer-mode")
2267 (version "1.6.2")
2268 (source
2269 (origin
2270 (method url-fetch)
2271 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2272 version ".tar.gz"))
2273 (file-name (string-append name "-" version ".tar.gz"))
2274 (sha256
2275 (base32
2276 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2277 (build-system emacs-build-system)
2278 (propagated-inputs
2279 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2280 ("emacs-js2-mode" ,emacs-js2-mode)))
46f5ae0b 2281 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6c04acaa
RW
2282 (home-page "https://github.com/skeeto/skewer-mode")
2283 (synopsis "Live web development in Emacs")
2284 (description
2285 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2286a web browser. Expressions are sent on-the-fly from an editing buffer to be
2287evaluated in the browser, just like Emacs does with an inferior Lisp process
2288in Lisp modes.")
2289 (license license:unlicense)))
2290
cdba3a84
MC
2291(define-public emacs-string-inflection
2292 (package
2293 (name "emacs-string-inflection")
2294 (version "1.0.6")
2295 (source (origin
2296 (method git-fetch)
2297 (uri (git-reference
2298 (url "https://github.com/akicho8/string-inflection")
2299 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2300 (file-name (string-append name "-" version "-checkout"))
2301 (sha256
2302 (base32
2303 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2304 (build-system emacs-build-system)
2305 (native-inputs
2306 `(("ert-runner" ,ert-runner)))
2307 (arguments
d1d41db6
MC
2308 `(#:tests? #t
2309 #:test-command '("ert-runner")))
cdba3a84
MC
2310 (home-page "https://github.com/akicho8/string-inflection")
2311 (synopsis "Convert symbol names between different naming conventions")
2312 (description
2313 "This Emacs package provides convenient methods for manipulating the
2314naming style of a symbol. It supports different naming conventions such as:
2315
2316@enumerate
2317@item camel case
2318@item Pascal case
2319@item all upper case
2320@item lower case separated by underscore
2321@item etc...
2322@end enumerate\n")
2323 (license license:gpl2+)))
2324
ce9701fb
RW
2325(define-public emacs-stripe-buffer
2326 (package
2327 (name "emacs-stripe-buffer")
2328 (version "0.2.5")
2329 (source
2330 (origin
2331 (method url-fetch)
2332 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2333 "archive/" version ".tar.gz"))
2334 (file-name (string-append name "-" version ".tar.gz"))
2335 (sha256
2336 (base32
2337 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2338 (build-system emacs-build-system)
2339 (home-page "https://github.com/sabof/stripe-buffer/")
2340 (synopsis "Add stripes to list buffers")
2341 (description
2342 "This Emacs package adds faces to add stripes to list buffers and org
2343tables.")
2344 (license license:gpl2+)))
2345
8d810163
RW
2346(define-public emacs-rich-minority
2347 (package
2348 (name "emacs-rich-minority")
2349 (version "1.0.1")
2350 (source
2351 (origin
2352 (method url-fetch)
2353 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2354 "archive/" version ".tar.gz"))
2355 (file-name (string-append name "-" version ".tar.gz"))
2356 (sha256
2357 (base32
2358 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2359 (build-system emacs-build-system)
2360 (home-page "https://github.com/Malabarba/rich-minority")
2361 (synopsis "Clean-up and beautify the list of minor modes")
2362 (description
2363 "This Emacs package hides and/or highlights minor modes in the
2364mode-line.")
2365 (license license:gpl2+)))
2366
8733fc91
CB
2367(define-public emacs-robe
2368 (package
2369 (name "emacs-robe")
2370 (version "0.8.1")
2371 (source
2372 (origin
2373 (method url-fetch)
2374 (uri (string-append "https://github.com/dgutov/robe/"
2375 "archive/" version ".tar.gz"))
2376 (file-name (string-append name "-" version ".tar.gz"))
2377 (sha256
2378 (base32
2379 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2380 (build-system emacs-build-system)
376015c3
CB
2381 (arguments
2382 '(#:include (cons "^lib\\/" %default-include)))
8733fc91
CB
2383 (propagated-inputs
2384 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2385 (home-page "https://github.com/dgutov/robe")
2386 (synopsis "Ruby code assistance tool for Emacs")
2387 (description
2388 "Robe can provide information on loaded classes and modules in Ruby code,
2389as well as where methods are defined. This allows the user to jump to method
2390definitions, modules and classes, display method documentation and provide
2391method and constant name completion.")
2392 (license license:gpl3+)))
2393
81808194
CB
2394(define-public emacs-rspec
2395 (package
2396 (name "emacs-rspec")
2397 (version "1.11")
2398 (source
2399 (origin
2400 (method url-fetch)
2401 (uri (string-append "https://github.com/pezra/rspec-mode/"
2402 "archive/v" version ".tar.gz"))
2403 (file-name (string-append name "-" version ".tar.gz"))
2404 (sha256
2405 (base32
2406 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2407 (build-system emacs-build-system)
2408 (home-page "https://github.com/pezra/rspec-mode")
2409 (synopsis "Provides a rspec mode for working with RSpec")
2410 (description
2411 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2412verify the spec associated with the current buffer, or entire project, as well
2413as moving between the spec files, and coresponding code files.
2414
2415Also included are keybindings for spec files and Dired buffers, as well as
2416snippets for yasnippet.")
2417 (license license:gpl3+)))
2418
b33f913d
RW
2419(define-public emacs-smart-mode-line
2420 (package
2421 (name "emacs-smart-mode-line")
2422 (version "2.10.1")
2423 (source
2424 (origin
2425 (method url-fetch)
2426 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2427 "archive/" version ".tar.gz"))
2428 (file-name (string-append name "-" version ".tar.gz"))
2429 (sha256
2430 (base32
2431 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2432 (build-system emacs-build-system)
2433 (propagated-inputs
2434 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 2435 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2436 (synopsis "Color-coded smart mode-line")
b33f913d
RW
2437 (description
2438 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2439read from small to large monitors by using colors, a prefix feature, and smart
2440truncation.")
2441 (license license:gpl2+)))
2442
69b498a1 2443(define-public emacs-sr-speedbar
33ca12f3
MC
2444 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2445 (revision "0"))
2446 (package
2447 (name "emacs-sr-speedbar")
2448 (version (git-version "20161025" revision commit))
2449 (source
2450 (origin
2451 (method git-fetch)
2452 (uri (git-reference
2453 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2454 (commit commit)))
2455 (file-name (git-file-name name version))
2456 (sha256
2457 (base32
2458 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2459 (build-system emacs-build-system)
2460 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2461 (synopsis "Same frame Emacs @code{speedbar}")
2462 (description
2463 "This Emacs package allows you to show @code{M-x speedbar} in the
69b498a1
OP
2464same frame (in an extra window). You can customize the initial width of
2465the speedbar window.")
33ca12f3 2466 (license license:gpl3+))))
69b498a1 2467
3bcb304e
RW
2468(define-public emacs-shell-switcher
2469 (package
2470 (name "emacs-shell-switcher")
2471 (version "1.0.1")
2472 (source
2473 (origin
2474 (method url-fetch)
2475 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2476 "/archive/v" version ".tar.gz"))
2477 (file-name (string-append name "-" version ".tar.gz"))
2478 (sha256
2479 (base32
2480 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2481 (build-system emacs-build-system)
2482 (home-page "https://github.com/DamienCassou/shell-switcher")
2483 (synopsis "Provide fast switching between shell buffers")
2484 (description
2485 "This package provides commands to quickly switch between shell buffers.")
2486 (license license:gpl3+)))
2487
48dbeef7
FB
2488(define-public emacs-ob-ipython
2489 (package
2490 (name "emacs-ob-ipython")
2491 (version "20150704.8807064693")
2492 (source (origin
2493 (method git-fetch)
2494 (uri (git-reference
698bd297 2495 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7 2496 (url "https://github.com/gregsexton/ob-ipython.git")))
eb6b471b 2497 (file-name (string-append name "-" version "-checkout"))
48dbeef7
FB
2498 (sha256
2499 (base32
2500 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2501 (build-system emacs-build-system)
2502 (propagated-inputs
2503 `(("emacs-f" ,emacs-f)))
2504 (home-page "http://www.gregsexton.org")
2505 (synopsis "Org-Babel functions for IPython evaluation")
2506 (description "This package adds support to Org-Babel for evaluating Python
2507source code using IPython.")
2508 (license license:gpl3+)))
6fd66b6c
LC
2509
2510(define-public emacs-debbugs
2511 (package
2512 (name "emacs-debbugs")
8180a406 2513 (version "0.15")
6fd66b6c
LC
2514 (source (origin
2515 (method url-fetch)
f32ffa04 2516 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2517 version ".tar"))
2518 (sha256
2519 (base32
8180a406 2520 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
6fd66b6c 2521 (build-system emacs-build-system)
91762db6 2522 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2523 (propagated-inputs
2524 `(("emacs-async" ,emacs-async)))
f32ffa04 2525 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2526 (synopsis "Access the Debbugs bug tracker in Emacs")
2527 (description
2528 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2529Tracker} from within Emacs.
2530
2531For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2532and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2533prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2534@code{M-x debbugs-org} and related commands.
2535
2536A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2537Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2538 (license license:gpl3+)))
3ffe36f5 2539
1fcd7e6c
MC
2540(define-public emacs-ert-expectations
2541 (package
2542 (name "emacs-ert-expectations")
2543 (version "0.2")
2544 (source
2545 (origin
2546 (method url-fetch)
2547 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2548 (sha256
2549 (base32
2550 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2551 (build-system emacs-build-system)
2552 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2553 (synopsis "Simple unit test framework for Emacs Lisp")
2554 (description "@code{emacs-ert-expectations} is a simple unit test
2555framework for Emacs Lisp to be used with @code{ert}.")
2556 (license license:gpl3+)))
2557
3ffe36f5
LC
2558(define-public emacs-deferred
2559 (package
2560 (name "emacs-deferred")
4dd0f8c0 2561 (version "0.5.1")
3ffe36f5
LC
2562 (home-page "https://github.com/kiwanami/emacs-deferred")
2563 (source (origin
2564 (method git-fetch)
2565 (uri (git-reference
2566 (url home-page)
2567 (commit (string-append "v" version))))
2568 (sha256
2569 (base32
4dd0f8c0 2570 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
3ffe36f5
LC
2571 (file-name (string-append name "-" version))))
2572 (build-system emacs-build-system)
652741cf
MC
2573 (arguments
2574 `(#:phases
2575 (modify-phases %standard-phases
90ec79fb
AI
2576 (add-after 'unpack 'set-shell
2577 ;; Setting the SHELL environment variable is required for the tests
2578 ;; to find sh.
2579 (lambda _
2580 (setenv "SHELL" (which "sh"))
2581 #t))
652741cf
MC
2582 (add-before 'check 'fix-makefile
2583 (lambda _
2584 (substitute* "Makefile"
2585 (("\\$\\(CASK\\) exec ") ""))
2586 #t)))
2587 #:tests? #t
90ec79fb 2588 #:test-command '("make" "test")))
652741cf
MC
2589 (native-inputs
2590 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2591 ("emacs-undercover" ,emacs-undercover)
2592 ("ert-runner" ,ert-runner)))
3ffe36f5
LC
2593 (synopsis "Simple asynchronous functions for Emacs Lisp")
2594 (description
2595 "The @code{deferred.el} library provides support for asynchronous tasks.
2596The API is almost the same as that of
2597@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2598for asynchronous tasks.")
2599 (license license:gpl3+)))
d001bb5a
LC
2600
2601(define-public butler
2602 (package
2603 (name "emacs-butler")
2604 (version "0.2.4")
2605 (home-page "https://github.com/AshtonKem/Butler")
2606 (source (origin
2607 (method git-fetch)
2608 (uri (git-reference
2609 (url home-page)
2610 (commit version)))
2611 (sha256
2612 (base32
2613 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2614 (file-name (string-append name "-" version))))
2615 (build-system emacs-build-system)
2616 (propagated-inputs
2617 `(("emacs-deferred" ,emacs-deferred)))
2618 (synopsis "Emacs client for Jenkins")
2619 (description
2620 "Butler provides an interface to connect to Jenkins continuous
2621integration servers. Users can specify a list of server in the
2622@code{butler-server-list} variable and then use @code{M-x butler-status} to
2623view the build status of those servers' build jobs, and possibly to trigger
2624build jobs.")
2625 (license license:gpl3+)))
2d1db448 2626
d1dbeddd
RW
2627(define-public emacs-company
2628 (package
2629 (name "emacs-company")
1262a2ab 2630 (version "0.9.3")
d1dbeddd
RW
2631 (source
2632 (origin
2633 (method url-fetch)
2634 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2635 version ".tar.gz"))
2636 (file-name (string-append name "-" version ".tar.gz"))
2637 (sha256
2638 (base32
1262a2ab 2639 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2640 (build-system emacs-build-system)
4e644ab8
AI
2641 (arguments
2642 `(#:phases
2643 (modify-phases %standard-phases
d1d41db6 2644 (add-before 'check 'fix-bin-dir
4e644ab8
AI
2645 (lambda _
2646 ;; The company-files-candidates-normal-root test looks
2647 ;; for the /bin directory, but the build environment has
2648 ;; no /bin directory. Modify the test to look for the
2649 ;; /tmp directory.
2650 (substitute* "test/files-tests.el"
2651 (("/bin/") "/tmp/"))
d1d41db6
MC
2652 #t)))
2653 #:tests? #t
2654 #:test-command '("make" "test-batch")))
d1dbeddd
RW
2655 (home-page "http://company-mode.github.io/")
2656 (synopsis "Modular text completion framework")
2657 (description
2658 "Company is a modular completion mechanism. Modules for retrieving
2659completion candidates are called back-ends, modules for displaying them are
2660front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2661These are distributed in separate files and can be used individually.")
2662 (license license:gpl3+)))
2663
016590a9
OP
2664(define-public emacs-company-quickhelp
2665 (package
2666 (name "emacs-company-quickhelp")
2667 (version "2.3.0")
2668 (source
2669 (origin
2670 (method url-fetch)
2671 (uri (string-append
2672 "https://github.com/expez/company-quickhelp/archive/"
2673 version ".tar.gz"))
2674 (file-name (string-append name "-" version ".tar.gz"))
2675 (sha256
2676 (base32
2677 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2678 (build-system emacs-build-system)
2679 (propagated-inputs
2680 `(("emacs-pos-tip" ,emacs-pos-tip)
2681 ("emacs-company" ,emacs-company)))
2682 (home-page "https://github.com/expez/company-quickhelp")
2683 (synopsis "Popup documentation for completion candidates")
2684 (description "@code{company-quickhelp} shows documentation for the
2685completion candidate when using the Company text completion framework.")
2686 (license license:gpl3+)))
2687
7c438099
RW
2688(define-public emacs-multiple-cursors
2689 (package
2690 (name "emacs-multiple-cursors")
2691 (version "1.4.0")
2692 (source
2693 (origin
2694 (method url-fetch)
2695 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2696 "archive/" version ".tar.gz"))
2697 (file-name (string-append name "-" version ".tar.gz"))
2698 (sha256
2699 (base32
2700 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2701 (build-system emacs-build-system)
2702 (home-page "https://github.com/magnars/multiple-cursors.el")
2703 (synopsis "Multiple cursors for Emacs")
2704 (description
2705 "This package adds support to Emacs for editing text with multiple
2706simultaneous cursors.")
2707 (license license:gpl3+)))
2708
2d1db448
LC
2709(define-public typo
2710 (package
2711 (name "emacs-typo")
2712 (version "1.1")
2713 (home-page "https://github.com/jorgenschaefer/typoel")
2714 (source (origin
2715 (method git-fetch)
2716 (uri (git-reference
2717 (url home-page)
2718 (commit (string-append "v" version))))
2719 (sha256
2720 (base32
2721 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2722 (file-name (string-append name "-" version))))
2723 (build-system emacs-build-system)
2724 (synopsis "Minor mode for typographic editing")
2725 (description
2726 "This package provides two Emacs modes, @code{typo-mode} and
2727@code{typo-global-mode}. These modes automatically insert Unicode characters
2728for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2729automatically inserts a Unicode opening or closing quotation mark, depending
2730on context.")
2731 (license license:gpl3+)))
e037a09f
FB
2732
2733(define-public emacs-scheme-complete
2734 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2735 (package
2736 (name "emacs-scheme-complete")
2737 (version (string-append "20151223." (string-take commit 8)))
2738 (source
2739 (origin
2740 (file-name (string-append name "-" version))
2741 (method git-fetch)
2742 (uri (git-reference
2743 (url "https://github.com/ashinn/scheme-complete.git")
2744 (commit commit)))
2745 (sha256
2746 (base32
2747 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2748 (patches
fc1adab1 2749 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2750 (build-system emacs-build-system)
2751 (home-page "https://github.com/ashinn/scheme-complete")
2752 (synopsis "Smart tab completion for Scheme in Emacs")
2753 (description
2754 "This file provides a single function, @code{scheme-smart-complete},
2755which you can use for intelligent, context-sensitive completion for any Scheme
2756implementation in Emacs. To use it just load this file and bind that function
2757to a key in your preferred mode.")
2758 (license license:public-domain))))
58a7dc13 2759
75408149
MC
2760(define-public emacs-scel
2761 (let ((version "20170629")
2762 (revision "1")
2763 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2764 (package
2765 (name "emacs-scel")
2766 (version (git-version version revision commit))
2767 (source
2768 (origin
2769 (method git-fetch)
2770 (uri (git-reference
2771 (url "https://github.com/supercollider/scel.git")
2772 (commit commit)))
2773 (file-name (string-append name "-" version "-checkout"))
2774 (sha256
2775 (base32
2776 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2777 (build-system emacs-build-system)
2778 (arguments
2779 `(#:modules ((guix build emacs-build-system)
2780 ((guix build cmake-build-system) #:prefix cmake:)
2781 (guix build utils))
2782 #:imported-modules (,@%emacs-build-system-modules
2783 (guix build cmake-build-system))
2784 #:phases
2785 (modify-phases %standard-phases
2786 (add-after 'unpack 'configure
2787 (lambda* (#:key outputs #:allow-other-keys)
2788 (substitute* "el/CMakeLists.txt"
2789 (("share/emacs/site-lisp/SuperCollider")
2790 (string-append
2791 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2792 ((assoc-ref cmake:%standard-phases 'configure)
2793 #:outputs outputs
2794 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2795 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2796 (lambda _
2797 (setenv "EMACSLOADPATH"
2798 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2799 #t))
2800 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2801 (inputs
2802 `(("supercollider" ,supercollider)))
2803 (native-inputs
2804 `(("cmake" ,cmake)))
2805 (home-page "https://github.com/supercollider/scel")
2806 (synopsis "SuperCollider Emacs interface")
2807 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2808SuperCollider is a platform for audio synthesis and algorithmic composition.")
2809 (license license:gpl2+))))
2810
58a7dc13
FB
2811(define-public emacs-mit-scheme-doc
2812 (package
2813 (name "emacs-mit-scheme-doc")
2814 (version "20140203")
2815 (source
2816 (origin
2817 (modules '((guix build utils)))
2818 (snippet
2819 ;; keep only file of interest
2820 '(begin
2821 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2822 (install-file "6.945-config/mit-scheme-doc.el" ".")
58a7dc13
FB
2823 (delete-file-recursively "6.945-config")))
2824 (file-name (string-append name "-" version ".tar.bz2"))
2825 (method url-fetch)
2826 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2827 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2828 (sha256
2829 (base32
2830 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2831 (build-system emacs-build-system)
2832 (inputs `(("mit-scheme" ,mit-scheme)))
2833 (arguments
2834 `(#:phases
2835 (modify-phases %standard-phases
2836 (add-after 'unpack 'configure-doc
2837 (lambda* (#:key inputs #:allow-other-keys)
2838 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2839 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2840 "mit-scheme-"
2841 ,(package-version mit-scheme))))
2842 (substitute* "mit-scheme-doc.el"
2843 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2844 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2845 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2846 (synopsis "MIT-Scheme documentation lookup for Emacs")
2847 (description
2848 "This package provides a set of Emacs functions to search definitions of
2849identifiers in the MIT-Scheme documentation.")
2850 (license license:gpl2+)))
e5045f30 2851
e5045f30
FB
2852(define-public emacs-constants
2853 (package
2854 (name "emacs-constants")
f99f3f24 2855 (version "2.6")
a9e41d2f 2856 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2857 (source
2858 (origin
37dbfc50 2859 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2860 (method url-fetch)
2861 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2862 "/archive/v" version ".tar.gz"))
e5045f30
FB
2863 (sha256
2864 (base32
f99f3f24 2865 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2866 (build-system emacs-build-system)
e5045f30
FB
2867 (synopsis "Enter definition of constants into an Emacs buffer")
2868 (description
2869 "This package provides functions for inserting the definition of natural
2870constants and units into an Emacs buffer.")
2871 (license license:gpl2+)))
85960693 2872
e203221f
RW
2873(define-public emacs-tagedit
2874 (package
2875 (name "emacs-tagedit")
2876 (version "1.4.0")
2877 (source
2878 (origin
2879 (method url-fetch)
2880 (uri (string-append "https://github.com/magnars/tagedit/"
2881 "archive/" version ".tar.gz"))
2882 (file-name (string-append name "-" version ".tar.gz"))
2883 (sha256
2884 (base32
2885 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2886 (build-system emacs-build-system)
2887 (propagated-inputs
2888 `(("emacs-s" ,emacs-s)
2889 ("emacs-dash" ,emacs-dash)))
2890 (home-page "https://github.com/magnars/tagedit")
2891 (synopsis "Some paredit-like features for html-mode")
2892 (description
2893 "This package provides a collection of paredit-like functions for editing
2894in @code{html-mode}.")
2895 (license license:gpl3+)))
2896
85960693
FB
2897(define-public emacs-slime
2898 (package
2899 (name "emacs-slime")
d2f93e61 2900 (version "2.20")
85960693
FB
2901 (source
2902 (origin
2903 (file-name (string-append name "-" version ".tar.gz"))
2904 (method url-fetch)
2905 (uri (string-append
2906 "https://github.com/slime/slime/archive/v"
2907 version ".tar.gz"))
2908 (sha256
2909 (base32
d2f93e61 2910 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
85960693
FB
2911 (build-system emacs-build-system)
2912 (native-inputs
2913 `(("texinfo" ,texinfo)))
2914 (arguments
e8cefe11
AI
2915 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2916 #:exclude '("^slime-tests.el" "^contrib/test/"
2917 "^contrib/Makefile$" "^contrib/README.md$")
2918 #:phases
85960693
FB
2919 (modify-phases %standard-phases
2920 (add-before 'install 'configure
2921 (lambda* _
2922 (emacs-substitute-variables "slime.el"
2923 ("inferior-lisp-program" "sbcl"))
2924 #t))
2925 (add-before 'install 'install-doc
2926 (lambda* (#:key outputs #:allow-other-keys)
2927 (let* ((out (assoc-ref outputs "out"))
2928 (info-dir (string-append out "/share/info"))
2929 (doc-dir (string-append out "/share/doc/"
2930 ,name "-" ,version))
2931 (doc-files '("doc/slime-refcard.pdf"
2932 "README.md" "NEWS" "PROBLEMS"
2933 "CONTRIBUTING.md")))
2934 (with-directory-excursion "doc"
2935 (substitute* "Makefile"
2936 (("infodir=/usr/local/info")
2937 (string-append "infodir=" info-dir)))
2938 (system* "make" "html/index.html")
2939 (system* "make" "slime.info")
2940 (install-file "slime.info" info-dir)
2941 (copy-recursively "html" (string-append doc-dir "/html")))
2942 (for-each (lambda (f)
2943 (install-file f doc-dir)
2944 (delete-file f))
2945 doc-files)
2946 (delete-file-recursively "doc")
2947 #t))))))
2948 (home-page "https://github.com/slime/slime")
2949 (synopsis "Superior Lisp Interaction Mode for Emacs")
2950 (description
2951 "SLIME extends Emacs with support for interactive programming in
db574f71 2952Common Lisp. The features are centered around @command{slime-mode},
2953an Emacs minor mode that complements the standard @command{lisp-mode}.
2954While lisp-mode supports editing Lisp source files, @command{slime-mode}
2955adds support for interacting with a running Common Lisp process
2956for compilation, debugging, documentation lookup, and so on.")
85960693 2957 (license license:gpl2+)))
e11d14fe 2958
2959(define-public emacs-popup
2960 (package
2961 (name "emacs-popup")
2962 (version "0.5.3")
2963 (source (origin
2964 (method url-fetch)
2965 (uri (string-append
2966 "https://github.com/auto-complete/popup-el/archive/v"
2967 version ".tar.gz"))
2968 (file-name (string-append name "-" version ".tar.gz"))
2969 (sha256
2970 (base32
2971 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2972 (build-system emacs-build-system)
e11d14fe 2973 (home-page "https://github.com/auto-complete/popup-el")
2974 (synopsis "Visual Popup User Interface for Emacs")
2975 (description
2976 "Popup.el is a visual popup user interface library for Emacs.
2977This provides a basic API and common UI widgets such as popup tooltips
2978and popup menus.")
2979 (license license:gpl3+)))
48766ea8
RW
2980
2981(define-public emacs-god-mode
2982 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2983 (revision "1"))
2984 (package
2985 (name "emacs-god-mode")
2986 (version (string-append "20151005.925."
2987 revision "-" (string-take commit 9)))
2988 (source
2989 (origin
2990 (method git-fetch)
2991 (uri (git-reference
2992 (url "https://github.com/chrisdone/god-mode.git")
2993 (commit commit)))
2994 (file-name (string-append name "-" version "-checkout"))
2995 (sha256
2996 (base32
2997 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2998 (build-system emacs-build-system)
2999 (home-page "https://github.com/chrisdone/god-mode")
3000 (synopsis "Minor mode for entering commands without modifier keys")
3001 (description
3002 "This package provides a global minor mode for entering Emacs commands
3003without modifier keys. It's similar to Vim's separation of commands and
3004insertion mode. When enabled all keys are implicitly prefixed with
3005@samp{C-} (among other helpful shortcuts).")
3006 (license license:gpl3+))))
4670f70a 3007
8fc559dc 3008(define-public emacs-jinja2-mode
3009 (package
3010 (name "emacs-jinja2-mode")
3011 (version "0.2")
3012 (source
3013 (origin
3014 (method url-fetch)
3015 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3016 "archive/v" version ".tar.gz"))
3017 (file-name (string-append name "-" version ".tar.gz"))
3018 (sha256
3019 (base32
3020 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3021 (build-system emacs-build-system)
3022 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3023 (synopsis "Major mode for jinja2")
3024 (description
3025 "Emacs major mode for jinja2 with: syntax highlighting,
3026sgml/html integration, and indentation (working with sgml).")
3027 (license license:gpl3+)))
3028
4670f70a
CM
3029(define-public emacs-rfcview
3030 (package
3031 (name "emacs-rfcview")
3032 (version "0.13")
3033 (home-page "http://www.loveshack.ukfsn.org/emacs")
3034 (source (origin
02736daa 3035 (method url-fetch)
4670f70a
CM
3036 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3037 (sha256
3038 (base32
3039 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3040 (build-system emacs-build-system)
4670f70a
CM
3041 (synopsis "Prettify Request for Comments (RFC) documents")
3042 (description "The Internet Engineering Task Force (IETF) and the Internet
3043Society (ISOC) publish various Internet-related protocols and specifications
3044as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3045documents. RFCs and STDs are published in a simple text form. This package
3046provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3047read these documents in Emacs. It prettifies the text and adds
3048hyperlinks/menus for easier navigation. It also provides functions for
3049browsing the index of RFC documents and fetching them from remote servers or
3050local directories.")
3051 (license license:gpl3+)))
3052
9e9c71eb
CM
3053(define-public emacs-ffap-rfc-space
3054 (package
3055 (name "emacs-ffap-rfc-space")
3056 (version "12")
3057 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3058 (source (origin
02736daa 3059 (method url-fetch)
9e9c71eb
CM
3060 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3061 (sha256
3062 (base32
3063 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3064 (build-system emacs-build-system)
9e9c71eb
CM
3065 (synopsis "Make ffap recognize an RFC with a space before its number")
3066 (description "The Internet Engineering Task Force (IETF) and the
3067Internet Society (ISOC) publish various Internet-related protocols and
3068specifications as \"Request for Comments\" (RFC) documents. The
3069built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3070recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3071and load the appropriate RFC from a remote server. However, it fails
3072to recognize a name like \"RFC 1234\". This package enhances ffap so
3073that it correctly finds RFCs even when a space appears before the
3074number.")
3075 (license license:gpl3+)))
9576cc72 3076
db1a4960
RW
3077(define-public emacs-org-bullets
3078 (package
3079 (name "emacs-org-bullets")
3080 (version "0.2.4")
3081 (source
3082 (origin
3083 (method url-fetch)
3084 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3085 version ".tar.gz"))
3086 (file-name (string-append name "-" version ".tar.gz"))
3087 (sha256
3088 (base32
3089 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3090 (build-system emacs-build-system)
3091 (home-page "https://github.com/sabof/org-bullets")
3092 (synopsis "Show bullets in org-mode as UTF-8 characters")
3093 (description
3094 "This package provides an Emacs minor mode causing bullets in
3095@code{org-mode} to be rendered as UTF-8 characters.")
3096 (license license:gpl3+)))
b1679379
OP
3097
3098(define-public emacs-org-pomodoro
3099 (package
3100 (name "emacs-org-pomodoro")
3101 (version "2.1.0")
3102 (source
3103 (origin
3104 (method url-fetch)
3105 (uri (string-append
3106 "https://github.com/lolownia/org-pomodoro/archive/"
3107 version ".tar.gz"))
3108 (file-name (string-append name "-" version ".tar.gz"))
3109 (sha256
3110 (base32
3111 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3112 (build-system emacs-build-system)
3113 (propagated-inputs
3114 `(("emacs-alert" ,emacs-alert)))
3115 (home-page "https://github.com/lolownia/org-pomodoro")
3116 (synopsis "Pomodoro technique for org-mode")
3117 (description "@code{emacs-org-pomodoro} adds very basic support for
3118Pomodoro technique in Emacs org-mode.
3119
3120Run @code{M-x org-pomodoro} for the task at point or select one of the
3121last tasks that you clocked time for. Each clocked-in pomodoro starts
3122a timer of 25 minutes and after each pomodoro a break timer of 5
3123minutes is started automatically. Every 4 breaks a long break is
3124started with 20 minutes. All values are customizable.")
3125 (license license:gpl3+)))
db1a4960 3126
ed8bc028
RJ
3127(define-public emacs-org-trello
3128 (package
3129 (name "emacs-org-trello")
bf86533b 3130 (version "0.8.0")
ed8bc028
RJ
3131 (source (origin
3132 (method url-fetch)
3133 (uri (string-append
3134 "https://github.com/org-trello/org-trello/archive/"
3135 version ".tar.gz"))
3136 (file-name (string-append name "-" version ".tar.gz"))
3137 (sha256
3138 (base32
bf86533b 3139 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
ed8bc028
RJ
3140 (build-system emacs-build-system)
3141 (propagated-inputs
8865d476
MC
3142 `(("emacs-dash" ,emacs-dash)
3143 ("emacs-deferred" ,emacs-deferred)
3144 ("emacs-f" ,emacs-f)
3145 ("emacs-helm" ,emacs-helm)
ed8bc028 3146 ("emacs-request" ,emacs-request)
ed8bc028
RJ
3147 ("emacs-s" ,emacs-s)))
3148 (home-page "https://org-trello.github.io")
3149 (synopsis "Emacs minor mode for interacting with Trello")
3150 (description "This package provides an Emacs minor mode to extend
3151@code{org-mode} with Trello abilities. Trello is an online project
3152organizer.")
3153 (license license:gpl3+)))
3154
9576cc72
AP
3155(define-public emacs-zenburn-theme
3156 (package
3157 (name "emacs-zenburn-theme")
07716c68 3158 (version "2.5")
9576cc72
AP
3159 (source (origin
3160 (method url-fetch)
3161 (uri (string-append
3162 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3163 version ".tar.gz"))
3164 (file-name (string-append name "-" version ".tar.gz"))
3165 (sha256
3166 (base32
07716c68 3167 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 3168 (build-system emacs-build-system)
7bf837fd 3169 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
3170 (synopsis "Low contrast color theme for Emacs")
3171 (description
3172 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3173It is built on top of the custom theme support in Emacs 24 or later.")
3174 (license license:gpl3+)))
3175
012c8b35
RW
3176(define-public emacs-solarized-theme
3177 (package
3178 (name "emacs-solarized-theme")
3179 (version "1.2.2")
3180 (source (origin
3181 (method url-fetch)
3182 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3183 "archive/v" version ".tar.gz"))
3184 (file-name (string-append name "-" version ".tar.gz"))
3185 (sha256
3186 (base32
3187 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3188 (build-system emacs-build-system)
3189 (propagated-inputs
090bdb9e 3190 `(("emacs-dash" ,emacs-dash)))
7bf837fd 3191 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
3192 (synopsis "Port of the Solarized theme for Emacs")
3193 (description
3194 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3195package provides a light and a dark variant.")
3196 (license license:gpl3+)))
3197
e7761186
AV
3198(define-public emacs-ahungry-theme
3199 (package
3200 (name "emacs-ahungry-theme")
e5f95406 3201 (version "1.10.0")
e7761186
AV
3202 (source
3203 (origin (method url-fetch)
f32ffa04 3204 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
3205 version ".tar"))
3206 (sha256
3207 (base32
e5f95406 3208 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
e7761186
AV
3209 (build-system emacs-build-system)
3210 (home-page "https://github.com/ahungry/color-theme-ahungry")
3211 (synopsis "Ahungry color theme for Emacs")
3212 (description "Ahungry theme for Emacs provides bright and bold colors.
3213If you load it from a terminal, you will be able to make use of the
3214transparent background. If you load it from a GUI, it will default to a
3215dark background.")
3216 (license license:gpl3+)))
3217
ab966b8f 3218(define-public emacs-2048-game
3219 (package
3220 (name "emacs-2048-game")
3221 (version "20151026.1233")
3222 (source
3223 (origin
3224 (method url-fetch)
3225 (uri (string-append "https://melpa.org/packages/2048-game-"
3226 version ".el"))
3227 (sha256
3228 (base32
3229 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3230 (build-system emacs-build-system)
3231 (home-page "https://bitbucket.org/zck/2048.el")
3232 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3233 (description
3234 "This program is an implementation of 2048 for Emacs.
3235The goal of this game is to create a tile with value 2048. The size of the
3236board and goal value can be customized.")
3237 (license license:gpl3+)))
3238
4da9beab 3239(define-public emacs-base16-theme
3240 (package
3241 (name "emacs-base16-theme")
3242 (version "2.1")
3243 (source
3244 (origin
3245 (method url-fetch)
3246 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3247 version ".tar"))
3248 (sha256
3249 (base32
3250 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3251 (build-system emacs-build-system)
3252 (home-page "https://github.com/belak/base16-emacs")
3253 (synopsis "Base16 color themes for Emacs")
3254 (description
3255 "Base16 provides carefully chosen syntax highlighting and a default set
3256of sixteen colors suitable for a wide range of applications. Base16 is not a
3257single theme but a set of guidelines with numerous implementations.")
3258 (license license:expat)))
3259
5c447e28
AP
3260(define-public emacs-smartparens
3261 (package
3262 (name "emacs-smartparens")
308b8f79 3263 (version "1.11.0")
5c447e28
AP
3264 (source (origin
3265 (method url-fetch)
3266 (uri (string-append
3267 "https://github.com/Fuco1/smartparens/archive/"
3268 version ".tar.gz"))
3269 (file-name (string-append name "-" version ".tar.gz"))
3270 (sha256
3271 (base32
308b8f79 3272 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
5c447e28 3273 (build-system emacs-build-system)
db95d8ca
MC
3274 (propagated-inputs
3275 `(("emacs-dash" ,emacs-dash)
3276 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5c447e28
AP
3277 (home-page "https://github.com/Fuco1/smartparens")
3278 (synopsis "Paredit-like insertion, wrapping and navigation with user
3279defined pairs")
3280 (description
3281 "Smartparens is a minor mode for Emacs that deals with parens pairs
3282and tries to be smart about it. It started as a unification effort to
3283combine functionality of several existing packages in a single,
3284compatible and extensible way to deal with parentheses, delimiters, tags
3285and the like. Some of these packages include autopair, textmate,
3286wrap-region, electric-pair-mode, paredit and others. With the basic
3287features found in other packages it also brings many improvements as
3288well as completely new features.")
3289 (license license:gpl3+)))
8eeb301d 3290
425d66f7
OP
3291(define-public emacs-highlight-symbol
3292 (package
3293 (name "emacs-highlight-symbol")
3294 (version "1.3")
3295 (source (origin
3296 (method url-fetch)
3297 (uri (string-append
3298 "https://github.com/nschum/highlight-symbol.el/archive/"
3299 version ".tar.gz"))
3300 (file-name (string-append name "-" version ".tar.gz"))
3301 (sha256
3302 (base32
3303 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3304 (build-system emacs-build-system)
3305 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3306 (synopsis "Automatic and manual symbol highlighting for Emacs")
3307 (description
3308 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3309point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3310the symbol at point highlighted.
3311
3312The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3313@code{highlight-symbol-next-in-defun} and
3314@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3315of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3316bindings @code{M-p} and @code{M-p} for navigation. When
3317@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3318regardless of @code{highlight-symbol-idle-delay}.
3319
3320@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3321 (license license:gpl2+)))
3322
8f82641a
RJ
3323(define-public emacs-hl-todo
3324 (package
3325 (name "emacs-hl-todo")
f61aaaf3 3326 (version "1.8.0")
8f82641a
RJ
3327 (source (origin
3328 (method url-fetch)
3329 (uri (string-append
3330 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3331 version "/hl-todo.el"))
0e7c4089 3332 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
3333 (sha256
3334 (base32
f61aaaf3 3335 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
8f82641a
RJ
3336 (build-system emacs-build-system)
3337 (home-page "https://github.com/tarsius/hl-todo")
3338 (synopsis "Emacs mode to highlight TODO and similar keywords")
3339 (description
3340 "This package provides an Emacs mode to highlight TODO and similar
3341keywords in comments and strings. This package also provides commands for
3342moving to the next or previous keyword and to invoke @code{occur} with a
3343regexp that matches all known keywords.")
3344 (license license:gpl3+)))
3345
480f7350
RW
3346(define-public emacs-perspective
3347 (package
3348 (name "emacs-perspective")
3349 (version "1.12")
3350 (source
3351 (origin
3352 (method url-fetch)
3353 (uri (string-append "https://github.com/nex3/perspective-el/"
3354 "archive/" version ".tar.gz"))
3355 (file-name (string-append name "-" version ".tar.gz"))
3356 (sha256
3357 (base32
3358 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3359 (build-system emacs-build-system)
7bf837fd 3360 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
3361 (synopsis "Switch between named \"perspectives\"")
3362 (description
3363 "This package provides tagged workspaces in Emacs, similar to workspaces in
3364windows managers such as Awesome and XMonad. @code{perspective.el} provides
3365multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3366perspective is composed of a window configuration and a set of buffers.
3367Switching to a perspective activates its window configuration, and when in a
3368perspective only its buffers are available by default.")
3369 ;; This package is released under the same license as Emacs (GPLv3+) or
3370 ;; the Expat license.
3371 (license license:gpl3+)))
3372
439ad15d
MC
3373(define-public emacs-test-simple
3374 (package
3375 (name "emacs-test-simple")
3376 (version "1.3.0")
3377 (source
3378 (origin
3379 (method url-fetch)
3380 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3381 version ".el"))
3382 (sha256
3383 (base32
3384 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3385 (build-system emacs-build-system)
3386 (home-page "https://github.com/rocky/emacs-test-simple")
3387 (synopsis "Simple unit test framework for Emacs Lisp")
3388 (description
3389 "Test Simple is a simple unit test framework for Emacs Lisp. It
3390alleviates the need for context macros, enclosing specifications or required
3391test tags. It supports both interactive and non-interactive use.")
3392 (license license:gpl3+)))
3393
fa1a17b7
MC
3394(define-public emacs-load-relative
3395 (package
3396 (name "emacs-load-relative")
3397 (version "1.3")
3398 (source
3399 (origin
3400 (method url-fetch)
3401 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3402 version ".el"))
3403 (sha256
3404 (base32
3405 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3406 (build-system emacs-build-system)
3407 (home-page "http://github.com/rocky/emacs-load-relative")
3408 (synopsis "Emacs Lisp relative file loading related functions")
3409 (description
3410 "Provides functions which facilitate writing multi-file Emacs packages
3411and running from the source tree without having to \"install\" code or fiddle
3412with @{load-path}.
3413
3414The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3415another (presumably currently running) Emacs Lisp file.")
3416 (license license:gpl3+)))
3417
fd38bfe2
MC
3418(define-public emacs-loc-changes
3419 (package
3420 (name "emacs-loc-changes")
3421 (version "1.2")
3422 (source
3423 (origin
3424 (method url-fetch)
3425 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3426 version ".el"))
3427 (sha256
3428 (base32
3429 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3430 (build-system emacs-build-system)
3431 (home-page "https://github.com/rocky/emacs-loc-changes")
3432 (synopsis "Keeps track of positions even after buffer changes")
3433 (description
3434 "This Emacs package provides a mean to track important buffer positions
3435after buffer changes.")
3436 (license license:gpl3+)))
3437
b1968d86
MC
3438(define-public emacs-realgud
3439 (package
3440 (name "emacs-realgud")
5368e67c 3441 (version "1.4.5")
b1968d86
MC
3442 (source
3443 (origin
3444 (method url-fetch)
3445 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3446 version ".tar"))
3447 (sha256
3448 (base32
5368e67c 3449 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
b1968d86
MC
3450 (build-system emacs-build-system)
3451 (arguments
3452 `(#:tests? #t
3453 #:phases
3454 (modify-phases %standard-phases
aea388cf 3455 (add-after 'set-emacs-load-path 'fix-autogen-script
b1968d86
MC
3456 (lambda _
3457 (substitute* "autogen.sh"
3458 (("./configure") "sh configure"))))
3459 (add-after 'fix-autogen-script 'autogen
3460 (lambda _
3461 (setenv "CONFIG_SHELL" "sh")
3462 (invoke "sh" "autogen.sh")))
3463 (add-after 'fix-autogen-script 'set-home
3464 (lambda _
3465 (setenv "HOME" (getenv "TMPDIR"))))
3466 (add-before 'patch-el-files 'remove-realgud-pkg.el
3467 (lambda _
3468 ;; XXX: This file is auto-generated at some point and causes
3469 ;; substitute* to crash during the `patch-el-files' phase with:
3470 ;; ERROR: In procedure stat: No such file or directory:
3471 ;; "./realgud-pkg.el"
3472 (delete-file "./realgud-pkg.el")
3473 ;; FIXME: `patch-el-files' crashes on this file with error:
3474 ;; unable to locate "bashdb".
3475 (delete-file "./test/test-regexp-bashdb.el"))))
3476 #:include (cons* ".*\\.el$" %default-include)))
3477 (native-inputs
3478 `(("autoconf" ,autoconf)
3479 ("automake" ,automake)
3480 ("emacs-test-simple" ,emacs-test-simple)))
3481 (propagated-inputs
3482 `(("emacs-load-relative" ,emacs-load-relative)
3483 ("emacs-loc-changes" ,emacs-loc-changes)))
3484 (home-page "https://github.com/realgud/realgud/")
3485 (synopsis
3486 "Modular front-end for interacting with external debuggers")
3487 (description
3488 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3489with external debuggers. It integrates various debuggers such as gdb, pdb,
3490ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3491sources. Unlike GUD, it also supports running multiple debug sessions in
3492parallel.")
3493 (license license:gpl3+)))
3494
36e5d103
RJ
3495(define-public emacs-request
3496 (package
3497 (name "emacs-request")
5a545aab 3498 (version "0.3.0")
36e5d103 3499 (source (origin
5a545aab
RW
3500 (method git-fetch)
3501 (uri (git-reference
3502 (url "https://github.com/tkf/emacs-request.git")
3503 (commit (string-append "v" version))))
3504 (file-name (string-append name "-" version "-checkout"))
36e5d103 3505 (sha256
5a545aab
RW
3506 (base32
3507 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
36e5d103 3508 (build-system emacs-build-system)
4e782fff
MC
3509 (propagated-inputs
3510 `(("emacs-deferred" ,emacs-deferred)))
36e5d103
RJ
3511 (home-page "https://github.com/tkf/emacs-request")
3512 (synopsis "Package for speaking HTTP in Emacs Lisp")
3513 (description "This package provides a HTTP request library with multiple
3514backends. It supports url.el which is shipped with Emacs and the curl command
3515line program.")
3516 (license license:gpl3+)))
3517
f1b61e26 3518(define-public emacs-rudel
3519 (package
3520 (name "emacs-rudel")
3521 (version "0.3.1")
3522 (source
3523 (origin
3524 (method url-fetch)
3525 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3526 version ".tar"))
3527 (sha256
3528 (base32
3529 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3530 (build-system emacs-build-system)
3531 (home-page "http://rudel.sourceforge.net/")
3532 (synopsis "Collaborative editing framework")
3533 (description
3534 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3535is to share buffers with other users in order to edit the contents of those
3536buffers collaboratively. Rudel supports multiple backends to enable
3537communication with other collaborative editors using different protocols,
3538though currently Obby (for use with the Gobby editor) is the only
3539fully-functional one.")
3540 (license license:gpl3+)))
3541
79b3d3ea
RW
3542(define-public emacs-hydra
3543 (package
3544 (name "emacs-hydra")
9932dabf 3545 (version "0.14.0")
79b3d3ea
RW
3546 (source
3547 (origin
3548 (method url-fetch)
3549 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3550 version ".tar.gz"))
3551 (file-name (string-append name "-" version ".tar.gz"))
3552 (sha256
3553 (base32
9932dabf 3554 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
79b3d3ea
RW
3555 (build-system emacs-build-system)
3556 (home-page "https://github.com/abo-abo/hydra")
3557 (synopsis "Make Emacs bindings that stick around")
3558 (description
3559 "This package can be used to tie related commands into a family of short
3560bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3561the prefixed binding), all the heads can be called in succession with only a
3562short extension. Any binding that isn't the Hydra's head vanquishes the
3563Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3564serve its original purpose, calling the command assigned to it. This makes
3565the Hydra very seamless; it's like a minor mode that disables itself
3566automatically.")
3567 (license license:gpl3+)))
3568
12db29ba
RW
3569(define-public emacs-ivy
3570 (package
3571 (name "emacs-ivy")
a8374234 3572 (version "0.10.0")
12db29ba
RW
3573 (source
3574 (origin
a8374234
RW
3575 (method git-fetch)
3576 (uri (git-reference
3577 (url "https://github.com/abo-abo/swiper.git")
3578 (commit version)))
3579 (file-name (string-append name "-" version "-checkout"))
12db29ba
RW
3580 (sha256
3581 (base32
a8374234 3582 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
12db29ba 3583 (build-system emacs-build-system)
5f66a0a7
RW
3584 (arguments
3585 `(#:phases
3586 (modify-phases %standard-phases
3587 (add-after 'install 'install-doc
3588 (lambda* (#:key outputs #:allow-other-keys)
3589 (let* ((out (assoc-ref outputs "out"))
3590 (info (string-append out "/share/info")))
3591 (with-directory-excursion "doc"
3592 (unless (zero? (system* "makeinfo" "ivy.texi"))
3593 (error "makeinfo failed"))
3594 (install-file "ivy.info" info))))))))
12db29ba
RW
3595 (propagated-inputs
3596 `(("emacs-hydra" ,emacs-hydra)))
5f66a0a7
RW
3597 (native-inputs
3598 `(("texinfo" ,texinfo)))
12db29ba
RW
3599 (home-page "http://oremacs.com/swiper/")
3600 (synopsis "Incremental vertical completion for Emacs")
3601 (description
3602 "This package provides @code{ivy-read} as an alternative to
3603@code{completing-read} and similar functions. No attempt is made to determine
3604the best candidate. Instead, the user can navigate candidates with
3605@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3606splitting the input text by spaces and re-building it into a regular
3607expression.")
3608 (license license:gpl3+)))
3609
5edc24ec
RW
3610(define-public emacs-avy
3611 (package
3612 (name "emacs-avy")
3613 (version "0.4.0")
3614 (source
3615 (origin
3616 (method url-fetch)
3617 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3618 version ".tar.gz"))
3619 (file-name (string-append name "-" version ".tar.gz"))
3620 (sha256
3621 (base32
3622 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3623 (build-system emacs-build-system)
3624 (home-page "https://github.com/abo-abo/avy")
3625 (synopsis "Tree-based completion for Emacs")
3626 (description
3627 "This package provides a generic completion method based on building a
3628balanced decision tree with each candidate being a leaf. To traverse the tree
3629from the root to a desired leaf, typically a sequence of @code{read-key} can
3630be used.
3631
3632In order for @code{read-key} to make sense, the tree needs to be visualized
3633appropriately, with a character at each branch node. So this completion
3634method works only for things that you can see on your screen, all at once,
3635such as the positions of characters, words, line beginnings, links, or
3636windows.")
3637 (license license:gpl3+)))
3638
93dba17c
RW
3639(define-public emacs-ace-window
3640 (package
3641 (name "emacs-ace-window")
3642 (version "0.9.0")
3643 (source
3644 (origin
3645 (method url-fetch)
3646 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3647 version ".tar.gz"))
3648 (file-name (string-append name "-" version ".tar.gz"))
3649 (sha256
3650 (base32
3651 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3652 (build-system emacs-build-system)
3653 (propagated-inputs
3654 `(("emacs-avy" ,emacs-avy)))
3655 (home-page "https://github.com/abo-abo/ace-window")
3656 (synopsis "Quickly switch windows in Emacs")
3657 (description
3658 "@code{ace-window} is meant to replace @code{other-window}.
3659In fact, when there are only two windows present, @code{other-window} is
3660called. If there are more, each window will have its first character
3661highlighted. Pressing that character will switch to that window.")
3662 (license license:gpl3+)))
3663
e1918ce4
RW
3664(define-public emacs-iedit
3665 (package
3666 (name "emacs-iedit")
f9f77a9e 3667 (version "0.9.9.9")
e1918ce4
RW
3668 (source
3669 (origin
3670 (method url-fetch)
3671 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3672 version ".tar.gz"))
3673 (file-name (string-append name "-" version ".tar.gz"))
3674 (sha256
3675 (base32
f9f77a9e 3676 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
3677 (build-system emacs-build-system)
3678 (home-page "http://www.emacswiki.org/emacs/Iedit")
3679 (synopsis "Edit multiple regions in the same way simultaneously")
3680 (description
3681 "This package is an Emacs minor mode and allows you to edit one
3682occurrence of some text in a buffer (possibly narrowed) or region, and
3683simultaneously have other occurrences edited in the same way.
3684
3685You can also use Iedit mode as a quick way to temporarily show only the buffer
3686lines that match the current text being edited. This gives you the effect of
3687a temporary @code{keep-lines} or @code{occur}.")
3688 (license license:gpl3+)))
3689
30cf7070
CL
3690(define-public emacs-zoutline
3691 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3692 (revision "0"))
3693 (package
3694 (name "emacs-zoutline")
3695 (version (git-version "0.1" revision commit))
3696 (home-page "https://github.com/abo-abo/zoutline")
3697 (source (origin
3698 (method git-fetch)
3699 (uri (git-reference (url home-page) (commit commit)))
3700 (sha256
3701 (base32
3702 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3703 (file-name (git-file-name name version))))
3704 (build-system emacs-build-system)
3705 (synopsis "Simple outline library")
3706 (description
3707 "This library provides helpers for outlines. Outlines allow users to
3708navigate code in a tree-like fashion.")
3709 (license license:gpl3+))))
3710
a5338dd4 3711(define-public emacs-lispy
e8360eb8
CL
3712 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3713 ;; since.
e5d57c1c 3714 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
e8360eb8
CL
3715 (revision "0"))
3716 (package
3717 (name "emacs-lispy")
3718 (version (git-version "0.26.0" revision commit))
3719 (home-page "https://github.com/abo-abo/lispy")
3720 (source (origin
3721 (method git-fetch)
3722 (uri (git-reference (url home-page) (commit commit)))
3723 (sha256
3724 (base32
e5d57c1c 3725 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
e8360eb8
CL
3726 (file-name (git-file-name name version))))
3727 (build-system emacs-build-system)
3728 (propagated-inputs
3729 `(("emacs-ace-window" ,emacs-ace-window)
3730 ("emacs-iedit" ,emacs-iedit)
3731 ("emacs-ivy" ,emacs-ivy)
3732 ("emacs-hydra" ,emacs-hydra)
3733 ("emacs-zoutline" ,emacs-zoutline)))
3734 (synopsis "Modal S-expression editing")
3735 (description
3736 "Due to the structure of Lisp syntax it's very rare for the programmer
3737to want to insert characters right before \"(\" or right after \")\". Thus
a5338dd4
RW
3738unprefixed printable characters can be used to call commands when the point is
3739at one of these special locations. Lispy provides unprefixed keybindings for
3740S-expression editing when point is at the beginning or end of an
3741S-expression.")
e8360eb8 3742 (license license:gpl3+))))
a5338dd4 3743
28ca6b35
CL
3744(define-public emacs-lispyville
3745 ;; Later versions need a more recent Evil, with an evil-define-key*
3746 ;; supporting nil for the state.
3747 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
3748 (revision "0"))
3749 (package
3750 (name "emacs-lispyville")
3751 (version (git-version "0.1" revision commit))
3752 (home-page "https://github.com/noctuid/lispyville")
3753 (source (origin
3754 (method git-fetch)
3755 (uri (git-reference (url home-page) (commit commit)))
3756 (sha256
3757 (base32
3758 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
3759 (file-name (git-file-name name version))))
3760 (propagated-inputs
3761 `(("emacs-evil" ,emacs-evil)
3762 ("emacs-lispy" ,emacs-lispy)))
3763 (build-system emacs-build-system)
3764 (synopsis "Minor mode for integrating Evil with lispy")
3765 (description
3766 "LispyVille's main purpose is to provide a Lisp editing environment
3767suited towards Evil users. It can serve as a minimal layer on top of lispy
3768for better integration with Evil, but it does not require the use of lispy’s
3769keybinding style. The provided commands allow for editing Lisp in normal
3770state and will work even without lispy being enabled.")
3771 (license license:gpl3+))))
3772
8eeb301d
AP
3773(define-public emacs-clojure-mode
3774 (package
3775 (name "emacs-clojure-mode")
2fa6f63b 3776 (version "5.6.1")
8eeb301d
AP
3777 (source (origin
3778 (method url-fetch)
3779 (uri (string-append
3780 "https://github.com/clojure-emacs/clojure-mode/archive/"
3781 version ".tar.gz"))
3782 (file-name (string-append name "-" version ".tar.gz"))
3783 (sha256
3784 (base32
2fa6f63b 3785 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
8eeb301d 3786 (build-system emacs-build-system)
92d9cfef
AI
3787 (native-inputs
3788 `(("emacs-dash" ,emacs-dash)
3789 ("emacs-s" ,emacs-s)
3790 ("ert-runner" ,ert-runner)))
3791 (arguments
d1d41db6
MC
3792 `(#:tests? #t
3793 #:test-command '("ert-runner")))
7bf837fd 3794 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
3795 (synopsis "Major mode for Clojure code")
3796 (description
3797 "This Emacs package provides font-lock, indentation, navigation and basic
3798refactoring for the @uref{http://clojure.org, Clojure programming language}.
3799It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3800 (license license:gpl3+)))
d345491a
AP
3801
3802(define-public emacs-epl
3803 (package
3804 (name "emacs-epl")
3805 (version "0.8")
3806 (source (origin
3807 (method url-fetch)
3808 (uri (string-append
3809 "https://github.com/cask/epl/archive/"
3810 version ".tar.gz"))
5a6f7a68 3811 (file-name (string-append name "-" version ".tar.gz"))
d345491a
AP
3812 (sha256
3813 (base32
3814 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3815 (build-system emacs-build-system)
7bf837fd 3816 (home-page "https://github.com/cask/epl")
d345491a
AP
3817 (synopsis "Emacs Package Library")
3818 (description
3819 "A package management library for Emacs, based on @code{package.el}.
3820
3821The purpose of this library is to wrap all the quirks and hassle of
3822@code{package.el} into a sane API.")
3823 (license license:gpl3+)))
ad6c4bc4
AP
3824
3825(define-public emacs-queue
3826 (package
3827 (name "emacs-queue")
5f51f39e 3828 (version "0.2")
ad6c4bc4 3829 (source (origin
02736daa 3830 (method url-fetch)
f32ffa04 3831 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
3832 version ".el"))
3833 (sha256
3834 (base32
5f51f39e 3835 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
ad6c4bc4
AP
3836 (build-system emacs-build-system)
3837 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3838 (synopsis "Queue data structure for Emacs")
3839 (description
3840 "This Emacs library provides queue data structure. These queues can be
3841used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3842stack, i.e. elements can be added to the front or back of the queue, and can
3843be removed from the front. This type of data structure is sometimes called an
3844\"output-restricted deque\".")
3845 (license license:gpl3+)))
32abfcf4
AP
3846
3847(define-public emacs-pkg-info
3848 (package
3849 (name "emacs-pkg-info")
3850 (version "0.6")
3851 (source (origin
3852 (method url-fetch)
3853 (uri (string-append
3854 "https://github.com/lunaryorn/pkg-info.el/archive/"
3855 version ".tar.gz"))
3856 (file-name (string-append name "-" version ".tar.gz"))
3857 (sha256
3858 (base32
3859 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3860 (build-system emacs-build-system)
3861 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3862 (home-page "https://github.com/lunaryorn/pkg-info.el")
3863 (synopsis "Information about Emacs packages")
3864 (description
3865 "This library extracts information from the installed Emacs packages.")
3866 (license license:gpl3+)))
565bccc5
AP
3867
3868(define-public emacs-spinner
3869 (package
3870 (name "emacs-spinner")
cd4d96b8 3871 (version "1.7.3")
565bccc5 3872 (source (origin
02736daa 3873 (method url-fetch)
f32ffa04 3874 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
3875 version ".el"))
3876 (sha256
3877 (base32
cd4d96b8 3878 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
3879 (build-system emacs-build-system)
3880 (home-page "https://github.com/Malabarba/spinner.el")
3881 (synopsis "Emacs mode-line spinner for operations in progress")
3882 (description
3883 "This Emacs package adds spinners and progress-bars to the mode-line for
3884ongoing operations.")
3885 (license license:gpl3+)))
62a45cb6 3886
fd2d17cd
RJ
3887(define-public emacs-sparql-mode
3888 (package
3889 (name "emacs-sparql-mode")
3890 (version "2.0.1")
3891 (source (origin
3892 (method url-fetch)
3893 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3894 "v" version ".tar.gz"))
3895 (file-name (string-append name "-" version ".tar.gz"))
3896 (sha256
3897 (base32
3898 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3899 (build-system emacs-build-system)
3900 (home-page "https://github.com/ljos/sparql-mode")
3901 (synopsis "SPARQL mode for Emacs")
3902 (description "This package provides a major mode for Emacs that provides
3903syntax highlighting for SPARQL. It also provides a way to execute queries
3904against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3905possible to query other endpoints like DBPedia.")
3906 (license license:gpl3+)))
3907
6ede256f
DT
3908(define-public emacs-better-defaults
3909 (package
3910 (name "emacs-better-defaults")
3911 (version "0.1.3")
3912 (source
3913 (origin
3914 (method url-fetch)
3915 (uri (string-append "https://github.com/technomancy/better-defaults"
3916 "/archive/" version ".tar.gz"))
13384842 3917 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
3918 (sha256
3919 (base32
3920 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3921 (build-system emacs-build-system)
3922 (home-page "https://github.com/technomancy/better-defaults")
3923 (synopsis "Better defaults for Emacs")
3924 (description
3925 "Better defaults attempts to address the most obvious deficiencies of the
3926Emacs default configuration in uncontroversial ways that nearly everyone can
3927agree upon.")
3928 (license license:gpl3+)))
c5c08f1b 3929
7034791a
RJ
3930(define-public emacs-eprime
3931 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3932 (package
3933 (name "emacs-eprime")
3934 (version (string-append "20140513-" (string-take commit 7)))
3935 (source (origin
3936 (method url-fetch)
3937 (uri (string-append "https://raw.githubusercontent.com"
3938 "/AndrewHynes/eprime-mode/"
3939 commit "/eprime-mode.el"))
3940 (file-name (string-append "eprime-" version ".el"))
3941 (sha256
3942 (base32
3943 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3944 (build-system emacs-build-system)
3945 (home-page "https://github.com/AndrewHynes/eprime-mode")
3946 (synopsis "E-prime checking mode for Emacs")
3947 (description "This package provides an E-prime checking mode for Emacs
3948that highlights non-conforming text. The subset of the English language called
3949E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3950 (license license:gpl3+))))
3951
db29e598
KM
3952(define-public emacs-julia-mode
3953 ;; XXX: Upstream version remained stuck at 0.3. See
3954 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
3955 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
3956 (revision "1"))
3957 (package
3958 (name "emacs-julia-mode")
3959 (version (string-append "0.3-" revision "." (string-take commit 8)))
3960 (source
3961 (origin
3962 (method git-fetch)
3963 (uri (git-reference
3964 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
3965 (commit commit)))
3966 (file-name (string-append name "-" version "-checkout"))
3967 (sha256
3968 (base32
3969 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
3970 (build-system emacs-build-system)
3971 (arguments
d1d41db6
MC
3972 `(#:tests? #t
3973 #:test-command '("emacs" "--batch"
3974 "-l" "julia-mode-tests.el"
3975 "-f" "ert-run-tests-batch-and-exit")))
db29e598
KM
3976 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
3977 (synopsis "Major mode for Julia")
3978 (description "This Emacs package provides a mode for the Julia
3979programming language.")
3980 (license license:expat))))
3981
41184943
RJ
3982(define-public emacs-ess
3983 (package
3984 (name "emacs-ess")
a209907e 3985 (version "16.10")
41184943
RJ
3986 (source (origin
3987 (method url-fetch)
3988 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
3989 version ".tgz"))
3990 (sha256
3991 (base32
a209907e
KM
3992 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
3993 (modules '((guix build utils)))
3994 (snippet
3995 '(begin
3996 ;; Stop ESS from trying to bundle an external julia-mode.el.
3997 (substitute* "lisp/Makefile"
3998 (("^\tjulia-mode.elc\\\\\n") "")
3999 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
4000 "all: $(ELC) ess-custom.el"))))))
41184943
RJ
4001 (build-system gnu-build-system)
4002 (arguments
eaff063a 4003 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
a209907e 4004 `(#:make-flags (list (string-append "PREFIX=" %output)
eaff063a
RJ
4005 (string-append "ETCDIR=" %output "/"
4006 ,base-directory "/etc")
4007 (string-append "LISPDIR=" %output "/"
4008 ,base-directory))
4009 #:phases
4010 (modify-phases %standard-phases
4011 (delete 'configure)
4012 (add-before 'build 'more-shebang-patching
4013 (lambda* (#:key inputs #:allow-other-keys)
4014 (substitute* "Makeconf"
4015 (("SHELL = /bin/sh")
4016 (string-append "SHELL = " (which "sh"))))))
4017 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
4018 ;; them in HOME, so it needs to be writeable.
4019 (add-before 'build 'set-HOME
a209907e
KM
4020 (lambda _ (setenv "HOME" "/tmp") #t))
4021 (replace 'check
4022 (lambda _
4023 (zero? (system* "make" "test"))))))))
41184943
RJ
4024 (inputs
4025 `(("emacs" ,emacs-minimal)
2d7c4ae3 4026 ("r-minimal" ,r-minimal)))
41184943
RJ
4027 (native-inputs
4028 `(("perl" ,perl)
4029 ("texinfo" ,texinfo)
63096366
RW
4030 ("texlive" ,(texlive-union (list texlive-latex-natbib
4031 texlive-latex-seminar
4032 texlive-latex-hyperref
4033 texlive-tex-texinfo)))))
d062957a 4034 (home-page "https://ess.r-project.org/")
41184943
RJ
4035 (synopsis "Emacs mode for statistical analysis programs")
4036 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4037Emacs. It is designed to support editing of scripts and interaction with
4038various statistical analysis programs such as R and OpenBUGS.")
4039 (license license:gpl2+)))
4040
c5c08f1b
DT
4041(define-public emacs-smex
4042 (package
4043 (name "emacs-smex")
4044 (version "3.0")
4045 (source (origin
4046 (method url-fetch)
4047 (uri (string-append "https://raw.githubusercontent.com"
4048 "/nonsequitur/smex/" version "/smex.el"))
4049 (file-name (string-append "smex-" version ".el"))
4050 (sha256
4051 (base32
4052 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4053 (build-system emacs-build-system)
7bf837fd 4054 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
4055 (synopsis "M-x interface with Ido-style fuzzy matching")
4056 (description
4057 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4058convenient interface to your recently and most frequently used commands. And
4059to all the other commands, too.")
4060 (license license:gpl3+)))
3e5be84b
DT
4061
4062(define-public emacs-js2-mode
4063 (package
4064 (name "emacs-js2-mode")
4065 (version "20150909")
4066 (source (origin
4067 (method url-fetch)
4068 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4069 version ".tar.gz"))
4070 (file-name (string-append name "-" version ".tar.gz"))
4071 (sha256
4072 (base32
4073 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4074 (build-system emacs-build-system)
4075 (home-page "https://github.com/mooz/js2-mode/")
4076 (synopsis "Improved JavaScript editing mode for Emacs")
4077 (description
4078 "Js2-mode provides a JavaScript major mode for Emacs that is more
4079advanced than the built-in javascript-mode. Features include accurate syntax
4080highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4081errors and strict-mode warnings, smart line-wrapping within comments and
4082strings, and code folding.")
4083 (license license:gpl3+)))
b78b6e80
DT
4084
4085(define-public emacs-markdown-mode
4086 (package
4087 (name "emacs-markdown-mode")
2175a427 4088 (version "2.3")
b78b6e80
DT
4089 (source (origin
4090 (method url-fetch)
4091 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4092 "/markdown-mode/v" version
4093 "/markdown-mode.el"))
4094 (file-name (string-append "markdown-mode-" version ".el"))
4095 (sha256
4096 (base32
2175a427 4097 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
b78b6e80
DT
4098 (build-system emacs-build-system)
4099 (home-page "http://jblevins.org/projects/markdown-mode/")
4100 (synopsis "Emacs Major mode for Markdown files")
4101 (description
4102 "Markdown-mode is a major mode for editing Markdown-formatted text files
4103in Emacs.")
4104 (license license:gpl3+)))
a2670dde 4105
659f790b
OP
4106(define-public emacs-edit-indirect
4107 (package
4108 (name "emacs-edit-indirect")
4109 (version "0.1.4")
4110 (source
4111 (origin
4112 (method url-fetch)
4113 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4114 version ".tar.gz"))
4115 (file-name (string-append name "-" version ".tar.gz"))
4116 (sha256
4117 (base32
4118 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4119 (build-system emacs-build-system)
4120 (home-page "https://github.com/Fanael/edit-indirect")
4121 (synopsis "Edit regions in separate buffers")
4122 (description "This package allows you to edit regions in separate buffers,
4123like @code{org-edit-src-code} but for arbitrary regions.")
4124 (license license:gpl3+)))
4125
a2670dde
DT
4126(define-public emacs-projectile
4127 (package
4128 (name "emacs-projectile")
6461c44c 4129 (version "0.14.0")
a2670dde
DT
4130 (source (origin
4131 (method url-fetch)
4132 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4133 "/projectile/v" version "/projectile.el"))
4134 (file-name (string-append "projectile-" version ".el"))
4135 (sha256
4136 (base32
6461c44c 4137 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
4138 (build-system emacs-build-system)
4139 (propagated-inputs
4140 `(("emacs-dash" ,emacs-dash)
4141 ("emacs-pkg-info" ,emacs-pkg-info)))
4142 (home-page "https://github.com/bbatsov/projectile")
4143 (synopsis "Manage and navigate projects in Emacs easily")
4144 (description
4145 "This library provides easy project management and navigation. The
4146concept of a project is pretty basic - just a folder containing special file.
4147Currently git, mercurial and bazaar repos are considered projects by default.
4148If you want to mark a folder manually as a project just create an empty
4149.projectile file in it.")
4150 (license license:gpl3+)))
4aea1e01
DT
4151
4152(define-public emacs-elfeed
4153 (package
4154 (name "emacs-elfeed")
4fca8a02 4155 (version "2.3.0")
4aea1e01
DT
4156 (source (origin
4157 (method url-fetch)
4158 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4159 version ".tar.gz"))
4160 (file-name (string-append name "-" version ".tar.gz"))
4161 (sha256
4162 (base32
4fca8a02 4163 "1fd1mx0q1qb9vgdzls5ppxfriyid48blg8smgjspiazp7kxakzxv"))))
4aea1e01 4164 (build-system emacs-build-system)
568f977f 4165 (arguments
d1d41db6
MC
4166 `(#:tests? #t
4167 #:test-command '("make" "test")))
4aea1e01
DT
4168 (home-page "https://github.com/skeeto/elfeed")
4169 (synopsis "Atom/RSS feed reader for Emacs")
4170 (description
4171 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4172and RSS, with a user interface inspired by notmuch.")
4173 (license license:gpl3+)))
c86f0207
DT
4174
4175(define-public emacs-rainbow-delimiters
4176 (package
4177 (name "emacs-rainbow-delimiters")
4178 (version "2.1.3")
4179 (source (origin
4180 (method url-fetch)
4181 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4182 "/rainbow-delimiters/" version
4183 "/rainbow-delimiters.el"))
4184 (file-name (string-append "rainbow-delimiters-" version ".el"))
4185 (sha256
4186 (base32
4187 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4188 (build-system emacs-build-system)
4189 (home-page "https://github.com/Fanael/rainbow-delimiters")
4190 (synopsis "Highlight brackets according to their depth")
4191 (description
4192 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4193highlights parentheses, brackets, and braces according to their depth. Each
4194successive level is highlighted in a different color, making it easy to spot
4195matching delimiters, orient yourself in the code, and tell which statements
4196are at a given level.")
4197 (license license:gpl3+)))
65b49ae7 4198
d95e8e01
RJ
4199(define-public emacs-rainbow-identifiers
4200 (package
4201 (name "emacs-rainbow-identifiers")
4202 (version "0.2.2")
4203 (source (origin
4204 (method url-fetch)
4205 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4206 "/rainbow-identifiers/" version
4207 "/rainbow-identifiers.el"))
4208 (file-name (string-append "rainbow-identifiers-" version ".el"))
4209 (sha256
4210 (base32
4211 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4212 (build-system emacs-build-system)
4213 (home-page "https://github.com/Fanael/rainbow-identifiers")
4214 (synopsis "Highlight identifiers in source code")
4215 (description
4216 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4217identifiers based on their names. Each identifier gets a color based on a hash
4218of its name.")
4219 (license license:bsd-2)))
4220
9619a95e
RJ
4221(define-public emacs-rainbow-mode
4222 (package
4223 (name "emacs-rainbow-mode")
61b31ac4 4224 (version "0.13")
9619a95e
RJ
4225 (source (origin
4226 (method url-fetch)
4227 (uri (string-append
4228 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4229 (sha256
4230 (base32
61b31ac4 4231 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
9619a95e
RJ
4232 (build-system emacs-build-system)
4233 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4234 (synopsis "Colorize color names in buffers")
4235 (description
4236 "This minor mode sets background color to strings that match color
4237names, e.g. #0000ff is displayed in white with a blue background.")
4238 (license license:gpl3+)))
4239
fede3a90
RW
4240(define-public emacs-visual-fill-column
4241 (package
4242 (name "emacs-visual-fill-column")
32e23aba 4243 (version "1.11")
fede3a90
RW
4244 (source (origin
4245 (method url-fetch)
4246 (uri (string-append "https://codeload.github.com/joostkremers/"
4247 "visual-fill-column/tar.gz/" version))
4248 (file-name (string-append name "-" version ".tar.gz"))
4249 (sha256
4250 (base32
32e23aba 4251 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
fede3a90
RW
4252 (build-system emacs-build-system)
4253 (home-page "https://github.com/joostkremers/visual-fill-column")
4254 (synopsis "Fill-column for visual-line-mode")
4255 (description
4256 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4257the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4258wrapping lines at the window edge, which is the standard behaviour of
4259@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4260@code{fill-column} is too large for the window, the text is wrapped at the
4261window edge.")
4262 (license license:gpl3+)))
4263
0ef1c223
KM
4264(define-public emacs-writeroom
4265 (package
4266 (name "emacs-writeroom")
4267 (version "3.7")
4268 (source (origin
4269 (method url-fetch)
4270 (uri (string-append
4271 "https://github.com/joostkremers/writeroom-mode/archive/"
4272 version ".tar.gz"))
4273 (file-name (string-append name "-" version ".tar.gz"))
4274 (sha256
4275 (base32
4276 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4277 (build-system emacs-build-system)
4278 (propagated-inputs
4279 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4280 (home-page "https://github.com/joostkremers/writeroom-mode")
4281 (synopsis "Distraction-free writing for Emacs")
4282 (description
4283 "This package defines a minor mode for distraction-free writing. Some of
4284the default effects include entering fullscreen, deleting other windows of the
4285current frame, disabling the mode line, and adding margins to the buffer that
4286restrict the text width to 80 characters.")
4287 (license license:bsd-3)))
4288
65b49ae7
DT
4289(define-public emacs-ido-completing-read+
4290 (package
4291 (name "emacs-ido-completing-read+")
4292 (version "3.12")
4293 (source (origin
4294 (method url-fetch)
4295 (uri (string-append "https://raw.githubusercontent.com"
4296 "/DarwinAwardWinner/ido-ubiquitous/v"
4297 version "/ido-completing-read+.el"))
4298 (file-name (string-append "ido-completing-read+-" version ".el"))
4299 (sha256
4300 (base32
4301 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4302 (build-system emacs-build-system)
4303 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4304 (synopsis "Replacement for completing-read using ido")
4305 (description
4306 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4307Importantly, it detects edge cases that ordinary ido cannot handle and either
4308adjusts them so ido can handle them, or else simply falls back to the standard
4309Emacs completion function instead.")
4310 (license license:gpl3+)))
529fe992
DT
4311
4312(define-public emacs-ido-ubiquitous
4313 (package
4314 (name "emacs-ido-ubiquitous")
4315 (version "3.12")
4316 (source (origin
4317 (method url-fetch)
4318 (uri (string-append "https://raw.githubusercontent.com"
4319 "/DarwinAwardWinner/ido-ubiquitous/v"
4320 version "/ido-ubiquitous.el"))
4321 (file-name (string-append "ido-ubiquitous-" version ".el"))
4322 (sha256
4323 (base32
4324 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4325 (build-system emacs-build-system)
4326 (propagated-inputs
4327 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4328 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4329 (synopsis "Use ido (nearly) everywhere")
4330 (description
4331 "Ido-ubiquitous enables ido-style completion for almost every function
4332that uses the standard completion function completing-read.")
4333 (license license:gpl3+)))
63de1231
DT
4334
4335(define-public emacs-yaml-mode
4336 (package
4337 (name "emacs-yaml-mode")
847284e1 4338 (version "0.0.13")
63de1231
DT
4339 (source (origin
4340 (method url-fetch)
4341 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4342 "/yaml-mode/v" version "/yaml-mode.el"))
4343 (file-name (string-append "yaml-mode-" version ".el"))
4344 (sha256
4345 (base32
847284e1 4346 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
4347 (build-system emacs-build-system)
4348 (home-page "https://github.com/yoshiki/yaml-mode")
4349 (synopsis "Major mode for editing YAML files")
4350 (description
4351 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4352serialization format. It was initially developed by Yoshiki Kurihara and many
4353features were added by Marshall Vandegrift. As YAML and Python share the fact
4354that indentation determines structure, this mode provides indentation and
4355indentation command behavior very similar to that of python-mode.")
4356 (license license:gpl3+)))
7529c883
DT
4357
4358(define-public emacs-web-mode
4359 (package
4360 (name "emacs-web-mode")
4361 (version "14")
4362 (source (origin
4363 (method url-fetch)
4364 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4365 "/web-mode/v" version "/web-mode.el"))
4366 (file-name (string-append "web-mode-" version ".el"))
4367 (sha256
4368 (base32
4369 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
4370 (build-system emacs-build-system)
4371 (synopsis "Major mode for editing web templates")
4372 (description "Web-mode is an Emacs major mode for editing web templates
4373aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4374client/server side engines). Web-mode is compatible with many template
4375engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4376Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4377Dust.js, React/JSX, Angularjs, ejs, etc.")
4378 (home-page "http://web-mode.org/")
4379 (license license:gpl3+)))
ae609001 4380
814da59f
CB
4381(define-public emacs-wgrep
4382 (package
4383 (name "emacs-wgrep")
4384 (version "2.1.10")
4385 (source (origin
4386 (method url-fetch)
4387 (uri (string-append
4388 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
4389 version ".tar.gz"))
4390 (file-name (string-append name "-" version ".tar.gz"))
4391 (sha256
4392 (base32
4393 "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
4394 (build-system emacs-build-system)
4395 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4396 (synopsis "Edit a grep buffer and apply those changes to the files")
4397 (description
4398 "Emacs wgrep allows you to edit a grep buffer and apply those changes to
4399the file buffer.")
4400 (license license:gpl3+)))
4401
ae609001
MJ
4402(define-public emacs-helm
4403 (package
4404 (name "emacs-helm")
e0b0cafd 4405 (version "2.9.0")
ae609001
MJ
4406 (source (origin
4407 (method url-fetch)
4408 (uri (string-append
4409 "https://github.com/" name "/helm/archive/v"
4410 version ".tar.gz"))
4411 (file-name (string-append name "-" version ".tar.gz"))
4412 (sha256
4413 (base32
e0b0cafd 4414 "1798gn0za11cxdbi436javfczv4abniccxcl0jppl463r8lzb8is"))))
ae609001
MJ
4415 (build-system emacs-build-system)
4416 (propagated-inputs
4417 `(("emacs-async" ,emacs-async)
4418 ("emacs-popup" ,emacs-popup)))
4419 (home-page "https://emacs-helm.github.io/helm/")
4420 (synopsis "Incremental completion and selection narrowing
4421framework for Emacs")
4422 (description "Helm is incremental completion and selection narrowing
4423framework for Emacs. It will help steer you in the right direction when
4424you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4425of @code{anything.el} originally written by Tamas Patrovic and can be
4426considered to be its successor. Helm sets out to clean up the legacy code in
4427@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4428not tied in the trap of backward compatibility.")
4429 (license license:gpl3+)))
f9be4366 4430
03cc1cf3
KM
4431(define-public emacs-helm-swoop
4432 (package
4433 (name "emacs-helm-swoop")
d3d57661 4434 (version "1.7.4")
03cc1cf3
KM
4435 (source (origin
4436 (method url-fetch)
4437 (uri (string-append
4438 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4439 version
4440 ".tar.gz"))
4441 (file-name (string-append name "-" version ".tar.gz"))
4442 (sha256
4443 (base32
d3d57661 4444 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
03cc1cf3
KM
4445 (build-system emacs-build-system)
4446 (propagated-inputs
4447 `(("emacs-helm" ,emacs-helm)))
4448 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4449 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4450 (description
4451 "This package builds on the Helm interface to provide several commands
4452for search-based navigation of buffers.")
4453 (license license:gpl2+)))
4454
f69c29f7
KM
4455(define-public emacs-helm-projectile
4456 (package
4457 (name "emacs-helm-projectile")
4458 (version "0.14.0")
4459 (source (origin
4460 (method url-fetch)
4461 (uri (string-append
4462 "https://github.com/bbatsov/helm-projectile/archive/v"
4463 version
4464 ".tar.gz"))
4465 (file-name (string-append name "-" version ".tar.gz"))
4466 (sha256
4467 (base32
4468 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4469 (build-system emacs-build-system)
4470 (propagated-inputs
4471 `(("emacs-dash" ,emacs-dash)
4472 ("emacs-helm" ,emacs-helm)
4473 ("emacs-projectile" ,emacs-projectile)))
4474 (home-page "https://github.com/bbatsov/helm-projectile")
4475 (synopsis "Helm integration for Projectile")
4476 (description
4477 "This Emacs library provides a Helm interface for Projectile.")
4478 (license license:gpl3+)))
4479
2e4bb8c8 4480(define-public emacs-helm-make
555a7429 4481 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
2e4bb8c8
OP
4482 (revision "1"))
4483 (package
4484 (name "emacs-helm-make")
4485 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
4486 (source
4487 (origin
4488 (method git-fetch)
4489 (uri (git-reference
4490 (url "https://github.com/abo-abo/helm-make.git")
4491 (commit commit)))
4492 (file-name (string-append name "-" version "-checkout"))
4493 (sha256
4494 (base32
555a7429 4495 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
2e4bb8c8
OP
4496 (build-system emacs-build-system)
4497 (propagated-inputs
4498 `(("emacs-helm" ,emacs-helm)
4499 ("emacs-projectile" ,emacs-projectile)))
4500 (home-page "https://github.com/abo-abo/helm-make")
4501 (synopsis "Select a Makefile target with helm")
4502 (description "@code{helm-make} or @code{helm-make-projectile} will give
4503you a @code{helm} selection of directory Makefile's targets. Selecting a
4504target will call @code{compile} on it.")
4505 (license license:gpl3+))))
4506
f9be4366
AP
4507(define-public emacs-cider
4508 (package
4509 (name "emacs-cider")
1f143575 4510 (version "0.15.1")
f9be4366
AP
4511 (source (origin
4512 (method url-fetch)
4513 (uri (string-append
4514 "https://github.com/clojure-emacs/cider/archive/v"
4515 version ".tar.gz"))
4516 (file-name (string-append name "-" version ".tar.gz"))
4517 (sha256
4518 (base32
1f143575 4519 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
f9be4366 4520 (build-system emacs-build-system)
65e4109c
SB
4521 (arguments
4522 '(#:exclude ; Don't exclude 'cider-test.el'.
4523 '("^\\.dir-locals\\.el$" "^test/")))
f9be4366
AP
4524 (propagated-inputs
4525 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4526 ("emacs-spinner" ,emacs-spinner)
4527 ("emacs-pkg-info" ,emacs-pkg-info)
d0a52052 4528 ("emacs-queue" ,emacs-queue)))
f9be4366
AP
4529 (home-page "https://cider.readthedocs.org/")
4530 (synopsis "Clojure development environment for Emacs")
4531 (description
4532 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
4533provide an interactive development experience similar to the one you'd get
4534when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
4535Geiser) and Smalltalk.
4536
4537CIDER is the successor to the now deprecated combination of using SLIME +
4538swank-clojure for Clojure development.
4539
4540There are plenty of differences between CIDER and SLIME, but the core ideas
4541are pretty much the same (and SLIME served as the principle inspiration for
4542CIDER).")
4543 (license license:gpl3+)))
26e08b4d 4544
e982500f
RW
4545;; There hasn't been a tag or release since 2015, so we take the latest
4546;; commit.
4547(define-public emacs-sly
4548 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
4549 (revision "1"))
4550 (package
4551 (name "emacs-sly")
4552 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
4553 (source
4554 (origin
4555 (method git-fetch)
4556 (uri (git-reference
4557 (url "https://github.com/joaotavora/sly.git")
4558 (commit commit)))
aeb95f1f 4559 (file-name (git-file-name name version))
e982500f
RW
4560 (sha256
4561 (base32
4562 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
4563 (build-system emacs-build-system)
4564 (arguments
4565 `(#:include (cons "^lib\\/" %default-include)
4566 #:phases
4567 ;; The package provides autoloads.
4568 (modify-phases %standard-phases
4569 (delete 'make-autoloads))))
4570 (home-page "https://github.com/joaotavora/sly")
4571 (synopsis "Sylvester the Cat's Common Lisp IDE")
4572 (description
4573 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
4574contains the following improvements over it:
4575
4576@enumerate
4577@item Completely redesigned REPL based on Emacs's own full-featured
4578 @code{comint.el}
4579@item Live code annotations via a new @code{sly-stickers} contrib
4580@item Consistent interactive button interface. Everything can be copied to
4581 the REPL.
4582@item Multiple inspectors with independent history
4583@item Regexp-capable @code{M-x sly-apropos}
4584@item Contribs are first class SLY citizens and enabled by default
4585@item Use ASDF to loads contribs on demand.
4586@end enumerate
4587
4588SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
4589xref, etc...) are still available, but with better integration.")
4590 (license license:gpl3+))))
4591
26e08b4d 4592(define-public emacs-lua-mode
69dcad33
AW
4593 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
4594 (revision "1"))
4595 (package
4596 (name "emacs-lua-mode")
4597 (version (string-append "20151025." revision "-" (string-take commit 9)))
4598 (home-page "https://github.com/immerrr/lua-mode/")
4599 (source (origin
4600 (method git-fetch)
4601 (uri (git-reference
4602 (url home-page)
4603 (commit commit)))
4604 (file-name (string-append name "-" version ".checkout"))
4605 (sha256
4606 (base32
4607 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
4608 (build-system emacs-build-system)
4609 (synopsis "Major mode for lua")
4610 (description
4611 "This Emacs package provides a mode for @uref{https://www.lua.org/,
26e08b4d 4612Lua programing language}.")
69dcad33 4613 (license license:gpl2+))))
0202612d 4614
4615(define-public emacs-ebuild-mode
4616 (package
4617 (name "emacs-ebuild-mode")
4735393a 4618 (version "1.37")
0202612d 4619 (source (origin
4620 (method url-fetch)
4621 (uri (string-append
4622 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
4623 "-" version ".tar.xz"))
4624 (file-name (string-append name "-" version ".tar.xz"))
4625 (sha256
4626 (base32
4735393a 4627 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
0202612d 4628 (build-system emacs-build-system)
4629 (home-page "https://devmanual.gentoo.org")
4630 (synopsis "Major modes for Gentoo package files")
4631 (description
4632 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
4633news items, openrc and runscripts.")
4634 (license license:gpl2+)))
a9fbe94e 4635
2edbfbf5 4636(define-public emacs-evil
4637 (package
4638 (name "emacs-evil")
511d8a02 4639 (version "1.2.13")
2edbfbf5 4640 (source
4641 (origin
4642 (method url-fetch)
511d8a02 4643 (uri (string-append "https://github.com/emacs-evil/evil/archive/"
4644 version ".tar.gz"))
4645 (file-name (string-append name "-" version ".tar.gz"))
2edbfbf5 4646 (sha256
4647 (base32
511d8a02 4648 "1z63zsxmsc6mh74wv6065carwqmgs7b7lz5044s12xvgsjfbwi8h"))))
2edbfbf5 4649 (build-system emacs-build-system)
4650 (propagated-inputs
4651 `(("emacs-undo-tree" ,emacs-undo-tree)
4652 ("emacs-goto-chg" ,emacs-goto-chg)))
511d8a02 4653 (home-page "https://github.com/emacs-evil/evil")
2edbfbf5 4654 (synopsis "Extensible Vi layer for Emacs")
4655 (description
4656 "Evil is an extensible vi layer for Emacs. It emulates the
4657main features of Vim, and provides facilities for writing custom
4658extensions.")
4659 (license license:gpl3+)))
4660
a0bee5e7
PN
4661(define-public emacs-evil-collection
4662 (let ((commit "f40704a57fd33b4bfad64147a2b771fc8961fdfc")
4663 (revision "1"))
4664 (package
4665 (name "emacs-evil-collection")
4666 (version (git-version "20180425" revision commit))
4667 (source (origin
4668 (method git-fetch)
4669 (uri (git-reference
4670 (url "https://github.com/emacs-evil/evil-collection")
4671 (commit commit)))
4672 (file-name (string-append name "-" version "-checkout"))
4673 (sha256
4674 (base32
4675 "0qn19k0f3isnbi1hkmcf3qjxbyvp23m5ak5ny7623qgwb2nwz1l5"))))
4676 (build-system emacs-build-system)
4677 (propagated-inputs
4678 `(("emacs-evil" ,emacs-evil)))
4679 (home-page "https://github.com/emacs-evil/evil-collection")
4680 (synopsis "Collection of Evil bindings for many major and minor modes")
4681 (description "This is a collection of Evil bindings for the parts of
4682Emacs that Evil does not cover properly by default, such as @code{help-mode},
4683@code{M-x calendar}, Eshell and more.")
4684 (license license:gpl3+))))
4685
ce74e520 4686(define-public emacs-goto-chg
4687 (package
4688 (name "emacs-goto-chg")
4689 (version "1.6")
4690 (source
4691 (origin
4692 (method url-fetch)
4693 ;; There is no versioned source.
4694 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 4695 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 4696 (sha256
4697 (base32
4698 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4699 (build-system emacs-build-system)
4700 ;; There is no other home page.
4701 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4702 (synopsis "Go to the last change in the Emacs buffer")
4703 (description
4704 "This package provides @code{M-x goto-last-change} command that goes to
4705the point of the most recent edit in the current Emacs buffer. When repeated,
4706go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4707used for reverse direction.")
4708 (license license:gpl2+)))
4709
a1eba1be
VD
4710(define-public emacs-monroe
4711 (package
4712 (name "emacs-monroe")
b125649a 4713 (version "0.3.1")
a1eba1be
VD
4714 (source
4715 (origin
4716 (method url-fetch)
b125649a
VD
4717 (uri (string-append "https://github.com/sanel/monroe/archive/"
4718 version ".tar.gz"))
4719 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
4720 (sha256
4721 (base32
b125649a 4722 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 4723 (build-system emacs-build-system)
b125649a 4724 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
4725 (synopsis "Clojure nREPL client for Emacs")
4726 (description
4727 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4728distribution, primarily targeting Clojure users")
4729 (license license:gpl3+)))
4730
32034405
NG
4731(define-public emacs-orgalist
4732 (package
4733 (name "emacs-orgalist")
4734 (version "1.7")
4735 (source
4736 (origin
4737 (method url-fetch)
4738 (uri (string-append "https://elpa.gnu.org/packages/"
4739 "orgalist-" version ".el"))
4740 (sha256
4741 (base32
4742 "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr"))))
4743 (build-system emacs-build-system)
4744 (home-page "http://elpa.gnu.org/packages/orgalist.html")
4745 (synopsis "Manage Org-like lists in non-Org buffers")
4746 (description "Write Org mode's plain lists in non-Org buffers. More
4747specifically, Orgalist supports the syntax of Org mode for numbered,
4748unnumbered, description items, checkboxes, and counter cookies.
4749
4750The library also implements radio lists, i.e., lists written in Org
40dc6df4 4751syntax later translated into the host format, e.g., LaTeX or HTML.")
32034405
NG
4752 (license license:gpl3+)))
4753
a9fbe94e
LC
4754(define-public emacs-writegood-mode
4755 (package
4756 (name "emacs-writegood-mode")
4757 (version "2.0.2")
7bf837fd 4758 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
4759 (source (origin
4760 (method git-fetch)
4761 (uri (git-reference
4762 (url home-page)
4763 (commit (string-append "v" version))))
4764 (sha256
4765 (base32
4766 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
4767 (file-name (string-append name "-checkout"))))
4768 (build-system emacs-build-system)
4769 (synopsis "Polish up poor writing on the fly")
4770 (description
4771 "This minor mode tries to find and highlight problems with your writing
4772in English as you type. It primarily detects \"weasel words\" and abuse of
4773passive voice.")
4774 (license license:gpl3+)))
e08ca4b9 4775
4776(define-public emacs-neotree
4777 (package
4778 (name "emacs-neotree")
95058772 4779 (version "0.5.2")
e08ca4b9 4780 (home-page "https://github.com/jaypei/emacs-neotree")
4781 (source (origin
4782 (method url-fetch)
4783 (uri (string-append
4784 "https://github.com/jaypei/" name
95058772 4785 "/archive/" version ".tar.gz"))
e08ca4b9 4786 (sha256
4787 (base32
95058772 4788 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
f409d0aa 4789 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 4790 (build-system emacs-build-system)
4791 (synopsis "Folder tree view for Emacs")
4792 (description "This Emacs package provides a folder tree view.")
4793 (license license:gpl3+)))
59065bb3
NG
4794
4795(define-public emacs-org
4796 (package
4797 (name "emacs-org")
769e7155
CL
4798 ;; emacs-org-contrib inherits from this package. Please update its sha256
4799 ;; checksum as well.
90735611 4800 (version "9.1.13")
59065bb3
NG
4801 (source (origin
4802 (method url-fetch)
2d19a7e4 4803 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
4804 version ".tar"))
4805 (sha256
4806 (base32
90735611 4807 "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr"))))
59065bb3 4808 (build-system emacs-build-system)
7cbe77d7 4809 (home-page "https://orgmode.org/")
59065bb3
NG
4810 (synopsis "Outline-based notes management and organizer")
4811 (description "Org is an Emacs mode for keeping notes, maintaining TODO
90735611
NG
4812lists, and project planning with a fast and effective lightweight markup
4813language. It also is an authoring system with unique support for literate
4814programming and reproducible research.")
59065bb3 4815 (license license:gpl3+)))
41392b9a 4816
8e2ae7ee
CB
4817(define-public emacs-org-contrib
4818 (package
4819 (inherit emacs-org)
4820 (name "emacs-org-contrib")
90735611 4821 (version "20180507")
8e2ae7ee
CB
4822 (source (origin
4823 (method url-fetch)
7cbe77d7 4824 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5ecd2d28 4825 version ".tar"))
8e2ae7ee
CB
4826 (sha256
4827 (base32
90735611 4828 "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
8e2ae7ee
CB
4829 (arguments
4830 `(#:modules ((guix build emacs-build-system)
4831 (guix build utils)
4832 (guix build emacs-utils)
4833 (ice-9 ftw)
4834 (srfi srfi-1))
4835 #:phases
4836 (modify-phases %standard-phases
4837 (add-after 'install 'delete-org-files
4838 (lambda* (#:key inputs outputs #:allow-other-keys)
4839 (let* ((out (assoc-ref outputs "out"))
4840 (org (assoc-ref inputs "emacs-org"))
4841 (contrib-files
4842 (map basename (find-files out)))
4843 (org+contrib-files
4844 (map basename (find-files org)))
4845 (duplicates (lset-intersection
4846 string=? contrib-files org+contrib-files)))
4847 (with-directory-excursion
4848 (string-append
5ecd2d28 4849 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
8e2ae7ee
CB
4850 (for-each delete-file duplicates))
4851 #t))))))
4852 (propagated-inputs
0b8823d8
MC
4853 `(("emacs-org" ,emacs-org)
4854 ("emacs-scel" ,emacs-scel)))
35377cfa 4855 (synopsis "Contributed packages to Org mode")
8e2ae7ee
CB
4856 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4857lists, and project planning with a fast and effective plain-text system.
4858
77e3ce3e 4859This package is equivalent to org-plus-contrib, but only includes additional
8e2ae7ee
CB
4860files that you would find in @file{contrib/} from the git repository.")))
4861
41392b9a 4862(define-public emacs-flx
4863 (package
4864 (name "emacs-flx")
4865 (version "0.6.1")
4866 (source
4867 (origin
4868 (method url-fetch)
4869 (uri (string-append "https://github.com/lewang/"
4870 "flx/archive/v" version ".tar.gz"))
4871 (sha256
4872 (base32
4873 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
4874 (file-name (string-append name "-" version ".tar.gz"))))
4875 (build-system emacs-build-system)
4876 (home-page "https://github.com/lewang/flx")
4877 (synopsis "Fuzzy matching for Emacs")
4878 (description
4879 "Flx provides fuzzy matching for emacs a la sublime text.
4880The sorting algorithm is a balance between word beginnings (abbreviation)
4881and contiguous matches (substring). The longer the substring match,
4882the higher it scores. This maps well to how we think about matching.
4883Flx has support for ido (interactively do things) through flx-ido.")
4884 (license license:gpl3+)))
9657aba4 4885
4886(define-public emacs-cyberpunk-theme
4887 (package
4888 (name "emacs-cyberpunk-theme")
88e6086e 4889 (version "1.19")
9657aba4 4890 (source
4891 (origin
4892 (method url-fetch)
4893 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
4894 "archive/" version ".tar.gz"))
4895 (sha256
4896 (base32
88e6086e 4897 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
9657aba4 4898 (file-name (string-append name "-" version ".tar.gz"))))
4899 (build-system emacs-build-system)
4900 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
4901 (synopsis "Cyberpunk theme for emacs built-in color theme support")
4902 (description
4903 "Cyberpunk color theme for the emacs 24+ built-in color theme support
4904known loosely as deftheme. Many mode-specific customizations are included.")
4905 (license license:gpl3+)))
840224aa 4906
8f493950 4907(define-public emacs-danneskjold-theme
4908 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
4909 (revision "1"))
4910 (package
4911 (name "emacs-danneskjold-theme")
4912 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4913 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
4914 (source
4915 (origin
4916 (method git-fetch)
4917 (uri (git-reference
4918 (url home-page)
4919 (commit commit)))
4920 (file-name (string-append name "-" version "-checkout"))
4921 (sha256
4922 (base32
4923 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
4924 (build-system emacs-build-system)
4925 (arguments
4926 `(#:phases
4927 (modify-phases %standard-phases
4928 (add-after 'unpack 'delete-screenshots
4929 (lambda _
4930 (delete-file-recursively "screenshots") #t)))))
4931 (synopsis "High-contrast Emacs theme")
4932 (description
4933 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
4934 (license license:gpl3+))))
4935
1ba67b62 4936(define-public emacs-dream-theme
4937 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
4938 (revision "1"))
4939 (package
4940 (name "emacs-dream-theme")
4941 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4942 (source
4943 (origin
4944 (method git-fetch)
4945 (uri (git-reference
4946 (url "https://github.com/djcb/dream-theme")
4947 (commit commit)))
4948 (file-name (string-append name "-" version "-checkout"))
4949 (sha256
4950 (base32
4951 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
4952 (build-system emacs-build-system)
4953 (home-page "https://github.com/djcb/dream-theme")
4954 (synopsis "High-contrast Emacs theme")
4955 (description
4956 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
4957by zenburn, sinburn and similar themes, but slowly diverging from them.")
4958 (license license:gpl3+))))
4959
840224aa 4960(define-public emacs-auto-complete
4961 (package
4962 (name "emacs-auto-complete")
4963 (version "1.5.1")
4964 (source
4965 (origin
4966 (method url-fetch)
4967 (uri (string-append "https://github.com/auto-complete/"
4968 "auto-complete/archive/v" version ".tar.gz"))
4969 (sha256
4970 (base32
4971 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
4972 (file-name (string-append name "-" version ".tar.gz"))))
4973 (build-system emacs-build-system)
4974 (propagated-inputs
4975 `(("emacs-popup" ,emacs-popup)))
4976 (home-page "https://github.com/auto-complete/auto-complete")
4977 (synopsis "Intelligent auto-completion extension for Emacs")
4978 (description
4979 "Auto-Complete is an intelligent auto-completion extension for Emacs.
4980It extends the standard Emacs completion interface and provides an environment
4981that allows users to concentrate more on their own work. Its features are:
4982a visual interface, reduce overhead of completion by using statistic method,
4983extensibility.")
4984 (license license:gpl3+)))
154c71e0
AI
4985
4986(define-public m17n-db
4987 (package
4988 (name "m17n-db")
4989 (version "1.7.0")
4990 (source
4991 (origin
4992 (method url-fetch)
4993 (uri (string-append "mirror://savannah/m17n/m17n-db-"
4994 version ".tar.gz"))
4995 (sha256
4996 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
4997 (build-system gnu-build-system)
4998 (inputs
7c90d0f4 4999 `(("gettext" ,gettext-minimal)))
154c71e0
AI
5000 (arguments
5001 `(#:configure-flags
5002 (list (string-append "--with-charmaps="
5003 (assoc-ref %build-inputs "libc")
5004 "/share/i18n/charmaps"))))
5005 ;; With `guix lint' the home-page URI returns a small page saying
5006 ;; that your browser does not handle frames. This triggers the "URI
5007 ;; returns suspiciously small file" warning.
340978d7 5008 (home-page "https://www.nongnu.org/m17n/")
154c71e0
AI
5009 (synopsis "Multilingual text processing library (database)")
5010 (description "The m17n library realizes multilingualization of
5011many aspects of applications. The m17n library represents
5012multilingual text as an object named M-text. M-text is a string with
5013attributes called text properties, and designed to substitute for
5014string in C. Text properties carry any information required to input,
5015display and edit the text.
5016
5017This package contains the library database.")
5018 (license license:lgpl2.1+)))
a80b60f4
AI
5019
5020(define-public m17n-lib
5021 (package
5022 (name "m17n-lib")
5023 (version "1.7.0")
5024 (source
5025 (origin
5026 (method url-fetch)
966a543b
LC
5027 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5028 version ".tar.gz"))
a80b60f4
AI
5029 (sha256
5030 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
5031 (build-system gnu-build-system)
5032 (inputs
5033 `(("fribidi" ,fribidi)
5034 ("gd" ,gd)
5035 ("libotf" ,libotf)
5036 ("libxft" ,libxft)
5037 ("libxml2" ,libxml2)
5038 ("m17n-db" ,m17n-db)))
5039 (arguments
5040 `(#:parallel-build? #f))
5041 ;; With `guix lint' the home-page URI returns a small page saying
5042 ;; that your browser does not handle frames. This triggers the "URI
5043 ;; returns suspiciously small file" warning.
340978d7 5044 (home-page "https://www.nongnu.org/m17n/")
a80b60f4
AI
5045 (synopsis "Multilingual text processing library (runtime)")
5046 (description "The m17n library realizes multilingualization of
5047many aspects of applications. The m17n library represents
5048multilingual text as an object named M-text. M-text is a string with
5049attributes called text properties, and designed to substitute for
5050string in C. Text properties carry any information required to input,
5051display and edit the text.
5052
5053This package contains the library runtime.")
5054 (license license:lgpl2.1+)))
71d3ee1c
AI
5055
5056(define-public emacs-nginx-mode
5057 (package
5058 (name "emacs-nginx-mode")
5059 (version "1.1.4")
5060 (source
5061 (origin
5062 (method url-fetch)
5063 (uri (string-append
5064 "https://github.com/ajc/nginx-mode/archive/v"
5065 version ".tar.gz"))
5066 (file-name (string-append name "-" version ".tar.gz"))
5067 (sha256
5068 (base32
5069 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
5070 (build-system emacs-build-system)
5071 (home-page "https://github.com/ajc/nginx-mode")
5072 (synopsis "Emacs major mode for editing nginx config files")
5073 (description "This package provides an Emacs major mode for
5074editing nginx config files.")
5075 (license license:gpl2+)))
8f50634b
FB
5076
5077(define-public emacs-stream
5078 (package
5079 (name "emacs-stream")
5080 (version "2.2.0")
5081 (home-page "https://github.com/NicolasPetton/stream")
5082 (source
5083 (origin
5084 (method url-fetch)
5085 (file-name (string-append name "-" version ".tar.gz"))
5086 (uri (string-append home-page "/archive/"version ".tar.gz"))
5087 (sha256
5088 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5089 (build-system emacs-build-system)
5090 (synopsis "Implementation of streams for Emacs")
5091 (description "This library provides an implementation of streams for Emacs.
5092Streams are implemented as delayed evaluation of cons cells.")
5093 (license license:gpl3+)))
0fc06f3e
FB
5094
5095(define-public emacs-el-search
5096 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5097 (revision "1"))
5098 (package
5099 (name "emacs-el-search")
5100 ;; No ufficial release.
5101 (version (string-append "0.0-" revision "." (string-take commit 7)))
5102 (home-page "https://github.com/emacsmirror/el-search")
5103 (source
5104 (origin
5105 (method git-fetch)
5106 (file-name (string-append name "-" version ".tar.gz"))
5107 (uri (git-reference
5108 (commit commit)
5109 (url (string-append home-page ".git"))))
5110 (sha256
5111 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5112 (build-system emacs-build-system)
5113 (inputs `(("emacs-stream" ,emacs-stream)))
5114 (synopsis "Expression based interactive search for emacs-lisp-mode")
5115 (description "This package provides expression based interactive search
5116procedures for emacs-lisp-mode.")
5117 (license license:gpl3+))))
1e523180
MO
5118
5119(define-public emacs-ht
5120 (package
5121 (name "emacs-ht")
5122 (version "2.1")
5123 (source
5124 (origin
5125 (method url-fetch)
5126 (uri (string-append
5127 "https://github.com/Wilfred/ht.el/archive/"
5128 version ".tar.gz"))
5129 (file-name (string-append name "-" version ".tar.gz"))
5130 (sha256
5131 (base32
5132 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5133 (build-system emacs-build-system)
5134 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5135 (home-page "https://github.com/Wilfred/ht.el")
5136 (synopsis "Hash table library for Emacs")
5137 (description
5138 "This package simplifies the use of hash tables in elisp. It also
5139provides functions to convert hash tables from and to alists and plists.")
5140 (license license:gpl3+)))
5141
521f5d96
MO
5142(define-public emacs-log4e
5143 (package
5144 (name "emacs-log4e")
5145 (version "0.3.0")
5146 (source
5147 (origin
5148 (method url-fetch)
5149 (uri (string-append
5150 "https://github.com/aki2o/log4e/archive/v"
5151 version ".tar.gz"))
5152 (file-name (string-append name "-" version ".tar.gz"))
5153 (sha256
5154 (base32
5155 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5156 (build-system emacs-build-system)
5157 (arguments
5158 `(#:phases
5159 (modify-phases %standard-phases
5160 (add-after 'unpack 'remove-tests
5161 ;; Guile builder complains about null characters in some
5162 ;; strings of test files. Remove "test" directory (it is not
5163 ;; needed anyway).
5164 (lambda _
5165 (delete-file-recursively "test"))))))
5166 (home-page "https://github.com/aki2o/log4e")
5167 (synopsis "Logging framework for elisp")
5168 (description
5169 "This package provides a logging framework for elisp. It allows
5170you to deal with multiple log levels.")
5171 (license license:gpl3+)))
ba117841
MO
5172
5173(define-public emacs-gntp
5174 (package
5175 (name "emacs-gntp")
5176 (version "0.1")
5177 (source
5178 (origin
5179 (method url-fetch)
5180 (uri (string-append
5181 "https://github.com/tekai/gntp.el/archive/v"
5182 version ".tar.gz"))
5183 (file-name (string-append name "-" version ".tar.gz"))
5184 (sha256
5185 (base32
5186 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5187 (build-system emacs-build-system)
5188 (home-page "https://github.com/tekai/gntp.el")
5189 (synopsis "Growl Notification Protocol for Emacs")
5190 (description
5191 "This package implements the Growl Notification Protocol GNTP
5192described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5193It is incomplete as it only lets you send but not receive
5194notifications.")
5195 (license license:bsd-3)))
2c5e31fa
MO
5196
5197(define-public emacs-alert
5198 (package
5199 (name "emacs-alert")
5200 (version "1.2")
5201 (source
5202 (origin
5203 (method url-fetch)
5204 (uri (string-append
5205 "https://github.com/jwiegley/alert/archive/v"
5206 version ".tar.gz"))
5207 (file-name (string-append name "-" version ".tar.gz"))
5208 (sha256
5209 (base32
5210 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5211 (build-system emacs-build-system)
5212 (propagated-inputs
5213 `(("emacs-gntp" ,emacs-gntp)
5214 ("emacs-log4e" ,emacs-log4e)))
5215 (home-page "https://github.com/jwiegley/alert")
5216 (synopsis "Growl-style notification system for Emacs")
5217 (description
5218 "Alert is a Growl-workalike for Emacs which uses a common notification
5219interface and multiple, selectable \"styles\", whose use is fully
5220customizable by the user.")
5221 (license license:gpl2+)))
c695ed3c
MO
5222
5223(define-public emacs-mu4e-alert
5224 (package
5225 (name "emacs-mu4e-alert")
dd69ff6d 5226 (version "1.0")
c695ed3c
MO
5227 (source
5228 (origin
5229 (method url-fetch)
5230 (uri (string-append
5231 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5232 version ".tar.gz"))
5233 (file-name (string-append name "-" version ".tar.gz"))
5234 (sha256
5235 (base32
dd69ff6d 5236 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
5237 (build-system emacs-build-system)
5238 (propagated-inputs
5239 `(("emacs-alert" ,emacs-alert)
5240 ("emacs-s" ,emacs-s)
b6efe0e8
MC
5241 ("emacs-ht" ,emacs-ht)
5242 ("mu" ,mu)))
c695ed3c
MO
5243 (home-page "https://github.com/iqbalansari/mu4e-alert")
5244 (synopsis "Desktop notification for mu4e")
5245 (description
5246 "This package provides desktop notifications for mu4e.
5247Additionally it can display the number of unread emails in the
5248mode-line.")
5249 (license license:gpl3+)))
e967dd9c 5250
5251(define-public emacs-pretty-mode
5252 (package
5253 (name "emacs-pretty-mode")
5254 (version "2.0.3")
5255 (source
5256 (origin
5257 (method url-fetch)
5258 (uri (string-append "https://github.com/akatov/pretty-mode/"
5259 "archive/" version ".tar.gz"))
5260 (file-name (string-append name "-" version ".tar.gz"))
5261 (sha256
5262 (base32
5263 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5264 (build-system emacs-build-system)
5265 (home-page "https://github.com/akatov/pretty-mode")
5266 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5267 (description
5268 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5269 (license license:gpl3+)))
c1029f86
RW
5270
5271(define-public emacs-yasnippet
5272 (package
5273 (name "emacs-yasnippet")
bf1264ab 5274 (version "0.12.2")
c1029f86
RW
5275 (source (origin
5276 (method url-fetch)
5277 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5278 "archive/" version ".tar.gz"))
5279 (file-name (string-append name "-" version ".tar.gz"))
5280 (sha256
5281 (base32
bf1264ab 5282 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
1f0d4705
KM
5283 (modules '((guix build utils)))
5284 (snippet
5285 '(begin
5286 ;; YASnippet expects a "snippets" subdirectory in the same
5287 ;; directory as yasnippet.el, but we don't install it
5288 ;; because it's a git submodule pointing to an external
5289 ;; repository. Adjust `yas-snippet-dirs' to prevent
5290 ;; warnings about a missing directory.
5291 (substitute* "yasnippet.el"
5292 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5293 "))\n"))))))
c1029f86 5294 (build-system emacs-build-system)
7bf837fd 5295 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
5296 (synopsis "Yet another snippet extension for Emacs")
5297 (description
5298 "YASnippet is a template system for Emacs. It allows you to type an
5299abbreviation and automatically expand it into function templates.")
5300 (license license:gpl3+)))
55fa5349 5301
4bfdf034
KM
5302(define-public emacs-yasnippet-snippets
5303 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5304 (revision "1"))
5305 (package
5306 (name "emacs-yasnippet-snippets")
5307 (version (string-append "1-" revision "." (string-take commit 8)))
5308 (source
5309 (origin
5310 (method git-fetch)
5311 (uri (git-reference
5312 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5313 (commit commit)))
5314 (file-name (string-append name "-" version "-checkout"))
5315 (sha256
5316 (base32
5317 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5318 (build-system trivial-build-system)
5319 (arguments
5320 `(#:modules ((ice-9 ftw)
5321 (ice-9 regex)
5322 (guix build utils))
5323 #:builder
5324 (begin
5325 (use-modules (ice-9 ftw)
5326 (ice-9 regex)
5327 (guix build utils))
5328 (with-directory-excursion (assoc-ref %build-inputs "source")
5329 (for-each (lambda (dir)
5330 (copy-recursively
5331 dir
5332 (string-append %output
5333 "/share/emacs/yasnippet-snippets/"
5334 dir)))
5335 (scandir "." (lambda (fname)
5336 (and (string-match "-mode$" fname)
5337 (directory-exists? fname)))))))))
5338 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5339 (synopsis "Collection of YASnippet snippets for many languages")
5340 (description
5341 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5342the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5343To make YASnippet aware of these snippets, add the above directory to
5344@code{yas-snippet-dirs}.")
5345 (license license:expat))))
5346
2ede8c61
OP
5347(define-public emacs-helm-c-yasnippet
5348 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5349 (revision "1"))
5350 (package
5351 (name "emacs-helm-c-yasnippet")
5352 (version (string-append "0.6.7" "-" revision "."
5353 (string-take commit 7)))
5354 (source (origin
5355 (method git-fetch)
5356 (uri (git-reference
5357 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5358 (commit commit)))
5359 (file-name (string-append name "-" version "-checkout"))
5360 (sha256
5361 (base32
5362 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5363 (build-system emacs-build-system)
5364 (propagated-inputs
5365 `(("emacs-helm" ,emacs-helm)
5366 ("emacs-yasnippet" ,emacs-yasnippet)))
5367 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5368 (synopsis "Helm integration for Yasnippet")
5369 (description "This Emacs library provides Helm interface for
5370Yasnippet.")
5371 (license license:gpl2+))))
5372
b889df27
PN
5373(define-public emacs-helm-system-packages
5374 (let ((commit "986b7bd360a705053500c4ce2c9bea03dd7b24a6")
5375 (revision "1"))
5376 (package
5377 (name "emacs-helm-system-packages")
5378 (version (git-version "1.9.0" revision commit))
5379 (source (origin
5380 (method git-fetch)
5381 (uri (git-reference
5382 (url "https://github.com/emacs-helm/helm-system-packages")
5383 (commit commit)))
5384 (file-name (string-append name "-" version "-checkout"))
5385 (sha256
5386 (base32
5387 "19iklhpxgh5xx6h4dysf58nd46lmyb46xj601lf7kbwl6yq0y61f"))))
5388 (build-system emacs-build-system)
5389 (propagated-inputs
5390 `(("emacs-helm" ,emacs-helm)))
5391 (home-page "https://github.com/emacs-helm/helm-system-packages")
5392 (synopsis "Helm System Packages is an interface to your package manager")
5393 (description "List all available packages in Helm (with installed
5394packages displayed in their own respective face). Fuzzy-search, mark and
5395execute the desired action over any selections of packages: Install,
5396uninstall, display packages details (in Org Mode) or insert details at point,
5397find files owned by packages... And much more, including performing all the
5398above over the network.")
5399 (license license:gpl3+))))
5400
55fa5349
AI
5401(define-public emacs-memoize
5402 (package
1848cdfb
AI
5403 (name "emacs-memoize")
5404 (version "1.1")
5405 (source
5406 (origin
5407 (method url-fetch)
5408 (uri (string-append
5409 "https://github.com/skeeto/emacs-memoize/archive/"
5410 version ".tar.gz"))
5411 (file-name (string-append name "-" version ".tar.gz"))
5412 (sha256
5413 (base32
5414 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5415 (build-system emacs-build-system)
5416 (arguments
5417 `(#:tests? #t
5418 #:test-command '("emacs" "--batch"
5419 "-l" "memoize-test.el"
5420 "-f" "ert-run-tests-batch-and-exit")))
5421 (home-page "https://github.com/skeeto/emacs-memoize")
5422 (synopsis "Emacs lisp memoization library")
5423 (description "@code{emacs-memoize} is an Emacs library for
55fa5349 5424memoizing functions.")
1848cdfb 5425 (license license:unlicense)))
6b7e3362 5426
c86c1991
AI
5427(define-public emacs-linum-relative
5428 (package
5429 (name "emacs-linum-relative")
5430 (version "0.5")
5431 (source
5432 (origin
5433 (method url-fetch)
5434 (uri (string-append
5435 "https://github.com/coldnew/linum-relative/archive/"
5436 version ".tar.gz"))
5437 (file-name (string-append name "-" version ".tar.gz"))
5438 (sha256
5439 (base32
5440 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5441 (build-system emacs-build-system)
5442 (home-page "https://github.com/coldnew/linum-relative")
5443 (synopsis "Relative line numbering for Emacs")
5444 (description "@code{emacs-linum-relative} displays the relative line
5445number on the left margin in Emacs.")
5446 (license license:gpl2+)))
5447
6b7e3362
VD
5448(define-public emacs-idle-highlight
5449 (package
5450 (name "emacs-idle-highlight")
5451 (version "1.1.3")
5452 (source
5453 (origin
5454 (method url-fetch)
5455 (uri (string-append
5456 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5457 version ".tar.gz"))
5458 (file-name (string-append name "-" version ".tar.gz"))
5459 (sha256
5460 (base32
5461 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5462 (build-system emacs-build-system)
5463 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 5464 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
5465 (description
5466 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 5467 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
5468 the point.")
5469 (license license:gpl3+)))
6a91c5f2
VD
5470
5471(define-public emacs-ox-twbs
5472 (package
5473 (name "emacs-ox-twbs")
5474 (version "1.1.1")
5475 (source
5476 (origin
5477 (method url-fetch)
5478 (uri (string-append
5479 "https://github.com/marsmining/ox-twbs/archive/v"
5480 version ".tar.gz"))
5481 (file-name (string-append name "-" version ".tar.gz"))
5482 (sha256
5483 (base32
5484 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5485 (build-system emacs-build-system)
5486 (home-page "https://github.com/marsmining/ox-twbs")
5487 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5488 (description
5489 "This Emacs package outputs your org-mode docs with a simple, clean and
5490modern look. It implements a new HTML back-end for exporting org-mode docs as
5491HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5492jQuery and Bootstrap resources included via osscdn.")
5493 (license license:gpl3+)))
239cf024
VD
5494
5495(define-public emacs-highlight-sexp
5496 (package
5497 (name "emacs-highlight-sexp")
5498 (version "1.0")
5499 (source
5500 (origin
5501 (method url-fetch)
5502 (uri (string-append
5503 "https://github.com/daimrod/highlight-sexp/archive/v"
5504 version ".tar.gz"))
5505 (file-name (string-append name "-" version ".tar.gz"))
5506 (sha256
5507 (base32
5508 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5509 (build-system emacs-build-system)
5510 (home-page "https://github.com/daimrod/highlight-sexp")
5511 (synopsis "Minor mode that highlights the s-exp at the current position")
5512 (description
5513 "This Emacs package highlights the s-exp at the current position.")
5514 (license license:gpl3+)))
350cfccb 5515
7a452689
OP
5516(define-public emacs-highlight-stages
5517 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5518 (revision "1"))
5519 (package
5520 (name "emacs-highlight-stages")
5521 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5522 (source
5523 (origin
5524 (method git-fetch)
5525 (uri (git-reference
5526 (url "https://github.com/zk-phi/highlight-stages.git")
5527 (commit commit)))
5528 (file-name (string-append name "-" version "-checkout"))
5529 (sha256
5530 (base32
5531 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
5532 (patches
5533 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
5534 (build-system emacs-build-system)
5535 (home-page "https://github.com/wigust/highlight-stages")
5536 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
5537 (description "@code{highlight-stages} provides an Emacs minor mode that
5538highlights quasi-quoted expressions.")
5539 (license license:gpl3+))))
5540
acf7d4a7
KK
5541(define-public emacspeak
5542 (package
5543 (name "emacspeak")
147d42fc 5544 (version "47.0")
acf7d4a7
KK
5545 (source
5546 (origin
5547 (method url-fetch)
5548 (uri (string-append
5549 "https://github.com/tvraman/emacspeak/releases/download/"
5550 version "/emacspeak-" version ".tar.bz2"))
5551 (sha256
5552 (base32
147d42fc 5553 "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
acf7d4a7
KK
5554 (build-system gnu-build-system)
5555 (arguments
5556 '(#:make-flags (list (string-append "prefix="
5557 (assoc-ref %outputs "out")))
5558 #:phases
5559 (modify-phases %standard-phases
5560 (replace 'configure
231e48d6
KK
5561 (lambda _
5562 ;; Configure Emacspeak according to etc/install.org.
147d42fc 5563 (setenv "SHELL" (which "sh"))
acf7d4a7 5564 (zero? (system* "make" "config"))))
231e48d6
KK
5565 (add-after 'build 'build-espeak
5566 (lambda _
5567 (zero? (system* "make" "espeak"))))
5568 (replace 'install
acf7d4a7 5569 (lambda* (#:key outputs #:allow-other-keys)
231e48d6
KK
5570 (let* ((out (assoc-ref outputs "out"))
5571 (bin (string-append out "/bin"))
5572 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
5573 (info (string-append out "/share/info")))
5574 ;; According to etc/install.org, the Emacspeak directory should
5575 ;; be copied to its installation destination.
5576 (for-each
5577 (lambda (file)
5578 (copy-recursively file (string-append lisp "/" file)))
5579 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
5580 "xsl"))
5581 ;; Make sure emacspeak is loaded from the correct directory.
5582 (substitute* "etc/emacspeak.sh"
5583 (("exec emacs.*$")
5584 (string-append "exec emacs -l " lisp
5585 "/lisp/emacspeak-setup.el $CL_ALL")))
5586 ;; Install the convenient startup script.
5587 (mkdir-p bin)
5588 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
5589 #t))
5590 (add-after 'install 'wrap-program
acf7d4a7
KK
5591 (lambda* (#:key inputs outputs #:allow-other-keys)
5592 (let* ((out (assoc-ref outputs "out"))
5593 (emacspeak (string-append out "/bin/emacspeak"))
5594 (espeak (string-append (assoc-ref inputs "espeak")
5595 "/bin/espeak")))
5596 ;; The environment variable DTK_PROGRAM tells emacspeak what
5597 ;; program to use for speech.
5598 (wrap-program emacspeak
5599 `("DTK_PROGRAM" ":" prefix (,espeak)))
5600 #t))))
5601 #:tests? #f)) ; no check target
5602 (inputs
5603 `(("espeak" ,espeak)
5604 ("tcl" ,tcl)
5605 ("tclx" ,tclx)))
5606 (native-inputs `(("emacs" ,emacs-minimal)))
5607 (home-page "http://emacspeak.sourceforge.net")
5608 (synopsis "Audio desktop interface for Emacs")
5609 (description
5610 "Emacspeak is a speech interface that allows visually impaired users to
5611interact independently and efficiently with the computer. Audio formatting
5612--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
5613allows Emacspeak to produce rich aural presentations of electronic information.
5614By seamlessly blending all aspects of the Internet such as Web-surfing and
5615messaging, Emacspeak speech-enables local and remote information via a
5616consistent and well-integrated user interface.")
5617 (license license:gpl2+)))
5618
350cfccb
AP
5619(define-public emacs-adaptive-wrap
5620 (package
5621 (name "emacs-adaptive-wrap")
13869ff5 5622 (version "0.5.1")
350cfccb
AP
5623 (source (origin
5624 (method url-fetch)
5625 (uri (string-append
5626 "http://elpa.gnu.org/packages/adaptive-wrap-"
5627 version ".el"))
5628 (sha256
5629 (base32
13869ff5 5630 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
350cfccb
AP
5631 (build-system emacs-build-system)
5632 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
5633 (synopsis "Smart line-wrapping with wrap-prefix")
5634 (description
5635 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
5636minor mode which sets the wrap-prefix property on the fly so that
5637single-long-line paragraphs get word-wrapped in a way similar to what
5638you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
5639actually changing the buffer's text.")
5640 (license license:gpl3+)))
0201c5d4 5641
42e891c2
MC
5642(define-public emacs-diff-hl
5643 (package
5644 (name "emacs-diff-hl")
5645 (version "1.8.4")
5646 (source
5647 (origin
5648 (method url-fetch)
5649 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
5650 version ".tar"))
5651 (sha256
5652 (base32
5653 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
5654 (build-system emacs-build-system)
5655 (home-page "https://github.com/dgutov/diff-hl")
5656 (synopsis
5657 "Highlight uncommitted changes using VC")
5658 (description
5659 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
5660window (using the fringe, by default), allows you to jump between
5661the hunks and revert them selectively.")
5662 (license license:gpl3+)))
5663
0201c5d4
AI
5664(define-public emacs-diminish
5665 (package
5666 (name "emacs-diminish")
5667 (version "0.45")
5668 (source
5669 (origin
5670 (method url-fetch)
5671 (uri (string-append
5672 "https://github.com/myrjola/diminish.el/archive/v"
5673 version ".tar.gz"))
5674 (file-name (string-append name "-" version ".tar.gz"))
5675 (sha256
5676 (base32
5677 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
5678 (build-system emacs-build-system)
5679 (home-page "https://github.com/myrjola/diminish.el")
5680 (synopsis "Diminish minor modes with no modeline display")
5681 (description "@code{emacs-diminish} implements hiding or
5682abbreviation of the mode line displays (lighters) of minor modes.")
5683 (license license:gpl2+)))
b247fb86
AI
5684
5685(define-public emacs-use-package
5686 (package
5687 (name "emacs-use-package")
5688 (version "2.3")
5689 (source
5690 (origin
5691 (method url-fetch)
5692 (uri (string-append
5693 "https://github.com/jwiegley/use-package/archive/"
5694 version ".tar.gz"))
5695 (file-name (string-append name "-" version ".tar.gz"))
5696 (sha256
5697 (base32
5698 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
5699 (build-system emacs-build-system)
5700 (propagated-inputs
5701 `(("emacs-diminish" ,emacs-diminish)))
5702 (arguments
d1d41db6
MC
5703 ;; Tests fail in this release, but have been fixed in
5704 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
5705 `(#:tests? #f
5706 #:test-command '("emacs" "--batch"
5707 "-l" "use-package-tests.el"
5708 "-f" "ert-run-tests-batch-and-exit")))
b247fb86
AI
5709 (home-page "https://github.com/jwiegley/use-package")
5710 (synopsis "Declaration for simplifying your .emacs")
5711 (description "The use-package macro allows you to isolate package
5712configuration in your @file{.emacs} file in a way that is both
5713performance-oriented and tidy.")
5714 (license license:gpl2+)))
e2345554 5715
8ad5a20f
MO
5716(define-public emacs-strace-mode
5717 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
5718 (revision "1"))
5719 (package
5720 (name "emacs-strace-mode")
5721 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
5722 (source (origin
5723 (method git-fetch)
5724 (uri (git-reference
5725 (url "https://github.com/pkmoore/strace-mode")
5726 (commit commit)))
5727 (file-name (string-append name "-" version "-checkout"))
5728 (sha256
5729 (base32
5730 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
5731 (build-system emacs-build-system)
5732 (home-page "https://github.com/pkmoore/strace-mode")
5733 (synopsis "Emacs major mode to highlight strace outputs")
5734 (description "@code{emacs-strace-mode} provides an Emacs major mode
5735 highlighting strace outputs.")
5736 (license license:gpl3+))))
5737
e2345554
CM
5738(define-public emacs-default-encrypt
5739 (package
5740 (name "emacs-default-encrypt")
5741 (version "4.3")
5742 (source
5743 (origin
5744 (method url-fetch)
5745 (uri (string-append
a97f6da4
CM
5746 "https://www.informationelle-selbstbestimmung-im-internet.de"
5747 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
5748 (file-name (string-append "jl-encrypt-" version ".el"))
5749 (sha256
5750 (base32
5751 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
5752 (build-system emacs-build-system)
5753 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
5754 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
5755 (description
5756 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
5757automatically encrypts messages that you send (e.g., email) when public keys
5758for all recipients are available, and it protects you from accidentally
5759sending un-encrypted messages. It can also be configured to automatically
5760sign messages that you send. For details and instructions on how to use
5761DefaultEncrypt, please refer to the home page or read the comments in the
5762source file, @file{jl-encrypt.el}.")
5763 (license license:gpl3+)))
25e810b8
AI
5764
5765(define-public emacs-htmlize
5766 (package
5767 (name "emacs-htmlize")
5768 (version "1.51")
5769 (source
5770 (origin
5771 (method url-fetch)
5772 (uri (string-append
5773 "https://github.com/hniksic/emacs-htmlize/archive/release/"
5774 version ".tar.gz"))
5775 (file-name (string-append name "-" version ".tar.gz"))
5776 (sha256
5777 (base32
5778 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
5779 (build-system emacs-build-system)
5780 (home-page "https://github.com/hniksic/emacs-htmlize")
5781 (synopsis "Convert buffer text and decorations to HTML")
5782 (description "@code{emacs-htmlize} converts the buffer text and
5783the associated decorations to HTML. Output to CSS, inline CSS and
5784fonts is supported.")
5785 (license license:gpl2+)))
0ee59b81
AI
5786
5787(define-public emacs-xmlgen
5788 (package
5789 (name "emacs-xmlgen")
5790 (version "0.5")
5791 (source
5792 (origin
5793 (method url-fetch)
5794 (uri (string-append
5795 "https://github.com/philjackson/xmlgen/archive/"
5796 version ".tar.gz"))
5797 (file-name (string-append name "-" version ".tar.gz"))
5798 (sha256
5799 (base32
5800 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
5801 (build-system emacs-build-system)
5802 (arguments
d1d41db6
MC
5803 `(#:tests? #t
5804 #:test-command '("emacs" "--batch"
5805 "-l" "xmlgen-test.el"
5806 "-f" "ert-run-tests-batch-and-exit")))
0ee59b81
AI
5807 (home-page "https://github.com/philjackson/xmlgen")
5808 (synopsis "S-expression to XML domain specific language (DSL) in
5809Emacs Lisp")
5810 (description "@code{emacs-xmlgen} provides S-expression to XML
5811conversion for Emacs Lisp.")
5812 (license license:gpl2+)))
8d50a990
AI
5813
5814(define-public emacs-cdlatex
5815 (package
5816 (name "emacs-cdlatex")
5817 (version "4.7")
5818 (source
5819 (origin
5820 (method url-fetch)
5821 (uri (string-append
5822 "https://github.com/cdominik/cdlatex/archive/"
5823 version ".tar.gz"))
5824 (file-name (string-append name "-" version ".tar.gz"))
5825 (sha256
5826 (base32
5827 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
5828 (build-system emacs-build-system)
00bdf501
MC
5829 (propagated-inputs
5830 `(("emacs-auctex" ,emacs-auctex)))
8d50a990
AI
5831 (home-page "https://github.com/cdominik/cdlatex")
5832 (synopsis "Fast Emacs input methods for LaTeX environments and
5833math")
5834 (description "CDLaTeX is an Emacs minor mode supporting fast
5835insertion of environment templates and math in LaTeX. Similar
5836commands are also offered as part of the AUCTeX package, but it is not
5837the same - CDLaTeX focuses on speediness for inserting LaTeX
5838constructs.")
5839 (license license:gpl3+)))
deddeb44 5840
65fff6a3
FS
5841(define-public emacs-cnfonts
5842 (package
5843 (name "emacs-cnfonts")
5844 (version "0.9.1")
5845 (source (origin
5846 (method url-fetch)
5847 (uri (string-append
5848 "https://github.com/tumashu/cnfonts/archive/v"
5849 version ".tar.gz"))
5850 (file-name (string-append name "-" version ".tar.gz"))
5851 (sha256
5852 (base32
5853 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
5854 (build-system emacs-build-system)
5855 (home-page "https://github.com/tumashu/cnfonts")
5856 (synopsis "Emacs Chinese fonts setup tool")
5857 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
5858configuration of Chinese fonts.")
5859 (license license:gpl2+)))
5860
57fe82c5
RJ
5861(define-public emacs-php-mode
5862 (package
5863 (name "emacs-php-mode")
5864 (version "20171225.342")
5865 (source (origin
5866 (method url-fetch)
5867 (uri (string-append
5868 "https://melpa.org/packages/php-mode-"
5869 version ".tar"))
5870 (sha256
5871 (base32
5872 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
5873 (build-system emacs-build-system)
5874 (home-page "https://github.com/ejmr/php-mode")
5875 (synopsis "Major mode for editing PHP code")
5876 (description "@code{php-mode} is a major mode for editing PHP source
5877code. It's an extension of C mode; thus it inherits all C mode's navigation
5878functionality. But it colors according to the PHP grammar and indents
5879according to the PEAR coding guidelines. It also includes a couple handy
5880IDE-type features such as documentation search and a source and class
5881browser.")
5882 (license license:gpl3+)))
5883
9f3b27a2
FS
5884(define-public emacs-pos-tip
5885 (package
5886 (name "emacs-pos-tip")
5887 (version "0.4.6")
5888 (source (origin
5889 (method url-fetch)
5890 (uri (string-append
5891 "https://github.com/pitkali/pos-tip/archive/"
5892 version ".tar.gz"))
5893 (file-name (string-append name "-" version ".tar.gz"))
5894 (sha256
5895 (base32
5896 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
5897 (build-system emacs-build-system)
5898 ;; The following functions and variables needed by emacs-pos-tip are
5899 ;; not included in emacs-minimal:
5900 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
5901 (arguments `(#:emacs ,emacs))
5902 (home-page "https://github.com/pitkali/pos-tip")
5903 (synopsis "Show tooltip at point")
5904 (description "The standard library tooltip.el provides a function for
5905displaying a tooltip at the mouse position. However, locating a tooltip at an
5906arbitrary buffer position in a window is not easy. Pos-tip provides such a
5907function to be used by other frontend programs.")
5908 (license license:gpl2+)))
5909
0fa8a932
FS
5910(define-public emacs-pyim-basedict
5911 (package
5912 (name "emacs-pyim-basedict")
5913 (version "0.3.1")
5914 (source (origin
5915 (method url-fetch)
5916 (uri (string-append
5917 "https://github.com/tumashu/pyim-basedict/archive/v"
5918 version ".tar.gz"))
5919 (file-name (string-append name "-" version ".tar.gz"))
5920 (sha256
5921 (base32
5922 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
5923 (build-system emacs-build-system)
5924 (home-page "https://github.com/tumashu/pyim-basedict")
5925 (synopsis "Input method dictionary of pyim")
5926 (description "Pyim-basedict is the default pinyin input method dictionary,
5927containing words from the rime project.")
5928 (license license:gpl2+)))
5929
7493306f
FS
5930(define-public emacs-pyim
5931 (package
5932 (name "emacs-pyim")
5933 (version "1.6.4")
5934 (source (origin
5935 (method url-fetch)
5936 (uri (string-append
5937 "https://github.com/tumashu/pyim/archive/v"
5938 version ".tar.gz"))
5939 (file-name (string-append name "-" version ".tar.gz"))
5940 (sha256
5941 (base32
5942 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
5943 (build-system emacs-build-system)
5944 (propagated-inputs
5945 `(("emacs-async" ,emacs-async)
6fe2d37c 5946 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7493306f
FS
5947 ("emacs-popup" ,emacs-popup)
5948 ("emacs-pos-tip" ,emacs-pos-tip)))
5949 (home-page "https://github.com/tumashu/pyim")
5950 (synopsis "Chinese input method")
5951 (description "Chinese input method which supports quanpin, shuangpin, wubi
5952and cangjie.")
5953 (license license:gpl2+)))
5954
2f1524d0
FS
5955(define-public emacs-el2org
5956 (package
5957 (name "emacs-el2org")
5958 (version "0.6.0")
5959 (source (origin
5960 (method url-fetch)
5961 (uri (string-append
5962 "https://github.com/tumashu/el2org/archive/v"
5963 version ".tar.gz"))
5964 (file-name (string-append name "-" version ".tar.gz"))
5965 (sha256
5966 (base32
5967 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
5968 (build-system emacs-build-system)
5969 (home-page "https://github.com/tumashu/el2org")
5970 (synopsis "Convert Emacs-lisp file to org file")
5971 (description "El2org is a simple tool, which can convert Emacs-lisp file
5972to org file, you can use this tool to write orgify commentary.")
5973 (license license:gpl2+)))
5974
5b38c3e6
FS
5975(define-public emacs-mustache
5976 (package
5977 (name "emacs-mustache")
5978 (version "0.23")
5979 (source (origin
5980 (method url-fetch)
5981 (uri (string-append
5982 "https://github.com/Wilfred/mustache.el/archive/"
5983 version ".tar.gz"))
5984 (file-name (string-append name "-" version ".tar.gz"))
5985 (sha256
5986 (base32
5987 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
5988 (build-system emacs-build-system)
5989 (propagated-inputs
5990 `(("emacs-dash" ,emacs-dash)
5991 ("emacs-ht" ,emacs-ht)
5992 ("emacs-s" ,emacs-s)))
5993 (home-page "https://github.com/Wilfred/mustache.el")
5994 (synopsis "Mustache templating library for Emacs")
5995 (description "Mustache templating library for Emacs, mustache is
5996a simple web template system, which is described as a logic-less system
5997because it lacks any explicit control flow statements, both looping and
5998conditional evaluation can be achieved using section tags processing lists
5999and lambdas.")
6000 (license license:gpl3+)))
6001
f03e15ec
FS
6002(define-public emacs-org2web
6003 (package
6004 (name "emacs-org2web")
6005 (version "0.9.1")
6006 (source (origin
6007 (method url-fetch)
6008 (uri (string-append
6009 "https://github.com/tumashu/org2web/archive/v"
6010 version ".tar.gz"))
6011 (file-name (string-append name "-" version ".tar.gz"))
6012 (sha256
6013 (base32
6014 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6015 (build-system emacs-build-system)
6016 (propagated-inputs
6017 `(("emacs-dash" ,emacs-dash)
6018 ("emacs-el2org" ,emacs-el2org)
6019 ("emacs-ht" ,emacs-ht)
6020 ("emacs-mustache" ,emacs-mustache)
6021 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6022 (home-page "https://github.com/tumashu/org2web")
6023 (synopsis "Static site generator based on org-mode ")
6024 (description "Org2web is a static site generator based on org-mode,
6025which code derived from Kelvin H's org-page.")
6026 (license license:gpl2+)))
6027
deddeb44
FS
6028(define-public emacs-xelb
6029 (package
6030 (name "emacs-xelb")
aaa31d1b 6031 (version "0.14")
deddeb44
FS
6032 (source (origin
6033 (method url-fetch)
6034 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6035 version ".tar"))
6036 (sha256
6037 (base32
aaa31d1b 6038 "09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74"))))
deddeb44
FS
6039 (build-system emacs-build-system)
6040 ;; The following functions and variables needed by emacs-xelb are
6041 ;; not included in emacs-minimal:
6042 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6043 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6044 ;; x-display-pixel-width, x-display-pixel-height
6045 (arguments
6046 `(#:emacs ,emacs
6047 #:phases
6048 (modify-phases %standard-phases
6049 (add-after 'unpack 'regenerate-el-files
6050 (lambda* (#:key inputs #:allow-other-keys)
6051 (zero? (system* "make"
6052 (string-append "PROTO_PATH="
6053 (assoc-ref inputs "xcb-proto")
6054 "/share/xcb")
6055 (string-append "EMACS_BIN="
6056 (assoc-ref inputs "emacs")
6057 "/bin/emacs -Q"))))))))
6058 (native-inputs `(("xcb-proto" ,xcb-proto)))
6059 (home-page "https://github.com/ch11ng/xelb")
6060 (synopsis "X protocol Emacs Lisp binding")
6061 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6062X11 protocol based on the XML description files from the XCB project. It
6063features an object-oriented API and permits a certain degree of concurrency.
6064It should enable you to implement low-level X11 applications.")
6065 (license license:gpl3+)))
2b3b745c
FS
6066
6067(define-public emacs-exwm
6068 (package
6069 (name "emacs-exwm")
9f2a58a0 6070 (version "0.18")
2b3b745c
FS
6071 (synopsis "Emacs X window manager")
6072 (source (origin
6073 (method url-fetch)
6074 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6075 version ".tar"))
6076 (sha256
6077 (base32
9f2a58a0 6078 "1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q"))))
2b3b745c
FS
6079 (build-system emacs-build-system)
6080 (propagated-inputs
6081 `(("emacs-xelb" ,emacs-xelb)))
6082 (inputs
6083 `(("xhost" ,xhost)
6084 ("dbus" ,dbus)))
6085 ;; The following functions and variables needed by emacs-exwm are
6086 ;; not included in emacs-minimal:
6087 ;; scroll-bar-mode, fringe-mode
6088 ;; x-display-pixel-width, x-display-pixel-height
6089 (arguments
6090 `(#:emacs ,emacs
6091 #:phases
6092 (modify-phases %standard-phases
6093 (add-after 'build 'install-xsession
6094 (lambda* (#:key inputs outputs #:allow-other-keys)
6095 (let* ((out (assoc-ref outputs "out"))
6096 (xsessions (string-append out "/share/xsessions"))
6097 (bin (string-append out "/bin"))
6098 (exwm-executable (string-append bin "/exwm")))
6099 ;; Add a .desktop file to xsessions
6100 (mkdir-p xsessions)
6101 (mkdir-p bin)
6102 (with-output-to-file
6103 (string-append xsessions "/exwm.desktop")
6104 (lambda _
6105 (format #t "[Desktop Entry]~@
6106 Name=~a~@
6107 Comment=~a~@
6108 Exec=~a~@
6109 TryExec=~@*~a~@
6110 Type=Application~%" ,name ,synopsis exwm-executable)))
6111 ;; Add a shell wrapper to bin
2b3b745c
FS
6112 (with-output-to-file exwm-executable
6113 (lambda _
6114 (format #t "#!~a ~@
2b3b745c 6115 ~a +SI:localuser:$USER ~@
11f8e028 6116 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
6117 (string-append (assoc-ref inputs "bash") "/bin/sh")
6118 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6119 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6120 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6121 '(cond
6122 ((file-exists-p "~/.exwm")
6123 (load-file "~/.exwm"))
6124 ((not (featurep 'exwm))
6125 (require 'exwm)
6126 (require 'exwm-config)
6127 (exwm-config-default)
87c95cb2
AI
6128 (message (concat "exwm configuration not found. "
6129 "Falling back to default configuration...")))))))
2b3b745c
FS
6130 (chmod exwm-executable #o555)
6131 #t))))))
6132 (home-page "https://github.com/ch11ng/exwm")
6133 (description "EXWM is a full-featured tiling X window manager for Emacs
6134built on top of XELB.")
6135 (license license:gpl3+)))
21b99aad 6136
58addd2b
FS
6137(define-public emacs-switch-window
6138 (package
6139 (name "emacs-switch-window")
adaebe80 6140 (version "1.5.1")
58addd2b
FS
6141 (source (origin
6142 (method url-fetch)
6143 (uri (string-append
6144 "https://github.com/dimitri/switch-window/archive/v"
6145 version ".tar.gz"))
6146 (file-name (string-append name "-" version ".tar.gz"))
6147 (sha256
6148 (base32
adaebe80 6149 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
6150 (build-system emacs-build-system)
6151 (home-page "https://github.com/dimitri/switch-window")
6152 (synopsis "Emacs window switch tool")
6153 (description "Switch-window is an emacs window switch tool, which
6154offer a visual way to choose a window to switch to, delete, split or
6155other operations.")
6156 (license license:wtfpl2)))
6157
f4ade9b6
FS
6158(define-public emacs-exwm-x
6159 (package
6160 (name "emacs-exwm-x")
03a34d54 6161 (version "1.8.1")
f4ade9b6
FS
6162 (synopsis "Derivative window manager based on EXWM")
6163 (source (origin
6164 (method url-fetch)
6165 (uri (string-append
6166 "https://github.com/tumashu/exwm-x/archive/v"
6167 version ".tar.gz"))
6168 (file-name (string-append name "-" version ".tar.gz"))
6169 (sha256
6170 (base32
03a34d54 6171 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
f4ade9b6
FS
6172 (build-system emacs-build-system)
6173 (propagated-inputs
6174 `(("emacs-exwm" ,emacs-exwm)
6175 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
6176 ("emacs-ivy" ,emacs-ivy)
6177 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
6178 (inputs
6179 `(("xhost" ,xhost)
6180 ("dbus" ,dbus)))
6181 ;; Need emacs instead of emacs-minimal,
6182 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6183 (arguments
6184 `(#:emacs ,emacs
6185 #:phases
6186 (modify-phases %standard-phases
6187 (add-after 'build 'install-xsession
6188 (lambda* (#:key inputs outputs #:allow-other-keys)
6189 (let* ((out (assoc-ref outputs "out"))
6190 (xsessions (string-append out "/share/xsessions"))
6191 (bin (string-append out "/bin"))
6192 (exwm-executable (string-append bin "/exwm-x")))
6193 ;; Add a .desktop file to xsessions
6194 (mkdir-p xsessions)
6195 (mkdir-p bin)
6196 (with-output-to-file
6197 (string-append xsessions "/exwm-x.desktop")
6198 (lambda _
6199 (format #t "[Desktop Entry]~@
6200 Name=~a~@
6201 Comment=~a~@
6202 Exec=~a~@
6203 TryExec=~@*~a~@
6204 Type=Application~%" ,name ,synopsis exwm-executable)))
6205 ;; Add a shell wrapper to bin
f4ade9b6
FS
6206 (with-output-to-file exwm-executable
6207 (lambda _
6208 (format #t "#!~a ~@
f4ade9b6
FS
6209 ~a +SI:localuser:$USER ~@
6210 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6211 (string-append (assoc-ref inputs "bash") "/bin/sh")
6212 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6213 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6214 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6215 '(require 'exwmx-loader))))
6216 (chmod exwm-executable #o555)
6217 #t))))))
6218 (home-page "https://github.com/tumashu/exwm-x")
6219 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6220on mouse-control.")
6221 (license license:gpl3+)))
6222
21b99aad
AI
6223(define-public emacs-gnuplot
6224 (package
6225 (name "emacs-gnuplot")
6226 (version "0.7.0")
6227 (source
6228 (origin
6229 (method url-fetch)
6230 (uri (string-append
6231 "https://github.com/bruceravel/gnuplot-mode/archive/"
6232 version ".tar.gz"))
6233 (file-name (string-append name "-" version ".tar.gz"))
6234 (sha256
6235 (base32
6236 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6237 (build-system gnu-build-system)
6238 (native-inputs `(("emacs" ,emacs-minimal)))
6239 (arguments
6240 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6241 "/gnuplot-" version)))
6242 `(#:modules ((guix build gnu-build-system)
6243 (guix build utils)
6244 (guix build emacs-utils))
6245 #:imported-modules (,@%gnu-build-system-modules
6246 (guix build emacs-utils))
6247 #:configure-flags
6248 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6249 "/bin/emacs")
6250 (string-append "--with-lispdir=" %output ,elisp-dir))
6251 #:phases
6252 (modify-phases %standard-phases
6253 (add-after 'install 'generate-autoloads
6254 (lambda* (#:key outputs #:allow-other-keys)
6255 (emacs-generate-autoloads
6256 "gnuplot"
6257 (string-append (assoc-ref outputs "out") ,elisp-dir))
6258 #t))))))
6259 (home-page "https://github.com/bruceravel/gnuplot-mode")
6260 (synopsis "Emacs major mode for interacting with gnuplot")
6261 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6262with gnuplot.")
6263 (license license:gpl2+)))
860f73c6
AI
6264
6265(define-public emacs-transpose-frame
6266 (package
6267 (name "emacs-transpose-frame")
6268 (version "0.1.0")
6269 (source
6270 (origin
6271 (method url-fetch)
6272 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8a421ddb 6273 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
6274 (sha256
6275 (base32
6276 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6277 (build-system emacs-build-system)
6278 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6279 (synopsis "Transpose window arrangement in current frame")
6280 (description "@code{emacs-transpose-frame} provides some interactive
6281functions which allows users to transpose windows arrangement in currently
6282selected frame.")
6283 (license license:bsd-2)))
a34242ee
KM
6284
6285(define-public emacs-key-chord
6286 (package
6287 (name "emacs-key-chord")
6288 (version "0.6")
6289 (source
6290 (origin
6291 (method url-fetch)
6292 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
a742becd 6293 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
6294 (sha256
6295 (base32
6296 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6297 (build-system emacs-build-system)
6298 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6299 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6300 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6301mode for binding key chords to commands. A key chord is defined as two keys
6302pressed simultaneously or a single key quickly pressed twice.")
6303 (license license:gpl2+)))
a993add1
AI
6304
6305(define-public emacs-evil-surround
6306 (package
6307 (name "emacs-evil-surround")
6308 (version "1.0.0")
6309 (source
6310 (origin
6311 (method url-fetch)
6312 (uri (string-append
6313 "https://github.com/timcharper/evil-surround/archive/v"
6314 version ".tar.gz"))
6315 (file-name (string-append name "-" version ".tar.gz"))
6316 (sha256
6317 (base32
6318 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6319 (build-system emacs-build-system)
6320 (propagated-inputs
6321 `(("emacs-evil" ,emacs-evil)))
6322 (home-page "https://github.com/timcharper/evil-surround")
6323 (synopsis "Easily modify surrounding parantheses and quotes")
6324 (description "@code{emacs-evil-surround} allows easy deletion, change and
6325addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6326 (license license:gpl3+)))
2406766e
AI
6327
6328(define-public emacs-evil-commentary
6329 (package
6330 (name "emacs-evil-commentary")
6331 (version "2.1.1")
6332 (source
6333 (origin
6334 (method url-fetch)
6335 (uri (string-append
6336 "https://github.com/linktohack/evil-commentary/archive/v"
6337 version ".tar.gz"))
6338 (file-name (string-append name "-" version ".tar.gz"))
6339 (sha256
6340 (base32
6341 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6342 (build-system emacs-build-system)
6343 (propagated-inputs
6344 `(("emacs-evil" ,emacs-evil)))
6345 (home-page "https://github.com/linktohack/evil-commentary")
6346 (synopsis "Comment out code in evil mode")
6347 (description "@code{emacs-evil-commentary} adds keybindings to easily
6348comment out lines of code in evil mode. It provides @code{gcc} to comment out
6349lines, and @code{gc} to comment out the target of a motion.")
6350 (license license:gpl3+)))
99d406c9
AI
6351
6352;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6353;; therefore cannot be run
6354(define-public emacs-ansi
6355 (package
6356 (name "emacs-ansi")
6357 (version "0.4.1")
6358 (source
6359 (origin
6360 (method url-fetch)
6361 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6362 version ".tar.gz"))
6363 (file-name (string-append name "-" version ".tar.gz"))
6364 (sha256
6365 (base32
6366 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6367 (build-system emacs-build-system)
6368 (propagated-inputs
6369 `(("emacs-dash" ,emacs-dash)
6370 ("emacs-s" ,emacs-s)))
6371 (home-page "https://github.com/rejeep/ansi.el")
6372 (synopsis "Convert strings to ANSI")
6373 (description "@code{emacs-ansi} defines functions that turns simple
6374strings to ANSI strings. Turning a string into an ANSI string can be to add
6375color to a text, add color in the background of a text or adding a style, such
6376as bold, underscore or italic.")
6377 (license license:gpl3+)))
605ecbcb
AI
6378
6379;; Tests for emacs-commander have a circular dependency with ert-runner, and
6380;; therefore cannot be run
6381(define-public emacs-commander
6382 (package
6383 (name "emacs-commander")
6384 (version "0.7.0")
6385 (source
6386 (origin
6387 (method url-fetch)
6388 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6389 version ".tar.gz"))
6390 (file-name (string-append name "-" version ".tar.gz"))
6391 (sha256
6392 (base32
6393 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6394 (build-system emacs-build-system)
6395 (propagated-inputs
6396 `(("emacs-dash" ,emacs-dash)
6397 ("emacs-f" ,emacs-f)
6398 ("emacs-s" ,emacs-s)))
6399 (home-page "https://github.com/rejeep/commander.el")
6400 (synopsis "Emacs command line parser")
6401 (description "@code{emacs-commander} provides command line parsing for
6402Emacs.")
6403 (license license:gpl3+)))
87449013
AI
6404
6405;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6406;; cannot be run
6407(define-public ert-runner
9490c411
MC
6408 (package
6409 (name "ert-runner")
6410 (version "0.7.0")
6411 (source
6412 (origin
6413 (method url-fetch)
6414 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6415 version ".tar.gz"))
6416 (file-name (string-append name "-" version ".tar.gz"))
6417 (sha256
6418 (base32
6419 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6420 (build-system emacs-build-system)
6421 (inputs
6422 `(("emacs-ansi" ,emacs-ansi)
6423 ("emacs-commander" ,emacs-commander)
6424 ("emacs-dash" ,emacs-dash)
6425 ("emacs-f" ,emacs-f)
6426 ("emacs-s" ,emacs-s)
6427 ("emacs-shut-up" ,emacs-shut-up)))
6428 (arguments
6429 `(#:phases
6430 (modify-phases %standard-phases
6431 (add-after 'install 'install-executable
6432 (lambda* (#:key inputs outputs #:allow-other-keys)
6433 (let ((out (assoc-ref outputs "out")))
6434 (substitute* "bin/ert-runner"
6435 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6436 (string-append "ERT_RUNNER=\"" out
6437 "/share/emacs/site-lisp/guix.d/"
6438 ,name "-" ,version)))
6439 (install-file "bin/ert-runner" (string-append out "/bin"))
6440 (wrap-program (string-append out "/bin/ert-runner")
6441 (list "EMACSLOADPATH" ":" 'prefix
6442 (string-split (getenv "EMACSLOADPATH") #\:)))
6443 #t))))
6444 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6445 (home-page "https://github.com/rejeep/ert-runner.el")
6446 (synopsis "Opinionated Ert testing workflow")
6447 (description "@code{ert-runner} is a tool for Emacs projects tested
87449013
AI
6448using ERT. It assumes a certain test structure setup and can therefore make
6449running tests easier.")
9490c411 6450 (license license:gpl3+)))
7a0efa77
JN
6451
6452(define-public emacs-disable-mouse
6453 (package
6454 (name "emacs-disable-mouse")
6455 (version "0.2")
6456 (source
6457 (origin
6458 (method url-fetch)
6459 (uri (string-append
6460 "https://github.com/purcell/disable-mouse/archive/"
6461 version ".tar.gz"))
6462 (file-name (string-append name "-" version ".tar.gz"))
6463 (sha256
6464 (base32
6465 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6466 (build-system emacs-build-system)
6467 (home-page "https://github.com/purcell/disable-mouse")
6468 (synopsis "Disable mouse commands globally")
6469 (description
6470 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6471pair of minor modes which suppress all mouse events by intercepting them and
6472running a customisable handler command (@code{ignore} by default). ")
6473 (license license:gpl3+)))
ce676015 6474
b0912e9f
OP
6475(define-public emacs-json-reformat
6476 (package
6477 (name "emacs-json-reformat")
6478 (version "0.0.6")
6479 (source
6480 (origin
6481 (method url-fetch)
6482 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6483 version ".tar.gz"))
6484 (file-name (string-append name "-" version ".tar.gz"))
6485 (sha256
6486 (base32
6487 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6488 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6489 (build-system emacs-build-system)
d1d41db6
MC
6490 (propagated-inputs
6491 `(("emacs-undercover" ,emacs-undercover)))
6492 (native-inputs
6493 `(("emacs-dash" ,emacs-dash)
6494 ("emacs-shut-up" ,emacs-shut-up)
6495 ("ert-runner" ,ert-runner)))
b0912e9f 6496 (arguments
d1d41db6
MC
6497 `(#:tests? #t
6498 #:test-command '("ert-runner")))
b0912e9f
OP
6499 (home-page "https://github.com/gongo/json-reformat")
6500 (synopsis "Reformatting tool for JSON")
6501 (description "@code{json-reformat} provides a reformatting tool for
6502@url{http://json.org/, JSON}.")
6503 (license license:gpl3+)))
6504
6df27407
OP
6505(define-public emacs-json-snatcher
6506 (package
6507 (name "emacs-json-snatcher")
6508 (version "1.0.0")
6509 (source
6510 (origin
6511 (method url-fetch)
6512 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
6513 version ".tar.gz"))
6514 (file-name (string-append name "-" version ".tar.gz"))
6515 (sha256
6516 (base32
6517 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
6518 (build-system emacs-build-system)
6519 (home-page "https://github.com/sterlingg/json-snatcher")
6520 (synopsis "Grabs the path to JSON values in a JSON file")
6521 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
6522a @url{http://json.org/, JSON} file.")
6523 (license license:gpl3+)))
6524
dd72837d
OP
6525(define-public emacs-json-mode
6526 (package
6527 (name "emacs-json-mode")
6528 (version "1.7.0")
6529 (source
6530 (origin
6531 (method url-fetch)
6532 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
6533 "v" version ".tar.gz"))
6534 (file-name (string-append name "-" version ".tar.gz"))
6535 (sha256
6536 (base32
6537 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
6538 (build-system emacs-build-system)
6539 (propagated-inputs
6540 `(("emacs-json-reformat" ,emacs-json-reformat)
6541 ("emacs-json-snatcher" ,emacs-json-snatcher)))
6542 (home-page "https://github.com/joshwnj/json-mode")
6543 (synopsis "Major mode for editing JSON files")
6544 (description "@code{json-mode} extends the builtin js-mode syntax
6545highlighting.")
6546 (license license:gpl3+)))
6547
ce676015
JR
6548(define-public emacs-restclient
6549 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
6550 (revision "1")) ;Guix package revision,
6551 ;upstream doesn't have official releases
6552 (package
6553 (name "emacs-restclient")
6554 (version (string-append revision "."
6555 (string-take commit 7)))
6556 (source (origin
6557 (method git-fetch)
6558 (uri (git-reference
6559 (url "https://github.com/pashky/restclient.el.git")
6560 (commit commit)))
6561 (sha256
6562 (base32
6563 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
6564 (file-name (git-file-name name version))))
6565 (build-system emacs-build-system)
6566 (propagated-inputs
6567 `(("emacs-helm" ,emacs-helm)))
6568 (home-page "https://github.com/pashky/restclient.el")
6569 (synopsis "Explore and test HTTP REST webservices")
6570 (description
6571 "This tool allows for testing and exploration of HTTP REST Web services
6572from within Emacs. Restclient runs queries from a plan-text query sheet,
6573displays results pretty-printed in XML or JSON with @code{restclient-mode}")
6574 (license license:public-domain))))
730c0790 6575
de5256d3
MC
6576(define-public emacs-eimp
6577 (let ((version "1.4.0")
6578 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
6579 (revision "1"))
6580 (package
6581 (name "emacs-eimp")
6582 (version (git-version version revision commit))
6583 (source
6584 (origin
6585 (method git-fetch)
6586 (uri (git-reference
6587 (url "https://github.com/nicferrier/eimp.git")
6588 (commit commit)))
6589 (file-name (git-file-name name version))
6590 (sha256
6591 (base32
6592 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
6593 (build-system emacs-build-system)
6594 (arguments
6595 `(#:phases
6596 (modify-phases %standard-phases
6597 (add-after 'unpack 'configure
6598 (lambda* (#:key inputs #:allow-other-keys)
6599 (let ((imagemagick (assoc-ref inputs "imagemagick")))
6600 ;; eimp.el is read-only in git.
6601 (chmod "eimp.el" #o644)
6602 (emacs-substitute-variables "eimp.el"
6603 ("eimp-mogrify-program"
6604 (string-append imagemagick "/bin/mogrify"))))
6605 #t)))))
6606 (inputs
6607 `(("imagemagick" ,imagemagick)))
6608 (home-page "https://github.com/nicferrier/eimp")
6609 (synopsis "Interactive image manipulation utility for Emacs")
6610 (description "@code{emacs-eimp} allows interactive image manipulation
6611from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
6612the actual transformations.")
6613 (license license:gpl2+))))
6614
730c0790
OP
6615(define-public emacs-dired-hacks
6616 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
6617 (revision "1"))
6618 (package
6619 (name "emacs-dired-hacks")
6620 (version (string-append "0.0.1-" revision "."
6621 (string-take commit 7)))
6622 (source (origin
6623 (method git-fetch)
6624 (uri (git-reference
6625 (url "https://github.com/Fuco1/dired-hacks.git")
6626 (commit commit)))
6627 (file-name (string-append name "-" version "-checkout"))
6628 (sha256
6629 (base32
6630 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
6631 (build-system emacs-build-system)
6632 (propagated-inputs
6633 `(("emacs-dash" ,emacs-dash)
fee23c17 6634 ("emacs-eimp" ,emacs-eimp)
730c0790
OP
6635 ("emacs-f" ,emacs-f)
6636 ("emacs-s" ,emacs-s)))
6637 (home-page "https://github.com/Fuco1/dired-hacks")
6638 (synopsis
6639 "Collection of useful dired additions")
6640 (description
6641 "Collection of Emacs dired mode additions:
6642@itemize
6643@item dired-avfs
6644@item dired-columns
6645@item dired-filter
6646@item dired-hacks-utils
6647@item dired-images
6648@item dired-list
6649@item dired-narrow
6650@item dired-open
6651@item dired-rainbow
6652@item dired-ranger
6653@item dired-subtree
6654@item dired-tagsistant
6655@end itemize\n")
6656 (license license:gpl3+))))
1a80e4d7
OP
6657
6658(define-public emacs-which-key
6659 (package
6660 (name "emacs-which-key")
5fa1b417 6661 (version "3.0.2")
1a80e4d7
OP
6662 (source
6663 (origin
6664 (method url-fetch)
6665 (uri (string-append
6666 "https://github.com/justbur/emacs-which-key/archive/v"
6667 version ".tar.gz"))
6668 (sha256
6669 (base32
5fa1b417 6670 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
1a80e4d7
OP
6671 (file-name (string-append name "-" version ".tar.gz"))))
6672 (build-system emacs-build-system)
6673 (arguments
d1d41db6
MC
6674 `(#:tests? #t
6675 #:test-command '("emacs" "--batch"
6676 "-l" "which-key-tests.el"
6677 "-f" "ert-run-tests-batch-and-exit")))
1a80e4d7
OP
6678 (home-page "https://github.com/justbur/emacs-which-key")
6679 (synopsis "Display available key bindings in popup")
2482c02f
AI
6680 (description
6681 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
6682bindings following your currently entered incomplete command (a prefix) in a
6683popup. For example, after enabling the minor mode if you enter C-x and wait
6684for the default of 1 second, the minibuffer will expand with all of the
6685available key bindings that follow C-x (or as many as space allows given your
6686settings).")
1a80e4d7 6687 (license license:gpl3+)))
c97979d6 6688
397d7980
MC
6689(define-public emacs-ws-butler
6690 (package
6691 (name "emacs-ws-butler")
6692 (version "0.6")
6693 (source (origin
6694 (method git-fetch)
6695 (uri (git-reference
6696 (url "https://github.com/lewang/ws-butler.git")
6697 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
6698 (file-name (string-append name "-" version "-checkout"))
6699 (sha256
6700 (base32
6701 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
6702 (build-system emacs-build-system)
6703 (native-inputs
6704 `(("ert-runner" ,ert-runner)))
6705 (arguments
d1d41db6
MC
6706 `(#:tests? #t
6707 #:test-command '("ert-runner" "tests")))
397d7980
MC
6708 (home-page "https://github.com/lewang/ws-butler")
6709 (synopsis "Trim spaces from end of lines")
6710 (description
6711 "This Emacs package automatically and unobtrusively trims whitespace
6712characters from end of lines.")
6713 (license license:gpl3+)))
6714
c97979d6
OP
6715(define-public emacs-org-edit-latex
6716 (package
6717 (name "emacs-org-edit-latex")
6718 (version "0.8.0")
6719 (source
6720 (origin
6721 (method url-fetch)
6722 (uri (string-append
6723 "https://github.com/et2010/org-edit-latex/archive/v"
6724 version ".tar.gz"))
6725 (file-name (string-append name "-" version ".tar.gz"))
6726 (sha256
6727 (base32
6728 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
6729 (build-system emacs-build-system)
6730 (propagated-inputs
6731 `(("emacs-auctex" ,emacs-auctex)
6732 ;; The version of org in Emacs 25.2 is not sufficient, because the
6733 ;; `org-latex-make-preamble' function is required.
6734 ("emacs-org" ,emacs-org)))
6735 (home-page "https://github.com/et2010/org-edit-latex")
6736 (synopsis "Edit a latex fragment just like editing a src block")
6737 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
6738It lets you edit a latex fragment in a dedicated buffer just like editing a
6739src block.")
6740 (license license:gpl3+)))
aadd75ac
OP
6741
6742(define-public emacs-emamux
6743 (package
6744 (name "emacs-emamux")
6745 (version "0.14")
6746 (source (origin
6747 (method url-fetch)
6748 (uri (string-append
6749 "https://github.com/syohex/emacs-emamux/archive/"
6750 version ".tar.gz"))
6751 (file-name (string-append name "-" version ".tar.gz"))
6752 (sha256
6753 (base32
6754 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
6755 (build-system emacs-build-system)
6756 (home-page "https://github.com/syohex/emacs-emamux")
6757 (synopsis "Manipulate Tmux from Emacs")
6758 (description
6759 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
6760multiplexer.")
6761 (license license:gpl3+)))
e8d9a878
OP
6762
6763(define-public emacs-rpm-spec-mode
6764 (package
6765 (name "emacs-rpm-spec-mode")
6766 (version "0.16")
6767 (source
6768 (origin
6769 (method url-fetch)
6770 ;; URI has the Fedora release number instead of the version
6771 ;; number. This will have to updated manually every new release.
6772 (uri (string-append
6773 "https://src.fedoraproject.org/cgit/rpms"
6774 "/emacs-rpm-spec-mode.git/snapshot"
6775 "/emacs-rpm-spec-mode-f26.tar.gz"))
6776 (sha256
6777 (base32
6778 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
6779 (build-system emacs-build-system)
6780 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
6781 (synopsis "Emacs major mode for editing RPM spec files")
6782 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
6783editing RPM spec files.")
6784 (license license:gpl2+)))
a88adeb3
OP
6785
6786(define-public emacs-git-messenger
6787 (package
6788 (name "emacs-git-messenger")
6789 (version "0.18")
6790 (source
6791 (origin
6792 (method url-fetch)
6793 (uri (string-append
6794 "https://github.com/syohex/emacs-git-messenger/archive/"
6795 version ".tar.gz"))
6796 (file-name (string-append name "-" version ".tar.gz"))
6797 (sha256
6798 (base32
6799 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
6800 (build-system emacs-build-system)
6801 (propagated-inputs
6802 `(("emacs-popup" ,emacs-popup)))
6803 (arguments
d1d41db6
MC
6804 `(#:tests? #t
6805 #:test-command '("emacs" "--batch" "-l" "test/test.el"
6806 "-f" "ert-run-tests-batch-and-exit")))
a88adeb3
OP
6807 (home-page "https://github.com/syohex/emacs-git-messenger")
6808 (synopsis "Popup commit message at current line")
6809 (description "@code{emacs-git-messenger} provides
6810@code{git-messenger:popup-message}, a function that when called, will popup
6811the last git commit message for the current line. This uses git-blame
6812internally.")
6813 (license license:gpl3+)))
1ee879e9
OP
6814
6815(define-public emacs-gitpatch
6816 (package
6817 (name "emacs-gitpatch")
6818 (version "0.5.0")
6819 (source
6820 (origin
6821 (method url-fetch)
6822 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
6823 "v" version ".tar.gz"))
6824 (file-name (string-append name "-" version ".tar.gz"))
6825 (sha256
6826 (base32
6827 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
6828 (build-system emacs-build-system)
6829 (home-page "https://github.com/tumashu/gitpatch")
6830 (synopsis "Mail git patch from Emacs")
6831 (description "@code{emacs-gitpatch} lets users easily send git patches,
6832created by @code{git format-patch}, from @code{magit}, @code{dired} and
6833@code{ibuffer} buffers.")
6834 (license license:gpl3+)))
27feda65
OP
6835
6836(define-public emacs-erc-hl-nicks
6837 (package
6838 (name "emacs-erc-hl-nicks")
6839 (version "1.3.2")
6840 (source
6841 (origin
6842 (method url-fetch)
6843 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
6844 "/archive/" version ".tar.gz"))
6845 (file-name (string-append name "-" version ".tar.gz"))
6846 (sha256
6847 (base32
6848 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
6849 (build-system emacs-build-system)
6850 (synopsis "Nickname highlighting for Emacs ERC")
6851 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
6852client for Emacs. The main features are:
6853@itemize
6854@item Auto-colorizes nicknames without having to specify colors
6855@item Ignores certain characters that IRC clients add to nicknames to avoid
6856duplicates (nickname, nickname’, nickname\", etc.)
6857@item Attempts to produce colors with a sufficient amount of contrast between
6858the nick color and the background color
6859@end itemize\n")
6860 (home-page "https://github.com/leathekd/erc-hl-nicks")
6861 (license license:gpl3+)))
f262f446
OP
6862
6863(define-public emacs-engine-mode
6864 (package
6865 (name "emacs-engine-mode")
6866 (version "2.0.0")
6867 (source
6868 (origin
6869 (method url-fetch)
6870 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
6871 "v" version ".tar.gz"))
6872 (file-name (string-append name "-" version ".tar.gz"))
6873 (sha256
6874 (base32
6875 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
6876 (build-system emacs-build-system)
6877 (synopsis "Minor mode for defining and querying search engines")
6878 (description "@code{engine-mode} is a global minor mode for Emacs. It
6879enables you to easily define search engines, bind them to keybindings, and
6880query them from the comfort of your editor.")
6881 (home-page "https://github.com/hrs/engine-mode")
6882 (license license:gpl3+)))
b9dcaced
PM
6883
6884(define-public emacs-prop-menu
6885 (package
6886 (name "emacs-prop-menu")
6887 (version "0.1.2")
6888 (source
6889 (origin
6890 (method url-fetch)
6891 (uri (string-append
6892 "http://stable.melpa.org/packages/prop-menu-"
6893 version ".el"))
6894 (sha256
6895 (base32
6896 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
6897 (build-system emacs-build-system)
6898 (home-page
6899 "https://github.com/david-christiansen/prop-menu-el")
6900 (synopsis
6901 "Create and display a context menu based on text and overlay properties")
6902 (description
6903 "This is a library for computing context menus based on text
6904properties and overlays. The intended use is to have tools that
6905annotate source code and others that use these annotations, without
6906requiring a direct coupling between them, but maintaining
6907discoverability.
6908
6909Major modes that wish to use this library should first define an
6910appropriate value for @code{prop-menu-item-functions}. Then, they should
6911bind @code{prop-menu-by-completing-read} to an appropriate
6912key. Optionally, a mouse pop-up can be added by binding
6913@code{prop-menu-show-menu} to a mouse event.")
6914 (license license:gpl3+)))
5883bb76
PM
6915
6916(define-public emacs-idris-mode
6917 (package
6918 (name "emacs-idris-mode")
6919 (version "0.9.19")
6920 (source
6921 (origin
6922 (method url-fetch)
6923 (uri (string-append
6924 "http://stable.melpa.org/packages/idris-mode-"
6925 version ".tar"))
6926 (sha256
6927 (base32
a05a637c 6928 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
5883bb76
PM
6929 (build-system emacs-build-system)
6930 (propagated-inputs
6931 `(("emacs-prop-menu" ,emacs-prop-menu)))
6932 (home-page
6933 "https://github.com/idris-hackers/idris-mode")
6934 (synopsis "Major mode for editing Idris code")
6935 (description
6936 "This is an Emacs mode for editing Idris code. It requires the latest
6937version of Idris, and some features may rely on the latest Git version of
6938Idris.")
6939 (license license:gpl3+)))
eaf4ba6e
OP
6940
6941(define-public emacs-browse-at-remote
0698633d 6942 (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef")
eaf4ba6e
OP
6943 (revision "1"))
6944 (package
6945 (name "emacs-browse-at-remote")
6946 (version (string-append "0.9.0-" revision "."
6947 (string-take commit 7)))
6948 (source (origin
6949 (method git-fetch)
6950 (uri (git-reference
6951 (url "https://github.com/rmuslimov/browse-at-remote.git")
6952 (commit commit)))
6953 (file-name (string-append name "-" version "-checkout"))
61995dce
OP
6954 (patches
6955 (search-patches "emacs-browse-at-remote-cgit-gnu.patch"))
eaf4ba6e
OP
6956 (sha256
6957 (base32
0698633d 6958 "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj"))))
eaf4ba6e
OP
6959 (build-system emacs-build-system)
6960 (propagated-inputs
6961 `(("emacs-f" ,emacs-f)
6962 ("emacs-s" ,emacs-s)))
8505d348
AK
6963 (native-inputs
6964 `(("ert-runner" ,ert-runner)))
eaf4ba6e 6965 (arguments
d1d41db6
MC
6966 `(#:tests? #t
6967 #:test-command '("ert-runner")))
eaf4ba6e
OP
6968 (home-page "https://github.com/rmuslimov/browse-at-remote")
6969 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
6970 (description
6971 "This Emacs package allows you to open a target page on
6972github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
6973It supports dired buffers and opens them in tree mode at destination.")
6974 (license license:gpl3+))))
63253098
OP
6975
6976(define-public emacs-tiny
6977 (package
6978 (name "emacs-tiny")
d8ec1b71 6979 (version "0.2.1")
63253098
OP
6980 (source
6981 (origin
6982 (method url-fetch)
6983 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
6984 (sha256
6985 (base32
d8ec1b71 6986 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
63253098
OP
6987 (build-system emacs-build-system)
6988 (home-page "https://github.com/abo-abo/tiny")
6989 (synopsis "Quickly generate linear ranges in Emacs")
6990 (description
6991 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
a913d9d9 6992It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
63253098
OP
6993proficiency is an advantage, since you can transform your numeric range with
6994an elisp expression.")
0b88f536 6995 (license license:gpl3+)))
4aafce22 6996
7081d4e0
RW
6997(define-public emacs-emojify
6998 (package
6999 (name "emacs-emojify")
7000 (version "0.4")
7001 (source
7002 (origin
7003 (method url-fetch)
7004 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7005 "releases/download/v" version "/emojify-"
7006 version ".tar"))
7007 (sha256
7008 (base32
7009 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7010 (build-system emacs-build-system)
7011 (arguments
7012 `(#:phases
7013 (modify-phases %standard-phases
7014 (add-after 'install 'install-data
7015 (lambda* (#:key outputs #:allow-other-keys)
7016 (copy-recursively "data"
7017 (string-append (assoc-ref outputs "out")
7018 "/share/emacs/site-lisp/guix.d/"
7019 "emojify-" ,version "/data"))
7020 #t)))))
7021 (propagated-inputs
7022 `(("emacs-ht" ,emacs-ht)))
7023 (home-page "https://github.com/iqbalansari/emacs-emojify")
7024 (synopsis "Display emojis in Emacs")
7025 (description "This package displays emojis in Emacs similar to how Github,
7026Slack, and other websites do. It can display plain ASCII like @code{:)} as
7027well as Github-style emojis like @code{:smile:}. It provides a minor mode
7028@code{emojify-mode} to enable the display of emojis in a buffer.")
7029 (license license:gpl3+)))
7030
9c058ef2
RW
7031(define-public emacs-websocket
7032 (package
7033 (name "emacs-websocket")
a6334e6e 7034 (version "1.10")
9c058ef2
RW
7035 (source
7036 (origin
a6334e6e
RW
7037 (method git-fetch)
7038 (uri (git-reference
7039 (url "https://github.com/ahyatt/emacs-websocket.git")
7040 (commit version)))
7041 (file-name (string-append name "-" version "-checkout"))
9c058ef2
RW
7042 (sha256
7043 (base32
a6334e6e 7044 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
9c058ef2
RW
7045 (build-system emacs-build-system)
7046 (home-page "http://elpa.gnu.org/packages/websocket.html")
7047 (synopsis "Emacs WebSocket client and server")
7048 (description "This is an Elisp library for WebSocket clients to talk to
7049WebSocket servers, and for WebSocket servers to accept connections from
7050WebSocket clients. This library is designed to be used by other library
7051writers, to write applications that use WebSockets, and is not useful by
7052itself.")
7053 (license license:gpl3+)))
7054
a204c14c
RW
7055(define-public emacs-oauth2
7056 (package
7057 (name "emacs-oauth2")
7058 (version "0.11")
7059 (source
7060 (origin
7061 (method url-fetch)
7062 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7063 version ".el"))
7064 (sha256
7065 (base32
7066 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7067 (build-system emacs-build-system)
7068 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7069 (synopsis "OAuth 2.0 authorization protocol implementation")
7070 (description
7071 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7072The main entry point is @code{oauth2-auth-and-store} which will return a token
7073structure. This token structure can be then used with
7074@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7075retrieve any data that need OAuth authentication to be accessed. If the token
7076needs to be refreshed, the code handles it automatically and stores the new
7077value of the access token.")
7078 (license license:gpl3+)))
7079
26b388ce
RW
7080(define-public emacs-circe
7081 (package
7082 (name "emacs-circe")
7083 (version "2.6")
7084 (source
7085 (origin
7086 (method git-fetch)
7087 (uri (git-reference
7088 (url "https://github.com/jorgenschaefer/circe.git")
7089 (commit (string-append "v" version))))
7090 (file-name (string-append name "-" version "-checkout"))
7091 (sha256
7092 (base32
7093 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
7094 (build-system emacs-build-system)
7095 ;; In order to securely connect to an IRC server using TLS, Circe requires
7096 ;; the GnuTLS binary.
7097 (propagated-inputs
7098 `(("gnutls" ,gnutls)))
7099 (home-page "https://github.com/jorgenschaefer/circe")
7100 (synopsis "Client for IRC in Emacs")
7101 (description "Circe is a Client for IRC in Emacs. It integrates well with
7102the rest of the editor, using standard Emacs key bindings and indicating
7103activity in channels in the status bar so it stays out of your way unless you
7104want to use it.")
7105 (license license:gpl3+)))
7106
5c8cdd4e 7107(define-public emacs-slack
deb48944
RW
7108 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7109 (revision "4"))
5c8cdd4e
RW
7110 (package
7111 (name "emacs-slack")
7112 (version (string-append "0-" revision "." (string-take commit 7)))
7113 (source (origin
7114 (method git-fetch)
7115 (uri (git-reference
7116 (url "https://github.com/yuya373/emacs-slack.git")
7117 (commit commit)))
7118 (file-name (string-append name "-" version "-checkout"))
7119 (sha256
7120 (base32
deb48944 7121 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
5c8cdd4e
RW
7122 (build-system emacs-build-system)
7123 (propagated-inputs
7124 `(("emacs-alert" ,emacs-alert)
7125 ("emacs-emojify" ,emacs-emojify)
7126 ("emacs-request" ,emacs-request)
7127 ("emacs-websocket" ,emacs-websocket)
7128 ("emacs-oauth2" ,emacs-oauth2)
7129 ("emacs-circe" ,emacs-circe)))
7130 (home-page "https://github.com/yuya373/emacs-slack")
7131 (synopsis "Slack client for Emacs")
7132 (description "This package provides an Emacs client for the Slack
7133messaging service.")
7134 (license license:gpl3+))))
7135
4aafce22
JN
7136(define-public emacs-bash-completion
7137 (package
7138 (name "emacs-bash-completion")
7139 (version "2.0.0")
7140 (source
7141 (origin
7142 (method url-fetch)
7143 (uri (string-append
7144 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7145 version ".tar.gz"))
7146 (file-name (string-append name "-" version ".tar.gz"))
7147 (sha256
7148 (base32
7149 "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
7150 (inputs `(("bash" ,bash)))
7151 (build-system emacs-build-system)
7152 (arguments
7153 `(#:phases
7154 (modify-phases %standard-phases
7155 (add-before 'install 'configure
7156 (lambda* (#:key inputs #:allow-other-keys)
7157 (let ((bash (assoc-ref inputs "bash")))
7158 (emacs-substitute-variables "bash-completion.el"
7159 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7160 #t)))))
7161 (home-page "https://github.com/szermatt/emacs-bash-completion")
7162 (synopsis "BASH completion for the shell buffer")
7163 (description
7164 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7165and shell-command prompts that are based on bash completion.")
7166 (license license:gpl2+)))
d02c2873
KM
7167
7168(define-public emacs-easy-kill
7169 (package
7170 (name "emacs-easy-kill")
7171 (version "0.9.3")
7172 (source (origin
7173 (method url-fetch)
7174 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7175 version ".tar"))
7176 (sha256
7177 (base32
7178 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7179 (build-system emacs-build-system)
7180 (home-page "https://github.com/leoliu/easy-kill")
7181 (synopsis "Kill and mark things easily in Emacs")
7182 (description
7183 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7184let users kill or mark things easily.")
7185 (license license:gpl3+)))
9faa46ee
MC
7186
7187(define-public emacs-csv-mode
7188 (package
7189 (name "emacs-csv-mode")
7190 (version "1.7")
7191 (source
7192 (origin
7193 (method url-fetch)
7194 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7195 version ".el"))
7196 (sha256
7197 (base32
7198 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7199 (build-system emacs-build-system)
7200 (home-page
7201 "http://elpa.gnu.org/packages/csv-mode.html")
7202 (synopsis
7203 "Major mode for editing comma/char separated values")
7204 (description
7205 "This Emacs package implements CSV mode, a major mode for editing records
7206in a generalized CSV (character-separated values) format.")
7207 (license license:gpl3+)))
3fe4c9dc
OP
7208
7209(define-public emacs-transmission
7210 (package
7211 (name "emacs-transmission")
5ad13e6c 7212 (version "0.12.1")
3fe4c9dc
OP
7213 (source (origin
7214 (method url-fetch)
7215 (uri (string-append
7216 "https://github.com/holomorph/transmission/archive/"
7217 version ".tar.gz"))
7218 (file-name (string-append name "-" version ".tar.gz"))
7219 (sha256
7220 (base32
5ad13e6c 7221 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
3fe4c9dc
OP
7222 (build-system emacs-build-system)
7223 (home-page "https://github.com/holomorph/transmission")
7224 (synopsis "Emacs interface to a Transmission session")
7225 (description "This package provides an Emacs interface to interact with a
7226running session of the Transmission Bittorrent client.
7227
7228Features:
7229
7230@itemize
7231@item List, add, start/stop, verify, remove torrents.
7232@item Set speed limits, ratio limits, bandwidth priorities, trackers.
7233@item Navigate to the corresponding file list, torrent info, peer info
7234contexts.
7235@item Toggle downloading and set priorities for individual files.
7236@end itemize\n")
7237 (license license:gpl3+)))
a6d02fc1 7238
c46e654f
RW
7239(define-public emacs-polymode
7240 ;; There hasn't been a proper release.
7241 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7242 (revision "1"))
7243 (package
7244 (name "emacs-polymode")
7245 (version (string-append "1.0-" revision "." (string-take commit 7)))
7246 (source (origin
7247 (method git-fetch)
7248 (uri (git-reference
7249 (url "https://github.com/vspinu/polymode.git")
7250 (commit commit)))
7251 (file-name (string-append name "-" version "-checkout"))
7252 (sha256
7253 (base32
7254 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7255 (build-system emacs-build-system)
74b4d7a1
MC
7256 (arguments
7257 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7258 #:phases
7259 (modify-phases %standard-phases
7260 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7261 (lambda _
7262 (setenv "EMACSLOADPATH"
7263 (string-append (getenv "EMACSLOADPATH")
7264 ":" (getcwd) "/modes" ":")))))))
c46e654f
RW
7265 (home-page "https://github.com/vspinu/polymode")
7266 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7267 (description "Polymode is an Emacs package that offers generic support
7268for multiple major modes inside a single Emacs buffer. It is lightweight,
7269object oriented and highly extensible. Creating a new polymode typically
7270takes only a few lines of code. Polymode also provides extensible facilities
7271for external literate programming tools for exporting, weaving and tangling.")
7272 (license license:gpl3+))))
7273
a6d02fc1
OP
7274(define-public eless
7275 (package
7276 (name "eless")
7277 (version "0.3")
7278 (source (origin
7279 (method url-fetch)
7280 (uri (string-append
7281 "https://github.com/kaushalmodi/eless/archive/"
7282 "v" version ".tar.gz"))
7283 (file-name (string-append name "-" version ".tar.gz"))
7284 (sha256
7285 (base32
7286 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7287 (build-system trivial-build-system)
7288 (inputs
7289 `(("bash" ,bash)))
7290 (native-inputs
7291 `(("tar" ,tar)
7292 ("gzip" ,gzip)))
7293 (arguments
7294 `(#:modules ((guix build utils))
7295 #:builder
7296 (begin
7297 (use-modules (guix build utils))
7298 (setenv "PATH" (string-append
7299 (assoc-ref %build-inputs "tar") "/bin" ":"
7300 (assoc-ref %build-inputs "gzip") "/bin"))
7301 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7302 (chdir (string-append "eless" "-" ,version))
7303 (substitute* "eless" (("/usr/bin/env bash")
7304 (string-append (assoc-ref %build-inputs "bash")
7305 "/bin/bash")))
7306 (install-file "eless" (string-append %output "/bin"))
7307 (install-file "doc/eless.info" (string-append %output "/share/info"))
7308 #t)))
7309 (home-page "https://github.com/kaushalmodi/eless")
7310 (synopsis "Use Emacs as a paginator")
7311 (description "@code{eless} provides a combination of Bash script
7312and a minimal Emacs view-mode.
7313
7314Feautures:
7315
7316@itemize
7317@item Independent of a user’s Emacs config.
7318@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7319@item Not require an Emacs server to be already running.
7320@item Syntax highlighting.
7321@item Org-mode file rendering.
7322@item @code{man} page viewer.
7323@item Info viewer.
7324@item Dired, wdired, (batch edit symbolic links).
7325@item Colored diffs, git diff, git log, ls with auto ANSI detection.
7326@item Filter log files lines matching a regexp.
7327@item Auto-revert log files similar to @code{tail -f}.
7328@item Quickly change frame and font sizes.
7329@end itemize\n")
7330 (license license:expat)))
491cbd35
MG
7331
7332(define-public emacs-evil-matchit
7333 (package
7334 (name "emacs-evil-matchit")
9a910133 7335 (version "2.2.6")
491cbd35
MG
7336 (source
7337 (origin
7338 (method url-fetch)
7339 (uri (string-append
7340 "https://github.com/redguardtoo/evil-matchit/archive/"
7341 version ".tar.gz"))
7342 (file-name (string-append name "-" version ".tar.gz"))
7343 (sha256
7344 (base32
9a910133 7345 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
491cbd35 7346 (build-system emacs-build-system)
80c4aabb
MC
7347 (propagated-inputs
7348 `(("emacs-evil" ,emacs-evil)))
491cbd35
MG
7349 (home-page "https://github.com/redguardtoo/evil-matchit")
7350 (synopsis "Vim matchit ported into Emacs")
7351 (description
7352 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7353evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7354 (license license:gpl3+)))
ab8a4a78
AI
7355
7356(define-public emacs-evil-smartparens
7357 (package
7358 (name "emacs-evil-smartparens")
7359 (version "0.4.0")
7360 (source
7361 (origin
7362 (method url-fetch)
7363 (uri (string-append
7364 "https://github.com/expez/evil-smartparens/archive/"
7365 version ".tar.gz"))
7366 (file-name (string-append name "-" version ".tar.gz"))
7367 (sha256
7368 (base32
7369 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7370 (build-system emacs-build-system)
7371 (propagated-inputs
7372 `(("emacs-evil" ,emacs-evil)
7373 ("emacs-smartparens" ,emacs-smartparens)))
7374 (home-page "https://github.com/expez/evil-smartparens")
7375 (synopsis "Emacs Evil integration for Smartparens")
7376 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7377makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7378emulates Vim features and provides Vim-like key bindings.")
7379 (license license:gpl3+)))
2891ea39
AI
7380
7381(define-public emacs-evil-quickscope
7382 (package
7383 (name "emacs-evil-quickscope")
7384 (version "0.1.4")
7385 (source
7386 (origin
7387 (method url-fetch)
7388 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7389 version ".tar.gz"))
7390 (file-name (string-append name "-" version ".tar.gz"))
7391 (sha256
7392 (base32
7393 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7394 (build-system emacs-build-system)
7395 (propagated-inputs
7396 `(("emacs-evil" ,emacs-evil)))
7397 (arguments
d1d41db6
MC
7398 `(#:tests? #t
7399 #:test-command '("emacs" "--batch"
7400 "-l" "evil-quickscope-tests.el"
7401 "-f" "ert-run-tests-batch-and-exit")))
2891ea39
AI
7402 (home-page "https://github.com/blorbx/evil-quickscope")
7403 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7404 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7405mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7406port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7407features and provides Vim-like key bindings.")
7408 (license license:gpl3+)))
2a67ff1f
MO
7409
7410(define-public emacs-bongo
7411 (package
7412 (name "emacs-bongo")
7413 (version "1.0")
7414 (source
7415 (origin
7416 (method url-fetch)
7417 (uri (string-append
7418 "https://github.com/dbrock/bongo/archive/"
7419 version ".tar.gz"))
7420 (file-name (string-append name "-" version ".tar.gz"))
7421 (sha256
7422 (base32
7423 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7424 (build-system emacs-build-system)
7425 (home-page "https://github.com/dbrock/bongo")
7426 (synopsis "Media player for Emacs")
7427 (description
7428 "This package provides a flexible media player for Emacs. @code{Bongo}
7429supports multiple backends such as @code{vlc}, @code{mpg123},
7430@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7431@code{afplay}.")
7432 (license license:gpl2+)))
548cc74c
CB
7433
7434(define-public groovy-emacs-modes
7435 (package
7436 (name "groovy-emacs-modes")
7437 (version "2.0")
7438 (source (origin
7439 (method url-fetch)
7440 (uri (string-append
7441 "https://github.com/Groovy-Emacs-Modes/" name
7442 "/archive/" version ".tar.gz"))
7443 (file-name (string-append name "-" version ".tar.gz"))
7444 (sha256
7445 (base32
7446 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7447 (build-system emacs-build-system)
7448 (propagated-inputs
7449 `(("emacs-s" ,emacs-s)))
7450 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7451 (synopsis "Groovy related modes for Emacs")
7452 (description
7453 "This package provides @code{groovy-mode} for syntax highlighing in
7454Groovy source files, REPL integration with run-groovy and Grails project
7455navigation with the grails mode.")
7456 (license license:gpl3+)))
02267798
LC
7457
7458(define-public org-tree-slide
7459 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
7460 (revision "0"))
7461 (package
7462 (name "emacs-org-tree-slide")
7463 (version (git-version "0.1" revision commit))
7464 (home-page "https://github.com/takaxp/org-tree-slide")
7465 (source (origin
7466 (method git-fetch)
7467 (uri (git-reference (url home-page) (commit commit)))
7468 (sha256
7469 (base32
7470 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
7471 (file-name (git-file-name name version))))
7472 (build-system emacs-build-system)
7473 (synopsis "Presentation tool for org-mode")
7474 (description
7475 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
7476@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
7477@kbd{C-<} to jump to the next and previous slide.")
7478 (license license:gpl3+))))
ac07b94a
OP
7479
7480(define-public emacs-scratch-el
7481 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
7482 (revision "1"))
7483 (package
7484 (name "emacs-scratch-el")
7485 (version (git-version "1.2" revision commit))
7486 (source (origin
7487 (method git-fetch)
7488 (uri (git-reference
7489 (url "https://github.com/ieure/scratch-el.git")
7490 (commit commit)))
7491 (file-name (git-file-name name version))
7492 (sha256
7493 (base32
7494 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
7495 (build-system emacs-build-system)
7496 (native-inputs
7497 `(("texinfo" ,texinfo)))
7498 (arguments
7499 '(#:phases
7500 (modify-phases %standard-phases
7501 (add-after 'install 'install-doc
7502 (lambda* (#:key outputs #:allow-other-keys)
7503 (unless (invoke "makeinfo" "scratch.texi")
7504 (error "makeinfo failed"))
7505 (install-file "scratch.info"
7506 (string-append (assoc-ref outputs "out")
7507 "/share/info"))
7508 #t)))))
7509 (home-page "https://github.com/ieure/scratch-el/")
7510 (synopsis "Create scratch buffers with the same mode as current buffer")
7511 (description "Scratch is an extension to Emacs that enables one to create
7512scratch buffers that are in the same mode as the current buffer. This is
7513notably useful when working on code in some language; you may grab code into a
7514scratch buffer, and, by virtue of this extension, do so using the Emacs
7515formatting rules for that language.")
7516 (license license:bsd-2))))
5b238292 7517
62950ec7
MC
7518(define-public emacs-kv
7519 (package
7520 (name "emacs-kv")
7521 (version "0.0.19")
7522 (source
7523 (origin
7524 (method git-fetch)
7525 (uri (git-reference
7526 (url "https://github.com/nicferrier/emacs-kv.git")
7527 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
7528 (file-name (string-append name "-" version "-checkout"))
7529 (sha256
7530 (base32
7531 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
7532 (build-system emacs-build-system)
7533 (arguments
7534 `(#:tests? #t
7535 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
7536 "-f" "ert-run-tests-batch-and-exit")))
7537 (home-page "https://github.com/nicferrier/emacs-kv")
7538 (synopsis "Key/Value data structures library for Emacs Lisp")
7539 (description "@code{emacs-kv} is a collection of tools for dealing with
7540key/value data structures such as plists, alists and hash-tables in Emacs
7541Lisp.")
7542 (license license:gpl3+)))
7543
8d899214
RW
7544(define-public emacs-esxml
7545 (package
7546 (name "emacs-esxml")
7547 (version "0.3.4")
7548 (source (origin
7549 (method git-fetch)
7550 (uri (git-reference
7551 (url "https://github.com/tali713/esxml.git")
7552 (commit version)))
7553 (file-name (git-file-name name version))
7554 (sha256
7555 (base32
7556 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
7557 (build-system emacs-build-system)
9835a71d
MC
7558 (arguments
7559 `(#:phases
7560 (modify-phases %standard-phases
7561 (add-after 'unpack 'fix-sources
7562 (lambda _
7563 ;; See: https://github.com/tali713/esxml/pull/28.
7564 (substitute* "css-lite.el"
7565 ((";;; main interface")
7566 (string-append ";;; main interface\n"
7567 "(require 'cl-lib)"))
7568 (("mapcan")
7569 "cl-mapcan")
7570 (("',\\(cl-mapcan #'process-css-rule rules\\)")
7571 "(cl-mapcan #'process-css-rule ',rules)"))
7572 (substitute* "esxml-form.el"
7573 ((",esxml-form-field-defn")
7574 "#'esxml-form-field-defn"))
7575 ;; See: https://github.com/tali713/esxml/issues/25
7576 (delete-file "esxpath.el")
7577 #t)))))
7578 (propagated-inputs
7579 `(("emacs-kv" ,emacs-kv)))
8d899214
RW
7580 (home-page "https://github.com/tali713/esxml/")
7581 (synopsis "SXML for EmacsLisp")
7582 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
7583Simply, this is the easiest way to write HTML or XML in Lisp. This library
7584uses the native form of XML representation as used by many libraries already
7585included within Emacs. See @code{esxml-to-xml} for a concise description of
7586the format.")
7587 (license license:gpl3+)))
7588
5f78ce49
RW
7589(define-public emacs-nov-el
7590 (package
7591 (name "emacs-nov-el")
7592 (version "0.2.2")
7593 (source (origin
7594 (method git-fetch)
7595 (uri (git-reference
7596 (url "https://github.com/wasamasa/nov.el.git")
7597 (commit version)))
7598 (file-name (git-file-name name version))
7599 (sha256
7600 (base32
7601 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
7602 (build-system emacs-build-system)
7603 (arguments
7604 `(#:phases
7605 (modify-phases %standard-phases
7606 (add-after 'unpack 'embed-path-to-unzip
7607 (lambda _
7608 (substitute* "nov.el"
7609 (("\\(executable-find \"unzip\"\\)")
7610 (string-append "\"" (which "unzip") "\"")))
7611 #t)))))
7612 (propagated-inputs
7613 `(("emacs-dash" ,emacs-dash)
7614 ("emacs-esxml" ,emacs-esxml)))
7615 (inputs
7616 `(("unzip" ,unzip)))
7617 (home-page "https://github.com/wasamasa/nov.el/")
7618 (synopsis "Major mode for reading EPUBs in Emacs")
7619 (description "@code{nov.el} provides a major mode for reading EPUB
7620documents.
7621
7622Features:
7623
7624@itemize
7625@item Basic navigation (jump to TOC, previous/next chapter)
7626@item Remembering and restoring the last read position
7627@item Jump to next chapter when scrolling beyond end
7628@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
7629@item Hyperlinks to internal and external targets
7630@item Supports textual and image documents
7631@item View source of document files
7632@item Metadata display
7633@item Image rescaling
7634@end itemize
7635")
7636 (license license:gpl3+)))
7637
5b238292
OP
7638(define-public epipe
7639 (package
7640 (name "epipe")
7641 (version "0.1.0")
7642 (source
7643 (origin
7644 (method url-fetch)
7645 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
7646 version ".tar.gz"))
7647 (file-name (string-append name "-" version ".tar.gz"))
7648 (sha256
7649 (base32
7650 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
7651 (build-system trivial-build-system)
7652 (inputs
7653 `(("bash" ,bash)
7654 ("perl" ,perl)))
7655 (native-inputs
7656 `(("tar" ,tar)
7657 ("gzip" ,gzip)))
7658 (arguments
7659 `(#:modules
7660 ((guix build utils))
7661 #:builder
7662 (begin
7663 (use-modules (guix build utils))
7664 ;; Extract source
7665 (setenv "PATH" (string-append
7666 (assoc-ref %build-inputs "tar") "/bin" ":"
7667 (assoc-ref %build-inputs "gzip") "/bin"))
7668 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7669 (chdir (string-append ,name "-" ,version))
7670 ;; Patch shebangs
7671 (substitute* "epipe"
7672 (("/usr/bin/env bash")
7673 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
7674 (patch-shebang "epipe.pl"
7675 (list (string-append (assoc-ref %build-inputs "perl")
7676 "/bin")))
7677 ;; Installation
7678 (for-each (lambda (file)
7679 (install-file file (string-append %output "/bin")))
7680 '("epipe" "epipe.pl"))
7681 #t)))
7682 (home-page "https://github.com/cute-jumper/epipe")
7683 (synopsis "Pipe to the @code{emacsclient}")
7684 (description "@code{epipe} provides an utility to use your editor in
7685the pipeline, featuring the support for running @code{emacsclient}.")
7686 (license license:gpl3+)))
dc97f7e2
CB
7687
7688(define-public emacs-hcl-mode
7689 (package
7690 (name "emacs-hcl-mode")
7691 (version "0.03")
7692 (source
7693 (origin
7694 (method url-fetch)
7695 (uri (string-append
7696 "https://github.com/syohex/emacs-hcl-mode/archive/"
7697 version ".tar.gz"))
7698 (file-name (string-append name "-" version ".tar.gz"))
7699 (sha256
7700 (base32
7701 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
7702 (build-system emacs-build-system)
7703 (home-page "https://github.com/syohex/emacs-hcl-mode")
7704 (synopsis "Major mode for the Hashicorp Configuration Language")
7705 (description
7706 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
7707@acronym{HCL, Hashicorp Configuration Language}. It provides syntax
7708highlighting and indentation support.")
7709 (license license:gpl3+)))
68d70f6a
CB
7710
7711(define-public emacs-terraform-mode
7712 (package
7713 (name "emacs-terraform-mode")
7714 (version "0.06")
7715 (source
7716 (origin
7717 (method url-fetch)
7718 (uri (string-append
7719 "https://github.com/syohex/emacs-terraform-mode/archive/"
7720 version ".tar.gz"))
7721 (file-name (string-append name "-" version ".tar.gz"))
7722 (sha256
7723 (base32
7724 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
7725 (build-system emacs-build-system)
7726 (propagated-inputs
7727 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
7728 (home-page "https://github.com/syohex/emacs-terraform-mode")
7729 (synopsis "Major mode for Terraform")
7730 (description
7731 "@code{emacs-terraform-mode} provides a major mode for working with
7732@uref{https://www.terraform.io/, Terraform} configuration files. Most of the
7733functionality is inherited from @code{hcl-mode}.")
7734 (license license:gpl3+)))
22d62814
KH
7735
7736(define-public emacs-exec-path-from-shell
7737 (package
7738 (name "emacs-exec-path-from-shell")
7739 (version "1.11")
7740 (source
7741 (origin
7742 (method url-fetch)
7743 (uri (string-append
7744 "https://stable.melpa.org/packages/exec-path-from-shell-"
7745 version ".el"))
7746 (sha256
7747 (base32
7748 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
7749 (build-system emacs-build-system)
7750 (home-page "https://github.com/purcell/exec-path-from-shell")
7751 (synopsis "Get environment variables such as @var{PATH} from the shell")
7752 (description
7753 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
7754from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
7755the like work as expected on systems on which Emacs is not guaranteed to
7756inherit a login shell's environment variables. It also allows other
7757environment variables to be retrieved from the shell, so that Emacs will see
7758the same values you get in a terminal.")
7759 (license license:gpl3+)))
5d818b35
KH
7760
7761(define-public emacs-deft
7762 (package
7763 (name "emacs-deft")
7764 (version "0.8")
7765 (source
7766 (origin
7767 (method url-fetch)
7768 (uri (string-append "https://stable.melpa.org/packages/deft-"
7769 version ".el"))
7770 (sha256
7771 (base32
7772 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
7773 (build-system emacs-build-system)
7774 (home-page "https://jblevins.org/projects/deft/")
7775 (synopsis "Quickly browse, filter, and edit plain text notes")
7776 (description
7777 "Deft is an Emacs mode for quickly browsing, filtering, and editing
7778directories of plain text notes, inspired by Notational Velocity.")
7779 (license license:bsd-3)))
62d1105c
SB
7780
7781(define-public emacs-anzu
7782 (package
7783 (name "emacs-anzu")
7784 (version "0.62")
7785 (source
7786 (origin
7787 (method url-fetch)
2d11acb6
SB
7788 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
7789 version ".tar.gz"))
7790 (file-name (string-append name "-" version ".tar.gz"))
62d1105c
SB
7791 (sha256
7792 (base32
2d11acb6 7793 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
62d1105c
SB
7794 (build-system emacs-build-system)
7795 (home-page "https://github.com/syohex/emacs-anzu")
7796 (synopsis "Show number of matches in mode-line while searching")
7797 (description
7798 "Anzu provides a minor mode which displays \"current match/total
7799matches\" in the mode line in various search modes. This is an Emacs port of
7800Anzu.zim.")
7801 (license license:gpl3+)))
c3581ef9
ML
7802
7803(define-public emacs-emmet-mode
7804 (package
7805 (name "emacs-emmet-mode")
7806 (version "1.0.8")
7807 (source (origin
7808 (method url-fetch)
7809 (uri (string-append "https://github.com/smihica/emmet-mode"
7810 "/archive/" version ".tar.gz"))
7811 (file-name (string-append name "-" version ".tar.gz"))
7812 (sha256
7813 (base32
7814 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
7815 (build-system emacs-build-system)
7816 (home-page "https://github.com/smihica/emmet-mode")
7817 (synopsis "Unofficial Emmet's support for Emacs")
7818 (description
7819 "Unfold CSS-selector-like expressions to markup. It is intended to be
7820used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
7821 (license license:gpl3+)))
03efe78c 7822
82bead75
RW
7823(define-public emacs-ergoemacs-mode
7824 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
7825 (revision "1"))
7826 (package
7827 (name "emacs-ergoemacs-mode")
7828 (version (git-version "5.16.10.12" revision commit))
7829 (source
7830 (origin
7831 (method git-fetch)
7832 (uri (git-reference
7833 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
7834 (commit commit)))
7835 (sha256
7836 (base32
7837 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
7838 (build-system emacs-build-system)
7839 (propagated-inputs
7840 `(("emacs-undo-tree" ,emacs-undo-tree)))
7841 (home-page "https://ergoemacs.github.io/")
7842 (synopsis "Emacs mode based on common modern interface and ergonomics")
7843 (description
7844 "This package provides an efficient Emacs keybinding set based on
7845statistics of command frequency, and supports common shortcuts for open,
7846close, copy, cut, paste, undo, redo.")
7847 (license license:gpl3+))))
7848
03efe78c
KH
7849(define-public emacs-password-store
7850 (package
7851 (name "emacs-password-store")
7852 (version "1.7.1")
7853 (source (origin
7854 (method url-fetch)
7855 (uri
7856 (string-append "https://git.zx2c4.com/password-store/snapshot/"
7857 "password-store-" version ".tar.xz"))
7858 (sha256
7859 (base32
7860 "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
7861 (build-system emacs-build-system)
7862 (arguments
7863 `(#:phases
7864 (modify-phases %standard-phases
7865 (add-after 'unpack 'extract-el-file
7866 (lambda _
7867 (copy-file "contrib/emacs/password-store.el" "password-store.el")
7868 (delete-file-recursively "contrib")
7869 (delete-file-recursively "man")
7870 (delete-file-recursively "src")
7871 (delete-file-recursively "tests"))))))
7872 (propagated-inputs
7873 `(("emacs-f" ,emacs-f)
7874 ("emacs-s" ,emacs-s)
7875 ("password-store" ,password-store)))
7876 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
7877 (synopsis "Password store (pass) support for Emacs")
7878 (description
7879 "This package provides functions for working with pass (\"the
7880standard Unix password manager\").")
7881 (license license:gpl2+)))
7882
ab4d1c26
KH
7883(define-public emacs-pass
7884 (package
7885 (name "emacs-pass")
7886 (version "1.7")
7887 (source (origin
7888 (method url-fetch)
7889 (uri (string-append
7890 "https://github.com/NicolasPetton/pass/archive/"
7891 version ".tar.gz"))
7892 (sha256
7893 (base32
7894 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
7895 (file-name (string-append name "-" version ".tar.gz"))))
7896 (build-system emacs-build-system)
7897 (propagated-inputs
7898 `(("emacs-password-store" ,emacs-password-store)
7899 ("emacs-f" ,emacs-f)))
7900 (home-page "https://github.com/NicolasPetton/pass")
7901 (synopsis "Major mode for @file{password-store.el}")
7902 (description "This is a major mode for managing password-store (pass)
7903keychains. The keychain entries are displayed in a directory-like structure
7904and can be consulted and modified.")
7905 (license license:gpl3+)))
7906
d4bb4551
SB
7907(define-public emacs-evil-anzu
7908 (package
7909 (name "emacs-evil-anzu")
7910 (version "0.03")
7911 (source
7912 (origin
7913 (method url-fetch)
7914 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
7915 "/archive/" version ".tar.gz"))
7916 (file-name (string-append name "-" version ".tar.gz"))
7917 (sha256
7918 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
7919 (build-system emacs-build-system)
7920 (propagated-inputs
7921 `(("emacs-evil" ,emacs-evil)
7922 ("emacs-anzu" ,emacs-anzu)))
7923 (home-page "https://github.com/syohex/emacs-evil-anzu")
7924 (synopsis "Anzu for evil-mode")
7925 (description "@code{anzu} provides a minor mode that displays the current
7926match and total match information in the mode-line in various search modes.")
7927 (license license:gpl3+)))
086bfb37
OP
7928
7929(define-public emacs-pg
7930 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
7931 (package
7932 (name "emacs-pg")
7933 (version (git-version "0.1" "1" commit))
7934 (source (origin
7935 (method git-fetch)
7936 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
7937 (commit commit)))
7938 (file-name (git-file-name name version))
7939 (sha256
7940 (base32
7941 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
7942 (build-system emacs-build-system)
7943 (home-page "https://github.com/cbbrowne/pg.el")
7944 (synopsis "Emacs Lisp interface for PostgreSQL")
7945 (description
7946 "This package provides an Emacs Lisp interface for PostgreSQL.")
7947 (license license:gpl3+))))
5b6d6747
OP
7948
7949(define-public emacs-cl-generic
7950 (package
7951 (name "emacs-cl-generic")
7952 (version "0.3")
7953 (source
7954 (origin
7955 (method url-fetch)
7956 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
7957 version ".el"))
7958 (sha256
7959 (base32
7960 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
7961 (build-system emacs-build-system)
7962 (home-page "https://elpa.gnu.org/packages/seq.html")
7963 (synopsis
7964 "Forward @code{cl-generic} compatibility for Emacs before version 25")
7965 (description "This package provides a subset of the features of the
7966@code{cl-generic} package introduced in Emacs-25, for use on previous
7967@code{emacsen}.")
7968 (license license:gpl3+)))
6c92b440
OP
7969
7970(define-public emacs-finalize
7971 (package
7972 (name "emacs-finalize")
7973 (version "2.0.0")
7974 (source
7975 (origin
7976 (method url-fetch)
7977 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
7978 version ".tar.gz"))
7979 (file-name (string-append name "-" version ".tar.gz"))
7980 (sha256
7981 (base32
7982 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
7983 (build-system emacs-build-system)
7984 (propagated-inputs
7985 `(("emacs-cl-generic" ,emacs-cl-generic)))
7986 (home-page "https://github.com/skeeto/elisp-finalize")
7987 (synopsis "Finalizers for Emacs Lisp")
7988 (description
7989 "This package will allows to immediately run a callback (a finalizer)
7990after its registered lisp object has been garbage collected. This allows for
7991extra resources, such as buffers and processes, to be cleaned up after the
7992object has been freed.")
7993 (license license:unlicense)))
4d089b5e
OP
7994
7995(define-public emacs-emacsql
7996 (package
7997 (name "emacs-emacsql")
7998 (version "2.0.3")
7999 (source
8000 (origin
8001 (method url-fetch)
8002 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8003 version ".tar.gz"))
8004 (file-name (string-append name "-" version ".tar.gz"))
8005 (sha256
8006 (base32
8007 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8008 (build-system emacs-build-system)
8009 (arguments
8010 `(#:modules ((guix build emacs-build-system)
8011 (guix build utils)
8012 (guix build emacs-utils)
8013 (srfi srfi-26))
8014 #:phases
8015 (modify-phases %standard-phases
8016 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8017 (add-before 'install 'patch-elisp-shell-shebangs
8018 (lambda _
8019 (substitute* (find-files "." "\\.el")
8020 (("/bin/sh") (which "sh")))
8021 #t))
8022 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8023 (lambda _
8024 (setenv "SHELL" "sh")))
8025 (add-after 'setenv-shell 'build-emacsql-sqlite
8026 (lambda _
8027 (invoke "make" "binary" "CC=gcc")))
8028 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8029 ;; This build phase installs emacs-emacsql binary.
8030 (lambda* (#:key outputs #:allow-other-keys)
8031 (install-file "sqlite/emacsql-sqlite"
8032 (string-append (assoc-ref outputs "out")
8033 "/bin"))
8034 #t))
8035 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8036 ;; This build phase removes interactive prompts
8037 ;; and makes sure Emacs look for binaries in the right places.
8038 (lambda* (#:key outputs #:allow-other-keys)
8039 (let ((file "emacsql-sqlite.el"))
8040 (chmod file #o644)
8041 (emacs-substitute-sexps file
8042 ;; Avoid interactive prompts.
8043 ("(defvar emacsql-sqlite-user-prompted" 't)
8044 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8045 ("(executable-find" (which "gcc"))
8046 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8047 ;; in the right place.
8048 ("(defvar emacsql-sqlite-executable"
8049 (string-append (assoc-ref outputs "out")
8050 "/bin/emacsql-sqlite"))))))
8051 (replace 'install
8052 (lambda* (#:key outputs #:allow-other-keys)
8053 (let* ((out (assoc-ref outputs "out")))
8054 (install-file "sqlite/emacsql-sqlite"
8055 (string-append out "/bin"))
8056 (for-each (cut install-file <>
8057 (string-append out "/share/emacs/site-lisp/guix.d/"
8058 "emacsql" "-" ,version))
8059 (find-files "." "\\.elc*$")))
8060 #t)))))
8061 (inputs
8062 `(("emacs-minimal" ,emacs-minimal)
8063 ("mysql" ,mysql)
8064 ("postgresql" ,postgresql)))
8065 (propagated-inputs
8066 `(("emacs-finalize" ,emacs-finalize)
8067 ("emacs-pg" ,emacs-pg)))
8068 (home-page "https://github.com/skeeto/emacsql")
8069 (synopsis "Emacs high-level SQL database front-end")
8070 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8071including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8072has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8073object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8074 (license license:gpl3+)))
93aba854
OP
8075
8076(define-public emacs-closql
8077 (package
8078 (name "emacs-closql")
8079 (version "0.5.1")
8080 (source
8081 (origin
8082 (method url-fetch)
8083 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8084 "v" version ".tar.gz"))
8085 (file-name (string-append name "-" version ".tar.gz"))
8086 (sha256
8087 (base32
8088 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8089 (build-system emacs-build-system)
8090 (propagated-inputs
8091 `(("emacs-emacsql" ,emacs-emacsql)))
8092 (home-page "https://github.com/emacscollective/closql")
8093 (synopsis "Store EIEIO objects using EmacSQL")
8094 (description
8095 "This package allows to store uniform EIEIO objects in an EmacSQL
8096database. SQLite is used as backend. This library imposes some restrictions
8097on what kind of objects can be stored; it isn't intended to store arbitrary
8098objects. All objects have to share a common superclass and subclasses cannot
8099add any additional instance slots.")
8100 (license license:gpl3)))
452454e3
OP
8101
8102(define-public emacs-epkg
8103 ;; The release version is to old for the current database scheme.
8104 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8105 (package
8106 (name "emacs-epkg")
8107 (version (git-version "3.0.0" "1" commit))
8108 (source
8109 (origin
8110 (method git-fetch)
8111 (uri (git-reference
8112 (url "https://github.com/emacscollective/epkg.git")
8113 (commit commit)))
8114 (file-name (git-file-name name version))
8115 (sha256
8116 (base32
8117 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8118 (build-system emacs-build-system)
8119 (propagated-inputs
8120 `(("emacs-closql" ,emacs-closql)
8121 ("emacs-dash" ,emacs-dash)))
8122 (home-page "https://emacsmirror.net")
8123 (synopsis "Browse the Emacsmirror package database")
8124 (description "This package provides access to a local copy of the
8125Emacsmirror package database. It provides low-level functions for querying
8126the database and a @file{package.el} user interface for browsing the database.
8127Epkg itself is not a package manager.
8128
8129Getting a local copy:
8130
8131@example
8132git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8133cd ~/.emacs.d/epkgs
8134git submodule init
8135git config --global url.https://github.com/.insteadOf git@@github.com:
8136git submodule update
8137@end example
8138
8139Some submodule may be missing. In this case Git will prompt for a GitHub user
8140name and password. To skip it press a @key{Return} key.
8141
8142You could get a Epkg package list by invoking @code{epkg-list-packages} in
8143Emacs.")
8144 (license license:gpl3+))))
c51e592d
KH
8145
8146(define-public emacs-elisp-slime-nav
8147 (package
8148 (name "emacs-elisp-slime-nav")
8149 (version "0.9")
8150 (source
8151 (origin
8152 (method url-fetch)
8153 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8154 version ".tar.gz"))
8155 (file-name (string-append name "-" version ".tar.gz"))
8156 (sha256
8157 (base32
8158 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8159 (build-system emacs-build-system)
8160 (home-page "https://github.com/purcell/elisp-slime-nav")
8161 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8162 (description
8163 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8164in @code{emacs-lisp-mode}, together with an elisp equivalent of
8165@code{slime-describe-symbol}.")
8166 (license license:gpl3+)))
4f95a118
CM
8167
8168(define-public emacs-dedicated
8169 (package
8170 (name "emacs-dedicated")
8171 (version "1.0.0")
8172 (source (origin
8173 (method url-fetch)
8174 (uri (string-append
8175 "https://github.com/emacsorphanage/dedicated/archive/"
8176 version
8177 ".tar.gz"))
8178 (sha256
8179 (base32
8180 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8181 (file-name (string-append name "-" version ".tar.gz"))))
8182 (build-system emacs-build-system)
8183 (home-page "https://github.com/emacsorphanage/dedicated")
8184 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8185 (description
8186 "This simple Emacs minor mode allows you to toggle a window's
8187\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8188files into that window. This can be quite handy since many commands will use
8189another window to show results (compilation mode, starting info, and so on).
8190A dedicated window won't be used for such a purpose. For details, please read
8191the source file.")
8192 (license license:gpl2+)))
59dc661f
OP
8193
8194(define-public emacs-nnreddit
8195 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8196 (revision "1"))
8197 (package
8198 (name "emacs-nnreddit")
8199 (version (string-append "0.0.1-" revision "."
8200 (string-take commit 7)))
8201 (source (origin
8202 (method git-fetch)
8203 (uri (git-reference
8204 (url "https://github.com/paul-issartel/nnreddit.git")
8205 (commit commit)))
8206 (file-name (string-append name "-" version "-checkout"))
8207 (sha256
8208 (base32
8209 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8210 (build-system emacs-build-system)
8211 (home-page "https://github.com/paul-issartel/nnreddit")
8212 (synopsis "Reddit backend for the Gnus newsreader")
8213 (description "@url{https://www.reddit.com} backend for the Gnus
8214newsreader.")
8215 (license license:gpl3+))))
63e6c4ad
OP
8216
8217(define-public emacs-makey
8218 (package
8219 (name "emacs-makey")
8220 (version "0.3")
8221 (source
8222 (origin
8223 (method url-fetch)
8224 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8225 version ".tar.gz"))
8226 (file-name (string-append name "-" version ".tar.gz"))
8227 (sha256
8228 (base32
8229 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8230 (build-system emacs-build-system)
8231 (home-page "https://github.com/mickeynp/makey")
8232 (synopsis "Emacs interactive command-line mode")
8233 (description
8234 "This package provides an Emacs interactive command-line mode.")
8235 (license license:gpl3+)))
a34d562a
OP
8236
8237(define-public emacs-outorg
8238 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8239 (package
8240 (name "emacs-outorg")
8241 (version (git-version "2.0" "1" commit))
8242 (source
8243 (origin
8244 (method git-fetch)
8245 (uri (git-reference
8246 (url "https://github.com/alphapapa/outorg")
8247 (commit commit)))
8248 (file-name (git-file-name name version))
8249 (sha256
8250 (base32
8251 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8252 (build-system emacs-build-system)
8253 (home-page "https://github.com/alphapapa/outorg")
8254 (synopsis "Org-style comment editing")
8255 (description "Outorg is for editing comment-sections of source-code
8256files in temporary Org-mode buffers. It turns conventional
8257literate-programming upside-down in that the default mode is the
8258programming-mode, and special action has to be taken to switch to the
8259text-mode (i.e. Org-mode).")
8260 (license license:gpl3+))))
c47c3779
OP
8261
8262(define-public emacs-outshine
8263 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8264 (package
8265 (name "emacs-outshine")
8266 (version (git-version "2.0" "1" commit))
8267 (source (origin
8268 (method git-fetch)
8269 (uri (git-reference
8270 (url "https://github.com/alphapapa/outshine.git")
8271 (commit commit)))
8272 (file-name (git-file-name name version))
8273 (sha256
8274 (base32
8275 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8276 (build-system emacs-build-system)
8277 (propagated-inputs
8278 `(("emacs-outorg" ,emacs-outorg)))
8279 (home-page "https://github.com/alphapapa/outshine")
8280 (synopsis "Emacs outline with outshine")
8281 (description "Outshine attempts to bring the look and feel of
8282@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8283of @code{outline-minor-mode} (@code{org-mode} itself derives from
8284outline-mode), so there is no such thing like an outshine mode, only
8285@code{outline-minor-mode} with outshine extensions loaded.")
8286 (license license:gpl3+))))
de8d9912
OP
8287
8288(define-public emacs-parsebib
8289 (package
8290 (name "emacs-parsebib")
8291 (version "2.3.1")
8292 (source
8293 (origin
8294 (method url-fetch)
8295 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8296 version ".tar.gz"))
8297 (file-name (string-append name "-" version ".tar.gz"))
8298 (sha256
8299 (base32
8300 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8301 (build-system emacs-build-system)
8302 (home-page "https://github.com/joostkremers/parsebib")
8303 (synopsis "Library for parsing bib files")
8304 (description
8305 "This package provides an Emacs library for parsing bib files.")
8306 (license license:gpl3+)))
55d53210
OP
8307
8308(define-public emacs-biblio
8309 (package
8310 (name "emacs-biblio")
8311 (version "0.1")
8312 (source
8313 (origin
8314 (method url-fetch)
8315 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8316 version ".tar.gz"))
8317 (file-name (string-append name "-" version ".tar.gz"))
8318 (sha256
8319 (base32
8320 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8321 (build-system emacs-build-system)
8322 (home-page "https://github.com/cpitclaudel/biblio.el")
8323 (synopsis "Browse and import bibliographic references")
8324 (description "This package provides an extensible Emacs package for
8325browsing and fetching references.
8326
8327@file{biblio.el} makes it easy to browse and gather bibliographic references
8328and publications from various sources, by keywords or by DOI. References are
8329automatically fetched from well-curated sources, and formatted as BibTeX.")
8330 (license license:gpl3+)))
f063e18c
OP
8331
8332(define-public emacs-helm-bibtex
8333 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8334 (revision "1"))
8335 (package
8336 (name "emacs-helm-bibtex")
8337 (version (string-append "2.0.0" "-" revision "."
8338 (string-take commit 7)))
8339 (source
8340 (origin
8341 (method git-fetch)
8342 (uri (git-reference
8343 (url "https://github.com/tmalsburg/helm-bibtex.git")
8344 (commit commit)))
8345 (file-name (string-append name "-" version "-checkout"))
8346 (sha256
8347 (base32
8348 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8349 (build-system emacs-build-system)
8350 (propagated-inputs
8351 `(("emacs-helm" ,emacs-helm)
8352 ("emacs-parsebib" ,emacs-parsebib)
8353 ("emacs-s" ,emacs-s)
8354 ("emacs-dash" ,emacs-dash)
8355 ("emacs-f" ,emacs-f)
8356 ("emacs-biblio" ,emacs-biblio)))
8357 (home-page "https://github.com/tmalsburg/helm-bibtex")
8358 (synopsis "Bibliography manager based on Helm")
8359 (description "This package provides bibliography manager for Emacs,
8360based on Helm and the bibtex-completion backend.
8361
8362Key features:
8363
8364@itemize
8365@item Quick access to your bibliography from within Emacs
8366@item Powerful search capabilities
8367@item Provides instant search results as you type
8368@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8369@item Open the PDFs, URLs, or DOIs associated with an entry
8370@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8371BibTeX entries, or plain text references at point, attach PDFs to emails
8372@item Support for note taking
8373@item Quick access to online bibliographic databases such as Pubmed,
8374arXiv, Google Scholar, Library of Congress, etc.
8375@item Imports BibTeX entries from CrossRef and other sources.
8376@end itemize\n")
8377 (license license:gpl3+))))
f445c75d
OP
8378
8379(define-public emacs-ewmctrl
84960cb7 8380 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
f445c75d
OP
8381 (package
8382 (name "emacs-ewmctrl")
84960cb7 8383 (version (git-version "0.0.1" "1" commit))
f445c75d
OP
8384 (source
8385 (origin
8386 (method git-fetch)
8387 (uri (git-reference
8388 (url "https://github.com/flexibeast/ewmctrl.git")
8389 (commit commit)))
84960cb7 8390 (file-name (git-file-name name version))
f445c75d
OP
8391 (sha256
8392 (base32
8393 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8394 (build-system emacs-build-system)
0bcb9258
OP
8395 (arguments
8396 '(#:phases
8397 (modify-phases %standard-phases
8398 (add-after 'unpack 'patch-ewmctrl
8399 ;; This build phase makes sure ‘ewmctrl’ looks
8400 ;; for ‘wmctrl’ in the right place.
8401 (lambda _
8402 (let ((file "ewmctrl.el"))
8403 (chmod file #o644)
8404 (emacs-substitute-sexps file
8405 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8406 (inputs
8407 `(("wmctrl" ,wmctrl)))
f445c75d
OP
8408 (home-page "https://github.com/flexibeast/ewmctrl")
8409 (synopsis "Emacs interface to @code{wmctrl}")
8410 (description "@code{ewmctrl} provides an Emacs interface to
8411@code{wmctrl} command-line window-management program.")
8412 (license license:gpl3+))))
707ff555
OP
8413
8414(define-public emacs-helm-gtags
8415 (package
8416 (name "emacs-helm-gtags")
8417 (version "1.5.6")
8418 (source (origin
8419 (method url-fetch)
8420 (uri (string-append
8421 "https://github.com/syohex/emacs-helm-gtags/archive/"
8422 version ".tar.gz"))
8423 (file-name (string-append name "-" version ".tar.gz"))
8424 (sha256
8425 (base32
8426 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
8427 (build-system emacs-build-system)
d848f55e
OP
8428 (propagated-inputs
8429 `(("emacs-helm" ,emacs-helm)))
707ff555
OP
8430 (home-page "https://github.com/syohex/emacs-helm-gtags")
8431 (synopsis "Emacs Helm interface to GNU Global")
8432 (description
8433 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
8434 (license license:gpl3+)))
53d4090b
OP
8435
8436(define-public emacs-list-utils
8437 (package
8438 (name "emacs-list-utils")
8439 (version "0.4.4")
8440 (source
8441 (origin
8442 (method url-fetch)
8443 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
8444 "v" version ".tar.gz"))
8445 (file-name (string-append name "-" version ".tar.gz"))
8446 (sha256
8447 (base32
8448 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
8449 (build-system emacs-build-system)
8450 (home-page "https://github.com/rolandwalker/list-utils")
8451 (synopsis "List-manipulation utility functions")
8452 (description "This package provides a list manipulation library for Emacs.")
8453 (license license:gpl3+)))
fb3aeaf7
OP
8454
8455(define-public emacs-move-text
8456 (package
8457 (name "emacs-move-text")
8458 (version "2.0.8")
8459 (source
8460 (origin
8461 (method url-fetch)
8462 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
8463 version ".tar.gz"))
8464 (file-name (string-append name "-" version ".tar.gz"))
8465 (sha256
8466 (base32
8467 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
8468 (build-system emacs-build-system)
8469 (home-page "https://github.com/emacsfodder/move-text")
8470 (synopsis "Move current line or region with M-up or M-down")
8471 (description "This package provide functions to move the current line
8472using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
8473region instead.")
8474 (license license:gpl3+)))
dc586337
OP
8475
8476(define-public emacs-validate
8477 (package
8478 (name "emacs-validate")
8479 (version "1.0.5")
8480 (source (origin
8481 (method url-fetch)
8482 (uri (string-append "https://github.com/Malabarba/validate.el"
8483 "/archive/" version ".tar.gz"))
8484 (file-name (string-append name "-" version ".tar.gz"))
8485 (sha256
8486 (base32
8487 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
8488 (build-system emacs-build-system)
8489 (home-page "https://github.com/Malabarba/validate.el")
8490 (synopsis "Emacs library for scheme validation")
8491 (description "This Emacs library provides two functions that perform
8492schema validation.")
8493 (license license:gpl3+)))
f8a88f22
OP
8494
8495(define-public emacs-load-relative
8496 (let ((commit "738896e3da491b35399178ed2c6bc92cc728d119")
8497 (revision "1"))
8498 (package
8499 (name "emacs-load-relative")
8500 (version (string-append "0.0.1" "-" revision "."
8501 (string-take commit 7)))
8502 (source
8503 (origin
8504 (method git-fetch)
8505 (uri (git-reference
8506 (url "https://github.com/rocky/emacs-load-relative")
8507 (commit commit)))
8508 (file-name (string-append name "-" version "-checkout"))
8509 (sha256
8510 (base32
8511 "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73"))))
8512 (build-system emacs-build-system)
8513 (home-page "https://github.com/rocky/emacs-load-relative")
8514 (synopsis "Relative loads for Emacs Lisp files")
8515 (description "@code{load-relative} allows to write small Emacs
8516functions or modules in a larger multi-file Emacs package and
8517facilitate running from the source tree without having to install the
8518code or fiddle with evil @code{load-path}.")
8519 (license license:gpl3+))))
d7403c12
OP
8520
8521(define-public emacs-rainbow-blocks
8522 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
8523 (package
8524 (name "emacs-rainbow-blocks")
8525 (version (git-version "1.0.0" "1" commit))
8526 (source (origin
8527 (method git-fetch)
8528 (uri (git-reference
8529 (url "https://github.com/istib/rainbow-blocks.git")
8530 (commit commit)))
8531 (file-name (git-file-name name version))
8532 (sha256
8533 (base32
8534 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
8535 (build-system emacs-build-system)
8536 (home-page "https://github.com/istib/rainbow-blocks")
8537 (synopsis "Highlight sexp blocks")
8538 (description "Rainbow-blocks is an Emacs mode that highlights blocks
8539made of parentheses, brackets, and braces according to their depth. Each
8540successive level is highlighted in a different color. This makes it easy to
8541orient yourself in the code, and tell which statements are at a given level.")
8542 (license license:gpl3+))))
20b5b16e
OP
8543
8544(define-public emacs-hierarchy
8545 (package
8546 (name "emacs-hierarchy")
8547 (version "0.7.0")
8548 (source
8549 (origin
8550 (method url-fetch)
8551 (uri (string-append
8552 "https://github.com/DamienCassou/hierarchy/archive/"
8553 "v" version ".tar.gz"))
8554 (file-name (string-append name "-" version ".tar.gz"))
8555 (sha256
8556 (base32
8557 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
8558 (build-system emacs-build-system)
8559 (home-page "https://github.com/DamienCassou/hierarchy")
8560 (synopsis "Library to create and display hierarchy structures")
8561 (description "This package provides an Emacs library to create, query,
8562navigate and display hierarchy structures.")
8563 (license license:gpl3+)))
0acfc481
OP
8564
8565(define-public emacs-tree-mode
8566 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
8567 (revision "1"))
8568 (package
8569 (name "emacs-tree-mode")
8570 (version (string-append "0.0.1" "-" revision "."
8571 (string-take commit 7)))
8572 (source
8573 (origin
8574 (method git-fetch)
8575 (uri (git-reference
8576 (url "https://github.com/emacsorphanage/tree-mode.git")
8577 (commit commit)))
8578 (file-name (string-append name "-" version "-checkout"))
8579 (sha256
8580 (base32
8581 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
8582 (build-system emacs-build-system)
8583 (home-page "https://github.com/emacsorphanage/tree-mode")
8584 (synopsis "Emacs mode to manage tree widgets")
8585 (description
8586 "This package provides an Emacs library to manage tree widgets.")
8587 (license license:gpl3+))))
74b2f745
OP
8588
8589(define-public emacs-md4rd
8590 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
8591 (revision "1"))
8592 (package
8593 (name "emacs-md4rd")
8594 (version (string-append "0.0.1" "-" revision "."
8595 (string-take commit 7)))
8596 (source (origin
8597 (method git-fetch)
8598 (uri (git-reference
8599 (url "https://github.com/ahungry/md4rd.git")
8600 (commit commit)))
8601 (file-name (string-append name "-" version "-checkout"))
8602 (sha256
8603 (base32
8604 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
8605 (propagated-inputs
8606 `(("emacs-hierarchy" ,emacs-hierarchy)
8607 ("emacs-request" ,emacs-request)
8608 ("emacs-dash" ,emacs-dash)
8609 ("emacs-s" ,emacs-s)
8610 ("emacs-tree-mode" ,emacs-tree-mode)))
8611 (build-system emacs-build-system)
8612 (home-page "https://github.com/ahungry/md4rd")
8613 (synopsis "Emacs Mode for Reddit")
8614 (description
8615 "This package allows to read Reddit from within Emacs interactively.")
8616 (license license:gpl3+))))
b8f91043
OP
8617
8618(define-public emacs-pulseaudio-control
8619 (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b")
8620 (revision "1"))
8621 (package
8622 (name "emacs-pulseaudio-control")
8623 (version (string-append "0.0.1" "-" revision "."
8624 (string-take commit 7)))
8625 (source
8626 (origin
8627 (method git-fetch)
8628 (uri (git-reference
8629 (url "https://github.com/flexibeast/pulseaudio-control.git")
8630 (commit commit)))
8631 (file-name (string-append name "-" version "-checkout"))
8632 (sha256
8633 (base32
8634 "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"))))
8635 (build-system emacs-build-system)
8636 (home-page "https://github.com/flexibeast/pulseaudio-control")
8637 (synopsis "Control @code{pulseaudio} from Emacs")
8638 (description
8639 "This package allows to control @code{pulseaudio} from Emacs.")
8640 (license license:gpl3+))))
5746ca13
OP
8641
8642(define-public emacs-datetime
8643 (package
8644 (name "emacs-datetime")
8645 (version "0.3")
8646 (source (origin
8647 (method url-fetch)
8648 (uri (string-append
8649 "https://github.com/doublep/datetime/archive/"
8650 version ".tar.gz"))
8651 (file-name (string-append name "-" version ".tar.gz"))
8652 (sha256
8653 (base32
8654 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
8655 (build-system emacs-build-system)
8656 (home-page "https://github.com/doublep/datetime/")
8657 (synopsis "Library to work with dates in Emacs")
8658 (description "Parsing, formatting, matching and recoding
8659timestamps and date-time format strings library for Emacs.")
8660 (license license:gpl3+)))
a3a876c2
OP
8661
8662(define-public emacs-org-mind-map
8663 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
8664 (revision "1"))
8665 (package
8666 (name "emacs-org-mind-map")
8667 (version (string-append "0.0.1" "-" revision "."
8668 (string-take commit 7)))
8669 (source
8670 (origin
8671 (method git-fetch)
8672 (uri (git-reference
8673 (url "https://github.com/theodorewiles/org-mind-map.git")
8674 (commit commit)))
8675 (file-name (string-append name "-" version "-checkout"))
8676 (sha256
8677 (base32
8678 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
8679 (propagated-inputs
8680 `(("emacs-dash" ,emacs-dash)))
8681 (build-system emacs-build-system)
8682 (home-page "https://github.com/theodorewiles/org-mind-map")
8683 (synopsis "Create Graphviz directed graphs from Org files")
8684 (description
8685 "This package creates Graphviz directed graphs from Org files.")
8686 (license license:gpl3+))))
8d907999
OP
8687
8688(define-public emacs-npm-mode
8689 (package
8690 (name "emacs-npm-mode")
8691 (version "0.6.0")
8692 (source
8693 (origin
8694 (method url-fetch)
8695 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
8696 version ".tar.gz"))
8697 (file-name (string-append name "-" version ".tar.gz"))
8698 (sha256
8699 (base32
8700 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
8701 (build-system emacs-build-system)
8702 (home-page "https://github.com/mojochao/npm-mode")
8703 (synopsis "Minor mode for working with @code{npm} projects")
8704 (description
8705 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
8706 (license license:gpl3+)))
b12fb29e
OP
8707
8708(define-public emacs-seq
8709 (package
8710 (name "emacs-seq")
8711 (version "2.20")
8712 (source
8713 (origin
8714 (method url-fetch)
8715 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
8716 (sha256
8717 (base32
8718 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
8719 (build-system emacs-build-system)
8720 (home-page "http://elpa.gnu.org/packages/seq.html")
8721 (synopsis "Sequence manipulation functions")
8722 (description "Sequence-manipulation functions that complement basic
8723functions provided by @file{subr.el}.")
8724 (license license:gpl3+)))
be3cf803
OP
8725
8726(define-public emacs-itail
8727 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
8728 (revision "1"))
8729 (package
8730 (name "emacs-itail")
8731 (version (string-append "0.0.1" "-" revision "."
8732 (string-take commit 7)))
8733 (source
8734 (origin
8735 (method git-fetch)
8736 (uri (git-reference
8737 (url "https://github.com/re5et/itail.git")
8738 (commit commit)))
8739 (file-name (string-append name "-" version "-checkout"))
8740 (sha256
8741 (base32
8742 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
8743 (build-system emacs-build-system)
8744 (home-page "https://github.com/re5et/itail")
8745 (synopsis "Interactive @code{tail} Emacs mode")
8746 (description "@code{itail} provides interactive @code{tail} mode
8747that allows you to filter the tail with unix pipes and highlight the
8748contents of the tailed file. Works locally or on remote files using
8749tramp.")
8750 (license license:gpl3+))))
b836c650
OP
8751
8752(define-public emacs-loop
8753 (package
8754 (name "emacs-loop")
8755 (version "1.3")
8756 (source
8757 (origin
8758 (method url-fetch)
8759 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
8760 version ".tar.gz"))
8761 (file-name (string-append name "-" version ".tar.gz"))
8762 (sha256
8763 (base32
8764 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
8765 (build-system emacs-build-system)
8766 (home-page "https://github.com/Wilfred/loop.el")
8767 (synopsis "Imperative loop structures for Emacs")
8768 (description "Loop structures familiar to users of other languages. This
8769library adds a selection of popular loop structures as well as break and
8770continue.")
8771 (license license:gpl3+)))
1bd3400d
OP
8772
8773(define-public emacs-elisp-refs
8774 (package
8775 (name "emacs-elisp-refs")
8776 (version "1.2")
8777 (source
8778 (origin
8779 (method url-fetch)
8780 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
8781 version ".tar.gz"))
8782 (file-name (string-append name "-" version ".tar.gz"))
8783 (sha256
8784 (base32
8785 "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
8786 (build-system emacs-build-system)
8787 (propagated-inputs
8788 `(("emacs-dash" ,emacs-dash)
8789 ("emacs-f" ,emacs-f)
8790 ("emacs-list-utils" ,emacs-list-utils)
8791 ("emacs-loop" ,emacs-loop)
8792 ("emacs-s" ,emacs-s)))
8793 (home-page "https://github.com/Wilfred/elisp-refs")
8794 (synopsis "Find callers of elisp functions or macros")
8795 (description "Find references to functions, macros or variables. Unlike a
8796dumb text search, @code{elisp-refs} actually parses the code, so it's never
8797confused by comments or @code{foo-bar} matching @code{foo}.")
8798 (license license:gpl3+)))
08ff4fd1
OP
8799
8800(define-public emacs-crux
8801 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
8802 (revision "1"))
8803 (package
8804 (name "emacs-crux")
8805 (version (string-append "0.3.0" "-" revision "."
8806 (string-take commit 7)))
8807 (source
8808 (origin
8809 (method git-fetch)
8810 (uri (git-reference
8811 (url "https://github.com/bbatsov/crux.git")
8812 (commit commit)))
8813 (file-name (string-append name "-" version "-checkout"))
8814 (sha256
8815 (base32
8816 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
8817 (build-system emacs-build-system)
8818 (home-page "https://github.com/bbatsov/crux")
8819 (synopsis "Collection of useful functions for Emacs")
8820 (description
8821 "@code{crux} provides a collection of useful functions for Emacs.")
8822 (license license:gpl3+))))
3677e5ee
OP
8823
8824(define-public emacs-edit-server
8825 (package
8826 (name "emacs-edit-server")
8827 (version "1.13")
8828 (source
8829 (origin
8830 (method url-fetch)
8831 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
8832 "v" version ".tar.gz"))
8833 (file-name (string-append name "-" version ".tar.gz"))
8834 (sha256
8835 (base32
8836 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
8837 (build-system emacs-build-system)
8838 (arguments
8839 `(#:phases
8840 (modify-phases %standard-phases
8841 (add-after 'unpack 'chdir-elisp
8842 ;; Elisp directory is not in root of the source.
8843 (lambda _
8844 (chdir "servers"))))))
8845 (home-page "https://github.com/stsquad/emacs_chrome")
8846 (synopsis "Server that responds to edit requests from Chromium")
8847 (description
8848 "This package provides an edit server to respond to requests from Emacs.")
8849 (license license:gpl3+)))
40246075
OP
8850
8851(define-public emacs-m-buffer-el
8852 (package
8853 (name "emacs-m-buffer-el")
8854 (version "0.15")
8855 (source
8856 (origin
8857 (method url-fetch)
8858 (uri (string-append "https://github.com/phillord/m-buffer-el"
8859 "/archive/" "v" version ".tar.gz"))
8860 (file-name (string-append name "-" version ".tar.gz"))
8861 (sha256
8862 (base32
8863 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
8864 (arguments
8865 `(#:phases
8866 (modify-phases %standard-phases
8867 (add-before 'install 'check
8868 (lambda* (#:key inputs #:allow-other-keys)
8869 (zero? (system* "emacs" "--batch" "-L" "."
8870 "-l" "test/m-buffer-test.el"
8871 "-l" "test/m-buffer-at-test.el"
8872 "-f" "ert-run-tests-batch-and-exit")))))))
8873 (build-system emacs-build-system)
8874 (home-page "https://github.com/phillord/m-buffer-el")
8875 (synopsis "List oriented buffer operations for Emacs")
8876 (description "@code{m-buffer} provides a set of list-orientated functions
8877for operating over the contents of Emacs buffers.")
8878 (license license:gpl3+)))
15d56833
OP
8879
8880(define-public emacs-let-alist
8881 (package
8882 (name "emacs-let-alist")
8883 (version "1.0.5")
8884 (source
8885 (origin
8886 (method url-fetch)
8887 (uri (string-append
8888 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
8889 (sha256
8890 (base32
8891 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
8892 (build-system emacs-build-system)
8893 (home-page "https://elpa.gnu.org/packages/let-alist.html")
8894 (synopsis "Easily let-bind values of an assoc-list by their names")
8895 (description "This package offers a single macro, @code{let-alist}. This
8896macro takes a first argument (whose value must be an alist) and a body.")
8897 (license license:gpl3+)))
ddc56b80
OP
8898
8899(define-public emacs-esup
8900 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
8901 (revision "1"))
8902 (package
8903 (name "emacs-esup")
8904 (version (string-append "0.6" "-" revision "."
8905 (string-take commit 7)))
8906 (source
8907 (origin
8908 (method git-fetch)
8909 (uri (git-reference
8910 (url "https://github.com/jschaf/esup.git")
8911 (commit commit)))
8912 (file-name (string-append name "-" version "-checkout"))
8913 (sha256
8914 (base32
8915 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
8916 ;; TODO: Add tests
8917 (build-system emacs-build-system)
8918 (home-page "https://github.com/jschaf/esup")
8919 (synopsis "Emacs start up profiler")
8920 (description "Benchmark Emacs Startup time without ever leaving
8921your Emacs.")
8922 (license license:gpl2+))))
e33dba15
OP
8923
8924(define-public emacs-sourcemap
8925 (package
8926 (name "emacs-sourcemap")
8927 (version "0.03")
8928 (source
8929 (origin
8930 (method url-fetch)
8931 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
8932 version ".tar.gz"))
8933 (file-name (string-append name "-" version ".tar.gz"))
8934 (sha256
8935 (base32
8936 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
8937 (build-system emacs-build-system)
8938 (home-page "https://github.com/syohex/emacs-sourcemap")
8939 (synopsis "Sourcemap parser")
8940 (description "Sourcemap parser")
8941 (license license:gpl3+)))
9968e444
OP
8942
8943(define-public emacs-macrostep
8944 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
8945 (package
8946 (name "emacs-macrostep")
8947 (version (git-version "0.9" "1" commit))
8948 (source (origin
8949 (method git-fetch)
8950 (uri (git-reference
8951 (url "https://github.com/joddie/macrostep.git")
8952 (commit commit)))
8953 (file-name (string-append name "-" version "-checkout"))
8954 (sha256
8955 (base32
8956 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
8957 (build-system emacs-build-system)
8958 (arguments
8959 '(#:phases
8960 (modify-phases %standard-phases
8961 (add-before 'check 'remove-test
8962 ;; Fails because of requirement ‘/bin/sh’.
8963 (lambda _
8964 (let ((file "macrostep-test.el"))
8965 (chmod file #o644)
8966 (emacs-batch-edit-file file
8967 `(progn (progn (goto-char (point-min))
8968 (re-search-forward
8969 "(ert-deftest macrostep-expand-c-macros")
8970 (beginning-of-line)
8971 (kill-sexp))
8972 (basic-save-buffer))))))
8973 (add-before 'install 'check
8974 (lambda _
8975 (invoke "emacs" "--batch" "-L" "."
8976 "-l" "macrostep-test.el"
8977 "-f" "ert-run-tests-batch-and-exit"))))))
8978 (home-page "https://github.com/joddie/macrostep")
8979 (synopsis "Interactive macro-expander for Emacs")
8980 (description "@code{macrostep} is an Emacs minor mode for interactively
8981stepping through the expansion of macros in Emacs Lisp source code. It lets
8982you see exactly what happens at each step of the expansion process by
8983pretty-printing the expanded forms inline in the source buffer, which is
8984temporarily read-only while macro expansions are visible. You can expand and
8985collapse macro forms one step at a time, and evaluate or instrument the
8986expansions for debugging with Edebug as normal (but see “Bugs and known
8987limitations”, below). Single-stepping through the expansion is particularly
8988useful for debugging macros that expand into another macro form. These can be
8989difficult to debug with Emacs’ built-in macroexpand, which continues expansion
8990until the top-level form is no longer a macro call.")
8991 (license license:gpl3+))))
02999382
OP
8992
8993(define-public emacs-parent-mode
8994 (package
8995 (name "emacs-parent-mode")
8996 (version "2.3")
8997 (source
8998 (origin
8999 (method url-fetch)
9000 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9001 version ".tar.gz"))
9002 (file-name (string-append name "-" version ".tar.gz"))
9003 (sha256
9004 (base32
9005 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9006 (build-system emacs-build-system)
9007 (home-page "https://github.com/Fanael/parent-mode")
9008 (synopsis "Get major mode's parent modes")
9009 (description "Get major mode's parent modes")
9010 (license license:gpl3+)))
045f6b7c
OP
9011
9012(define-public emacs-lacarte
9013 (package
9014 (name "emacs-lacarte")
9015 (version "0.1")
9016 (source (origin
9017 (method url-fetch)
9018 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9019 (sha256
9020 (base32
9021 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9022 (build-system emacs-build-system)
9023 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9024 (synopsis "Execute menu items as commands, with completion")
9025 (description "Execute menu items as commands, with completion.")
9026 (license license:gpl3)))
b8ddef4b
OP
9027
9028(define-public emacs-company-lua
9029 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9030 (package
9031 (name "emacs-company-lua")
9032 (version (git-version "0.1" "1" commit))
9033 (source
9034 (origin
9035 (method git-fetch)
9036 (uri (git-reference
9037 (url "https://github.com/ptrv/company-lua.git")
9038 (commit commit)))
9039 (file-name (git-file-name name version))
9040 (sha256
9041 (base32
9042 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9043 (build-system emacs-build-system)
9044 (propagated-inputs
9045 `(("emacs-company" ,emacs-company)
9046 ("emacs-s" ,emacs-s)
9047 ("emacs-f" ,emacs-f)
9048 ("emacs-lua-mode" ,emacs-lua-mode)))
9049 (home-page "https://github.com/ptrv/company-lua")
9050 (synopsis "Company backend for Lua")
9051 (description
9052 "This package provides Company backend for Lua programming language.")
9053 (license license:gpl3+))))
f61ecb85
OP
9054
9055(define-public emacs-beginend
9056 (package
9057 (name "emacs-beginend")
9058 (version "2.0.0")
9059 (source
9060 (origin
9061 (method url-fetch)
9062 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9063 "v" version ".tar.gz"))
9064 (file-name (string-append name "-" version ".tar.gz"))
9065 (sha256
9066 (base32
9067 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9068 ;; TODO: Run tests.
9069 (build-system emacs-build-system)
9070 (inputs
9071 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9072 (home-page "https://github.com/DamienCassou/beginend")
9073 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9074 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9075keybindings for Emacs modes so that point moves to meaningful
9076locations. Redefined keys are still accessible by pressing the same
9077key again.")
9078 (license license:gpl3+)))
666e5617
OP
9079
9080(define-public emacs-mbsync
9081 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9082 (revision "1"))
9083 (package
9084 (name "emacs-mbsync")
9085 (version (string-append "0.0.1" "-" revision "."
9086 (string-take commit 7)))
9087 (source
9088 (origin
9089 (method git-fetch)
9090 (uri (git-reference
9091 (url "https://github.com/dimitri/mbsync-el.git")
9092 (commit commit)))
9093 (file-name (string-append name "-" version "-checkout"))
9094 (sha256
9095 (base32
9096 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9097 (build-system emacs-build-system)
9098 (home-page "https://github.com/dimitri/mbsync-el")
9099 (synopsis "Interface to mbsync for Emacs")
9100 (description "This package allows to call the @code{mbsync} from
9101within Emacs.")
9102 (license license:gpl3+))))
60bf9265
OP
9103
9104(define-public emacs-ibuffer-projectile
9105 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9106 (revision "1"))
9107 (package
9108 (name "emacs-ibuffer-projectile")
9109 (version (string-append "0.2" "-" revision "."
9110 (string-take commit 7)))
9111 (source
9112 (origin
9113 (method git-fetch)
9114 (uri (git-reference
9115 (url "https://github.com/purcell/ibuffer-projectile.git")
9116 (commit commit)))
9117 (file-name (string-append name "-" version "-checkout"))
9118 (sha256
9119 (base32
9120 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9121 (build-system emacs-build-system)
9122 (propagated-inputs
9123 `(("emacs-projectile" ,emacs-projectile)))
9124 (home-page "https://github.com/purcell/ibuffer-projectile")
9125 (synopsis "Group ibuffer's list by projectile root")
9126 (description "Adds functionality to Emacs @code{ibuffer} for
9127grouping buffers by their projectile root directory.")
9128 (license license:gpl3+))))
295513c6
OP
9129
9130(define-public emacs-helm-mode-manager
9131 (package
9132 (name "emacs-helm-mode-manager")
9133 (version "1.0.0")
9134 (source
9135 (origin
9136 (method url-fetch)
9137 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9138 "archive/" version ".tar.gz"))
9139 (file-name (string-append name "-" version ".tar.gz"))
9140 (sha256
9141 (base32
9142 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9143 (build-system emacs-build-system)
9144 (propagated-inputs
9145 `(("emacs-helm" ,emacs-helm)))
9146 (home-page "https://github.com/istib/helm-mode-manager/")
9147 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9148 (description "This package provides a Helm interface for toggling Emacs
9149major or minor mode.
9150
9151@itemize
9152@item @code{helm-switch-major-mode} list of all major modes
9153@item @code{helm-enable-minor-mode} list of all inactive minor modes
9154@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9155@end itemize\n
9156
9157Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9158documentation.")
9159 (license license:gpl3+)))
4cdfc9ef
OP
9160
9161(define-public emacs-hy-mode
9162 (package
9163 (name "emacs-hy-mode")
9164 (version "1.0.2")
9165 (source
9166 (origin
9167 (method url-fetch)
9168 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9169 "v" version ".tar.gz"))
9170 (file-name (string-append name "-" version ".tar.gz"))
9171 (sha256
9172 (base32
9173 "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
9174 (build-system emacs-build-system)
9175 (propagated-inputs
9176 `(("emacs-dash" ,emacs-dash)
9177 ("emacs-s" ,emacs-s)))
9178 (home-page "https://github.com/hylang/hy-mode")
9179 (synopsis "Major mode for Hylang")
9180 (description "This package provides a major mode for Hylang.")
9181 (license license:gpl3+)))
8aab3d06
OP
9182
9183(define-public emacs-web-beautify
9184 (package
9185 (name "emacs-web-beautify")
9186 (version "0.3.2")
9187 (source
9188 (origin
9189 (method url-fetch)
9190 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9191 version ".tar.gz"))
9192 (file-name (string-append name "-" version ".tar.gz"))
9193 (sha256
9194 (base32
9195 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9196 (build-system emacs-build-system)
9197 (home-page "https://github.com/yasuyk/web-beautify")
9198 (synopsis "Format HTML, CSS and JavaScript, JSON")
9199 (description "This package provides an Emacs functions to format HTML,
9200CSS, JavaScript, JSON.")
9201 (license license:gpl3+)))
c1b9d72c
OP
9202
9203(define-public emacs-helm-shell-history
9204 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9205 (package
9206 (name "emacs-helm-shell-history")
9207 (version (git-version "0.1" "1" commit))
9208 (source
9209 (origin
9210 (method git-fetch)
9211 (uri (git-reference
9212 (url "https://github.com/yuutayamada/helm-shell-history.git")
9213 (commit commit)))
9214 (file-name (git-file-name name version))
9215 (sha256
9216 (base32
9217 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9218 (build-system emacs-build-system)
9219 (arguments
9220 '(#:phases
9221 (modify-phases %standard-phases
9222 (add-before 'check 'patch-helm-shell-history-file
9223 (lambda _
9224 (let ((file "helm-shell-history.el"))
9225 (chmod file #o644)
9226 (emacs-substitute-sexps file
9227 ("(defvar helm-shell-history-file"
9228 `(expand-file-name "~/.bash_history"))))
9229 #t)))))
f1f6f227
OP
9230 (propagated-inputs
9231 `(("emacs-helm" ,emacs-helm)))
c1b9d72c
OP
9232 (home-page "https://github.com/yuutayamada/helm-shell-history")
9233 (synopsis "Find shell history with Emacs Helm")
9234 (description "This package provides an Emacs Helm interface to search
9235throw a shell history.")
9236 (license license:gpl3+))))
2c63f724
OP
9237
9238(define-public emacs-discover-my-major
9239 (package
9240 (name "emacs-discover-my-major")
9241 (version "1.0")
9242 (source
9243 (origin
9244 (method url-fetch)
9245 (uri
9246 (string-append "https://github.com/steckerhalter/discover-my-major"
9247 "/archive/" version ".tar.gz"))
9248 (file-name (string-append name "-" version ".tar.gz"))
9249 (sha256
9250 (base32
9251 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9252 (build-system emacs-build-system)
9253 (propagated-inputs
9254 `(("emacs-makey" ,emacs-makey)))
9255 (home-page "https://github.com/steckerhalter/discover-my-major")
9256 (synopsis "Discover key bindings for the current Emacs major mode")
9257 (description "This package provides allows to discover key bindings and
9258their meaning for the current Emacs major-mode.")
9259 (license license:gpl3+)))
21a3de58
OP
9260
9261(define-public emacs-org-ref
9262 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9263 (revision "1"))
9264 (package
9265 (name "emacs-org-ref")
9266 (version (string-append "1.1.1" "-" revision "."
9267 (string-take commit 7)))
9268 (source
9269 (origin
9270 (method git-fetch)
9271 (uri (git-reference
9272 (url "https://github.com/jkitchin/org-ref.git")
9273 (commit commit)))
9274 (file-name (string-append name "-" version "-checkout"))
9275 (sha256
9276 (base32
9277 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9278 (build-system emacs-build-system)
9279 (propagated-inputs
9280 `(("emacs-dash" ,emacs-dash)
9281 ("emacs-helm" ,emacs-helm)
9282 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9283 ("emacs-ivy" ,emacs-ivy)
9284 ("emacs-hydra" ,emacs-hydra)
9285 ("emacs-key-chord" ,emacs-key-chord)
9286 ("emacs-s" ,emacs-s)
9287 ("emacs-f" ,emacs-f)
9288 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9289 (home-page "https://github.com/jkitchin/org-ref")
9290 (synopsis "Citations, cross-references and bibliographies in org-mode")
9291 (description
9292 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9293Also sets up reftex and helm for org-mode citations. The links are
9294clickable and do things that are useful.
9295
9296The default setup uses helm-bibtex.
9297
9298You should really read org-ref.org in this package for details.")
9299 (license license:gpl3+))))
56e90e31
OP
9300
9301(define-public emacs-add-hooks
9302 (package
9303 (name "emacs-add-hooks")
9304 (version "3.1.1")
9305 (source (origin
9306 (method url-fetch)
9307 (uri (string-append
9308 "https://github.com/nickmccurdy/add-hooks/archive/"
9309 version ".tar.gz"))
9310 (file-name (string-append name "-" version ".tar.gz"))
9311 (sha256
9312 (base32
9313 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9314 (build-system emacs-build-system)
9315 (home-page "https://github.com/nickmccurdy/add-hooks/")
9316 (synopsis "Emacs function for setting multiple hooks")
9317 (description "This package provides a @code{add-hooks} function tidies up
9318duplicate hook and function names further into a single declarative call.")
9319 (license license:gpl3+)))
58b50580
OP
9320
9321(define-public emacs-fancy-narrow
9322 (package
9323 (name "emacs-fancy-narrow")
9324 (version "0.9.5")
9325 (source
9326 (origin
9327 (method url-fetch)
9328 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9329 version ".tar.gz"))
9330 (file-name (string-append name "-" version ".tar.gz"))
9331 (sha256
9332 (base32
9333 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9334 (build-system emacs-build-system)
9335 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9336 (synopsis "Immitate narrow-to-region with more eye-candy")
9337 (description "Unlike narrow-to-region, which completely hides text outside
9338the narrowed region, this package simply deemphasizes the text, makes it
9339readonly, and makes it unreachable. This leads to a much more natural
9340feeling, where the region stays static (instead of being brutally moved to a
9341blank slate) and is clearly highlighted with respect to the rest of the
9342buffer.")
9343 (license license:gpl2+)))
9b876c69
OP
9344
9345(define-public emacs-know-your-http-well
9346 (package
9347 (name "emacs-know-your-http-well")
9348 (version "0.5.0")
9349 (source
9350 (origin
9351 (method url-fetch)
9352 (uri (string-append
9353 "https://github.com/for-GET/know-your-http-well/archive/"
9354 "v" version ".tar.gz"))
9355 (file-name (string-append name "-" version ".tar.gz"))
9356 (sha256
9357 (base32
9358 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9359 (arguments
9360 `(#:phases
9361 (modify-phases %standard-phases
9362 (add-after 'unpack 'install-json-files
9363 (lambda* (#:key outputs #:allow-other-keys)
9364 (for-each (lambda (directory)
9365 (copy-recursively directory
9366 (string-append
9367 (assoc-ref outputs "out")
9368 directory)))
9369 '("js" "json"))))
9370 (add-after 'unpack 'chdir-elisp
9371 ;; Elisp directory is not in root of the source.
9372 (lambda _
9373 (chdir "emacs"))))))
9374 (build-system emacs-build-system)
9375 (home-page "https://github.com/for-GET/know-your-http-well")
9376 (synopsis "Meaning of HTTP headers codes")
9377 (description "Meaning of HTTP headers codes.")
9378 (license license:gpl3+)))
9f2b572e
OP
9379
9380(define-public emacs-navi-mode
9381 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9382 (package
9383 (name "emacs-navi-mode")
9384 (version (git-version "2.0" "1" commit))
9385 (source
9386 (origin
9387 (method git-fetch)
9388 (uri (git-reference
9389 (url "https://github.com/alphapapa/navi.git")
9390 (commit commit)))
9391 (file-name (git-file-name name version))
9392 (sha256
9393 (base32
9394 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9395 (build-system emacs-build-system)
9396 (propagated-inputs
9397 `(("emacs-outshine" ,emacs-outshine)
9398 ("emacs-outorg" ,emacs-outorg)))
9399 (home-page "https://github.com/alphapapa/navi")
9400 (synopsis "Emacs major-mode for easy buffer-navigation")
9401 (description
9402 "This package provides an Emacs major-mode for easy buffer-navigation")
9403 (license license:gpl3+))))
2f28093e
OP
9404
9405(define-public emacs-download-region
9406 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
9407 (revision "1"))
9408 (package
9409 (name "emacs-download-region")
9410 (version (string-append "0.0.1" "-" revision "."
9411 (string-take commit 7)))
9412 (source
9413 (origin
9414 (method git-fetch)
9415 (uri (git-reference
9416 (url "https://github.com/zk-phi/download-region.git")
9417 (commit commit)))
9418 (file-name (string-append name "-" version "-checkout"))
9419 (sha256
9420 (base32
9421 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
9422 (build-system emacs-build-system)
9423 (home-page "https://github.com/zk-phi/download-region")
9424 (synopsis "In buffer download manager for Emacs")
9425 (description "@code{download-region} provides in buffer
9426downloading manager for Emacs.")
9427 (license license:gpl3+))))
8bc8efc7
OP
9428
9429(define-public emacs-csv-mode
9430 (package
9431 (name "emacs-csv-mode")
9432 (version "1.7")
9433 (source
9434 (origin
9435 (method url-fetch)
9436 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
9437 version ".el"))
9438 (sha256
9439 (base32
9440 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
9441 (build-system emacs-build-system)
9442 (home-page "http://elpa.gnu.org/packages/csv-mode.html")
9443 (synopsis "Major mode for editing comma or char separated values")
9444 (description
9445 "This package provides an Emacs CSV mode, a major mode for editing
9446records in a generalized CSV (character-separated values) format.")
9447 (license license:gpl3+)))
b2bf4f54
OP
9448
9449(define-public emacs-helpful
9450 (package
9451 (name "emacs-helpful")
9452 (version "0.1")
9453 (source (origin
9454 (method url-fetch)
9455 (uri (string-append
9456 "https://github.com/Wilfred/helpful/archive/"
9457 version ".tar.gz"))
9458 (file-name (string-append name "-" version ".tar.gz"))
9459 (sha256
9460 (base32
9461 "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
9462 (build-system emacs-build-system)
9463 (propagated-inputs
9464 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
9465 (home-page "https://github.com/Wilfred/helpful")
9466 (synopsis "More contextual information in Emacs help")
9467 (description "@code{helpful} is an alternative to the built-in Emacs help
9468that provides much more contextual information.
9469
9470@itemize
9471@item Show the source code for interactively defined functions (unlike the
9472built-in Help).
9473@item Fall back to the raw sexp if no source is available.
9474@item Show where a function is being called.
9475@item Docstrings will Highlight the summary (the first sentence), include
9476cross-references, hide superfluous puncuation.
9477@item Show you the properties that have been applied to the current
9478symbol. This provides visibility of features like edebug or byte-code
9479optimisation.
9480@item Provide a separate @code{helpful-command} function to view interactive
9481functions.
9482@item Display any keybindings that apply to interactive functions.
9483@item Trace, disassemble functions from inside Helpful. This is discoverable
9484and doesn't require memorisation of commands.
9485@end itemize\n")
9486 (license license:gpl3+)))
1024dadd
OP
9487
9488(define-public emacs-logview
9489 (package
9490 (name "emacs-logview")
9491 (version "0.9")
9492 (source (origin
9493 (method url-fetch)
9494 (uri (string-append
9495 "https://github.com/doublep/logview/archive/"
9496 version ".tar.gz"))
9497 (file-name (string-append name "-" version ".tar.gz"))
9498 (sha256
9499 (base32
9500 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
9501 (propagated-inputs
9502 `(("emacs-datetime" ,emacs-datetime)))
9503 (build-system emacs-build-system)
9504 (home-page "https://github.com/doublep/logview/")
9505 (synopsis "Emacs mode for viewing log files")
9506 (description "@code{logview} provides an Emacs mode to view log files.")
9507 (license license:gpl3+)))
0bc5a32a
OP
9508
9509(define-public emacs-suggest
9510 (package
9511 (name "emacs-suggest")
9512 (version "0.4")
9513 (source
9514 (origin
9515 (method url-fetch)
9516 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
9517 version ".tar.gz"))
9518 (file-name (string-append name "-" version ".tar.gz"))
9519 (sha256
9520 (base32
9521 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
9522 (build-system emacs-build-system)
9523 (propagated-inputs
9524 `(("emacs-loop" ,emacs-loop)
9525 ("emacs-dash" ,emacs-dash)
9526 ("emacs-s" ,emacs-s)
9527 ("emacs-f" ,emacs-f)))
9528 (home-page "https://github.com/Wilfred/suggest.el")
9529 (synopsis "Suggest Elisp functions that give the output requested")
9530 (description "Suggest.el will find functions that give the output
9531requested. It's a great way of exploring list, string and arithmetic
9532functions.")
9533 (license license:gpl3+)))
c43c0823
OP
9534
9535(define-public emacs-benchmark-init
9536 (package
9537 (name "emacs-benchmark-init")
9538 (version "1.0")
9539 (source (origin
9540 (method url-fetch)
9541 (uri (string-append
9542 "https://github.com/dholm/benchmark-init-el/archive/"
9543 version ".tar.gz"))
9544 (file-name (string-append name "-" version ".tar.gz"))
9545 (sha256
9546 (base32
9547 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
9548 (build-system emacs-build-system)
9549 (home-page "https://github.com/dholm/benchmark-init-el")
9550 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
9551 (description "@code{benchmark-init} provides a way to keep track of where
9552time is being spent during Emacs startup in order to optimize startup time.")
9553 (license license:gpl3+)))
c25dda7e
OP
9554
9555(define-public emacs-emms-player-simple-mpv
9556 (let ((commit "101d120ccdee1c2c213fd2f0423c858b21649c00")
9557 (revision "1"))
9558 (package
9559 (name "emacs-emms-player-simple-mpv")
9560 (version (string-append "0.4.0" "-" revision "."
9561 (string-take commit 7)))
9562
9563 (source
9564 (origin
9565 (method git-fetch)
9566 (uri (git-reference
9567 (url "https://github.com/momomo5717/emms-player-simple-mpv.git")
9568 (commit commit)))
9569 (file-name (git-file-name name version))
9570 (sha256
9571 (base32
9572 "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll"))))
9573 (build-system emacs-build-system)
9574 (propagated-inputs
9575 `(("emacs-emms" ,emms)))
9576 (home-page "https://github.com/momomo5717/emms-player-simple-mpv")
9577 (synopsis "Extension of @file{emms-player-simple.el} for mpv JSON IPC")
9578 (description "@code{emms-player-simple-mpv} provides macros and
9579functions for defining emms simple players of mpv.")
9580 (license license:gpl3+))))
26165a79
OP
9581
9582(define-public emacs-magit-org-todos-el
9583 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
9584 (package
9585 (name "emacs-magit-org-todos-el")
9586 (version (git-version "0.1.1" "1" commit))
9587 (source
9588 (origin
9589 (method git-fetch)
9590 (uri (git-reference
9591 (url "https://github.com/danielma/magit-org-todos.el.git")
9592 (commit commit)))
9593 (file-name (git-file-name name version))
9594 (sha256
9595 (base32
9596 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
ec6f4bda
OP
9597 (propagated-inputs
9598 `(("magit" ,magit)))
26165a79
OP
9599 (build-system emacs-build-system)
9600 (home-page "https://github.com/danielma/magit-org-todos.el")
9601 (synopsis "Get todo.org into Emacs Magit status")
9602 (description "This package allows you to get @file{todo.org} into your
9603magit status.
9604
9605If you have a @file{todo.org} file with @code{TODO} items in the root of your
9606repository, @code{magit-org-todos} will create a section in your Magit status
9607buffer with each of your todos.")
9608 (license license:gpl3+))))
f4dc59a2
OP
9609
9610(define-public emacs-f3
9611 (package
9612 (name "emacs-f3")
9613 (version "0.1")
9614 (source
9615 (origin
9616 (method url-fetch)
9617 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
9618 version ".tar.gz"))
9619 (file-name (string-append name "-" version ".tar.gz"))
9620 (sha256
9621 (base32
9622 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
9623 (build-system emacs-build-system)
9624 (propagated-inputs
9625 `(("emacs-helm" ,emacs-helm)))
9626 (home-page "https://github.com/cosmicexplorer/f3")
9627 (synopsis "Fantastic File Finder for Emacs")
9628 (description
9629 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
9630 (license license:gpl3+)))
6d6d9acc
OP
9631
9632(define-public emacs-lice-el
9633 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
9634 (package
9635 (name "emacs-lice-el")
9636 (version (git-version "0.2" "1" commit))
9637 (source (origin
9638 (method git-fetch)
9639 (uri (git-reference
9640 (url "https://github.com/buzztaiki/lice-el.git")
9641 (commit commit)))
9642 (file-name (git-file-name name version))
9643 (sha256
9644 (base32
9645 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
9646 (build-system emacs-build-system)
9647 (home-page "https://github.com/buzztaiki/lice-el")
9648 (synopsis "License and header template for Emacs")
9649 (description "@code{lice.el} provides following features:
9650
9651@itemize
9652@item License template management.
9653@item File header insertion.
9654@end itemize\n")
9655 (license license:gpl3+))))
fc86ea63
OP
9656
9657(define-public emacs-academic-phrases
9658 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
9659 (package
9660 (name "emacs-academic-phrases")
9661 (version (git-version "0.1" "1" commit))
9662 (source
9663 (origin
9664 (method git-fetch)
9665 (uri (git-reference
9666 (url "https://github.com/nashamri/academic-phrases.git")
9667 (commit commit)))
9668 (file-name (string-append name "-" version "-checkout"))
9669 (sha256
9670 (base32
9671 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
9672 (build-system emacs-build-system)
9673 (propagated-inputs
9674 `(("emacs-dash" ,emacs-dash)
9675 ("emacs-s" ,emacs-s)
9676 ("emacs-ht" ,emacs-ht)))
9677 (home-page "https://github.com/nashamri/academic-phrases")
9678 (synopsis "Bypass that mental block when writing your papers")
9679 (description
9680 "When writing your academic paper, you might get stuck trying to find
9681the right phrase that captures your intention. This package tries to
9682alleviate that problem by presenting you with a list of phrases organized by
9683the topic or by the paper section that you are writing. This package has
9684around 600 phrases so far.
9685
9686Using this package is easy, just call @code{academic-phrases} to get a list of
9687phrases organized by topic, or call @code{academic-phrases-by-section} to
9688browse the phrases by the paper section and fill-in the blanks if required.")
9689 (license license:gpl3+))))
75a87807
OP
9690
9691(define-public emacs-auto-yasnippet
9692 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
9693 (package
9694 (name "emacs-auto-yasnippet")
9695 (version (git-version "0.3.0" "1" commit))
9696 (source (origin
9697 (method git-fetch)
9698 (uri (git-reference
9699 (url "https://github.com/abo-abo/auto-yasnippet.git")
9700 (commit commit)))
9701 (file-name (string-append name "-" version "-checkout"))
9702 (sha256
9703 (base32
9704 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
9705 (build-system emacs-build-system)
9706 (arguments
9707 '(#:phases
9708 (modify-phases %standard-phases
9709 (add-before 'install 'check
9710 (lambda _
9711 (invoke "emacs" "--batch"
9712 "-l" "auto-yasnippet.el"
9713 "-l" "auto-yasnippet-test.el"
9714 "-f" "ert-run-tests-batch-and-exit"))))))
9715 (propagated-inputs
9716 `(("emacs-yasnippet" ,emacs-yasnippet)))
9717 (home-page "https://github.com/abo-abo/auto-yasnippet/")
9718 (synopsis "Quickly create disposable yasnippets")
9719 (description "This package provides a hybrid of keyboard macros and
9720yasnippet. You create the snippet on the go, usually to be used just in the
9721one place. It's fast, because you're not leaving the current buffer, and all
9722you do is enter the code you'd enter anyway, just placing ~ where you'd like
9723yasnippet fields and mirrors to be.")
9724 (license license:gpl3+))))
a79cf99c
OP
9725
9726(define-public emacs-highlight-numbers
9727 (package
9728 (name "emacs-highlight-numbers")
9729 (version "0.2.3")
9730 (source
9731 (origin
9732 (method url-fetch)
9733 (uri (string-append
9734 "https://github.com/Fanael/highlight-numbers/archive/"
9735 version ".tar.gz"))
9736 (file-name (string-append name "-" version ".tar.gz"))
9737 (sha256
9738 (base32
9739 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
9740 (build-system emacs-build-system)
9741 (propagated-inputs
9742 `(("emacs-parent-mode" ,emacs-parent-mode)))
9743 (home-page "https://github.com/Fanael/highlight-numbers")
9744 (synopsis "Highlight numbers in source code")
9745 (description "@code{highlight-numbers-mode} provides a minor mode for
9746syntax highlighting of numeric literals in source code.
9747
9748It s customizable: it's easy to add or redefine what exactly consitutes a
9749\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
9750 (license license:gpl3+)))
6e28f15c
OP
9751
9752(define-public emacs-darkroom
9753 (package
9754 (name "emacs-darkroom")
9755 (version "0.1")
9756 (source (origin
9757 (method url-fetch)
9758 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
9759 version ".el"))
9760 (sha256
9761 (base32
9762 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
9763 (build-system emacs-build-system)
9764 (home-page "https://elpa.gnu.org/packages/darkroom.html")
9765 (synopsis "Remove visual distractions and focus on writing")
9766 (description "@code{darkroom-mode} makes visual distractions disappear.
9767The mode-line is temporarily elided, text is enlarged and margins are adjusted
9768so that it's centered on the window.
9769
9770@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
9771@code{darkroom-mode}, unless the current buffer lives in the sole window of
9772the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
9773split to display more windows and more buffers, the buffer exits
9774@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
9775@code{darkroom-mode}.")
9776 (license license:gpl3+)))
bf8300de
OP
9777
9778(define-public emacs-rsw-elisp
9779 (package
9780 (name "emacs-rsw-elisp")
9781 (version "1.0.5")
9782 (source (origin
9783 (method url-fetch)
9784 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
9785 "/archive/" version ".tar.gz"))
9786 (file-name (string-append name "-" version ".tar.gz"))
9787 (sha256
9788 (base32
9789 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
9790 (build-system emacs-build-system)
9791 (home-page "https://github.com/rswgnu/rsw-elisp")
9792 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
9793 (description "This package improves and replaces the GNU Emacs commands
9794that interactively evaluate Emacs Lisp expressions. The new commands replace
5e5bcc80
RW
9795standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
9796the same way as the old commands when called non-interactively; only the
bf8300de
OP
9797interactive behavior should be different.")
9798 (license license:gpl3+)))
192a9a20
OP
9799
9800(define-public emacs-default-text-scale
9801 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
9802 (revision "1"))
9803 (package
9804 (name "emacs-default-text-scale")
9805 (version (string-append "0.1" "-" revision "."
9806 (string-take commit 7)))
9807 (source (origin
9808 (method git-fetch)
9809 (uri (git-reference
9810 (url "https://github.com/purcell/default-text-scale")
9811 (commit commit)))
9812 (file-name (string-append name "-" version "-checkout"))
9813 (sha256
9814 (base32
9815 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
9816 (build-system emacs-build-system)
9817 (home-page "https://github.com/purcell/default-text-scale")
9818 (synopsis "Adjust the font size in all Emacs frames")
9819 (description "This package provides commands for increasing or
9820decreasing the default font size in all GUI Emacs frames.")
9821 (license license:gpl3+))))
2f9e1378
OP
9822
9823(define-public emacs-visual-regexp
9824 (package
9825 (name "emacs-visual-regexp")
9826 (version "1.1.1")
9827 (source
9828 (origin
9829 (method url-fetch)
9830 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
9831 "v" version ".tar.gz"))
9832 (file-name (string-append name "-" version ".tar.gz"))
9833 (sha256
9834 (base32
9835 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
9836 (build-system emacs-build-system)
9837 (home-page "https://github.com/benma/visual-regexp.el/")
9838 (synopsis "Regexp command with interactive visual feedback")
9839 (description "This package provides an Emacs regexp command with
9840interactive visual feedback.")
9841 (license license:gpl3+)))
6f83725f
OP
9842
9843(define-public emacs-faceup
9844 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
9845 (revision "1"))
9846 (package
9847 (name "emacs-faceup")
9848 (version (string-append "0.0.1" "-" revision "."
9849 (string-take commit 7)))
9850 (source
9851 (origin
9852 (method git-fetch)
9853 (uri (git-reference
9854 (url "https://github.com/Lindydancer/faceup.git")
9855 (commit commit)))
9856 (file-name (string-append name "-" version "-checkout"))
9857 (sha256
9858 (base32
9859 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
9860 (build-system emacs-build-system)
9861 (home-page "https://github.com/Lindydancer/faceup")
9862 (synopsis "Markup language for faces and font-lock regression testing")
9863 (description "Emacs is capable of highlighting buffers based on
9864language-specific @code{font-lock} rules. This package makes it possible to
9865perform regression test for packages that provide font-lock rules.")
9866 (license license:gpl3+))))
f52b635b
OP
9867
9868(define-public emacs-racket-mode
9869 (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451")
9870 (revision "1"))
9871 (package
9872 (name "emacs-racket-mode")
9873 (version (string-append "0.0.1" "-" revision "."
9874 (string-take commit 7)))
9875 (source
9876 (origin
9877 (method git-fetch)
9878 (uri (git-reference
9879 (url "https://github.com/greghendershott/racket-mode")
9880 (commit commit)))
9881 (file-name (string-append name "-" version "-checkout"))
9882 (sha256
9883 (base32
9884 "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"))))
9885 (build-system emacs-build-system)
9886 (propagated-inputs
9887 `(("emacs-faceup" ,emacs-faceup)
9888 ("emacs-s" ,emacs-s)))
9889 (home-page "https://github.com/greghendershott/racket-mode")
9890 (synopsis "Major mode for Racket language")
9891 (description "@code{racket-mode} provides:
9892
9893@itemize
9894@item Focus on Racket (not various Schemes).
9895@item Follow DrRacket concepts where applicable.
9896@item Thorough font-lock and indent.
9897@end itemize\n")
9898 (license license:gpl3+))))
8f052df2
OP
9899
9900(define-public emacs-grep-context
9901 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
9902 (package
9903 (name "emacs-grep-context")
9904 (version (git-version "0.1" "1" commit))
9905 (source
9906 (origin
9907 (method git-fetch)
9908 (uri (git-reference
9909 (url "https://github.com/mkcms/grep-context.git")
9910 (commit commit)))
9911 (file-name (string-append name "-" version "-checkout"))
9912 (sha256
9913 (base32
9914 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
9915 (build-system emacs-build-system)
9916 (propagated-inputs
9917 `(("emacs-dash" ,emacs-dash)))
9918 (home-page "https://github.com/nashamri/academic-phrases")
9919 (synopsis "Increase context in compilation and grep buffers")
9920 (description
9921 "This package provides an Emacs package for more context in
9922compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
9923@code{ivy}.")
9924 (license license:gpl3+))))
d3f7e533
OP
9925
9926(define-public emacs-helm-firefox
9927 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
9928 (revision "1"))
9929 (package
9930 (name "emacs-helm-firefox")
9931 (version (string-append "0.0.1" "-" revision "."
9932 (string-take commit 7)))
9933 (source
9934 (origin
9935 (method git-fetch)
9936 (uri (git-reference
9937 (url "https://github.com/emacs-helm/helm-firefox.git")
9938 (commit commit)))
9939 (file-name (string-append name "-" version "-checkout"))
9940 (sha256
9941 (base32
9942 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
0715a9e6
OP
9943 (propagated-inputs
9944 `(("emacs-helm" ,emacs-helm)))
d3f7e533
OP
9945 (build-system emacs-build-system)
9946 (home-page "https://github.com/emacs-helm/helm-firefox")
9947 (synopsis "Display firefox bookmarks with Emacs Helm interface")
9948 (description "Display firefox bookmarks with Emacs Helm interface")
9949 (license license:gpl3+))))
b268bf18
OP
9950
9951(define-public emacs-interactive-align
9952 (package
9953 (name "emacs-interactive-align")
9954 (version "0.1.0")
9955 (source
9956 (origin
9957 (method url-fetch)
9958 (uri (string-append "https://github.com/mkcms/interactive-align/"
9959 "archive/" "v" version ".tar.gz"))
9960 (file-name (string-append name "-" version ".tar.gz"))
9961 (sha256
9962 (base32
9963 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
9964 (build-system emacs-build-system)
9965 (home-page "https://github.com/mkcms/interactive-align/")
9966 (synopsis "Interactive align-regexp command in Emacs")
9967 (description "Interactive align-regexp command in Emacs")
9968 (license license:gpl3+)))
fcd8d4f7
OP
9969
9970(define-public emacs-shift-number
9971 (package
9972 (name "emacs-shift-number")
9973 (version "0.1")
9974 (source
9975 (origin
9976 (method url-fetch)
9977 (uri (string-append "https://github.com/alezost/shift-number.el"
9978 "/archive/" "v" version ".tar.gz"))
9979 (file-name (string-append name "-" version ".tar.gz"))
9980 (sha256
9981 (base32
9982 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
9983 (build-system emacs-build-system)
9984 (home-page "https://github.com/alezost/shift-number.el")
9985 (synopsis "Increase or decrease the number at point")
9986 (description "@code{emacs-shift-number} provides commands
9987@code{shift-number-up} to increase and @code{shift-number-down} to
9988decrease the number at point.")
9989 (license license:gpl3+)))
b91e1724
OP
9990
9991(define-public emacs-highlight-defined
9992 (package
9993 (name "emacs-highlight-defined")
9994 (version "0.1.5")
9995 (source
9996 (origin
9997 (method url-fetch)
9998 (uri (string-append
9999 "https://github.com/Fanael/highlight-defined/archive/"
10000 version ".tar.gz"))
10001 (file-name (string-append name "-" version ".tar.gz"))
10002 (sha256
10003 (base32
10004 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10005 (build-system emacs-build-system)
10006 (home-page "https://github.com/Fanael/highlight-defined")
10007 (synopsis "Syntax highlighting of known Elisp symbols")
10008 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10009symbols. Currently the code distinguishes Lisp functions, built-in functions,
10010macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10011 (license license:gpl3+)))
8a2ab51a
OP
10012
10013(define-public emacs-parinfer-mode
10014 (package
10015 (name "emacs-parinfer-mode")
10016 (version "0.4.10")
10017 (source
10018 (origin
10019 (method url-fetch)
10020 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10021 "v" version ".tar.gz"))
10022 (file-name (string-append name "-" version ".tar.gz"))
10023 (sha256
10024 (base32
10025 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10026 (propagated-inputs
10027 `(("emacs-dash" ,emacs-dash)
10028 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10029 ("emacs-company" ,emacs-company)))
10030 (build-system emacs-build-system)
10031 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10032 (synopsis "Lisp structure editing mode")
10033 (description "@code{parinfer-mode} is a proof-of-concept editor
10034mode for Lisp programming languages. It will infer some changes to
10035keep Parens and Indentation inline with one another.")
10036 (license license:gpl3+)))
abe8ef7f
OP
10037
10038(define-public emacs-helm-eww
10039 (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac"))
10040 (package
10041 (name "emacs-helm-eww")
10042 (version (git-version "0.1" "1" commit))
10043 (source (origin
10044 (method git-fetch)
10045 (uri (git-reference
10046 (url "https://github.com/emacs-helm/helm-eww.git")
10047 (commit commit)))
10048 (file-name (string-append name "-" version "-checkout"))
10049 (sha256
10050 (base32
10051 "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
9e2529e1
OP
10052 (propagated-inputs
10053 `(("emacs-helm" ,emacs-helm)))
abe8ef7f
OP
10054 (build-system emacs-build-system)
10055 (home-page "https://github.com/emacs-helm/helm-eww/")
10056 (synopsis "Helm interface to EWW")
10057 (description "This package provides a Helm interface for EWW buffers,
10058bookmarks and history.")
10059 (license license:gpl3+))))
b870ee10
OP
10060
10061(define-public emacs-stumpwm-mode
10062 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10063 (revision "1"))
10064 (package
10065 (name "emacs-stumpwm-mode")
10066 (version (string-append "0.0.1-" revision "."
10067 (string-take commit 7)))
10068 (source (origin
10069 (method git-fetch)
10070 (uri (git-reference
10071 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10072 (commit commit)))
10073 (file-name (string-append name "-" version "-checkout"))
10074 (sha256
10075 (base32
10076 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10077 (build-system emacs-build-system)
10078 (arguments
10079 `(#:phases
10080 (modify-phases %standard-phases
10081 (add-after 'unpack 'chdir-elisp
10082 ;; Elisp directory is not in root of the source.
10083 (lambda _
10084 (chdir "util/swm-emacs"))))))
10085 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10086 (synopsis "Emacs minor-mode for Stumpwm")
10087 (description "Emacs minor-mode for Stumpwm")
10088 (license license:gpl3+))))
dbbd6e89
OP
10089
10090(define-public emacs-irfc
10091 (package
10092 (name "emacs-irfc")
10093 (version "20130824.507")
10094 (source
10095 (origin
10096 (method url-fetch)
10097 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10098 (file-name (string-append "irfc-" version ".el"))
10099 (sha256
10100 (base32
10101 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10102 (build-system emacs-build-system)
10103 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10104 (synopsis "Interface for IETF RFC document")
10105 (description
10106 "This package provides an Emacs interface for IETF RFC document.")
10107 (license license:gpl3+)))
0e087b70
OP
10108
10109(define-public emacs-ido-vertical-mode
10110 (package
10111 (name "emacs-ido-vertical-mode")
10112 (version "0.1.6")
10113 (source
10114 (origin
10115 (method url-fetch)
10116 (uri (string-append
10117 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10118 "v" version ".tar.gz"))
10119 (file-name (string-append name "-" version ".tar.gz"))
10120 (sha256
10121 (base32
10122 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10123 (build-system emacs-build-system)
10124 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10125 (synopsis "Makes ido-mode display vertically")
10126 (description "Makes ido-mode display prospects vertically.")
10127 (license license:gpl3+)))
ca0e2ab0
OP
10128
10129(define-public emacs-wordgen
10130 (package
10131 (name "emacs-wordgen")
10132 (version "0.1.4")
10133 (source
10134 (origin
10135 (method url-fetch)
10136 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10137 version ".tar.gz"))
10138 (file-name (string-append name "-" version ".tar.gz"))
10139 (sha256
10140 (base32
10141 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10142 (build-system emacs-build-system)
10143 (home-page "https://github.com/Fanael/wordgen.el")
10144 (synopsis "Random word generator")
10145 (description "This package provides functions to generate random words
10146using user-provided rules.")
10147 (license license:gpl3+)))
47667501
OP
10148
10149(define-public emacs-on-screen
10150 (package
10151 (name "emacs-on-screen")
10152 (version "1.3.2")
10153 (source
10154 (origin
10155 (method url-fetch)
10156 (uri (string-append
10157 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10158 (file-name (string-append name "-" version ".el"))
10159 (sha256
10160 (base32
10161 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10162 (build-system emacs-build-system)
10163 (home-page
10164 "https://github.com/michael-heerdegen/on-screen.el")
10165 (synopsis "Guide your eyes while scrolling")
10166 (description
10167 "Scrolling can be distracting because your eyes may lose
10168orientation. This library implements a minor mode that highlights
10169the previously visible buffer part after each scroll.")
10170 (license license:gpl3+)))
cfeefca9
OP
10171
10172(define-public emacs-highlight-escape-sequences
10173 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10174 (revision "1"))
10175 (package
10176 (name "emacs-highlight-escape-sequences")
10177 (version (string-append "0.0.1" "-" revision "."
10178 (string-take commit 7)))
10179 (source
10180 (origin
10181 (method git-fetch)
10182 (uri (git-reference
10183 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10184 (commit commit)))
10185 (file-name (string-append name "-" version "-checkout"))
10186 (sha256
10187 (base32
10188 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10189 (build-system emacs-build-system)
10190 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10191 (synopsis "Highlight escape sequences in Emacs")
10192 (description "@code{highlight-escape-sequences} provides an
10193Emacs minor mode to escape sequences in code.")
10194 (license license:gpl3+))))
99092bd9
OP
10195
10196(define-public emacs-dashboard
10197 (package
10198 (name "emacs-dashboard")
10199 (version "1.2.4")
10200 (source
10201 (origin
10202 (method url-fetch)
10203 (uri (string-append
10204 "https://github.com/rakanalh/emacs-dashboard/archive/"
10205 version ".tar.gz"))
10206 (file-name (string-append name "-" version ".tar.gz"))
10207 (sha256
10208 (base32
10209 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10210 (build-system emacs-build-system)
10211 (propagated-inputs
10212 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10213 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10214 (home-page "https://github.com/rakanalh/emacs-dashboard")
10215 (synopsis "Startup screen extracted from Spacemacs")
10216 (description "This package provides an extensible Emacs dashboard, with
10217sections for bookmarks, projectil projects, org-agenda and more. ")
10218 (license license:gpl3+)))
37fa904f
OP
10219
10220(define-public emacs-slime-company
10221 (package
10222 (name "emacs-slime-company")
10223 (version "1.1")
10224 (source
10225 (origin
10226 (method url-fetch)
10227 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10228 "v" version ".tar.gz"))
10229 (sha256
10230 (base32
10231 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10232 (file-name (string-append name "-" version ".tar.gz"))))
10233 (build-system emacs-build-system)
10234 (propagated-inputs
10235 `(("emacs-slime" ,emacs-slime)
10236 ("emacs-company" ,emacs-company)))
10237 (home-page "https://company-mode.github.io")
10238 (synopsis "SLIME completion backend for @code{company-mode}")
10239 (description
10240 "This is a backend implementation for the completion package
10241@code{company-mode} which supports the normal and the fuzzy completion
10242modes of SLIME.")
10243 (license license:gpl3+)))
1a73164d
OP
10244
10245(define-public emacs-sml-mode
10246 (package
10247 (name "emacs-sml-mode")
10248 (version "6.8")
10249 (source
10250 (origin
10251 (method url-fetch)
10252 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10253 version ".el"))
10254 (sha256
10255 (base32
10256 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10257 (build-system emacs-build-system)
10258 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10259 (synopsis "Major mode for editing (Standard) ML")
10260 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10261It provides syntax highlighting and automatic indentation and
10262comes with sml-proc which allows interaction with an inferior SML
10263interactive loop.")
10264 (license license:gpl3+)))
c498ff56
OP
10265
10266(define-public emacs-eros
10267 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10268 (revision "1"))
10269 (package
10270 (name "emacs-eros")
10271 (version (string-append "0.0.1" "-" revision "."
10272 (string-take commit 7)))
10273 (source
10274 (origin
10275 (method git-fetch)
10276 (uri (git-reference
10277 (url "https://github.com/xiongtx/eros.git")
10278 (commit commit)))
10279 (file-name (string-append name "-" version "-checkout"))
10280 (sha256
10281 (base32
10282 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10283 (build-system emacs-build-system)
10284 (home-page "https://github.com/xiongtx/eros")
10285 (synopsis "Evaluation result overlays")
10286 (description "@code{eros} provides evaluation result overlays.")
10287 (license license:gpl3+))))
6673bbef
OP
10288
10289(define-public emacs-stickyfunc-enhance
10290 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10291 (revision "1"))
10292 (package
10293 (name "emacs-stickyfunc-enhance")
10294 (version "0.1")
10295 (source
10296 (origin
10297 (method git-fetch)
10298 (uri (git-reference
10299 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10300 (commit commit)))
10301 (file-name (string-append name "-" version "-checkout"))
10302 (sha256
10303 (base32
10304 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10305 (build-system emacs-build-system)
10306 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10307 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10308 (description
10309 "@code{semantic-stickyfunc-mode} shows the function point is currently
10310in at the first line of the current buffer. This is useful when you have a
10311very long function that spreads more than a screen, and you don't have to
10312scroll up to read the function name and then scroll down to original position.")
10313 (license license:gpl3+))))
c9efc229
OP
10314
10315(define-public emacs-git-auto-commit-mode
10316 (package
10317 (name "emacs-git-auto-commit-mode")
10318 (version "4.4.0")
10319 (source
10320 (origin
10321 (method url-fetch)
10322 (uri (string-append
10323 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10324 version ".tar.gz"))
10325 (file-name (string-append name "-" version ".tar.gz"))
10326 (sha256
10327 (base32
10328 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10329 (build-system emacs-build-system)
10330 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10331 (synopsis "Emacs Minor mode to automatically commit and push")
10332 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10333tries to commit changes to a file after every save.
10334
10335When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10336the current upstream.")
10337 (license license:gpl3+)))
deef6d7c
OP
10338
10339(define-public emacs-company-restclient
10340 (package
10341 (name "emacs-company-restclient")
10342 (version "0.1.0")
10343 (source
10344 (origin
10345 (method url-fetch)
10346 (uri (string-append
10347 "https://github.com/iquiw/company-restclient/archive/"
10348 "v" version ".tar.gz"))
10349 (file-name (string-append name "-" version ".tar.gz"))
10350 (sha256
10351 (base32
10352 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10353 (build-system emacs-build-system)
10354 (propagated-inputs
10355 `(("emacs-company" ,emacs-company)
10356 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10357 ("emacs-restclient" ,emacs-restclient)))
10358 (home-page "https://github.com/iquiw/company-restclient")
10359 (synopsis "Company-mode completion back-end for restclient-mode")
10360 (description "@code{company-mode} back-end for
10361@code{restclient-mode}.
10362
10363It provides auto-completion for HTTP methods and headers in
10364@code{restclient-mode}. Completion source is given by
10365@code{know-your-http-well}.")
10366 (license license:gpl3+)))
51eda974
SB
10367
10368(define-public emacs-noflet
10369 (let ((version "20170629")
10370 (revision "1")
10371 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10372 (package
10373 (name "emacs-noflet")
10374 (version (git-version version revision commit))
10375 (source
10376 (origin
10377 (method git-fetch)
10378 (uri (git-reference
10379 (url "https://github.com/nicferrier/emacs-noflet")
10380 (commit commit)))
10381 (file-name (string-append name "-" version "-checkout"))
10382 (sha256
10383 (base32
10384 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10385 (build-system emacs-build-system)
10386 (arguments
10387 `(#:phases
10388 (modify-phases %standard-phases
10389 (add-after 'unpack 'require-dash
10390 ;; noflet.el uses -map from dash, but (require 'dash) is
10391 ;; missing. So, add it.
10392 (lambda _
10393 (substitute* "noflet.el"
10394 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10395 #t)))))
10396 (propagated-inputs
10397 `(("emacs-dash" ,emacs-dash)))
10398 (home-page "https://github.com/nicferrier/emacs-noflet")
10399 (synopsis "Locally override functions")
10400 (description "@code{emacs-noflet} let's you locally override functions,
10401in the manner of @command{flet}, but with access to the original function
10402through the symbol: @command{this-fn}.")
10403 (license license:gpl3+))))
b36f9a80
SB
10404
10405(define-public emacs-dumb-jump
10406 (package
10407 (name "emacs-dumb-jump")
10408 (version "0.5.2")
10409 (source
10410 (origin
10411 (method url-fetch)
10412 (uri (string-append
10413 "https://github.com/jacktasia/dumb-jump/archive/v"
10414 version ".tar.gz"))
10415 (file-name (string-append name "-" version ".tar.gz"))
10416 (sha256
10417 (base32
10418 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10419 (build-system emacs-build-system)
10420 (arguments
10421 `(#:tests? #f ; FIXME: Tests freeze when run.
10422 #:test-command '("ert-runner")
10423 #:phases
10424 (modify-phases %standard-phases
10425 (add-after 'unpack 'set-shell
10426 (lambda _
10427 ;; Setting the SHELL environment variable is required for the
10428 ;; tests to find sh.
10429 (setenv "SHELL" (which "sh"))
10430 #t)))))
10431 (native-inputs
10432 `(("emacs-el-mock" ,emacs-el-mock)
10433 ("emacs-noflet" ,emacs-noflet)
10434 ("emacs-undercover" ,emacs-undercover)
10435 ("ert-runner" ,ert-runner)))
10436 (propagated-inputs
10437 `(("emacs-f" ,emacs-f)
10438 ("emacs-popup" ,emacs-popup)))
10439 (home-page "https://github.com/jacktasia/dumb-jump")
10440 (synopsis "Jump to definition for multiple languages without configuration")
10441 (description "Dumb Jump is an Emacs \"jump to definition\" package with
10442support for multiple programming languages that favors \"just working\" over
10443speed or accuracy. This means minimal --- and ideally zero --- configuration
10444with absolutely no stored indexes (tags) or persistent background processes.
10445Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
10446@command{rg} installed.")
10447 (license license:gpl3+)))
563ab27b
MO
10448
10449(define-public emacs-dts-mode
10450 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
10451 (revision "1"))
10452 (package
10453 (name "emacs-dts-mode")
10454 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
10455 (source
10456 (origin
10457 (method git-fetch)
10458 (uri (git-reference
10459 (url "https://github.com/bgamari/dts-mode.git")
10460 (commit commit)))
10461 (file-name (string-append name "-" version "-checkout"))
10462 (sha256
10463 (base32
10464 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
10465 (build-system emacs-build-system)
10466 (home-page "https://github.com/bgamari/dts-mode.git")
10467 (synopsis "Emacs minor mode for editing device tree files")
10468 (description
10469 "This package provides an Emacs minor mode for highlighting
10470device tree files.")
10471 (license license:gpl3+))))