system: Add u-boot-puma-rk3399.
[jackhill/guix/guix.git] / gnu / packages / emacs.scm
CommitLineData
468bdabb 1;;; GNU Guix --- Functional package management for GNU
4a3e602c 2;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
02267798 3;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
84fe4420 4;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
e9c3a780 5;;; Copyright © 2014, 2015, 2016, 2017, 2018 Alex Kost <alezost@gmail.com>
78395334 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5a545aab 7;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
4f95a118 8;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
11e4c1fd 9;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
f9f67fcb 10;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
995b7069 11;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
c5c08f1b 12;;; Copyright © 2016 David Thompson <davet@gnu.org>
ae609001 13;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
fd2d17cd 14;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
4a78fd46 15;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
46bd4515 16;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
7ad05d85 17;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
d3150731 18;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
2891ea39 19;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
cf006d2e 20;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
563ab27b 21;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
30cf7070 22;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
4d3d3bd2 23;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
4fca8a02 24;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
3c8ba11a 25;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
99517d92 26;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
deddeb44 27;;; Copyright © 2017 Feng Shu <tumashu@163.com>
7a0efa77 28;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
b0912e9f 29;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
de2e402b 30;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
b9dcaced 31;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
370ae985 32;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
491cbd35 33;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
33ca12f3 34;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
62d1105c 35;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
c3581ef9 36;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
bdadf855 37;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
468bdabb
LC
38;;;
39;;; This file is part of GNU Guix.
40;;;
41;;; GNU Guix is free software; you can redistribute it and/or modify it
42;;; under the terms of the GNU General Public License as published by
43;;; the Free Software Foundation; either version 3 of the License, or (at
44;;; your option) any later version.
45;;;
46;;; GNU Guix is distributed in the hope that it will be useful, but
47;;; WITHOUT ANY WARRANTY; without even the implied warranty of
48;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49;;; GNU General Public License for more details.
50;;;
51;;; You should have received a copy of the GNU General Public License
52;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
53
1ffa7090 54(define-module (gnu packages emacs)
f61e0e79 55 #:use-module ((guix licenses) #:prefix license:)
468bdabb
LC
56 #:use-module (guix packages)
57 #:use-module (guix download)
f906d30c 58 #:use-module (guix git-download)
e5045f30
FB
59 #:use-module (guix gexp)
60 #:use-module (guix monads)
61 #:use-module (guix store)
468bdabb 62 #:use-module (guix build-system gnu)
78395334 63 #:use-module (guix build-system emacs)
71f57158 64 #:use-module (guix build-system glib-or-gtk)
fe4163f3 65 #:use-module (guix build-system trivial)
59a43334 66 #:use-module (gnu packages)
acf7d4a7 67 #:use-module (gnu packages audio)
4aafce22 68 #:use-module (gnu packages bash)
75408149 69 #:use-module (gnu packages cmake)
cf006d2e 70 #:use-module (gnu packages code)
4d089b5e 71 #:use-module (gnu packages databases)
f906d30c 72 #:use-module (gnu packages guile)
7abe1965 73 #:use-module (gnu packages gtk)
8ba4dc63 74 #:use-module (gnu packages gnome)
1ffa7090 75 #:use-module (gnu packages ncurses)
99517d92 76 #:use-module (gnu packages python)
41184943 77 #:use-module (gnu packages tex)
1ffa7090 78 #:use-module (gnu packages texinfo)
acf7d4a7 79 #:use-module (gnu packages tcl)
a7fd7b68 80 #:use-module (gnu packages tls)
4f028c8f 81 #:use-module (gnu packages pkg-config)
50efa797
LC
82 #:use-module (gnu packages xorg)
83 #:use-module (gnu packages lesstif)
e55354b8 84 #:use-module (gnu packages image)
504a83af 85 #:use-module (gnu packages linux)
9a4c9715 86 #:use-module (gnu packages version-control)
18d26210
MW
87 #:use-module (gnu packages imagemagick)
88 #:use-module (gnu packages w3m)
89925972 89 #:use-module (gnu packages wget)
18d26210 90 #:use-module (gnu packages autotools)
be379ee7 91 #:use-module (gnu packages base)
f61e0e79 92 #:use-module (gnu packages compression)
50efa797 93 #:use-module (gnu packages xml)
4a3e602c 94 #:use-module (gnu packages glib)
388fd01b 95 #:use-module (gnu packages acl)
b6efe0e8 96 #:use-module (gnu packages mail)
13fe4891 97 #:use-module (gnu packages package-management)
77c9286d 98 #:use-module (gnu packages perl)
ec9825d6 99 #:use-module (gnu packages pdf)
58a7dc13 100 #:use-module (gnu packages scheme)
41184943 101 #:use-module (gnu packages statistics)
77c9286d
LC
102 #:use-module (gnu packages xiph)
103 #:use-module (gnu packages mp3)
154c71e0 104 #:use-module (gnu packages gettext)
a80b60f4
AI
105 #:use-module (gnu packages fribidi)
106 #:use-module (gnu packages gd)
107 #:use-module (gnu packages fontutils)
03efe78c 108 #:use-module (gnu packages password-utils)
0bcb9258 109 #:use-module (gnu packages xdisorg)
4a3e602c 110 #:use-module (guix utils)
87449013
AI
111 #:use-module (srfi srfi-1)
112 #:use-module (ice-9 match))
468bdabb
LC
113
114(define-public emacs
115 (package
116 (name "emacs")
a338b6f5 117 (version "25.3")
468bdabb
LC
118 (source (origin
119 (method url-fetch)
120 (uri (string-append "mirror://gnu/emacs/emacs-"
3be9f724 121 version ".tar.xz"))
468bdabb
LC
122 (sha256
123 (base32
a338b6f5 124 "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"))
fc1adab1 125 (patches (search-patches "emacs-exec-path.patch"
4509ec72 126 "emacs-fix-scheme-indent-function.patch"
0cdb6ab4 127 "emacs-source-date-epoch.patch"))
486f36eb
AK
128 (modules '((guix build utils)))
129 (snippet
130 ;; Delete the bundled byte-compiled elisp files and
131 ;; generated autoloads.
132 '(with-directory-excursion "lisp"
133 (for-each delete-file
134 (append (find-files "." "\\.elc$")
135 (find-files "." "loaddefs\\.el$")
136 ;; This is the only "autoloads" file that
137 ;; does not have "*loaddefs.el" name.
dc701091
LC
138 '("eshell/esh-groups.el")))
139
140 ;; Make sure Tramp looks for binaries in the right places on
141 ;; remote GuixSD machines, where 'getconf PATH' returns
142 ;; something bogus.
143 (substitute* "net/tramp-sh.el"
144 ;; Patch the line after "(defcustom tramp-remote-path".
145 (("\\(tramp-default-remote-path")
146 (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
147 "~/.guix-profile/bin" "~/.guix-profile/sbin"
148 "/run/current-system/profile/bin"
d1c11418
OP
149 "/run/current-system/profile/sbin")))
150
151 ;; Make sure Man looks for C header files in the right
152 ;; places.
153 (substitute* "man.el"
154 (("\"/usr/local/include\"" line)
155 (string-join
156 (list line
157 "\"~/.guix-profile/include\""
158 "\"/var/guix/profiles/system/profile/include\"")
159 " ")))))))
71f57158 160 (build-system glib-or-gtk-build-system)
468bdabb 161 (arguments
a338b6f5 162 `(#:phases
13fe4891
FB
163 (modify-phases %standard-phases
164 (add-before 'configure 'fix-/bin/pwd
165 (lambda _
166 ;; Use `pwd', not `/bin/pwd'.
167 (substitute* (find-files "." "^Makefile\\.in$")
168 (("/bin/pwd")
169 "pwd"))))
13fe4891 170 (add-after 'install 'install-site-start
59d04f63
AK
171 ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages
172 ;; provided by Guix and installed in
13fe4891
FB
173 ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
174 ;; automatically found.
175 (lambda* (#:key inputs outputs #:allow-other-keys)
59d04f63
AK
176 (let* ((out (assoc-ref outputs "out"))
177 (lisp-dir (string-append out "/share/emacs/site-lisp")))
178 (copy-file (assoc-ref inputs "guix-emacs.el")
179 (string-append lisp-dir "/guix-emacs.el"))
13fe4891
FB
180 (with-output-to-file (string-append lisp-dir "/site-start.el")
181 (lambda ()
9bd94544
AK
182 (display
183 (string-append "(when (require 'guix-emacs nil t)\n"
184 " (guix-emacs-autoload-packages))\n"))))
13fe4891 185 #t))))))
468bdabb 186 (inputs
c4c4cc05 187 `(("gnutls" ,gnutls)
468bdabb
LC
188 ("ncurses" ,ncurses)
189
190 ;; TODO: Add the optional dependencies.
fa275717 191 ("libx11" ,libx11)
0a9e9a63 192 ("gtk+" ,gtk+)
fa275717 193 ("libxft" ,libxft)
50efa797 194 ("libtiff" ,libtiff)
504a83af 195 ("giflib" ,giflib)
50efa797 196 ("libjpeg" ,libjpeg-8)
eb737a27 197 ("imagemagick" ,imagemagick)
388fd01b 198 ("acl" ,acl)
50efa797
LC
199
200 ;; When looking for libpng `configure' links with `-lpng -lz', so we
201 ;; must also provide zlib as an input.
202 ("libpng" ,libpng)
f61e0e79 203 ("zlib" ,zlib)
50efa797 204
8ba4dc63 205 ("librsvg" ,librsvg)
fa275717 206 ("libxpm" ,libxpm)
50efa797 207 ("libxml2" ,libxml2)
504a83af
MW
208 ("libice" ,libice)
209 ("libsm" ,libsm)
210 ("alsa-lib" ,alsa-lib)
13fe4891 211 ("dbus" ,dbus)
01c5c21a
AI
212
213 ;; multilingualization support
214 ("libotf" ,libotf)
215 ("m17n-lib" ,m17n-lib)))
c4c4cc05 216 (native-inputs
59d04f63
AK
217 `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
218 ("pkg-config" ,pkg-config)
c4c4cc05 219 ("texinfo" ,texinfo)))
64c98347
LC
220
221 (native-search-paths
222 (list (search-path-specification
223 (variable "INFOPATH")
224 (files '("share/info")))))
225
6fd52309 226 (home-page "https://www.gnu.org/software/emacs/")
f50d2669 227 (synopsis "The extensible, customizable, self-documenting text editor")
468bdabb 228 (description
79c311b8
LC
229 "GNU Emacs is an extensible and highly customizable text editor. It is
230based on an Emacs Lisp interpreter with extensions for text editing. Emacs
231has been extended in essentially all areas of computing, giving rise to a
232vast array of packages supporting, e.g., email, IRC and XMPP messaging,
233spreadsheets, remote server editing, and much more. Emacs includes extensive
234documentation on all aspects of the system, from basic editing to writing
235large Lisp programs. It has full Unicode support for nearly all human
236languages.")
f61e0e79 237 (license license:gpl3+)))
4f028c8f 238
b2eaf7ba 239(define-public emacs-minimal
4fd540b7
LC
240 ;; This is the version that you should use as an input to packages that just
241 ;; need to byte-compile .el files.
b2eaf7ba
AK
242 (package (inherit emacs)
243 (name "emacs-minimal")
244 (synopsis "The extensible text editor (used only for byte-compilation)")
245 (build-system gnu-build-system)
246 (arguments
247 (substitute-keyword-arguments (package-arguments emacs)
248 ((#:phases phases)
249 `(modify-phases ,phases
250 (delete 'install-site-start)))))
251 (inputs
252 `(("ncurses" ,ncurses)))
253 (native-inputs
254 `(("pkg-config" ,pkg-config)))))
255
256(define-public emacs-no-x
4fd540b7 257 (package (inherit emacs)
4fd540b7
LC
258 (name "emacs-no-x")
259 (synopsis "The extensible, customizable, self-documenting text
260editor (console only)")
261 (build-system gnu-build-system)
262 (inputs (fold alist-delete
263 (package-inputs emacs)
264 '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
4adde2a9
MW
265 "imagemagick" "libpng" "librsvg" "libxpm" "libice"
266 "libsm"
4fd540b7 267
4adde2a9
MW
268 ;; These depend on libx11, so remove them as well.
269 "libotf" "m17n-lib" "dbus")))))
4fd540b7 270
4a3e602c
TUBK
271(define-public emacs-no-x-toolkit
272 (package (inherit emacs)
273 (name "emacs-no-x-toolkit")
274 (synopsis "The extensible, customizable, self-documenting text
275editor (without an X toolkit)" )
71f57158 276 (build-system gnu-build-system)
388fd01b
MW
277 (inputs (append `(("inotify-tools" ,inotify-tools))
278 (alist-delete "gtk+" (package-inputs emacs))))
279 (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
280 (package-arguments emacs)))))
4a3e602c 281
f906d30c
CAW
282(define-public guile-emacs
283 (package (inherit emacs)
284 (name "guile-emacs")
285 (version "20150512.41120e0")
286 (source (origin
287 (method git-fetch)
288 (uri (git-reference
289 (url "git://git.hcoop.net/git/bpt/emacs.git")
290 (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
995b7069 291 (file-name (string-append name "-" version "-checkout"))
68cb962a 292 (patches (search-patches "guile-emacs-fix-configure.patch"))
f906d30c
CAW
293 (sha256
294 (base32
295 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
296 (native-inputs
297 `(("autoconf" ,autoconf)
298 ("automake" ,automake)
299 ("guile" ,guile-for-guile-emacs)
300 ,@(package-native-inputs emacs)))
301 (arguments
302 (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
303 #:parallel-build? #f
304 ;; Tests aren't passing for now.
305 #:tests? #f
306 ,@(package-arguments emacs))
307 ((#:phases phases)
308 `(modify-phases ,phases
309 (add-after 'unpack 'autogen
310 (lambda _
68cb962a
JN
311 (zero? (system* "sh" "autogen.sh"))))
312 ;; Build sometimes fails: deps/dispnew.d: No such file or directory
313 (add-before 'build 'make-deps-dir
314 (lambda _
315 (zero? (system* "mkdir" "-p" "src/deps"))))))))))
f906d30c 316
4f028c8f
LC
317\f
318;;;
319;;; Emacs hacking.
320;;;
321
322(define-public geiser
323 (package
324 (name "geiser")
e9c3a780 325 (version "0.10")
4f028c8f
LC
326 (source (origin
327 (method url-fetch)
cf8f58b2
LC
328 (uri (string-append "mirror://savannah/geiser/" version
329 "/geiser-" version ".tar.gz"))
4f028c8f 330 (sha256
1f8ad12a 331 (base32
e9c3a780 332 "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
4f028c8f 333 (build-system gnu-build-system)
d51cafb0 334 (arguments
dc1d3cde
KK
335 '(#:phases
336 (modify-phases %standard-phases
337 (add-after 'install 'post-install
338 (lambda* (#:key outputs #:allow-other-keys)
339 (symlink "geiser-install.el"
340 (string-append (assoc-ref outputs "out")
341 "/share/emacs/site-lisp/"
342 "geiser-autoloads.el"))
343 #t)))))
bc96a8b5 344 (inputs `(("guile" ,guile-2.2)))
b8fc3622 345 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 346 (home-page "https://nongnu.org/geiser/")
4f028c8f
LC
347 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
348 (description
9586011d
LC
349 "Geiser is a collection of Emacs major and minor modes that conspire with
350one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
351continuously running Scheme interpreter takes the center of the stage in
352Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
353implementation, Emacs and, ultimately, the schemer, giving them access to live
354metadata.")
f61e0e79 355 (license license:bsd-3)))
9a4c9715 356
fe4163f3
MW
357(define-public paredit
358 (package
967cfd18 359 (name "emacs-paredit")
c181b870 360 (version "24")
fe4163f3 361 (source (origin
c181b870
AK
362 (method url-fetch)
363 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
364 version ".el"))
365 (sha256
366 (base32
367 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
79b3c930 368 (build-system emacs-build-system)
fe4163f3
MW
369 (home-page "http://mumble.net/~campbell/emacs/paredit/")
370 (synopsis "Emacs minor mode for editing parentheses")
371 (description
372 "ParEdit (paredit.el) is a minor mode for performing structured editing
373of S-expression data. The typical example of this would be Lisp or Scheme
374source code.
375
376ParEdit helps **keep parentheses balanced** and adds many keys for moving
377S-expressions and moving around in S-expressions. Its behavior can be jarring
378for those who may want transient periods of unbalanced parentheses, such as
379when typing parentheses directly or commenting out code line by line.")
f61e0e79 380 (license license:gpl3+)))
fe4163f3 381
2f910ef6
LC
382(define-public git-modes
383 (package
6d21272b 384 (name "emacs-git-modes")
370ae985 385 (version "1.2.7")
2f910ef6
LC
386 (source (origin
387 (method url-fetch)
388 (uri (string-append
389 "https://github.com/magit/git-modes/archive/"
390 version ".tar.gz"))
8fd3c1ff 391 (file-name (string-append name "-" version ".tar.gz"))
2f910ef6
LC
392 (sha256
393 (base32
370ae985 394 "1mzl70s0xyysnjq1j10mc5vn9i022n5vd82kxsgp4xxqq7gc4qnx"))))
3d01b293 395 (build-system emacs-build-system)
2f910ef6
LC
396 (home-page "https://github.com/magit/git-modes")
397 (synopsis "Emacs major modes for Git configuration files")
398 (description
399 "This package provides Emacs major modes for editing various Git
400configuration files, such as .gitattributes, .gitignore, and .git/config.")
401 (license license:gpl3+)))
402
6d21272b
AK
403(define-public git-modes/old-name
404 (deprecated-package "git-modes" git-modes))
405
2b0e4300
AK
406(define-public emacs-with-editor
407 (package
408 (name "emacs-with-editor")
cec021d1 409 (version "2.7.2")
2b0e4300
AK
410 (source (origin
411 (method url-fetch)
412 (uri (string-append
413 "https://github.com/magit/with-editor/archive/v"
414 version ".tar.gz"))
415 (file-name (string-append name "-" version ".tar.gz"))
416 (sha256
417 (base32
cec021d1 418 "1jqi3axcs0cb1pcv1jxxc2a09v6psrm33wwl6hmyshzl8kbxs2mv"))))
2b0e4300
AK
419 (build-system emacs-build-system)
420 (propagated-inputs
421 `(("emacs-dash" ,emacs-dash)))
422 (home-page "https://github.com/magit/with-editor")
423 (synopsis "Emacs library for using Emacsclient as EDITOR")
424 (description
425 "This package provides an Emacs library to use the Emacsclient as
426@code{$EDITOR} of child processes, making sure they know how to call home.
427For remote processes a substitute is provided, which communicates with Emacs
428on stdout instead of using a socket as the Emacsclient does.")
429 (license license:gpl3+)))
430
9a4c9715
MW
431(define-public magit
432 (package
433 (name "magit")
f61719d1 434 (version "2.12.1")
9a4c9715
MW
435 (source (origin
436 (method url-fetch)
fac8b30b
MW
437 (uri (string-append
438 "https://github.com/magit/magit/releases/download/"
439 version "/" name "-" version ".tar.gz"))
9a4c9715 440 (sha256
7e4871ba 441 (base32
f61719d1 442 "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3"))))
9a4c9715 443 (build-system gnu-build-system)
2c047b4a 444 (native-inputs `(("texinfo" ,texinfo)
b8fc3622 445 ("emacs" ,emacs-minimal)))
46bd4515
AG
446 (inputs
447 `(("git" ,git)
448 ("perl" ,perl)))
3db5ed11
AK
449 (propagated-inputs
450 `(("dash" ,emacs-dash)
f61719d1
AK
451 ("ghub" ,emacs-ghub)
452 ("magit-popup" ,emacs-magit-popup)
3db5ed11 453 ("with-editor" ,emacs-with-editor)))
9a4c9715 454 (arguments
84fe4420 455 `(#:test-target "test"
55f29c39 456 #:tests? #f ; tests are not included in the release
7e4871ba 457
55f29c39
AK
458 #:make-flags
459 (list (string-append "PREFIX=" %output)
460 ;; Don't put .el files in a sub-directory.
461 (string-append "lispdir=" %output "/share/emacs/site-lisp")
462 (string-append "DASH_DIR="
463 (assoc-ref %build-inputs "dash")
464 "/share/emacs/site-lisp/guix.d/dash-"
3db5ed11 465 ,(package-version emacs-dash))
f61719d1
AK
466 (string-append "GHUB_DIR="
467 (assoc-ref %build-inputs "ghub")
468 "/share/emacs/site-lisp/guix.d/ghub-"
469 ,(package-version emacs-ghub))
470 (string-append "MAGIT_POPUP_DIR="
471 (assoc-ref %build-inputs "magit-popup")
472 "/share/emacs/site-lisp/guix.d/magit-popup-"
473 ,(package-version emacs-magit-popup))
3db5ed11
AK
474 (string-append "WITH_EDITOR_DIR="
475 (assoc-ref %build-inputs "with-editor")
476 "/share/emacs/site-lisp/guix.d/with-editor-"
477 ,(package-version emacs-with-editor)))
d41a8a07 478
9a4c9715 479 #:phases
c466bfd1 480 (modify-phases %standard-phases
55f29c39 481 (delete 'configure)
c466bfd1
LC
482 (add-before
483 'build 'patch-exec-paths
484 (lambda* (#:key inputs #:allow-other-keys)
84fe4420 485 (let ((perl (assoc-ref inputs "perl")))
46bd4515
AG
486 (substitute* "lisp/magit-sequence.el"
487 (("perl") (string-append perl "/bin/perl")))
55f29c39 488 #t))))))
f61719d1 489 (home-page "https://magit.vc/")
9a4c9715
MW
490 (synopsis "Emacs interface for the Git version control system")
491 (description
492 "With Magit, you can inspect and modify your Git repositories with Emacs.
493You can review and commit the changes you have made to the tracked files, for
494example, and you can browse the history of past changes. There is support for
495cherry picking, reverting, merging, rebasing, and other common Git
496operations.")
f61e0e79 497 (license license:gpl3+)))
18d26210 498
97cc51f8
LC
499(define-public magit-svn
500 (package
501 (name "magit-svn")
5ccd8f40 502 (version "2.2.0")
97cc51f8 503 (source (origin
be379ee7
AK
504 (method url-fetch)
505 (uri (string-append
506 "https://github.com/magit/magit-svn/archive/"
507 version ".tar.gz"))
508 (file-name (string-append name "-" version ".tar.gz"))
97cc51f8
LC
509 (sha256
510 (base32
5ccd8f40 511 "1c3n377v436zaxamlsz04y1ahdhp96x1vd43zaryv4y10m02ba47"))))
97cc51f8 512 (build-system trivial-build-system)
b8fc3622 513 (native-inputs `(("emacs" ,emacs-minimal)
be379ee7
AK
514 ("tar" ,tar)
515 ("gzip" ,gzip)))
516 (propagated-inputs `(("dash" ,emacs-dash)
5ccd8f40 517 ("with-editor" ,emacs-with-editor)
be379ee7 518 ("magit" ,magit)))
97cc51f8
LC
519 (arguments
520 `(#:modules ((guix build utils)
521 (guix build emacs-utils))
522
523 #:builder
524 (begin
525 (use-modules (guix build utils)
526 (guix build emacs-utils))
527
be379ee7
AK
528 (let* ((tar (string-append (assoc-ref %build-inputs "tar")
529 "/bin/tar"))
530 (PATH (string-append (assoc-ref %build-inputs "gzip")
531 "/bin"))
532 (emacs (string-append (assoc-ref %build-inputs "emacs")
97cc51f8
LC
533 "/bin/emacs"))
534 (magit (string-append (assoc-ref %build-inputs "magit")
535 "/share/emacs/site-lisp"))
be379ee7
AK
536 (dash (string-append (assoc-ref %build-inputs "dash")
537 "/share/emacs/site-lisp/guix.d/dash-"
538 ,(package-version emacs-dash)))
5ccd8f40
LC
539 (with-editor (string-append (assoc-ref %build-inputs "with-editor")
540 "/share/emacs/site-lisp/guix.d/with-editor-"
541 ,(package-version emacs-with-editor)))
97cc51f8
LC
542 (source (assoc-ref %build-inputs "source"))
543 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
be379ee7
AK
544 (setenv "PATH" PATH)
545 (system* tar "xvf" source)
96c46210
LC
546
547 (install-file (string-append ,name "-" ,version "/magit-svn.el")
548 lisp-dir)
97cc51f8
LC
549
550 (with-directory-excursion lisp-dir
551 (parameterize ((%emacs emacs))
552 (emacs-generate-autoloads ,name lisp-dir)
553 (setenv "EMACSLOADPATH"
5ccd8f40 554 (string-append ":" magit ":" dash ":" with-editor))
97cc51f8
LC
555 (emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
556 (home-page "https://github.com/magit/magit-svn")
557 (synopsis "Git-SVN extension to Magit")
558 (description
559 "This package is an extension to Magit, the Git Emacs mode, providing
560support for Git-SVN.")
561 (license license:gpl3+)))
562
c1562e3d
AK
563(define-public emacs-magit-popup
564 (package
565 (name "emacs-magit-popup")
1f22a544 566 (version "2.12.3")
c1562e3d
AK
567 (source (origin
568 (method url-fetch)
569 (uri (string-append
09f7c41d
AK
570 "https://github.com/magit/magit-popup/archive/v"
571 version ".tar.gz"))
572 (file-name (string-append name "-" version ".tar.gz"))
c1562e3d
AK
573 (sha256
574 (base32
1f22a544 575 "1kz6vj67awkwf9y2wj6m3l2him3znm08z6bkdvnmfr6rwd96dr39"))))
c1562e3d 576 (build-system emacs-build-system)
09f7c41d
AK
577 (arguments
578 `(#:phases
579 (modify-phases %standard-phases
580 (add-before 'install 'make-info
581 (lambda _
582 (zero? (system* "make" "info")))))))
583 (native-inputs
584 `(("texinfo" ,texinfo)))
c1562e3d
AK
585 (propagated-inputs
586 `(("emacs-dash" ,emacs-dash)))
09f7c41d 587 (home-page "https://github.com/magit/magit-popup")
c1562e3d
AK
588 (synopsis "Define prefix-infix-suffix command combos")
589 (description
590 "This library implements a generic interface for toggling switches and
591setting options and then invoking an Emacs command which does something with
592these arguments. The prototypical use is for the command to call an external
593process, passing on the arguments as command line arguments.")
594 (license license:gpl3+)))
595
0a287457
AK
596(define-public emacs-ghub
597 (package
598 (name "emacs-ghub")
599 (version "2.0.0")
600 (source (origin
601 (method url-fetch)
602 (uri (string-append
603 "https://github.com/magit/ghub/archive/v"
604 version ".tar.gz"))
605 (file-name (string-append name "-" version ".tar.gz"))
606 (sha256
607 (base32
608 "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc"))))
609 (build-system emacs-build-system)
610 (arguments
611 `(#:phases
612 (modify-phases %standard-phases
613 (add-before 'install 'make-info
614 (lambda _
615 (zero? (system* "make" "info")))))))
616 (native-inputs
617 `(("texinfo" ,texinfo)))
618 (home-page "https://github.com/magit/ghub")
619 (synopsis "Emacs client library for Github API and Gitlab API")
620 (description
621 "This package provides 2 files: @file{ghub.el} and @file{glab.el},
622which are the libraries that provide basic support for using the Github and
623Gitlab APIs from Emacs packages. It abstracts access to API resources using
624only a handful of functions that are not resource-specific.")
625 (license license:gpl3+)))
626
00f4bd50
FB
627(define-public haskell-mode
628 (package
629 (name "haskell-mode")
08fc0d68 630 (version "16.1")
00f4bd50
FB
631 (source (origin
632 (method url-fetch)
633 (file-name (string-append name "-" version ".tar.gz"))
634 (uri (string-append
635 "https://github.com/haskell/haskell-mode/archive/v"
636 version ".tar.gz"))
637 (sha256
08fc0d68
FB
638 (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
639 (inputs
640 `(("emacs-el-search" ,emacs-el-search) ; for tests
641 ("emacs-stream" ,emacs-stream))) ; for tests
642 (propagated-inputs
643 `(("emacs-dash" ,emacs-dash)))
00f4bd50 644 (native-inputs
b8fc3622 645 `(("emacs" ,emacs-minimal)
6aaf3899 646 ("texinfo" ,texinfo)))
00f4bd50
FB
647 (build-system gnu-build-system)
648 (arguments
649 `(#:make-flags (list (string-append "EMACS="
650 (assoc-ref %build-inputs "emacs")
651 "/bin/emacs"))
08fc0d68
FB
652 #:modules ((ice-9 match)
653 (srfi srfi-26)
654 ,@%gnu-build-system-modules)
00f4bd50
FB
655 #:phases
656 (modify-phases %standard-phases
657 (delete 'configure)
658 (add-before
659 'build 'pre-build
660 (lambda* (#:key inputs #:allow-other-keys)
08fc0d68 661 (define (el-dir store-dir)
69611d3e 662 (match (find-files store-dir "\\.el$")
08fc0d68
FB
663 ((f1 f2 ...) (dirname f1))
664 (_ "")))
665
00f4bd50 666 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
08fc0d68
FB
667 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
668
00f4bd50 669 (setenv "SHELL" "sh")
08fc0d68
FB
670 (setenv "EMACSLOADPATH"
671 (string-concatenate
672 (map (match-lambda
673 (((? emacs-prefix? name) . dir)
674 (string-append (el-dir dir) ":"))
675 (_ ""))
676 inputs)))
00f4bd50 677 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
08fc0d68
FB
678 (substitute* "tests/haskell-code-conventions.el"
679 ;; Function name recently changed in "emacs-el-search".
680 (("el-search--search-pattern") "el-search-forward")
681 ;; Don't contact home.
682 (("\\(when \\(>= emacs-major-version 25\\)")
683 "(require 'el-search) (when nil"))
00f4bd50
FB
684 #t)))
685 (replace
686 'install
687 (lambda* (#:key outputs #:allow-other-keys)
688 (let* ((out (assoc-ref outputs "out"))
689 (el-dir (string-append out "/share/emacs/site-lisp"))
690 (doc (string-append
691 out "/share/doc/haskell-mode-" ,version))
692 (info (string-append out "/share/info")))
693 (define (copy-to-dir dir files)
96c46210
LC
694 (for-each (lambda (f)
695 (install-file f dir))
696 files))
00f4bd50
FB
697
698 (with-directory-excursion "doc"
699 (unless (zero? (system* "makeinfo" "haskell-mode.texi"))
700 (error "makeinfo failed"))
96c46210 701 (install-file "haskell-mode.info" info))
00f4bd50
FB
702 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
703 (copy-to-dir el-dir (find-files "." "\\.elc?"))
08fc0d68 704 ;; These are part of other packages.
00f4bd50 705 (with-directory-excursion el-dir
08fc0d68 706 (for-each delete-file '("dash.el" "ert.el")))
00f4bd50
FB
707 #t))))))
708 (home-page "https://github.com/haskell/haskell-mode")
709 (synopsis "Haskell mode for Emacs")
710 (description
711 "This is an Emacs mode for editing, debugging and developing Haskell
712programs.")
713 (license license:gpl3+)))
714
6e3fdbbe
LC
715(define-public flycheck
716 (package
717 (name "emacs-flycheck")
6ae0fd21 718 (version "31")
6e3fdbbe
LC
719 (source (origin
720 (method url-fetch)
0b928076
AK
721 (uri (string-append
722 "https://github.com/flycheck/flycheck/releases/download/"
723 version "/flycheck-" version ".tar"))
6e3fdbbe
LC
724 (sha256
725 (base32
6ae0fd21 726 "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))))
6e3fdbbe
LC
727 (build-system emacs-build-system)
728 (propagated-inputs
d0a52052 729 `(("emacs-dash" ,emacs-dash)))
6e3fdbbe
LC
730 (home-page "https://www.flycheck.org")
731 (synopsis "On-the-fly syntax checking")
732 (description
733 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
734replacement for the older Flymake extension which is part of GNU Emacs, with
735many improvements and additional features.
736
737Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
738checking for over 30 programming and markup languages with more than 70
739different tools. It highlights errors and warnings inline in the buffer, and
740provides an optional IDE-like error list.")
741 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
742
18d26210
MW
743\f
744;;;
745;;; Web browsing.
746;;;
747
748(define-public emacs-w3m
749 (package
750 (name "emacs-w3m")
2e74b9f4 751 (version "1.4.538+0.20141022")
18d26210
MW
752 (source (origin
753 (method url-fetch)
754 (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_"
755 version ".orig.tar.gz"))
756 (sha256
2e74b9f4
AK
757 (base32
758 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
18d26210 759 (build-system gnu-build-system)
6aaf3899 760 (native-inputs `(("autoconf" ,autoconf)
b8fc3622 761 ("emacs" ,emacs-minimal)))
18d26210 762 (inputs `(("w3m" ,w3m)
6aaf3899 763 ("imagemagick" ,imagemagick)))
18d26210 764 (arguments
caaf1933 765 `(#:modules ((guix build gnu-build-system)
18d26210
MW
766 (guix build utils)
767 (guix build emacs-utils))
8ff3df5b 768 #:imported-modules (,@%gnu-build-system-modules
18d26210
MW
769 (guix build emacs-utils))
770 #:configure-flags
771 (let ((out (assoc-ref %outputs "out")))
772 (list (string-append "--with-lispdir="
773 out "/share/emacs/site-lisp")
774 (string-append "--with-icondir="
2e74b9f4
AK
775 out "/share/images/emacs-w3m")
776 ;; Leave .el files uncompressed, otherwise GC can't
777 ;; identify run-time dependencies. See
778 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
779 "--without-compress-install"))
18d26210
MW
780 #:tests? #f ; no check target
781 #:phases
932ece65
AK
782 (modify-phases %standard-phases
783 (add-after 'unpack 'autoconf
784 (lambda _
785 (zero? (system* "autoconf"))))
786 (add-before 'build 'patch-exec-paths
787 (lambda* (#:key inputs outputs #:allow-other-keys)
788 (let ((out (assoc-ref outputs "out"))
789 (w3m (assoc-ref inputs "w3m"))
790 (imagemagick (assoc-ref inputs "imagemagick"))
791 (coreutils (assoc-ref inputs "coreutils")))
792 (emacs-substitute-variables "w3m.el"
793 ("w3m-command" (string-append w3m "/bin/w3m"))
794 ("w3m-touch-command"
795 (string-append coreutils "/bin/touch"))
796 ("w3m-image-viewer"
797 (string-append imagemagick "/bin/display"))
798 ("w3m-icon-directory"
799 (string-append out "/share/images/emacs-w3m")))
800 (emacs-substitute-variables "w3m-image.el"
801 ("w3m-imagick-convert-program"
802 (string-append imagemagick "/bin/convert"))
803 ("w3m-imagick-identify-program"
804 (string-append imagemagick "/bin/identify")))
805 #t)))
806 (replace 'install
807 (lambda* (#:key outputs #:allow-other-keys)
808 (and (zero? (system* "make" "install" "install-icons"))
809 (with-directory-excursion
810 (string-append (assoc-ref outputs "out")
811 "/share/emacs/site-lisp")
812 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
813 (symlink "w3m-load.el" "w3m-autoloads.el")
814 #t)))))))
18d26210
MW
815 (home-page "http://emacs-w3m.namazu.org/")
816 (synopsis "Simple Web browser for Emacs based on w3m")
817 (description
35b9e423 818 "Emacs-w3m is an emacs interface for the w3m web browser.")
f61e0e79 819 (license license:gpl2+)))
89925972
MW
820
821(define-public emacs-wget
822 (package
823 (name "emacs-wget")
824 (version "0.5.0")
825 (source (origin
826 (method url-fetch)
827 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
828 version ".orig.tar.gz"))
829 (sha256
830 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
831 (build-system gnu-build-system)
6aaf3899 832 (inputs `(("wget" ,wget)))
b8fc3622 833 (native-inputs `(("emacs" ,emacs-minimal)))
89925972 834 (arguments
caaf1933 835 `(#:modules ((guix build gnu-build-system)
89925972
MW
836 (guix build utils)
837 (guix build emacs-utils))
caaf1933 838 #:imported-modules (,@%gnu-build-system-modules
89925972
MW
839 (guix build emacs-utils))
840 #:tests? #f ; no check target
841 #:phases
dc1d3cde
KK
842 (modify-phases %standard-phases
843 (replace 'configure
844 (lambda* (#:key outputs #:allow-other-keys)
845 (substitute* "Makefile"
846 (("/usr/local") (assoc-ref outputs "out"))
847 (("/site-lisp/emacs-wget") "/site-lisp"))
848 #t))
849 (add-before 'build 'patch-exec-paths
850 (lambda* (#:key inputs outputs #:allow-other-keys)
851 (let ((wget (assoc-ref inputs "wget")))
852 (emacs-substitute-variables "wget.el"
853 ("wget-command" (string-append wget "/bin/wget"))))
854 #t))
855 (add-after 'install 'post-install
856 (lambda* (#:key outputs #:allow-other-keys)
857 (emacs-generate-autoloads
858 "wget" (string-append (assoc-ref outputs "out")
859 "/share/emacs/site-lisp/"))
860 #t)))))
89925972 861 (home-page "http://www.emacswiki.org/emacs/EmacsWget")
ae2189a9 862 (synopsis "Simple file downloader for Emacs based on wget")
89925972 863 (description
35b9e423 864 "Emacs-wget is an emacs interface for the wget file downloader.")
f61e0e79 865 (license license:gpl2+)))
77c9286d
LC
866
867\f
868;;;
869;;; Multimedia.
870;;;
871
872(define-public emms
873 (package
d06d4d7b 874 (name "emacs-emms")
6a65b701 875 (version "5.0")
77c9286d
LC
876 (source (origin
877 (method url-fetch)
878 (uri (string-append "mirror://gnu/emms/emms-"
879 version ".tar.gz"))
880 (sha256
881 (base32
6a65b701 882 "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
77c9286d
LC
883 (modules '((guix build utils)))
884 (snippet
885 '(substitute* "Makefile"
886 (("/usr/bin/install-info")
887 ;; No need to use 'install-info' since it would create a
888 ;; useless 'dir' file.
889 "true")
890 (("^INFODIR=.*")
891 ;; Install Info files to $out/share/info, not $out/info.
892 "INFODIR := $(PREFIX)/share/info\n")
893 (("/site-lisp/emms")
894 ;; Install directly in share/emacs/site-lisp, not in a
895 ;; sub-directory.
896 "/site-lisp")
897 (("^all: (.*)\n" _ rest)
898 ;; Build 'emms-print-metadata'.
899 (string-append "all: " rest " emms-print-metadata\n"))))))
900 (build-system gnu-build-system)
901 (arguments
caaf1933 902 `(#:modules ((guix build gnu-build-system)
77c9286d
LC
903 (guix build utils)
904 (guix build emacs-utils))
caaf1933 905 #:imported-modules (,@%gnu-build-system-modules
77c9286d
LC
906 (guix build emacs-utils))
907
2fe176be
EF
908 #:phases
909 (modify-phases %standard-phases
910 (replace 'configure
911 (lambda* (#:key inputs outputs #:allow-other-keys)
912 (let ((out (assoc-ref outputs "out"))
66e55700 913 (flac (assoc-ref inputs "flac"))
2fe176be
EF
914 (vorbis (assoc-ref inputs "vorbis-tools"))
915 (alsa (assoc-ref inputs "alsa-utils"))
916 (mpg321 (assoc-ref inputs "mpg321"))
917 (mp3info (assoc-ref inputs "mp3info")))
918 ;; Specify the installation directory.
919 (substitute* "Makefile"
920 (("PREFIX=.*$")
921 (string-append "PREFIX := " out "\n")))
922
923 (setenv "SHELL" (which "sh"))
924 (setenv "CC" "gcc")
925
926 ;; Specify the absolute file names of the various
927 ;; programs so that everything works out-of-the-box.
928 (with-directory-excursion "lisp"
929 (emacs-substitute-variables
930 "emms-player-mpg321-remote.el"
931 ("emms-player-mpg321-remote-command"
932 (string-append mpg321 "/bin/mpg321")))
933 (substitute* "emms-player-simple.el"
934 (("\"ogg123\"")
935 (string-append "\"" vorbis "/bin/ogg123\"")))
66e55700
MC
936 (substitute* "emms-player-simple.el"
937 (("\"mpg321\"")
938 (string-append "\"" mpg321 "/bin/mpg321\"")))
2fe176be
EF
939 (emacs-substitute-variables "emms-info-ogginfo.el"
940 ("emms-info-ogginfo-program-name"
941 (string-append vorbis "/bin/ogginfo")))
942 (emacs-substitute-variables "emms-info-libtag.el"
943 ("emms-info-libtag-program-name"
944 (string-append out "/bin/emms-print-metadata")))
945 (emacs-substitute-variables "emms-info-mp3info.el"
946 ("emms-info-mp3info-program-name"
947 (string-append mp3info "/bin/mp3info")))
66e55700
MC
948 (emacs-substitute-variables "emms-info-metaflac.el"
949 ("emms-info-metaflac-program-name"
950 (string-append flac "/bin/metaflac")))
951 (emacs-substitute-variables "emms-source-file.el"
952 ("emms-source-file-gnu-find" (which "find")))
2fe176be
EF
953 (substitute* "emms-volume-amixer.el"
954 (("\"amixer\"")
955 (string-append "\"" alsa "/bin/amixer\"")))
956 (substitute* "emms-tag-editor.el"
957 (("\"mp3info\"")
958 (string-append "\"" mp3info "/bin/mp3info\"")))))))
959 (add-before 'install 'pre-install
960 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 961 ;; The 'install' rule expects the target directories to exist.
2fe176be 962 (let* ((out (assoc-ref outputs "out"))
c3a10d30 963 (bin (string-append out "/bin"))
2fe176be 964 (man1 (string-append out "/share/man/man1")))
c3a10d30 965 (mkdir-p bin)
2fe176be
EF
966 (mkdir-p man1)
967 #t)))
968 (add-after 'install 'post-install
969 (lambda* (#:key outputs #:allow-other-keys)
c3a10d30 970 (let ((out (assoc-ref outputs "out")))
2fe176be
EF
971 (symlink "emms-auto.el"
972 (string-append out "/share/emacs/site-lisp/"
c3a10d30 973 "emms-autoloads.el"))))))
77c9286d 974 #:tests? #f))
b8fc3622 975 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
77c9286d 976 ("texinfo" ,texinfo)))
c72aed6d 977 (inputs `(("alsa-utils" ,alsa-utils)
66e55700 978 ("flac" ,flac) ;for metaflac
77c9286d
LC
979 ("vorbis-tools" ,vorbis-tools)
980 ("mpg321" ,mpg321)
981 ("taglib" ,taglib)
982 ("mp3info" ,mp3info)))
38cb4766 983 (properties '((upstream-name . "emms")))
77c9286d
LC
984 (synopsis "Emacs Multimedia System")
985 (description
986 "EMMS is the Emacs Multimedia System. It is a small front-end which
987can control one of the supported external players. Thus, it supports
988whatever formats are supported by your music player. It also
989supports tagging and playlist management, all behind a clean and
990light user interface.")
6fd52309 991 (home-page "https://www.gnu.org/software/emms/")
f61e0e79 992 (license license:gpl3+)))
c7e553a3 993
1095bd1d
RW
994(define-public emacs-emms-player-mpv
995 (package
996 (name "emacs-emms-player-mpv")
de893dda 997 (version "0.1.0")
1095bd1d
RW
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append "https://github.com/dochang/emms-player-mpv/archive/"
1002 version ".tar.gz"))
1003 (file-name (string-append name "-" version ".tar.gz"))
1004 (sha256
1005 (base32
de893dda 1006 "05qwbagc4i7yn7i94r1hdgj6wc5xijy1pxqv08pwsmli9rqj51n9"))))
1095bd1d
RW
1007 (build-system emacs-build-system)
1008 (propagated-inputs
1009 `(("emms" ,emms)))
1010 (home-page "https://github.com/dochang/emms-player-mpv/")
1011 (synopsis "Mpv support for EMMS")
1012 (description
1013 "This package provides an EMMS player that uses mpv. It supports pause
1014and seeking.")
1015 (license license:gpl3+)))
1016
2316078a
RW
1017(define-public emacs-emms-mode-line-cycle
1018 (package
1019 (name "emacs-emms-mode-line-cycle")
1020 (version "0.2.5")
1021 (source
1022 (origin
1023 (method url-fetch)
1024 (uri (string-append "https://github.com/momomo5717/emms-mode-line-cycle"
1025 "/archive/" version ".tar.gz"))
1026 (file-name (string-append name "-" version ".tar.gz"))
1027 (sha256
1028 (base32
1029 "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6"))))
1030 (build-system emacs-build-system)
1031 (propagated-inputs
1032 `(("emms" ,emms)))
1033 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1034 (synopsis "Display the EMMS mode line as a ticker")
1035 (description
1036 "This is a minor mode for updating the EMMS mode-line string cyclically
1037within a specified width. It is useful for displaying long track titles.")
1038 (license license:gpl3+)))
1039
c7e553a3
LC
1040\f
1041;;;
1042;;; Miscellaneous.
1043;;;
1044
1045(define-public bbdb
1046 (package
1047 (name "bbdb")
1048 (version "3.1.2")
1049 (source (origin
1050 (method url-fetch)
1051 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1052 version ".tar.gz"))
1053 (sha256
1054 (base32
1055 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1056 (modules '((guix build utils)))
1057 (snippet
1058 ;; We don't want to build and install the PDF.
1059 '(substitute* "doc/Makefile.in"
1060 (("^doc_DATA = .*$")
1061 "doc_DATA =\n")))))
1062 (build-system gnu-build-system)
1063 (arguments
dc1d3cde
KK
1064 '(#:phases
1065 (modify-phases %standard-phases
1066 (add-after 'install 'post-install
1067 (lambda* (#:key outputs #:allow-other-keys)
1068 ;; Add an autoloads file with the right name for guix.el.
1069 (let* ((out (assoc-ref outputs "out"))
1070 (site (string-append out "/share/emacs/site-lisp")))
1071 (with-directory-excursion site
1072 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1073 #t)))))
b8fc3622 1074 (native-inputs `(("emacs" ,emacs-minimal)))
340978d7 1075 (home-page "https://savannah.nongnu.org/projects/bbdb/")
c7e553a3
LC
1076 (synopsis "Contact management utility for Emacs")
1077 (description
1078 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1079an address book for email and snail mail addresses, phone numbers and the
1080like. It can be linked with various Emacs mail clients (Message and Mail
1081mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
f61e0e79 1082 (license license:gpl3+)))
78395334 1083
4d3d3bd2
VD
1084(define-public emacs-aggressive-indent
1085 (package
1086 (name "emacs-aggressive-indent")
1087 (version "1.8.3")
1088 (source (origin
1089 (method url-fetch)
1090 (uri (string-append "https://elpa.gnu.org/packages/"
1091 "aggressive-indent-" version ".el"))
1092 (sha256
1093 (base32
1094 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1095 (build-system emacs-build-system)
1096 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1097 (synopsis "Minor mode to aggressively keep your code always indented")
1098 (description
1099 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1100always indented. It reindents after every change, making it more reliable
1101than @code{electric-indent-mode}.")
1102 (license license:gpl2+)))
1103
cf006d2e
CB
1104(define-public emacs-ag
1105 (package
1106 (name "emacs-ag")
1107 (version "0.47")
1108 (source (origin
1109 (method url-fetch)
1110 (uri (string-append
1111 "https://github.com/Wilfred/ag.el/archive/"
1112 version ".tar.gz"))
1113 (file-name (string-append name "-" version ".tar.gz"))
1114 (sha256
1115 (base32
1116 "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
1117 (build-system emacs-build-system)
1118 (arguments
1119 `(#:phases
1120 (modify-phases %standard-phases
99517d92
GC
1121 (add-before 'install 'make-info
1122 (lambda _
1123 (with-directory-excursion "docs"
1124 (zero? (system* "make" "info")))))
1125 (add-after 'install 'install-info
1126 (lambda* (#:key outputs #:allow-other-keys)
1127 (let* ((out (assoc-ref outputs "out"))
1128 (info (string-append out "/share/info")))
1129 (install-file "docs/_build/texinfo/agel.info" info)
1130 #t))))))
99517d92
GC
1131 (native-inputs
1132 `(("python-sphinx" ,python-sphinx)
1133 ("texinfo" ,texinfo)))
cf006d2e
CB
1134 (propagated-inputs
1135 `(("dash" ,emacs-dash)
86470421
CL
1136 ("s" ,emacs-s)
1137 ;; We need to use 'ag' as the executable on remote systems.
1138 ("the-silver-searcher" ,the-silver-searcher)))
cf006d2e
CB
1139 (home-page "https://github.com/Wilfred/ag.el")
1140 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1141 (description "This package provides the ability to use the silver
1142searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1143include version control system awareness, use of Perl compatible regular
1144expressions, editing the search results directly and searching file names
1145rather than the contents of files.")
1146 (license license:gpl3+)))
1147
b654de6d
AK
1148(define-public emacs-async
1149 (package
1150 (name "emacs-async")
51ef4af6 1151 (version "1.9.2")
b654de6d
AK
1152 (source (origin
1153 (method url-fetch)
f32ffa04 1154 (uri (string-append "https://elpa.gnu.org/packages/async-"
b654de6d
AK
1155 version ".tar"))
1156 (sha256
1157 (base32
51ef4af6 1158 "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"))))
b654de6d 1159 (build-system emacs-build-system)
f32ffa04 1160 (home-page "https://elpa.gnu.org/packages/async.html")
b654de6d
AK
1161 (synopsis "Asynchronous processing in Emacs")
1162 (description
1163 "This package provides the ability to call asynchronous functions and
1164processes. For example, it can be used to run dired commands (for copying,
1165moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1166as a library for other Emacs packages.")
1167 (license license:gpl3+)))
1168
78395334
FB
1169(define-public emacs-auctex
1170 (package
1171 (name "emacs-auctex")
7f9866a3 1172 (version "12.1.0")
78395334
FB
1173 (source
1174 (origin
1175 (method url-fetch)
1176 (uri (string-append
f32ffa04 1177 "https://elpa.gnu.org/packages/auctex-"
78395334
FB
1178 version
1179 ".tar"))
1180 (sha256
1181 (base32
7f9866a3 1182 "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas"))))
78395334 1183 (build-system emacs-build-system)
a6eafbed
AK
1184 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1185 ;; ('emacs-minimal' does not provide dbus).
b1d32ec0
AI
1186 (arguments
1187 `(#:emacs ,emacs
1188 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1189 #:exclude '("^tests/" "^latex/README")))
78395334
FB
1190 (native-inputs
1191 `(("perl" ,perl)))
6fd52309 1192 (home-page "https://www.gnu.org/software/auctex/")
78395334
FB
1193 (synopsis "Integrated environment for TeX")
1194 (description
1195 "AUCTeX is a comprehensive customizable integrated environment for
1196writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1197or XEmacs.")
1198 (license license:gpl3+)))
85ef742c 1199
de2e402b
MM
1200(define-public emacs-autothemer
1201 (package
1202 (name "emacs-autothemer")
1203 (version "0.2.2")
1204 (source
1205 (origin
1206 (method url-fetch)
1207 (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
1208 version ".tar.gz"))
1209 (file-name (string-append name "-" version ".tar.gz"))
1210 (sha256
1211 (base32
1212 "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
1213 (build-system emacs-build-system)
1214 (propagated-inputs
1215 `(("emacs-dash" ,emacs-dash)))
1216 (home-page "https://github.com/sebastiansturm/autothemer")
1217 (synopsis "Conveniently create Emacs themes")
1218 (description
1219 "Autothemer provides a thin layer on top of @code{deftheme} and
1220@code{custom-theme-set-faces} that creates a new custom color theme, based on
1221a set of simplified face specifications and a user-supplied color palette")
1222 (license license:gpl3+)))
1223
474e14f7
MC
1224(define-public emacs-howm
1225 (package
1226 (name "emacs-howm")
1227 (version "1.4.4")
1228 (source
1229 (origin
1230 (method url-fetch)
1231 (uri (string-append "http://howm.sourceforge.jp/a/howm-"
1232 version ".tar.gz"))
1233 (sha256
1234 (base32
1235 "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
1236 (build-system gnu-build-system)
1237 (native-inputs
1238 `(("emacs" ,emacs-minimal)))
1239 (arguments
1240 `(#:configure-flags
1241 (list (string-append "--with-howmdir=" %output
1242 "/share/emacs/site-lisp/guix.d/howm-" ,version))
1243 #:modules ((guix build gnu-build-system)
1244 ((guix build emacs-build-system) #:prefix emacs:)
1245 (guix build utils))
1246 #:imported-modules (,@%gnu-build-system-modules
1247 (guix build emacs-build-system)
1248 (guix build emacs-utils))
1249 #:phases
1250 (modify-phases %standard-phases
1251 (add-after 'rename-lispdir 'make-autoloads
1252 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1253 (home-page "http://howm.osdn.jp/")
1254 (synopsis "Note-taking tool for Emacs")
1255 (description "Howm is a note-taking tool for Emacs. Like
1256code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1257searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1258 (license license:gpl1+)))
1259
36890436
VD
1260(define-public emacs-calfw
1261 (package
1262 (name "emacs-calfw")
1263 (version "1.5")
1264 (source
1265 (origin
1266 (method url-fetch)
1267 (uri (string-append
1268 "https://github.com/kiwanami/emacs-calfw/archive/v"
1269 version ".tar.gz"))
1270 (file-name (string-append name "-" version ".tar.gz"))
1271 (sha256
1272 (base32
1273 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
1274 (build-system emacs-build-system)
159d10ae
MC
1275 (propagated-inputs
1276 `(("emacs-howm" ,emacs-howm)))
36890436
VD
1277 (home-page "https://github.com/kiwanami/emacs-calfw/")
1278 (synopsis "Calendar framework for Emacs")
1279 (description
9dac2a8e
RW
1280 "This package displays a calendar view with various schedule data in the
1281Emacs buffer.")
36890436
VD
1282 (license license:gpl3+)))
1283
a8d0c9cb
CB
1284(define-public emacs-direnv
1285 (package
1286 (name "emacs-direnv")
1287 (version "1.2.0")
1288 (source
1289 (origin
1290 (method url-fetch)
1291 (uri (string-append
1292 "https://github.com/wbolster/emacs-direnv/archive/"
1293 version ".tar.gz"))
1294 (file-name (string-append name "-" version ".tar.gz"))
1295 (sha256
1296 (base32
1297 "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
1298 (build-system emacs-build-system)
1299 (propagated-inputs
1300 `(("dash" ,emacs-dash)
1301 ("with-editor" ,emacs-with-editor)))
1302 (home-page "https://github.com/wbolster/emacs-direnv")
1303 (synopsis "Direnv integration for Emacs")
1304 (description
1305 "This package provides support for invoking direnv to get the environment
1306for the current file and updating the environment within Emacs to match.
1307
1308Direnv can be invoked manually, and a global minor mode is included that will
1309update the environment when the active buffer changes.
1310
1311Using emacs-direnv means that programs started from Emacs will use the
1312environment set through Direnv.")
1313 (license license:gpl3+)))
1314
cd5c3979
OP
1315(define-public emacs-ggtags
1316 (package
1317 (name "emacs-ggtags")
1318 (version "0.8.12")
1319 (source
1320 (origin
1321 (method url-fetch)
1322 (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
1323 version ".el"))
1324 (sha256
1325 (base32
1326 "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
1327 (build-system emacs-build-system)
1328 (home-page "https://github.com/leoliu/ggtags")
1329 (synopsis "Frontend to the GNU Global source code tagging system")
1330 (description "@code{ggtags} provides a frontend to the GNU Global source
1331code tagging system.
1332
1333Features:
1334
1335@itemize
1336@item Build on @code{compile.el} for asynchronicity and its large feature-set.
1337@item Automatically update Global's tag files when needed with tuning for
1338large source trees.
1339@item Intuitive navigation among multiple matches with mode-line display of
1340current match, total matches and exit status.
1341@item Read tag with completion.
1342@item Show definition at point.
1343@item Jump to #include files.
1344@item Support search history and saving a search to register/bookmark.
1345@item Query replace.
1346@item Manage Global's environment variables on a per-project basis.
1347@item Highlight (definition) tag at point.
1348@item Abbreviated display of file names.
1349@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
1350@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
1351@code{pygments} backend.
1352@item Support all Global's output formats: @code{grep}, @code{ctags-x},
1353@code{cscope} etc.
1354@item Support projects on remote hosts (e.g. via @code{tramp}).
1355@item Support eldoc.
1356@item Search @code{GTAGSLIBPATH} for references and symbols.
1357@end itemize\n")
1358 (license license:gpl3+)))
1359
21a656f5
CB
1360(define-public emacs-go-mode
1361 (package
1362 (name "emacs-go-mode")
1363 (version "1.5.0")
1364 (source (origin
1365 (method url-fetch)
1366 (uri (string-append "https://github.com/dominikh/go-mode.el/"
1367 "archive/v" version ".tar.gz"))
1368 (file-name (string-append name "-" version ".tar.gz"))
1369 (sha256
1370 (base32
1371 "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
1372 (build-system emacs-build-system)
1373 (home-page "https://github.com/dominikh/go-mode.el")
1374 (synopsis "Go mode for Emacs")
1375 (description
1376 "This package provides go-mode, an Emacs mode for working with software
1377written in the Go programming language.")
1378 (license license:bsd-3)))
1379
63878730
VD
1380(define-public emacs-google-maps
1381 (package
1382 (name "emacs-google-maps")
1383 (version "1.0.0")
1384 (source (origin
1385 (method url-fetch)
1386 (uri (string-append "https://github.com/jd/google-maps.el/"
1387 "archive/" version ".tar.gz"))
1388 (file-name (string-append name "-" version ".tar.gz"))
1389 (sha256
1390 (base32
1391 "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
1392 (build-system emacs-build-system)
1393 (home-page "https://github.com/jd/google-maps.el")
1394 (synopsis "Access Google Maps from Emacs")
1395 (description "The @code{google-maps} package allows to display Google
1396Maps directly inside Emacs.")
1397 (license license:gpl3+)))
1398
1f37465a
CB
1399(define-public emacs-graphviz-dot-mode
1400 (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
1401 (revision "1"))
1402 (package
1403 (name "emacs-graphviz-dot-mode")
1404 (version (string-append "0.3.10-" revision "."
1405 (string-take commit 7)))
1406 (source (origin
1407 (method git-fetch)
1408 (uri (git-reference
1409 (url "https://github.com/ppareit/graphviz-dot-mode.git")
1410 (commit commit)))
1411 (file-name (string-append name "-" version "-checkout"))
1412 (sha256
1413 (base32
1414 "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
1415 (build-system emacs-build-system)
1416 (arguments
1417 `(#:phases
1418 (modify-phases %standard-phases
1419 (add-before 'install 'make-info
1420 (lambda* (#:key inputs #:allow-other-keys)
1421 (with-directory-excursion "texinfo"
1422 (substitute* "Makefile"
1423 (("\\/usr\\/bin\\/gzip")
1424 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
1425 (zero?
1426 (system* "make"
1427 "clean"
1428 "info"
1429 (string-append "TEXINFODIR="
1430 (assoc-ref inputs "texinfo")
1431 "/bin"))))))
1432 (add-after 'install 'install-info
1433 (lambda* (#:key outputs #:allow-other-keys)
1434 (let* ((out (assoc-ref outputs "out"))
1435 (info (string-append out "/share/info")))
1436 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
1437 #t))))))
1438 (native-inputs
1439 `(("texinfo" ,texinfo)
1440 ("gzip" ,gzip)))
1441 (home-page "http://ppareit.github.com/graphviz-dot-mode")
1442 (synopsis "Major mode for editing Graphviz Dot files")
1443 (description
1444 "This Emacs packages helps you to create @file{.dot} or @file{.gv}
1445files using the dot syntax, and use Graphviz to convert these files to
1446diagrams.")
1447 (license license:gpl2+))))
1448
85ef742c
FB
1449(define-public emacs-mmm-mode
1450 (package
1451 (name "emacs-mmm-mode")
810cd037 1452 (version "0.5.5")
85ef742c
FB
1453 (source
1454 (origin
1455 (method url-fetch)
1456 (uri (string-append
0c909c05
AK
1457 "https://github.com/purcell/mmm-mode/archive/"
1458 version ".tar.gz"))
1459 (file-name (string-append name "-" version ".tar.gz"))
85ef742c
FB
1460 (sha256
1461 (base32
810cd037 1462 "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
0c909c05
AK
1463 (build-system gnu-build-system)
1464 (arguments
1465 '(#:phases
1466 (modify-phases %standard-phases
1467 (add-after 'unpack 'autogen
1468 (lambda _
1469 (zero? (system* "sh" "autogen.sh")))))))
1470 (native-inputs
1471 `(("autoconf" ,autoconf)
1472 ("automake" ,automake)
b8fc3622 1473 ("emacs" ,emacs-minimal)
0c909c05 1474 ("texinfo" ,texinfo)))
85ef742c 1475 (home-page "https://github.com/purcell/mmm-mode")
0c909c05 1476 (synopsis "Allow multiple major modes in an Emacs buffer")
85ef742c 1477 (description
0c909c05 1478 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
85ef742c
FB
1479single buffer.")
1480 (license license:gpl3+)))
ec9825d6 1481
060348d2
AK
1482(define-public emacs-tablist
1483 (package
1484 (name "emacs-tablist")
1485 (version "0.70")
1486 (source (origin
1487 (method url-fetch)
1488 (uri (string-append
1489 "https://github.com/politza/tablist/archive/v"
1490 version ".tar.gz"))
1491 (file-name (string-append name "-" version ".tar.gz"))
1492 (sha256
1493 (base32
1494 "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
1495 (build-system emacs-build-system)
1496 (home-page "https://github.com/politza/tablist")
1497 (synopsis "Extension for @code{tabulated-list-mode}")
1498 (description "Tablist is the Emacs package that provides several
1499additional features to @code{tabulated-list-mode}: it adds marks,
1500filters, new key bindings and faces. It can be enabled by
1501@code{tablist-mode} or @code{tablist-minor-mode} commands.")
1502 (license license:gpl3+)))
1503
ec9825d6
RW
1504(define-public emacs-pdf-tools
1505 (package
1506 (name "emacs-pdf-tools")
1210046d 1507 (version "0.80")
ec9825d6
RW
1508 (source (origin
1509 (method url-fetch)
1510 (uri (string-append
1511 "https://github.com/politza/pdf-tools/archive/v"
1512 version ".tar.gz"))
1513 (file-name (string-append name "-" version ".tar.gz"))
1514 (sha256
1515 (base32
1210046d 1516 "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
ec9825d6
RW
1517 (build-system gnu-build-system)
1518 (arguments
1519 `(#:tests? #f ; there are no tests
1520 #:modules ((guix build gnu-build-system)
1bcae5c5 1521 ((guix build emacs-build-system) #:prefix emacs:)
ec9825d6
RW
1522 (guix build utils)
1523 (guix build emacs-utils))
1524 #:imported-modules (,@%gnu-build-system-modules
1bcae5c5 1525 (guix build emacs-build-system)
ec9825d6
RW
1526 (guix build emacs-utils))
1527 #:phases
1528 (modify-phases %standard-phases
1bcae5c5
AK
1529 ;; Build server side using 'gnu-build-system'.
1530 (add-after 'unpack 'enter-server-dir
1531 (lambda _ (chdir "server") #t))
d10092b8 1532 (add-after 'enter-server-dir 'autogen
1bcae5c5
AK
1533 (lambda _
1534 (zero? (system* "bash" "autogen.sh"))))
1535
1536 ;; Build emacs side using 'emacs-build-system'.
1537 (add-after 'compress-documentation 'enter-lisp-dir
1538 (lambda _ (chdir "../lisp") #t))
1539 (add-after 'enter-lisp-dir 'emacs-patch-variables
1540 (lambda* (#:key outputs #:allow-other-keys)
1541 ;; Set path to epdfinfo program.
1542 (emacs-substitute-variables "pdf-info.el"
1543 ("pdf-info-epdfinfo-program"
1544 (string-append (assoc-ref outputs "out")
1545 "/bin/epdfinfo")))
1546 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
1547 ;; upgrading" that pdf-tools tries to perform.
1548 (emacs-substitute-variables "pdf-tools.el"
1549 ("pdf-tools-handle-upgrades" '()))))
259ed58f
MC
1550 (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
1551 (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
1552 (add-after 'emacs-set-emacs-load-path 'emacs-install
1bcae5c5
AK
1553 (assoc-ref emacs:%standard-phases 'install))
1554 (add-after 'emacs-install 'emacs-build
1555 (assoc-ref emacs:%standard-phases 'build))
1556 (add-after 'emacs-install 'emacs-make-autoloads
1557 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
ec9825d6
RW
1558 (native-inputs `(("autoconf" ,autoconf)
1559 ("automake" ,automake)
1560 ("pkg-config" ,pkg-config)
b8fc3622 1561 ("emacs" ,emacs-minimal)))
ec9825d6
RW
1562 (inputs `(("poppler" ,poppler)
1563 ("cairo" ,cairo)
1564 ("glib" ,glib)
1565 ("libpng" ,libpng)
1566 ("zlib" ,zlib)))
1210046d 1567 (propagated-inputs `(("tablist" ,emacs-tablist)))
ec9825d6
RW
1568 (synopsis "Emacs support library for PDF files")
1569 (description
1570 "PDF Tools is, among other things, a replacement of DocView for PDF
1571files. The key difference is that pages are not pre-rendered by
1572e.g. ghostscript and stored in the file-system, but rather created on-demand
1573and stored in memory.")
1574 (home-page "https://github.com/politza/pdf-tools")
1575 (license license:gpl3+)))
d4dbf10e
FB
1576
1577(define-public emacs-dash
1578 (package
1579 (name "emacs-dash")
a31a79bc 1580 (version "2.13.0")
d4dbf10e
FB
1581 (source (origin
1582 (method url-fetch)
1583 (uri (string-append
1584 "https://github.com/magnars/dash.el/archive/"
1585 version ".tar.gz"))
1586 (file-name (string-append name "-" version ".tar.gz"))
1587 (sha256
1588 (base32
a31a79bc 1589 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
d4dbf10e
FB
1590 (build-system emacs-build-system)
1591 (arguments
d1d41db6
MC
1592 `(#:tests? #t
1593 #:test-command '("./run-tests.sh")))
d4dbf10e
FB
1594 (home-page "https://github.com/magnars/dash.el")
1595 (synopsis "Modern list library for Emacs")
1596 (description "This package provides a modern list API library for Emacs.")
1597 (license license:gpl3+)))
85777fe5 1598
753baf77
AK
1599(define-public emacs-bui
1600 (package
1601 (name "emacs-bui")
f6b1dd23 1602 (version "1.1.0")
753baf77
AK
1603 (source (origin
1604 (method url-fetch)
1605 (uri (string-append
1606 "https://github.com/alezost/bui.el/archive/v"
1607 version ".tar.gz"))
1608 (file-name (string-append name "-" version ".tar.gz"))
1609 (sha256
1610 (base32
f6b1dd23 1611 "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
753baf77
AK
1612 (build-system emacs-build-system)
1613 (propagated-inputs
1614 `(("dash" ,emacs-dash)))
1615 (home-page "https://github.com/alezost/bui.el")
1616 (synopsis "Buffer interface library for Emacs")
1617 (description
1618 "BUI (Buffer User Interface) is a library for making @code{list} and
1619@code{info} interfaces to display an arbitrary data of the same
1620type, for example: packages, buffers, files, etc.")
1621 (license license:gpl3+)))
1622
64e43c67
AK
1623(define-public emacs-guix
1624 (package
1625 (name "emacs-guix")
ca59ce41 1626 (version "0.4")
64e43c67
AK
1627 (source (origin
1628 (method url-fetch)
1629 (uri (string-append "https://github.com/alezost/guix.el"
1630 "/releases/download/v" version
1631 "/emacs-guix-" version ".tar.gz"))
1632 (sha256
1633 (base32
ca59ce41 1634 "1nn4b0gd895g0k4fynzrip7z8yb1r3qmvznq9v8a6q7sm84irmqq"))))
64e43c67
AK
1635 (build-system gnu-build-system)
1636 (arguments
1637 `(#:configure-flags
1638 (let ((guix (assoc-ref %build-inputs "guix"))
1639 (geiser (assoc-ref %build-inputs "geiser"))
1640 (dash (assoc-ref %build-inputs "dash"))
1641 (bui (assoc-ref %build-inputs "bui"))
1642 (magit-popup (assoc-ref %build-inputs "magit-popup"))
ca59ce41 1643 (edit-indirect (assoc-ref %build-inputs "edit-indirect"))
64e43c67
AK
1644 (site-lisp "/share/emacs/site-lisp"))
1645 (list (string-append "--with-guix-site-dir="
ed9fb46b
LC
1646 (car (find-files (string-append guix
1647 "/share/guile/site")
1648 (lambda (file stat)
1649 (string-prefix?
1650 "2."
1651 (basename file)))
1652 #:directories? #t)))
3fb8e281
AK
1653 (string-append "--with-guix-site-ccache-dir="
1654 (car (find-files (string-append guix "/lib/guile")
1655 (lambda (file stat)
1656 (string-prefix?
1657 "2." (basename file)))
1658 #:directories? #t))
1659 "/site-ccache")
64e43c67
AK
1660 (string-append "--with-geiser-lispdir=" geiser site-lisp)
1661 (string-append "--with-dash-lispdir="
1662 dash site-lisp "/guix.d/dash-"
1663 ,(package-version emacs-dash))
1664 (string-append "--with-bui-lispdir="
1665 bui site-lisp "/guix.d/bui-"
1666 ,(package-version emacs-bui))
ca59ce41
AK
1667 (string-append "--with-editindirect-lispdir="
1668 edit-indirect site-lisp "/guix.d/edit-indirect-"
1669 ,(package-version emacs-edit-indirect))
64e43c67
AK
1670 (string-append "--with-popup-lispdir="
1671 magit-popup site-lisp "/guix.d/magit-popup-"
1672 ,(package-version emacs-magit-popup))))))
1673 (native-inputs
1674 `(("pkg-config" ,pkg-config)
1675 ("emacs" ,emacs-minimal)))
1676 (inputs
b4f8edb7 1677 `(("guile" ,guile-2.2)
64e43c67
AK
1678 ("guix" ,guix)))
1679 (propagated-inputs
1680 `(("geiser" ,geiser)
1681 ("dash" ,emacs-dash)
1682 ("bui" ,emacs-bui)
ca59ce41 1683 ("edit-indirect" ,emacs-edit-indirect)
64e43c67 1684 ("magit-popup" ,emacs-magit-popup)))
78461856 1685 (home-page "https://alezost.github.io/guix.el/")
64e43c67
AK
1686 (synopsis "Emacs interface for GNU Guix")
1687 (description
b2f1f7b0
AK
1688 "Emacs-Guix provides a visual interface, tools and features for the GNU
1689Guix package manager. Particularly, it allows you to do various package
1690management tasks from Emacs. To begin with, run @code{M-x guix-about} or
1691@code{M-x guix-help} command.")
64e43c67
AK
1692 (license license:gpl3+)))
1693
d6e5de1e
RJ
1694(define-public emacs-d-mode
1695 (package
1696 (name "emacs-d-mode")
1697 (version "2.0.8")
1698 (source (origin
1699 (method url-fetch)
1700 (uri (string-append
1701 "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
1702 "archive/" version ".tar.gz"))
b87047e0 1703 (file-name (string-append name "-" version ".tar.gz"))
d6e5de1e
RJ
1704 (sha256
1705 (base32
1706 "0knpgi55jm09282aqf8pv55zillpnpzf9f4sgm6gwsmvxf17xaw0"))))
1707 (build-system emacs-build-system)
1708 (propagated-inputs
1709 `(("emacs-undercover" ,emacs-undercover)))
1710 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
1711 (synopsis "Emacs major mode for editing D code")
1712 (description "This package provides an Emacs major mode for highlighting
1713code written in the D programming language. This mode is currently known to
1714work with Emacs 24 and 25.")
1715 (license license:gpl2+)))
1716
7f7b38af
VD
1717(define-public emacs-keyfreq
1718 (package
1719 (name "emacs-keyfreq")
1720 (version "20160516.716")
1721 (source
1722 (origin
1723 (method url-fetch)
1724 (uri (string-append "http://melpa.org/packages/keyfreq-"
1725 version ".el"))
1726 (sha256
1727 (base32
1728 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
1729 (build-system emacs-build-system)
1730 (home-page "https://github.com/dacap/keyfreq")
1731 (synopsis "Track Emacs command frequencies")
1732 (description "@code{emacs-keyfeq} tracks and shows how many times you used
1733a command.")
1734 (license license:gpl3+)))
1735
6aab6c27
RJ
1736(define-public emacs-olivetti
1737 (package
1738 (name "emacs-olivetti")
1739 (version "1.5.7")
1740 (source (origin
1741 (method url-fetch)
1742 (uri (string-append
1743 "https://stable.melpa.org/packages/olivetti-"
1744 version ".el"))
1745 (sha256
1746 (base32
1747 "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj"))))
1748 (build-system emacs-build-system)
1749 (home-page "https://github.com/rnkn/olivetti")
1750 (synopsis "Emacs minor mode for a nice writing environment")
1751 (description "This package provides an Emacs minor mode that puts writing
1752in the center.")
1753 (license license:gpl3+)))
1754
1075b437
DB
1755(define-public emacs-undo-tree
1756 (package
1757 (name "emacs-undo-tree")
77a7891b 1758 (version "0.6.6")
1075b437
DB
1759 (source (origin
1760 (method git-fetch)
1761 (uri (git-reference
1762 (url "http://dr-qubit.org/git/undo-tree.git")
08e1f38d 1763 (commit (string-append "release/" version))))
1075b437
DB
1764 (file-name (string-append name "-" version "-checkout"))
1765 (sha256
77a7891b 1766 (base32
1767 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
1075b437
DB
1768 (build-system emacs-build-system)
1769 (home-page "http://www.dr-qubit.org/emacs.php")
1770 (synopsis "Treat undo history as a tree")
1771 (description "Tree-like interface to Emacs undo system, providing
1772graphical tree presentation of all previous states of buffer that
1773allows easily move between them.")
1774 (license license:gpl3+)))
1775
85777fe5
FB
1776(define-public emacs-s
1777 (package
1778 (name "emacs-s")
4e425584 1779 (version "1.12.0")
85777fe5
FB
1780 (source (origin
1781 (method url-fetch)
1782 (uri (string-append
1783 "https://github.com/magnars/s.el/archive/"
1784 version ".tar.gz"))
1785 (file-name (string-append name "-" version ".tar.gz"))
1786 (sha256
1787 (base32
4e425584 1788 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
85777fe5
FB
1789 (build-system emacs-build-system)
1790 (arguments
d1d41db6
MC
1791 `(#:tests? #t
1792 #:test-command '("./run-tests.sh")))
85777fe5 1793 (home-page "https://github.com/magnars/s.el")
a124bbd2 1794 (synopsis "Emacs string manipulation library")
85777fe5
FB
1795 (description "This package provides an Emacs library for manipulating
1796strings.")
1797 (license license:gpl3+)))
cf9ce01f 1798
070e1fe9
VD
1799(define-public emacs-symon
1800 (package
1801 (name "emacs-symon")
d71b758f 1802 (version "20160630")
070e1fe9
VD
1803 (source
1804 (origin
1805 (method url-fetch)
d71b758f
VD
1806 (uri (string-append "https://github.com/zk-phi/symon/archive/"
1807 version ".tar.gz"))
1808 (file-name (string-append name "-" version ".tar.gz"))
070e1fe9
VD
1809 (sha256
1810 (base32
d71b758f 1811 "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
070e1fe9 1812 (build-system emacs-build-system)
d71b758f 1813 (home-page "https://github.com/zk-phi/symon")
070e1fe9
VD
1814 (synopsis "Tiny graphical system monitor")
1815 (description
1816 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
1817 (license license:gpl2+)))
1818
899bcad3 1819(define-public emacs-sx
582c122e
MC
1820 (let ((version "20180212")
1821 (revision "1")
1822 (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
1823 (package
1824 (name "emacs-sx")
1825 (version (git-version version revision commit))
1826 (source
1827 (origin
1828 (method git-fetch)
1829 (uri (git-reference
1830 (url "https://github.com/vermiculus/sx.el")
1831 (commit commit)))
1832 (file-name (git-file-name name version))
1833 (sha256
1834 (base32
1835 "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
1836 (build-system emacs-build-system)
1837 (propagated-inputs
1838 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
1839 (home-page "https://github.com/vermiculus/sx.el")
1840 (synopsis "Emacs StackExchange client")
1841 (description
1842 "Emacs StackExchange client. Ask and answer questions on
899bcad3 1843Stack Overflow, Super User, and other StackExchange sites.")
582c122e 1844 (license license:gpl3+))))
899bcad3 1845
cf9ce01f
FB
1846(define-public emacs-f
1847 (package
1848 (name "emacs-f")
2b0ddaaa 1849 (version "0.19.0")
cf9ce01f
FB
1850 (source (origin
1851 (method url-fetch)
1852 (uri (string-append
1853 "https://github.com/rejeep/f.el/archive/v"
1854 version ".tar.gz"))
1855 (file-name (string-append name "-" version ".tar.gz"))
1856 (sha256
1857 (base32
2b0ddaaa 1858 "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
cf9ce01f
FB
1859 (build-system emacs-build-system)
1860 (propagated-inputs
1861 `(("emacs-s" ,emacs-s)
1862 ("emacs-dash" ,emacs-dash)))
7bf837fd 1863 (home-page "https://github.com/rejeep/f.el")
cf9ce01f
FB
1864 (synopsis "Emacs API for working with files and directories")
1865 (description "This package provides an Emacs library for working with
1866files and directories.")
1867 (license license:gpl3+)))
48dbeef7 1868
0916dc52
CB
1869(define-public emacs-git-gutter
1870 (package
1871 (name "emacs-git-gutter")
1872 (version "0.90")
1873 (source (origin
1874 (method url-fetch)
1875 (uri (string-append
1876 "https://github.com/syohex/" name "/archive/"
1877 version ".tar.gz"))
1878 (file-name (string-append name "-" version ".tar.gz"))
1879 (sha256
1880 (base32
1881 "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
1882 (build-system emacs-build-system)
1883 (home-page "https://github.com/syohex/emacs-git-gutter")
1884 (synopsis "See and manage hunks of text in a version control system")
1885 (description
1886 "This package is an Emacs minor mode for displaying and interacting with
1887hunks of text managed in a version control system. Added modified and deleted
1888areas can be indicated with symbols on the edge of the buffer, and commands
1889can be used to move between and perform actions on these hunks.
1890
1891Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
1892display and behaviour is easily customisable.")
1893 (license license:gpl3+)))
1894
0b35f11d
RW
1895(define-public emacs-git-timemachine
1896 (package
1897 (name "emacs-git-timemachine")
1898 (version "3.0")
1899 (source
1900 (origin
1901 (method url-fetch)
1902 (uri (string-append "https://github.com/pidu/git-timemachine/"
1903 "archive/" version ".tar.gz"))
1904 (file-name (string-append name "-" version ".tar.gz"))
1905 (sha256
1906 (base32
1907 "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa"))))
1908 (build-system emacs-build-system)
1909 (home-page "https://github.com/pidu/git-timemachine")
1910 (synopsis "Step through historic versions of Git-controlled files")
1911 (description "This package enables you to step through historic versions
1912of files under Git version control from within Emacs.")
1913 (license license:gpl3+)))
1914
26361de4 1915(define-public emacs-minitest
158943f2
CB
1916 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
1917 (revision "1"))
1918 (package
1919 (name "emacs-minitest")
1920 (version (git-version "0.8.0" revision commit))
1921 (source (origin
1922 (method git-fetch)
1923 (uri (git-reference
1924 (url "https://github.com/arthurnn/minitest-emacs")
1925 (commit commit)))
1926 (file-name (git-file-name name commit))
1927 (sha256
1928 (base32
1929 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
1930 (build-system emacs-build-system)
1931 (arguments
1932 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
1933 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
1934 (propagated-inputs
1935 `(("emacs-dash" ,emacs-dash)
1936 ("emacs-f" ,emacs-f)))
1937 (home-page "https://github.com/arthurnn/minitest-emacs")
1938 (synopsis "Emacs minitest mode")
1939 (description
1940 "The minitest mode provides commands to run the tests for the current
26361de4
CB
1941file or line, as well as rerunning the previous tests, or all the tests for a
1942project.
1943
1944This package also includes relevant snippets for yasnippet.")
158943f2 1945 (license license:expat))))
26361de4 1946
1c32830b
RW
1947(define-public emacs-el-mock
1948 (package
1949 (name "emacs-el-mock")
1950 (version "1.25.1")
1951 (source
1952 (origin
1953 (method url-fetch)
1954 (uri (string-append "https://github.com/rejeep/el-mock.el/"
1955 "archive/v" version ".tar.gz"))
1956 (file-name (string-append name "-" version ".tar.gz"))
1957 (sha256
1958 (base32
1959 "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
1960 (build-system emacs-build-system)
7bf837fd 1961 (home-page "https://github.com/rejeep/el-mock.el")
1c32830b
RW
1962 (synopsis "Tiny mock and stub framework in Emacs Lisp")
1963 (description
1964 "Emacs Lisp Mock is a library for mocking and stubbing using readable
1965syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
1966Expectations, but it can be used in other contexts.")
1967 (license license:gpl3+)))
1968
0c5d837c
RW
1969(define-public emacs-espuds
1970 (package
1971 (name "emacs-espuds")
1972 (version "0.3.3")
1973 (source
1974 (origin
1975 (method url-fetch)
1976 (uri (string-append "https://github.com/ecukes/espuds/"
1977 "archive/v" version ".tar.gz"))
1978 (file-name (string-append name "-" version ".tar.gz"))
1979 (sha256
1980 (base32
1981 "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
1982 (build-system emacs-build-system)
1983 (propagated-inputs
1984 `(("emacs-s" ,emacs-s)
1985 ("emacs-dash" ,emacs-dash)
1986 ("emacs-f" ,emacs-f)))
7bf837fd 1987 (home-page "https://github.com/ecukes/espuds")
0c5d837c
RW
1988 (synopsis "Common step definitions for Ecukes")
1989 (description "Espuds is a collection of the most commonly used step
1990definitions for testing with the Ecukes framework.")
1991 (license license:gpl3+)))
1992
bae8e59e
MC
1993(define-public emacs-spark
1994 (let ((version "20160503") ; no proper tag, use date of commit
1995 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
1996 (revision "1"))
1997 (package
1998 (name "emacs-spark")
1999 (version (git-version version revision commit))
2000 (source
2001 (origin
2002 (method git-fetch)
2003 (uri (git-reference
2004 (url "https://github.com/alvinfrancis/spark.git")
2005 (commit commit)))
2006 (file-name (git-file-name name version))
2007 (sha256
2008 (base32
2009 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
2010 (build-system emacs-build-system)
2011 (home-page "https://github.com/alvinfrancis/spark")
2012 (synopsis "Sparkline generation library for Emacs Lisp")
2013 (description "@code{emacs-spark} is a sparkline generation library for
2014Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
2015port of @code{cl-spark} to Emacs Lisp.")
2016 (license license:expat))))
2017
8bebe734
CB
2018(define-public emacs-es-mode
2019 (package
2020 (name "emacs-es-mode")
c4373a60 2021 (version "4.3.0")
8bebe734
CB
2022 (source (origin
2023 (method url-fetch)
2024 (uri (string-append
2025 "https://github.com/dakrone/es-mode/archive/"
2026 version ".tar.gz"))
2027 (file-name (string-append name "-" version ".tar.gz"))
2028 (sha256
2029 (base32
c4373a60 2030 "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
8bebe734
CB
2031 (build-system emacs-build-system)
2032 (propagated-inputs
2033 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
2034 ;; to be rendered incorrectly
a262ac68
MC
2035 `(("emacs-dash" ,emacs-dash)
2036 ("emacs-org" ,emacs-org)
2037 ("emacs-spark" ,emacs-spark)))
8bebe734
CB
2038 (home-page "https://github.com/dakrone/es-mode")
2039 (synopsis "Major mode for editing Elasticsearch queries")
2040 (description "@code{es-mode} includes highlighting, completion and
2041indentation support for Elasticsearch queries. Also supported are
2042@code{es-mode} blocks in @code{org-mode}, for which the results of queries can
2043be processed through @code{jq}, or in the case of aggregations, can be
2044rendered in to a table. In addition, there is an @code{es-command-center}
2045mode, which displays information about Elasticsearch clusters.")
2046 (license license:gpl3+)))
2047
d0e43782
RW
2048(define-public emacs-expand-region
2049 (package
2050 (name "emacs-expand-region")
61c71171 2051 (version "0.11.0")
d0e43782
RW
2052 (source
2053 (origin
2054 (method url-fetch)
2055 (uri (string-append "https://github.com/magnars/expand-region.el"
2056 "/archive/" version ".tar.gz"))
2057 (file-name (string-append name "-" version ".tar.gz"))
2058 (sha256
2059 (base32
61c71171 2060 "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
d0e43782
RW
2061 (build-system emacs-build-system)
2062 (home-page "https://github.com/magnars/expand-region.el")
2063 (synopsis "Increase selected region by semantic units")
2064 (description
2065 "Expand region increases the selected region by semantic units. Just
2066keep pressing the key until it selects what you want. There's also
2067@code{er/contract-region} if you expand too far.")
2068 (license license:gpl3+)))
2069
65568446
RW
2070(define-public emacs-fill-column-indicator
2071 (package
2072 (name "emacs-fill-column-indicator")
2073 (version "1.81")
2074 (source
2075 (origin
2076 (method url-fetch)
2077 (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
2078 "/archive/v" version ".tar.gz"))
2079 (file-name (string-append name "-" version ".tar.gz"))
2080 (sha256
2081 (base32
2082 "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
2083 (build-system emacs-build-system)
2084 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
2085 (synopsis "Graphically indicate the fill column")
2086 (description
2087 "Fill-column-indicator graphically indicates the location of the fill
2088column by drawing a thin line down the length of the editing window.")
2089 (license license:gpl3+)))
2090
fbc60db8
MC
2091(define-public emacs-grep-a-lot
2092 (package
2093 (name "emacs-grep-a-lot")
2094 (version "1.0.7")
2095 (source (origin
2096 (method git-fetch)
2097 (uri (git-reference
2098 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
2099 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
2100 (file-name (string-append name "-" version "-checkout"))
2101 (sha256
2102 (base32
2103 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
2104 (build-system emacs-build-system)
2105 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
2106 (synopsis "Enables multiple grep buffers in Emacs")
2107 (description
2108 "This Emacs package allows managing multiple grep buffers.")
2109 (license license:gpl3+)))
2110
f450d3c5
CB
2111(define-public emacs-inf-ruby
2112 (package
2113 (name "emacs-inf-ruby")
2114 (version "2.5.1")
2115 (source
2116 (origin
2117 (method url-fetch)
2118 (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
2119 "archive/" version ".tar.gz"))
2120 (file-name (string-append name "-" version ".tar.gz"))
2121 (sha256
2122 (base32
2123 "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
2124 (build-system emacs-build-system)
2125 (home-page "https://github.com/nonsequitur/inf-ruby")
2126 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
2127 (description
2128 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
2129for easy interaction with a ruby subprocess. Features include support for
2130detecting specific uses of Ruby, e.g. when using rails, and using a
2131appropriate console.")
2132 (license license:gpl3+)))
2133
7b9769b0
RW
2134(define-public emacs-znc
2135 (package
2136 (name "emacs-znc")
2137 (version "0.0.2")
2138 (source
2139 (origin
2140 (method url-fetch)
2141 (uri (string-append "https://marmalade-repo.org/packages/znc-"
2142 version ".el"))
2143 (sha256
2144 (base32
2145 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
2146 (build-system emacs-build-system)
2147 (home-page "https://github.com/sshirokov/ZNC.el")
2148 (synopsis "Make ERC and ZNC get along better")
2149 (description
2150 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
2151IRC bouncer with ERC.")
2152 (license license:expat)))
2153
1f9a7097
RW
2154(define-public emacs-shut-up
2155 (package
2156 (name "emacs-shut-up")
2157 (version "0.3.2")
2158 (source
2159 (origin
2160 (method url-fetch)
2161 (uri (string-append "https://github.com/cask/shut-up/"
2162 "archive/v" version ".tar.gz"))
2163 (file-name (string-append name "-" version ".tar.gz"))
2164 (sha256
2165 (base32
2166 "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
2167 (build-system emacs-build-system)
2168 (home-page "https://github.com/cask/shut-up")
2169 (synopsis "Silence Emacs")
2170 (description "This package silences most output of Emacs when running an
2171Emacs shell script.")
2172 (license license:expat)))
2173
dbe38a3a
RW
2174(define-public emacs-undercover
2175 (package
2176 (name "emacs-undercover")
2177 (version "0.6.0")
2178 (source
2179 (origin
2180 (method url-fetch)
2181 (uri (string-append "https://github.com/sviridov/undercover.el/"
2182 "archive/v" version ".tar.gz"))
2183 (file-name (string-append name "-" version ".tar.gz"))
2184 (sha256
2185 (base32
2186 "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
2187 (build-system emacs-build-system)
2188 (propagated-inputs
2189 `(("emacs-dash" ,emacs-dash)
2190 ("emacs-shut-up" ,emacs-shut-up)))
2191 (home-page "https://github.com/sviridov/undercover.el")
2192 (synopsis "Test coverage library for Emacs Lisp")
2193 (description
2194 "Undercover is a test coverage library for software written in Emacs
2195Lisp.")
2196 (license license:expat)))
2197
07046e5f
RW
2198(define-public emacs-paren-face
2199 (package
2200 (name "emacs-paren-face")
2201 (version "1.0.0")
2202 (source
2203 (origin
2204 (method url-fetch)
2205 (uri (string-append "https://github.com/tarsius/paren-face/archive/"
2206 version ".tar.gz"))
2207 (file-name (string-append name "-" version ".tar.gz"))
2208 (sha256
2209 (base32
2210 "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
2211 (build-system emacs-build-system)
7bf837fd 2212 (home-page "https://github.com/tarsius/paren-face")
07046e5f
RW
2213 (synopsis "Face for parentheses in lisp modes")
2214 (description
2215 "This library defines a face named @code{parenthesis} used just for
2216parentheses. The intended purpose of this face is to make parentheses less
2217visible in Lisp code by dimming them. Lispers probably don't need to be
2218constantly made aware of the existence of the parentheses. Dimming them might
2219be even more useful for people new to lisp who have not yet learned to
2220subconsciously blend out the parentheses.")
2221 (license license:gpl3+)))
2222
a46e3c0d
RW
2223(define-public emacs-page-break-lines
2224 (package
2225 (name "emacs-page-break-lines")
2226 (version "0.11")
2227 (source
2228 (origin
2229 (method url-fetch)
2230 (uri (string-append "https://github.com/purcell/page-break-lines/"
2231 "archive/" version ".tar.gz"))
2232 (file-name (string-append name "-" version ".tar.gz"))
2233 (sha256
2234 (base32
2235 "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
2236 (build-system emacs-build-system)
2237 (home-page "https://github.com/purcell/page-break-lines")
2238 (synopsis "Display page breaks as tidy horizontal lines")
2239 (description
2240 "This library provides a global mode which displays form feed characters
2241as horizontal rules.")
2242 (license license:gpl3+)))
2243
1f8a951b
RW
2244(define-public emacs-simple-httpd
2245 (package
2246 (name "emacs-simple-httpd")
2247 (version "1.4.6")
2248 (source
2249 (origin
2250 (method url-fetch)
2251 (uri (string-append "https://github.com/skeeto/emacs-web-server/"
2252 "archive/" version ".tar.gz"))
2253 (file-name (string-append name "-" version ".tar.gz"))
2254 (sha256
2255 (base32
2256 "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
2257 (build-system emacs-build-system)
2258 (home-page "https://github.com/skeeto/emacs-http-server")
2259 (synopsis "HTTP server in pure Emacs Lisp")
2260 (description
2261 "This package provides a simple HTTP server written in Emacs Lisp to
2262serve files and directory listings.")
2263 (license license:unlicense)))
2264
6c04acaa
RW
2265(define-public emacs-skewer-mode
2266 (package
2267 (name "emacs-skewer-mode")
2268 (version "1.6.2")
2269 (source
2270 (origin
2271 (method url-fetch)
2272 (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
2273 version ".tar.gz"))
2274 (file-name (string-append name "-" version ".tar.gz"))
2275 (sha256
2276 (base32
2277 "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
2278 (build-system emacs-build-system)
2279 (propagated-inputs
2280 `(("emacs-simple-httpd" ,emacs-simple-httpd)
2281 ("emacs-js2-mode" ,emacs-js2-mode)))
46f5ae0b 2282 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
6c04acaa
RW
2283 (home-page "https://github.com/skeeto/skewer-mode")
2284 (synopsis "Live web development in Emacs")
2285 (description
2286 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
2287a web browser. Expressions are sent on-the-fly from an editing buffer to be
2288evaluated in the browser, just like Emacs does with an inferior Lisp process
2289in Lisp modes.")
2290 (license license:unlicense)))
2291
cdba3a84
MC
2292(define-public emacs-string-inflection
2293 (package
2294 (name "emacs-string-inflection")
2295 (version "1.0.6")
2296 (source (origin
2297 (method git-fetch)
2298 (uri (git-reference
2299 (url "https://github.com/akicho8/string-inflection")
2300 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
2301 (file-name (string-append name "-" version "-checkout"))
2302 (sha256
2303 (base32
2304 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
2305 (build-system emacs-build-system)
2306 (native-inputs
2307 `(("ert-runner" ,ert-runner)))
2308 (arguments
d1d41db6
MC
2309 `(#:tests? #t
2310 #:test-command '("ert-runner")))
cdba3a84
MC
2311 (home-page "https://github.com/akicho8/string-inflection")
2312 (synopsis "Convert symbol names between different naming conventions")
2313 (description
2314 "This Emacs package provides convenient methods for manipulating the
2315naming style of a symbol. It supports different naming conventions such as:
2316
2317@enumerate
2318@item camel case
2319@item Pascal case
2320@item all upper case
2321@item lower case separated by underscore
2322@item etc...
2323@end enumerate\n")
2324 (license license:gpl2+)))
2325
ce9701fb
RW
2326(define-public emacs-stripe-buffer
2327 (package
2328 (name "emacs-stripe-buffer")
2329 (version "0.2.5")
2330 (source
2331 (origin
2332 (method url-fetch)
2333 (uri (string-append "https://github.com/sabof/stripe-buffer/"
2334 "archive/" version ".tar.gz"))
2335 (file-name (string-append name "-" version ".tar.gz"))
2336 (sha256
2337 (base32
2338 "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
2339 (build-system emacs-build-system)
2340 (home-page "https://github.com/sabof/stripe-buffer/")
2341 (synopsis "Add stripes to list buffers")
2342 (description
2343 "This Emacs package adds faces to add stripes to list buffers and org
2344tables.")
2345 (license license:gpl2+)))
2346
8d810163
RW
2347(define-public emacs-rich-minority
2348 (package
2349 (name "emacs-rich-minority")
2350 (version "1.0.1")
2351 (source
2352 (origin
2353 (method url-fetch)
2354 (uri (string-append "https://github.com/Malabarba/rich-minority/"
2355 "archive/" version ".tar.gz"))
2356 (file-name (string-append name "-" version ".tar.gz"))
2357 (sha256
2358 (base32
2359 "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
2360 (build-system emacs-build-system)
2361 (home-page "https://github.com/Malabarba/rich-minority")
2362 (synopsis "Clean-up and beautify the list of minor modes")
2363 (description
2364 "This Emacs package hides and/or highlights minor modes in the
2365mode-line.")
2366 (license license:gpl2+)))
2367
8733fc91
CB
2368(define-public emacs-robe
2369 (package
2370 (name "emacs-robe")
2371 (version "0.8.1")
2372 (source
2373 (origin
2374 (method url-fetch)
2375 (uri (string-append "https://github.com/dgutov/robe/"
2376 "archive/" version ".tar.gz"))
2377 (file-name (string-append name "-" version ".tar.gz"))
2378 (sha256
2379 (base32
2380 "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
2381 (build-system emacs-build-system)
376015c3
CB
2382 (arguments
2383 '(#:include (cons "^lib\\/" %default-include)))
8733fc91
CB
2384 (propagated-inputs
2385 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
2386 (home-page "https://github.com/dgutov/robe")
2387 (synopsis "Ruby code assistance tool for Emacs")
2388 (description
2389 "Robe can provide information on loaded classes and modules in Ruby code,
2390as well as where methods are defined. This allows the user to jump to method
2391definitions, modules and classes, display method documentation and provide
2392method and constant name completion.")
2393 (license license:gpl3+)))
2394
81808194
CB
2395(define-public emacs-rspec
2396 (package
2397 (name "emacs-rspec")
2398 (version "1.11")
2399 (source
2400 (origin
2401 (method url-fetch)
2402 (uri (string-append "https://github.com/pezra/rspec-mode/"
2403 "archive/v" version ".tar.gz"))
2404 (file-name (string-append name "-" version ".tar.gz"))
2405 (sha256
2406 (base32
2407 "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
2408 (build-system emacs-build-system)
2409 (home-page "https://github.com/pezra/rspec-mode")
2410 (synopsis "Provides a rspec mode for working with RSpec")
2411 (description
2412 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
2413verify the spec associated with the current buffer, or entire project, as well
2414as moving between the spec files, and coresponding code files.
2415
2416Also included are keybindings for spec files and Dired buffers, as well as
2417snippets for yasnippet.")
2418 (license license:gpl3+)))
2419
b33f913d
RW
2420(define-public emacs-smart-mode-line
2421 (package
2422 (name "emacs-smart-mode-line")
2423 (version "2.10.1")
2424 (source
2425 (origin
2426 (method url-fetch)
2427 (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
2428 "archive/" version ".tar.gz"))
2429 (file-name (string-append name "-" version ".tar.gz"))
2430 (sha256
2431 (base32
2432 "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
2433 (build-system emacs-build-system)
2434 (propagated-inputs
2435 `(("emacs-rich-minority" ,emacs-rich-minority)))
7bf837fd 2436 (home-page "https://github.com/Malabarba/smart-mode-line")
66e07664 2437 (synopsis "Color-coded smart mode-line")
b33f913d
RW
2438 (description
2439 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
2440read from small to large monitors by using colors, a prefix feature, and smart
2441truncation.")
2442 (license license:gpl2+)))
2443
69b498a1 2444(define-public emacs-sr-speedbar
33ca12f3
MC
2445 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
2446 (revision "0"))
2447 (package
2448 (name "emacs-sr-speedbar")
2449 (version (git-version "20161025" revision commit))
2450 (source
2451 (origin
2452 (method git-fetch)
2453 (uri (git-reference
2454 (url "https://github.com/emacsorphanage/sr-speedbar.git")
2455 (commit commit)))
2456 (file-name (git-file-name name version))
2457 (sha256
2458 (base32
2459 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
2460 (build-system emacs-build-system)
2461 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
2462 (synopsis "Same frame Emacs @code{speedbar}")
2463 (description
2464 "This Emacs package allows you to show @code{M-x speedbar} in the
69b498a1
OP
2465same frame (in an extra window). You can customize the initial width of
2466the speedbar window.")
33ca12f3 2467 (license license:gpl3+))))
69b498a1 2468
3bcb304e
RW
2469(define-public emacs-shell-switcher
2470 (package
2471 (name "emacs-shell-switcher")
2472 (version "1.0.1")
2473 (source
2474 (origin
2475 (method url-fetch)
2476 (uri (string-append "https://github.com/DamienCassou/shell-switcher"
2477 "/archive/v" version ".tar.gz"))
2478 (file-name (string-append name "-" version ".tar.gz"))
2479 (sha256
2480 (base32
2481 "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
2482 (build-system emacs-build-system)
2483 (home-page "https://github.com/DamienCassou/shell-switcher")
2484 (synopsis "Provide fast switching between shell buffers")
2485 (description
2486 "This package provides commands to quickly switch between shell buffers.")
2487 (license license:gpl3+)))
2488
48dbeef7
FB
2489(define-public emacs-ob-ipython
2490 (package
2491 (name "emacs-ob-ipython")
2492 (version "20150704.8807064693")
2493 (source (origin
2494 (method git-fetch)
2495 (uri (git-reference
698bd297 2496 (commit "880706469338ab59b5bb7dbe8460016f89755364")
48dbeef7 2497 (url "https://github.com/gregsexton/ob-ipython.git")))
eb6b471b 2498 (file-name (string-append name "-" version "-checkout"))
48dbeef7
FB
2499 (sha256
2500 (base32
2501 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
2502 (build-system emacs-build-system)
2503 (propagated-inputs
2504 `(("emacs-f" ,emacs-f)))
2505 (home-page "http://www.gregsexton.org")
2506 (synopsis "Org-Babel functions for IPython evaluation")
2507 (description "This package adds support to Org-Babel for evaluating Python
2508source code using IPython.")
2509 (license license:gpl3+)))
6fd66b6c
LC
2510
2511(define-public emacs-debbugs
2512 (package
2513 (name "emacs-debbugs")
8180a406 2514 (version "0.15")
6fd66b6c
LC
2515 (source (origin
2516 (method url-fetch)
f32ffa04 2517 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6fd66b6c
LC
2518 version ".tar"))
2519 (sha256
2520 (base32
8180a406 2521 "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw"))))
6fd66b6c 2522 (build-system emacs-build-system)
91762db6 2523 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
32e16112
AK
2524 (propagated-inputs
2525 `(("emacs-async" ,emacs-async)))
f32ffa04 2526 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6fd66b6c
LC
2527 (synopsis "Access the Debbugs bug tracker in Emacs")
2528 (description
2529 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
2530Tracker} from within Emacs.
2531
2532For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
2533and the command @code{M-x debbugs-gnu-search} for bug searching. If you
2534prefer the listing of bugs as TODO items of @code{org-mode}, you could use
2535@code{M-x debbugs-org} and related commands.
2536
2537A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
2538Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
2539 (license license:gpl3+)))
3ffe36f5 2540
1fcd7e6c
MC
2541(define-public emacs-ert-expectations
2542 (package
2543 (name "emacs-ert-expectations")
2544 (version "0.2")
2545 (source
2546 (origin
2547 (method url-fetch)
2548 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
2549 (sha256
2550 (base32
2551 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
2552 (build-system emacs-build-system)
2553 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
2554 (synopsis "Simple unit test framework for Emacs Lisp")
2555 (description "@code{emacs-ert-expectations} is a simple unit test
2556framework for Emacs Lisp to be used with @code{ert}.")
2557 (license license:gpl3+)))
2558
3ffe36f5
LC
2559(define-public emacs-deferred
2560 (package
2561 (name "emacs-deferred")
4dd0f8c0 2562 (version "0.5.1")
3ffe36f5
LC
2563 (home-page "https://github.com/kiwanami/emacs-deferred")
2564 (source (origin
2565 (method git-fetch)
2566 (uri (git-reference
2567 (url home-page)
2568 (commit (string-append "v" version))))
2569 (sha256
2570 (base32
4dd0f8c0 2571 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
3ffe36f5
LC
2572 (file-name (string-append name "-" version))))
2573 (build-system emacs-build-system)
652741cf
MC
2574 (arguments
2575 `(#:phases
2576 (modify-phases %standard-phases
90ec79fb
AI
2577 (add-after 'unpack 'set-shell
2578 ;; Setting the SHELL environment variable is required for the tests
2579 ;; to find sh.
2580 (lambda _
2581 (setenv "SHELL" (which "sh"))
2582 #t))
652741cf
MC
2583 (add-before 'check 'fix-makefile
2584 (lambda _
2585 (substitute* "Makefile"
2586 (("\\$\\(CASK\\) exec ") ""))
2587 #t)))
2588 #:tests? #t
90ec79fb 2589 #:test-command '("make" "test")))
652741cf
MC
2590 (native-inputs
2591 `(("emacs-ert-expectations" ,emacs-ert-expectations)
2592 ("emacs-undercover" ,emacs-undercover)
2593 ("ert-runner" ,ert-runner)))
3ffe36f5
LC
2594 (synopsis "Simple asynchronous functions for Emacs Lisp")
2595 (description
2596 "The @code{deferred.el} library provides support for asynchronous tasks.
2597The API is almost the same as that of
2598@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
2599for asynchronous tasks.")
2600 (license license:gpl3+)))
d001bb5a
LC
2601
2602(define-public butler
2603 (package
2604 (name "emacs-butler")
2605 (version "0.2.4")
2606 (home-page "https://github.com/AshtonKem/Butler")
2607 (source (origin
2608 (method git-fetch)
2609 (uri (git-reference
2610 (url home-page)
2611 (commit version)))
2612 (sha256
2613 (base32
2614 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
2615 (file-name (string-append name "-" version))))
2616 (build-system emacs-build-system)
2617 (propagated-inputs
2618 `(("emacs-deferred" ,emacs-deferred)))
2619 (synopsis "Emacs client for Jenkins")
2620 (description
2621 "Butler provides an interface to connect to Jenkins continuous
2622integration servers. Users can specify a list of server in the
2623@code{butler-server-list} variable and then use @code{M-x butler-status} to
2624view the build status of those servers' build jobs, and possibly to trigger
2625build jobs.")
2626 (license license:gpl3+)))
2d1db448 2627
d1dbeddd
RW
2628(define-public emacs-company
2629 (package
2630 (name "emacs-company")
1262a2ab 2631 (version "0.9.3")
d1dbeddd
RW
2632 (source
2633 (origin
2634 (method url-fetch)
2635 (uri (string-append "https://github.com/company-mode/company-mode/archive/"
2636 version ".tar.gz"))
2637 (file-name (string-append name "-" version ".tar.gz"))
2638 (sha256
2639 (base32
1262a2ab 2640 "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh"))))
d1dbeddd 2641 (build-system emacs-build-system)
4e644ab8
AI
2642 (arguments
2643 `(#:phases
2644 (modify-phases %standard-phases
d1d41db6 2645 (add-before 'check 'fix-bin-dir
4e644ab8
AI
2646 (lambda _
2647 ;; The company-files-candidates-normal-root test looks
2648 ;; for the /bin directory, but the build environment has
2649 ;; no /bin directory. Modify the test to look for the
2650 ;; /tmp directory.
2651 (substitute* "test/files-tests.el"
2652 (("/bin/") "/tmp/"))
d1d41db6
MC
2653 #t)))
2654 #:tests? #t
2655 #:test-command '("make" "test-batch")))
d1dbeddd
RW
2656 (home-page "http://company-mode.github.io/")
2657 (synopsis "Modular text completion framework")
2658 (description
2659 "Company is a modular completion mechanism. Modules for retrieving
2660completion candidates are called back-ends, modules for displaying them are
2661front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
2662These are distributed in separate files and can be used individually.")
2663 (license license:gpl3+)))
2664
016590a9
OP
2665(define-public emacs-company-quickhelp
2666 (package
2667 (name "emacs-company-quickhelp")
2668 (version "2.3.0")
2669 (source
2670 (origin
2671 (method url-fetch)
2672 (uri (string-append
2673 "https://github.com/expez/company-quickhelp/archive/"
2674 version ".tar.gz"))
2675 (file-name (string-append name "-" version ".tar.gz"))
2676 (sha256
2677 (base32
2678 "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
2679 (build-system emacs-build-system)
2680 (propagated-inputs
2681 `(("emacs-pos-tip" ,emacs-pos-tip)
2682 ("emacs-company" ,emacs-company)))
2683 (home-page "https://github.com/expez/company-quickhelp")
2684 (synopsis "Popup documentation for completion candidates")
2685 (description "@code{company-quickhelp} shows documentation for the
2686completion candidate when using the Company text completion framework.")
2687 (license license:gpl3+)))
2688
7c438099
RW
2689(define-public emacs-multiple-cursors
2690 (package
2691 (name "emacs-multiple-cursors")
2692 (version "1.4.0")
2693 (source
2694 (origin
2695 (method url-fetch)
2696 (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
2697 "archive/" version ".tar.gz"))
2698 (file-name (string-append name "-" version ".tar.gz"))
2699 (sha256
2700 (base32
2701 "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
2702 (build-system emacs-build-system)
2703 (home-page "https://github.com/magnars/multiple-cursors.el")
2704 (synopsis "Multiple cursors for Emacs")
2705 (description
2706 "This package adds support to Emacs for editing text with multiple
2707simultaneous cursors.")
2708 (license license:gpl3+)))
2709
2d1db448
LC
2710(define-public typo
2711 (package
2712 (name "emacs-typo")
2713 (version "1.1")
2714 (home-page "https://github.com/jorgenschaefer/typoel")
2715 (source (origin
2716 (method git-fetch)
2717 (uri (git-reference
2718 (url home-page)
2719 (commit (string-append "v" version))))
2720 (sha256
2721 (base32
2722 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
2723 (file-name (string-append name "-" version))))
2724 (build-system emacs-build-system)
2725 (synopsis "Minor mode for typographic editing")
2726 (description
2727 "This package provides two Emacs modes, @code{typo-mode} and
2728@code{typo-global-mode}. These modes automatically insert Unicode characters
2729for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
2730automatically inserts a Unicode opening or closing quotation mark, depending
2731on context.")
2732 (license license:gpl3+)))
e037a09f
FB
2733
2734(define-public emacs-scheme-complete
2735 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
2736 (package
2737 (name "emacs-scheme-complete")
2738 (version (string-append "20151223." (string-take commit 8)))
2739 (source
2740 (origin
2741 (file-name (string-append name "-" version))
2742 (method git-fetch)
2743 (uri (git-reference
2744 (url "https://github.com/ashinn/scheme-complete.git")
2745 (commit commit)))
2746 (sha256
2747 (base32
2748 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
2749 (patches
fc1adab1 2750 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
e037a09f
FB
2751 (build-system emacs-build-system)
2752 (home-page "https://github.com/ashinn/scheme-complete")
2753 (synopsis "Smart tab completion for Scheme in Emacs")
2754 (description
2755 "This file provides a single function, @code{scheme-smart-complete},
2756which you can use for intelligent, context-sensitive completion for any Scheme
2757implementation in Emacs. To use it just load this file and bind that function
2758to a key in your preferred mode.")
2759 (license license:public-domain))))
58a7dc13 2760
75408149
MC
2761(define-public emacs-scel
2762 (let ((version "20170629")
2763 (revision "1")
2764 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
2765 (package
2766 (name "emacs-scel")
2767 (version (git-version version revision commit))
2768 (source
2769 (origin
2770 (method git-fetch)
2771 (uri (git-reference
2772 (url "https://github.com/supercollider/scel.git")
2773 (commit commit)))
2774 (file-name (string-append name "-" version "-checkout"))
2775 (sha256
2776 (base32
2777 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
2778 (build-system emacs-build-system)
2779 (arguments
2780 `(#:modules ((guix build emacs-build-system)
2781 ((guix build cmake-build-system) #:prefix cmake:)
2782 (guix build utils))
2783 #:imported-modules (,@%emacs-build-system-modules
2784 (guix build cmake-build-system))
2785 #:phases
2786 (modify-phases %standard-phases
2787 (add-after 'unpack 'configure
2788 (lambda* (#:key outputs #:allow-other-keys)
2789 (substitute* "el/CMakeLists.txt"
2790 (("share/emacs/site-lisp/SuperCollider")
2791 (string-append
2792 "share/emacs/site-lisp/guix.d/scel-" ,version)))
2793 ((assoc-ref cmake:%standard-phases 'configure)
2794 #:outputs outputs
2795 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
2796 (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
2797 (lambda _
2798 (setenv "EMACSLOADPATH"
2799 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
2800 #t))
2801 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
2802 (inputs
2803 `(("supercollider" ,supercollider)))
2804 (native-inputs
2805 `(("cmake" ,cmake)))
2806 (home-page "https://github.com/supercollider/scel")
2807 (synopsis "SuperCollider Emacs interface")
2808 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
2809SuperCollider is a platform for audio synthesis and algorithmic composition.")
2810 (license license:gpl2+))))
2811
58a7dc13
FB
2812(define-public emacs-mit-scheme-doc
2813 (package
2814 (name "emacs-mit-scheme-doc")
2815 (version "20140203")
2816 (source
2817 (origin
2818 (modules '((guix build utils)))
2819 (snippet
2820 ;; keep only file of interest
2821 '(begin
2822 (for-each delete-file '("dot-emacs.el" "Makefile"))
f3860753 2823 (install-file "6.945-config/mit-scheme-doc.el" ".")
58a7dc13
FB
2824 (delete-file-recursively "6.945-config")))
2825 (file-name (string-append name "-" version ".tar.bz2"))
2826 (method url-fetch)
2827 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
2828 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
2829 (sha256
2830 (base32
2831 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
2832 (build-system emacs-build-system)
2833 (inputs `(("mit-scheme" ,mit-scheme)))
2834 (arguments
2835 `(#:phases
2836 (modify-phases %standard-phases
2837 (add-after 'unpack 'configure-doc
2838 (lambda* (#:key inputs #:allow-other-keys)
2839 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
2840 (doc-dir (string-append mit-scheme-dir "/share/doc/"
2841 "mit-scheme-"
2842 ,(package-version mit-scheme))))
2843 (substitute* "mit-scheme-doc.el"
2844 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
2845 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
2846 (home-page "http://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
2847 (synopsis "MIT-Scheme documentation lookup for Emacs")
2848 (description
2849 "This package provides a set of Emacs functions to search definitions of
2850identifiers in the MIT-Scheme documentation.")
2851 (license license:gpl2+)))
e5045f30 2852
e5045f30
FB
2853(define-public emacs-constants
2854 (package
2855 (name "emacs-constants")
f99f3f24 2856 (version "2.6")
a9e41d2f 2857 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
e5045f30
FB
2858 (source
2859 (origin
37dbfc50 2860 (file-name (string-append name "-" version ".tar.gz"))
f99f3f24
FB
2861 (method url-fetch)
2862 (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
2863 "/archive/v" version ".tar.gz"))
e5045f30
FB
2864 (sha256
2865 (base32
f99f3f24 2866 "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
e5045f30 2867 (build-system emacs-build-system)
e5045f30
FB
2868 (synopsis "Enter definition of constants into an Emacs buffer")
2869 (description
2870 "This package provides functions for inserting the definition of natural
2871constants and units into an Emacs buffer.")
2872 (license license:gpl2+)))
85960693 2873
e203221f
RW
2874(define-public emacs-tagedit
2875 (package
2876 (name "emacs-tagedit")
2877 (version "1.4.0")
2878 (source
2879 (origin
2880 (method url-fetch)
2881 (uri (string-append "https://github.com/magnars/tagedit/"
2882 "archive/" version ".tar.gz"))
2883 (file-name (string-append name "-" version ".tar.gz"))
2884 (sha256
2885 (base32
2886 "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
2887 (build-system emacs-build-system)
2888 (propagated-inputs
2889 `(("emacs-s" ,emacs-s)
2890 ("emacs-dash" ,emacs-dash)))
2891 (home-page "https://github.com/magnars/tagedit")
2892 (synopsis "Some paredit-like features for html-mode")
2893 (description
2894 "This package provides a collection of paredit-like functions for editing
2895in @code{html-mode}.")
2896 (license license:gpl3+)))
2897
85960693
FB
2898(define-public emacs-slime
2899 (package
2900 (name "emacs-slime")
d2f93e61 2901 (version "2.20")
85960693
FB
2902 (source
2903 (origin
2904 (file-name (string-append name "-" version ".tar.gz"))
2905 (method url-fetch)
2906 (uri (string-append
2907 "https://github.com/slime/slime/archive/v"
2908 version ".tar.gz"))
2909 (sha256
2910 (base32
d2f93e61 2911 "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
85960693
FB
2912 (build-system emacs-build-system)
2913 (native-inputs
2914 `(("texinfo" ,texinfo)))
2915 (arguments
e8cefe11
AI
2916 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
2917 #:exclude '("^slime-tests.el" "^contrib/test/"
2918 "^contrib/Makefile$" "^contrib/README.md$")
2919 #:phases
85960693
FB
2920 (modify-phases %standard-phases
2921 (add-before 'install 'configure
2922 (lambda* _
2923 (emacs-substitute-variables "slime.el"
2924 ("inferior-lisp-program" "sbcl"))
2925 #t))
2926 (add-before 'install 'install-doc
2927 (lambda* (#:key outputs #:allow-other-keys)
2928 (let* ((out (assoc-ref outputs "out"))
2929 (info-dir (string-append out "/share/info"))
2930 (doc-dir (string-append out "/share/doc/"
2931 ,name "-" ,version))
2932 (doc-files '("doc/slime-refcard.pdf"
2933 "README.md" "NEWS" "PROBLEMS"
2934 "CONTRIBUTING.md")))
2935 (with-directory-excursion "doc"
2936 (substitute* "Makefile"
2937 (("infodir=/usr/local/info")
2938 (string-append "infodir=" info-dir)))
2939 (system* "make" "html/index.html")
2940 (system* "make" "slime.info")
2941 (install-file "slime.info" info-dir)
2942 (copy-recursively "html" (string-append doc-dir "/html")))
2943 (for-each (lambda (f)
2944 (install-file f doc-dir)
2945 (delete-file f))
2946 doc-files)
2947 (delete-file-recursively "doc")
2948 #t))))))
2949 (home-page "https://github.com/slime/slime")
2950 (synopsis "Superior Lisp Interaction Mode for Emacs")
2951 (description
2952 "SLIME extends Emacs with support for interactive programming in
db574f71 2953Common Lisp. The features are centered around @command{slime-mode},
2954an Emacs minor mode that complements the standard @command{lisp-mode}.
2955While lisp-mode supports editing Lisp source files, @command{slime-mode}
2956adds support for interacting with a running Common Lisp process
2957for compilation, debugging, documentation lookup, and so on.")
85960693 2958 (license license:gpl2+)))
e11d14fe 2959
2960(define-public emacs-popup
2961 (package
2962 (name "emacs-popup")
2963 (version "0.5.3")
2964 (source (origin
2965 (method url-fetch)
2966 (uri (string-append
2967 "https://github.com/auto-complete/popup-el/archive/v"
2968 version ".tar.gz"))
2969 (file-name (string-append name "-" version ".tar.gz"))
2970 (sha256
2971 (base32
2972 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
2973 (build-system emacs-build-system)
e11d14fe 2974 (home-page "https://github.com/auto-complete/popup-el")
2975 (synopsis "Visual Popup User Interface for Emacs")
2976 (description
2977 "Popup.el is a visual popup user interface library for Emacs.
2978This provides a basic API and common UI widgets such as popup tooltips
2979and popup menus.")
2980 (license license:gpl3+)))
48766ea8
RW
2981
2982(define-public emacs-god-mode
2983 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
2984 (revision "1"))
2985 (package
2986 (name "emacs-god-mode")
2987 (version (string-append "20151005.925."
2988 revision "-" (string-take commit 9)))
2989 (source
2990 (origin
2991 (method git-fetch)
2992 (uri (git-reference
2993 (url "https://github.com/chrisdone/god-mode.git")
2994 (commit commit)))
2995 (file-name (string-append name "-" version "-checkout"))
2996 (sha256
2997 (base32
2998 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
2999 (build-system emacs-build-system)
3000 (home-page "https://github.com/chrisdone/god-mode")
3001 (synopsis "Minor mode for entering commands without modifier keys")
3002 (description
3003 "This package provides a global minor mode for entering Emacs commands
3004without modifier keys. It's similar to Vim's separation of commands and
3005insertion mode. When enabled all keys are implicitly prefixed with
3006@samp{C-} (among other helpful shortcuts).")
3007 (license license:gpl3+))))
4670f70a 3008
8fc559dc 3009(define-public emacs-jinja2-mode
3010 (package
3011 (name "emacs-jinja2-mode")
3012 (version "0.2")
3013 (source
3014 (origin
3015 (method url-fetch)
3016 (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
3017 "archive/v" version ".tar.gz"))
3018 (file-name (string-append name "-" version ".tar.gz"))
3019 (sha256
3020 (base32
3021 "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
3022 (build-system emacs-build-system)
3023 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
3024 (synopsis "Major mode for jinja2")
3025 (description
3026 "Emacs major mode for jinja2 with: syntax highlighting,
3027sgml/html integration, and indentation (working with sgml).")
3028 (license license:gpl3+)))
3029
4670f70a
CM
3030(define-public emacs-rfcview
3031 (package
3032 (name "emacs-rfcview")
3033 (version "0.13")
3034 (home-page "http://www.loveshack.ukfsn.org/emacs")
3035 (source (origin
02736daa 3036 (method url-fetch)
4670f70a
CM
3037 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
3038 (sha256
3039 (base32
3040 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
3041 (build-system emacs-build-system)
4670f70a
CM
3042 (synopsis "Prettify Request for Comments (RFC) documents")
3043 (description "The Internet Engineering Task Force (IETF) and the Internet
3044Society (ISOC) publish various Internet-related protocols and specifications
3045as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
3046documents. RFCs and STDs are published in a simple text form. This package
3047provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
3048read these documents in Emacs. It prettifies the text and adds
3049hyperlinks/menus for easier navigation. It also provides functions for
3050browsing the index of RFC documents and fetching them from remote servers or
3051local directories.")
3052 (license license:gpl3+)))
3053
9e9c71eb
CM
3054(define-public emacs-ffap-rfc-space
3055 (package
3056 (name "emacs-ffap-rfc-space")
3057 (version "12")
3058 (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
3059 (source (origin
02736daa 3060 (method url-fetch)
9e9c71eb
CM
3061 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
3062 (sha256
3063 (base32
3064 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
3065 (build-system emacs-build-system)
9e9c71eb
CM
3066 (synopsis "Make ffap recognize an RFC with a space before its number")
3067 (description "The Internet Engineering Task Force (IETF) and the
3068Internet Society (ISOC) publish various Internet-related protocols and
3069specifications as \"Request for Comments\" (RFC) documents. The
3070built-in Emacs module \"ffap\" (Find File at Point) has the ability to
3071recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
3072and load the appropriate RFC from a remote server. However, it fails
3073to recognize a name like \"RFC 1234\". This package enhances ffap so
3074that it correctly finds RFCs even when a space appears before the
3075number.")
3076 (license license:gpl3+)))
9576cc72 3077
db1a4960
RW
3078(define-public emacs-org-bullets
3079 (package
3080 (name "emacs-org-bullets")
3081 (version "0.2.4")
3082 (source
3083 (origin
3084 (method url-fetch)
3085 (uri (string-append "https://github.com/sabof/org-bullets/archive/"
3086 version ".tar.gz"))
3087 (file-name (string-append name "-" version ".tar.gz"))
3088 (sha256
3089 (base32
3090 "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
3091 (build-system emacs-build-system)
3092 (home-page "https://github.com/sabof/org-bullets")
3093 (synopsis "Show bullets in org-mode as UTF-8 characters")
3094 (description
3095 "This package provides an Emacs minor mode causing bullets in
3096@code{org-mode} to be rendered as UTF-8 characters.")
3097 (license license:gpl3+)))
b1679379
OP
3098
3099(define-public emacs-org-pomodoro
3100 (package
3101 (name "emacs-org-pomodoro")
3102 (version "2.1.0")
3103 (source
3104 (origin
3105 (method url-fetch)
3106 (uri (string-append
3107 "https://github.com/lolownia/org-pomodoro/archive/"
3108 version ".tar.gz"))
3109 (file-name (string-append name "-" version ".tar.gz"))
3110 (sha256
3111 (base32
3112 "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
3113 (build-system emacs-build-system)
3114 (propagated-inputs
3115 `(("emacs-alert" ,emacs-alert)))
3116 (home-page "https://github.com/lolownia/org-pomodoro")
3117 (synopsis "Pomodoro technique for org-mode")
3118 (description "@code{emacs-org-pomodoro} adds very basic support for
3119Pomodoro technique in Emacs org-mode.
3120
3121Run @code{M-x org-pomodoro} for the task at point or select one of the
3122last tasks that you clocked time for. Each clocked-in pomodoro starts
3123a timer of 25 minutes and after each pomodoro a break timer of 5
3124minutes is started automatically. Every 4 breaks a long break is
3125started with 20 minutes. All values are customizable.")
3126 (license license:gpl3+)))
db1a4960 3127
ed8bc028
RJ
3128(define-public emacs-org-trello
3129 (package
3130 (name "emacs-org-trello")
bf86533b 3131 (version "0.8.0")
ed8bc028
RJ
3132 (source (origin
3133 (method url-fetch)
3134 (uri (string-append
3135 "https://github.com/org-trello/org-trello/archive/"
3136 version ".tar.gz"))
3137 (file-name (string-append name "-" version ".tar.gz"))
3138 (sha256
3139 (base32
bf86533b 3140 "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
ed8bc028
RJ
3141 (build-system emacs-build-system)
3142 (propagated-inputs
8865d476
MC
3143 `(("emacs-dash" ,emacs-dash)
3144 ("emacs-deferred" ,emacs-deferred)
3145 ("emacs-f" ,emacs-f)
3146 ("emacs-helm" ,emacs-helm)
ed8bc028 3147 ("emacs-request" ,emacs-request)
ed8bc028
RJ
3148 ("emacs-s" ,emacs-s)))
3149 (home-page "https://org-trello.github.io")
3150 (synopsis "Emacs minor mode for interacting with Trello")
3151 (description "This package provides an Emacs minor mode to extend
3152@code{org-mode} with Trello abilities. Trello is an online project
3153organizer.")
3154 (license license:gpl3+)))
3155
9576cc72
AP
3156(define-public emacs-zenburn-theme
3157 (package
3158 (name "emacs-zenburn-theme")
07716c68 3159 (version "2.5")
9576cc72
AP
3160 (source (origin
3161 (method url-fetch)
3162 (uri (string-append
3163 "https://github.com/bbatsov/zenburn-emacs/archive/v"
3164 version ".tar.gz"))
3165 (file-name (string-append name "-" version ".tar.gz"))
3166 (sha256
3167 (base32
07716c68 3168 "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
9576cc72 3169 (build-system emacs-build-system)
7bf837fd 3170 (home-page "https://github.com/bbatsov/zenburn-emacs")
9576cc72
AP
3171 (synopsis "Low contrast color theme for Emacs")
3172 (description
3173 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
3174It is built on top of the custom theme support in Emacs 24 or later.")
3175 (license license:gpl3+)))
3176
012c8b35
RW
3177(define-public emacs-solarized-theme
3178 (package
3179 (name "emacs-solarized-theme")
3180 (version "1.2.2")
3181 (source (origin
3182 (method url-fetch)
3183 (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
3184 "archive/v" version ".tar.gz"))
3185 (file-name (string-append name "-" version ".tar.gz"))
3186 (sha256
3187 (base32
3188 "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
3189 (build-system emacs-build-system)
3190 (propagated-inputs
090bdb9e 3191 `(("emacs-dash" ,emacs-dash)))
7bf837fd 3192 (home-page "https://github.com/bbatsov/solarized-emacs")
012c8b35
RW
3193 (synopsis "Port of the Solarized theme for Emacs")
3194 (description
3195 "Solarized for Emacs is a port of the Solarized theme for Vim. This
3196package provides a light and a dark variant.")
3197 (license license:gpl3+)))
3198
e7761186
AV
3199(define-public emacs-ahungry-theme
3200 (package
3201 (name "emacs-ahungry-theme")
e5f95406 3202 (version "1.10.0")
e7761186
AV
3203 (source
3204 (origin (method url-fetch)
f32ffa04 3205 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
e7761186
AV
3206 version ".tar"))
3207 (sha256
3208 (base32
e5f95406 3209 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
e7761186
AV
3210 (build-system emacs-build-system)
3211 (home-page "https://github.com/ahungry/color-theme-ahungry")
3212 (synopsis "Ahungry color theme for Emacs")
3213 (description "Ahungry theme for Emacs provides bright and bold colors.
3214If you load it from a terminal, you will be able to make use of the
3215transparent background. If you load it from a GUI, it will default to a
3216dark background.")
3217 (license license:gpl3+)))
3218
ab966b8f 3219(define-public emacs-2048-game
3220 (package
3221 (name "emacs-2048-game")
3222 (version "20151026.1233")
3223 (source
3224 (origin
3225 (method url-fetch)
3226 (uri (string-append "https://melpa.org/packages/2048-game-"
3227 version ".el"))
3228 (sha256
3229 (base32
3230 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
3231 (build-system emacs-build-system)
3232 (home-page "https://bitbucket.org/zck/2048.el")
3233 (synopsis "Implementation of the game 2048 in Emacs Lisp")
3234 (description
3235 "This program is an implementation of 2048 for Emacs.
3236The goal of this game is to create a tile with value 2048. The size of the
3237board and goal value can be customized.")
3238 (license license:gpl3+)))
3239
4da9beab 3240(define-public emacs-base16-theme
3241 (package
3242 (name "emacs-base16-theme")
3243 (version "2.1")
3244 (source
3245 (origin
3246 (method url-fetch)
3247 (uri (string-append "https://stable.melpa.org/packages/base16-theme-"
3248 version ".tar"))
3249 (sha256
3250 (base32
3251 "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj"))))
3252 (build-system emacs-build-system)
3253 (home-page "https://github.com/belak/base16-emacs")
3254 (synopsis "Base16 color themes for Emacs")
3255 (description
3256 "Base16 provides carefully chosen syntax highlighting and a default set
3257of sixteen colors suitable for a wide range of applications. Base16 is not a
3258single theme but a set of guidelines with numerous implementations.")
3259 (license license:expat)))
3260
5c447e28
AP
3261(define-public emacs-smartparens
3262 (package
3263 (name "emacs-smartparens")
308b8f79 3264 (version "1.11.0")
5c447e28
AP
3265 (source (origin
3266 (method url-fetch)
3267 (uri (string-append
3268 "https://github.com/Fuco1/smartparens/archive/"
3269 version ".tar.gz"))
3270 (file-name (string-append name "-" version ".tar.gz"))
3271 (sha256
3272 (base32
308b8f79 3273 "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
5c447e28 3274 (build-system emacs-build-system)
db95d8ca
MC
3275 (propagated-inputs
3276 `(("emacs-dash" ,emacs-dash)
3277 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5c447e28
AP
3278 (home-page "https://github.com/Fuco1/smartparens")
3279 (synopsis "Paredit-like insertion, wrapping and navigation with user
3280defined pairs")
3281 (description
3282 "Smartparens is a minor mode for Emacs that deals with parens pairs
3283and tries to be smart about it. It started as a unification effort to
3284combine functionality of several existing packages in a single,
3285compatible and extensible way to deal with parentheses, delimiters, tags
3286and the like. Some of these packages include autopair, textmate,
3287wrap-region, electric-pair-mode, paredit and others. With the basic
3288features found in other packages it also brings many improvements as
3289well as completely new features.")
3290 (license license:gpl3+)))
8eeb301d 3291
425d66f7
OP
3292(define-public emacs-highlight-symbol
3293 (package
3294 (name "emacs-highlight-symbol")
3295 (version "1.3")
3296 (source (origin
3297 (method url-fetch)
3298 (uri (string-append
3299 "https://github.com/nschum/highlight-symbol.el/archive/"
3300 version ".tar.gz"))
3301 (file-name (string-append name "-" version ".tar.gz"))
3302 (sha256
3303 (base32
3304 "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
3305 (build-system emacs-build-system)
3306 (home-page "https://nschum.de/src/emacs/highlight-symbol")
3307 (synopsis "Automatic and manual symbol highlighting for Emacs")
3308 (description
3309 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
3310point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
3311the symbol at point highlighted.
3312
3313The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
3314@code{highlight-symbol-next-in-defun} and
3315@code{highlight-symbol-prev-in-defun} allow for cycling through the locations
3316of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
3317bindings @code{M-p} and @code{M-p} for navigation. When
3318@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
3319regardless of @code{highlight-symbol-idle-delay}.
3320
3321@code{highlight-symbol-query-replace} can be used to replace the symbol. ")
3322 (license license:gpl2+)))
3323
8f82641a
RJ
3324(define-public emacs-hl-todo
3325 (package
3326 (name "emacs-hl-todo")
f61aaaf3 3327 (version "1.8.0")
8f82641a
RJ
3328 (source (origin
3329 (method url-fetch)
3330 (uri (string-append
3331 "https://raw.githubusercontent.com/tarsius/hl-todo/"
3332 version "/hl-todo.el"))
0e7c4089 3333 (file-name (string-append "hl-todo-" version ".el"))
8f82641a
RJ
3334 (sha256
3335 (base32
f61aaaf3 3336 "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
8f82641a
RJ
3337 (build-system emacs-build-system)
3338 (home-page "https://github.com/tarsius/hl-todo")
3339 (synopsis "Emacs mode to highlight TODO and similar keywords")
3340 (description
3341 "This package provides an Emacs mode to highlight TODO and similar
3342keywords in comments and strings. This package also provides commands for
3343moving to the next or previous keyword and to invoke @code{occur} with a
3344regexp that matches all known keywords.")
3345 (license license:gpl3+)))
3346
480f7350
RW
3347(define-public emacs-perspective
3348 (package
3349 (name "emacs-perspective")
3350 (version "1.12")
3351 (source
3352 (origin
3353 (method url-fetch)
3354 (uri (string-append "https://github.com/nex3/perspective-el/"
3355 "archive/" version ".tar.gz"))
3356 (file-name (string-append name "-" version ".tar.gz"))
3357 (sha256
3358 (base32
3359 "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
3360 (build-system emacs-build-system)
7bf837fd 3361 (home-page "https://github.com/nex3/perspective-el")
480f7350
RW
3362 (synopsis "Switch between named \"perspectives\"")
3363 (description
3364 "This package provides tagged workspaces in Emacs, similar to workspaces in
3365windows managers such as Awesome and XMonad. @code{perspective.el} provides
3366multiple workspaces (or \"perspectives\") for each Emacs frame. Each
3367perspective is composed of a window configuration and a set of buffers.
3368Switching to a perspective activates its window configuration, and when in a
3369perspective only its buffers are available by default.")
3370 ;; This package is released under the same license as Emacs (GPLv3+) or
3371 ;; the Expat license.
3372 (license license:gpl3+)))
3373
439ad15d
MC
3374(define-public emacs-test-simple
3375 (package
3376 (name "emacs-test-simple")
3377 (version "1.3.0")
3378 (source
3379 (origin
3380 (method url-fetch)
3381 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
3382 version ".el"))
3383 (sha256
3384 (base32
3385 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
3386 (build-system emacs-build-system)
3387 (home-page "https://github.com/rocky/emacs-test-simple")
3388 (synopsis "Simple unit test framework for Emacs Lisp")
3389 (description
3390 "Test Simple is a simple unit test framework for Emacs Lisp. It
3391alleviates the need for context macros, enclosing specifications or required
3392test tags. It supports both interactive and non-interactive use.")
3393 (license license:gpl3+)))
3394
fa1a17b7
MC
3395(define-public emacs-load-relative
3396 (package
3397 (name "emacs-load-relative")
3398 (version "1.3")
3399 (source
3400 (origin
3401 (method url-fetch)
3402 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
3403 version ".el"))
3404 (sha256
3405 (base32
3406 "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
3407 (build-system emacs-build-system)
3408 (home-page "http://github.com/rocky/emacs-load-relative")
3409 (synopsis "Emacs Lisp relative file loading related functions")
3410 (description
3411 "Provides functions which facilitate writing multi-file Emacs packages
3412and running from the source tree without having to \"install\" code or fiddle
3413with @{load-path}.
3414
3415The main function, @code{load-relative}, loads an Emacs Lisp file relative to
3416another (presumably currently running) Emacs Lisp file.")
3417 (license license:gpl3+)))
3418
fd38bfe2
MC
3419(define-public emacs-loc-changes
3420 (package
3421 (name "emacs-loc-changes")
3422 (version "1.2")
3423 (source
3424 (origin
3425 (method url-fetch)
3426 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
3427 version ".el"))
3428 (sha256
3429 (base32
3430 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
3431 (build-system emacs-build-system)
3432 (home-page "https://github.com/rocky/emacs-loc-changes")
3433 (synopsis "Keeps track of positions even after buffer changes")
3434 (description
3435 "This Emacs package provides a mean to track important buffer positions
3436after buffer changes.")
3437 (license license:gpl3+)))
3438
b1968d86
MC
3439(define-public emacs-realgud
3440 (package
3441 (name "emacs-realgud")
5368e67c 3442 (version "1.4.5")
b1968d86
MC
3443 (source
3444 (origin
3445 (method url-fetch)
3446 (uri (string-append "https://elpa.gnu.org/packages/realgud-"
3447 version ".tar"))
3448 (sha256
3449 (base32
5368e67c 3450 "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
b1968d86
MC
3451 (build-system emacs-build-system)
3452 (arguments
3453 `(#:tests? #t
3454 #:phases
3455 (modify-phases %standard-phases
aea388cf 3456 (add-after 'set-emacs-load-path 'fix-autogen-script
b1968d86
MC
3457 (lambda _
3458 (substitute* "autogen.sh"
3459 (("./configure") "sh configure"))))
3460 (add-after 'fix-autogen-script 'autogen
3461 (lambda _
3462 (setenv "CONFIG_SHELL" "sh")
3463 (invoke "sh" "autogen.sh")))
3464 (add-after 'fix-autogen-script 'set-home
3465 (lambda _
3466 (setenv "HOME" (getenv "TMPDIR"))))
3467 (add-before 'patch-el-files 'remove-realgud-pkg.el
3468 (lambda _
3469 ;; XXX: This file is auto-generated at some point and causes
3470 ;; substitute* to crash during the `patch-el-files' phase with:
3471 ;; ERROR: In procedure stat: No such file or directory:
3472 ;; "./realgud-pkg.el"
3473 (delete-file "./realgud-pkg.el")
3474 ;; FIXME: `patch-el-files' crashes on this file with error:
3475 ;; unable to locate "bashdb".
3476 (delete-file "./test/test-regexp-bashdb.el"))))
3477 #:include (cons* ".*\\.el$" %default-include)))
3478 (native-inputs
3479 `(("autoconf" ,autoconf)
3480 ("automake" ,automake)
3481 ("emacs-test-simple" ,emacs-test-simple)))
3482 (propagated-inputs
3483 `(("emacs-load-relative" ,emacs-load-relative)
3484 ("emacs-loc-changes" ,emacs-loc-changes)))
3485 (home-page "https://github.com/realgud/realgud/")
3486 (synopsis
3487 "Modular front-end for interacting with external debuggers")
3488 (description
3489 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
3490with external debuggers. It integrates various debuggers such as gdb, pdb,
3491ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
3492sources. Unlike GUD, it also supports running multiple debug sessions in
3493parallel.")
3494 (license license:gpl3+)))
3495
36e5d103
RJ
3496(define-public emacs-request
3497 (package
3498 (name "emacs-request")
5a545aab 3499 (version "0.3.0")
36e5d103 3500 (source (origin
5a545aab
RW
3501 (method git-fetch)
3502 (uri (git-reference
3503 (url "https://github.com/tkf/emacs-request.git")
3504 (commit (string-append "v" version))))
3505 (file-name (string-append name "-" version "-checkout"))
36e5d103 3506 (sha256
5a545aab
RW
3507 (base32
3508 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
36e5d103 3509 (build-system emacs-build-system)
4e782fff
MC
3510 (propagated-inputs
3511 `(("emacs-deferred" ,emacs-deferred)))
36e5d103
RJ
3512 (home-page "https://github.com/tkf/emacs-request")
3513 (synopsis "Package for speaking HTTP in Emacs Lisp")
3514 (description "This package provides a HTTP request library with multiple
3515backends. It supports url.el which is shipped with Emacs and the curl command
3516line program.")
3517 (license license:gpl3+)))
3518
f1b61e26 3519(define-public emacs-rudel
3520 (package
3521 (name "emacs-rudel")
3522 (version "0.3.1")
3523 (source
3524 (origin
3525 (method url-fetch)
3526 (uri (string-append "http://elpa.gnu.org/packages/rudel-"
3527 version ".tar"))
3528 (sha256
3529 (base32
3530 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
3531 (build-system emacs-build-system)
3532 (home-page "http://rudel.sourceforge.net/")
3533 (synopsis "Collaborative editing framework")
3534 (description
3535 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
3536is to share buffers with other users in order to edit the contents of those
3537buffers collaboratively. Rudel supports multiple backends to enable
3538communication with other collaborative editors using different protocols,
3539though currently Obby (for use with the Gobby editor) is the only
3540fully-functional one.")
3541 (license license:gpl3+)))
3542
79b3d3ea
RW
3543(define-public emacs-hydra
3544 (package
3545 (name "emacs-hydra")
9932dabf 3546 (version "0.14.0")
79b3d3ea
RW
3547 (source
3548 (origin
3549 (method url-fetch)
3550 (uri (string-append "https://github.com/abo-abo/hydra/archive/"
3551 version ".tar.gz"))
3552 (file-name (string-append name "-" version ".tar.gz"))
3553 (sha256
3554 (base32
9932dabf 3555 "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
79b3d3ea
RW
3556 (build-system emacs-build-system)
3557 (home-page "https://github.com/abo-abo/hydra")
3558 (synopsis "Make Emacs bindings that stick around")
3559 (description
3560 "This package can be used to tie related commands into a family of short
3561bindings with a common prefix---a Hydra. Once you summon the Hydra (through
3562the prefixed binding), all the heads can be called in succession with only a
3563short extension. Any binding that isn't the Hydra's head vanquishes the
3564Hydra. Note that the final binding, besides vanquishing the Hydra, will still
3565serve its original purpose, calling the command assigned to it. This makes
3566the Hydra very seamless; it's like a minor mode that disables itself
3567automatically.")
3568 (license license:gpl3+)))
3569
12db29ba
RW
3570(define-public emacs-ivy
3571 (package
3572 (name "emacs-ivy")
a8374234 3573 (version "0.10.0")
12db29ba
RW
3574 (source
3575 (origin
a8374234
RW
3576 (method git-fetch)
3577 (uri (git-reference
3578 (url "https://github.com/abo-abo/swiper.git")
3579 (commit version)))
3580 (file-name (string-append name "-" version "-checkout"))
12db29ba
RW
3581 (sha256
3582 (base32
a8374234 3583 "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr"))))
12db29ba 3584 (build-system emacs-build-system)
5f66a0a7
RW
3585 (arguments
3586 `(#:phases
3587 (modify-phases %standard-phases
3588 (add-after 'install 'install-doc
3589 (lambda* (#:key outputs #:allow-other-keys)
3590 (let* ((out (assoc-ref outputs "out"))
3591 (info (string-append out "/share/info")))
3592 (with-directory-excursion "doc"
3593 (unless (zero? (system* "makeinfo" "ivy.texi"))
3594 (error "makeinfo failed"))
3595 (install-file "ivy.info" info))))))))
12db29ba
RW
3596 (propagated-inputs
3597 `(("emacs-hydra" ,emacs-hydra)))
5f66a0a7
RW
3598 (native-inputs
3599 `(("texinfo" ,texinfo)))
12db29ba
RW
3600 (home-page "http://oremacs.com/swiper/")
3601 (synopsis "Incremental vertical completion for Emacs")
3602 (description
3603 "This package provides @code{ivy-read} as an alternative to
3604@code{completing-read} and similar functions. No attempt is made to determine
3605the best candidate. Instead, the user can navigate candidates with
3606@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
3607splitting the input text by spaces and re-building it into a regular
3608expression.")
3609 (license license:gpl3+)))
3610
5edc24ec
RW
3611(define-public emacs-avy
3612 (package
3613 (name "emacs-avy")
3614 (version "0.4.0")
3615 (source
3616 (origin
3617 (method url-fetch)
3618 (uri (string-append "https://github.com/abo-abo/avy/archive/"
3619 version ".tar.gz"))
3620 (file-name (string-append name "-" version ".tar.gz"))
3621 (sha256
3622 (base32
3623 "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
3624 (build-system emacs-build-system)
3625 (home-page "https://github.com/abo-abo/avy")
3626 (synopsis "Tree-based completion for Emacs")
3627 (description
3628 "This package provides a generic completion method based on building a
3629balanced decision tree with each candidate being a leaf. To traverse the tree
3630from the root to a desired leaf, typically a sequence of @code{read-key} can
3631be used.
3632
3633In order for @code{read-key} to make sense, the tree needs to be visualized
3634appropriately, with a character at each branch node. So this completion
3635method works only for things that you can see on your screen, all at once,
3636such as the positions of characters, words, line beginnings, links, or
3637windows.")
3638 (license license:gpl3+)))
3639
93dba17c
RW
3640(define-public emacs-ace-window
3641 (package
3642 (name "emacs-ace-window")
3643 (version "0.9.0")
3644 (source
3645 (origin
3646 (method url-fetch)
3647 (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
3648 version ".tar.gz"))
3649 (file-name (string-append name "-" version ".tar.gz"))
3650 (sha256
3651 (base32
3652 "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
3653 (build-system emacs-build-system)
3654 (propagated-inputs
3655 `(("emacs-avy" ,emacs-avy)))
3656 (home-page "https://github.com/abo-abo/ace-window")
3657 (synopsis "Quickly switch windows in Emacs")
3658 (description
3659 "@code{ace-window} is meant to replace @code{other-window}.
3660In fact, when there are only two windows present, @code{other-window} is
3661called. If there are more, each window will have its first character
3662highlighted. Pressing that character will switch to that window.")
3663 (license license:gpl3+)))
3664
e1918ce4
RW
3665(define-public emacs-iedit
3666 (package
3667 (name "emacs-iedit")
f9f77a9e 3668 (version "0.9.9.9")
e1918ce4
RW
3669 (source
3670 (origin
3671 (method url-fetch)
3672 (uri (string-append "https://github.com/victorhge/iedit/archive/v"
3673 version ".tar.gz"))
3674 (file-name (string-append name "-" version ".tar.gz"))
3675 (sha256
3676 (base32
f9f77a9e 3677 "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
e1918ce4
RW
3678 (build-system emacs-build-system)
3679 (home-page "http://www.emacswiki.org/emacs/Iedit")
3680 (synopsis "Edit multiple regions in the same way simultaneously")
3681 (description
3682 "This package is an Emacs minor mode and allows you to edit one
3683occurrence of some text in a buffer (possibly narrowed) or region, and
3684simultaneously have other occurrences edited in the same way.
3685
3686You can also use Iedit mode as a quick way to temporarily show only the buffer
3687lines that match the current text being edited. This gives you the effect of
3688a temporary @code{keep-lines} or @code{occur}.")
3689 (license license:gpl3+)))
3690
30cf7070
CL
3691(define-public emacs-zoutline
3692 (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
3693 (revision "0"))
3694 (package
3695 (name "emacs-zoutline")
3696 (version (git-version "0.1" revision commit))
3697 (home-page "https://github.com/abo-abo/zoutline")
3698 (source (origin
3699 (method git-fetch)
3700 (uri (git-reference (url home-page) (commit commit)))
3701 (sha256
3702 (base32
3703 "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
3704 (file-name (git-file-name name version))))
3705 (build-system emacs-build-system)
3706 (synopsis "Simple outline library")
3707 (description
3708 "This library provides helpers for outlines. Outlines allow users to
3709navigate code in a tree-like fashion.")
3710 (license license:gpl3+))))
3711
a5338dd4 3712(define-public emacs-lispy
e8360eb8
CL
3713 ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
3714 ;; since.
e5d57c1c 3715 (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
e8360eb8
CL
3716 (revision "0"))
3717 (package
3718 (name "emacs-lispy")
3719 (version (git-version "0.26.0" revision commit))
3720 (home-page "https://github.com/abo-abo/lispy")
3721 (source (origin
3722 (method git-fetch)
3723 (uri (git-reference (url home-page) (commit commit)))
3724 (sha256
3725 (base32
e5d57c1c 3726 "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
e8360eb8
CL
3727 (file-name (git-file-name name version))))
3728 (build-system emacs-build-system)
3729 (propagated-inputs
3730 `(("emacs-ace-window" ,emacs-ace-window)
3731 ("emacs-iedit" ,emacs-iedit)
3732 ("emacs-ivy" ,emacs-ivy)
3733 ("emacs-hydra" ,emacs-hydra)
3734 ("emacs-zoutline" ,emacs-zoutline)))
3735 (synopsis "Modal S-expression editing")
3736 (description
3737 "Due to the structure of Lisp syntax it's very rare for the programmer
3738to want to insert characters right before \"(\" or right after \")\". Thus
a5338dd4
RW
3739unprefixed printable characters can be used to call commands when the point is
3740at one of these special locations. Lispy provides unprefixed keybindings for
3741S-expression editing when point is at the beginning or end of an
3742S-expression.")
e8360eb8 3743 (license license:gpl3+))))
a5338dd4 3744
28ca6b35
CL
3745(define-public emacs-lispyville
3746 ;; Later versions need a more recent Evil, with an evil-define-key*
3747 ;; supporting nil for the state.
3748 (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
3749 (revision "0"))
3750 (package
3751 (name "emacs-lispyville")
3752 (version (git-version "0.1" revision commit))
3753 (home-page "https://github.com/noctuid/lispyville")
3754 (source (origin
3755 (method git-fetch)
3756 (uri (git-reference (url home-page) (commit commit)))
3757 (sha256
3758 (base32
3759 "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
3760 (file-name (git-file-name name version))))
3761 (propagated-inputs
3762 `(("emacs-evil" ,emacs-evil)
3763 ("emacs-lispy" ,emacs-lispy)))
3764 (build-system emacs-build-system)
3765 (synopsis "Minor mode for integrating Evil with lispy")
3766 (description
3767 "LispyVille's main purpose is to provide a Lisp editing environment
3768suited towards Evil users. It can serve as a minimal layer on top of lispy
3769for better integration with Evil, but it does not require the use of lispy’s
3770keybinding style. The provided commands allow for editing Lisp in normal
3771state and will work even without lispy being enabled.")
3772 (license license:gpl3+))))
3773
8eeb301d
AP
3774(define-public emacs-clojure-mode
3775 (package
3776 (name "emacs-clojure-mode")
2fa6f63b 3777 (version "5.6.1")
8eeb301d
AP
3778 (source (origin
3779 (method url-fetch)
3780 (uri (string-append
3781 "https://github.com/clojure-emacs/clojure-mode/archive/"
3782 version ".tar.gz"))
3783 (file-name (string-append name "-" version ".tar.gz"))
3784 (sha256
3785 (base32
2fa6f63b 3786 "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
8eeb301d 3787 (build-system emacs-build-system)
92d9cfef
AI
3788 (native-inputs
3789 `(("emacs-dash" ,emacs-dash)
3790 ("emacs-s" ,emacs-s)
3791 ("ert-runner" ,ert-runner)))
3792 (arguments
d1d41db6
MC
3793 `(#:tests? #t
3794 #:test-command '("ert-runner")))
7bf837fd 3795 (home-page "https://github.com/clojure-emacs/clojure-mode")
8eeb301d
AP
3796 (synopsis "Major mode for Clojure code")
3797 (description
3798 "This Emacs package provides font-lock, indentation, navigation and basic
3799refactoring for the @uref{http://clojure.org, Clojure programming language}.
3800It is recommended to use @code{clojure-mode} with paredit or smartparens.")
3801 (license license:gpl3+)))
d345491a
AP
3802
3803(define-public emacs-epl
3804 (package
3805 (name "emacs-epl")
3806 (version "0.8")
3807 (source (origin
3808 (method url-fetch)
3809 (uri (string-append
3810 "https://github.com/cask/epl/archive/"
3811 version ".tar.gz"))
5a6f7a68 3812 (file-name (string-append name "-" version ".tar.gz"))
d345491a
AP
3813 (sha256
3814 (base32
3815 "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
3816 (build-system emacs-build-system)
7bf837fd 3817 (home-page "https://github.com/cask/epl")
d345491a
AP
3818 (synopsis "Emacs Package Library")
3819 (description
3820 "A package management library for Emacs, based on @code{package.el}.
3821
3822The purpose of this library is to wrap all the quirks and hassle of
3823@code{package.el} into a sane API.")
3824 (license license:gpl3+)))
ad6c4bc4
AP
3825
3826(define-public emacs-queue
3827 (package
3828 (name "emacs-queue")
5f51f39e 3829 (version "0.2")
ad6c4bc4 3830 (source (origin
02736daa 3831 (method url-fetch)
f32ffa04 3832 (uri (string-append "https://elpa.gnu.org/packages/queue-"
ad6c4bc4
AP
3833 version ".el"))
3834 (sha256
3835 (base32
5f51f39e 3836 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
ad6c4bc4
AP
3837 (build-system emacs-build-system)
3838 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
3839 (synopsis "Queue data structure for Emacs")
3840 (description
3841 "This Emacs library provides queue data structure. These queues can be
3842used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
3843stack, i.e. elements can be added to the front or back of the queue, and can
3844be removed from the front. This type of data structure is sometimes called an
3845\"output-restricted deque\".")
3846 (license license:gpl3+)))
32abfcf4
AP
3847
3848(define-public emacs-pkg-info
3849 (package
3850 (name "emacs-pkg-info")
3851 (version "0.6")
3852 (source (origin
3853 (method url-fetch)
3854 (uri (string-append
3855 "https://github.com/lunaryorn/pkg-info.el/archive/"
3856 version ".tar.gz"))
3857 (file-name (string-append name "-" version ".tar.gz"))
3858 (sha256
3859 (base32
3860 "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
3861 (build-system emacs-build-system)
3862 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
3863 (home-page "https://github.com/lunaryorn/pkg-info.el")
3864 (synopsis "Information about Emacs packages")
3865 (description
3866 "This library extracts information from the installed Emacs packages.")
3867 (license license:gpl3+)))
565bccc5
AP
3868
3869(define-public emacs-spinner
3870 (package
3871 (name "emacs-spinner")
cd4d96b8 3872 (version "1.7.3")
565bccc5 3873 (source (origin
02736daa 3874 (method url-fetch)
f32ffa04 3875 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
565bccc5
AP
3876 version ".el"))
3877 (sha256
3878 (base32
cd4d96b8 3879 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
565bccc5
AP
3880 (build-system emacs-build-system)
3881 (home-page "https://github.com/Malabarba/spinner.el")
3882 (synopsis "Emacs mode-line spinner for operations in progress")
3883 (description
3884 "This Emacs package adds spinners and progress-bars to the mode-line for
3885ongoing operations.")
3886 (license license:gpl3+)))
62a45cb6 3887
fd2d17cd
RJ
3888(define-public emacs-sparql-mode
3889 (package
3890 (name "emacs-sparql-mode")
3891 (version "2.0.1")
3892 (source (origin
3893 (method url-fetch)
3894 (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
3895 "v" version ".tar.gz"))
3896 (file-name (string-append name "-" version ".tar.gz"))
3897 (sha256
3898 (base32
3899 "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
3900 (build-system emacs-build-system)
3901 (home-page "https://github.com/ljos/sparql-mode")
3902 (synopsis "SPARQL mode for Emacs")
3903 (description "This package provides a major mode for Emacs that provides
3904syntax highlighting for SPARQL. It also provides a way to execute queries
3905against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
3906possible to query other endpoints like DBPedia.")
3907 (license license:gpl3+)))
3908
6ede256f
DT
3909(define-public emacs-better-defaults
3910 (package
3911 (name "emacs-better-defaults")
3912 (version "0.1.3")
3913 (source
3914 (origin
3915 (method url-fetch)
3916 (uri (string-append "https://github.com/technomancy/better-defaults"
3917 "/archive/" version ".tar.gz"))
13384842 3918 (file-name (string-append name "-" version ".tar.gz"))
6ede256f
DT
3919 (sha256
3920 (base32
3921 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
3922 (build-system emacs-build-system)
3923 (home-page "https://github.com/technomancy/better-defaults")
3924 (synopsis "Better defaults for Emacs")
3925 (description
3926 "Better defaults attempts to address the most obvious deficiencies of the
3927Emacs default configuration in uncontroversial ways that nearly everyone can
3928agree upon.")
3929 (license license:gpl3+)))
c5c08f1b 3930
7034791a
RJ
3931(define-public emacs-eprime
3932 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
3933 (package
3934 (name "emacs-eprime")
3935 (version (string-append "20140513-" (string-take commit 7)))
3936 (source (origin
3937 (method url-fetch)
3938 (uri (string-append "https://raw.githubusercontent.com"
3939 "/AndrewHynes/eprime-mode/"
3940 commit "/eprime-mode.el"))
3941 (file-name (string-append "eprime-" version ".el"))
3942 (sha256
3943 (base32
3944 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
3945 (build-system emacs-build-system)
3946 (home-page "https://github.com/AndrewHynes/eprime-mode")
3947 (synopsis "E-prime checking mode for Emacs")
3948 (description "This package provides an E-prime checking mode for Emacs
3949that highlights non-conforming text. The subset of the English language called
3950E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
3951 (license license:gpl3+))))
3952
db29e598
KM
3953(define-public emacs-julia-mode
3954 ;; XXX: Upstream version remained stuck at 0.3. See
3955 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
3956 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
3957 (revision "1"))
3958 (package
3959 (name "emacs-julia-mode")
3960 (version (string-append "0.3-" revision "." (string-take commit 8)))
3961 (source
3962 (origin
3963 (method git-fetch)
3964 (uri (git-reference
3965 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
3966 (commit commit)))
3967 (file-name (string-append name "-" version "-checkout"))
3968 (sha256
3969 (base32
3970 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
3971 (build-system emacs-build-system)
3972 (arguments
d1d41db6
MC
3973 `(#:tests? #t
3974 #:test-command '("emacs" "--batch"
3975 "-l" "julia-mode-tests.el"
3976 "-f" "ert-run-tests-batch-and-exit")))
db29e598
KM
3977 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
3978 (synopsis "Major mode for Julia")
3979 (description "This Emacs package provides a mode for the Julia
3980programming language.")
3981 (license license:expat))))
3982
41184943
RJ
3983(define-public emacs-ess
3984 (package
3985 (name "emacs-ess")
a209907e 3986 (version "16.10")
41184943
RJ
3987 (source (origin
3988 (method url-fetch)
3989 (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
3990 version ".tgz"))
3991 (sha256
3992 (base32
a209907e
KM
3993 "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
3994 (modules '((guix build utils)))
3995 (snippet
3996 '(begin
3997 ;; Stop ESS from trying to bundle an external julia-mode.el.
3998 (substitute* "lisp/Makefile"
3999 (("^\tjulia-mode.elc\\\\\n") "")
4000 (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
4001 "all: $(ELC) ess-custom.el"))))))
41184943
RJ
4002 (build-system gnu-build-system)
4003 (arguments
eaff063a 4004 (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
a209907e 4005 `(#:make-flags (list (string-append "PREFIX=" %output)
eaff063a
RJ
4006 (string-append "ETCDIR=" %output "/"
4007 ,base-directory "/etc")
4008 (string-append "LISPDIR=" %output "/"
4009 ,base-directory))
4010 #:phases
4011 (modify-phases %standard-phases
4012 (delete 'configure)
4013 (add-before 'build 'more-shebang-patching
4014 (lambda* (#:key inputs #:allow-other-keys)
4015 (substitute* "Makeconf"
4016 (("SHELL = /bin/sh")
4017 (string-append "SHELL = " (which "sh"))))))
4018 ;; FIXME: the texlive-union insists on regenerating fonts. It stores
4019 ;; them in HOME, so it needs to be writeable.
4020 (add-before 'build 'set-HOME
a209907e
KM
4021 (lambda _ (setenv "HOME" "/tmp") #t))
4022 (replace 'check
4023 (lambda _
4024 (zero? (system* "make" "test"))))))))
41184943
RJ
4025 (inputs
4026 `(("emacs" ,emacs-minimal)
2d7c4ae3 4027 ("r-minimal" ,r-minimal)))
41184943
RJ
4028 (native-inputs
4029 `(("perl" ,perl)
4030 ("texinfo" ,texinfo)
63096366
RW
4031 ("texlive" ,(texlive-union (list texlive-latex-natbib
4032 texlive-latex-seminar
4033 texlive-latex-hyperref
4034 texlive-tex-texinfo)))))
d062957a 4035 (home-page "https://ess.r-project.org/")
41184943
RJ
4036 (synopsis "Emacs mode for statistical analysis programs")
4037 (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
4038Emacs. It is designed to support editing of scripts and interaction with
4039various statistical analysis programs such as R and OpenBUGS.")
4040 (license license:gpl2+)))
4041
c5c08f1b
DT
4042(define-public emacs-smex
4043 (package
4044 (name "emacs-smex")
4045 (version "3.0")
4046 (source (origin
4047 (method url-fetch)
4048 (uri (string-append "https://raw.githubusercontent.com"
4049 "/nonsequitur/smex/" version "/smex.el"))
4050 (file-name (string-append "smex-" version ".el"))
4051 (sha256
4052 (base32
4053 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
4054 (build-system emacs-build-system)
7bf837fd 4055 (home-page "https://github.com/nonsequitur/smex/")
c5c08f1b
DT
4056 (synopsis "M-x interface with Ido-style fuzzy matching")
4057 (description
4058 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
4059convenient interface to your recently and most frequently used commands. And
4060to all the other commands, too.")
4061 (license license:gpl3+)))
3e5be84b
DT
4062
4063(define-public emacs-js2-mode
4064 (package
4065 (name "emacs-js2-mode")
4066 (version "20150909")
4067 (source (origin
4068 (method url-fetch)
4069 (uri (string-append "https://github.com/mooz/js2-mode/archive/"
4070 version ".tar.gz"))
4071 (file-name (string-append name "-" version ".tar.gz"))
4072 (sha256
4073 (base32
4074 "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0"))))
4075 (build-system emacs-build-system)
4076 (home-page "https://github.com/mooz/js2-mode/")
4077 (synopsis "Improved JavaScript editing mode for Emacs")
4078 (description
4079 "Js2-mode provides a JavaScript major mode for Emacs that is more
4080advanced than the built-in javascript-mode. Features include accurate syntax
4081highlighting using a recursive-descent parser, on-the-fly reporting of syntax
4082errors and strict-mode warnings, smart line-wrapping within comments and
4083strings, and code folding.")
4084 (license license:gpl3+)))
b78b6e80
DT
4085
4086(define-public emacs-markdown-mode
4087 (package
4088 (name "emacs-markdown-mode")
2175a427 4089 (version "2.3")
b78b6e80
DT
4090 (source (origin
4091 (method url-fetch)
4092 (uri (string-append "https://raw.githubusercontent.com/jrblevin"
4093 "/markdown-mode/v" version
4094 "/markdown-mode.el"))
4095 (file-name (string-append "markdown-mode-" version ".el"))
4096 (sha256
4097 (base32
2175a427 4098 "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
b78b6e80
DT
4099 (build-system emacs-build-system)
4100 (home-page "http://jblevins.org/projects/markdown-mode/")
4101 (synopsis "Emacs Major mode for Markdown files")
4102 (description
4103 "Markdown-mode is a major mode for editing Markdown-formatted text files
4104in Emacs.")
4105 (license license:gpl3+)))
a2670dde 4106
659f790b
OP
4107(define-public emacs-edit-indirect
4108 (package
4109 (name "emacs-edit-indirect")
4110 (version "0.1.4")
4111 (source
4112 (origin
4113 (method url-fetch)
4114 (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
4115 version ".tar.gz"))
4116 (file-name (string-append name "-" version ".tar.gz"))
4117 (sha256
4118 (base32
4119 "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
4120 (build-system emacs-build-system)
4121 (home-page "https://github.com/Fanael/edit-indirect")
4122 (synopsis "Edit regions in separate buffers")
4123 (description "This package allows you to edit regions in separate buffers,
4124like @code{org-edit-src-code} but for arbitrary regions.")
4125 (license license:gpl3+)))
4126
a2670dde
DT
4127(define-public emacs-projectile
4128 (package
4129 (name "emacs-projectile")
6461c44c 4130 (version "0.14.0")
a2670dde
DT
4131 (source (origin
4132 (method url-fetch)
4133 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
4134 "/projectile/v" version "/projectile.el"))
4135 (file-name (string-append "projectile-" version ".el"))
4136 (sha256
4137 (base32
6461c44c 4138 "1ql1wnzhblbwnv66hf2y0wq45g71hh6s9inc090lmhm1vgylbd1f"))))
a2670dde
DT
4139 (build-system emacs-build-system)
4140 (propagated-inputs
4141 `(("emacs-dash" ,emacs-dash)
4142 ("emacs-pkg-info" ,emacs-pkg-info)))
4143 (home-page "https://github.com/bbatsov/projectile")
4144 (synopsis "Manage and navigate projects in Emacs easily")
4145 (description
4146 "This library provides easy project management and navigation. The
4147concept of a project is pretty basic - just a folder containing special file.
4148Currently git, mercurial and bazaar repos are considered projects by default.
4149If you want to mark a folder manually as a project just create an empty
4150.projectile file in it.")
4151 (license license:gpl3+)))
4aea1e01
DT
4152
4153(define-public emacs-elfeed
4154 (package
4155 (name "emacs-elfeed")
4fca8a02 4156 (version "2.3.0")
4aea1e01
DT
4157 (source (origin
4158 (method url-fetch)
4159 (uri (string-append "https://github.com/skeeto/elfeed/archive/"
4160 version ".tar.gz"))
4161 (file-name (string-append name "-" version ".tar.gz"))
4162 (sha256
4163 (base32
4fca8a02 4164 "1fd1mx0q1qb9vgdzls5ppxfriyid48blg8smgjspiazp7kxakzxv"))))
4aea1e01 4165 (build-system emacs-build-system)
568f977f 4166 (arguments
d1d41db6
MC
4167 `(#:tests? #t
4168 #:test-command '("make" "test")))
4aea1e01
DT
4169 (home-page "https://github.com/skeeto/elfeed")
4170 (synopsis "Atom/RSS feed reader for Emacs")
4171 (description
4172 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
4173and RSS, with a user interface inspired by notmuch.")
4174 (license license:gpl3+)))
c86f0207
DT
4175
4176(define-public emacs-rainbow-delimiters
4177 (package
4178 (name "emacs-rainbow-delimiters")
4179 (version "2.1.3")
4180 (source (origin
4181 (method url-fetch)
4182 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4183 "/rainbow-delimiters/" version
4184 "/rainbow-delimiters.el"))
4185 (file-name (string-append "rainbow-delimiters-" version ".el"))
4186 (sha256
4187 (base32
4188 "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
4189 (build-system emacs-build-system)
4190 (home-page "https://github.com/Fanael/rainbow-delimiters")
4191 (synopsis "Highlight brackets according to their depth")
4192 (description
4193 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
4194highlights parentheses, brackets, and braces according to their depth. Each
4195successive level is highlighted in a different color, making it easy to spot
4196matching delimiters, orient yourself in the code, and tell which statements
4197are at a given level.")
4198 (license license:gpl3+)))
65b49ae7 4199
d95e8e01
RJ
4200(define-public emacs-rainbow-identifiers
4201 (package
4202 (name "emacs-rainbow-identifiers")
4203 (version "0.2.2")
4204 (source (origin
4205 (method url-fetch)
4206 (uri (string-append "https://raw.githubusercontent.com/Fanael"
4207 "/rainbow-identifiers/" version
4208 "/rainbow-identifiers.el"))
4209 (file-name (string-append "rainbow-identifiers-" version ".el"))
4210 (sha256
4211 (base32
4212 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
4213 (build-system emacs-build-system)
4214 (home-page "https://github.com/Fanael/rainbow-identifiers")
4215 (synopsis "Highlight identifiers in source code")
4216 (description
4217 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
4218identifiers based on their names. Each identifier gets a color based on a hash
4219of its name.")
4220 (license license:bsd-2)))
4221
9619a95e
RJ
4222(define-public emacs-rainbow-mode
4223 (package
4224 (name "emacs-rainbow-mode")
61b31ac4 4225 (version "0.13")
9619a95e
RJ
4226 (source (origin
4227 (method url-fetch)
4228 (uri (string-append
4229 "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
4230 (sha256
4231 (base32
61b31ac4 4232 "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
9619a95e
RJ
4233 (build-system emacs-build-system)
4234 (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
4235 (synopsis "Colorize color names in buffers")
4236 (description
4237 "This minor mode sets background color to strings that match color
4238names, e.g. #0000ff is displayed in white with a blue background.")
4239 (license license:gpl3+)))
4240
fede3a90
RW
4241(define-public emacs-visual-fill-column
4242 (package
4243 (name "emacs-visual-fill-column")
32e23aba 4244 (version "1.11")
fede3a90
RW
4245 (source (origin
4246 (method url-fetch)
4247 (uri (string-append "https://codeload.github.com/joostkremers/"
4248 "visual-fill-column/tar.gz/" version))
4249 (file-name (string-append name "-" version ".tar.gz"))
4250 (sha256
4251 (base32
32e23aba 4252 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
fede3a90
RW
4253 (build-system emacs-build-system)
4254 (home-page "https://github.com/joostkremers/visual-fill-column")
4255 (synopsis "Fill-column for visual-line-mode")
4256 (description
4257 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
4258the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
4259wrapping lines at the window edge, which is the standard behaviour of
4260@code{visual-line-mode}, it wraps lines at @code{fill-column}. If
4261@code{fill-column} is too large for the window, the text is wrapped at the
4262window edge.")
4263 (license license:gpl3+)))
4264
0ef1c223
KM
4265(define-public emacs-writeroom
4266 (package
4267 (name "emacs-writeroom")
4268 (version "3.7")
4269 (source (origin
4270 (method url-fetch)
4271 (uri (string-append
4272 "https://github.com/joostkremers/writeroom-mode/archive/"
4273 version ".tar.gz"))
4274 (file-name (string-append name "-" version ".tar.gz"))
4275 (sha256
4276 (base32
4277 "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
4278 (build-system emacs-build-system)
4279 (propagated-inputs
4280 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
4281 (home-page "https://github.com/joostkremers/writeroom-mode")
4282 (synopsis "Distraction-free writing for Emacs")
4283 (description
4284 "This package defines a minor mode for distraction-free writing. Some of
4285the default effects include entering fullscreen, deleting other windows of the
4286current frame, disabling the mode line, and adding margins to the buffer that
4287restrict the text width to 80 characters.")
4288 (license license:bsd-3)))
4289
65b49ae7
DT
4290(define-public emacs-ido-completing-read+
4291 (package
4292 (name "emacs-ido-completing-read+")
4293 (version "3.12")
4294 (source (origin
4295 (method url-fetch)
4296 (uri (string-append "https://raw.githubusercontent.com"
4297 "/DarwinAwardWinner/ido-ubiquitous/v"
4298 version "/ido-completing-read+.el"))
4299 (file-name (string-append "ido-completing-read+-" version ".el"))
4300 (sha256
4301 (base32
4302 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
4303 (build-system emacs-build-system)
4304 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4305 (synopsis "Replacement for completing-read using ido")
4306 (description
4307 "The ido-completing-read+ function is a wrapper for ido-completing-read.
4308Importantly, it detects edge cases that ordinary ido cannot handle and either
4309adjusts them so ido can handle them, or else simply falls back to the standard
4310Emacs completion function instead.")
4311 (license license:gpl3+)))
529fe992
DT
4312
4313(define-public emacs-ido-ubiquitous
4314 (package
4315 (name "emacs-ido-ubiquitous")
4316 (version "3.12")
4317 (source (origin
4318 (method url-fetch)
4319 (uri (string-append "https://raw.githubusercontent.com"
4320 "/DarwinAwardWinner/ido-ubiquitous/v"
4321 version "/ido-ubiquitous.el"))
4322 (file-name (string-append "ido-ubiquitous-" version ".el"))
4323 (sha256
4324 (base32
4325 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
4326 (build-system emacs-build-system)
4327 (propagated-inputs
4328 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
4329 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
4330 (synopsis "Use ido (nearly) everywhere")
4331 (description
4332 "Ido-ubiquitous enables ido-style completion for almost every function
4333that uses the standard completion function completing-read.")
4334 (license license:gpl3+)))
63de1231
DT
4335
4336(define-public emacs-yaml-mode
4337 (package
4338 (name "emacs-yaml-mode")
847284e1 4339 (version "0.0.13")
63de1231
DT
4340 (source (origin
4341 (method url-fetch)
4342 (uri (string-append "https://raw.githubusercontent.com/yoshiki"
4343 "/yaml-mode/v" version "/yaml-mode.el"))
4344 (file-name (string-append "yaml-mode-" version ".el"))
4345 (sha256
4346 (base32
847284e1 4347 "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
63de1231
DT
4348 (build-system emacs-build-system)
4349 (home-page "https://github.com/yoshiki/yaml-mode")
4350 (synopsis "Major mode for editing YAML files")
4351 (description
4352 "Yaml-mode is an Emacs major mode for editing files in the YAML data
4353serialization format. It was initially developed by Yoshiki Kurihara and many
4354features were added by Marshall Vandegrift. As YAML and Python share the fact
4355that indentation determines structure, this mode provides indentation and
4356indentation command behavior very similar to that of python-mode.")
4357 (license license:gpl3+)))
7529c883
DT
4358
4359(define-public emacs-web-mode
4360 (package
4361 (name "emacs-web-mode")
4362 (version "14")
4363 (source (origin
4364 (method url-fetch)
4365 (uri (string-append "https://raw.githubusercontent.com/fxbois"
4366 "/web-mode/v" version "/web-mode.el"))
4367 (file-name (string-append "web-mode-" version ".el"))
4368 (sha256
4369 (base32
4370 "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5"))))
4371 (build-system emacs-build-system)
4372 (synopsis "Major mode for editing web templates")
4373 (description "Web-mode is an Emacs major mode for editing web templates
4374aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
4375client/server side engines). Web-mode is compatible with many template
4376engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
4377Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
4378Dust.js, React/JSX, Angularjs, ejs, etc.")
4379 (home-page "http://web-mode.org/")
4380 (license license:gpl3+)))
ae609001 4381
814da59f
CB
4382(define-public emacs-wgrep
4383 (package
4384 (name "emacs-wgrep")
4385 (version "2.1.10")
4386 (source (origin
4387 (method url-fetch)
4388 (uri (string-append
4389 "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
4390 version ".tar.gz"))
4391 (file-name (string-append name "-" version ".tar.gz"))
4392 (sha256
4393 (base32
4394 "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
4395 (build-system emacs-build-system)
4396 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
4397 (synopsis "Edit a grep buffer and apply those changes to the files")
4398 (description
4399 "Emacs wgrep allows you to edit a grep buffer and apply those changes to
4400the file buffer.")
4401 (license license:gpl3+)))
4402
ae609001
MJ
4403(define-public emacs-helm
4404 (package
4405 (name "emacs-helm")
e0b0cafd 4406 (version "2.9.0")
ae609001
MJ
4407 (source (origin
4408 (method url-fetch)
4409 (uri (string-append
4410 "https://github.com/" name "/helm/archive/v"
4411 version ".tar.gz"))
4412 (file-name (string-append name "-" version ".tar.gz"))
4413 (sha256
4414 (base32
e0b0cafd 4415 "1798gn0za11cxdbi436javfczv4abniccxcl0jppl463r8lzb8is"))))
ae609001
MJ
4416 (build-system emacs-build-system)
4417 (propagated-inputs
4418 `(("emacs-async" ,emacs-async)
4419 ("emacs-popup" ,emacs-popup)))
4420 (home-page "https://emacs-helm.github.io/helm/")
4421 (synopsis "Incremental completion and selection narrowing
4422framework for Emacs")
4423 (description "Helm is incremental completion and selection narrowing
4424framework for Emacs. It will help steer you in the right direction when
4425you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
4426of @code{anything.el} originally written by Tamas Patrovic and can be
4427considered to be its successor. Helm sets out to clean up the legacy code in
4428@code{anything.el} and provide a cleaner, leaner and more modular tool, that's
4429not tied in the trap of backward compatibility.")
4430 (license license:gpl3+)))
f9be4366 4431
03cc1cf3
KM
4432(define-public emacs-helm-swoop
4433 (package
4434 (name "emacs-helm-swoop")
d3d57661 4435 (version "1.7.4")
03cc1cf3
KM
4436 (source (origin
4437 (method url-fetch)
4438 (uri (string-append
4439 "https://github.com/ShingoFukuyama/helm-swoop/archive/"
4440 version
4441 ".tar.gz"))
4442 (file-name (string-append name "-" version ".tar.gz"))
4443 (sha256
4444 (base32
d3d57661 4445 "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
03cc1cf3
KM
4446 (build-system emacs-build-system)
4447 (propagated-inputs
4448 `(("emacs-helm" ,emacs-helm)))
4449 (home-page "https://github.com/ShingoFukuyama/helm-swoop")
4450 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
4451 (description
4452 "This package builds on the Helm interface to provide several commands
4453for search-based navigation of buffers.")
4454 (license license:gpl2+)))
4455
f69c29f7
KM
4456(define-public emacs-helm-projectile
4457 (package
4458 (name "emacs-helm-projectile")
4459 (version "0.14.0")
4460 (source (origin
4461 (method url-fetch)
4462 (uri (string-append
4463 "https://github.com/bbatsov/helm-projectile/archive/v"
4464 version
4465 ".tar.gz"))
4466 (file-name (string-append name "-" version ".tar.gz"))
4467 (sha256
4468 (base32
4469 "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
4470 (build-system emacs-build-system)
4471 (propagated-inputs
4472 `(("emacs-dash" ,emacs-dash)
4473 ("emacs-helm" ,emacs-helm)
4474 ("emacs-projectile" ,emacs-projectile)))
4475 (home-page "https://github.com/bbatsov/helm-projectile")
4476 (synopsis "Helm integration for Projectile")
4477 (description
4478 "This Emacs library provides a Helm interface for Projectile.")
4479 (license license:gpl3+)))
4480
2e4bb8c8 4481(define-public emacs-helm-make
555a7429 4482 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
2e4bb8c8
OP
4483 (revision "1"))
4484 (package
4485 (name "emacs-helm-make")
4486 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
4487 (source
4488 (origin
4489 (method git-fetch)
4490 (uri (git-reference
4491 (url "https://github.com/abo-abo/helm-make.git")
4492 (commit commit)))
4493 (file-name (string-append name "-" version "-checkout"))
4494 (sha256
4495 (base32
555a7429 4496 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
2e4bb8c8
OP
4497 (build-system emacs-build-system)
4498 (propagated-inputs
4499 `(("emacs-helm" ,emacs-helm)
4500 ("emacs-projectile" ,emacs-projectile)))
4501 (home-page "https://github.com/abo-abo/helm-make")
4502 (synopsis "Select a Makefile target with helm")
4503 (description "@code{helm-make} or @code{helm-make-projectile} will give
4504you a @code{helm} selection of directory Makefile's targets. Selecting a
4505target will call @code{compile} on it.")
4506 (license license:gpl3+))))
4507
f9be4366
AP
4508(define-public emacs-cider
4509 (package
4510 (name "emacs-cider")
1f143575 4511 (version "0.15.1")
f9be4366
AP
4512 (source (origin
4513 (method url-fetch)
4514 (uri (string-append
4515 "https://github.com/clojure-emacs/cider/archive/v"
4516 version ".tar.gz"))
4517 (file-name (string-append name "-" version ".tar.gz"))
4518 (sha256
4519 (base32
1f143575 4520 "1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g"))))
f9be4366 4521 (build-system emacs-build-system)
65e4109c
SB
4522 (arguments
4523 '(#:exclude ; Don't exclude 'cider-test.el'.
4524 '("^\\.dir-locals\\.el$" "^test/")))
f9be4366
AP
4525 (propagated-inputs
4526 `(("emacs-clojure-mode" ,emacs-clojure-mode)
4527 ("emacs-spinner" ,emacs-spinner)
4528 ("emacs-pkg-info" ,emacs-pkg-info)
d0a52052 4529 ("emacs-queue" ,emacs-queue)))
f9be4366
AP
4530 (home-page "https://cider.readthedocs.org/")
4531 (synopsis "Clojure development environment for Emacs")
4532 (description
4533 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
4534provide an interactive development experience similar to the one you'd get
4535when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
4536Geiser) and Smalltalk.
4537
4538CIDER is the successor to the now deprecated combination of using SLIME +
4539swank-clojure for Clojure development.
4540
4541There are plenty of differences between CIDER and SLIME, but the core ideas
4542are pretty much the same (and SLIME served as the principle inspiration for
4543CIDER).")
4544 (license license:gpl3+)))
26e08b4d 4545
e982500f
RW
4546;; There hasn't been a tag or release since 2015, so we take the latest
4547;; commit.
4548(define-public emacs-sly
4549 (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
4550 (revision "1"))
4551 (package
4552 (name "emacs-sly")
4553 (version (string-append "1.0.0-" revision "." (string-take commit 9)))
4554 (source
4555 (origin
4556 (method git-fetch)
4557 (uri (git-reference
4558 (url "https://github.com/joaotavora/sly.git")
4559 (commit commit)))
aeb95f1f 4560 (file-name (git-file-name name version))
e982500f
RW
4561 (sha256
4562 (base32
4563 "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
4564 (build-system emacs-build-system)
4565 (arguments
4566 `(#:include (cons "^lib\\/" %default-include)
4567 #:phases
4568 ;; The package provides autoloads.
4569 (modify-phases %standard-phases
4570 (delete 'make-autoloads))))
4571 (home-page "https://github.com/joaotavora/sly")
4572 (synopsis "Sylvester the Cat's Common Lisp IDE")
4573 (description
4574 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
4575contains the following improvements over it:
4576
4577@enumerate
4578@item Completely redesigned REPL based on Emacs's own full-featured
4579 @code{comint.el}
4580@item Live code annotations via a new @code{sly-stickers} contrib
4581@item Consistent interactive button interface. Everything can be copied to
4582 the REPL.
4583@item Multiple inspectors with independent history
4584@item Regexp-capable @code{M-x sly-apropos}
4585@item Contribs are first class SLY citizens and enabled by default
4586@item Use ASDF to loads contribs on demand.
4587@end enumerate
4588
4589SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
4590xref, etc...) are still available, but with better integration.")
4591 (license license:gpl3+))))
4592
26e08b4d 4593(define-public emacs-lua-mode
69dcad33
AW
4594 (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
4595 (revision "1"))
4596 (package
4597 (name "emacs-lua-mode")
4598 (version (string-append "20151025." revision "-" (string-take commit 9)))
4599 (home-page "https://github.com/immerrr/lua-mode/")
4600 (source (origin
4601 (method git-fetch)
4602 (uri (git-reference
4603 (url home-page)
4604 (commit commit)))
4605 (file-name (string-append name "-" version ".checkout"))
4606 (sha256
4607 (base32
4608 "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
4609 (build-system emacs-build-system)
4610 (synopsis "Major mode for lua")
4611 (description
4612 "This Emacs package provides a mode for @uref{https://www.lua.org/,
26e08b4d 4613Lua programing language}.")
69dcad33 4614 (license license:gpl2+))))
0202612d 4615
4616(define-public emacs-ebuild-mode
4617 (package
4618 (name "emacs-ebuild-mode")
4735393a 4619 (version "1.37")
0202612d 4620 (source (origin
4621 (method url-fetch)
4622 (uri (string-append
4623 "https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
4624 "-" version ".tar.xz"))
4625 (file-name (string-append name "-" version ".tar.xz"))
4626 (sha256
4627 (base32
4735393a 4628 "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp"))))
0202612d 4629 (build-system emacs-build-system)
4630 (home-page "https://devmanual.gentoo.org")
4631 (synopsis "Major modes for Gentoo package files")
4632 (description
4633 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
4634news items, openrc and runscripts.")
4635 (license license:gpl2+)))
a9fbe94e 4636
2edbfbf5 4637(define-public emacs-evil
4638 (package
4639 (name "emacs-evil")
511d8a02 4640 (version "1.2.13")
2edbfbf5 4641 (source
4642 (origin
4643 (method url-fetch)
511d8a02 4644 (uri (string-append "https://github.com/emacs-evil/evil/archive/"
4645 version ".tar.gz"))
4646 (file-name (string-append name "-" version ".tar.gz"))
2edbfbf5 4647 (sha256
4648 (base32
511d8a02 4649 "1z63zsxmsc6mh74wv6065carwqmgs7b7lz5044s12xvgsjfbwi8h"))))
2edbfbf5 4650 (build-system emacs-build-system)
4651 (propagated-inputs
4652 `(("emacs-undo-tree" ,emacs-undo-tree)
4653 ("emacs-goto-chg" ,emacs-goto-chg)))
511d8a02 4654 (home-page "https://github.com/emacs-evil/evil")
2edbfbf5 4655 (synopsis "Extensible Vi layer for Emacs")
4656 (description
4657 "Evil is an extensible vi layer for Emacs. It emulates the
4658main features of Vim, and provides facilities for writing custom
4659extensions.")
4660 (license license:gpl3+)))
4661
a0bee5e7
PN
4662(define-public emacs-evil-collection
4663 (let ((commit "f40704a57fd33b4bfad64147a2b771fc8961fdfc")
4664 (revision "1"))
4665 (package
4666 (name "emacs-evil-collection")
4667 (version (git-version "20180425" revision commit))
4668 (source (origin
4669 (method git-fetch)
4670 (uri (git-reference
4671 (url "https://github.com/emacs-evil/evil-collection")
4672 (commit commit)))
4673 (file-name (string-append name "-" version "-checkout"))
4674 (sha256
4675 (base32
4676 "0qn19k0f3isnbi1hkmcf3qjxbyvp23m5ak5ny7623qgwb2nwz1l5"))))
4677 (build-system emacs-build-system)
4678 (propagated-inputs
4679 `(("emacs-evil" ,emacs-evil)))
4680 (home-page "https://github.com/emacs-evil/evil-collection")
4681 (synopsis "Collection of Evil bindings for many major and minor modes")
4682 (description "This is a collection of Evil bindings for the parts of
4683Emacs that Evil does not cover properly by default, such as @code{help-mode},
4684@code{M-x calendar}, Eshell and more.")
4685 (license license:gpl3+))))
4686
ce74e520 4687(define-public emacs-goto-chg
4688 (package
4689 (name "emacs-goto-chg")
4690 (version "1.6")
4691 (source
4692 (origin
4693 (method url-fetch)
4694 ;; There is no versioned source.
4695 (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
6669a932 4696 (file-name (string-append "goto-chg-" version ".el"))
ce74e520 4697 (sha256
4698 (base32
4699 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
4700 (build-system emacs-build-system)
4701 ;; There is no other home page.
4702 (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
4703 (synopsis "Go to the last change in the Emacs buffer")
4704 (description
4705 "This package provides @code{M-x goto-last-change} command that goes to
4706the point of the most recent edit in the current Emacs buffer. When repeated,
4707go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
4708used for reverse direction.")
4709 (license license:gpl2+)))
4710
a1eba1be
VD
4711(define-public emacs-monroe
4712 (package
4713 (name "emacs-monroe")
b125649a 4714 (version "0.3.1")
a1eba1be
VD
4715 (source
4716 (origin
4717 (method url-fetch)
b125649a
VD
4718 (uri (string-append "https://github.com/sanel/monroe/archive/"
4719 version ".tar.gz"))
4720 (file-name (string-append name "-" version ".tar.gz"))
a1eba1be
VD
4721 (sha256
4722 (base32
b125649a 4723 "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
a1eba1be 4724 (build-system emacs-build-system)
b125649a 4725 (home-page "https://github.com/sanel/monroe")
a1eba1be
VD
4726 (synopsis "Clojure nREPL client for Emacs")
4727 (description
4728 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
4729distribution, primarily targeting Clojure users")
4730 (license license:gpl3+)))
4731
32034405
NG
4732(define-public emacs-orgalist
4733 (package
4734 (name "emacs-orgalist")
4735 (version "1.7")
4736 (source
4737 (origin
4738 (method url-fetch)
4739 (uri (string-append "https://elpa.gnu.org/packages/"
4740 "orgalist-" version ".el"))
4741 (sha256
4742 (base32
4743 "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr"))))
4744 (build-system emacs-build-system)
4745 (home-page "http://elpa.gnu.org/packages/orgalist.html")
4746 (synopsis "Manage Org-like lists in non-Org buffers")
4747 (description "Write Org mode's plain lists in non-Org buffers. More
4748specifically, Orgalist supports the syntax of Org mode for numbered,
4749unnumbered, description items, checkboxes, and counter cookies.
4750
4751The library also implements radio lists, i.e., lists written in Org
40dc6df4 4752syntax later translated into the host format, e.g., LaTeX or HTML.")
32034405
NG
4753 (license license:gpl3+)))
4754
a9fbe94e
LC
4755(define-public emacs-writegood-mode
4756 (package
4757 (name "emacs-writegood-mode")
4758 (version "2.0.2")
7bf837fd 4759 (home-page "https://github.com/bnbeckwith/writegood-mode")
a9fbe94e
LC
4760 (source (origin
4761 (method git-fetch)
4762 (uri (git-reference
4763 (url home-page)
4764 (commit (string-append "v" version))))
4765 (sha256
4766 (base32
4767 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
4768 (file-name (string-append name "-checkout"))))
4769 (build-system emacs-build-system)
4770 (synopsis "Polish up poor writing on the fly")
4771 (description
4772 "This minor mode tries to find and highlight problems with your writing
4773in English as you type. It primarily detects \"weasel words\" and abuse of
4774passive voice.")
4775 (license license:gpl3+)))
e08ca4b9 4776
4777(define-public emacs-neotree
4778 (package
4779 (name "emacs-neotree")
95058772 4780 (version "0.5.2")
e08ca4b9 4781 (home-page "https://github.com/jaypei/emacs-neotree")
4782 (source (origin
4783 (method url-fetch)
4784 (uri (string-append
4785 "https://github.com/jaypei/" name
95058772 4786 "/archive/" version ".tar.gz"))
e08ca4b9 4787 (sha256
4788 (base32
95058772 4789 "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
f409d0aa 4790 (file-name (string-append name "-" version ".tar.gz"))))
e08ca4b9 4791 (build-system emacs-build-system)
4792 (synopsis "Folder tree view for Emacs")
4793 (description "This Emacs package provides a folder tree view.")
4794 (license license:gpl3+)))
59065bb3
NG
4795
4796(define-public emacs-org
4797 (package
4798 (name "emacs-org")
769e7155
CL
4799 ;; emacs-org-contrib inherits from this package. Please update its sha256
4800 ;; checksum as well.
90735611 4801 (version "9.1.13")
59065bb3
NG
4802 (source (origin
4803 (method url-fetch)
2d19a7e4 4804 (uri (string-append "http://elpa.gnu.org/packages/org-"
59065bb3
NG
4805 version ".tar"))
4806 (sha256
4807 (base32
90735611 4808 "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr"))))
59065bb3 4809 (build-system emacs-build-system)
7cbe77d7 4810 (home-page "https://orgmode.org/")
59065bb3
NG
4811 (synopsis "Outline-based notes management and organizer")
4812 (description "Org is an Emacs mode for keeping notes, maintaining TODO
90735611
NG
4813lists, and project planning with a fast and effective lightweight markup
4814language. It also is an authoring system with unique support for literate
4815programming and reproducible research.")
59065bb3 4816 (license license:gpl3+)))
41392b9a 4817
8e2ae7ee
CB
4818(define-public emacs-org-contrib
4819 (package
4820 (inherit emacs-org)
4821 (name "emacs-org-contrib")
90735611 4822 (version "20180507")
8e2ae7ee
CB
4823 (source (origin
4824 (method url-fetch)
7cbe77d7 4825 (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
5ecd2d28 4826 version ".tar"))
8e2ae7ee
CB
4827 (sha256
4828 (base32
90735611 4829 "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
8e2ae7ee
CB
4830 (arguments
4831 `(#:modules ((guix build emacs-build-system)
4832 (guix build utils)
4833 (guix build emacs-utils)
4834 (ice-9 ftw)
4835 (srfi srfi-1))
4836 #:phases
4837 (modify-phases %standard-phases
4838 (add-after 'install 'delete-org-files
4839 (lambda* (#:key inputs outputs #:allow-other-keys)
4840 (let* ((out (assoc-ref outputs "out"))
4841 (org (assoc-ref inputs "emacs-org"))
4842 (contrib-files
4843 (map basename (find-files out)))
4844 (org+contrib-files
4845 (map basename (find-files org)))
4846 (duplicates (lset-intersection
4847 string=? contrib-files org+contrib-files)))
4848 (with-directory-excursion
4849 (string-append
5ecd2d28 4850 out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version)
8e2ae7ee
CB
4851 (for-each delete-file duplicates))
4852 #t))))))
4853 (propagated-inputs
0b8823d8
MC
4854 `(("emacs-org" ,emacs-org)
4855 ("emacs-scel" ,emacs-scel)))
35377cfa 4856 (synopsis "Contributed packages to Org mode")
8e2ae7ee
CB
4857 (description "Org is an Emacs mode for keeping notes, maintaining TODO
4858lists, and project planning with a fast and effective plain-text system.
4859
77e3ce3e 4860This package is equivalent to org-plus-contrib, but only includes additional
8e2ae7ee
CB
4861files that you would find in @file{contrib/} from the git repository.")))
4862
41392b9a 4863(define-public emacs-flx
4864 (package
4865 (name "emacs-flx")
4866 (version "0.6.1")
4867 (source
4868 (origin
4869 (method url-fetch)
4870 (uri (string-append "https://github.com/lewang/"
4871 "flx/archive/v" version ".tar.gz"))
4872 (sha256
4873 (base32
4874 "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
4875 (file-name (string-append name "-" version ".tar.gz"))))
4876 (build-system emacs-build-system)
4877 (home-page "https://github.com/lewang/flx")
4878 (synopsis "Fuzzy matching for Emacs")
4879 (description
4880 "Flx provides fuzzy matching for emacs a la sublime text.
4881The sorting algorithm is a balance between word beginnings (abbreviation)
4882and contiguous matches (substring). The longer the substring match,
4883the higher it scores. This maps well to how we think about matching.
4884Flx has support for ido (interactively do things) through flx-ido.")
4885 (license license:gpl3+)))
9657aba4 4886
4887(define-public emacs-cyberpunk-theme
4888 (package
4889 (name "emacs-cyberpunk-theme")
88e6086e 4890 (version "1.19")
9657aba4 4891 (source
4892 (origin
4893 (method url-fetch)
4894 (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
4895 "archive/" version ".tar.gz"))
4896 (sha256
4897 (base32
88e6086e 4898 "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
9657aba4 4899 (file-name (string-append name "-" version ".tar.gz"))))
4900 (build-system emacs-build-system)
4901 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
4902 (synopsis "Cyberpunk theme for emacs built-in color theme support")
4903 (description
4904 "Cyberpunk color theme for the emacs 24+ built-in color theme support
4905known loosely as deftheme. Many mode-specific customizations are included.")
4906 (license license:gpl3+)))
840224aa 4907
8f493950 4908(define-public emacs-danneskjold-theme
4909 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
4910 (revision "1"))
4911 (package
4912 (name "emacs-danneskjold-theme")
4913 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4914 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
4915 (source
4916 (origin
4917 (method git-fetch)
4918 (uri (git-reference
4919 (url home-page)
4920 (commit commit)))
4921 (file-name (string-append name "-" version "-checkout"))
4922 (sha256
4923 (base32
4924 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
4925 (build-system emacs-build-system)
4926 (arguments
4927 `(#:phases
4928 (modify-phases %standard-phases
4929 (add-after 'unpack 'delete-screenshots
4930 (lambda _
4931 (delete-file-recursively "screenshots") #t)))))
4932 (synopsis "High-contrast Emacs theme")
4933 (description
4934 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
4935 (license license:gpl3+))))
4936
1ba67b62 4937(define-public emacs-dream-theme
4938 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
4939 (revision "1"))
4940 (package
4941 (name "emacs-dream-theme")
4942 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
4943 (source
4944 (origin
4945 (method git-fetch)
4946 (uri (git-reference
4947 (url "https://github.com/djcb/dream-theme")
4948 (commit commit)))
4949 (file-name (string-append name "-" version "-checkout"))
4950 (sha256
4951 (base32
4952 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
4953 (build-system emacs-build-system)
4954 (home-page "https://github.com/djcb/dream-theme")
4955 (synopsis "High-contrast Emacs theme")
4956 (description
4957 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
4958by zenburn, sinburn and similar themes, but slowly diverging from them.")
4959 (license license:gpl3+))))
4960
840224aa 4961(define-public emacs-auto-complete
4962 (package
4963 (name "emacs-auto-complete")
4964 (version "1.5.1")
4965 (source
4966 (origin
4967 (method url-fetch)
4968 (uri (string-append "https://github.com/auto-complete/"
4969 "auto-complete/archive/v" version ".tar.gz"))
4970 (sha256
4971 (base32
4972 "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
4973 (file-name (string-append name "-" version ".tar.gz"))))
4974 (build-system emacs-build-system)
4975 (propagated-inputs
4976 `(("emacs-popup" ,emacs-popup)))
4977 (home-page "https://github.com/auto-complete/auto-complete")
4978 (synopsis "Intelligent auto-completion extension for Emacs")
4979 (description
4980 "Auto-Complete is an intelligent auto-completion extension for Emacs.
4981It extends the standard Emacs completion interface and provides an environment
4982that allows users to concentrate more on their own work. Its features are:
4983a visual interface, reduce overhead of completion by using statistic method,
4984extensibility.")
4985 (license license:gpl3+)))
154c71e0
AI
4986
4987(define-public m17n-db
4988 (package
4989 (name "m17n-db")
4990 (version "1.7.0")
4991 (source
4992 (origin
4993 (method url-fetch)
4994 (uri (string-append "mirror://savannah/m17n/m17n-db-"
4995 version ".tar.gz"))
4996 (sha256
4997 (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2"))))
4998 (build-system gnu-build-system)
4999 (inputs
7c90d0f4 5000 `(("gettext" ,gettext-minimal)))
154c71e0
AI
5001 (arguments
5002 `(#:configure-flags
5003 (list (string-append "--with-charmaps="
5004 (assoc-ref %build-inputs "libc")
5005 "/share/i18n/charmaps"))))
5006 ;; With `guix lint' the home-page URI returns a small page saying
5007 ;; that your browser does not handle frames. This triggers the "URI
5008 ;; returns suspiciously small file" warning.
340978d7 5009 (home-page "https://www.nongnu.org/m17n/")
154c71e0
AI
5010 (synopsis "Multilingual text processing library (database)")
5011 (description "The m17n library realizes multilingualization of
5012many aspects of applications. The m17n library represents
5013multilingual text as an object named M-text. M-text is a string with
5014attributes called text properties, and designed to substitute for
5015string in C. Text properties carry any information required to input,
5016display and edit the text.
5017
5018This package contains the library database.")
5019 (license license:lgpl2.1+)))
a80b60f4
AI
5020
5021(define-public m17n-lib
5022 (package
5023 (name "m17n-lib")
5024 (version "1.7.0")
5025 (source
5026 (origin
5027 (method url-fetch)
966a543b
LC
5028 (uri (string-append "mirror://savannah/m17n/m17n-lib-"
5029 version ".tar.gz"))
a80b60f4
AI
5030 (sha256
5031 (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f"))))
5032 (build-system gnu-build-system)
5033 (inputs
5034 `(("fribidi" ,fribidi)
5035 ("gd" ,gd)
5036 ("libotf" ,libotf)
5037 ("libxft" ,libxft)
5038 ("libxml2" ,libxml2)
5039 ("m17n-db" ,m17n-db)))
5040 (arguments
5041 `(#:parallel-build? #f))
5042 ;; With `guix lint' the home-page URI returns a small page saying
5043 ;; that your browser does not handle frames. This triggers the "URI
5044 ;; returns suspiciously small file" warning.
340978d7 5045 (home-page "https://www.nongnu.org/m17n/")
a80b60f4
AI
5046 (synopsis "Multilingual text processing library (runtime)")
5047 (description "The m17n library realizes multilingualization of
5048many aspects of applications. The m17n library represents
5049multilingual text as an object named M-text. M-text is a string with
5050attributes called text properties, and designed to substitute for
5051string in C. Text properties carry any information required to input,
5052display and edit the text.
5053
5054This package contains the library runtime.")
5055 (license license:lgpl2.1+)))
71d3ee1c
AI
5056
5057(define-public emacs-nginx-mode
5058 (package
5059 (name "emacs-nginx-mode")
5060 (version "1.1.4")
5061 (source
5062 (origin
5063 (method url-fetch)
5064 (uri (string-append
5065 "https://github.com/ajc/nginx-mode/archive/v"
5066 version ".tar.gz"))
5067 (file-name (string-append name "-" version ".tar.gz"))
5068 (sha256
5069 (base32
5070 "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
5071 (build-system emacs-build-system)
5072 (home-page "https://github.com/ajc/nginx-mode")
5073 (synopsis "Emacs major mode for editing nginx config files")
5074 (description "This package provides an Emacs major mode for
5075editing nginx config files.")
5076 (license license:gpl2+)))
8f50634b
FB
5077
5078(define-public emacs-stream
5079 (package
5080 (name "emacs-stream")
5081 (version "2.2.0")
5082 (home-page "https://github.com/NicolasPetton/stream")
5083 (source
5084 (origin
5085 (method url-fetch)
5086 (file-name (string-append name "-" version ".tar.gz"))
5087 (uri (string-append home-page "/archive/"version ".tar.gz"))
5088 (sha256
5089 (base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
5090 (build-system emacs-build-system)
5091 (synopsis "Implementation of streams for Emacs")
5092 (description "This library provides an implementation of streams for Emacs.
5093Streams are implemented as delayed evaluation of cons cells.")
5094 (license license:gpl3+)))
0fc06f3e
FB
5095
5096(define-public emacs-el-search
5097 (let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
5098 (revision "1"))
5099 (package
5100 (name "emacs-el-search")
5101 ;; No ufficial release.
5102 (version (string-append "0.0-" revision "." (string-take commit 7)))
5103 (home-page "https://github.com/emacsmirror/el-search")
5104 (source
5105 (origin
5106 (method git-fetch)
5107 (file-name (string-append name "-" version ".tar.gz"))
5108 (uri (git-reference
5109 (commit commit)
5110 (url (string-append home-page ".git"))))
5111 (sha256
5112 (base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
5113 (build-system emacs-build-system)
5114 (inputs `(("emacs-stream" ,emacs-stream)))
5115 (synopsis "Expression based interactive search for emacs-lisp-mode")
5116 (description "This package provides expression based interactive search
5117procedures for emacs-lisp-mode.")
5118 (license license:gpl3+))))
1e523180
MO
5119
5120(define-public emacs-ht
5121 (package
5122 (name "emacs-ht")
5123 (version "2.1")
5124 (source
5125 (origin
5126 (method url-fetch)
5127 (uri (string-append
5128 "https://github.com/Wilfred/ht.el/archive/"
5129 version ".tar.gz"))
5130 (file-name (string-append name "-" version ".tar.gz"))
5131 (sha256
5132 (base32
5133 "1lpba36kzxcc966fvsbrfpy8ah9gnvay0yk26gbyjil0rggrbqzj"))))
5134 (build-system emacs-build-system)
5135 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
5136 (home-page "https://github.com/Wilfred/ht.el")
5137 (synopsis "Hash table library for Emacs")
5138 (description
5139 "This package simplifies the use of hash tables in elisp. It also
5140provides functions to convert hash tables from and to alists and plists.")
5141 (license license:gpl3+)))
5142
521f5d96
MO
5143(define-public emacs-log4e
5144 (package
5145 (name "emacs-log4e")
5146 (version "0.3.0")
5147 (source
5148 (origin
5149 (method url-fetch)
5150 (uri (string-append
5151 "https://github.com/aki2o/log4e/archive/v"
5152 version ".tar.gz"))
5153 (file-name (string-append name "-" version ".tar.gz"))
5154 (sha256
5155 (base32
5156 "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
5157 (build-system emacs-build-system)
5158 (arguments
5159 `(#:phases
5160 (modify-phases %standard-phases
5161 (add-after 'unpack 'remove-tests
5162 ;; Guile builder complains about null characters in some
5163 ;; strings of test files. Remove "test" directory (it is not
5164 ;; needed anyway).
5165 (lambda _
5166 (delete-file-recursively "test"))))))
5167 (home-page "https://github.com/aki2o/log4e")
5168 (synopsis "Logging framework for elisp")
5169 (description
5170 "This package provides a logging framework for elisp. It allows
5171you to deal with multiple log levels.")
5172 (license license:gpl3+)))
ba117841
MO
5173
5174(define-public emacs-gntp
5175 (package
5176 (name "emacs-gntp")
5177 (version "0.1")
5178 (source
5179 (origin
5180 (method url-fetch)
5181 (uri (string-append
5182 "https://github.com/tekai/gntp.el/archive/v"
5183 version ".tar.gz"))
5184 (file-name (string-append name "-" version ".tar.gz"))
5185 (sha256
5186 (base32
5187 "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
5188 (build-system emacs-build-system)
5189 (home-page "https://github.com/tekai/gntp.el")
5190 (synopsis "Growl Notification Protocol for Emacs")
5191 (description
5192 "This package implements the Growl Notification Protocol GNTP
5193described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
5194It is incomplete as it only lets you send but not receive
5195notifications.")
5196 (license license:bsd-3)))
2c5e31fa
MO
5197
5198(define-public emacs-alert
5199 (package
5200 (name "emacs-alert")
5201 (version "1.2")
5202 (source
5203 (origin
5204 (method url-fetch)
5205 (uri (string-append
5206 "https://github.com/jwiegley/alert/archive/v"
5207 version ".tar.gz"))
5208 (file-name (string-append name "-" version ".tar.gz"))
5209 (sha256
5210 (base32
5211 "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
5212 (build-system emacs-build-system)
5213 (propagated-inputs
5214 `(("emacs-gntp" ,emacs-gntp)
5215 ("emacs-log4e" ,emacs-log4e)))
5216 (home-page "https://github.com/jwiegley/alert")
5217 (synopsis "Growl-style notification system for Emacs")
5218 (description
5219 "Alert is a Growl-workalike for Emacs which uses a common notification
5220interface and multiple, selectable \"styles\", whose use is fully
5221customizable by the user.")
5222 (license license:gpl2+)))
c695ed3c
MO
5223
5224(define-public emacs-mu4e-alert
5225 (package
5226 (name "emacs-mu4e-alert")
dd69ff6d 5227 (version "1.0")
c695ed3c
MO
5228 (source
5229 (origin
5230 (method url-fetch)
5231 (uri (string-append
5232 "https://github.com/iqbalansari/mu4e-alert/archive/v"
5233 version ".tar.gz"))
5234 (file-name (string-append name "-" version ".tar.gz"))
5235 (sha256
5236 (base32
dd69ff6d 5237 "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
c695ed3c
MO
5238 (build-system emacs-build-system)
5239 (propagated-inputs
5240 `(("emacs-alert" ,emacs-alert)
5241 ("emacs-s" ,emacs-s)
b6efe0e8
MC
5242 ("emacs-ht" ,emacs-ht)
5243 ("mu" ,mu)))
c695ed3c
MO
5244 (home-page "https://github.com/iqbalansari/mu4e-alert")
5245 (synopsis "Desktop notification for mu4e")
5246 (description
5247 "This package provides desktop notifications for mu4e.
5248Additionally it can display the number of unread emails in the
5249mode-line.")
5250 (license license:gpl3+)))
e967dd9c 5251
5252(define-public emacs-pretty-mode
5253 (package
5254 (name "emacs-pretty-mode")
5255 (version "2.0.3")
5256 (source
5257 (origin
5258 (method url-fetch)
5259 (uri (string-append "https://github.com/akatov/pretty-mode/"
5260 "archive/" version ".tar.gz"))
5261 (file-name (string-append name "-" version ".tar.gz"))
5262 (sha256
5263 (base32
5264 "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
5265 (build-system emacs-build-system)
5266 (home-page "https://github.com/akatov/pretty-mode")
5267 (synopsis "Redisplay parts of the buffer as Unicode symbols")
5268 (description
5269 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
5270 (license license:gpl3+)))
c1029f86
RW
5271
5272(define-public emacs-yasnippet
5273 (package
5274 (name "emacs-yasnippet")
bf1264ab 5275 (version "0.12.2")
c1029f86
RW
5276 (source (origin
5277 (method url-fetch)
5278 (uri (string-append "https://github.com/joaotavora/yasnippet/"
5279 "archive/" version ".tar.gz"))
5280 (file-name (string-append name "-" version ".tar.gz"))
5281 (sha256
5282 (base32
bf1264ab 5283 "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
1f0d4705
KM
5284 (modules '((guix build utils)))
5285 (snippet
5286 '(begin
5287 ;; YASnippet expects a "snippets" subdirectory in the same
5288 ;; directory as yasnippet.el, but we don't install it
5289 ;; because it's a git submodule pointing to an external
5290 ;; repository. Adjust `yas-snippet-dirs' to prevent
5291 ;; warnings about a missing directory.
5292 (substitute* "yasnippet.el"
5293 (("^ +'yas-installed-snippets-dir\\)\\)\n")
5294 "))\n"))))))
c1029f86 5295 (build-system emacs-build-system)
7bf837fd 5296 (home-page "https://github.com/joaotavora/yasnippet")
c1029f86
RW
5297 (synopsis "Yet another snippet extension for Emacs")
5298 (description
5299 "YASnippet is a template system for Emacs. It allows you to type an
5300abbreviation and automatically expand it into function templates.")
5301 (license license:gpl3+)))
55fa5349 5302
4bfdf034
KM
5303(define-public emacs-yasnippet-snippets
5304 (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
5305 (revision "1"))
5306 (package
5307 (name "emacs-yasnippet-snippets")
5308 (version (string-append "1-" revision "." (string-take commit 8)))
5309 (source
5310 (origin
5311 (method git-fetch)
5312 (uri (git-reference
5313 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
5314 (commit commit)))
5315 (file-name (string-append name "-" version "-checkout"))
5316 (sha256
5317 (base32
5318 "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
5319 (build-system trivial-build-system)
5320 (arguments
5321 `(#:modules ((ice-9 ftw)
5322 (ice-9 regex)
5323 (guix build utils))
5324 #:builder
5325 (begin
5326 (use-modules (ice-9 ftw)
5327 (ice-9 regex)
5328 (guix build utils))
5329 (with-directory-excursion (assoc-ref %build-inputs "source")
5330 (for-each (lambda (dir)
5331 (copy-recursively
5332 dir
5333 (string-append %output
5334 "/share/emacs/yasnippet-snippets/"
5335 dir)))
5336 (scandir "." (lambda (fname)
5337 (and (string-match "-mode$" fname)
5338 (directory-exists? fname)))))))))
5339 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
5340 (synopsis "Collection of YASnippet snippets for many languages")
5341 (description
5342 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
5343the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
5344To make YASnippet aware of these snippets, add the above directory to
5345@code{yas-snippet-dirs}.")
5346 (license license:expat))))
5347
2ede8c61
OP
5348(define-public emacs-helm-c-yasnippet
5349 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
5350 (revision "1"))
5351 (package
5352 (name "emacs-helm-c-yasnippet")
5353 (version (string-append "0.6.7" "-" revision "."
5354 (string-take commit 7)))
5355 (source (origin
5356 (method git-fetch)
5357 (uri (git-reference
5358 (url "https://github.com/emacs-jp/helm-c-yasnippet")
5359 (commit commit)))
5360 (file-name (string-append name "-" version "-checkout"))
5361 (sha256
5362 (base32
5363 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
5364 (build-system emacs-build-system)
5365 (propagated-inputs
5366 `(("emacs-helm" ,emacs-helm)
5367 ("emacs-yasnippet" ,emacs-yasnippet)))
5368 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
5369 (synopsis "Helm integration for Yasnippet")
5370 (description "This Emacs library provides Helm interface for
5371Yasnippet.")
5372 (license license:gpl2+))))
5373
b889df27
PN
5374(define-public emacs-helm-system-packages
5375 (let ((commit "986b7bd360a705053500c4ce2c9bea03dd7b24a6")
5376 (revision "1"))
5377 (package
5378 (name "emacs-helm-system-packages")
5379 (version (git-version "1.9.0" revision commit))
5380 (source (origin
5381 (method git-fetch)
5382 (uri (git-reference
5383 (url "https://github.com/emacs-helm/helm-system-packages")
5384 (commit commit)))
5385 (file-name (string-append name "-" version "-checkout"))
5386 (sha256
5387 (base32
5388 "19iklhpxgh5xx6h4dysf58nd46lmyb46xj601lf7kbwl6yq0y61f"))))
5389 (build-system emacs-build-system)
5390 (propagated-inputs
5391 `(("emacs-helm" ,emacs-helm)))
5392 (home-page "https://github.com/emacs-helm/helm-system-packages")
5393 (synopsis "Helm System Packages is an interface to your package manager")
5394 (description "List all available packages in Helm (with installed
5395packages displayed in their own respective face). Fuzzy-search, mark and
5396execute the desired action over any selections of packages: Install,
5397uninstall, display packages details (in Org Mode) or insert details at point,
5398find files owned by packages... And much more, including performing all the
5399above over the network.")
5400 (license license:gpl3+))))
5401
55fa5349
AI
5402(define-public emacs-memoize
5403 (package
1848cdfb
AI
5404 (name "emacs-memoize")
5405 (version "1.1")
5406 (source
5407 (origin
5408 (method url-fetch)
5409 (uri (string-append
5410 "https://github.com/skeeto/emacs-memoize/archive/"
5411 version ".tar.gz"))
5412 (file-name (string-append name "-" version ".tar.gz"))
5413 (sha256
5414 (base32
5415 "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
5416 (build-system emacs-build-system)
5417 (arguments
5418 `(#:tests? #t
5419 #:test-command '("emacs" "--batch"
5420 "-l" "memoize-test.el"
5421 "-f" "ert-run-tests-batch-and-exit")))
5422 (home-page "https://github.com/skeeto/emacs-memoize")
5423 (synopsis "Emacs lisp memoization library")
5424 (description "@code{emacs-memoize} is an Emacs library for
55fa5349 5425memoizing functions.")
1848cdfb 5426 (license license:unlicense)))
6b7e3362 5427
c86c1991
AI
5428(define-public emacs-linum-relative
5429 (package
5430 (name "emacs-linum-relative")
5431 (version "0.5")
5432 (source
5433 (origin
5434 (method url-fetch)
5435 (uri (string-append
5436 "https://github.com/coldnew/linum-relative/archive/"
5437 version ".tar.gz"))
5438 (file-name (string-append name "-" version ".tar.gz"))
5439 (sha256
5440 (base32
5441 "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
5442 (build-system emacs-build-system)
5443 (home-page "https://github.com/coldnew/linum-relative")
5444 (synopsis "Relative line numbering for Emacs")
5445 (description "@code{emacs-linum-relative} displays the relative line
5446number on the left margin in Emacs.")
5447 (license license:gpl2+)))
5448
6b7e3362
VD
5449(define-public emacs-idle-highlight
5450 (package
5451 (name "emacs-idle-highlight")
5452 (version "1.1.3")
5453 (source
5454 (origin
5455 (method url-fetch)
5456 (uri (string-append
5457 "https://github.com/nonsequitur/idle-highlight-mode/archive/"
5458 version ".tar.gz"))
5459 (file-name (string-append name "-" version ".tar.gz"))
5460 (sha256
5461 (base32
5462 "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
5463 (build-system emacs-build-system)
5464 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
d1e4ad1b 5465 (synopsis "Highlights all occurrences of the word the point is on")
6b7e3362
VD
5466 (description
5467 "This Emacs package provides @code{idle-highlight-mode} that sets
d1e4ad1b 5468 an idle timer to highlight all occurrences in the buffer of the word under
6b7e3362
VD
5469 the point.")
5470 (license license:gpl3+)))
6a91c5f2
VD
5471
5472(define-public emacs-ox-twbs
5473 (package
5474 (name "emacs-ox-twbs")
5475 (version "1.1.1")
5476 (source
5477 (origin
5478 (method url-fetch)
5479 (uri (string-append
5480 "https://github.com/marsmining/ox-twbs/archive/v"
5481 version ".tar.gz"))
5482 (file-name (string-append name "-" version ".tar.gz"))
5483 (sha256
5484 (base32
5485 "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
5486 (build-system emacs-build-system)
5487 (home-page "https://github.com/marsmining/ox-twbs")
5488 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
5489 (description
5490 "This Emacs package outputs your org-mode docs with a simple, clean and
5491modern look. It implements a new HTML back-end for exporting org-mode docs as
5492HTML compatible with Twitter Bootstrap. By default, HTML is exported with
5493jQuery and Bootstrap resources included via osscdn.")
5494 (license license:gpl3+)))
239cf024
VD
5495
5496(define-public emacs-highlight-sexp
5497 (package
5498 (name "emacs-highlight-sexp")
5499 (version "1.0")
5500 (source
5501 (origin
5502 (method url-fetch)
5503 (uri (string-append
5504 "https://github.com/daimrod/highlight-sexp/archive/v"
5505 version ".tar.gz"))
5506 (file-name (string-append name "-" version ".tar.gz"))
5507 (sha256
5508 (base32
5509 "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
5510 (build-system emacs-build-system)
5511 (home-page "https://github.com/daimrod/highlight-sexp")
5512 (synopsis "Minor mode that highlights the s-exp at the current position")
5513 (description
5514 "This Emacs package highlights the s-exp at the current position.")
5515 (license license:gpl3+)))
350cfccb 5516
7a452689
OP
5517(define-public emacs-highlight-stages
5518 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
5519 (revision "1"))
5520 (package
5521 (name "emacs-highlight-stages")
5522 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
5523 (source
5524 (origin
5525 (method git-fetch)
5526 (uri (git-reference
5527 (url "https://github.com/zk-phi/highlight-stages.git")
5528 (commit commit)))
5529 (file-name (string-append name "-" version "-checkout"))
5530 (sha256
5531 (base32
5532 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
5533 (patches
5534 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
5535 (build-system emacs-build-system)
5536 (home-page "https://github.com/wigust/highlight-stages")
5537 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
5538 (description "@code{highlight-stages} provides an Emacs minor mode that
5539highlights quasi-quoted expressions.")
5540 (license license:gpl3+))))
5541
acf7d4a7
KK
5542(define-public emacspeak
5543 (package
5544 (name "emacspeak")
147d42fc 5545 (version "47.0")
acf7d4a7
KK
5546 (source
5547 (origin
5548 (method url-fetch)
5549 (uri (string-append
5550 "https://github.com/tvraman/emacspeak/releases/download/"
5551 version "/emacspeak-" version ".tar.bz2"))
5552 (sha256
5553 (base32
147d42fc 5554 "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
acf7d4a7
KK
5555 (build-system gnu-build-system)
5556 (arguments
5557 '(#:make-flags (list (string-append "prefix="
5558 (assoc-ref %outputs "out")))
5559 #:phases
5560 (modify-phases %standard-phases
5561 (replace 'configure
231e48d6
KK
5562 (lambda _
5563 ;; Configure Emacspeak according to etc/install.org.
147d42fc 5564 (setenv "SHELL" (which "sh"))
acf7d4a7 5565 (zero? (system* "make" "config"))))
231e48d6
KK
5566 (add-after 'build 'build-espeak
5567 (lambda _
5568 (zero? (system* "make" "espeak"))))
5569 (replace 'install
acf7d4a7 5570 (lambda* (#:key outputs #:allow-other-keys)
231e48d6
KK
5571 (let* ((out (assoc-ref outputs "out"))
5572 (bin (string-append out "/bin"))
5573 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
5574 (info (string-append out "/share/info")))
5575 ;; According to etc/install.org, the Emacspeak directory should
5576 ;; be copied to its installation destination.
5577 (for-each
5578 (lambda (file)
5579 (copy-recursively file (string-append lisp "/" file)))
5580 '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
5581 "xsl"))
5582 ;; Make sure emacspeak is loaded from the correct directory.
5583 (substitute* "etc/emacspeak.sh"
5584 (("exec emacs.*$")
5585 (string-append "exec emacs -l " lisp
5586 "/lisp/emacspeak-setup.el $CL_ALL")))
5587 ;; Install the convenient startup script.
5588 (mkdir-p bin)
5589 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
5590 #t))
5591 (add-after 'install 'wrap-program
acf7d4a7
KK
5592 (lambda* (#:key inputs outputs #:allow-other-keys)
5593 (let* ((out (assoc-ref outputs "out"))
5594 (emacspeak (string-append out "/bin/emacspeak"))
5595 (espeak (string-append (assoc-ref inputs "espeak")
5596 "/bin/espeak")))
5597 ;; The environment variable DTK_PROGRAM tells emacspeak what
5598 ;; program to use for speech.
5599 (wrap-program emacspeak
5600 `("DTK_PROGRAM" ":" prefix (,espeak)))
5601 #t))))
5602 #:tests? #f)) ; no check target
5603 (inputs
5604 `(("espeak" ,espeak)
5605 ("tcl" ,tcl)
5606 ("tclx" ,tclx)))
5607 (native-inputs `(("emacs" ,emacs-minimal)))
5608 (home-page "http://emacspeak.sourceforge.net")
5609 (synopsis "Audio desktop interface for Emacs")
5610 (description
5611 "Emacspeak is a speech interface that allows visually impaired users to
5612interact independently and efficiently with the computer. Audio formatting
5613--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
5614allows Emacspeak to produce rich aural presentations of electronic information.
5615By seamlessly blending all aspects of the Internet such as Web-surfing and
5616messaging, Emacspeak speech-enables local and remote information via a
5617consistent and well-integrated user interface.")
5618 (license license:gpl2+)))
5619
350cfccb
AP
5620(define-public emacs-adaptive-wrap
5621 (package
5622 (name "emacs-adaptive-wrap")
13869ff5 5623 (version "0.5.1")
350cfccb
AP
5624 (source (origin
5625 (method url-fetch)
5626 (uri (string-append
5627 "http://elpa.gnu.org/packages/adaptive-wrap-"
5628 version ".el"))
5629 (sha256
5630 (base32
13869ff5 5631 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
350cfccb
AP
5632 (build-system emacs-build-system)
5633 (home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
5634 (synopsis "Smart line-wrapping with wrap-prefix")
5635 (description
5636 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
5637minor mode which sets the wrap-prefix property on the fly so that
5638single-long-line paragraphs get word-wrapped in a way similar to what
5639you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
5640actually changing the buffer's text.")
5641 (license license:gpl3+)))
0201c5d4 5642
42e891c2
MC
5643(define-public emacs-diff-hl
5644 (package
5645 (name "emacs-diff-hl")
5646 (version "1.8.4")
5647 (source
5648 (origin
5649 (method url-fetch)
5650 (uri (string-append "http://elpa.gnu.org/packages/diff-hl-"
5651 version ".tar"))
5652 (sha256
5653 (base32
5654 "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n"))))
5655 (build-system emacs-build-system)
5656 (home-page "https://github.com/dgutov/diff-hl")
5657 (synopsis
5658 "Highlight uncommitted changes using VC")
5659 (description
5660 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
5661window (using the fringe, by default), allows you to jump between
5662the hunks and revert them selectively.")
5663 (license license:gpl3+)))
5664
0201c5d4
AI
5665(define-public emacs-diminish
5666 (package
5667 (name "emacs-diminish")
5668 (version "0.45")
5669 (source
5670 (origin
5671 (method url-fetch)
5672 (uri (string-append
5673 "https://github.com/myrjola/diminish.el/archive/v"
5674 version ".tar.gz"))
5675 (file-name (string-append name "-" version ".tar.gz"))
5676 (sha256
5677 (base32
5678 "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
5679 (build-system emacs-build-system)
5680 (home-page "https://github.com/myrjola/diminish.el")
5681 (synopsis "Diminish minor modes with no modeline display")
5682 (description "@code{emacs-diminish} implements hiding or
5683abbreviation of the mode line displays (lighters) of minor modes.")
5684 (license license:gpl2+)))
b247fb86
AI
5685
5686(define-public emacs-use-package
5687 (package
5688 (name "emacs-use-package")
5689 (version "2.3")
5690 (source
5691 (origin
5692 (method url-fetch)
5693 (uri (string-append
5694 "https://github.com/jwiegley/use-package/archive/"
5695 version ".tar.gz"))
5696 (file-name (string-append name "-" version ".tar.gz"))
5697 (sha256
5698 (base32
5699 "0x4h136jb3imyli6zsh7dyzjrra6pv0v6b0yk94jdng3rdfcmsf5"))))
5700 (build-system emacs-build-system)
5701 (propagated-inputs
5702 `(("emacs-diminish" ,emacs-diminish)))
5703 (arguments
d1d41db6
MC
5704 ;; Tests fail in this release, but have been fixed in
5705 ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
5706 `(#:tests? #f
5707 #:test-command '("emacs" "--batch"
5708 "-l" "use-package-tests.el"
5709 "-f" "ert-run-tests-batch-and-exit")))
b247fb86
AI
5710 (home-page "https://github.com/jwiegley/use-package")
5711 (synopsis "Declaration for simplifying your .emacs")
5712 (description "The use-package macro allows you to isolate package
5713configuration in your @file{.emacs} file in a way that is both
5714performance-oriented and tidy.")
5715 (license license:gpl2+)))
e2345554 5716
8ad5a20f
MO
5717(define-public emacs-strace-mode
5718 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
5719 (revision "1"))
5720 (package
5721 (name "emacs-strace-mode")
5722 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
5723 (source (origin
5724 (method git-fetch)
5725 (uri (git-reference
5726 (url "https://github.com/pkmoore/strace-mode")
5727 (commit commit)))
5728 (file-name (string-append name "-" version "-checkout"))
5729 (sha256
5730 (base32
5731 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
5732 (build-system emacs-build-system)
5733 (home-page "https://github.com/pkmoore/strace-mode")
5734 (synopsis "Emacs major mode to highlight strace outputs")
5735 (description "@code{emacs-strace-mode} provides an Emacs major mode
5736 highlighting strace outputs.")
5737 (license license:gpl3+))))
5738
e2345554
CM
5739(define-public emacs-default-encrypt
5740 (package
5741 (name "emacs-default-encrypt")
5742 (version "4.3")
5743 (source
5744 (origin
5745 (method url-fetch)
5746 (uri (string-append
a97f6da4
CM
5747 "https://www.informationelle-selbstbestimmung-im-internet.de"
5748 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
e2345554
CM
5749 (file-name (string-append "jl-encrypt-" version ".el"))
5750 (sha256
5751 (base32
5752 "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
5753 (build-system emacs-build-system)
5754 (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
5755 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
5756 (description
5757 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
5758automatically encrypts messages that you send (e.g., email) when public keys
5759for all recipients are available, and it protects you from accidentally
5760sending un-encrypted messages. It can also be configured to automatically
5761sign messages that you send. For details and instructions on how to use
5762DefaultEncrypt, please refer to the home page or read the comments in the
5763source file, @file{jl-encrypt.el}.")
5764 (license license:gpl3+)))
25e810b8
AI
5765
5766(define-public emacs-htmlize
5767 (package
5768 (name "emacs-htmlize")
5769 (version "1.51")
5770 (source
5771 (origin
5772 (method url-fetch)
5773 (uri (string-append
5774 "https://github.com/hniksic/emacs-htmlize/archive/release/"
5775 version ".tar.gz"))
5776 (file-name (string-append name "-" version ".tar.gz"))
5777 (sha256
5778 (base32
5779 "1fy1lybzrxl8a8r88f6p19nz8ygmvcxhxbnymkxh7jqaz25viwld"))))
5780 (build-system emacs-build-system)
5781 (home-page "https://github.com/hniksic/emacs-htmlize")
5782 (synopsis "Convert buffer text and decorations to HTML")
5783 (description "@code{emacs-htmlize} converts the buffer text and
5784the associated decorations to HTML. Output to CSS, inline CSS and
5785fonts is supported.")
5786 (license license:gpl2+)))
0ee59b81
AI
5787
5788(define-public emacs-xmlgen
5789 (package
5790 (name "emacs-xmlgen")
5791 (version "0.5")
5792 (source
5793 (origin
5794 (method url-fetch)
5795 (uri (string-append
5796 "https://github.com/philjackson/xmlgen/archive/"
5797 version ".tar.gz"))
5798 (file-name (string-append name "-" version ".tar.gz"))
5799 (sha256
5800 (base32
5801 "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
5802 (build-system emacs-build-system)
5803 (arguments
d1d41db6
MC
5804 `(#:tests? #t
5805 #:test-command '("emacs" "--batch"
5806 "-l" "xmlgen-test.el"
5807 "-f" "ert-run-tests-batch-and-exit")))
0ee59b81
AI
5808 (home-page "https://github.com/philjackson/xmlgen")
5809 (synopsis "S-expression to XML domain specific language (DSL) in
5810Emacs Lisp")
5811 (description "@code{emacs-xmlgen} provides S-expression to XML
5812conversion for Emacs Lisp.")
5813 (license license:gpl2+)))
8d50a990
AI
5814
5815(define-public emacs-cdlatex
5816 (package
5817 (name "emacs-cdlatex")
5818 (version "4.7")
5819 (source
5820 (origin
5821 (method url-fetch)
5822 (uri (string-append
5823 "https://github.com/cdominik/cdlatex/archive/"
5824 version ".tar.gz"))
5825 (file-name (string-append name "-" version ".tar.gz"))
5826 (sha256
5827 (base32
5828 "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
5829 (build-system emacs-build-system)
00bdf501
MC
5830 (propagated-inputs
5831 `(("emacs-auctex" ,emacs-auctex)))
8d50a990
AI
5832 (home-page "https://github.com/cdominik/cdlatex")
5833 (synopsis "Fast Emacs input methods for LaTeX environments and
5834math")
5835 (description "CDLaTeX is an Emacs minor mode supporting fast
5836insertion of environment templates and math in LaTeX. Similar
5837commands are also offered as part of the AUCTeX package, but it is not
5838the same - CDLaTeX focuses on speediness for inserting LaTeX
5839constructs.")
5840 (license license:gpl3+)))
deddeb44 5841
65fff6a3
FS
5842(define-public emacs-cnfonts
5843 (package
5844 (name "emacs-cnfonts")
5845 (version "0.9.1")
5846 (source (origin
5847 (method url-fetch)
5848 (uri (string-append
5849 "https://github.com/tumashu/cnfonts/archive/v"
5850 version ".tar.gz"))
5851 (file-name (string-append name "-" version ".tar.gz"))
5852 (sha256
5853 (base32
5854 "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
5855 (build-system emacs-build-system)
5856 (home-page "https://github.com/tumashu/cnfonts")
5857 (synopsis "Emacs Chinese fonts setup tool")
5858 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
5859configuration of Chinese fonts.")
5860 (license license:gpl2+)))
5861
57fe82c5
RJ
5862(define-public emacs-php-mode
5863 (package
5864 (name "emacs-php-mode")
5865 (version "20171225.342")
5866 (source (origin
5867 (method url-fetch)
5868 (uri (string-append
5869 "https://melpa.org/packages/php-mode-"
5870 version ".tar"))
5871 (sha256
5872 (base32
5873 "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
5874 (build-system emacs-build-system)
5875 (home-page "https://github.com/ejmr/php-mode")
5876 (synopsis "Major mode for editing PHP code")
5877 (description "@code{php-mode} is a major mode for editing PHP source
5878code. It's an extension of C mode; thus it inherits all C mode's navigation
5879functionality. But it colors according to the PHP grammar and indents
5880according to the PEAR coding guidelines. It also includes a couple handy
5881IDE-type features such as documentation search and a source and class
5882browser.")
5883 (license license:gpl3+)))
5884
9f3b27a2
FS
5885(define-public emacs-pos-tip
5886 (package
5887 (name "emacs-pos-tip")
5888 (version "0.4.6")
5889 (source (origin
5890 (method url-fetch)
5891 (uri (string-append
5892 "https://github.com/pitkali/pos-tip/archive/"
5893 version ".tar.gz"))
5894 (file-name (string-append name "-" version ".tar.gz"))
5895 (sha256
5896 (base32
5897 "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
5898 (build-system emacs-build-system)
5899 ;; The following functions and variables needed by emacs-pos-tip are
5900 ;; not included in emacs-minimal:
5901 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
5902 (arguments `(#:emacs ,emacs))
5903 (home-page "https://github.com/pitkali/pos-tip")
5904 (synopsis "Show tooltip at point")
5905 (description "The standard library tooltip.el provides a function for
5906displaying a tooltip at the mouse position. However, locating a tooltip at an
5907arbitrary buffer position in a window is not easy. Pos-tip provides such a
5908function to be used by other frontend programs.")
5909 (license license:gpl2+)))
5910
0fa8a932
FS
5911(define-public emacs-pyim-basedict
5912 (package
5913 (name "emacs-pyim-basedict")
5914 (version "0.3.1")
5915 (source (origin
5916 (method url-fetch)
5917 (uri (string-append
5918 "https://github.com/tumashu/pyim-basedict/archive/v"
5919 version ".tar.gz"))
5920 (file-name (string-append name "-" version ".tar.gz"))
5921 (sha256
5922 (base32
5923 "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
5924 (build-system emacs-build-system)
5925 (home-page "https://github.com/tumashu/pyim-basedict")
5926 (synopsis "Input method dictionary of pyim")
5927 (description "Pyim-basedict is the default pinyin input method dictionary,
5928containing words from the rime project.")
5929 (license license:gpl2+)))
5930
7493306f
FS
5931(define-public emacs-pyim
5932 (package
5933 (name "emacs-pyim")
5934 (version "1.6.4")
5935 (source (origin
5936 (method url-fetch)
5937 (uri (string-append
5938 "https://github.com/tumashu/pyim/archive/v"
5939 version ".tar.gz"))
5940 (file-name (string-append name "-" version ".tar.gz"))
5941 (sha256
5942 (base32
5943 "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
5944 (build-system emacs-build-system)
5945 (propagated-inputs
5946 `(("emacs-async" ,emacs-async)
6fe2d37c 5947 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
7493306f
FS
5948 ("emacs-popup" ,emacs-popup)
5949 ("emacs-pos-tip" ,emacs-pos-tip)))
5950 (home-page "https://github.com/tumashu/pyim")
5951 (synopsis "Chinese input method")
5952 (description "Chinese input method which supports quanpin, shuangpin, wubi
5953and cangjie.")
5954 (license license:gpl2+)))
5955
2f1524d0
FS
5956(define-public emacs-el2org
5957 (package
5958 (name "emacs-el2org")
5959 (version "0.6.0")
5960 (source (origin
5961 (method url-fetch)
5962 (uri (string-append
5963 "https://github.com/tumashu/el2org/archive/v"
5964 version ".tar.gz"))
5965 (file-name (string-append name "-" version ".tar.gz"))
5966 (sha256
5967 (base32
5968 "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
5969 (build-system emacs-build-system)
5970 (home-page "https://github.com/tumashu/el2org")
5971 (synopsis "Convert Emacs-lisp file to org file")
5972 (description "El2org is a simple tool, which can convert Emacs-lisp file
5973to org file, you can use this tool to write orgify commentary.")
5974 (license license:gpl2+)))
5975
5b38c3e6
FS
5976(define-public emacs-mustache
5977 (package
5978 (name "emacs-mustache")
5979 (version "0.23")
5980 (source (origin
5981 (method url-fetch)
5982 (uri (string-append
5983 "https://github.com/Wilfred/mustache.el/archive/"
5984 version ".tar.gz"))
5985 (file-name (string-append name "-" version ".tar.gz"))
5986 (sha256
5987 (base32
5988 "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
5989 (build-system emacs-build-system)
5990 (propagated-inputs
5991 `(("emacs-dash" ,emacs-dash)
5992 ("emacs-ht" ,emacs-ht)
5993 ("emacs-s" ,emacs-s)))
5994 (home-page "https://github.com/Wilfred/mustache.el")
5995 (synopsis "Mustache templating library for Emacs")
5996 (description "Mustache templating library for Emacs, mustache is
5997a simple web template system, which is described as a logic-less system
5998because it lacks any explicit control flow statements, both looping and
5999conditional evaluation can be achieved using section tags processing lists
6000and lambdas.")
6001 (license license:gpl3+)))
6002
f03e15ec
FS
6003(define-public emacs-org2web
6004 (package
6005 (name "emacs-org2web")
6006 (version "0.9.1")
6007 (source (origin
6008 (method url-fetch)
6009 (uri (string-append
6010 "https://github.com/tumashu/org2web/archive/v"
6011 version ".tar.gz"))
6012 (file-name (string-append name "-" version ".tar.gz"))
6013 (sha256
6014 (base32
6015 "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
6016 (build-system emacs-build-system)
6017 (propagated-inputs
6018 `(("emacs-dash" ,emacs-dash)
6019 ("emacs-el2org" ,emacs-el2org)
6020 ("emacs-ht" ,emacs-ht)
6021 ("emacs-mustache" ,emacs-mustache)
6022 ("emacs-simple-httpd" ,emacs-simple-httpd)))
6023 (home-page "https://github.com/tumashu/org2web")
6024 (synopsis "Static site generator based on org-mode ")
6025 (description "Org2web is a static site generator based on org-mode,
6026which code derived from Kelvin H's org-page.")
6027 (license license:gpl2+)))
6028
deddeb44
FS
6029(define-public emacs-xelb
6030 (package
6031 (name "emacs-xelb")
aaa31d1b 6032 (version "0.14")
deddeb44
FS
6033 (source (origin
6034 (method url-fetch)
6035 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
6036 version ".tar"))
6037 (sha256
6038 (base32
aaa31d1b 6039 "09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74"))))
deddeb44
FS
6040 (build-system emacs-build-system)
6041 ;; The following functions and variables needed by emacs-xelb are
6042 ;; not included in emacs-minimal:
6043 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
6044 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
6045 ;; x-display-pixel-width, x-display-pixel-height
6046 (arguments
6047 `(#:emacs ,emacs
6048 #:phases
6049 (modify-phases %standard-phases
6050 (add-after 'unpack 'regenerate-el-files
6051 (lambda* (#:key inputs #:allow-other-keys)
6052 (zero? (system* "make"
6053 (string-append "PROTO_PATH="
6054 (assoc-ref inputs "xcb-proto")
6055 "/share/xcb")
6056 (string-append "EMACS_BIN="
6057 (assoc-ref inputs "emacs")
6058 "/bin/emacs -Q"))))))))
6059 (native-inputs `(("xcb-proto" ,xcb-proto)))
6060 (home-page "https://github.com/ch11ng/xelb")
6061 (synopsis "X protocol Emacs Lisp binding")
6062 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
6063X11 protocol based on the XML description files from the XCB project. It
6064features an object-oriented API and permits a certain degree of concurrency.
6065It should enable you to implement low-level X11 applications.")
6066 (license license:gpl3+)))
2b3b745c
FS
6067
6068(define-public emacs-exwm
6069 (package
6070 (name "emacs-exwm")
9f2a58a0 6071 (version "0.18")
2b3b745c
FS
6072 (synopsis "Emacs X window manager")
6073 (source (origin
6074 (method url-fetch)
6075 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
6076 version ".tar"))
6077 (sha256
6078 (base32
9f2a58a0 6079 "1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q"))))
2b3b745c
FS
6080 (build-system emacs-build-system)
6081 (propagated-inputs
6082 `(("emacs-xelb" ,emacs-xelb)))
6083 (inputs
6084 `(("xhost" ,xhost)
6085 ("dbus" ,dbus)))
6086 ;; The following functions and variables needed by emacs-exwm are
6087 ;; not included in emacs-minimal:
6088 ;; scroll-bar-mode, fringe-mode
6089 ;; x-display-pixel-width, x-display-pixel-height
6090 (arguments
6091 `(#:emacs ,emacs
6092 #:phases
6093 (modify-phases %standard-phases
6094 (add-after 'build 'install-xsession
6095 (lambda* (#:key inputs outputs #:allow-other-keys)
6096 (let* ((out (assoc-ref outputs "out"))
6097 (xsessions (string-append out "/share/xsessions"))
6098 (bin (string-append out "/bin"))
6099 (exwm-executable (string-append bin "/exwm")))
6100 ;; Add a .desktop file to xsessions
6101 (mkdir-p xsessions)
6102 (mkdir-p bin)
6103 (with-output-to-file
6104 (string-append xsessions "/exwm.desktop")
6105 (lambda _
6106 (format #t "[Desktop Entry]~@
6107 Name=~a~@
6108 Comment=~a~@
6109 Exec=~a~@
6110 TryExec=~@*~a~@
6111 Type=Application~%" ,name ,synopsis exwm-executable)))
6112 ;; Add a shell wrapper to bin
2b3b745c
FS
6113 (with-output-to-file exwm-executable
6114 (lambda _
6115 (format #t "#!~a ~@
2b3b745c 6116 ~a +SI:localuser:$USER ~@
11f8e028 6117 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
2b3b745c
FS
6118 (string-append (assoc-ref inputs "bash") "/bin/sh")
6119 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6120 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6121 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6122 '(cond
6123 ((file-exists-p "~/.exwm")
6124 (load-file "~/.exwm"))
6125 ((not (featurep 'exwm))
6126 (require 'exwm)
6127 (require 'exwm-config)
6128 (exwm-config-default)
87c95cb2
AI
6129 (message (concat "exwm configuration not found. "
6130 "Falling back to default configuration...")))))))
2b3b745c
FS
6131 (chmod exwm-executable #o555)
6132 #t))))))
6133 (home-page "https://github.com/ch11ng/exwm")
6134 (description "EXWM is a full-featured tiling X window manager for Emacs
6135built on top of XELB.")
6136 (license license:gpl3+)))
21b99aad 6137
58addd2b
FS
6138(define-public emacs-switch-window
6139 (package
6140 (name "emacs-switch-window")
adaebe80 6141 (version "1.5.1")
58addd2b
FS
6142 (source (origin
6143 (method url-fetch)
6144 (uri (string-append
6145 "https://github.com/dimitri/switch-window/archive/v"
6146 version ".tar.gz"))
6147 (file-name (string-append name "-" version ".tar.gz"))
6148 (sha256
6149 (base32
adaebe80 6150 "07f99apxscwvsp2bjxsbi462c433kcglrjh6xl0gyafs1nvvvnd8"))))
58addd2b
FS
6151 (build-system emacs-build-system)
6152 (home-page "https://github.com/dimitri/switch-window")
6153 (synopsis "Emacs window switch tool")
6154 (description "Switch-window is an emacs window switch tool, which
6155offer a visual way to choose a window to switch to, delete, split or
6156other operations.")
6157 (license license:wtfpl2)))
6158
f4ade9b6
FS
6159(define-public emacs-exwm-x
6160 (package
6161 (name "emacs-exwm-x")
03a34d54 6162 (version "1.8.1")
f4ade9b6
FS
6163 (synopsis "Derivative window manager based on EXWM")
6164 (source (origin
6165 (method url-fetch)
6166 (uri (string-append
6167 "https://github.com/tumashu/exwm-x/archive/v"
6168 version ".tar.gz"))
6169 (file-name (string-append name "-" version ".tar.gz"))
6170 (sha256
6171 (base32
03a34d54 6172 "0ali1100aacq4zbvcck80h51pvw204jlxhn4aikkqq4ngbx03kkr"))))
f4ade9b6
FS
6173 (build-system emacs-build-system)
6174 (propagated-inputs
6175 `(("emacs-exwm" ,emacs-exwm)
6176 ("emacs-switch-window" ,emacs-switch-window)
2a9a2207
FS
6177 ("emacs-ivy" ,emacs-ivy)
6178 ("emacs-use-package" ,emacs-use-package)))
f4ade9b6
FS
6179 (inputs
6180 `(("xhost" ,xhost)
6181 ("dbus" ,dbus)))
6182 ;; Need emacs instead of emacs-minimal,
6183 ;; for emacs's bin path will be inserted into bin/exwm-x file.
6184 (arguments
6185 `(#:emacs ,emacs
6186 #:phases
6187 (modify-phases %standard-phases
6188 (add-after 'build 'install-xsession
6189 (lambda* (#:key inputs outputs #:allow-other-keys)
6190 (let* ((out (assoc-ref outputs "out"))
6191 (xsessions (string-append out "/share/xsessions"))
6192 (bin (string-append out "/bin"))
6193 (exwm-executable (string-append bin "/exwm-x")))
6194 ;; Add a .desktop file to xsessions
6195 (mkdir-p xsessions)
6196 (mkdir-p bin)
6197 (with-output-to-file
6198 (string-append xsessions "/exwm-x.desktop")
6199 (lambda _
6200 (format #t "[Desktop Entry]~@
6201 Name=~a~@
6202 Comment=~a~@
6203 Exec=~a~@
6204 TryExec=~@*~a~@
6205 Type=Application~%" ,name ,synopsis exwm-executable)))
6206 ;; Add a shell wrapper to bin
f4ade9b6
FS
6207 (with-output-to-file exwm-executable
6208 (lambda _
6209 (format #t "#!~a ~@
f4ade9b6
FS
6210 ~a +SI:localuser:$USER ~@
6211 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
6212 (string-append (assoc-ref inputs "bash") "/bin/sh")
6213 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
6214 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
6215 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
6216 '(require 'exwmx-loader))))
6217 (chmod exwm-executable #o555)
6218 #t))))))
6219 (home-page "https://github.com/tumashu/exwm-x")
6220 (description "EXWM-X is a derivative window manager based on EXWM, with focus
6221on mouse-control.")
6222 (license license:gpl3+)))
6223
21b99aad
AI
6224(define-public emacs-gnuplot
6225 (package
6226 (name "emacs-gnuplot")
6227 (version "0.7.0")
6228 (source
6229 (origin
6230 (method url-fetch)
6231 (uri (string-append
6232 "https://github.com/bruceravel/gnuplot-mode/archive/"
6233 version ".tar.gz"))
6234 (file-name (string-append name "-" version ".tar.gz"))
6235 (sha256
6236 (base32
6237 "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
6238 (build-system gnu-build-system)
6239 (native-inputs `(("emacs" ,emacs-minimal)))
6240 (arguments
6241 (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d"
6242 "/gnuplot-" version)))
6243 `(#:modules ((guix build gnu-build-system)
6244 (guix build utils)
6245 (guix build emacs-utils))
6246 #:imported-modules (,@%gnu-build-system-modules
6247 (guix build emacs-utils))
6248 #:configure-flags
6249 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
6250 "/bin/emacs")
6251 (string-append "--with-lispdir=" %output ,elisp-dir))
6252 #:phases
6253 (modify-phases %standard-phases
6254 (add-after 'install 'generate-autoloads
6255 (lambda* (#:key outputs #:allow-other-keys)
6256 (emacs-generate-autoloads
6257 "gnuplot"
6258 (string-append (assoc-ref outputs "out") ,elisp-dir))
6259 #t))))))
6260 (home-page "https://github.com/bruceravel/gnuplot-mode")
6261 (synopsis "Emacs major mode for interacting with gnuplot")
6262 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
6263with gnuplot.")
6264 (license license:gpl2+)))
860f73c6
AI
6265
6266(define-public emacs-transpose-frame
6267 (package
6268 (name "emacs-transpose-frame")
6269 (version "0.1.0")
6270 (source
6271 (origin
6272 (method url-fetch)
6273 (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el")
8a421ddb 6274 (file-name (string-append "transpose-frame-" version ".el"))
860f73c6
AI
6275 (sha256
6276 (base32
6277 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
6278 (build-system emacs-build-system)
6279 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
6280 (synopsis "Transpose window arrangement in current frame")
6281 (description "@code{emacs-transpose-frame} provides some interactive
6282functions which allows users to transpose windows arrangement in currently
6283selected frame.")
6284 (license license:bsd-2)))
a34242ee
KM
6285
6286(define-public emacs-key-chord
6287 (package
6288 (name "emacs-key-chord")
6289 (version "0.6")
6290 (source
6291 (origin
6292 (method url-fetch)
6293 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
a742becd 6294 (file-name (string-append "key-chord-" version ".el"))
a34242ee
KM
6295 (sha256
6296 (base32
6297 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
6298 (build-system emacs-build-system)
6299 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
6300 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
6301 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
6302mode for binding key chords to commands. A key chord is defined as two keys
6303pressed simultaneously or a single key quickly pressed twice.")
6304 (license license:gpl2+)))
a993add1
AI
6305
6306(define-public emacs-evil-surround
6307 (package
6308 (name "emacs-evil-surround")
6309 (version "1.0.0")
6310 (source
6311 (origin
6312 (method url-fetch)
6313 (uri (string-append
6314 "https://github.com/timcharper/evil-surround/archive/v"
6315 version ".tar.gz"))
6316 (file-name (string-append name "-" version ".tar.gz"))
6317 (sha256
6318 (base32
6319 "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
6320 (build-system emacs-build-system)
6321 (propagated-inputs
6322 `(("emacs-evil" ,emacs-evil)))
6323 (home-page "https://github.com/timcharper/evil-surround")
6324 (synopsis "Easily modify surrounding parantheses and quotes")
6325 (description "@code{emacs-evil-surround} allows easy deletion, change and
6326addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
6327 (license license:gpl3+)))
2406766e
AI
6328
6329(define-public emacs-evil-commentary
6330 (package
6331 (name "emacs-evil-commentary")
6332 (version "2.1.1")
6333 (source
6334 (origin
6335 (method url-fetch)
6336 (uri (string-append
6337 "https://github.com/linktohack/evil-commentary/archive/v"
6338 version ".tar.gz"))
6339 (file-name (string-append name "-" version ".tar.gz"))
6340 (sha256
6341 (base32
6342 "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
6343 (build-system emacs-build-system)
6344 (propagated-inputs
6345 `(("emacs-evil" ,emacs-evil)))
6346 (home-page "https://github.com/linktohack/evil-commentary")
6347 (synopsis "Comment out code in evil mode")
6348 (description "@code{emacs-evil-commentary} adds keybindings to easily
6349comment out lines of code in evil mode. It provides @code{gcc} to comment out
6350lines, and @code{gc} to comment out the target of a motion.")
6351 (license license:gpl3+)))
99d406c9
AI
6352
6353;; Tests for emacs-ansi have a circular dependency with ert-runner, and
6354;; therefore cannot be run
6355(define-public emacs-ansi
6356 (package
6357 (name "emacs-ansi")
6358 (version "0.4.1")
6359 (source
6360 (origin
6361 (method url-fetch)
6362 (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
6363 version ".tar.gz"))
6364 (file-name (string-append name "-" version ".tar.gz"))
6365 (sha256
6366 (base32
6367 "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
6368 (build-system emacs-build-system)
6369 (propagated-inputs
6370 `(("emacs-dash" ,emacs-dash)
6371 ("emacs-s" ,emacs-s)))
6372 (home-page "https://github.com/rejeep/ansi.el")
6373 (synopsis "Convert strings to ANSI")
6374 (description "@code{emacs-ansi} defines functions that turns simple
6375strings to ANSI strings. Turning a string into an ANSI string can be to add
6376color to a text, add color in the background of a text or adding a style, such
6377as bold, underscore or italic.")
6378 (license license:gpl3+)))
605ecbcb
AI
6379
6380;; Tests for emacs-commander have a circular dependency with ert-runner, and
6381;; therefore cannot be run
6382(define-public emacs-commander
6383 (package
6384 (name "emacs-commander")
6385 (version "0.7.0")
6386 (source
6387 (origin
6388 (method url-fetch)
6389 (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
6390 version ".tar.gz"))
6391 (file-name (string-append name "-" version ".tar.gz"))
6392 (sha256
6393 (base32
6394 "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
6395 (build-system emacs-build-system)
6396 (propagated-inputs
6397 `(("emacs-dash" ,emacs-dash)
6398 ("emacs-f" ,emacs-f)
6399 ("emacs-s" ,emacs-s)))
6400 (home-page "https://github.com/rejeep/commander.el")
6401 (synopsis "Emacs command line parser")
6402 (description "@code{emacs-commander} provides command line parsing for
6403Emacs.")
6404 (license license:gpl3+)))
87449013
AI
6405
6406;; Tests for ert-runner have a circular dependency with ecukes, and therefore
6407;; cannot be run
6408(define-public ert-runner
9490c411
MC
6409 (package
6410 (name "ert-runner")
6411 (version "0.7.0")
6412 (source
6413 (origin
6414 (method url-fetch)
6415 (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
6416 version ".tar.gz"))
6417 (file-name (string-append name "-" version ".tar.gz"))
6418 (sha256
6419 (base32
6420 "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
6421 (build-system emacs-build-system)
6422 (inputs
6423 `(("emacs-ansi" ,emacs-ansi)
6424 ("emacs-commander" ,emacs-commander)
6425 ("emacs-dash" ,emacs-dash)
6426 ("emacs-f" ,emacs-f)
6427 ("emacs-s" ,emacs-s)
6428 ("emacs-shut-up" ,emacs-shut-up)))
6429 (arguments
6430 `(#:phases
6431 (modify-phases %standard-phases
6432 (add-after 'install 'install-executable
6433 (lambda* (#:key inputs outputs #:allow-other-keys)
6434 (let ((out (assoc-ref outputs "out")))
6435 (substitute* "bin/ert-runner"
6436 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
6437 (string-append "ERT_RUNNER=\"" out
6438 "/share/emacs/site-lisp/guix.d/"
6439 ,name "-" ,version)))
6440 (install-file "bin/ert-runner" (string-append out "/bin"))
6441 (wrap-program (string-append out "/bin/ert-runner")
6442 (list "EMACSLOADPATH" ":" 'prefix
6443 (string-split (getenv "EMACSLOADPATH") #\:)))
6444 #t))))
6445 #:include (cons* "^reporters/.*\\.el$" %default-include)))
6446 (home-page "https://github.com/rejeep/ert-runner.el")
6447 (synopsis "Opinionated Ert testing workflow")
6448 (description "@code{ert-runner} is a tool for Emacs projects tested
87449013
AI
6449using ERT. It assumes a certain test structure setup and can therefore make
6450running tests easier.")
9490c411 6451 (license license:gpl3+)))
7a0efa77
JN
6452
6453(define-public emacs-disable-mouse
6454 (package
6455 (name "emacs-disable-mouse")
6456 (version "0.2")
6457 (source
6458 (origin
6459 (method url-fetch)
6460 (uri (string-append
6461 "https://github.com/purcell/disable-mouse/archive/"
6462 version ".tar.gz"))
6463 (file-name (string-append name "-" version ".tar.gz"))
6464 (sha256
6465 (base32
6466 "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
6467 (build-system emacs-build-system)
6468 (home-page "https://github.com/purcell/disable-mouse")
6469 (synopsis "Disable mouse commands globally")
6470 (description
6471 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
6472pair of minor modes which suppress all mouse events by intercepting them and
6473running a customisable handler command (@code{ignore} by default). ")
6474 (license license:gpl3+)))
ce676015 6475
b0912e9f
OP
6476(define-public emacs-json-reformat
6477 (package
6478 (name "emacs-json-reformat")
6479 (version "0.0.6")
6480 (source
6481 (origin
6482 (method url-fetch)
6483 (uri (string-append "https://github.com/gongo/json-reformat/archive/"
6484 version ".tar.gz"))
6485 (file-name (string-append name "-" version ".tar.gz"))
6486 (sha256
6487 (base32
6488 "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
6489 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
6490 (build-system emacs-build-system)
d1d41db6
MC
6491 (propagated-inputs
6492 `(("emacs-undercover" ,emacs-undercover)))
6493 (native-inputs
6494 `(("emacs-dash" ,emacs-dash)
6495 ("emacs-shut-up" ,emacs-shut-up)
6496 ("ert-runner" ,ert-runner)))
b0912e9f 6497 (arguments
d1d41db6
MC
6498 `(#:tests? #t
6499 #:test-command '("ert-runner")))
b0912e9f
OP
6500 (home-page "https://github.com/gongo/json-reformat")
6501 (synopsis "Reformatting tool for JSON")
6502 (description "@code{json-reformat} provides a reformatting tool for
6503@url{http://json.org/, JSON}.")
6504 (license license:gpl3+)))
6505
6df27407
OP
6506(define-public emacs-json-snatcher
6507 (package
6508 (name "emacs-json-snatcher")
6509 (version "1.0.0")
6510 (source
6511 (origin
6512 (method url-fetch)
6513 (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
6514 version ".tar.gz"))
6515 (file-name (string-append name "-" version ".tar.gz"))
6516 (sha256
6517 (base32
6518 "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
6519 (build-system emacs-build-system)
6520 (home-page "https://github.com/sterlingg/json-snatcher")
6521 (synopsis "Grabs the path to JSON values in a JSON file")
6522 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
6523a @url{http://json.org/, JSON} file.")
6524 (license license:gpl3+)))
6525
dd72837d
OP
6526(define-public emacs-json-mode
6527 (package
6528 (name "emacs-json-mode")
6529 (version "1.7.0")
6530 (source
6531 (origin
6532 (method url-fetch)
6533 (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
6534 "v" version ".tar.gz"))
6535 (file-name (string-append name "-" version ".tar.gz"))
6536 (sha256
6537 (base32
6538 "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
6539 (build-system emacs-build-system)
6540 (propagated-inputs
6541 `(("emacs-json-reformat" ,emacs-json-reformat)
6542 ("emacs-json-snatcher" ,emacs-json-snatcher)))
6543 (home-page "https://github.com/joshwnj/json-mode")
6544 (synopsis "Major mode for editing JSON files")
6545 (description "@code{json-mode} extends the builtin js-mode syntax
6546highlighting.")
6547 (license license:gpl3+)))
6548
ce676015
JR
6549(define-public emacs-restclient
6550 (let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
6551 (revision "1")) ;Guix package revision,
6552 ;upstream doesn't have official releases
6553 (package
6554 (name "emacs-restclient")
6555 (version (string-append revision "."
6556 (string-take commit 7)))
6557 (source (origin
6558 (method git-fetch)
6559 (uri (git-reference
6560 (url "https://github.com/pashky/restclient.el.git")
6561 (commit commit)))
6562 (sha256
6563 (base32
6564 "00lmjhb5im1kgrp54yipf1h9pshxzgjlg71yf2rq5n973gvb0w0q"))
6565 (file-name (git-file-name name version))))
6566 (build-system emacs-build-system)
6567 (propagated-inputs
6568 `(("emacs-helm" ,emacs-helm)))
6569 (home-page "https://github.com/pashky/restclient.el")
6570 (synopsis "Explore and test HTTP REST webservices")
6571 (description
6572 "This tool allows for testing and exploration of HTTP REST Web services
6573from within Emacs. Restclient runs queries from a plan-text query sheet,
6574displays results pretty-printed in XML or JSON with @code{restclient-mode}")
6575 (license license:public-domain))))
730c0790 6576
de5256d3
MC
6577(define-public emacs-eimp
6578 (let ((version "1.4.0")
6579 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
6580 (revision "1"))
6581 (package
6582 (name "emacs-eimp")
6583 (version (git-version version revision commit))
6584 (source
6585 (origin
6586 (method git-fetch)
6587 (uri (git-reference
6588 (url "https://github.com/nicferrier/eimp.git")
6589 (commit commit)))
6590 (file-name (git-file-name name version))
6591 (sha256
6592 (base32
6593 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
6594 (build-system emacs-build-system)
6595 (arguments
6596 `(#:phases
6597 (modify-phases %standard-phases
6598 (add-after 'unpack 'configure
6599 (lambda* (#:key inputs #:allow-other-keys)
6600 (let ((imagemagick (assoc-ref inputs "imagemagick")))
6601 ;; eimp.el is read-only in git.
6602 (chmod "eimp.el" #o644)
6603 (emacs-substitute-variables "eimp.el"
6604 ("eimp-mogrify-program"
6605 (string-append imagemagick "/bin/mogrify"))))
6606 #t)))))
6607 (inputs
6608 `(("imagemagick" ,imagemagick)))
6609 (home-page "https://github.com/nicferrier/eimp")
6610 (synopsis "Interactive image manipulation utility for Emacs")
6611 (description "@code{emacs-eimp} allows interactive image manipulation
6612from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
6613the actual transformations.")
6614 (license license:gpl2+))))
6615
730c0790
OP
6616(define-public emacs-dired-hacks
6617 (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
6618 (revision "1"))
6619 (package
6620 (name "emacs-dired-hacks")
6621 (version (string-append "0.0.1-" revision "."
6622 (string-take commit 7)))
6623 (source (origin
6624 (method git-fetch)
6625 (uri (git-reference
6626 (url "https://github.com/Fuco1/dired-hacks.git")
6627 (commit commit)))
6628 (file-name (string-append name "-" version "-checkout"))
6629 (sha256
6630 (base32
6631 "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
6632 (build-system emacs-build-system)
6633 (propagated-inputs
6634 `(("emacs-dash" ,emacs-dash)
fee23c17 6635 ("emacs-eimp" ,emacs-eimp)
730c0790
OP
6636 ("emacs-f" ,emacs-f)
6637 ("emacs-s" ,emacs-s)))
6638 (home-page "https://github.com/Fuco1/dired-hacks")
6639 (synopsis
6640 "Collection of useful dired additions")
6641 (description
6642 "Collection of Emacs dired mode additions:
6643@itemize
6644@item dired-avfs
6645@item dired-columns
6646@item dired-filter
6647@item dired-hacks-utils
6648@item dired-images
6649@item dired-list
6650@item dired-narrow
6651@item dired-open
6652@item dired-rainbow
6653@item dired-ranger
6654@item dired-subtree
6655@item dired-tagsistant
6656@end itemize\n")
6657 (license license:gpl3+))))
1a80e4d7
OP
6658
6659(define-public emacs-which-key
6660 (package
6661 (name "emacs-which-key")
5fa1b417 6662 (version "3.0.2")
1a80e4d7
OP
6663 (source
6664 (origin
6665 (method url-fetch)
6666 (uri (string-append
6667 "https://github.com/justbur/emacs-which-key/archive/v"
6668 version ".tar.gz"))
6669 (sha256
6670 (base32
5fa1b417 6671 "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
1a80e4d7
OP
6672 (file-name (string-append name "-" version ".tar.gz"))))
6673 (build-system emacs-build-system)
6674 (arguments
d1d41db6
MC
6675 `(#:tests? #t
6676 #:test-command '("emacs" "--batch"
6677 "-l" "which-key-tests.el"
6678 "-f" "ert-run-tests-batch-and-exit")))
1a80e4d7
OP
6679 (home-page "https://github.com/justbur/emacs-which-key")
6680 (synopsis "Display available key bindings in popup")
2482c02f
AI
6681 (description
6682 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
6683bindings following your currently entered incomplete command (a prefix) in a
6684popup. For example, after enabling the minor mode if you enter C-x and wait
6685for the default of 1 second, the minibuffer will expand with all of the
6686available key bindings that follow C-x (or as many as space allows given your
6687settings).")
1a80e4d7 6688 (license license:gpl3+)))
c97979d6 6689
397d7980
MC
6690(define-public emacs-ws-butler
6691 (package
6692 (name "emacs-ws-butler")
6693 (version "0.6")
6694 (source (origin
6695 (method git-fetch)
6696 (uri (git-reference
6697 (url "https://github.com/lewang/ws-butler.git")
6698 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
6699 (file-name (string-append name "-" version "-checkout"))
6700 (sha256
6701 (base32
6702 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
6703 (build-system emacs-build-system)
6704 (native-inputs
6705 `(("ert-runner" ,ert-runner)))
6706 (arguments
d1d41db6
MC
6707 `(#:tests? #t
6708 #:test-command '("ert-runner" "tests")))
397d7980
MC
6709 (home-page "https://github.com/lewang/ws-butler")
6710 (synopsis "Trim spaces from end of lines")
6711 (description
6712 "This Emacs package automatically and unobtrusively trims whitespace
6713characters from end of lines.")
6714 (license license:gpl3+)))
6715
c97979d6
OP
6716(define-public emacs-org-edit-latex
6717 (package
6718 (name "emacs-org-edit-latex")
6719 (version "0.8.0")
6720 (source
6721 (origin
6722 (method url-fetch)
6723 (uri (string-append
6724 "https://github.com/et2010/org-edit-latex/archive/v"
6725 version ".tar.gz"))
6726 (file-name (string-append name "-" version ".tar.gz"))
6727 (sha256
6728 (base32
6729 "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
6730 (build-system emacs-build-system)
6731 (propagated-inputs
6732 `(("emacs-auctex" ,emacs-auctex)
6733 ;; The version of org in Emacs 25.2 is not sufficient, because the
6734 ;; `org-latex-make-preamble' function is required.
6735 ("emacs-org" ,emacs-org)))
6736 (home-page "https://github.com/et2010/org-edit-latex")
6737 (synopsis "Edit a latex fragment just like editing a src block")
6738 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
6739It lets you edit a latex fragment in a dedicated buffer just like editing a
6740src block.")
6741 (license license:gpl3+)))
aadd75ac
OP
6742
6743(define-public emacs-emamux
6744 (package
6745 (name "emacs-emamux")
6746 (version "0.14")
6747 (source (origin
6748 (method url-fetch)
6749 (uri (string-append
6750 "https://github.com/syohex/emacs-emamux/archive/"
6751 version ".tar.gz"))
6752 (file-name (string-append name "-" version ".tar.gz"))
6753 (sha256
6754 (base32
6755 "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
6756 (build-system emacs-build-system)
6757 (home-page "https://github.com/syohex/emacs-emamux")
6758 (synopsis "Manipulate Tmux from Emacs")
6759 (description
6760 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
6761multiplexer.")
6762 (license license:gpl3+)))
e8d9a878
OP
6763
6764(define-public emacs-rpm-spec-mode
6765 (package
6766 (name "emacs-rpm-spec-mode")
6767 (version "0.16")
6768 (source
6769 (origin
6770 (method url-fetch)
6771 ;; URI has the Fedora release number instead of the version
6772 ;; number. This will have to updated manually every new release.
6773 (uri (string-append
6774 "https://src.fedoraproject.org/cgit/rpms"
6775 "/emacs-rpm-spec-mode.git/snapshot"
6776 "/emacs-rpm-spec-mode-f26.tar.gz"))
6777 (sha256
6778 (base32
6779 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
6780 (build-system emacs-build-system)
6781 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
6782 (synopsis "Emacs major mode for editing RPM spec files")
6783 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
6784editing RPM spec files.")
6785 (license license:gpl2+)))
a88adeb3
OP
6786
6787(define-public emacs-git-messenger
6788 (package
6789 (name "emacs-git-messenger")
6790 (version "0.18")
6791 (source
6792 (origin
6793 (method url-fetch)
6794 (uri (string-append
6795 "https://github.com/syohex/emacs-git-messenger/archive/"
6796 version ".tar.gz"))
6797 (file-name (string-append name "-" version ".tar.gz"))
6798 (sha256
6799 (base32
6800 "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
6801 (build-system emacs-build-system)
6802 (propagated-inputs
6803 `(("emacs-popup" ,emacs-popup)))
6804 (arguments
d1d41db6
MC
6805 `(#:tests? #t
6806 #:test-command '("emacs" "--batch" "-l" "test/test.el"
6807 "-f" "ert-run-tests-batch-and-exit")))
a88adeb3
OP
6808 (home-page "https://github.com/syohex/emacs-git-messenger")
6809 (synopsis "Popup commit message at current line")
6810 (description "@code{emacs-git-messenger} provides
6811@code{git-messenger:popup-message}, a function that when called, will popup
6812the last git commit message for the current line. This uses git-blame
6813internally.")
6814 (license license:gpl3+)))
1ee879e9
OP
6815
6816(define-public emacs-gitpatch
6817 (package
6818 (name "emacs-gitpatch")
6819 (version "0.5.0")
6820 (source
6821 (origin
6822 (method url-fetch)
6823 (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
6824 "v" version ".tar.gz"))
6825 (file-name (string-append name "-" version ".tar.gz"))
6826 (sha256
6827 (base32
6828 "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
6829 (build-system emacs-build-system)
6830 (home-page "https://github.com/tumashu/gitpatch")
6831 (synopsis "Mail git patch from Emacs")
6832 (description "@code{emacs-gitpatch} lets users easily send git patches,
6833created by @code{git format-patch}, from @code{magit}, @code{dired} and
6834@code{ibuffer} buffers.")
6835 (license license:gpl3+)))
27feda65
OP
6836
6837(define-public emacs-erc-hl-nicks
6838 (package
6839 (name "emacs-erc-hl-nicks")
6840 (version "1.3.2")
6841 (source
6842 (origin
6843 (method url-fetch)
6844 (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
6845 "/archive/" version ".tar.gz"))
6846 (file-name (string-append name "-" version ".tar.gz"))
6847 (sha256
6848 (base32
6849 "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
6850 (build-system emacs-build-system)
6851 (synopsis "Nickname highlighting for Emacs ERC")
6852 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
6853client for Emacs. The main features are:
6854@itemize
6855@item Auto-colorizes nicknames without having to specify colors
6856@item Ignores certain characters that IRC clients add to nicknames to avoid
6857duplicates (nickname, nickname’, nickname\", etc.)
6858@item Attempts to produce colors with a sufficient amount of contrast between
6859the nick color and the background color
6860@end itemize\n")
6861 (home-page "https://github.com/leathekd/erc-hl-nicks")
6862 (license license:gpl3+)))
f262f446
OP
6863
6864(define-public emacs-engine-mode
6865 (package
6866 (name "emacs-engine-mode")
6867 (version "2.0.0")
6868 (source
6869 (origin
6870 (method url-fetch)
6871 (uri (string-append "https://github.com/hrs/engine-mode/archive/"
6872 "v" version ".tar.gz"))
6873 (file-name (string-append name "-" version ".tar.gz"))
6874 (sha256
6875 (base32
6876 "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
6877 (build-system emacs-build-system)
6878 (synopsis "Minor mode for defining and querying search engines")
6879 (description "@code{engine-mode} is a global minor mode for Emacs. It
6880enables you to easily define search engines, bind them to keybindings, and
6881query them from the comfort of your editor.")
6882 (home-page "https://github.com/hrs/engine-mode")
6883 (license license:gpl3+)))
b9dcaced
PM
6884
6885(define-public emacs-prop-menu
6886 (package
6887 (name "emacs-prop-menu")
6888 (version "0.1.2")
6889 (source
6890 (origin
6891 (method url-fetch)
6892 (uri (string-append
6893 "http://stable.melpa.org/packages/prop-menu-"
6894 version ".el"))
6895 (sha256
6896 (base32
6897 "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
6898 (build-system emacs-build-system)
6899 (home-page
6900 "https://github.com/david-christiansen/prop-menu-el")
6901 (synopsis
6902 "Create and display a context menu based on text and overlay properties")
6903 (description
6904 "This is a library for computing context menus based on text
6905properties and overlays. The intended use is to have tools that
6906annotate source code and others that use these annotations, without
6907requiring a direct coupling between them, but maintaining
6908discoverability.
6909
6910Major modes that wish to use this library should first define an
6911appropriate value for @code{prop-menu-item-functions}. Then, they should
6912bind @code{prop-menu-by-completing-read} to an appropriate
6913key. Optionally, a mouse pop-up can be added by binding
6914@code{prop-menu-show-menu} to a mouse event.")
6915 (license license:gpl3+)))
5883bb76
PM
6916
6917(define-public emacs-idris-mode
6918 (package
6919 (name "emacs-idris-mode")
6920 (version "0.9.19")
6921 (source
6922 (origin
6923 (method url-fetch)
6924 (uri (string-append
6925 "http://stable.melpa.org/packages/idris-mode-"
6926 version ".tar"))
6927 (sha256
6928 (base32
a05a637c 6929 "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
5883bb76
PM
6930 (build-system emacs-build-system)
6931 (propagated-inputs
6932 `(("emacs-prop-menu" ,emacs-prop-menu)))
6933 (home-page
6934 "https://github.com/idris-hackers/idris-mode")
6935 (synopsis "Major mode for editing Idris code")
6936 (description
6937 "This is an Emacs mode for editing Idris code. It requires the latest
6938version of Idris, and some features may rely on the latest Git version of
6939Idris.")
6940 (license license:gpl3+)))
eaf4ba6e
OP
6941
6942(define-public emacs-browse-at-remote
0698633d 6943 (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef")
eaf4ba6e
OP
6944 (revision "1"))
6945 (package
6946 (name "emacs-browse-at-remote")
6947 (version (string-append "0.9.0-" revision "."
6948 (string-take commit 7)))
6949 (source (origin
6950 (method git-fetch)
6951 (uri (git-reference
6952 (url "https://github.com/rmuslimov/browse-at-remote.git")
6953 (commit commit)))
6954 (file-name (string-append name "-" version "-checkout"))
61995dce
OP
6955 (patches
6956 (search-patches "emacs-browse-at-remote-cgit-gnu.patch"))
eaf4ba6e
OP
6957 (sha256
6958 (base32
0698633d 6959 "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj"))))
eaf4ba6e
OP
6960 (build-system emacs-build-system)
6961 (propagated-inputs
6962 `(("emacs-f" ,emacs-f)
6963 ("emacs-s" ,emacs-s)))
8505d348
AK
6964 (native-inputs
6965 `(("ert-runner" ,ert-runner)))
eaf4ba6e 6966 (arguments
d1d41db6
MC
6967 `(#:tests? #t
6968 #:test-command '("ert-runner")))
eaf4ba6e
OP
6969 (home-page "https://github.com/rmuslimov/browse-at-remote")
6970 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
6971 (description
6972 "This Emacs package allows you to open a target page on
6973github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
6974It supports dired buffers and opens them in tree mode at destination.")
6975 (license license:gpl3+))))
63253098
OP
6976
6977(define-public emacs-tiny
6978 (package
6979 (name "emacs-tiny")
d8ec1b71 6980 (version "0.2.1")
63253098
OP
6981 (source
6982 (origin
6983 (method url-fetch)
6984 (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
6985 (sha256
6986 (base32
d8ec1b71 6987 "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
63253098
OP
6988 (build-system emacs-build-system)
6989 (home-page "https://github.com/abo-abo/tiny")
6990 (synopsis "Quickly generate linear ranges in Emacs")
6991 (description
6992 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
a913d9d9 6993It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
63253098
OP
6994proficiency is an advantage, since you can transform your numeric range with
6995an elisp expression.")
0b88f536 6996 (license license:gpl3+)))
4aafce22 6997
7081d4e0
RW
6998(define-public emacs-emojify
6999 (package
7000 (name "emacs-emojify")
7001 (version "0.4")
7002 (source
7003 (origin
7004 (method url-fetch)
7005 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
7006 "releases/download/v" version "/emojify-"
7007 version ".tar"))
7008 (sha256
7009 (base32
7010 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
7011 (build-system emacs-build-system)
7012 (arguments
7013 `(#:phases
7014 (modify-phases %standard-phases
7015 (add-after 'install 'install-data
7016 (lambda* (#:key outputs #:allow-other-keys)
7017 (copy-recursively "data"
7018 (string-append (assoc-ref outputs "out")
7019 "/share/emacs/site-lisp/guix.d/"
7020 "emojify-" ,version "/data"))
7021 #t)))))
7022 (propagated-inputs
7023 `(("emacs-ht" ,emacs-ht)))
7024 (home-page "https://github.com/iqbalansari/emacs-emojify")
7025 (synopsis "Display emojis in Emacs")
7026 (description "This package displays emojis in Emacs similar to how Github,
7027Slack, and other websites do. It can display plain ASCII like @code{:)} as
7028well as Github-style emojis like @code{:smile:}. It provides a minor mode
7029@code{emojify-mode} to enable the display of emojis in a buffer.")
7030 (license license:gpl3+)))
7031
9c058ef2
RW
7032(define-public emacs-websocket
7033 (package
7034 (name "emacs-websocket")
a6334e6e 7035 (version "1.10")
9c058ef2
RW
7036 (source
7037 (origin
a6334e6e
RW
7038 (method git-fetch)
7039 (uri (git-reference
7040 (url "https://github.com/ahyatt/emacs-websocket.git")
7041 (commit version)))
7042 (file-name (string-append name "-" version "-checkout"))
9c058ef2
RW
7043 (sha256
7044 (base32
a6334e6e 7045 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
9c058ef2
RW
7046 (build-system emacs-build-system)
7047 (home-page "http://elpa.gnu.org/packages/websocket.html")
7048 (synopsis "Emacs WebSocket client and server")
7049 (description "This is an Elisp library for WebSocket clients to talk to
7050WebSocket servers, and for WebSocket servers to accept connections from
7051WebSocket clients. This library is designed to be used by other library
7052writers, to write applications that use WebSockets, and is not useful by
7053itself.")
7054 (license license:gpl3+)))
7055
a204c14c
RW
7056(define-public emacs-oauth2
7057 (package
7058 (name "emacs-oauth2")
7059 (version "0.11")
7060 (source
7061 (origin
7062 (method url-fetch)
7063 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
7064 version ".el"))
7065 (sha256
7066 (base32
7067 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
7068 (build-system emacs-build-system)
7069 (home-page "http://elpa.gnu.org/packages/oauth2.html")
7070 (synopsis "OAuth 2.0 authorization protocol implementation")
7071 (description
7072 "This package provides an Elisp implementation of the OAuth 2.0 draft.
7073The main entry point is @code{oauth2-auth-and-store} which will return a token
7074structure. This token structure can be then used with
7075@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
7076retrieve any data that need OAuth authentication to be accessed. If the token
7077needs to be refreshed, the code handles it automatically and stores the new
7078value of the access token.")
7079 (license license:gpl3+)))
7080
26b388ce
RW
7081(define-public emacs-circe
7082 (package
7083 (name "emacs-circe")
7084 (version "2.6")
7085 (source
7086 (origin
7087 (method git-fetch)
7088 (uri (git-reference
7089 (url "https://github.com/jorgenschaefer/circe.git")
7090 (commit (string-append "v" version))))
7091 (file-name (string-append name "-" version "-checkout"))
7092 (sha256
7093 (base32
7094 "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"))))
7095 (build-system emacs-build-system)
7096 ;; In order to securely connect to an IRC server using TLS, Circe requires
7097 ;; the GnuTLS binary.
7098 (propagated-inputs
7099 `(("gnutls" ,gnutls)))
7100 (home-page "https://github.com/jorgenschaefer/circe")
7101 (synopsis "Client for IRC in Emacs")
7102 (description "Circe is a Client for IRC in Emacs. It integrates well with
7103the rest of the editor, using standard Emacs key bindings and indicating
7104activity in channels in the status bar so it stays out of your way unless you
7105want to use it.")
7106 (license license:gpl3+)))
7107
5c8cdd4e 7108(define-public emacs-slack
deb48944
RW
7109 (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
7110 (revision "4"))
5c8cdd4e
RW
7111 (package
7112 (name "emacs-slack")
7113 (version (string-append "0-" revision "." (string-take commit 7)))
7114 (source (origin
7115 (method git-fetch)
7116 (uri (git-reference
7117 (url "https://github.com/yuya373/emacs-slack.git")
7118 (commit commit)))
7119 (file-name (string-append name "-" version "-checkout"))
7120 (sha256
7121 (base32
deb48944 7122 "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
5c8cdd4e
RW
7123 (build-system emacs-build-system)
7124 (propagated-inputs
7125 `(("emacs-alert" ,emacs-alert)
7126 ("emacs-emojify" ,emacs-emojify)
7127 ("emacs-request" ,emacs-request)
7128 ("emacs-websocket" ,emacs-websocket)
7129 ("emacs-oauth2" ,emacs-oauth2)
7130 ("emacs-circe" ,emacs-circe)))
7131 (home-page "https://github.com/yuya373/emacs-slack")
7132 (synopsis "Slack client for Emacs")
7133 (description "This package provides an Emacs client for the Slack
7134messaging service.")
7135 (license license:gpl3+))))
7136
4aafce22
JN
7137(define-public emacs-bash-completion
7138 (package
7139 (name "emacs-bash-completion")
7140 (version "2.0.0")
7141 (source
7142 (origin
7143 (method url-fetch)
7144 (uri (string-append
7145 "https://github.com/szermatt/emacs-bash-completion/archive/v"
7146 version ".tar.gz"))
7147 (file-name (string-append name "-" version ".tar.gz"))
7148 (sha256
7149 (base32
7150 "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
7151 (inputs `(("bash" ,bash)))
7152 (build-system emacs-build-system)
7153 (arguments
7154 `(#:phases
7155 (modify-phases %standard-phases
7156 (add-before 'install 'configure
7157 (lambda* (#:key inputs #:allow-other-keys)
7158 (let ((bash (assoc-ref inputs "bash")))
7159 (emacs-substitute-variables "bash-completion.el"
7160 ("bash-completion-prog" (string-append bash "/bin/bash"))))
7161 #t)))))
7162 (home-page "https://github.com/szermatt/emacs-bash-completion")
7163 (synopsis "BASH completion for the shell buffer")
7164 (description
7165 "@code{bash-completion} defines dynamic completion hooks for shell-mode
7166and shell-command prompts that are based on bash completion.")
7167 (license license:gpl2+)))
d02c2873
KM
7168
7169(define-public emacs-easy-kill
7170 (package
7171 (name "emacs-easy-kill")
7172 (version "0.9.3")
7173 (source (origin
7174 (method url-fetch)
7175 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
7176 version ".tar"))
7177 (sha256
7178 (base32
7179 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
7180 (build-system emacs-build-system)
7181 (home-page "https://github.com/leoliu/easy-kill")
7182 (synopsis "Kill and mark things easily in Emacs")
7183 (description
7184 "This package provides commands @code{easy-kill} and @code{easy-mark} to
7185let users kill or mark things easily.")
7186 (license license:gpl3+)))
9faa46ee
MC
7187
7188(define-public emacs-csv-mode
7189 (package
7190 (name "emacs-csv-mode")
7191 (version "1.7")
7192 (source
7193 (origin
7194 (method url-fetch)
7195 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
7196 version ".el"))
7197 (sha256
7198 (base32
7199 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
7200 (build-system emacs-build-system)
7201 (home-page
7202 "http://elpa.gnu.org/packages/csv-mode.html")
7203 (synopsis
7204 "Major mode for editing comma/char separated values")
7205 (description
7206 "This Emacs package implements CSV mode, a major mode for editing records
7207in a generalized CSV (character-separated values) format.")
7208 (license license:gpl3+)))
3fe4c9dc
OP
7209
7210(define-public emacs-transmission
7211 (package
7212 (name "emacs-transmission")
5ad13e6c 7213 (version "0.12.1")
3fe4c9dc
OP
7214 (source (origin
7215 (method url-fetch)
7216 (uri (string-append
7217 "https://github.com/holomorph/transmission/archive/"
7218 version ".tar.gz"))
7219 (file-name (string-append name "-" version ".tar.gz"))
7220 (sha256
7221 (base32
5ad13e6c 7222 "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
3fe4c9dc
OP
7223 (build-system emacs-build-system)
7224 (home-page "https://github.com/holomorph/transmission")
7225 (synopsis "Emacs interface to a Transmission session")
7226 (description "This package provides an Emacs interface to interact with a
7227running session of the Transmission Bittorrent client.
7228
7229Features:
7230
7231@itemize
7232@item List, add, start/stop, verify, remove torrents.
7233@item Set speed limits, ratio limits, bandwidth priorities, trackers.
7234@item Navigate to the corresponding file list, torrent info, peer info
7235contexts.
7236@item Toggle downloading and set priorities for individual files.
7237@end itemize\n")
7238 (license license:gpl3+)))
a6d02fc1 7239
c46e654f
RW
7240(define-public emacs-polymode
7241 ;; There hasn't been a proper release.
7242 (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
7243 (revision "1"))
7244 (package
7245 (name "emacs-polymode")
7246 (version (string-append "1.0-" revision "." (string-take commit 7)))
7247 (source (origin
7248 (method git-fetch)
7249 (uri (git-reference
7250 (url "https://github.com/vspinu/polymode.git")
7251 (commit commit)))
7252 (file-name (string-append name "-" version "-checkout"))
7253 (sha256
7254 (base32
7255 "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
7256 (build-system emacs-build-system)
74b4d7a1
MC
7257 (arguments
7258 `(#:include (cons* "^modes/.*\\.el$" %default-include)
7259 #:phases
7260 (modify-phases %standard-phases
7261 (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
7262 (lambda _
7263 (setenv "EMACSLOADPATH"
7264 (string-append (getenv "EMACSLOADPATH")
7265 ":" (getcwd) "/modes" ":")))))))
c46e654f
RW
7266 (home-page "https://github.com/vspinu/polymode")
7267 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
7268 (description "Polymode is an Emacs package that offers generic support
7269for multiple major modes inside a single Emacs buffer. It is lightweight,
7270object oriented and highly extensible. Creating a new polymode typically
7271takes only a few lines of code. Polymode also provides extensible facilities
7272for external literate programming tools for exporting, weaving and tangling.")
7273 (license license:gpl3+))))
7274
a6d02fc1
OP
7275(define-public eless
7276 (package
7277 (name "eless")
7278 (version "0.3")
7279 (source (origin
7280 (method url-fetch)
7281 (uri (string-append
7282 "https://github.com/kaushalmodi/eless/archive/"
7283 "v" version ".tar.gz"))
7284 (file-name (string-append name "-" version ".tar.gz"))
7285 (sha256
7286 (base32
7287 "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
7288 (build-system trivial-build-system)
7289 (inputs
7290 `(("bash" ,bash)))
7291 (native-inputs
7292 `(("tar" ,tar)
7293 ("gzip" ,gzip)))
7294 (arguments
7295 `(#:modules ((guix build utils))
7296 #:builder
7297 (begin
7298 (use-modules (guix build utils))
7299 (setenv "PATH" (string-append
7300 (assoc-ref %build-inputs "tar") "/bin" ":"
7301 (assoc-ref %build-inputs "gzip") "/bin"))
7302 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7303 (chdir (string-append "eless" "-" ,version))
7304 (substitute* "eless" (("/usr/bin/env bash")
7305 (string-append (assoc-ref %build-inputs "bash")
7306 "/bin/bash")))
7307 (install-file "eless" (string-append %output "/bin"))
7308 (install-file "doc/eless.info" (string-append %output "/share/info"))
7309 #t)))
7310 (home-page "https://github.com/kaushalmodi/eless")
7311 (synopsis "Use Emacs as a paginator")
7312 (description "@code{eless} provides a combination of Bash script
7313and a minimal Emacs view-mode.
7314
7315Feautures:
7316
7317@itemize
7318@item Independent of a user’s Emacs config.
7319@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
7320@item Not require an Emacs server to be already running.
7321@item Syntax highlighting.
7322@item Org-mode file rendering.
7323@item @code{man} page viewer.
7324@item Info viewer.
7325@item Dired, wdired, (batch edit symbolic links).
7326@item Colored diffs, git diff, git log, ls with auto ANSI detection.
7327@item Filter log files lines matching a regexp.
7328@item Auto-revert log files similar to @code{tail -f}.
7329@item Quickly change frame and font sizes.
7330@end itemize\n")
7331 (license license:expat)))
491cbd35
MG
7332
7333(define-public emacs-evil-matchit
7334 (package
7335 (name "emacs-evil-matchit")
9a910133 7336 (version "2.2.6")
491cbd35
MG
7337 (source
7338 (origin
7339 (method url-fetch)
7340 (uri (string-append
7341 "https://github.com/redguardtoo/evil-matchit/archive/"
7342 version ".tar.gz"))
7343 (file-name (string-append name "-" version ".tar.gz"))
7344 (sha256
7345 (base32
9a910133 7346 "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
491cbd35 7347 (build-system emacs-build-system)
80c4aabb
MC
7348 (propagated-inputs
7349 `(("emacs-evil" ,emacs-evil)))
491cbd35
MG
7350 (home-page "https://github.com/redguardtoo/evil-matchit")
7351 (synopsis "Vim matchit ported into Emacs")
7352 (description
7353 "@code{evil-matchit} is a minor mode for jumping between matching tags in
7354evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
7355 (license license:gpl3+)))
ab8a4a78
AI
7356
7357(define-public emacs-evil-smartparens
7358 (package
7359 (name "emacs-evil-smartparens")
7360 (version "0.4.0")
7361 (source
7362 (origin
7363 (method url-fetch)
7364 (uri (string-append
7365 "https://github.com/expez/evil-smartparens/archive/"
7366 version ".tar.gz"))
7367 (file-name (string-append name "-" version ".tar.gz"))
7368 (sha256
7369 (base32
7370 "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
7371 (build-system emacs-build-system)
7372 (propagated-inputs
7373 `(("emacs-evil" ,emacs-evil)
7374 ("emacs-smartparens" ,emacs-smartparens)))
7375 (home-page "https://github.com/expez/evil-smartparens")
7376 (synopsis "Emacs Evil integration for Smartparens")
7377 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
7378makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
7379emulates Vim features and provides Vim-like key bindings.")
7380 (license license:gpl3+)))
2891ea39
AI
7381
7382(define-public emacs-evil-quickscope
7383 (package
7384 (name "emacs-evil-quickscope")
7385 (version "0.1.4")
7386 (source
7387 (origin
7388 (method url-fetch)
7389 (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
7390 version ".tar.gz"))
7391 (file-name (string-append name "-" version ".tar.gz"))
7392 (sha256
7393 (base32
7394 "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
7395 (build-system emacs-build-system)
7396 (propagated-inputs
7397 `(("emacs-evil" ,emacs-evil)))
7398 (arguments
d1d41db6
MC
7399 `(#:tests? #t
7400 #:test-command '("emacs" "--batch"
7401 "-l" "evil-quickscope-tests.el"
7402 "-f" "ert-run-tests-batch-and-exit")))
2891ea39
AI
7403 (home-page "https://github.com/blorbx/evil-quickscope")
7404 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
7405 (description "@code{emacs-evil-quickscope} highlights targets for Evil
7406mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
7407port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
7408features and provides Vim-like key bindings.")
7409 (license license:gpl3+)))
2a67ff1f
MO
7410
7411(define-public emacs-bongo
7412 (package
7413 (name "emacs-bongo")
7414 (version "1.0")
7415 (source
7416 (origin
7417 (method url-fetch)
7418 (uri (string-append
7419 "https://github.com/dbrock/bongo/archive/"
7420 version ".tar.gz"))
7421 (file-name (string-append name "-" version ".tar.gz"))
7422 (sha256
7423 (base32
7424 "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
7425 (build-system emacs-build-system)
7426 (home-page "https://github.com/dbrock/bongo")
7427 (synopsis "Media player for Emacs")
7428 (description
7429 "This package provides a flexible media player for Emacs. @code{Bongo}
7430supports multiple backends such as @code{vlc}, @code{mpg123},
7431@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
7432@code{afplay}.")
7433 (license license:gpl2+)))
548cc74c
CB
7434
7435(define-public groovy-emacs-modes
7436 (package
7437 (name "groovy-emacs-modes")
7438 (version "2.0")
7439 (source (origin
7440 (method url-fetch)
7441 (uri (string-append
7442 "https://github.com/Groovy-Emacs-Modes/" name
7443 "/archive/" version ".tar.gz"))
7444 (file-name (string-append name "-" version ".tar.gz"))
7445 (sha256
7446 (base32
7447 "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
7448 (build-system emacs-build-system)
7449 (propagated-inputs
7450 `(("emacs-s" ,emacs-s)))
7451 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
7452 (synopsis "Groovy related modes for Emacs")
7453 (description
7454 "This package provides @code{groovy-mode} for syntax highlighing in
7455Groovy source files, REPL integration with run-groovy and Grails project
7456navigation with the grails mode.")
7457 (license license:gpl3+)))
02267798
LC
7458
7459(define-public org-tree-slide
7460 (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134")
7461 (revision "0"))
7462 (package
7463 (name "emacs-org-tree-slide")
7464 (version (git-version "0.1" revision commit))
7465 (home-page "https://github.com/takaxp/org-tree-slide")
7466 (source (origin
7467 (method git-fetch)
7468 (uri (git-reference (url home-page) (commit commit)))
7469 (sha256
7470 (base32
7471 "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf"))
7472 (file-name (git-file-name name version))))
7473 (build-system emacs-build-system)
7474 (synopsis "Presentation tool for org-mode")
7475 (description
7476 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
7477@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
7478@kbd{C-<} to jump to the next and previous slide.")
7479 (license license:gpl3+))))
ac07b94a
OP
7480
7481(define-public emacs-scratch-el
7482 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
7483 (revision "1"))
7484 (package
7485 (name "emacs-scratch-el")
7486 (version (git-version "1.2" revision commit))
7487 (source (origin
7488 (method git-fetch)
7489 (uri (git-reference
7490 (url "https://github.com/ieure/scratch-el.git")
7491 (commit commit)))
7492 (file-name (git-file-name name version))
7493 (sha256
7494 (base32
7495 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
7496 (build-system emacs-build-system)
7497 (native-inputs
7498 `(("texinfo" ,texinfo)))
7499 (arguments
7500 '(#:phases
7501 (modify-phases %standard-phases
7502 (add-after 'install 'install-doc
7503 (lambda* (#:key outputs #:allow-other-keys)
7504 (unless (invoke "makeinfo" "scratch.texi")
7505 (error "makeinfo failed"))
7506 (install-file "scratch.info"
7507 (string-append (assoc-ref outputs "out")
7508 "/share/info"))
7509 #t)))))
7510 (home-page "https://github.com/ieure/scratch-el/")
7511 (synopsis "Create scratch buffers with the same mode as current buffer")
7512 (description "Scratch is an extension to Emacs that enables one to create
7513scratch buffers that are in the same mode as the current buffer. This is
7514notably useful when working on code in some language; you may grab code into a
7515scratch buffer, and, by virtue of this extension, do so using the Emacs
7516formatting rules for that language.")
7517 (license license:bsd-2))))
5b238292 7518
62950ec7
MC
7519(define-public emacs-kv
7520 (package
7521 (name "emacs-kv")
7522 (version "0.0.19")
7523 (source
7524 (origin
7525 (method git-fetch)
7526 (uri (git-reference
7527 (url "https://github.com/nicferrier/emacs-kv.git")
7528 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
7529 (file-name (string-append name "-" version "-checkout"))
7530 (sha256
7531 (base32
7532 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
7533 (build-system emacs-build-system)
7534 (arguments
7535 `(#:tests? #t
7536 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
7537 "-f" "ert-run-tests-batch-and-exit")))
7538 (home-page "https://github.com/nicferrier/emacs-kv")
7539 (synopsis "Key/Value data structures library for Emacs Lisp")
7540 (description "@code{emacs-kv} is a collection of tools for dealing with
7541key/value data structures such as plists, alists and hash-tables in Emacs
7542Lisp.")
7543 (license license:gpl3+)))
7544
8d899214
RW
7545(define-public emacs-esxml
7546 (package
7547 (name "emacs-esxml")
7548 (version "0.3.4")
7549 (source (origin
7550 (method git-fetch)
7551 (uri (git-reference
7552 (url "https://github.com/tali713/esxml.git")
7553 (commit version)))
7554 (file-name (git-file-name name version))
7555 (sha256
7556 (base32
7557 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
7558 (build-system emacs-build-system)
9835a71d
MC
7559 (arguments
7560 `(#:phases
7561 (modify-phases %standard-phases
7562 (add-after 'unpack 'fix-sources
7563 (lambda _
7564 ;; See: https://github.com/tali713/esxml/pull/28.
7565 (substitute* "css-lite.el"
7566 ((";;; main interface")
7567 (string-append ";;; main interface\n"
7568 "(require 'cl-lib)"))
7569 (("mapcan")
7570 "cl-mapcan")
7571 (("',\\(cl-mapcan #'process-css-rule rules\\)")
7572 "(cl-mapcan #'process-css-rule ',rules)"))
7573 (substitute* "esxml-form.el"
7574 ((",esxml-form-field-defn")
7575 "#'esxml-form-field-defn"))
7576 ;; See: https://github.com/tali713/esxml/issues/25
7577 (delete-file "esxpath.el")
7578 #t)))))
7579 (propagated-inputs
7580 `(("emacs-kv" ,emacs-kv)))
8d899214
RW
7581 (home-page "https://github.com/tali713/esxml/")
7582 (synopsis "SXML for EmacsLisp")
7583 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
7584Simply, this is the easiest way to write HTML or XML in Lisp. This library
7585uses the native form of XML representation as used by many libraries already
7586included within Emacs. See @code{esxml-to-xml} for a concise description of
7587the format.")
7588 (license license:gpl3+)))
7589
5f78ce49
RW
7590(define-public emacs-nov-el
7591 (package
7592 (name "emacs-nov-el")
7593 (version "0.2.2")
7594 (source (origin
7595 (method git-fetch)
7596 (uri (git-reference
7597 (url "https://github.com/wasamasa/nov.el.git")
7598 (commit version)))
7599 (file-name (git-file-name name version))
7600 (sha256
7601 (base32
7602 "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb"))))
7603 (build-system emacs-build-system)
7604 (arguments
7605 `(#:phases
7606 (modify-phases %standard-phases
7607 (add-after 'unpack 'embed-path-to-unzip
7608 (lambda _
7609 (substitute* "nov.el"
7610 (("\\(executable-find \"unzip\"\\)")
7611 (string-append "\"" (which "unzip") "\"")))
7612 #t)))))
7613 (propagated-inputs
7614 `(("emacs-dash" ,emacs-dash)
7615 ("emacs-esxml" ,emacs-esxml)))
7616 (inputs
7617 `(("unzip" ,unzip)))
7618 (home-page "https://github.com/wasamasa/nov.el/")
7619 (synopsis "Major mode for reading EPUBs in Emacs")
7620 (description "@code{nov.el} provides a major mode for reading EPUB
7621documents.
7622
7623Features:
7624
7625@itemize
7626@item Basic navigation (jump to TOC, previous/next chapter)
7627@item Remembering and restoring the last read position
7628@item Jump to next chapter when scrolling beyond end
7629@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
7630@item Hyperlinks to internal and external targets
7631@item Supports textual and image documents
7632@item View source of document files
7633@item Metadata display
7634@item Image rescaling
7635@end itemize
7636")
7637 (license license:gpl3+)))
7638
5b238292
OP
7639(define-public epipe
7640 (package
7641 (name "epipe")
7642 (version "0.1.0")
7643 (source
7644 (origin
7645 (method url-fetch)
7646 (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
7647 version ".tar.gz"))
7648 (file-name (string-append name "-" version ".tar.gz"))
7649 (sha256
7650 (base32
7651 "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
7652 (build-system trivial-build-system)
7653 (inputs
7654 `(("bash" ,bash)
7655 ("perl" ,perl)))
7656 (native-inputs
7657 `(("tar" ,tar)
7658 ("gzip" ,gzip)))
7659 (arguments
7660 `(#:modules
7661 ((guix build utils))
7662 #:builder
7663 (begin
7664 (use-modules (guix build utils))
7665 ;; Extract source
7666 (setenv "PATH" (string-append
7667 (assoc-ref %build-inputs "tar") "/bin" ":"
7668 (assoc-ref %build-inputs "gzip") "/bin"))
7669 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
7670 (chdir (string-append ,name "-" ,version))
7671 ;; Patch shebangs
7672 (substitute* "epipe"
7673 (("/usr/bin/env bash")
7674 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
7675 (patch-shebang "epipe.pl"
7676 (list (string-append (assoc-ref %build-inputs "perl")
7677 "/bin")))
7678 ;; Installation
7679 (for-each (lambda (file)
7680 (install-file file (string-append %output "/bin")))
7681 '("epipe" "epipe.pl"))
7682 #t)))
7683 (home-page "https://github.com/cute-jumper/epipe")
7684 (synopsis "Pipe to the @code{emacsclient}")
7685 (description "@code{epipe} provides an utility to use your editor in
7686the pipeline, featuring the support for running @code{emacsclient}.")
7687 (license license:gpl3+)))
dc97f7e2
CB
7688
7689(define-public emacs-hcl-mode
7690 (package
7691 (name "emacs-hcl-mode")
7692 (version "0.03")
7693 (source
7694 (origin
7695 (method url-fetch)
7696 (uri (string-append
7697 "https://github.com/syohex/emacs-hcl-mode/archive/"
7698 version ".tar.gz"))
7699 (file-name (string-append name "-" version ".tar.gz"))
7700 (sha256
7701 (base32
7702 "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
7703 (build-system emacs-build-system)
7704 (home-page "https://github.com/syohex/emacs-hcl-mode")
7705 (synopsis "Major mode for the Hashicorp Configuration Language")
7706 (description
7707 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
7708@acronym{HCL, Hashicorp Configuration Language}. It provides syntax
7709highlighting and indentation support.")
7710 (license license:gpl3+)))
68d70f6a
CB
7711
7712(define-public emacs-terraform-mode
7713 (package
7714 (name "emacs-terraform-mode")
7715 (version "0.06")
7716 (source
7717 (origin
7718 (method url-fetch)
7719 (uri (string-append
7720 "https://github.com/syohex/emacs-terraform-mode/archive/"
7721 version ".tar.gz"))
7722 (file-name (string-append name "-" version ".tar.gz"))
7723 (sha256
7724 (base32
7725 "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
7726 (build-system emacs-build-system)
7727 (propagated-inputs
7728 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
7729 (home-page "https://github.com/syohex/emacs-terraform-mode")
7730 (synopsis "Major mode for Terraform")
7731 (description
7732 "@code{emacs-terraform-mode} provides a major mode for working with
7733@uref{https://www.terraform.io/, Terraform} configuration files. Most of the
7734functionality is inherited from @code{hcl-mode}.")
7735 (license license:gpl3+)))
22d62814
KH
7736
7737(define-public emacs-exec-path-from-shell
7738 (package
7739 (name "emacs-exec-path-from-shell")
7740 (version "1.11")
7741 (source
7742 (origin
7743 (method url-fetch)
7744 (uri (string-append
7745 "https://stable.melpa.org/packages/exec-path-from-shell-"
7746 version ".el"))
7747 (sha256
7748 (base32
7749 "03qjgb81cq1l3j54lvlf98r75vmmgd06mj6qh5wa6mz4xzp4w26r"))))
7750 (build-system emacs-build-system)
7751 (home-page "https://github.com/purcell/exec-path-from-shell")
7752 (synopsis "Get environment variables such as @var{PATH} from the shell")
7753 (description
7754 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
7755from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
7756the like work as expected on systems on which Emacs is not guaranteed to
7757inherit a login shell's environment variables. It also allows other
7758environment variables to be retrieved from the shell, so that Emacs will see
7759the same values you get in a terminal.")
7760 (license license:gpl3+)))
5d818b35
KH
7761
7762(define-public emacs-deft
7763 (package
7764 (name "emacs-deft")
7765 (version "0.8")
7766 (source
7767 (origin
7768 (method url-fetch)
7769 (uri (string-append "https://stable.melpa.org/packages/deft-"
7770 version ".el"))
7771 (sha256
7772 (base32
7773 "1vb9cjxskc7c0yyf9pvxy1fzypg1vrcgwnjz0m3hslinsgdyig58"))))
7774 (build-system emacs-build-system)
7775 (home-page "https://jblevins.org/projects/deft/")
7776 (synopsis "Quickly browse, filter, and edit plain text notes")
7777 (description
7778 "Deft is an Emacs mode for quickly browsing, filtering, and editing
7779directories of plain text notes, inspired by Notational Velocity.")
7780 (license license:bsd-3)))
62d1105c
SB
7781
7782(define-public emacs-anzu
7783 (package
7784 (name "emacs-anzu")
7785 (version "0.62")
7786 (source
7787 (origin
7788 (method url-fetch)
2d11acb6
SB
7789 (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
7790 version ".tar.gz"))
7791 (file-name (string-append name "-" version ".tar.gz"))
62d1105c
SB
7792 (sha256
7793 (base32
2d11acb6 7794 "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
62d1105c
SB
7795 (build-system emacs-build-system)
7796 (home-page "https://github.com/syohex/emacs-anzu")
7797 (synopsis "Show number of matches in mode-line while searching")
7798 (description
7799 "Anzu provides a minor mode which displays \"current match/total
7800matches\" in the mode line in various search modes. This is an Emacs port of
7801Anzu.zim.")
7802 (license license:gpl3+)))
c3581ef9
ML
7803
7804(define-public emacs-emmet-mode
7805 (package
7806 (name "emacs-emmet-mode")
7807 (version "1.0.8")
7808 (source (origin
7809 (method url-fetch)
7810 (uri (string-append "https://github.com/smihica/emmet-mode"
7811 "/archive/" version ".tar.gz"))
7812 (file-name (string-append name "-" version ".tar.gz"))
7813 (sha256
7814 (base32
7815 "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
7816 (build-system emacs-build-system)
7817 (home-page "https://github.com/smihica/emmet-mode")
7818 (synopsis "Unofficial Emmet's support for Emacs")
7819 (description
7820 "Unfold CSS-selector-like expressions to markup. It is intended to be
7821used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
7822 (license license:gpl3+)))
03efe78c 7823
82bead75
RW
7824(define-public emacs-ergoemacs-mode
7825 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
7826 (revision "1"))
7827 (package
7828 (name "emacs-ergoemacs-mode")
7829 (version (git-version "5.16.10.12" revision commit))
7830 (source
7831 (origin
7832 (method git-fetch)
7833 (uri (git-reference
7834 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
7835 (commit commit)))
7836 (sha256
7837 (base32
7838 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
7839 (build-system emacs-build-system)
7840 (propagated-inputs
7841 `(("emacs-undo-tree" ,emacs-undo-tree)))
7842 (home-page "https://ergoemacs.github.io/")
7843 (synopsis "Emacs mode based on common modern interface and ergonomics")
7844 (description
7845 "This package provides an efficient Emacs keybinding set based on
7846statistics of command frequency, and supports common shortcuts for open,
7847close, copy, cut, paste, undo, redo.")
7848 (license license:gpl3+))))
7849
03efe78c
KH
7850(define-public emacs-password-store
7851 (package
7852 (name "emacs-password-store")
7853 (version "1.7.1")
7854 (source (origin
7855 (method url-fetch)
7856 (uri
7857 (string-append "https://git.zx2c4.com/password-store/snapshot/"
7858 "password-store-" version ".tar.xz"))
7859 (sha256
7860 (base32
7861 "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
7862 (build-system emacs-build-system)
7863 (arguments
7864 `(#:phases
7865 (modify-phases %standard-phases
7866 (add-after 'unpack 'extract-el-file
7867 (lambda _
7868 (copy-file "contrib/emacs/password-store.el" "password-store.el")
7869 (delete-file-recursively "contrib")
7870 (delete-file-recursively "man")
7871 (delete-file-recursively "src")
7872 (delete-file-recursively "tests"))))))
7873 (propagated-inputs
7874 `(("emacs-f" ,emacs-f)
7875 ("emacs-s" ,emacs-s)
7876 ("password-store" ,password-store)))
7877 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
7878 (synopsis "Password store (pass) support for Emacs")
7879 (description
7880 "This package provides functions for working with pass (\"the
7881standard Unix password manager\").")
7882 (license license:gpl2+)))
7883
ab4d1c26
KH
7884(define-public emacs-pass
7885 (package
7886 (name "emacs-pass")
7887 (version "1.7")
7888 (source (origin
7889 (method url-fetch)
7890 (uri (string-append
7891 "https://github.com/NicolasPetton/pass/archive/"
7892 version ".tar.gz"))
7893 (sha256
7894 (base32
7895 "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
7896 (file-name (string-append name "-" version ".tar.gz"))))
7897 (build-system emacs-build-system)
7898 (propagated-inputs
7899 `(("emacs-password-store" ,emacs-password-store)
7900 ("emacs-f" ,emacs-f)))
7901 (home-page "https://github.com/NicolasPetton/pass")
7902 (synopsis "Major mode for @file{password-store.el}")
7903 (description "This is a major mode for managing password-store (pass)
7904keychains. The keychain entries are displayed in a directory-like structure
7905and can be consulted and modified.")
7906 (license license:gpl3+)))
7907
d4bb4551
SB
7908(define-public emacs-evil-anzu
7909 (package
7910 (name "emacs-evil-anzu")
7911 (version "0.03")
7912 (source
7913 (origin
7914 (method url-fetch)
7915 (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
7916 "/archive/" version ".tar.gz"))
7917 (file-name (string-append name "-" version ".tar.gz"))
7918 (sha256
7919 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
7920 (build-system emacs-build-system)
7921 (propagated-inputs
7922 `(("emacs-evil" ,emacs-evil)
7923 ("emacs-anzu" ,emacs-anzu)))
7924 (home-page "https://github.com/syohex/emacs-evil-anzu")
7925 (synopsis "Anzu for evil-mode")
7926 (description "@code{anzu} provides a minor mode that displays the current
7927match and total match information in the mode-line in various search modes.")
7928 (license license:gpl3+)))
086bfb37
OP
7929
7930(define-public emacs-pg
7931 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
7932 (package
7933 (name "emacs-pg")
7934 (version (git-version "0.1" "1" commit))
7935 (source (origin
7936 (method git-fetch)
7937 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
7938 (commit commit)))
7939 (file-name (git-file-name name version))
7940 (sha256
7941 (base32
7942 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
7943 (build-system emacs-build-system)
7944 (home-page "https://github.com/cbbrowne/pg.el")
7945 (synopsis "Emacs Lisp interface for PostgreSQL")
7946 (description
7947 "This package provides an Emacs Lisp interface for PostgreSQL.")
7948 (license license:gpl3+))))
5b6d6747
OP
7949
7950(define-public emacs-cl-generic
7951 (package
7952 (name "emacs-cl-generic")
7953 (version "0.3")
7954 (source
7955 (origin
7956 (method url-fetch)
7957 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
7958 version ".el"))
7959 (sha256
7960 (base32
7961 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
7962 (build-system emacs-build-system)
7963 (home-page "https://elpa.gnu.org/packages/seq.html")
7964 (synopsis
7965 "Forward @code{cl-generic} compatibility for Emacs before version 25")
7966 (description "This package provides a subset of the features of the
7967@code{cl-generic} package introduced in Emacs-25, for use on previous
7968@code{emacsen}.")
7969 (license license:gpl3+)))
6c92b440
OP
7970
7971(define-public emacs-finalize
7972 (package
7973 (name "emacs-finalize")
7974 (version "2.0.0")
7975 (source
7976 (origin
7977 (method url-fetch)
7978 (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
7979 version ".tar.gz"))
7980 (file-name (string-append name "-" version ".tar.gz"))
7981 (sha256
7982 (base32
7983 "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
7984 (build-system emacs-build-system)
7985 (propagated-inputs
7986 `(("emacs-cl-generic" ,emacs-cl-generic)))
7987 (home-page "https://github.com/skeeto/elisp-finalize")
7988 (synopsis "Finalizers for Emacs Lisp")
7989 (description
7990 "This package will allows to immediately run a callback (a finalizer)
7991after its registered lisp object has been garbage collected. This allows for
7992extra resources, such as buffers and processes, to be cleaned up after the
7993object has been freed.")
7994 (license license:unlicense)))
4d089b5e
OP
7995
7996(define-public emacs-emacsql
7997 (package
7998 (name "emacs-emacsql")
7999 (version "2.0.3")
8000 (source
8001 (origin
8002 (method url-fetch)
8003 (uri (string-append "https://github.com/skeeto/emacsql/archive/"
8004 version ".tar.gz"))
8005 (file-name (string-append name "-" version ".tar.gz"))
8006 (sha256
8007 (base32
8008 "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
8009 (build-system emacs-build-system)
8010 (arguments
8011 `(#:modules ((guix build emacs-build-system)
8012 (guix build utils)
8013 (guix build emacs-utils)
8014 (srfi srfi-26))
8015 #:phases
8016 (modify-phases %standard-phases
8017 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
8018 (add-before 'install 'patch-elisp-shell-shebangs
8019 (lambda _
8020 (substitute* (find-files "." "\\.el")
8021 (("/bin/sh") (which "sh")))
8022 #t))
8023 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
8024 (lambda _
8025 (setenv "SHELL" "sh")))
8026 (add-after 'setenv-shell 'build-emacsql-sqlite
8027 (lambda _
8028 (invoke "make" "binary" "CC=gcc")))
8029 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
8030 ;; This build phase installs emacs-emacsql binary.
8031 (lambda* (#:key outputs #:allow-other-keys)
8032 (install-file "sqlite/emacsql-sqlite"
8033 (string-append (assoc-ref outputs "out")
8034 "/bin"))
8035 #t))
8036 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
8037 ;; This build phase removes interactive prompts
8038 ;; and makes sure Emacs look for binaries in the right places.
8039 (lambda* (#:key outputs #:allow-other-keys)
8040 (let ((file "emacsql-sqlite.el"))
8041 (chmod file #o644)
8042 (emacs-substitute-sexps file
8043 ;; Avoid interactive prompts.
8044 ("(defvar emacsql-sqlite-user-prompted" 't)
8045 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
8046 ("(executable-find" (which "gcc"))
8047 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
8048 ;; in the right place.
8049 ("(defvar emacsql-sqlite-executable"
8050 (string-append (assoc-ref outputs "out")
8051 "/bin/emacsql-sqlite"))))))
8052 (replace 'install
8053 (lambda* (#:key outputs #:allow-other-keys)
8054 (let* ((out (assoc-ref outputs "out")))
8055 (install-file "sqlite/emacsql-sqlite"
8056 (string-append out "/bin"))
8057 (for-each (cut install-file <>
8058 (string-append out "/share/emacs/site-lisp/guix.d/"
8059 "emacsql" "-" ,version))
8060 (find-files "." "\\.elc*$")))
8061 #t)))))
8062 (inputs
8063 `(("emacs-minimal" ,emacs-minimal)
8064 ("mysql" ,mysql)
8065 ("postgresql" ,postgresql)))
8066 (propagated-inputs
8067 `(("emacs-finalize" ,emacs-finalize)
8068 ("emacs-pg" ,emacs-pg)))
8069 (home-page "https://github.com/skeeto/emacsql")
8070 (synopsis "Emacs high-level SQL database front-end")
8071 (description "Any readable Lisp value can be stored as a value in EmacSQL,
8072including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
8073has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
8074object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
8075 (license license:gpl3+)))
93aba854
OP
8076
8077(define-public emacs-closql
8078 (package
8079 (name "emacs-closql")
8080 (version "0.5.1")
8081 (source
8082 (origin
8083 (method url-fetch)
8084 (uri (string-append "https://github.com/emacscollective/closql/archive/"
8085 "v" version ".tar.gz"))
8086 (file-name (string-append name "-" version ".tar.gz"))
8087 (sha256
8088 (base32
8089 "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
8090 (build-system emacs-build-system)
8091 (propagated-inputs
8092 `(("emacs-emacsql" ,emacs-emacsql)))
8093 (home-page "https://github.com/emacscollective/closql")
8094 (synopsis "Store EIEIO objects using EmacSQL")
8095 (description
8096 "This package allows to store uniform EIEIO objects in an EmacSQL
8097database. SQLite is used as backend. This library imposes some restrictions
8098on what kind of objects can be stored; it isn't intended to store arbitrary
8099objects. All objects have to share a common superclass and subclasses cannot
8100add any additional instance slots.")
8101 (license license:gpl3)))
452454e3
OP
8102
8103(define-public emacs-epkg
8104 ;; The release version is to old for the current database scheme.
8105 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
8106 (package
8107 (name "emacs-epkg")
8108 (version (git-version "3.0.0" "1" commit))
8109 (source
8110 (origin
8111 (method git-fetch)
8112 (uri (git-reference
8113 (url "https://github.com/emacscollective/epkg.git")
8114 (commit commit)))
8115 (file-name (git-file-name name version))
8116 (sha256
8117 (base32
8118 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
8119 (build-system emacs-build-system)
8120 (propagated-inputs
8121 `(("emacs-closql" ,emacs-closql)
8122 ("emacs-dash" ,emacs-dash)))
8123 (home-page "https://emacsmirror.net")
8124 (synopsis "Browse the Emacsmirror package database")
8125 (description "This package provides access to a local copy of the
8126Emacsmirror package database. It provides low-level functions for querying
8127the database and a @file{package.el} user interface for browsing the database.
8128Epkg itself is not a package manager.
8129
8130Getting a local copy:
8131
8132@example
8133git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
8134cd ~/.emacs.d/epkgs
8135git submodule init
8136git config --global url.https://github.com/.insteadOf git@@github.com:
8137git submodule update
8138@end example
8139
8140Some submodule may be missing. In this case Git will prompt for a GitHub user
8141name and password. To skip it press a @key{Return} key.
8142
8143You could get a Epkg package list by invoking @code{epkg-list-packages} in
8144Emacs.")
8145 (license license:gpl3+))))
c51e592d
KH
8146
8147(define-public emacs-elisp-slime-nav
8148 (package
8149 (name "emacs-elisp-slime-nav")
8150 (version "0.9")
8151 (source
8152 (origin
8153 (method url-fetch)
8154 (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
8155 version ".tar.gz"))
8156 (file-name (string-append name "-" version ".tar.gz"))
8157 (sha256
8158 (base32
8159 "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
8160 (build-system emacs-build-system)
8161 (home-page "https://github.com/purcell/elisp-slime-nav")
8162 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
8163 (description
8164 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
8165in @code{emacs-lisp-mode}, together with an elisp equivalent of
8166@code{slime-describe-symbol}.")
8167 (license license:gpl3+)))
4f95a118
CM
8168
8169(define-public emacs-dedicated
8170 (package
8171 (name "emacs-dedicated")
8172 (version "1.0.0")
8173 (source (origin
8174 (method url-fetch)
8175 (uri (string-append
8176 "https://github.com/emacsorphanage/dedicated/archive/"
8177 version
8178 ".tar.gz"))
8179 (sha256
8180 (base32
8181 "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
8182 (file-name (string-append name "-" version ".tar.gz"))))
8183 (build-system emacs-build-system)
8184 (home-page "https://github.com/emacsorphanage/dedicated")
8185 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
8186 (description
8187 "This simple Emacs minor mode allows you to toggle a window's
8188\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
8189files into that window. This can be quite handy since many commands will use
8190another window to show results (compilation mode, starting info, and so on).
8191A dedicated window won't be used for such a purpose. For details, please read
8192the source file.")
8193 (license license:gpl2+)))
59dc661f
OP
8194
8195(define-public emacs-nnreddit
8196 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
8197 (revision "1"))
8198 (package
8199 (name "emacs-nnreddit")
8200 (version (string-append "0.0.1-" revision "."
8201 (string-take commit 7)))
8202 (source (origin
8203 (method git-fetch)
8204 (uri (git-reference
8205 (url "https://github.com/paul-issartel/nnreddit.git")
8206 (commit commit)))
8207 (file-name (string-append name "-" version "-checkout"))
8208 (sha256
8209 (base32
8210 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
8211 (build-system emacs-build-system)
8212 (home-page "https://github.com/paul-issartel/nnreddit")
8213 (synopsis "Reddit backend for the Gnus newsreader")
8214 (description "@url{https://www.reddit.com} backend for the Gnus
8215newsreader.")
8216 (license license:gpl3+))))
63e6c4ad
OP
8217
8218(define-public emacs-makey
8219 (package
8220 (name "emacs-makey")
8221 (version "0.3")
8222 (source
8223 (origin
8224 (method url-fetch)
8225 (uri (string-append "https://github.com/mickeynp/makey/archive/"
8226 version ".tar.gz"))
8227 (file-name (string-append name "-" version ".tar.gz"))
8228 (sha256
8229 (base32
8230 "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
8231 (build-system emacs-build-system)
8232 (home-page "https://github.com/mickeynp/makey")
8233 (synopsis "Emacs interactive command-line mode")
8234 (description
8235 "This package provides an Emacs interactive command-line mode.")
8236 (license license:gpl3+)))
a34d562a
OP
8237
8238(define-public emacs-outorg
8239 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
8240 (package
8241 (name "emacs-outorg")
8242 (version (git-version "2.0" "1" commit))
8243 (source
8244 (origin
8245 (method git-fetch)
8246 (uri (git-reference
8247 (url "https://github.com/alphapapa/outorg")
8248 (commit commit)))
8249 (file-name (git-file-name name version))
8250 (sha256
8251 (base32
8252 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
8253 (build-system emacs-build-system)
8254 (home-page "https://github.com/alphapapa/outorg")
8255 (synopsis "Org-style comment editing")
8256 (description "Outorg is for editing comment-sections of source-code
8257files in temporary Org-mode buffers. It turns conventional
8258literate-programming upside-down in that the default mode is the
8259programming-mode, and special action has to be taken to switch to the
8260text-mode (i.e. Org-mode).")
8261 (license license:gpl3+))))
c47c3779
OP
8262
8263(define-public emacs-outshine
8264 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
8265 (package
8266 (name "emacs-outshine")
8267 (version (git-version "2.0" "1" commit))
8268 (source (origin
8269 (method git-fetch)
8270 (uri (git-reference
8271 (url "https://github.com/alphapapa/outshine.git")
8272 (commit commit)))
8273 (file-name (git-file-name name version))
8274 (sha256
8275 (base32
8276 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
8277 (build-system emacs-build-system)
8278 (propagated-inputs
8279 `(("emacs-outorg" ,emacs-outorg)))
8280 (home-page "https://github.com/alphapapa/outshine")
8281 (synopsis "Emacs outline with outshine")
8282 (description "Outshine attempts to bring the look and feel of
8283@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
8284of @code{outline-minor-mode} (@code{org-mode} itself derives from
8285outline-mode), so there is no such thing like an outshine mode, only
8286@code{outline-minor-mode} with outshine extensions loaded.")
8287 (license license:gpl3+))))
de8d9912
OP
8288
8289(define-public emacs-parsebib
8290 (package
8291 (name "emacs-parsebib")
8292 (version "2.3.1")
8293 (source
8294 (origin
8295 (method url-fetch)
8296 (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
8297 version ".tar.gz"))
8298 (file-name (string-append name "-" version ".tar.gz"))
8299 (sha256
8300 (base32
8301 "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
8302 (build-system emacs-build-system)
8303 (home-page "https://github.com/joostkremers/parsebib")
8304 (synopsis "Library for parsing bib files")
8305 (description
8306 "This package provides an Emacs library for parsing bib files.")
8307 (license license:gpl3+)))
55d53210
OP
8308
8309(define-public emacs-biblio
8310 (package
8311 (name "emacs-biblio")
8312 (version "0.1")
8313 (source
8314 (origin
8315 (method url-fetch)
8316 (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
8317 version ".tar.gz"))
8318 (file-name (string-append name "-" version ".tar.gz"))
8319 (sha256
8320 (base32
8321 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
8322 (build-system emacs-build-system)
8323 (home-page "https://github.com/cpitclaudel/biblio.el")
8324 (synopsis "Browse and import bibliographic references")
8325 (description "This package provides an extensible Emacs package for
8326browsing and fetching references.
8327
8328@file{biblio.el} makes it easy to browse and gather bibliographic references
8329and publications from various sources, by keywords or by DOI. References are
8330automatically fetched from well-curated sources, and formatted as BibTeX.")
8331 (license license:gpl3+)))
f063e18c
OP
8332
8333(define-public emacs-helm-bibtex
8334 (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
8335 (revision "1"))
8336 (package
8337 (name "emacs-helm-bibtex")
8338 (version (string-append "2.0.0" "-" revision "."
8339 (string-take commit 7)))
8340 (source
8341 (origin
8342 (method git-fetch)
8343 (uri (git-reference
8344 (url "https://github.com/tmalsburg/helm-bibtex.git")
8345 (commit commit)))
8346 (file-name (string-append name "-" version "-checkout"))
8347 (sha256
8348 (base32
8349 "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
8350 (build-system emacs-build-system)
8351 (propagated-inputs
8352 `(("emacs-helm" ,emacs-helm)
8353 ("emacs-parsebib" ,emacs-parsebib)
8354 ("emacs-s" ,emacs-s)
8355 ("emacs-dash" ,emacs-dash)
8356 ("emacs-f" ,emacs-f)
8357 ("emacs-biblio" ,emacs-biblio)))
8358 (home-page "https://github.com/tmalsburg/helm-bibtex")
8359 (synopsis "Bibliography manager based on Helm")
8360 (description "This package provides bibliography manager for Emacs,
8361based on Helm and the bibtex-completion backend.
8362
8363Key features:
8364
8365@itemize
8366@item Quick access to your bibliography from within Emacs
8367@item Powerful search capabilities
8368@item Provides instant search results as you type
8369@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
8370@item Open the PDFs, URLs, or DOIs associated with an entry
8371@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
8372BibTeX entries, or plain text references at point, attach PDFs to emails
8373@item Support for note taking
8374@item Quick access to online bibliographic databases such as Pubmed,
8375arXiv, Google Scholar, Library of Congress, etc.
8376@item Imports BibTeX entries from CrossRef and other sources.
8377@end itemize\n")
8378 (license license:gpl3+))))
f445c75d
OP
8379
8380(define-public emacs-ewmctrl
84960cb7 8381 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
f445c75d
OP
8382 (package
8383 (name "emacs-ewmctrl")
84960cb7 8384 (version (git-version "0.0.1" "1" commit))
f445c75d
OP
8385 (source
8386 (origin
8387 (method git-fetch)
8388 (uri (git-reference
8389 (url "https://github.com/flexibeast/ewmctrl.git")
8390 (commit commit)))
84960cb7 8391 (file-name (git-file-name name version))
f445c75d
OP
8392 (sha256
8393 (base32
8394 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
8395 (build-system emacs-build-system)
0bcb9258
OP
8396 (arguments
8397 '(#:phases
8398 (modify-phases %standard-phases
8399 (add-after 'unpack 'patch-ewmctrl
8400 ;; This build phase makes sure ‘ewmctrl’ looks
8401 ;; for ‘wmctrl’ in the right place.
8402 (lambda _
8403 (let ((file "ewmctrl.el"))
8404 (chmod file #o644)
8405 (emacs-substitute-sexps file
8406 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
8407 (inputs
8408 `(("wmctrl" ,wmctrl)))
f445c75d
OP
8409 (home-page "https://github.com/flexibeast/ewmctrl")
8410 (synopsis "Emacs interface to @code{wmctrl}")
8411 (description "@code{ewmctrl} provides an Emacs interface to
8412@code{wmctrl} command-line window-management program.")
8413 (license license:gpl3+))))
707ff555
OP
8414
8415(define-public emacs-helm-gtags
8416 (package
8417 (name "emacs-helm-gtags")
8418 (version "1.5.6")
8419 (source (origin
8420 (method url-fetch)
8421 (uri (string-append
8422 "https://github.com/syohex/emacs-helm-gtags/archive/"
8423 version ".tar.gz"))
8424 (file-name (string-append name "-" version ".tar.gz"))
8425 (sha256
8426 (base32
8427 "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
8428 (build-system emacs-build-system)
d848f55e
OP
8429 (propagated-inputs
8430 `(("emacs-helm" ,emacs-helm)))
707ff555
OP
8431 (home-page "https://github.com/syohex/emacs-helm-gtags")
8432 (synopsis "Emacs Helm interface to GNU Global")
8433 (description
8434 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
8435 (license license:gpl3+)))
53d4090b
OP
8436
8437(define-public emacs-list-utils
8438 (package
8439 (name "emacs-list-utils")
8440 (version "0.4.4")
8441 (source
8442 (origin
8443 (method url-fetch)
8444 (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
8445 "v" version ".tar.gz"))
8446 (file-name (string-append name "-" version ".tar.gz"))
8447 (sha256
8448 (base32
8449 "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
8450 (build-system emacs-build-system)
8451 (home-page "https://github.com/rolandwalker/list-utils")
8452 (synopsis "List-manipulation utility functions")
8453 (description "This package provides a list manipulation library for Emacs.")
8454 (license license:gpl3+)))
fb3aeaf7
OP
8455
8456(define-public emacs-move-text
8457 (package
8458 (name "emacs-move-text")
8459 (version "2.0.8")
8460 (source
8461 (origin
8462 (method url-fetch)
8463 (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
8464 version ".tar.gz"))
8465 (file-name (string-append name "-" version ".tar.gz"))
8466 (sha256
8467 (base32
8468 "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
8469 (build-system emacs-build-system)
8470 (home-page "https://github.com/emacsfodder/move-text")
8471 (synopsis "Move current line or region with M-up or M-down")
8472 (description "This package provide functions to move the current line
8473using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
8474region instead.")
8475 (license license:gpl3+)))
dc586337
OP
8476
8477(define-public emacs-validate
8478 (package
8479 (name "emacs-validate")
8480 (version "1.0.5")
8481 (source (origin
8482 (method url-fetch)
8483 (uri (string-append "https://github.com/Malabarba/validate.el"
8484 "/archive/" version ".tar.gz"))
8485 (file-name (string-append name "-" version ".tar.gz"))
8486 (sha256
8487 (base32
8488 "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
8489 (build-system emacs-build-system)
8490 (home-page "https://github.com/Malabarba/validate.el")
8491 (synopsis "Emacs library for scheme validation")
8492 (description "This Emacs library provides two functions that perform
8493schema validation.")
8494 (license license:gpl3+)))
f8a88f22
OP
8495
8496(define-public emacs-load-relative
8497 (let ((commit "738896e3da491b35399178ed2c6bc92cc728d119")
8498 (revision "1"))
8499 (package
8500 (name "emacs-load-relative")
8501 (version (string-append "0.0.1" "-" revision "."
8502 (string-take commit 7)))
8503 (source
8504 (origin
8505 (method git-fetch)
8506 (uri (git-reference
8507 (url "https://github.com/rocky/emacs-load-relative")
8508 (commit commit)))
8509 (file-name (string-append name "-" version "-checkout"))
8510 (sha256
8511 (base32
8512 "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73"))))
8513 (build-system emacs-build-system)
8514 (home-page "https://github.com/rocky/emacs-load-relative")
8515 (synopsis "Relative loads for Emacs Lisp files")
8516 (description "@code{load-relative} allows to write small Emacs
8517functions or modules in a larger multi-file Emacs package and
8518facilitate running from the source tree without having to install the
8519code or fiddle with evil @code{load-path}.")
8520 (license license:gpl3+))))
d7403c12
OP
8521
8522(define-public emacs-rainbow-blocks
8523 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
8524 (package
8525 (name "emacs-rainbow-blocks")
8526 (version (git-version "1.0.0" "1" commit))
8527 (source (origin
8528 (method git-fetch)
8529 (uri (git-reference
8530 (url "https://github.com/istib/rainbow-blocks.git")
8531 (commit commit)))
8532 (file-name (git-file-name name version))
8533 (sha256
8534 (base32
8535 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
8536 (build-system emacs-build-system)
8537 (home-page "https://github.com/istib/rainbow-blocks")
8538 (synopsis "Highlight sexp blocks")
8539 (description "Rainbow-blocks is an Emacs mode that highlights blocks
8540made of parentheses, brackets, and braces according to their depth. Each
8541successive level is highlighted in a different color. This makes it easy to
8542orient yourself in the code, and tell which statements are at a given level.")
8543 (license license:gpl3+))))
20b5b16e
OP
8544
8545(define-public emacs-hierarchy
8546 (package
8547 (name "emacs-hierarchy")
8548 (version "0.7.0")
8549 (source
8550 (origin
8551 (method url-fetch)
8552 (uri (string-append
8553 "https://github.com/DamienCassou/hierarchy/archive/"
8554 "v" version ".tar.gz"))
8555 (file-name (string-append name "-" version ".tar.gz"))
8556 (sha256
8557 (base32
8558 "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
8559 (build-system emacs-build-system)
8560 (home-page "https://github.com/DamienCassou/hierarchy")
8561 (synopsis "Library to create and display hierarchy structures")
8562 (description "This package provides an Emacs library to create, query,
8563navigate and display hierarchy structures.")
8564 (license license:gpl3+)))
0acfc481
OP
8565
8566(define-public emacs-tree-mode
8567 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
8568 (revision "1"))
8569 (package
8570 (name "emacs-tree-mode")
8571 (version (string-append "0.0.1" "-" revision "."
8572 (string-take commit 7)))
8573 (source
8574 (origin
8575 (method git-fetch)
8576 (uri (git-reference
8577 (url "https://github.com/emacsorphanage/tree-mode.git")
8578 (commit commit)))
8579 (file-name (string-append name "-" version "-checkout"))
8580 (sha256
8581 (base32
8582 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
8583 (build-system emacs-build-system)
8584 (home-page "https://github.com/emacsorphanage/tree-mode")
8585 (synopsis "Emacs mode to manage tree widgets")
8586 (description
8587 "This package provides an Emacs library to manage tree widgets.")
8588 (license license:gpl3+))))
74b2f745
OP
8589
8590(define-public emacs-md4rd
8591 (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
8592 (revision "1"))
8593 (package
8594 (name "emacs-md4rd")
8595 (version (string-append "0.0.1" "-" revision "."
8596 (string-take commit 7)))
8597 (source (origin
8598 (method git-fetch)
8599 (uri (git-reference
8600 (url "https://github.com/ahungry/md4rd.git")
8601 (commit commit)))
8602 (file-name (string-append name "-" version "-checkout"))
8603 (sha256
8604 (base32
8605 "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
8606 (propagated-inputs
8607 `(("emacs-hierarchy" ,emacs-hierarchy)
8608 ("emacs-request" ,emacs-request)
8609 ("emacs-dash" ,emacs-dash)
8610 ("emacs-s" ,emacs-s)
8611 ("emacs-tree-mode" ,emacs-tree-mode)))
8612 (build-system emacs-build-system)
8613 (home-page "https://github.com/ahungry/md4rd")
8614 (synopsis "Emacs Mode for Reddit")
8615 (description
8616 "This package allows to read Reddit from within Emacs interactively.")
8617 (license license:gpl3+))))
b8f91043
OP
8618
8619(define-public emacs-pulseaudio-control
8620 (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b")
8621 (revision "1"))
8622 (package
8623 (name "emacs-pulseaudio-control")
8624 (version (string-append "0.0.1" "-" revision "."
8625 (string-take commit 7)))
8626 (source
8627 (origin
8628 (method git-fetch)
8629 (uri (git-reference
8630 (url "https://github.com/flexibeast/pulseaudio-control.git")
8631 (commit commit)))
8632 (file-name (string-append name "-" version "-checkout"))
8633 (sha256
8634 (base32
8635 "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"))))
8636 (build-system emacs-build-system)
8637 (home-page "https://github.com/flexibeast/pulseaudio-control")
8638 (synopsis "Control @code{pulseaudio} from Emacs")
8639 (description
8640 "This package allows to control @code{pulseaudio} from Emacs.")
8641 (license license:gpl3+))))
5746ca13
OP
8642
8643(define-public emacs-datetime
8644 (package
8645 (name "emacs-datetime")
8646 (version "0.3")
8647 (source (origin
8648 (method url-fetch)
8649 (uri (string-append
8650 "https://github.com/doublep/datetime/archive/"
8651 version ".tar.gz"))
8652 (file-name (string-append name "-" version ".tar.gz"))
8653 (sha256
8654 (base32
8655 "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
8656 (build-system emacs-build-system)
8657 (home-page "https://github.com/doublep/datetime/")
8658 (synopsis "Library to work with dates in Emacs")
8659 (description "Parsing, formatting, matching and recoding
8660timestamps and date-time format strings library for Emacs.")
8661 (license license:gpl3+)))
a3a876c2
OP
8662
8663(define-public emacs-org-mind-map
8664 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
8665 (revision "1"))
8666 (package
8667 (name "emacs-org-mind-map")
8668 (version (string-append "0.0.1" "-" revision "."
8669 (string-take commit 7)))
8670 (source
8671 (origin
8672 (method git-fetch)
8673 (uri (git-reference
8674 (url "https://github.com/theodorewiles/org-mind-map.git")
8675 (commit commit)))
8676 (file-name (string-append name "-" version "-checkout"))
8677 (sha256
8678 (base32
8679 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
8680 (propagated-inputs
8681 `(("emacs-dash" ,emacs-dash)))
8682 (build-system emacs-build-system)
8683 (home-page "https://github.com/theodorewiles/org-mind-map")
8684 (synopsis "Create Graphviz directed graphs from Org files")
8685 (description
8686 "This package creates Graphviz directed graphs from Org files.")
8687 (license license:gpl3+))))
8d907999
OP
8688
8689(define-public emacs-npm-mode
8690 (package
8691 (name "emacs-npm-mode")
8692 (version "0.6.0")
8693 (source
8694 (origin
8695 (method url-fetch)
8696 (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
8697 version ".tar.gz"))
8698 (file-name (string-append name "-" version ".tar.gz"))
8699 (sha256
8700 (base32
8701 "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
8702 (build-system emacs-build-system)
8703 (home-page "https://github.com/mojochao/npm-mode")
8704 (synopsis "Minor mode for working with @code{npm} projects")
8705 (description
8706 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
8707 (license license:gpl3+)))
b12fb29e
OP
8708
8709(define-public emacs-seq
8710 (package
8711 (name "emacs-seq")
8712 (version "2.20")
8713 (source
8714 (origin
8715 (method url-fetch)
8716 (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
8717 (sha256
8718 (base32
8719 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
8720 (build-system emacs-build-system)
8721 (home-page "http://elpa.gnu.org/packages/seq.html")
8722 (synopsis "Sequence manipulation functions")
8723 (description "Sequence-manipulation functions that complement basic
8724functions provided by @file{subr.el}.")
8725 (license license:gpl3+)))
be3cf803
OP
8726
8727(define-public emacs-itail
8728 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
8729 (revision "1"))
8730 (package
8731 (name "emacs-itail")
8732 (version (string-append "0.0.1" "-" revision "."
8733 (string-take commit 7)))
8734 (source
8735 (origin
8736 (method git-fetch)
8737 (uri (git-reference
8738 (url "https://github.com/re5et/itail.git")
8739 (commit commit)))
8740 (file-name (string-append name "-" version "-checkout"))
8741 (sha256
8742 (base32
8743 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
8744 (build-system emacs-build-system)
8745 (home-page "https://github.com/re5et/itail")
8746 (synopsis "Interactive @code{tail} Emacs mode")
8747 (description "@code{itail} provides interactive @code{tail} mode
8748that allows you to filter the tail with unix pipes and highlight the
8749contents of the tailed file. Works locally or on remote files using
8750tramp.")
8751 (license license:gpl3+))))
b836c650
OP
8752
8753(define-public emacs-loop
8754 (package
8755 (name "emacs-loop")
8756 (version "1.3")
8757 (source
8758 (origin
8759 (method url-fetch)
8760 (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
8761 version ".tar.gz"))
8762 (file-name (string-append name "-" version ".tar.gz"))
8763 (sha256
8764 (base32
8765 "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
8766 (build-system emacs-build-system)
8767 (home-page "https://github.com/Wilfred/loop.el")
8768 (synopsis "Imperative loop structures for Emacs")
8769 (description "Loop structures familiar to users of other languages. This
8770library adds a selection of popular loop structures as well as break and
8771continue.")
8772 (license license:gpl3+)))
1bd3400d
OP
8773
8774(define-public emacs-elisp-refs
8775 (package
8776 (name "emacs-elisp-refs")
8777 (version "1.2")
8778 (source
8779 (origin
8780 (method url-fetch)
8781 (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
8782 version ".tar.gz"))
8783 (file-name (string-append name "-" version ".tar.gz"))
8784 (sha256
8785 (base32
8786 "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
8787 (build-system emacs-build-system)
8788 (propagated-inputs
8789 `(("emacs-dash" ,emacs-dash)
8790 ("emacs-f" ,emacs-f)
8791 ("emacs-list-utils" ,emacs-list-utils)
8792 ("emacs-loop" ,emacs-loop)
8793 ("emacs-s" ,emacs-s)))
8794 (home-page "https://github.com/Wilfred/elisp-refs")
8795 (synopsis "Find callers of elisp functions or macros")
8796 (description "Find references to functions, macros or variables. Unlike a
8797dumb text search, @code{elisp-refs} actually parses the code, so it's never
8798confused by comments or @code{foo-bar} matching @code{foo}.")
8799 (license license:gpl3+)))
08ff4fd1
OP
8800
8801(define-public emacs-crux
8802 (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
8803 (revision "1"))
8804 (package
8805 (name "emacs-crux")
8806 (version (string-append "0.3.0" "-" revision "."
8807 (string-take commit 7)))
8808 (source
8809 (origin
8810 (method git-fetch)
8811 (uri (git-reference
8812 (url "https://github.com/bbatsov/crux.git")
8813 (commit commit)))
8814 (file-name (string-append name "-" version "-checkout"))
8815 (sha256
8816 (base32
8817 "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
8818 (build-system emacs-build-system)
8819 (home-page "https://github.com/bbatsov/crux")
8820 (synopsis "Collection of useful functions for Emacs")
8821 (description
8822 "@code{crux} provides a collection of useful functions for Emacs.")
8823 (license license:gpl3+))))
3677e5ee
OP
8824
8825(define-public emacs-edit-server
8826 (package
8827 (name "emacs-edit-server")
8828 (version "1.13")
8829 (source
8830 (origin
8831 (method url-fetch)
8832 (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
8833 "v" version ".tar.gz"))
8834 (file-name (string-append name "-" version ".tar.gz"))
8835 (sha256
8836 (base32
8837 "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
8838 (build-system emacs-build-system)
8839 (arguments
8840 `(#:phases
8841 (modify-phases %standard-phases
8842 (add-after 'unpack 'chdir-elisp
8843 ;; Elisp directory is not in root of the source.
8844 (lambda _
8845 (chdir "servers"))))))
8846 (home-page "https://github.com/stsquad/emacs_chrome")
8847 (synopsis "Server that responds to edit requests from Chromium")
8848 (description
8849 "This package provides an edit server to respond to requests from Emacs.")
8850 (license license:gpl3+)))
40246075
OP
8851
8852(define-public emacs-m-buffer-el
8853 (package
8854 (name "emacs-m-buffer-el")
8855 (version "0.15")
8856 (source
8857 (origin
8858 (method url-fetch)
8859 (uri (string-append "https://github.com/phillord/m-buffer-el"
8860 "/archive/" "v" version ".tar.gz"))
8861 (file-name (string-append name "-" version ".tar.gz"))
8862 (sha256
8863 (base32
8864 "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
8865 (arguments
8866 `(#:phases
8867 (modify-phases %standard-phases
8868 (add-before 'install 'check
8869 (lambda* (#:key inputs #:allow-other-keys)
8870 (zero? (system* "emacs" "--batch" "-L" "."
8871 "-l" "test/m-buffer-test.el"
8872 "-l" "test/m-buffer-at-test.el"
8873 "-f" "ert-run-tests-batch-and-exit")))))))
8874 (build-system emacs-build-system)
8875 (home-page "https://github.com/phillord/m-buffer-el")
8876 (synopsis "List oriented buffer operations for Emacs")
8877 (description "@code{m-buffer} provides a set of list-orientated functions
8878for operating over the contents of Emacs buffers.")
8879 (license license:gpl3+)))
15d56833
OP
8880
8881(define-public emacs-let-alist
8882 (package
8883 (name "emacs-let-alist")
8884 (version "1.0.5")
8885 (source
8886 (origin
8887 (method url-fetch)
8888 (uri (string-append
8889 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
8890 (sha256
8891 (base32
8892 "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
8893 (build-system emacs-build-system)
8894 (home-page "https://elpa.gnu.org/packages/let-alist.html")
8895 (synopsis "Easily let-bind values of an assoc-list by their names")
8896 (description "This package offers a single macro, @code{let-alist}. This
8897macro takes a first argument (whose value must be an alist) and a body.")
8898 (license license:gpl3+)))
ddc56b80
OP
8899
8900(define-public emacs-esup
8901 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
8902 (revision "1"))
8903 (package
8904 (name "emacs-esup")
8905 (version (string-append "0.6" "-" revision "."
8906 (string-take commit 7)))
8907 (source
8908 (origin
8909 (method git-fetch)
8910 (uri (git-reference
8911 (url "https://github.com/jschaf/esup.git")
8912 (commit commit)))
8913 (file-name (string-append name "-" version "-checkout"))
8914 (sha256
8915 (base32
8916 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
8917 ;; TODO: Add tests
8918 (build-system emacs-build-system)
8919 (home-page "https://github.com/jschaf/esup")
8920 (synopsis "Emacs start up profiler")
8921 (description "Benchmark Emacs Startup time without ever leaving
8922your Emacs.")
8923 (license license:gpl2+))))
e33dba15
OP
8924
8925(define-public emacs-sourcemap
8926 (package
8927 (name "emacs-sourcemap")
8928 (version "0.03")
8929 (source
8930 (origin
8931 (method url-fetch)
8932 (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
8933 version ".tar.gz"))
8934 (file-name (string-append name "-" version ".tar.gz"))
8935 (sha256
8936 (base32
8937 "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
8938 (build-system emacs-build-system)
8939 (home-page "https://github.com/syohex/emacs-sourcemap")
8940 (synopsis "Sourcemap parser")
8941 (description "Sourcemap parser")
8942 (license license:gpl3+)))
9968e444
OP
8943
8944(define-public emacs-macrostep
8945 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
8946 (package
8947 (name "emacs-macrostep")
8948 (version (git-version "0.9" "1" commit))
8949 (source (origin
8950 (method git-fetch)
8951 (uri (git-reference
8952 (url "https://github.com/joddie/macrostep.git")
8953 (commit commit)))
8954 (file-name (string-append name "-" version "-checkout"))
8955 (sha256
8956 (base32
8957 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
8958 (build-system emacs-build-system)
8959 (arguments
8960 '(#:phases
8961 (modify-phases %standard-phases
8962 (add-before 'check 'remove-test
8963 ;; Fails because of requirement ‘/bin/sh’.
8964 (lambda _
8965 (let ((file "macrostep-test.el"))
8966 (chmod file #o644)
8967 (emacs-batch-edit-file file
8968 `(progn (progn (goto-char (point-min))
8969 (re-search-forward
8970 "(ert-deftest macrostep-expand-c-macros")
8971 (beginning-of-line)
8972 (kill-sexp))
8973 (basic-save-buffer))))))
8974 (add-before 'install 'check
8975 (lambda _
8976 (invoke "emacs" "--batch" "-L" "."
8977 "-l" "macrostep-test.el"
8978 "-f" "ert-run-tests-batch-and-exit"))))))
8979 (home-page "https://github.com/joddie/macrostep")
8980 (synopsis "Interactive macro-expander for Emacs")
8981 (description "@code{macrostep} is an Emacs minor mode for interactively
8982stepping through the expansion of macros in Emacs Lisp source code. It lets
8983you see exactly what happens at each step of the expansion process by
8984pretty-printing the expanded forms inline in the source buffer, which is
8985temporarily read-only while macro expansions are visible. You can expand and
8986collapse macro forms one step at a time, and evaluate or instrument the
8987expansions for debugging with Edebug as normal (but see “Bugs and known
8988limitations”, below). Single-stepping through the expansion is particularly
8989useful for debugging macros that expand into another macro form. These can be
8990difficult to debug with Emacs’ built-in macroexpand, which continues expansion
8991until the top-level form is no longer a macro call.")
8992 (license license:gpl3+))))
02999382
OP
8993
8994(define-public emacs-parent-mode
8995 (package
8996 (name "emacs-parent-mode")
8997 (version "2.3")
8998 (source
8999 (origin
9000 (method url-fetch)
9001 (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
9002 version ".tar.gz"))
9003 (file-name (string-append name "-" version ".tar.gz"))
9004 (sha256
9005 (base32
9006 "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
9007 (build-system emacs-build-system)
9008 (home-page "https://github.com/Fanael/parent-mode")
9009 (synopsis "Get major mode's parent modes")
9010 (description "Get major mode's parent modes")
9011 (license license:gpl3+)))
045f6b7c
OP
9012
9013(define-public emacs-lacarte
9014 (package
9015 (name "emacs-lacarte")
9016 (version "0.1")
9017 (source (origin
9018 (method url-fetch)
9019 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
9020 (sha256
9021 (base32
9022 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
9023 (build-system emacs-build-system)
9024 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
9025 (synopsis "Execute menu items as commands, with completion")
9026 (description "Execute menu items as commands, with completion.")
9027 (license license:gpl3)))
b8ddef4b
OP
9028
9029(define-public emacs-company-lua
9030 (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
9031 (package
9032 (name "emacs-company-lua")
9033 (version (git-version "0.1" "1" commit))
9034 (source
9035 (origin
9036 (method git-fetch)
9037 (uri (git-reference
9038 (url "https://github.com/ptrv/company-lua.git")
9039 (commit commit)))
9040 (file-name (git-file-name name version))
9041 (sha256
9042 (base32
9043 "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
9044 (build-system emacs-build-system)
9045 (propagated-inputs
9046 `(("emacs-company" ,emacs-company)
9047 ("emacs-s" ,emacs-s)
9048 ("emacs-f" ,emacs-f)
9049 ("emacs-lua-mode" ,emacs-lua-mode)))
9050 (home-page "https://github.com/ptrv/company-lua")
9051 (synopsis "Company backend for Lua")
9052 (description
9053 "This package provides Company backend for Lua programming language.")
9054 (license license:gpl3+))))
f61ecb85
OP
9055
9056(define-public emacs-beginend
9057 (package
9058 (name "emacs-beginend")
9059 (version "2.0.0")
9060 (source
9061 (origin
9062 (method url-fetch)
9063 (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
9064 "v" version ".tar.gz"))
9065 (file-name (string-append name "-" version ".tar.gz"))
9066 (sha256
9067 (base32
9068 "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
9069 ;; TODO: Run tests.
9070 (build-system emacs-build-system)
9071 (inputs
9072 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
9073 (home-page "https://github.com/DamienCassou/beginend")
9074 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
9075 (description "@code{beginend} redefines @code{M-<} and @code{M->}
9076keybindings for Emacs modes so that point moves to meaningful
9077locations. Redefined keys are still accessible by pressing the same
9078key again.")
9079 (license license:gpl3+)))
666e5617
OP
9080
9081(define-public emacs-mbsync
9082 (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
9083 (revision "1"))
9084 (package
9085 (name "emacs-mbsync")
9086 (version (string-append "0.0.1" "-" revision "."
9087 (string-take commit 7)))
9088 (source
9089 (origin
9090 (method git-fetch)
9091 (uri (git-reference
9092 (url "https://github.com/dimitri/mbsync-el.git")
9093 (commit commit)))
9094 (file-name (string-append name "-" version "-checkout"))
9095 (sha256
9096 (base32
9097 "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
9098 (build-system emacs-build-system)
9099 (home-page "https://github.com/dimitri/mbsync-el")
9100 (synopsis "Interface to mbsync for Emacs")
9101 (description "This package allows to call the @code{mbsync} from
9102within Emacs.")
9103 (license license:gpl3+))))
60bf9265
OP
9104
9105(define-public emacs-ibuffer-projectile
9106 (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
9107 (revision "1"))
9108 (package
9109 (name "emacs-ibuffer-projectile")
9110 (version (string-append "0.2" "-" revision "."
9111 (string-take commit 7)))
9112 (source
9113 (origin
9114 (method git-fetch)
9115 (uri (git-reference
9116 (url "https://github.com/purcell/ibuffer-projectile.git")
9117 (commit commit)))
9118 (file-name (string-append name "-" version "-checkout"))
9119 (sha256
9120 (base32
9121 "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
9122 (build-system emacs-build-system)
9123 (propagated-inputs
9124 `(("emacs-projectile" ,emacs-projectile)))
9125 (home-page "https://github.com/purcell/ibuffer-projectile")
9126 (synopsis "Group ibuffer's list by projectile root")
9127 (description "Adds functionality to Emacs @code{ibuffer} for
9128grouping buffers by their projectile root directory.")
9129 (license license:gpl3+))))
295513c6
OP
9130
9131(define-public emacs-helm-mode-manager
9132 (package
9133 (name "emacs-helm-mode-manager")
9134 (version "1.0.0")
9135 (source
9136 (origin
9137 (method url-fetch)
9138 (uri (string-append "https://github.com/istib/helm-mode-manager/"
9139 "archive/" version ".tar.gz"))
9140 (file-name (string-append name "-" version ".tar.gz"))
9141 (sha256
9142 (base32
9143 "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
9144 (build-system emacs-build-system)
9145 (propagated-inputs
9146 `(("emacs-helm" ,emacs-helm)))
9147 (home-page "https://github.com/istib/helm-mode-manager/")
9148 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
9149 (description "This package provides a Helm interface for toggling Emacs
9150major or minor mode.
9151
9152@itemize
9153@item @code{helm-switch-major-mode} list of all major modes
9154@item @code{helm-enable-minor-mode} list of all inactive minor modes
9155@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
9156@end itemize\n
9157
9158Hitting @code{RET} enables the mode, @code{C-z} shows the mode
9159documentation.")
9160 (license license:gpl3+)))
4cdfc9ef
OP
9161
9162(define-public emacs-hy-mode
9163 (package
9164 (name "emacs-hy-mode")
9165 (version "1.0.2")
9166 (source
9167 (origin
9168 (method url-fetch)
9169 (uri (string-append "https://github.com/hylang/hy-mode/archive/"
9170 "v" version ".tar.gz"))
9171 (file-name (string-append name "-" version ".tar.gz"))
9172 (sha256
9173 (base32
9174 "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
9175 (build-system emacs-build-system)
9176 (propagated-inputs
9177 `(("emacs-dash" ,emacs-dash)
9178 ("emacs-s" ,emacs-s)))
9179 (home-page "https://github.com/hylang/hy-mode")
9180 (synopsis "Major mode for Hylang")
9181 (description "This package provides a major mode for Hylang.")
9182 (license license:gpl3+)))
8aab3d06
OP
9183
9184(define-public emacs-web-beautify
9185 (package
9186 (name "emacs-web-beautify")
9187 (version "0.3.2")
9188 (source
9189 (origin
9190 (method url-fetch)
9191 (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
9192 version ".tar.gz"))
9193 (file-name (string-append name "-" version ".tar.gz"))
9194 (sha256
9195 (base32
9196 "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
9197 (build-system emacs-build-system)
9198 (home-page "https://github.com/yasuyk/web-beautify")
9199 (synopsis "Format HTML, CSS and JavaScript, JSON")
9200 (description "This package provides an Emacs functions to format HTML,
9201CSS, JavaScript, JSON.")
9202 (license license:gpl3+)))
c1b9d72c
OP
9203
9204(define-public emacs-helm-shell-history
9205 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
9206 (package
9207 (name "emacs-helm-shell-history")
9208 (version (git-version "0.1" "1" commit))
9209 (source
9210 (origin
9211 (method git-fetch)
9212 (uri (git-reference
9213 (url "https://github.com/yuutayamada/helm-shell-history.git")
9214 (commit commit)))
9215 (file-name (git-file-name name version))
9216 (sha256
9217 (base32
9218 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
9219 (build-system emacs-build-system)
9220 (arguments
9221 '(#:phases
9222 (modify-phases %standard-phases
9223 (add-before 'check 'patch-helm-shell-history-file
9224 (lambda _
9225 (let ((file "helm-shell-history.el"))
9226 (chmod file #o644)
9227 (emacs-substitute-sexps file
9228 ("(defvar helm-shell-history-file"
9229 `(expand-file-name "~/.bash_history"))))
9230 #t)))))
f1f6f227
OP
9231 (propagated-inputs
9232 `(("emacs-helm" ,emacs-helm)))
c1b9d72c
OP
9233 (home-page "https://github.com/yuutayamada/helm-shell-history")
9234 (synopsis "Find shell history with Emacs Helm")
9235 (description "This package provides an Emacs Helm interface to search
9236throw a shell history.")
9237 (license license:gpl3+))))
2c63f724
OP
9238
9239(define-public emacs-discover-my-major
9240 (package
9241 (name "emacs-discover-my-major")
9242 (version "1.0")
9243 (source
9244 (origin
9245 (method url-fetch)
9246 (uri
9247 (string-append "https://github.com/steckerhalter/discover-my-major"
9248 "/archive/" version ".tar.gz"))
9249 (file-name (string-append name "-" version ".tar.gz"))
9250 (sha256
9251 (base32
9252 "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
9253 (build-system emacs-build-system)
9254 (propagated-inputs
9255 `(("emacs-makey" ,emacs-makey)))
9256 (home-page "https://github.com/steckerhalter/discover-my-major")
9257 (synopsis "Discover key bindings for the current Emacs major mode")
9258 (description "This package provides allows to discover key bindings and
9259their meaning for the current Emacs major-mode.")
9260 (license license:gpl3+)))
21a3de58
OP
9261
9262(define-public emacs-org-ref
9263 (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
9264 (revision "1"))
9265 (package
9266 (name "emacs-org-ref")
9267 (version (string-append "1.1.1" "-" revision "."
9268 (string-take commit 7)))
9269 (source
9270 (origin
9271 (method git-fetch)
9272 (uri (git-reference
9273 (url "https://github.com/jkitchin/org-ref.git")
9274 (commit commit)))
9275 (file-name (string-append name "-" version "-checkout"))
9276 (sha256
9277 (base32
9278 "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
9279 (build-system emacs-build-system)
9280 (propagated-inputs
9281 `(("emacs-dash" ,emacs-dash)
9282 ("emacs-helm" ,emacs-helm)
9283 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
9284 ("emacs-ivy" ,emacs-ivy)
9285 ("emacs-hydra" ,emacs-hydra)
9286 ("emacs-key-chord" ,emacs-key-chord)
9287 ("emacs-s" ,emacs-s)
9288 ("emacs-f" ,emacs-f)
9289 ("emacs-pdf-tools" ,emacs-pdf-tools)))
9290 (home-page "https://github.com/jkitchin/org-ref")
9291 (synopsis "Citations, cross-references and bibliographies in org-mode")
9292 (description
9293 "Lisp code to setup bibliography, cite, ref and label org-mode links.
9294Also sets up reftex and helm for org-mode citations. The links are
9295clickable and do things that are useful.
9296
9297The default setup uses helm-bibtex.
9298
9299You should really read org-ref.org in this package for details.")
9300 (license license:gpl3+))))
56e90e31
OP
9301
9302(define-public emacs-add-hooks
9303 (package
9304 (name "emacs-add-hooks")
9305 (version "3.1.1")
9306 (source (origin
9307 (method url-fetch)
9308 (uri (string-append
9309 "https://github.com/nickmccurdy/add-hooks/archive/"
9310 version ".tar.gz"))
9311 (file-name (string-append name "-" version ".tar.gz"))
9312 (sha256
9313 (base32
9314 "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
9315 (build-system emacs-build-system)
9316 (home-page "https://github.com/nickmccurdy/add-hooks/")
9317 (synopsis "Emacs function for setting multiple hooks")
9318 (description "This package provides a @code{add-hooks} function tidies up
9319duplicate hook and function names further into a single declarative call.")
9320 (license license:gpl3+)))
58b50580
OP
9321
9322(define-public emacs-fancy-narrow
9323 (package
9324 (name "emacs-fancy-narrow")
9325 (version "0.9.5")
9326 (source
9327 (origin
9328 (method url-fetch)
9329 (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
9330 version ".tar.gz"))
9331 (file-name (string-append name "-" version ".tar.gz"))
9332 (sha256
9333 (base32
9334 "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
9335 (build-system emacs-build-system)
9336 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
9337 (synopsis "Immitate narrow-to-region with more eye-candy")
9338 (description "Unlike narrow-to-region, which completely hides text outside
9339the narrowed region, this package simply deemphasizes the text, makes it
9340readonly, and makes it unreachable. This leads to a much more natural
9341feeling, where the region stays static (instead of being brutally moved to a
9342blank slate) and is clearly highlighted with respect to the rest of the
9343buffer.")
9344 (license license:gpl2+)))
9b876c69
OP
9345
9346(define-public emacs-know-your-http-well
9347 (package
9348 (name "emacs-know-your-http-well")
9349 (version "0.5.0")
9350 (source
9351 (origin
9352 (method url-fetch)
9353 (uri (string-append
9354 "https://github.com/for-GET/know-your-http-well/archive/"
9355 "v" version ".tar.gz"))
9356 (file-name (string-append name "-" version ".tar.gz"))
9357 (sha256
9358 (base32
9359 "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
9360 (arguments
9361 `(#:phases
9362 (modify-phases %standard-phases
9363 (add-after 'unpack 'install-json-files
9364 (lambda* (#:key outputs #:allow-other-keys)
9365 (for-each (lambda (directory)
9366 (copy-recursively directory
9367 (string-append
9368 (assoc-ref outputs "out")
9369 directory)))
9370 '("js" "json"))))
9371 (add-after 'unpack 'chdir-elisp
9372 ;; Elisp directory is not in root of the source.
9373 (lambda _
9374 (chdir "emacs"))))))
9375 (build-system emacs-build-system)
9376 (home-page "https://github.com/for-GET/know-your-http-well")
9377 (synopsis "Meaning of HTTP headers codes")
9378 (description "Meaning of HTTP headers codes.")
9379 (license license:gpl3+)))
9f2b572e
OP
9380
9381(define-public emacs-navi-mode
9382 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
9383 (package
9384 (name "emacs-navi-mode")
9385 (version (git-version "2.0" "1" commit))
9386 (source
9387 (origin
9388 (method git-fetch)
9389 (uri (git-reference
9390 (url "https://github.com/alphapapa/navi.git")
9391 (commit commit)))
9392 (file-name (git-file-name name version))
9393 (sha256
9394 (base32
9395 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
9396 (build-system emacs-build-system)
9397 (propagated-inputs
9398 `(("emacs-outshine" ,emacs-outshine)
9399 ("emacs-outorg" ,emacs-outorg)))
9400 (home-page "https://github.com/alphapapa/navi")
9401 (synopsis "Emacs major-mode for easy buffer-navigation")
9402 (description
9403 "This package provides an Emacs major-mode for easy buffer-navigation")
9404 (license license:gpl3+))))
2f28093e
OP
9405
9406(define-public emacs-download-region
9407 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
9408 (revision "1"))
9409 (package
9410 (name "emacs-download-region")
9411 (version (string-append "0.0.1" "-" revision "."
9412 (string-take commit 7)))
9413 (source
9414 (origin
9415 (method git-fetch)
9416 (uri (git-reference
9417 (url "https://github.com/zk-phi/download-region.git")
9418 (commit commit)))
9419 (file-name (string-append name "-" version "-checkout"))
9420 (sha256
9421 (base32
9422 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
9423 (build-system emacs-build-system)
9424 (home-page "https://github.com/zk-phi/download-region")
9425 (synopsis "In buffer download manager for Emacs")
9426 (description "@code{download-region} provides in buffer
9427downloading manager for Emacs.")
9428 (license license:gpl3+))))
8bc8efc7
OP
9429
9430(define-public emacs-csv-mode
9431 (package
9432 (name "emacs-csv-mode")
9433 (version "1.7")
9434 (source
9435 (origin
9436 (method url-fetch)
9437 (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
9438 version ".el"))
9439 (sha256
9440 (base32
9441 "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
9442 (build-system emacs-build-system)
9443 (home-page "http://elpa.gnu.org/packages/csv-mode.html")
9444 (synopsis "Major mode for editing comma or char separated values")
9445 (description
9446 "This package provides an Emacs CSV mode, a major mode for editing
9447records in a generalized CSV (character-separated values) format.")
9448 (license license:gpl3+)))
b2bf4f54
OP
9449
9450(define-public emacs-helpful
9451 (package
9452 (name "emacs-helpful")
9453 (version "0.1")
9454 (source (origin
9455 (method url-fetch)
9456 (uri (string-append
9457 "https://github.com/Wilfred/helpful/archive/"
9458 version ".tar.gz"))
9459 (file-name (string-append name "-" version ".tar.gz"))
9460 (sha256
9461 (base32
9462 "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
9463 (build-system emacs-build-system)
9464 (propagated-inputs
9465 `(("emacs-elisp-refs" ,emacs-elisp-refs)))
9466 (home-page "https://github.com/Wilfred/helpful")
9467 (synopsis "More contextual information in Emacs help")
9468 (description "@code{helpful} is an alternative to the built-in Emacs help
9469that provides much more contextual information.
9470
9471@itemize
9472@item Show the source code for interactively defined functions (unlike the
9473built-in Help).
9474@item Fall back to the raw sexp if no source is available.
9475@item Show where a function is being called.
9476@item Docstrings will Highlight the summary (the first sentence), include
9477cross-references, hide superfluous puncuation.
9478@item Show you the properties that have been applied to the current
9479symbol. This provides visibility of features like edebug or byte-code
9480optimisation.
9481@item Provide a separate @code{helpful-command} function to view interactive
9482functions.
9483@item Display any keybindings that apply to interactive functions.
9484@item Trace, disassemble functions from inside Helpful. This is discoverable
9485and doesn't require memorisation of commands.
9486@end itemize\n")
9487 (license license:gpl3+)))
1024dadd
OP
9488
9489(define-public emacs-logview
9490 (package
9491 (name "emacs-logview")
9492 (version "0.9")
9493 (source (origin
9494 (method url-fetch)
9495 (uri (string-append
9496 "https://github.com/doublep/logview/archive/"
9497 version ".tar.gz"))
9498 (file-name (string-append name "-" version ".tar.gz"))
9499 (sha256
9500 (base32
9501 "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
9502 (propagated-inputs
9503 `(("emacs-datetime" ,emacs-datetime)))
9504 (build-system emacs-build-system)
9505 (home-page "https://github.com/doublep/logview/")
9506 (synopsis "Emacs mode for viewing log files")
9507 (description "@code{logview} provides an Emacs mode to view log files.")
9508 (license license:gpl3+)))
0bc5a32a
OP
9509
9510(define-public emacs-suggest
9511 (package
9512 (name "emacs-suggest")
9513 (version "0.4")
9514 (source
9515 (origin
9516 (method url-fetch)
9517 (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
9518 version ".tar.gz"))
9519 (file-name (string-append name "-" version ".tar.gz"))
9520 (sha256
9521 (base32
9522 "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
9523 (build-system emacs-build-system)
9524 (propagated-inputs
9525 `(("emacs-loop" ,emacs-loop)
9526 ("emacs-dash" ,emacs-dash)
9527 ("emacs-s" ,emacs-s)
9528 ("emacs-f" ,emacs-f)))
9529 (home-page "https://github.com/Wilfred/suggest.el")
9530 (synopsis "Suggest Elisp functions that give the output requested")
9531 (description "Suggest.el will find functions that give the output
9532requested. It's a great way of exploring list, string and arithmetic
9533functions.")
9534 (license license:gpl3+)))
c43c0823
OP
9535
9536(define-public emacs-benchmark-init
9537 (package
9538 (name "emacs-benchmark-init")
9539 (version "1.0")
9540 (source (origin
9541 (method url-fetch)
9542 (uri (string-append
9543 "https://github.com/dholm/benchmark-init-el/archive/"
9544 version ".tar.gz"))
9545 (file-name (string-append name "-" version ".tar.gz"))
9546 (sha256
9547 (base32
9548 "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
9549 (build-system emacs-build-system)
9550 (home-page "https://github.com/dholm/benchmark-init-el")
9551 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
9552 (description "@code{benchmark-init} provides a way to keep track of where
9553time is being spent during Emacs startup in order to optimize startup time.")
9554 (license license:gpl3+)))
c25dda7e
OP
9555
9556(define-public emacs-emms-player-simple-mpv
9557 (let ((commit "101d120ccdee1c2c213fd2f0423c858b21649c00")
9558 (revision "1"))
9559 (package
9560 (name "emacs-emms-player-simple-mpv")
9561 (version (string-append "0.4.0" "-" revision "."
9562 (string-take commit 7)))
9563
9564 (source
9565 (origin
9566 (method git-fetch)
9567 (uri (git-reference
9568 (url "https://github.com/momomo5717/emms-player-simple-mpv.git")
9569 (commit commit)))
9570 (file-name (git-file-name name version))
9571 (sha256
9572 (base32
9573 "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll"))))
9574 (build-system emacs-build-system)
9575 (propagated-inputs
9576 `(("emacs-emms" ,emms)))
9577 (home-page "https://github.com/momomo5717/emms-player-simple-mpv")
9578 (synopsis "Extension of @file{emms-player-simple.el} for mpv JSON IPC")
9579 (description "@code{emms-player-simple-mpv} provides macros and
9580functions for defining emms simple players of mpv.")
9581 (license license:gpl3+))))
26165a79
OP
9582
9583(define-public emacs-magit-org-todos-el
9584 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
9585 (package
9586 (name "emacs-magit-org-todos-el")
9587 (version (git-version "0.1.1" "1" commit))
9588 (source
9589 (origin
9590 (method git-fetch)
9591 (uri (git-reference
9592 (url "https://github.com/danielma/magit-org-todos.el.git")
9593 (commit commit)))
9594 (file-name (git-file-name name version))
9595 (sha256
9596 (base32
9597 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
ec6f4bda
OP
9598 (propagated-inputs
9599 `(("magit" ,magit)))
26165a79
OP
9600 (build-system emacs-build-system)
9601 (home-page "https://github.com/danielma/magit-org-todos.el")
9602 (synopsis "Get todo.org into Emacs Magit status")
9603 (description "This package allows you to get @file{todo.org} into your
9604magit status.
9605
9606If you have a @file{todo.org} file with @code{TODO} items in the root of your
9607repository, @code{magit-org-todos} will create a section in your Magit status
9608buffer with each of your todos.")
9609 (license license:gpl3+))))
f4dc59a2
OP
9610
9611(define-public emacs-f3
9612 (package
9613 (name "emacs-f3")
9614 (version "0.1")
9615 (source
9616 (origin
9617 (method url-fetch)
9618 (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
9619 version ".tar.gz"))
9620 (file-name (string-append name "-" version ".tar.gz"))
9621 (sha256
9622 (base32
9623 "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
9624 (build-system emacs-build-system)
9625 (propagated-inputs
9626 `(("emacs-helm" ,emacs-helm)))
9627 (home-page "https://github.com/cosmicexplorer/f3")
9628 (synopsis "Fantastic File Finder for Emacs")
9629 (description
9630 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
9631 (license license:gpl3+)))
6d6d9acc
OP
9632
9633(define-public emacs-lice-el
9634 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
9635 (package
9636 (name "emacs-lice-el")
9637 (version (git-version "0.2" "1" commit))
9638 (source (origin
9639 (method git-fetch)
9640 (uri (git-reference
9641 (url "https://github.com/buzztaiki/lice-el.git")
9642 (commit commit)))
9643 (file-name (git-file-name name version))
9644 (sha256
9645 (base32
9646 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
9647 (build-system emacs-build-system)
9648 (home-page "https://github.com/buzztaiki/lice-el")
9649 (synopsis "License and header template for Emacs")
9650 (description "@code{lice.el} provides following features:
9651
9652@itemize
9653@item License template management.
9654@item File header insertion.
9655@end itemize\n")
9656 (license license:gpl3+))))
fc86ea63
OP
9657
9658(define-public emacs-academic-phrases
9659 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
9660 (package
9661 (name "emacs-academic-phrases")
9662 (version (git-version "0.1" "1" commit))
9663 (source
9664 (origin
9665 (method git-fetch)
9666 (uri (git-reference
9667 (url "https://github.com/nashamri/academic-phrases.git")
9668 (commit commit)))
9669 (file-name (string-append name "-" version "-checkout"))
9670 (sha256
9671 (base32
9672 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
9673 (build-system emacs-build-system)
9674 (propagated-inputs
9675 `(("emacs-dash" ,emacs-dash)
9676 ("emacs-s" ,emacs-s)
9677 ("emacs-ht" ,emacs-ht)))
9678 (home-page "https://github.com/nashamri/academic-phrases")
9679 (synopsis "Bypass that mental block when writing your papers")
9680 (description
9681 "When writing your academic paper, you might get stuck trying to find
9682the right phrase that captures your intention. This package tries to
9683alleviate that problem by presenting you with a list of phrases organized by
9684the topic or by the paper section that you are writing. This package has
9685around 600 phrases so far.
9686
9687Using this package is easy, just call @code{academic-phrases} to get a list of
9688phrases organized by topic, or call @code{academic-phrases-by-section} to
9689browse the phrases by the paper section and fill-in the blanks if required.")
9690 (license license:gpl3+))))
75a87807
OP
9691
9692(define-public emacs-auto-yasnippet
9693 (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
9694 (package
9695 (name "emacs-auto-yasnippet")
9696 (version (git-version "0.3.0" "1" commit))
9697 (source (origin
9698 (method git-fetch)
9699 (uri (git-reference
9700 (url "https://github.com/abo-abo/auto-yasnippet.git")
9701 (commit commit)))
9702 (file-name (string-append name "-" version "-checkout"))
9703 (sha256
9704 (base32
9705 "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
9706 (build-system emacs-build-system)
9707 (arguments
9708 '(#:phases
9709 (modify-phases %standard-phases
9710 (add-before 'install 'check
9711 (lambda _
9712 (invoke "emacs" "--batch"
9713 "-l" "auto-yasnippet.el"
9714 "-l" "auto-yasnippet-test.el"
9715 "-f" "ert-run-tests-batch-and-exit"))))))
9716 (propagated-inputs
9717 `(("emacs-yasnippet" ,emacs-yasnippet)))
9718 (home-page "https://github.com/abo-abo/auto-yasnippet/")
9719 (synopsis "Quickly create disposable yasnippets")
9720 (description "This package provides a hybrid of keyboard macros and
9721yasnippet. You create the snippet on the go, usually to be used just in the
9722one place. It's fast, because you're not leaving the current buffer, and all
9723you do is enter the code you'd enter anyway, just placing ~ where you'd like
9724yasnippet fields and mirrors to be.")
9725 (license license:gpl3+))))
a79cf99c
OP
9726
9727(define-public emacs-highlight-numbers
9728 (package
9729 (name "emacs-highlight-numbers")
9730 (version "0.2.3")
9731 (source
9732 (origin
9733 (method url-fetch)
9734 (uri (string-append
9735 "https://github.com/Fanael/highlight-numbers/archive/"
9736 version ".tar.gz"))
9737 (file-name (string-append name "-" version ".tar.gz"))
9738 (sha256
9739 (base32
9740 "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
9741 (build-system emacs-build-system)
9742 (propagated-inputs
9743 `(("emacs-parent-mode" ,emacs-parent-mode)))
9744 (home-page "https://github.com/Fanael/highlight-numbers")
9745 (synopsis "Highlight numbers in source code")
9746 (description "@code{highlight-numbers-mode} provides a minor mode for
9747syntax highlighting of numeric literals in source code.
9748
9749It s customizable: it's easy to add or redefine what exactly consitutes a
9750\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
9751 (license license:gpl3+)))
6e28f15c
OP
9752
9753(define-public emacs-darkroom
9754 (package
9755 (name "emacs-darkroom")
9756 (version "0.1")
9757 (source (origin
9758 (method url-fetch)
9759 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
9760 version ".el"))
9761 (sha256
9762 (base32
9763 "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
9764 (build-system emacs-build-system)
9765 (home-page "https://elpa.gnu.org/packages/darkroom.html")
9766 (synopsis "Remove visual distractions and focus on writing")
9767 (description "@code{darkroom-mode} makes visual distractions disappear.
9768The mode-line is temporarily elided, text is enlarged and margins are adjusted
9769so that it's centered on the window.
9770
9771@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
9772@code{darkroom-mode}, unless the current buffer lives in the sole window of
9773the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
9774split to display more windows and more buffers, the buffer exits
9775@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
9776@code{darkroom-mode}.")
9777 (license license:gpl3+)))
bf8300de
OP
9778
9779(define-public emacs-rsw-elisp
9780 (package
9781 (name "emacs-rsw-elisp")
9782 (version "1.0.5")
9783 (source (origin
9784 (method url-fetch)
9785 (uri (string-append "https://github.com/rswgnu/rsw-elisp"
9786 "/archive/" version ".tar.gz"))
9787 (file-name (string-append name "-" version ".tar.gz"))
9788 (sha256
9789 (base32
9790 "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
9791 (build-system emacs-build-system)
9792 (home-page "https://github.com/rswgnu/rsw-elisp")
9793 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
9794 (description "This package improves and replaces the GNU Emacs commands
9795that interactively evaluate Emacs Lisp expressions. The new commands replace
5e5bcc80
RW
9796standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
9797the same way as the old commands when called non-interactively; only the
bf8300de
OP
9798interactive behavior should be different.")
9799 (license license:gpl3+)))
192a9a20
OP
9800
9801(define-public emacs-default-text-scale
9802 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
9803 (revision "1"))
9804 (package
9805 (name "emacs-default-text-scale")
9806 (version (string-append "0.1" "-" revision "."
9807 (string-take commit 7)))
9808 (source (origin
9809 (method git-fetch)
9810 (uri (git-reference
9811 (url "https://github.com/purcell/default-text-scale")
9812 (commit commit)))
9813 (file-name (string-append name "-" version "-checkout"))
9814 (sha256
9815 (base32
9816 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
9817 (build-system emacs-build-system)
9818 (home-page "https://github.com/purcell/default-text-scale")
9819 (synopsis "Adjust the font size in all Emacs frames")
9820 (description "This package provides commands for increasing or
9821decreasing the default font size in all GUI Emacs frames.")
9822 (license license:gpl3+))))
2f9e1378
OP
9823
9824(define-public emacs-visual-regexp
9825 (package
9826 (name "emacs-visual-regexp")
9827 (version "1.1.1")
9828 (source
9829 (origin
9830 (method url-fetch)
9831 (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
9832 "v" version ".tar.gz"))
9833 (file-name (string-append name "-" version ".tar.gz"))
9834 (sha256
9835 (base32
9836 "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
9837 (build-system emacs-build-system)
9838 (home-page "https://github.com/benma/visual-regexp.el/")
9839 (synopsis "Regexp command with interactive visual feedback")
9840 (description "This package provides an Emacs regexp command with
9841interactive visual feedback.")
9842 (license license:gpl3+)))
6f83725f
OP
9843
9844(define-public emacs-faceup
9845 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
9846 (revision "1"))
9847 (package
9848 (name "emacs-faceup")
9849 (version (string-append "0.0.1" "-" revision "."
9850 (string-take commit 7)))
9851 (source
9852 (origin
9853 (method git-fetch)
9854 (uri (git-reference
9855 (url "https://github.com/Lindydancer/faceup.git")
9856 (commit commit)))
9857 (file-name (string-append name "-" version "-checkout"))
9858 (sha256
9859 (base32
9860 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
9861 (build-system emacs-build-system)
9862 (home-page "https://github.com/Lindydancer/faceup")
9863 (synopsis "Markup language for faces and font-lock regression testing")
9864 (description "Emacs is capable of highlighting buffers based on
9865language-specific @code{font-lock} rules. This package makes it possible to
9866perform regression test for packages that provide font-lock rules.")
9867 (license license:gpl3+))))
f52b635b
OP
9868
9869(define-public emacs-racket-mode
9870 (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451")
9871 (revision "1"))
9872 (package
9873 (name "emacs-racket-mode")
9874 (version (string-append "0.0.1" "-" revision "."
9875 (string-take commit 7)))
9876 (source
9877 (origin
9878 (method git-fetch)
9879 (uri (git-reference
9880 (url "https://github.com/greghendershott/racket-mode")
9881 (commit commit)))
9882 (file-name (string-append name "-" version "-checkout"))
9883 (sha256
9884 (base32
9885 "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"))))
9886 (build-system emacs-build-system)
9887 (propagated-inputs
9888 `(("emacs-faceup" ,emacs-faceup)
9889 ("emacs-s" ,emacs-s)))
9890 (home-page "https://github.com/greghendershott/racket-mode")
9891 (synopsis "Major mode for Racket language")
9892 (description "@code{racket-mode} provides:
9893
9894@itemize
9895@item Focus on Racket (not various Schemes).
9896@item Follow DrRacket concepts where applicable.
9897@item Thorough font-lock and indent.
9898@end itemize\n")
9899 (license license:gpl3+))))
8f052df2
OP
9900
9901(define-public emacs-grep-context
9902 (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
9903 (package
9904 (name "emacs-grep-context")
9905 (version (git-version "0.1" "1" commit))
9906 (source
9907 (origin
9908 (method git-fetch)
9909 (uri (git-reference
9910 (url "https://github.com/mkcms/grep-context.git")
9911 (commit commit)))
9912 (file-name (string-append name "-" version "-checkout"))
9913 (sha256
9914 (base32
9915 "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
9916 (build-system emacs-build-system)
9917 (propagated-inputs
9918 `(("emacs-dash" ,emacs-dash)))
9919 (home-page "https://github.com/nashamri/academic-phrases")
9920 (synopsis "Increase context in compilation and grep buffers")
9921 (description
9922 "This package provides an Emacs package for more context in
9923compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
9924@code{ivy}.")
9925 (license license:gpl3+))))
d3f7e533
OP
9926
9927(define-public emacs-helm-firefox
9928 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
9929 (revision "1"))
9930 (package
9931 (name "emacs-helm-firefox")
9932 (version (string-append "0.0.1" "-" revision "."
9933 (string-take commit 7)))
9934 (source
9935 (origin
9936 (method git-fetch)
9937 (uri (git-reference
9938 (url "https://github.com/emacs-helm/helm-firefox.git")
9939 (commit commit)))
9940 (file-name (string-append name "-" version "-checkout"))
9941 (sha256
9942 (base32
9943 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
0715a9e6
OP
9944 (propagated-inputs
9945 `(("emacs-helm" ,emacs-helm)))
d3f7e533
OP
9946 (build-system emacs-build-system)
9947 (home-page "https://github.com/emacs-helm/helm-firefox")
9948 (synopsis "Display firefox bookmarks with Emacs Helm interface")
9949 (description "Display firefox bookmarks with Emacs Helm interface")
9950 (license license:gpl3+))))
b268bf18
OP
9951
9952(define-public emacs-interactive-align
9953 (package
9954 (name "emacs-interactive-align")
9955 (version "0.1.0")
9956 (source
9957 (origin
9958 (method url-fetch)
9959 (uri (string-append "https://github.com/mkcms/interactive-align/"
9960 "archive/" "v" version ".tar.gz"))
9961 (file-name (string-append name "-" version ".tar.gz"))
9962 (sha256
9963 (base32
9964 "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
9965 (build-system emacs-build-system)
9966 (home-page "https://github.com/mkcms/interactive-align/")
9967 (synopsis "Interactive align-regexp command in Emacs")
9968 (description "Interactive align-regexp command in Emacs")
9969 (license license:gpl3+)))
fcd8d4f7
OP
9970
9971(define-public emacs-shift-number
9972 (package
9973 (name "emacs-shift-number")
9974 (version "0.1")
9975 (source
9976 (origin
9977 (method url-fetch)
9978 (uri (string-append "https://github.com/alezost/shift-number.el"
9979 "/archive/" "v" version ".tar.gz"))
9980 (file-name (string-append name "-" version ".tar.gz"))
9981 (sha256
9982 (base32
9983 "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
9984 (build-system emacs-build-system)
9985 (home-page "https://github.com/alezost/shift-number.el")
9986 (synopsis "Increase or decrease the number at point")
9987 (description "@code{emacs-shift-number} provides commands
9988@code{shift-number-up} to increase and @code{shift-number-down} to
9989decrease the number at point.")
9990 (license license:gpl3+)))
b91e1724
OP
9991
9992(define-public emacs-highlight-defined
9993 (package
9994 (name "emacs-highlight-defined")
9995 (version "0.1.5")
9996 (source
9997 (origin
9998 (method url-fetch)
9999 (uri (string-append
10000 "https://github.com/Fanael/highlight-defined/archive/"
10001 version ".tar.gz"))
10002 (file-name (string-append name "-" version ".tar.gz"))
10003 (sha256
10004 (base32
10005 "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
10006 (build-system emacs-build-system)
10007 (home-page "https://github.com/Fanael/highlight-defined")
10008 (synopsis "Syntax highlighting of known Elisp symbols")
10009 (description "Minor mode providing syntax highlighting of known Emacs Lisp
10010symbols. Currently the code distinguishes Lisp functions, built-in functions,
10011macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
10012 (license license:gpl3+)))
8a2ab51a
OP
10013
10014(define-public emacs-parinfer-mode
10015 (package
10016 (name "emacs-parinfer-mode")
10017 (version "0.4.10")
10018 (source
10019 (origin
10020 (method url-fetch)
10021 (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
10022 "v" version ".tar.gz"))
10023 (file-name (string-append name "-" version ".tar.gz"))
10024 (sha256
10025 (base32
10026 "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
10027 (propagated-inputs
10028 `(("emacs-dash" ,emacs-dash)
10029 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
10030 ("emacs-company" ,emacs-company)))
10031 (build-system emacs-build-system)
10032 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
10033 (synopsis "Lisp structure editing mode")
10034 (description "@code{parinfer-mode} is a proof-of-concept editor
10035mode for Lisp programming languages. It will infer some changes to
10036keep Parens and Indentation inline with one another.")
10037 (license license:gpl3+)))
abe8ef7f
OP
10038
10039(define-public emacs-helm-eww
10040 (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac"))
10041 (package
10042 (name "emacs-helm-eww")
10043 (version (git-version "0.1" "1" commit))
10044 (source (origin
10045 (method git-fetch)
10046 (uri (git-reference
10047 (url "https://github.com/emacs-helm/helm-eww.git")
10048 (commit commit)))
10049 (file-name (string-append name "-" version "-checkout"))
10050 (sha256
10051 (base32
10052 "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
9e2529e1
OP
10053 (propagated-inputs
10054 `(("emacs-helm" ,emacs-helm)))
abe8ef7f
OP
10055 (build-system emacs-build-system)
10056 (home-page "https://github.com/emacs-helm/helm-eww/")
10057 (synopsis "Helm interface to EWW")
10058 (description "This package provides a Helm interface for EWW buffers,
10059bookmarks and history.")
10060 (license license:gpl3+))))
b870ee10
OP
10061
10062(define-public emacs-stumpwm-mode
10063 (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
10064 (revision "1"))
10065 (package
10066 (name "emacs-stumpwm-mode")
10067 (version (string-append "0.0.1-" revision "."
10068 (string-take commit 7)))
10069 (source (origin
10070 (method git-fetch)
10071 (uri (git-reference
10072 (url "https://github.com/stumpwm/stumpwm-contrib.git")
10073 (commit commit)))
10074 (file-name (string-append name "-" version "-checkout"))
10075 (sha256
10076 (base32
10077 "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
10078 (build-system emacs-build-system)
10079 (arguments
10080 `(#:phases
10081 (modify-phases %standard-phases
10082 (add-after 'unpack 'chdir-elisp
10083 ;; Elisp directory is not in root of the source.
10084 (lambda _
10085 (chdir "util/swm-emacs"))))))
10086 (home-page "https://github.com/stumpwm/stumpwm-contrib")
10087 (synopsis "Emacs minor-mode for Stumpwm")
10088 (description "Emacs minor-mode for Stumpwm")
10089 (license license:gpl3+))))
dbbd6e89
OP
10090
10091(define-public emacs-irfc
10092 (package
10093 (name "emacs-irfc")
10094 (version "20130824.507")
10095 (source
10096 (origin
10097 (method url-fetch)
10098 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
10099 (file-name (string-append "irfc-" version ".el"))
10100 (sha256
10101 (base32
10102 "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
10103 (build-system emacs-build-system)
10104 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
10105 (synopsis "Interface for IETF RFC document")
10106 (description
10107 "This package provides an Emacs interface for IETF RFC document.")
10108 (license license:gpl3+)))
0e087b70
OP
10109
10110(define-public emacs-ido-vertical-mode
10111 (package
10112 (name "emacs-ido-vertical-mode")
10113 (version "0.1.6")
10114 (source
10115 (origin
10116 (method url-fetch)
10117 (uri (string-append
10118 "https://github.com/creichert/ido-vertical-mode.el/archive/"
10119 "v" version ".tar.gz"))
10120 (file-name (string-append name "-" version ".tar.gz"))
10121 (sha256
10122 (base32
10123 "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
10124 (build-system emacs-build-system)
10125 (home-page "https://github.com/creichert/ido-vertical-mode.el")
10126 (synopsis "Makes ido-mode display vertically")
10127 (description "Makes ido-mode display prospects vertically.")
10128 (license license:gpl3+)))
ca0e2ab0
OP
10129
10130(define-public emacs-wordgen
10131 (package
10132 (name "emacs-wordgen")
10133 (version "0.1.4")
10134 (source
10135 (origin
10136 (method url-fetch)
10137 (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
10138 version ".tar.gz"))
10139 (file-name (string-append name "-" version ".tar.gz"))
10140 (sha256
10141 (base32
10142 "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
10143 (build-system emacs-build-system)
10144 (home-page "https://github.com/Fanael/wordgen.el")
10145 (synopsis "Random word generator")
10146 (description "This package provides functions to generate random words
10147using user-provided rules.")
10148 (license license:gpl3+)))
47667501
OP
10149
10150(define-public emacs-on-screen
10151 (package
10152 (name "emacs-on-screen")
10153 (version "1.3.2")
10154 (source
10155 (origin
10156 (method url-fetch)
10157 (uri (string-append
10158 "http://elpa.gnu.org/packages/on-screen-" version ".el"))
10159 (file-name (string-append name "-" version ".el"))
10160 (sha256
10161 (base32
10162 "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
10163 (build-system emacs-build-system)
10164 (home-page
10165 "https://github.com/michael-heerdegen/on-screen.el")
10166 (synopsis "Guide your eyes while scrolling")
10167 (description
10168 "Scrolling can be distracting because your eyes may lose
10169orientation. This library implements a minor mode that highlights
10170the previously visible buffer part after each scroll.")
10171 (license license:gpl3+)))
cfeefca9
OP
10172
10173(define-public emacs-highlight-escape-sequences
10174 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
10175 (revision "1"))
10176 (package
10177 (name "emacs-highlight-escape-sequences")
10178 (version (string-append "0.0.1" "-" revision "."
10179 (string-take commit 7)))
10180 (source
10181 (origin
10182 (method git-fetch)
10183 (uri (git-reference
10184 (url "https://github.com/dgutov/highlight-escape-sequences.git")
10185 (commit commit)))
10186 (file-name (string-append name "-" version "-checkout"))
10187 (sha256
10188 (base32
10189 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
10190 (build-system emacs-build-system)
10191 (home-page "https://github.com/dgutov/highlight-escape-sequences")
10192 (synopsis "Highlight escape sequences in Emacs")
10193 (description "@code{highlight-escape-sequences} provides an
10194Emacs minor mode to escape sequences in code.")
10195 (license license:gpl3+))))
99092bd9
OP
10196
10197(define-public emacs-dashboard
10198 (package
10199 (name "emacs-dashboard")
10200 (version "1.2.4")
10201 (source
10202 (origin
10203 (method url-fetch)
10204 (uri (string-append
10205 "https://github.com/rakanalh/emacs-dashboard/archive/"
10206 version ".tar.gz"))
10207 (file-name (string-append name "-" version ".tar.gz"))
10208 (sha256
10209 (base32
10210 "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
10211 (build-system emacs-build-system)
10212 (propagated-inputs
10213 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
10214 (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
10215 (home-page "https://github.com/rakanalh/emacs-dashboard")
10216 (synopsis "Startup screen extracted from Spacemacs")
10217 (description "This package provides an extensible Emacs dashboard, with
10218sections for bookmarks, projectil projects, org-agenda and more. ")
10219 (license license:gpl3+)))
37fa904f
OP
10220
10221(define-public emacs-slime-company
10222 (package
10223 (name "emacs-slime-company")
10224 (version "1.1")
10225 (source
10226 (origin
10227 (method url-fetch)
10228 (uri (string-append "https://github.com/anwyn/slime-company/archive/"
10229 "v" version ".tar.gz"))
10230 (sha256
10231 (base32
10232 "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
10233 (file-name (string-append name "-" version ".tar.gz"))))
10234 (build-system emacs-build-system)
10235 (propagated-inputs
10236 `(("emacs-slime" ,emacs-slime)
10237 ("emacs-company" ,emacs-company)))
10238 (home-page "https://company-mode.github.io")
10239 (synopsis "SLIME completion backend for @code{company-mode}")
10240 (description
10241 "This is a backend implementation for the completion package
10242@code{company-mode} which supports the normal and the fuzzy completion
10243modes of SLIME.")
10244 (license license:gpl3+)))
1a73164d
OP
10245
10246(define-public emacs-sml-mode
10247 (package
10248 (name "emacs-sml-mode")
10249 (version "6.8")
10250 (source
10251 (origin
10252 (method url-fetch)
10253 (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
10254 version ".el"))
10255 (sha256
10256 (base32
10257 "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
10258 (build-system emacs-build-system)
10259 (home-page "http://elpa.gnu.org/packages/sml-mode.html")
10260 (synopsis "Major mode for editing (Standard) ML")
10261 (description "SML-MODE is a major Emacs mode for editing Standard ML.
10262It provides syntax highlighting and automatic indentation and
10263comes with sml-proc which allows interaction with an inferior SML
10264interactive loop.")
10265 (license license:gpl3+)))
c498ff56
OP
10266
10267(define-public emacs-eros
10268 (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
10269 (revision "1"))
10270 (package
10271 (name "emacs-eros")
10272 (version (string-append "0.0.1" "-" revision "."
10273 (string-take commit 7)))
10274 (source
10275 (origin
10276 (method git-fetch)
10277 (uri (git-reference
10278 (url "https://github.com/xiongtx/eros.git")
10279 (commit commit)))
10280 (file-name (string-append name "-" version "-checkout"))
10281 (sha256
10282 (base32
10283 "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
10284 (build-system emacs-build-system)
10285 (home-page "https://github.com/xiongtx/eros")
10286 (synopsis "Evaluation result overlays")
10287 (description "@code{eros} provides evaluation result overlays.")
10288 (license license:gpl3+))))
6673bbef
OP
10289
10290(define-public emacs-stickyfunc-enhance
10291 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
10292 (revision "1"))
10293 (package
10294 (name "emacs-stickyfunc-enhance")
10295 (version "0.1")
10296 (source
10297 (origin
10298 (method git-fetch)
10299 (uri (git-reference
10300 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
10301 (commit commit)))
10302 (file-name (string-append name "-" version "-checkout"))
10303 (sha256
10304 (base32
10305 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
10306 (build-system emacs-build-system)
10307 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
10308 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
10309 (description
10310 "@code{semantic-stickyfunc-mode} shows the function point is currently
10311in at the first line of the current buffer. This is useful when you have a
10312very long function that spreads more than a screen, and you don't have to
10313scroll up to read the function name and then scroll down to original position.")
10314 (license license:gpl3+))))
c9efc229
OP
10315
10316(define-public emacs-git-auto-commit-mode
10317 (package
10318 (name "emacs-git-auto-commit-mode")
10319 (version "4.4.0")
10320 (source
10321 (origin
10322 (method url-fetch)
10323 (uri (string-append
10324 "https://github.com/ryuslash/git-auto-commit-mode/archive/"
10325 version ".tar.gz"))
10326 (file-name (string-append name "-" version ".tar.gz"))
10327 (sha256
10328 (base32
10329 "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
10330 (build-system emacs-build-system)
10331 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
10332 (synopsis "Emacs Minor mode to automatically commit and push")
10333 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
10334tries to commit changes to a file after every save.
10335
10336When @code{gac-automatically-push-p} is non-nil, it also tries to push to
10337the current upstream.")
10338 (license license:gpl3+)))
deef6d7c
OP
10339
10340(define-public emacs-company-restclient
10341 (package
10342 (name "emacs-company-restclient")
10343 (version "0.1.0")
10344 (source
10345 (origin
10346 (method url-fetch)
10347 (uri (string-append
10348 "https://github.com/iquiw/company-restclient/archive/"
10349 "v" version ".tar.gz"))
10350 (file-name (string-append name "-" version ".tar.gz"))
10351 (sha256
10352 (base32
10353 "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
10354 (build-system emacs-build-system)
10355 (propagated-inputs
10356 `(("emacs-company" ,emacs-company)
10357 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
10358 ("emacs-restclient" ,emacs-restclient)))
10359 (home-page "https://github.com/iquiw/company-restclient")
10360 (synopsis "Company-mode completion back-end for restclient-mode")
10361 (description "@code{company-mode} back-end for
10362@code{restclient-mode}.
10363
10364It provides auto-completion for HTTP methods and headers in
10365@code{restclient-mode}. Completion source is given by
10366@code{know-your-http-well}.")
10367 (license license:gpl3+)))
51eda974
SB
10368
10369(define-public emacs-noflet
10370 (let ((version "20170629")
10371 (revision "1")
10372 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
10373 (package
10374 (name "emacs-noflet")
10375 (version (git-version version revision commit))
10376 (source
10377 (origin
10378 (method git-fetch)
10379 (uri (git-reference
10380 (url "https://github.com/nicferrier/emacs-noflet")
10381 (commit commit)))
10382 (file-name (string-append name "-" version "-checkout"))
10383 (sha256
10384 (base32
10385 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
10386 (build-system emacs-build-system)
10387 (arguments
10388 `(#:phases
10389 (modify-phases %standard-phases
10390 (add-after 'unpack 'require-dash
10391 ;; noflet.el uses -map from dash, but (require 'dash) is
10392 ;; missing. So, add it.
10393 (lambda _
10394 (substitute* "noflet.el"
10395 ((";;; Code:") ";;; Code:\n(require 'dash)"))
10396 #t)))))
10397 (propagated-inputs
10398 `(("emacs-dash" ,emacs-dash)))
10399 (home-page "https://github.com/nicferrier/emacs-noflet")
10400 (synopsis "Locally override functions")
10401 (description "@code{emacs-noflet} let's you locally override functions,
10402in the manner of @command{flet}, but with access to the original function
10403through the symbol: @command{this-fn}.")
10404 (license license:gpl3+))))
b36f9a80
SB
10405
10406(define-public emacs-dumb-jump
10407 (package
10408 (name "emacs-dumb-jump")
10409 (version "0.5.2")
10410 (source
10411 (origin
10412 (method url-fetch)
10413 (uri (string-append
10414 "https://github.com/jacktasia/dumb-jump/archive/v"
10415 version ".tar.gz"))
10416 (file-name (string-append name "-" version ".tar.gz"))
10417 (sha256
10418 (base32
10419 "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
10420 (build-system emacs-build-system)
10421 (arguments
10422 `(#:tests? #f ; FIXME: Tests freeze when run.
10423 #:test-command '("ert-runner")
10424 #:phases
10425 (modify-phases %standard-phases
10426 (add-after 'unpack 'set-shell
10427 (lambda _
10428 ;; Setting the SHELL environment variable is required for the
10429 ;; tests to find sh.
10430 (setenv "SHELL" (which "sh"))
10431 #t)))))
10432 (native-inputs
10433 `(("emacs-el-mock" ,emacs-el-mock)
10434 ("emacs-noflet" ,emacs-noflet)
10435 ("emacs-undercover" ,emacs-undercover)
10436 ("ert-runner" ,ert-runner)))
10437 (propagated-inputs
10438 `(("emacs-f" ,emacs-f)
10439 ("emacs-popup" ,emacs-popup)))
10440 (home-page "https://github.com/jacktasia/dumb-jump")
10441 (synopsis "Jump to definition for multiple languages without configuration")
10442 (description "Dumb Jump is an Emacs \"jump to definition\" package with
10443support for multiple programming languages that favors \"just working\" over
10444speed or accuracy. This means minimal --- and ideally zero --- configuration
10445with absolutely no stored indexes (tags) or persistent background processes.
10446Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
10447@command{rg} installed.")
10448 (license license:gpl3+)))
563ab27b
MO
10449
10450(define-public emacs-dts-mode
10451 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
10452 (revision "1"))
10453 (package
10454 (name "emacs-dts-mode")
10455 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
10456 (source
10457 (origin
10458 (method git-fetch)
10459 (uri (git-reference
10460 (url "https://github.com/bgamari/dts-mode.git")
10461 (commit commit)))
10462 (file-name (string-append name "-" version "-checkout"))
10463 (sha256
10464 (base32
10465 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
10466 (build-system emacs-build-system)
10467 (home-page "https://github.com/bgamari/dts-mode.git")
10468 (synopsis "Emacs minor mode for editing device tree files")
10469 (description
10470 "This package provides an Emacs minor mode for highlighting
10471device tree files.")
10472 (license license:gpl3+))))
bdadf855
PN
10473
10474(define-public emacs-daemons
10475 (package
10476 (name "emacs-daemons")
10477 (version "1.2.0")
10478 (source
10479 (origin
10480 (method git-fetch)
10481 (uri (git-reference
10482 (url "https://github.com/cbowdon/daemons.el")
10483 (commit version)))
10484 (file-name (string-append name "-" version "-checkout"))
10485 (sha256
10486 (base32
10487 "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7"))))
10488 (build-system emacs-build-system)
10489 (home-page "https://github.com/cbowdon/daemons.el")
10490 (synopsis "Emacs UI for managing init system services")
10491 (description
10492 "This is an Emacs mode to give you a UI for managing init system
10493daemons (services) for those getting tired of typing out @code{sudo service
35d43843 10494my_thing reload} all the time. It offers a consistent UI over different init
bdadf855
PN
10495systems.")
10496 (license license:gpl3+)))
71d35215
PN
10497
10498(define-public emacs-esh-autosuggest
10499 (package
10500 (name "emacs-esh-autosuggest")
10501 (version "2.0.0")
10502 (source
10503 (origin
10504 (method git-fetch)
10505 (uri (git-reference
10506 (url "https://github.com/dieggsy/esh-autosuggest")
10507 (commit version)))
10508 (file-name (string-append name "-" version "-checkout"))
10509 (sha256
10510 (base32
10511 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
10512 (build-system emacs-build-system)
10513 (propagated-inputs `(("emacs-company" ,emacs-company)))
10514 (home-page "https://github.com/dieggsy/esh-autosuggest")
10515 (synopsis "Fish-like autosuggestions in Eshell")
10516 (description
10517 "This package assumes you use something other than company for eshell
10518completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
10519@code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
10520for history autosuggestions.
10521
10522Unless you're using @code{use-package}'s hook keyword, you can enable the
10523autosuggestions with:
10524@code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
10525 (license license:gpl3+)))
fd29faa8
RW
10526
10527(define-public emacs-desktop-environment
10528 (package
10529 (name "emacs-desktop-environment")
10530 (version "0.2.0")
10531 (source
10532 (origin
10533 (method git-fetch)
10534 (uri (git-reference
10535 (url "https://github.com/DamienCassou/desktop-environment.git")
10536 (commit (string-append "v" version))))
10537 (file-name (string-append name "-" version "-checkout"))
10538 (sha256
10539 (base32
10540 "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r"))))
10541 (build-system emacs-build-system)
10542 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
10543 (synopsis "Control your GNU/Linux desktop environment from Emacs")
10544 (description
10545 "This package helps you control your GNU/Linux desktop from Emacs.
10546With @code{desktop-environment}, you can control the brightness and volume as
10547well as take screenshots and lock your screen. The package depends on the
10548availability of shell commands to do the hard work for us. These commands can
10549be changed by customizing the appropriate variables.")
10550 (license license:gpl3+)))