diff options
Diffstat (limited to 'gnu/packages/emacs.scm')
-rw-r--r-- | gnu/packages/emacs.scm | 1656 |
1 files changed, 1370 insertions, 286 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 2322581a30..69392e19d8 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com> -;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org> +;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 David Thompson <davet@gnu.org> @@ -15,7 +15,7 @@ ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> -;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com> +;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com> @@ -34,10 +34,13 @@ ;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com> ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org> -;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> +;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> +;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com> +;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de> +;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,10 +66,12 @@ #:use-module (guix monads) #:use-module (guix store) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system trivial) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages bash) #:use-module (gnu packages cmake) @@ -84,6 +89,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages xorg) #:use-module (gnu packages lesstif) + #:use-module (gnu packages llvm) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages version-control) @@ -113,6 +119,9 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages shells) #:use-module (gnu packages gnupg) + #:use-module (gnu packages video) + #:use-module (gnu packages haskell) + #:use-module (gnu packages wordnet) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -329,9 +338,9 @@ editor (without an X toolkit)" ) ;;; Emacs hacking. ;;; -(define-public geiser +(define-public emacs-geiser (package - (name "geiser") + (name "emacs-geiser") (version "0.10") (source (origin (method url-fetch) @@ -364,7 +373,10 @@ implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.") (license license:bsd-3))) -(define-public paredit +(define-public geiser + (deprecated-package "geiser" emacs-geiser)) + +(define-public emacs-paredit (package (name "emacs-paredit") (version "24") @@ -389,6 +401,9 @@ for those who may want transient periods of unbalanced parentheses, such as when typing parentheses directly or commenting out code line by line.") (license license:gpl3+))) +(define-public paredit + (deprecated-package "paredit" emacs-paredit)) + (define-public git-modes (package (name "emacs-git-modes") @@ -438,15 +453,15 @@ For remote processes a substitute is provided, which communicates with Emacs on stdout instead of using a socket as the Emacsclient does.") (license license:gpl3+))) -(define-public magit +(define-public emacs-magit (package - (name "magit") + (name "emacs-magit") (version "2.13.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/magit/magit/releases/download/" - version "/" name "-" version ".tar.gz")) + version "/magit-" version ".tar.gz")) (sha256 (base32 "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc")))) @@ -506,9 +521,12 @@ cherry picking, reverting, merging, rebasing, and other common Git operations.") (license license:gpl3+))) -(define-public magit-svn +(define-public magit + (deprecated-package "magit" emacs-magit)) + +(define-public emacs-magit-svn (package - (name "magit-svn") + (name "emacs-magit-svn") (version "2.2.0") (source (origin (method url-fetch) @@ -525,7 +543,7 @@ operations.") ("gzip" ,gzip))) (propagated-inputs `(("dash" ,emacs-dash) ("with-editor" ,emacs-with-editor) - ("magit" ,magit))) + ("magit" ,emacs-magit))) (arguments `(#:modules ((guix build utils) (guix build emacs-utils)) @@ -571,19 +589,22 @@ operations.") support for Git-SVN.") (license license:gpl3+))) +(define-public magit-svn + (deprecated-package "magit-svn" emacs-magit-svn)) + (define-public emacs-magit-popup (package (name "emacs-magit-popup") - (version "2.12.3") + (version "2.12.4") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/magit/magit-popup/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/magit/magit-popup.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1kz6vj67awkwf9y2wj6m3l2him3znm08z6bkdvnmfr6rwd96dr39")))) + "08952nzn0cb6gxscqyiljk4fq2zxjvr3ism0lvgw0gs9hl5phiwx")))) (build-system emacs-build-system) (arguments `(#:phases @@ -635,9 +656,36 @@ Gitlab APIs from Emacs packages. It abstracts access to API resources using only a handful of functions that are not resource-specific.") (license license:gpl3+))) -(define-public haskell-mode +(define-public emacs-scribble-mode + (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314") + (version "0.0") + (revision 0)) + (package + (name "emacs-scribble-mode") + (version (if (zero? revision) + version + (string-append version "-" + (number->string revision) + "." (string-take commit 7)))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-pe/scribble-mode.git") + (commit commit))) + (sha256 + (base32 + "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp")))) + (build-system emacs-build-system) + (home-page "https://github.com/emacs-pe/scribble-mode") + (synopsis "Emacs mode for editing the Scribble documentation syntax.") + (description + "This package provides basic syntax highlighting and editing support +for editing Racket's Scribble documentation syntax in Emacs.") + (license license:gpl3+)))) + +(define-public emacs-haskell-mode (package - (name "haskell-mode") + (name "emacs-haskell-mode") (version "16.1") (source (origin (method url-fetch) @@ -646,7 +694,11 @@ only a handful of functions that are not resource-specific.") "https://github.com/haskell/haskell-mode/archive/v" version ".tar.gz")) (sha256 - (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h")))) + (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h")) + (patches + (search-patches ; backport test failure fixes + "haskell-mode-unused-variables.patch" + "haskell-mode-make-check.patch")))) (inputs `(("emacs-el-search" ,emacs-el-search) ; for tests ("emacs-stream" ,emacs-stream))) ; for tests @@ -686,12 +738,11 @@ only a handful of functions that are not resource-specific.") (_ "")) inputs))) (substitute* (find-files "." "\\.el") (("/bin/sh") sh)) - (substitute* "tests/haskell-code-conventions.el" - ;; Function name recently changed in "emacs-el-search". - (("el-search--search-pattern") "el-search-forward") - ;; Don't contact home. - (("\\(when \\(>= emacs-major-version 25\\)") - "(require 'el-search) (when nil")) + ;; embed filename to fix test failure + (let ((file "tests/haskell-cabal-tests.el")) + (substitute* file + (("\\(buffer-file-name\\)") + (format #f "(or (buffer-file-name) ~s)" file)))) #t))) (replace 'install @@ -722,7 +773,10 @@ only a handful of functions that are not resource-specific.") programs.") (license license:gpl3+))) -(define-public flycheck +(define-public haskell-mode + (deprecated-package "haskell-mode" emacs-haskell-mode)) + +(define-public emacs-flycheck (package (name "emacs-flycheck") (version "31") @@ -758,6 +812,29 @@ different tools. It highlights errors and warnings inline in the buffer, and provides an optional IDE-like error list.") (license license:gpl3+))) ;+GFDLv1.3+ for the manual +(define-public emacs-a + (package + (name "emacs-a") + (version "0.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/plexus/a.el.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi")))) + (build-system emacs-build-system) + (home-page "https://github.com/plexus/a.el/") + (synopsis + "Emacs library for dealing with association lists and hash tables") + (description "@code{emacs-a} provides Emacs Lisp functions for dealing +with associative structures in a uniform and functional way. These functions +can take association lists, hash tables, and in some cases vectors (where the +index is considered the key).") + (license license:gpl3+))) + ;;; ;;; Web browsing. @@ -901,17 +978,17 @@ provides an optional IDE-like error list.") ;;; Multimedia. ;;; -(define-public emms +(define-public emacs-emms (package (name "emacs-emms") - (version "5.0") + (version "5.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz")) (sha256 (base32 - "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3")) + "149ddczyx6x10zn4mn8g0rll1rwf4yciv8x6j0qdnlbwszblx2x6")) (modules '((guix build utils))) (snippet '(begin @@ -1041,7 +1118,7 @@ light user interface.") (define-public emacs-emms-player-mpv ;; A new mpv backend is included in Emms from 5.0. - (deprecated-package "emacs-emms-player-mpv" emms)) + (deprecated-package "emacs-emms-player-mpv" emacs-emms)) (define-public emacs-emms-mode-line-cycle (package @@ -1058,7 +1135,7 @@ light user interface.") "0ifszi930pnaxk1x8pcydmvnp06868gc7nfx14q17zbajbx735k6")))) (build-system emacs-build-system) (propagated-inputs - `(("emms" ,emms))) + `(("emms" ,emacs-emms))) (home-page "https://github.com/momomo5717/emms-mode-line-cycle") (synopsis "Display the EMMS mode line as a ticker") (description @@ -1071,9 +1148,9 @@ within a specified width. It is useful for displaying long track titles.") ;;; Miscellaneous. ;;; -(define-public bbdb +(define-public emacs-bbdb (package - (name "bbdb") + (name "emacs-bbdb") (version "3.1.2") (source (origin (method url-fetch) @@ -1112,6 +1189,9 @@ like. It can be linked with various Emacs mail clients (Message and Mail mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.") (license license:gpl3+))) +(define-public bbdb + (deprecated-package "bbdb" emacs-bbdb)) + (define-public emacs-aggressive-indent (package (name "emacs-aggressive-indent") @@ -1179,16 +1259,18 @@ rather than the contents of files.") (define-public emacs-async (package (name "emacs-async") + (home-page "https://github.com/jwiegley/emacs-async") (version "1.9.3") (source (origin - (method url-fetch) - (uri (string-append "https://stable.melpa.org/packages/async-" - version ".tar")) + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0xvi50y96y2qh81qkhj8p6ar1xnfasg58qvlsvgvvmdf4g8srlij")))) + "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq")))) (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/async.html") (synopsis "Asynchronous processing in Emacs") (description "This package provides the ability to call asynchronous functions and @@ -1279,7 +1361,7 @@ a set of simplified face specifications and a user-supplied color palette") (guix build emacs-utils)) #:phases (modify-phases %standard-phases - (add-after 'rename-lispdir 'make-autoloads + (add-after 'install 'make-autoloads (assoc-ref emacs:%standard-phases 'make-autoloads))))) (home-page "http://howm.osdn.jp/") (synopsis "Note-taking tool for Emacs") @@ -1291,7 +1373,7 @@ searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.") (define-public emacs-calfw (package (name "emacs-calfw") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) @@ -1301,7 +1383,7 @@ searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l")))) + "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-howm" ,emacs-howm))) @@ -1346,7 +1428,7 @@ environment set through Direnv.") (define-public emacs-ggtags (package (name "emacs-ggtags") - (version "0.8.12") + (version "0.8.13") (source (origin (method url-fetch) @@ -1354,7 +1436,7 @@ environment set through Direnv.") version ".el")) (sha256 (base32 - "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp")))) + "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg")))) (build-system emacs-build-system) (home-page "https://github.com/leoliu/ggtags") (synopsis "Frontend to the GNU Global source code tagging system") @@ -1393,14 +1475,22 @@ current match, total matches and exit status. (name "emacs-go-mode") (version "1.5.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/dominikh/go-mode.el/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/dominikh/go-mode.el.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm")))) + "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf")))) (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-writable + (lambda _ + (for-each make-file-writable (find-files "." "\\.el$")) + #t))))) (home-page "https://github.com/dominikh/go-mode.el") (synopsis "Go mode for Emacs") (description @@ -1535,15 +1625,16 @@ filters, new key bindings and faces. It can be enabled by (package (name "emacs-pdf-tools") (version "0.80") + (home-page "https://github.com/politza/pdf-tools") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/politza/pdf-tools/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6")))) + "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s")) + (patches (search-patches "emacs-pdf-tools-poppler.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -1568,6 +1659,8 @@ filters, new key bindings and faces. It can be enabled by (lambda _ (chdir "../lisp") #t)) (add-after 'enter-lisp-dir 'emacs-patch-variables (lambda* (#:key outputs #:allow-other-keys) + (for-each make-file-writable (find-files ".")) + ;; Set path to epdfinfo program. (emacs-substitute-variables "pdf-info.el" ("pdf-info-epdfinfo-program" @@ -1601,7 +1694,6 @@ filters, new key bindings and faces. It can be enabled by files. The key difference is that pages are not pre-rendered by e.g. ghostscript and stored in the file-system, but rather created on-demand and stored in memory.") - (home-page "https://github.com/politza/pdf-tools") (license license:gpl3+))) (define-public emacs-dash @@ -1629,20 +1721,20 @@ and stored in memory.") (define-public emacs-bui (package (name "emacs-bui") - (version "1.1.0") + (version "1.2.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/alezost/bui.el/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/alezost/emacs-bui.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486")))) + "0ixia5s41f2nbal3wsixacbhbc0mk9yb75ir1amqakip30sq4apv")))) (build-system emacs-build-system) (propagated-inputs `(("dash" ,emacs-dash))) - (home-page "https://github.com/alezost/bui.el") + (home-page "https://notabug.org/alezost/emacs-bui") (synopsis "Buffer interface library for Emacs") (description "BUI (Buffer User Interface) is a library for making @code{list} and @@ -1653,38 +1745,42 @@ type, for example: packages, buffers, files, etc.") (define-public emacs-guix (package (name "emacs-guix") - (version "0.4.1.1") + (version "0.5") (source (origin (method url-fetch) (uri (string-append "https://emacs-guix.gitlab.io/website/" "releases/emacs-guix-" version ".tar.gz")) (sha256 (base32 - "0jbnrcazbks7h50rngpw5l40a6vn2794kb53cpva3yzdjmrc1955")))) + "09zxd8x674vrpigmcx8l00ifhaxh35xwkwjb8dw9kydnhv9hyyi1")))) (build-system gnu-build-system) (arguments `(#:configure-flags (let ((guix (assoc-ref %build-inputs "guix")) + (gcrypt (assoc-ref %build-inputs "guile-gcrypt")) (geiser (assoc-ref %build-inputs "geiser")) (dash (assoc-ref %build-inputs "dash")) (bui (assoc-ref %build-inputs "bui")) (magit-popup (assoc-ref %build-inputs "magit-popup")) (edit-indirect (assoc-ref %build-inputs "edit-indirect")) - (site-lisp "/share/emacs/site-lisp")) + (site-lisp "/share/emacs/site-lisp") + (site-scm "/share/guile/site") + (site-go "/lib/guile") + (guile-dir (lambda (dir) + (car (find-files dir + (lambda (file stat) + (string-prefix? + "2." (basename file))) + #:directories? #t))))) (list (string-append "--with-guix-site-dir=" - (car (find-files (string-append guix - "/share/guile/site") - (lambda (file stat) - (string-prefix? - "2." - (basename file))) - #:directories? #t))) + (guile-dir (string-append guix site-scm))) (string-append "--with-guix-site-ccache-dir=" - (car (find-files (string-append guix "/lib/guile") - (lambda (file stat) - (string-prefix? - "2." (basename file))) - #:directories? #t)) + (guile-dir (string-append guix site-go)) + "/site-ccache") + (string-append "--with-guile-gcrypt-site-dir=" + (guile-dir (string-append gcrypt site-scm))) + (string-append "--with-guile-gcrypt-site-ccache-dir=" + (guile-dir (string-append gcrypt site-go)) "/site-ccache") (string-append "--with-geiser-lispdir=" geiser site-lisp) (string-append "--with-dash-lispdir=" @@ -1706,7 +1802,8 @@ type, for example: packages, buffers, files, etc.") `(("guile" ,guile-2.2) ("guix" ,guix))) (propagated-inputs - `(("geiser" ,geiser) + `(("geiser" ,emacs-geiser) + ("guile-gcrypt" ,guile-gcrypt) ("dash" ,emacs-dash) ("bui" ,emacs-bui) ("edit-indirect" ,emacs-edit-indirect) @@ -1720,6 +1817,32 @@ management tasks from Emacs. To begin with, run @code{M-x guix-about} or @code{M-x guix-help} command.") (license license:gpl3+))) +(define-public emacs-build-farm + (package + (name "emacs-build-farm") + (version "0.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/alezost/emacs-build-farm.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1a4ky0hca26p7f3i2c2s5517ygkyaaz52vs0vxy6f5q95rhlgdhd")))) + (build-system emacs-build-system) + (propagated-inputs + `(("bui" ,emacs-bui) + ("magit-popup" ,emacs-magit-popup))) + (home-page "https://notabug.org/alezost/emacs-build-farm") + (synopsis "Emacs interface for Hydra and Cuirass build farms") + (description + "This Emacs package provides an interface for Hydra and +Cuirass (build farms used by Nix and Guix). It allows you to look at +various data related to the build farm projects, jobsets, builds and +evaluations. The entry point is @code{M-x build-farm} command.") + (license license:gpl3+))) + (define-public emacs-d-mode (package (name "emacs-d-mode") @@ -2101,7 +2224,7 @@ keep pressing the key until it selects what you want. There's also (define-public emacs-fill-column-indicator (package (name "emacs-fill-column-indicator") - (version "1.81") + (version "1.89") (source (origin (method url-fetch) @@ -2110,7 +2233,7 @@ keep pressing the key until it selects what you want. There's also (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8")))) + "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg")))) (build-system emacs-build-system) (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator") (synopsis "Graphically indicate the fill column") @@ -2335,7 +2458,7 @@ in Lisp modes.") "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k")))) (build-system emacs-build-system) (native-inputs - `(("ert-runner" ,ert-runner))) + `(("ert-runner" ,emacs-ert-runner))) (arguments `(#:tests? #t #:test-command '("ert-runner"))) @@ -2451,7 +2574,7 @@ snippets for yasnippet.") (define-public emacs-smart-mode-line (package (name "emacs-smart-mode-line") - (version "2.10.1") + (version "2.12.0") (source (origin (method url-fetch) @@ -2460,7 +2583,7 @@ snippets for yasnippet.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8")))) + "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-rich-minority" ,emacs-rich-minority))) @@ -2542,14 +2665,14 @@ source code using IPython.") (define-public emacs-debbugs (package (name "emacs-debbugs") - (version "0.15") + (version "0.16") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/debbugs-" version ".tar")) (sha256 (base32 - "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw")))) + "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p")))) (build-system emacs-build-system) (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) (propagated-inputs @@ -2621,7 +2744,7 @@ framework for Emacs Lisp to be used with @code{ert}.") (native-inputs `(("emacs-ert-expectations" ,emacs-ert-expectations) ("emacs-undercover" ,emacs-undercover) - ("ert-runner" ,ert-runner))) + ("ert-runner" ,emacs-ert-runner))) (synopsis "Simple asynchronous functions for Emacs Lisp") (description "The @code{deferred.el} library provides support for asynchronous tasks. @@ -2630,7 +2753,7 @@ The API is almost the same as that of for asynchronous tasks.") (license license:gpl3+))) -(define-public butler +(define-public emacs-butler (package (name "emacs-butler") (version "0.2.4") @@ -2659,7 +2782,7 @@ build jobs.") (define-public emacs-company (package (name "emacs-company") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) @@ -2668,7 +2791,7 @@ build jobs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0a7zvmfvxh9w67myvcj2511ayk0fvkm06cdg38y8khnsx63jrr4k")))) + "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb")))) (build-system emacs-build-system) (arguments `(#:phases @@ -2693,6 +2816,115 @@ front-ends. Company comes with many back-ends, e.g. @code{company-elisp}. These are distributed in separate files and can be used individually.") (license license:gpl3+))) +(define-public emacs-irony-mode + (package + (name "emacs-irony-mode") + (version "1.2.0") + (home-page "https://github.com/Sarcasm/irony-mode") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1f68zi0glkg2aly66s07rx3w0b0hdi1znxan02h6dbabaadylk99")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (arguments '()) + (propagated-inputs + `(("emacs-irony-mode-server" ,emacs-irony-mode-server))) + (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs") + (description "Irony-mode provides Clang-assisted syntax checking and +completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can +provide syntax checking and autocompletion on compiler level which is very +resistent against false positives. It also integrates well with other +packages like @code{eldoc-mode} and especially @code{company-mode} as +described on the homepage.") + (license license:gpl3+))) + +(define-public emacs-irony-mode-server + (package (inherit emacs-irony-mode) + (name "emacs-irony-mode-server") + (inputs + `(("clang" ,clang))) + (propagated-inputs '()) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke "cmake" + "server" + (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t)))))) + (build-system cmake-build-system) + (synopsis "Server for the Emacs @dfn{irony mode}"))) + +(define-public emacs-company-irony + (package + (name "emacs-company-irony") + (version "1.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Sarcasm/company-irony.git") + (commit (string-append "v" version)))) + (sha256 (base32 + "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (inputs + `(("emacs-irony-mode" ,emacs-irony-mode) + ("emacs-company" ,emacs-company))) + (synopsis "C++ completion backend for Company using irony-mode") + (description "This backend for company-mode allows for C++ code completion +with irony-mode using clang-tooling.") + (home-page "https://github.com/Sarcasm/company-irony") + (license license:gpl3+))) + +(define-public emacs-flycheck-irony + (package + (name "emacs-flycheck-irony") + (version "0.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Sarcasm/flycheck-irony.git") + (commit (string-append "v" version)))) + (sha256 + (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996")) + (file-name (string-append name "-" version)))) + (build-system emacs-build-system) + (inputs + `(("irony-mode" ,emacs-irony-mode) + ("flycheck-mode" ,emacs-flycheck) + ("emacs-company" ,emacs-company))) + (synopsis "Live syntax checking frontend for Flycheck using irony-mode") + (description "This package provides a frontend for Flycheck that lets +irony-mode do the syntax checking.") + (home-page "https://github.com/Sarcasm/flycheck-irony") + (license license:gpl3+))) + +(define-public emacs-irony-eldoc + (package + (name "emacs-irony-eldoc") + (version (package-version emacs-irony-mode)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ikirill/irony-eldoc.git") + (commit "0df5831eaae264a25422b061eb2792aadde8b3f2"))) + (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd")) + (file-name (string-append name "-" version)))) + (build-system emacs-build-system) + (inputs + `(("irony-mode" ,emacs-irony-mode))) + (synopsis "Eldoc integration for irony-mode") + (description "Irony-eldoc is an eldoc extension that shows documentation +for the current function or variable in the minibuffer.") + (home-page "https://github.com/ikirill/irony-eldoc") + (license license:gpl3+))) + (define-public emacs-company-quickhelp (package (name "emacs-company-quickhelp") @@ -2738,7 +2970,7 @@ completion candidate when using the Company text completion framework.") simultaneous cursors.") (license license:gpl3+))) -(define-public typo +(define-public emacs-typo (package (name "emacs-typo") (version "1.1") @@ -2930,7 +3162,7 @@ in @code{html-mode}.") (define-public emacs-slime (package (name "emacs-slime") - (version "2.20") + (version "2.22") (source (origin (file-name (string-append name "-" version ".tar.gz")) @@ -2940,7 +3172,7 @@ in @code{html-mode}.") version ".tar.gz")) (sha256 (base32 - "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk")))) + "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms")))) (build-system emacs-build-system) (native-inputs `(("texinfo" ,texinfo))) @@ -2987,7 +3219,7 @@ an Emacs minor mode that complements the standard @command{lisp-mode}. While lisp-mode supports editing Lisp source files, @command{slime-mode} adds support for interacting with a running Common Lisp process for compilation, debugging, documentation lookup, and so on.") - (license license:gpl2+))) + (license (list license:gpl2+ license:public-domain)))) (define-public emacs-popup (package @@ -3236,7 +3468,7 @@ organizer.") (define-public emacs-zenburn-theme (package (name "emacs-zenburn-theme") - (version "2.5") + (version "2.6") (source (origin (method url-fetch) (uri (string-append @@ -3245,7 +3477,7 @@ organizer.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn")))) + "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4")))) (build-system emacs-build-system) (home-page "https://github.com/bbatsov/zenburn-emacs") (synopsis "Low contrast color theme for Emacs") @@ -3404,7 +3636,7 @@ regardless of @code{highlight-symbol-idle-delay}. (define-public emacs-hl-todo (package (name "emacs-hl-todo") - (version "1.8.0") + (version "1.9.0") (source (origin (method url-fetch) (uri (string-append @@ -3413,7 +3645,7 @@ regardless of @code{highlight-symbol-idle-delay}. (file-name (string-append "hl-todo-" version ".el")) (sha256 (base32 - "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z")))) + "0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr")))) (build-system emacs-build-system) (home-page "https://github.com/tarsius/hl-todo") (synopsis "Emacs mode to highlight TODO and similar keywords") @@ -3527,7 +3759,11 @@ after buffer changes.") version ".tar")) (sha256 (base32 - "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24")))) + "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24")) + (patches + ;; Patch awaiting inclusion upstream (see: + ;; https://github.com/realgud/realgud/pull/226). + (search-patches "emacs-realgud-fix-configure-ac.patch")))) (build-system emacs-build-system) (arguments `(#:tests? #t @@ -3689,10 +3925,11 @@ expression.") (license license:gpl3+))) (define-public emacs-ivy-yasnippet - (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4")) + (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd") + (revision "2")) (package (name "emacs-ivy-yasnippet") - (version (git-version "0.1" "1" commit)) + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) @@ -3702,7 +3939,7 @@ expression.") (file-name (git-file-name name version)) (sha256 (base32 - "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13")))) + "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy) @@ -3717,6 +3954,31 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled @code{yas-minor-mode} first).") (license license:gpl3+)))) +(define-public emacs-ivy-rich + (package + (name "emacs-ivy-rich") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ivy" ,emacs-ivy))) + (home-page "https://github.com/Yevgnen/ivy-rich") + (synopsis "More friendly interface for @code{ivy}") + (description + "This package extends @code{ivy} by showing more information in the +minibuffer for each candidate. It adds columns showing buffer modes, file +sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can +show icons as well.") + (license license:gpl3+))) + (define-public emacs-avy (package (name "emacs-avy") @@ -3897,7 +4159,7 @@ state and will work even without lispy being enabled.") (native-inputs `(("emacs-dash" ,emacs-dash) ("emacs-s" ,emacs-s) - ("ert-runner" ,ert-runner))) + ("ert-runner" ,emacs-ert-runner))) (arguments `(#:tests? #t #:test-command '("ert-runner"))) @@ -4092,22 +4354,34 @@ programming language.") (define-public emacs-ess (package (name "emacs-ess") - (version "16.10") + (version "17.11") (source (origin (method url-fetch) - (uri (string-append "http://ess.r-project.org/downloads/ess/ess-" - version ".tgz")) + (uri (string-append "https://github.com/emacs-ess/ESS/archive/v" + version ".tar.gz")) (sha256 (base32 - "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk")) + "0cbilbsiwvcyf6d5y24mymp57m3ana5dkzab3knfs83w4a3a4c5c")) + (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet '(begin ;; Stop ESS from trying to bundle an external julia-mode.el. (substitute* "lisp/Makefile" (("^\tjulia-mode.elc\\\\\n") "") - (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el") - "all: $(ELC) ess-custom.el")) + (("^dist: all julia-mode.el") + "dist: all")) + ;; No need to build docs in so many formats. Also, skipping + ;; pdf lets us not pull in texlive. + (substitute* "doc/Makefile" + (("all : info text html pdf") + "all : info") + (("install: install-info install-other-docs") + "install: install-info")) + ;; Test fails upstream + (substitute* "test/ess-r-tests.el" + (("ert-deftest ess-r-namespaced-eval-no-srcref-in-errors ()") + "ert-deftest ess-r-namespaced-eval-no-srcref-in-errors () :expected-result :failed")) #t)))) (build-system gnu-build-system) (arguments @@ -4126,10 +4400,6 @@ programming language.") (("SHELL = /bin/sh") (string-append "SHELL = " (which "sh")))) #t)) - ;; FIXME: the texlive-union insists on regenerating fonts. It stores - ;; them in HOME, so it needs to be writeable. - (add-before 'build 'set-HOME - (lambda _ (setenv "HOME" "/tmp") #t)) (replace 'check (lambda _ (invoke "make" "test"))))))) @@ -4138,16 +4408,14 @@ programming language.") ("r-minimal" ,r-minimal))) (native-inputs `(("perl" ,perl) - ("texinfo" ,texinfo) - ("texlive" ,(texlive-union (list texlive-latex-natbib - texlive-latex-seminar - texlive-latex-hyperref - texlive-tex-texinfo))))) + ("texinfo" ,texinfo))) + (propagated-inputs + `(("emacs-julia-mode" ,emacs-julia-mode))) (home-page "https://ess.r-project.org/") (synopsis "Emacs mode for statistical analysis programs") (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU Emacs. It is designed to support editing of scripts and interaction with -various statistical analysis programs such as R and OpenBUGS.") +various statistical analysis programs such as R, Julia, and JAGS.") (license license:gpl2+))) (define-public emacs-smex @@ -4174,7 +4442,7 @@ to all the other commands, too.") (define-public emacs-js2-mode (package (name "emacs-js2-mode") - (version "20150909") + (version "20180301") (source (origin (method url-fetch) (uri (string-append "https://github.com/mooz/js2-mode/archive/" @@ -4182,7 +4450,7 @@ to all the other commands, too.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0")))) + "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3")))) (build-system emacs-build-system) (home-page "https://github.com/mooz/js2-mode/") (synopsis "Improved JavaScript editing mode for Emacs") @@ -4197,14 +4465,14 @@ strings, and code folding.") (define-public emacs-nodejs-repl (package (name "emacs-nodejs-repl") - (version "0.1.6") + (version "0.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/abicky/nodejs-repl.el" "/archive/" version ".tar.gz")) (sha256 (base32 - "0sphg1jxi3a5l0gqdp27d0qgyjaiq2p293av9zm8ksm0vwqp3fr9")) + "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz")) (file-name (string-append name "-" version ".tar.gz")))) (build-system emacs-build-system) (home-page "https://github.com/abicky/nodejs-repl.el") @@ -4263,7 +4531,7 @@ indentation and filling of comments and C preprocessor fontification.") (propagated-inputs `(("emacs-dash" ,emacs-dash) ("emacs-s" ,emacs-s) - ("emacs-flycheck" ,flycheck) + ("emacs-flycheck" ,emacs-flycheck) ("emacs-typescript-mode" ,emacs-typescript-mode))) (home-page "https://github.com/ananthakumaran/tide") (synopsis "Typescript IDE for Emacs") @@ -4377,6 +4645,227 @@ If you want to mark a folder manually as a project just create an empty and RSS, with a user interface inspired by notmuch.") (license license:gpl3+))) +(define-public emacs-el-x + (package + (name "emacs-el-x") + (version "0.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sigma/el-x.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Move the source files to the top level, which is included in + ;; the EMACSLOADPATH. + (add-after 'unpack 'move-source-files + (lambda _ + (let ((el-files (find-files "./lisp" ".*\\.el$"))) + (for-each (lambda (f) + (rename-file f (basename f))) + el-files)) + #t))))) + (home-page "https://github.com/sigma/el-x") + (synopsis "Emacs Lisp extensions") + (description "command@{emacs-el-x} defines the @code{dflet} macro to +provide the historic behavior of @code{flet}, as well as +@code{declare-function} stub for older Emacs.") + (license license:gpl2+))) + +(define-public emacs-mocker + (package + (name "emacs-mocker") + (version "0.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sigma/mocker.el.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) + (native-inputs + `(("ert-runner" ,emacs-ert-runner))) + (propagated-inputs + `(("emacs-el-x" ,emacs-el-x))) + (home-page "https://github.com/sigma/mocker.el") + (synopsis "Mocking framework for Emacs Lisp") + (description "Mocker.el is a framework for writing tests in Emacs Lisp. +It uses regular Lisp rather than a domain specific language (DSL), which +maximizes flexibility (at the expense of conciseness).") + (license license:gpl2+))) + +(define-public emacs-find-file-in-project + (package + (name "emacs-find-file-in-project") + (version "5.4.7") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/technomancy/find-file-in-project.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-shell + ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't + ;; work. + (lambda _ + (setenv "SHELL" (which "sh")) + #t))) + #:tests? #t + #:test-command '("./tests/test.sh"))) + (home-page "https://github.com/technomancy/find-file-in-project") + (synopsis "File/directory finder for Emacs") + (description "@code{find-file-in-project} allows to find files or +directories quickly in the current project. The project root is detected +automatically when Git, Subversion or Mercurial are used. It also provides +functions to assist in reviewing changes on files.") + (license license:gpl3+))) + +(define-public emacs-pyvenv + (package + (name "emacs-pyvenv") + (version "1.11") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jorgenschaefer/pyvenv.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; This phase incorrectly attempts to substitute "activate" and fails + ;; doing so. + (delete 'patch-el-files)) + #:tests? #t + #:test-command '("ert-runner"))) + (native-inputs + `(("ert-runner" ,emacs-ert-runner) + ("emacs-mocker" ,emacs-mocker))) + (home-page "https://github.com/jorgenschaefer/pyvenv") + (synopsis "Virtualenv minor mode for Emacs") + (description "pyvenv.el is a minor mode to support using Python virtual +environments (virtualenv) inside Emacs.") + (license license:gpl3+))) + +(define-public emacs-highlight-indentation + (package + (name "emacs-highlight-indentation") + (version "0.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k")))) + (build-system emacs-build-system) + (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/") + (synopsis "Highlighting indentation for Emacs") + (description "Provides two minor modes to highlight indentation guides in Emacs: +@enumerate +@item @code{highlight-indentation-mode}, which displays guidelines +indentation (space indentation only). +@item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only). +@end enumerate") + (license license:gpl2+))) + +(define-public emacs-elpy + (package + (name "emacs-elpy") + (version "1.26.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jorgenschaefer/elpy.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0wynzp5xmrgiggmam82n6lfaiqmfl4n3ccpsgnh86r6pbsmssxjk")))) + (build-system emacs-build-system) + (arguments + `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include) + #:phases + ;; TODO: Make `elpy-config' display Guix commands :) + (modify-phases %standard-phases + ;; One elpy test depends on being run inside a Python virtual + ;; environment to pass. We have nothing to gain from doing so here, + ;; so we just trick Elpy into thinking we are (see: + ;; https://github.com/jorgenschaefer/elpy/pull/1293). + (add-before 'check 'fake-virtualenv + (lambda _ + (setenv "VIRTUAL_ENV" "/tmp") + #t)) + (add-before 'check 'build-doc + (lambda _ + (with-directory-excursion "docs" + (invoke "make" "info" "man")) + ;; Move .info file at the root so that it can installed by the + ;; 'move-doc phase. + (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info") + #t)) + (add-after 'build-doc 'install-manpage + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man1 (string-append out "/share/man/man1"))) + (mkdir-p man1) + (copy-file "docs/_build/man/elpy.1" + (string-append man1 "/elpy.1"))) + #t))) + #:tests? #t + #:test-command '("ert-runner"))) + (propagated-inputs + `(("emacs-company" ,emacs-company) + ("emacs-find-file-in-project" ,emacs-find-file-in-project) + ("emacs-highlight-indentation" ,emacs-highlight-indentation) + ("emacs-yasnippet" ,emacs-yasnippet) + ("pyvenv" ,emacs-pyvenv) + ("s" ,emacs-s))) + (native-inputs + `(("ert-runner" ,emacs-ert-runner) + ("emacs-f" ,emacs-f) + ("python" ,python-wrapper) + ("python-autopep8" ,python-autopep8) + ("python-black" ,python-black) + ("python-flake8" ,python-flake8) + ("python-jedi" ,python-jedi) + ("python-yapf" ,python-yapf) + ;; For documentation. + ("python-sphinx" ,python-sphinx) + ("texinfo" ,texinfo))) + (home-page "https://github.com/jorgenschaefer/elpy") + (synopsis "Python development environment for Emacs") + (description "Elpy brings powerful Python editing to Emacs. It combines +and configures a number of other packages written in Emacs Lisp as well as +Python, together offering features such as navigation, documentation, +completion, interactive development and more.") + (license license:gpl3+))) + (define-public emacs-rainbow-delimiters (package (name "emacs-rainbow-delimiters") @@ -4426,14 +4915,14 @@ of its name.") (define-public emacs-rainbow-mode (package (name "emacs-rainbow-mode") - (version "0.13") + (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/rainbow-mode-" version ".el")) (sha256 (base32 - "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl")))) + "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/rainbow-mode.html") (synopsis "Colorize color names in buffers") @@ -4610,7 +5099,7 @@ ack, ag, helm and pt.") (define-public emacs-helm (package (name "emacs-helm") - (version "2.9.6") + (version "3.0") (source (origin (method url-fetch) (uri (string-append @@ -4619,7 +5108,7 @@ ack, ag, helm and pt.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1f7m09i8gr0gk5nw5dn7rpdz20dg3hl4p77dpygkhl82yhk9q2ql")))) + "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) @@ -4869,11 +5358,11 @@ extensions.") (license license:gpl3+)))) (define-public emacs-evil-collection - (let ((commit "5d739f58118a5a316c4fe25adb4e13ccea3fdc10") - (revision "2")) + (let ((commit "abc9dd60f71ccc1f24803a12d853f84b4a8b258c") + (revision "4")) (package (name "emacs-evil-collection") - (version (git-version "20180721" revision commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -4882,7 +5371,7 @@ extensions.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "05p612qncd0cp5q61hq2ag1k558vhb10049xrc88n9l6qwz9bpk3")))) + "0c9l93vrsl6kzx8gg305dq8qkb2dr3s10fww7lh382911pdmsh7v")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) @@ -4941,7 +5430,7 @@ distribution, primarily targeting Clojure users") (define-public emacs-orgalist (package (name "emacs-orgalist") - (version "1.8") + (version "1.9") (source (origin (method url-fetch) @@ -4949,7 +5438,7 @@ distribution, primarily targeting Clojure users") "orgalist-" version ".el")) (sha256 (base32 - "1wqwnmn08i0qkxm8b2iclvf6cydcn68h1p3h7r1kig2bdn5b8948")))) + "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/orgalist.html") (synopsis "Manage Org-like lists in non-Org buffers") @@ -5007,14 +5496,14 @@ passive voice.") (name "emacs-org") ;; emacs-org-contrib inherits from this package. Please update its sha256 ;; checksum as well. - (version "9.1.13") + (version "9.1.14") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr")))) + "17vd9hig26rqv90l6y92hc2i0x29g44lsdsp0xd4m53s8r3zdikz")))) (build-system emacs-build-system) (home-page "https://orgmode.org/") (synopsis "Outline-based notes management and organizer") @@ -5196,14 +5685,15 @@ extensibility.") (define-public m17n-db (package (name "m17n-db") - (version "1.7.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/m17n/m17n-db-" version ".tar.gz")) (sha256 - (base32 "1w08hnsbknrcjlzp42c99bgwc9hzsnf5m4apdv0dacql2s09zfm2")))) + (base32 + "0vfw7z9i2s9np6nmx1d4dlsywm044rkaqarn7akffmb6bf1j6zv5")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal))) @@ -5230,14 +5720,15 @@ This package contains the library database.") (define-public m17n-lib (package (name "m17n-lib") - (version "1.7.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/m17n/m17n-lib-" version ".tar.gz")) (sha256 - (base32 "10yv730i25g1rpzv6q49m6xn4p8fjm7jdwvik2h70sn8w3hm7f4f")))) + (base32 + "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq")))) (build-system gnu-build-system) (inputs `(("fribidi" ,fribidi) @@ -5266,7 +5757,7 @@ This package contains the library runtime.") (define-public emacs-nginx-mode (package (name "emacs-nginx-mode") - (version "1.1.4") + (version "1.1.9") (source (origin (method url-fetch) @@ -5276,7 +5767,7 @@ This package contains the library runtime.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr")))) + "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq")))) (build-system emacs-build-system) (home-page "https://github.com/ajc/nginx-mode") (synopsis "Emacs major mode for editing nginx config files") @@ -5481,7 +5972,7 @@ mode-line.") (define-public emacs-yasnippet (package (name "emacs-yasnippet") - (version "0.12.2") + (version "0.13.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/joaotavora/yasnippet/" @@ -5489,7 +5980,7 @@ mode-line.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5")) + "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc")) (modules '((guix build utils))) (snippet '(begin @@ -5585,7 +6076,7 @@ Yasnippet.") (define-public emacs-helm-system-packages (package (name "emacs-helm-system-packages") - (version "1.10.0") + (version "1.10.1") (source (origin (method git-fetch) (uri (git-reference @@ -5594,10 +6085,22 @@ Yasnippet.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0y5wzvfycb1bvgdk782xyl744fih43vz14wmq6gcqjarw6xfniz5")))) + "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f")))) (build-system emacs-build-system) + (inputs + `(("recutils" ,recutils))) (propagated-inputs `(("emacs-helm" ,emacs-helm))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((recutils (assoc-ref inputs "recutils"))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (substitute* "helm-system-packages-guix.el" + (("recsel") (string-append recutils "/bin/recsel"))))))))) (home-page "https://github.com/emacs-helm/helm-system-packages") (synopsis "Helm System Packages is an interface to your package manager") (description "List all available packages in Helm (with installed @@ -6243,14 +6746,14 @@ which code derived from Kelvin H's org-page.") (define-public emacs-xelb (package (name "emacs-xelb") - (version "0.15") + (version "0.16") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xelb-" version ".tar")) (sha256 (base32 - "031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz")))) + "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8")))) (build-system emacs-build-system) ;; The following functions and variables needed by emacs-xelb are ;; not included in emacs-minimal: @@ -6282,7 +6785,7 @@ It should enable you to implement low-level X11 applications.") (define-public emacs-exwm (package (name "emacs-exwm") - (version "0.19") + (version "0.20") (synopsis "Emacs X window manager") (source (origin (method url-fetch) @@ -6290,8 +6793,7 @@ It should enable you to implement low-level X11 applications.") version ".tar")) (sha256 (base32 - "11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0")) - (patches (search-patches "emacs-exwm-fix-fullscreen-issue.patch")))) + "0nhhzbkm0mkj7sd1dy2c19cmn56gyaj9nl8kgy86h4fp63hjaz04")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-xelb" ,emacs-xelb))) @@ -6620,9 +7122,9 @@ Emacs.") ;; Tests for ert-runner have a circular dependency with ecukes, and therefore ;; cannot be run -(define-public ert-runner +(define-public emacs-ert-runner (package - (name "ert-runner") + (name "emacs-ert-runner") (version "0.7.0") (source (origin @@ -6650,8 +7152,8 @@ Emacs.") (substitute* "bin/ert-runner" (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)") (string-append "ERT_RUNNER=\"" out - "/share/emacs/site-lisp/guix.d/" - ,name "-" ,version))) + "/share/emacs/site-lisp/guix.d/ert-runner-" + ,version))) (install-file "bin/ert-runner" (string-append out "/bin")) (wrap-program (string-append out "/bin/ert-runner") (list "EMACSLOADPATH" ":" 'prefix @@ -6665,6 +7167,9 @@ using ERT. It assumes a certain test structure setup and can therefore make running tests easier.") (license license:gpl3+))) +(define-public ert-runner + (deprecated-package "ert-runner" emacs-ert-runner)) + (define-public emacs-disable-mouse (package (name "emacs-disable-mouse") @@ -6708,7 +7213,7 @@ running a customisable handler command (@code{ignore} by default). ") (native-inputs `(("emacs-dash" ,emacs-dash) ("emacs-shut-up" ,emacs-shut-up) - ("ert-runner" ,ert-runner))) + ("ert-runner" ,emacs-ert-runner))) (arguments `(#:tests? #t #:test-command '("ert-runner"))) @@ -6871,10 +7376,32 @@ the actual transformations.") @end itemize\n") (license license:gpl3+)))) +(define-public emacs-dired-sidebar + (let ((commit "06bd0d40bab812c61a668129daf29ba359424454") + (revision "0")) + (package + (name "emacs-dired-sidebar") + (home-page "https://github.com/jojojames/dired-sidebar") + (version (git-version "0.0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (sha256 + (base32 + "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dired-subtree" ,emacs-dired-hacks))) + (synopsis "Sidebar for Emacs using Dired") + (description + "This package provides a sidebar for Emacs similar to @code{NeoTree} +or @code{treemacs}, but leveraging @code{Dired} to do the job of display.") + (license license:gpl3+)))) + (define-public emacs-which-key (package (name "emacs-which-key") - (version "3.0.2") + (version "3.3.0") (source (origin (method url-fetch) @@ -6883,7 +7410,7 @@ the actual transformations.") version ".tar.gz")) (sha256 (base32 - "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24")) + "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w")) (file-name (string-append name "-" version ".tar.gz")))) (build-system emacs-build-system) (arguments @@ -6917,7 +7444,7 @@ settings).") "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb")))) (build-system emacs-build-system) (native-inputs - `(("ert-runner" ,ert-runner))) + `(("ert-runner" ,emacs-ert-runner))) (arguments `(#:tests? #t #:test-command '("ert-runner" "tests"))) @@ -7052,7 +7579,7 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and (define-public emacs-erc-hl-nicks (package (name "emacs-erc-hl-nicks") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) @@ -7061,7 +7588,7 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs")))) + "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr")))) (build-system emacs-build-system) (synopsis "Nickname highlighting for Emacs ERC") (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC @@ -7173,7 +7700,7 @@ Idris.") `(("emacs-f" ,emacs-f) ("emacs-s" ,emacs-s))) (native-inputs - `(("ert-runner" ,ert-runner))) + `(("ert-runner" ,emacs-ert-runner))) (arguments `(#:tests? #t #:test-command '("ert-runner"))) @@ -7292,17 +7819,17 @@ value of the access token.") (define-public emacs-circe (package (name "emacs-circe") - (version "2.6") + (version "2.10") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/jorgenschaefer/circe.git") (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j")))) + "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s")))) (build-system emacs-build-system) ;; In order to securely connect to an IRC server using TLS, Circe requires ;; the GnuTLS binary. @@ -7316,25 +7843,42 @@ activity in channels in the status bar so it stays out of your way unless you want to use it.") (license license:gpl3+))) +(define-public emacs-tracking + (package + (inherit emacs-circe) + (name "emacs-tracking") + (arguments + ;; "tracking.el" is a library extracted from Circe package. It requires + ;; "shorten.el". + `(#:include '("^shorten.el$" "^tracking.el$") + #:tests? #f)) ;tests require buttercup + (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking") + (synopsis "Buffer tracking library") + (description "@code{tracking.el} provides a way for different modes to +notify the user that a buffer needs attention. The user then can cycle +through them using @key{C-c C-SPC}.") + (license license:gpl3+))) + (define-public emacs-slack - (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0") - (revision "4")) + (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d") + (revision "5")) (package (name "emacs-slack") - (version (string-append "0-" revision "." (string-take commit 7))) + (version (git-version "0.0.2" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/yuya373/emacs-slack.git") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name commit)) (sha256 (base32 - "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib")))) + "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-alert" ,emacs-alert) ("emacs-emojify" ,emacs-emojify) + ("emacs-helm" ,emacs-helm) ("emacs-request" ,emacs-request) ("emacs-websocket" ,emacs-websocket) ("emacs-oauth2" ,emacs-oauth2) @@ -7449,38 +7993,64 @@ contexts. (license license:gpl3+))) (define-public emacs-polymode - ;; There hasn't been a proper release. - (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6") - (revision "1")) - (package - (name "emacs-polymode") - (version (string-append "1.0-" revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vspinu/polymode.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons* "^modes/.*\\.el$" %default-include) - #:phases - (modify-phases %standard-phases - (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path - (lambda _ - (setenv "EMACSLOADPATH" - (string-append (getenv "EMACSLOADPATH") - ":" (getcwd) "/modes" ":"))))))) - (home-page "https://github.com/vspinu/polymode") - (synopsis "Framework for multiple Emacs modes based on indirect buffers") - (description "Polymode is an Emacs package that offers generic support + (package + (name "emacs-polymode") + (version "0.1.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vspinu/polymode.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7")))) + (build-system emacs-build-system) + (arguments + `(#:include (cons* "^modes/.*\\.el$" %default-include) + #:phases + (modify-phases %standard-phases + (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path + (lambda _ + (setenv "EMACSLOADPATH" + (string-append (getenv "EMACSLOADPATH") + ":" (getcwd) "/modes" ":"))))))) + (home-page "https://github.com/vspinu/polymode") + (synopsis "Framework for multiple Emacs modes based on indirect buffers") + (description "Polymode is an Emacs package that offers generic support for multiple major modes inside a single Emacs buffer. It is lightweight, object oriented and highly extensible. Creating a new polymode typically takes only a few lines of code. Polymode also provides extensible facilities for external literate programming tools for exporting, weaving and tangling.") + (license license:gpl3+))) + +(define-public emacs-polymode-ansible + (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8")) + (package + (name "emacs-polymode-ansible") + ;; No upstream version release yet. + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mavit/poly-ansible") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ansible-doc" ,emacs-ansible-doc) + ("emacs-jinja2-mode" ,emacs-jinja2-mode) + ("emacs-polymode" ,emacs-polymode) + ("emacs-yaml-mode" ,emacs-yaml-mode))) + (properties '((upstream-name . "poly-ansible"))) + (home-page "https://gitlab.com/mavit/poly-ansible/") + (synopsis "Polymode for Ansible - Jinja2 in YAML") + (description + "Edit YAML files for Ansible containing embedded Jinja2 templating.") (license license:gpl3+)))) (define-public eless @@ -7643,14 +8213,14 @@ supports multiple backends such as @code{vlc}, @code{mpg123}, @code{afplay}.") (license license:gpl2+))) -(define-public groovy-emacs-modes +(define-public emacs-groovy-modes (package - (name "groovy-emacs-modes") + (name "emacs-groovy-modes") (version "2.0") (source (origin (method url-fetch) (uri (string-append - "https://github.com/Groovy-Emacs-Modes/" name + "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes" "/archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 @@ -7667,7 +8237,10 @@ Groovy source files, REPL integration with run-groovy and Grails project navigation with the grails mode.") (license license:gpl3+))) -(define-public org-tree-slide +(define-public groovy-emacs-modes + (deprecated-package "groovy-emacs-modes" emacs-groovy-modes)) + +(define-public emacs-org-tree-slide (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134") (revision "0")) (package @@ -7801,7 +8374,7 @@ the format.") (define-public emacs-nov-el (package (name "emacs-nov-el") - (version "0.2.2") + (version "0.2.6") (source (origin (method git-fetch) (uri (git-reference @@ -7810,7 +8383,7 @@ the format.") (file-name (git-file-name name version)) (sha256 (base32 - "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb")))) + "188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc")))) (build-system emacs-build-system) (arguments `(#:phases @@ -8061,7 +8634,7 @@ close, copy, cut, paste, undo, redo.") (define-public emacs-password-store (package (name "emacs-password-store") - (version "1.7.2") + (version "1.7.3") (source (origin (method url-fetch) (uri @@ -8069,7 +8642,7 @@ close, copy, cut, paste, undo, redo.") "password-store-" version ".tar.xz")) (sha256 (base32 - "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27")))) + "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b")))) (build-system emacs-build-system) (arguments `(#:phases @@ -8975,7 +9548,7 @@ continue.") (define-public emacs-elisp-refs (package (name "emacs-elisp-refs") - (version "1.2") + (version "1.3") (source (origin (method url-fetch) @@ -8984,14 +9557,15 @@ continue.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl")))) + "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) ("emacs-f" ,emacs-f) ("emacs-list-utils" ,emacs-list-utils) ("emacs-loop" ,emacs-loop) - ("emacs-s" ,emacs-s))) + ("emacs-s" ,emacs-s) + ("emacs-shut-up" ,emacs-shut-up))) (home-page "https://github.com/Wilfred/elisp-refs") (synopsis "Find callers of elisp functions or macros") (description "Find references to functions, macros or variables. Unlike a @@ -9363,7 +9937,7 @@ documentation.") (define-public emacs-hy-mode (package (name "emacs-hy-mode") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) @@ -9372,7 +9946,7 @@ documentation.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17")))) + "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) @@ -9500,6 +10074,29 @@ The default setup uses helm-bibtex. You should really read org-ref.org in this package for details.") (license license:gpl3+)))) +(define-public emacs-org-reveal + (package + (name "emacs-org-reveal") + ;; There are no proper tag, so we use the latest commit of the stable + ;; branch, as does MELPA. + (version "20161027.926") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yjwen/org-reveal.git") + (commit "001567cc12d50ba07612edd1718b86a12e8c2547"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8")))) + (build-system emacs-build-system) + (home-page "https://github.com/yjwen/org-reveal") + (synopsis "Org and Reveal.js powered HTML presentation tool") + (description "Org-Reveal is a command@{org-mode} extension that allows to +create beautiful presentations (slides) with 3D effects from simple but +powerful Org contents.") + (license license:gpl3+))) + (define-public emacs-add-hooks (package (name "emacs-add-hooks") @@ -9535,11 +10132,12 @@ duplicate hook and function names further into a single declarative call.") "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n")))) (build-system emacs-build-system) (home-page "https://github.com/Malabarba/fancy-narrow/releases") - (synopsis "Immitate narrow-to-region with more eye-candy") - (description "Unlike narrow-to-region, which completely hides text outside -the narrowed region, this package simply deemphasizes the text, makes it -readonly, and makes it unreachable. This leads to a much more natural -feeling, where the region stays static (instead of being brutally moved to a + (synopsis "Imitate @code{narrow-to-region} with more eye candy") + (description + "Unlike @code{narrow-to-region}, which completely hides text outside +the narrowed region, this package simply de-emphasizes the text, makes it +read-only, and makes it unreachable. This leads to a much more natural +feeling where the region stays static (instead of being brutally moved to a blank slate) and is clearly highlighted with respect to the rest of the buffer.") (license license:gpl2+))) @@ -9631,7 +10229,7 @@ downloading manager for Emacs.") (define-public emacs-helpful (package (name "emacs-helpful") - (version "0.1") + (version "0.13") (source (origin (method url-fetch) (uri (string-append @@ -9640,7 +10238,7 @@ downloading manager for Emacs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9")))) + "11kj04y1fa3vnw2991cyqf6adz6bb3hlrdkvypjnmpb0s64q64b6")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-elisp-refs" ,emacs-elisp-refs))) @@ -9736,7 +10334,7 @@ time is being spent during Emacs startup in order to optimize startup time.") (define-public emacs-emms-player-simple-mpv ;; A new mpv backend is included in Emms from 5.0. - (deprecated-package "emacs-emms-player-simple-mpv" emms)) + (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms)) (define-public emacs-magit-org-todos-el (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a")) @@ -9754,7 +10352,7 @@ time is being spent during Emacs startup in order to optimize startup time.") (base32 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn")))) (propagated-inputs - `(("magit" ,magit))) + `(("magit" ,emacs-magit))) (build-system emacs-build-system) (home-page "https://github.com/danielma/magit-org-todos.el") (synopsis "Get todo.org into Emacs Magit status") @@ -10025,7 +10623,7 @@ perform regression test for packages that provide font-lock rules.") (license license:gpl3+)))) (define-public emacs-racket-mode - (let ((commit "1b78827d310b6d655782b7bba0f2360c9ef34ff6") + (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c") (revision "2")) (package (name "emacs-racket-mode") @@ -10040,7 +10638,7 @@ perform regression test for packages that provide font-lock rules.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "04mzxcg32av8p6v0pqb0si6qk5qxbrbllx6m3j16fp32bdz71sps")))) + "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7")))) (build-system emacs-build-system) (arguments `(#:include '("\\.el$" "\\.rkt$"))) @@ -10593,7 +11191,7 @@ through the symbol: @command{this-fn}.") `(("emacs-el-mock" ,emacs-el-mock) ("emacs-noflet" ,emacs-noflet) ("emacs-undercover" ,emacs-undercover) - ("ert-runner" ,ert-runner))) + ("ert-runner" ,emacs-ert-runner))) (propagated-inputs `(("emacs-f" ,emacs-f) ("emacs-popup" ,emacs-popup))) @@ -10780,7 +11378,7 @@ Org-mode file, and citations of Zotero items in Pandoc Markdown files.") (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil) - ("magit" ,magit))) + ("magit" ,emacs-magit))) (home-page "https://github.com/emacs-evil/evil-magit") (synopsis "Evil-based key bindings for Magit") @@ -10959,33 +11557,31 @@ the GIF result.") (license license:gpl3+)))) (define-public emacs-google-translate - (let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974")) - (package - (name "emacs-google-translate") - (version (git-version "0.11.14" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/atykhonov/google-translate") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc")))) - (build-system emacs-build-system) - (home-page "https://github.com/atykhonov/google-translate") - (synopsis "Emacs interface to Google Translate") - (description - "This packages provides an Emacs interface to the Google Translate + (package + (name "emacs-google-translate") + (version "0.11.16") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/atykhonov/google-translate/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "01n9spj1d0gjfj39x526rl3m9c28wnx9afipmf5s8y77cx3mfwhl")))) + (build-system emacs-build-system) + (home-page "https://github.com/atykhonov/google-translate") + (synopsis "Emacs interface to Google Translate") + (description + "This packages provides an Emacs interface to the Google Translate on-line service.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-helm-company - (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d")) + (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f")) (package (name "emacs-helm-company") - (version (git-version "0.2.2" "1" commit)) + (version (git-version "0.2.3" "1" commit)) (source (origin (method git-fetch) @@ -10995,7 +11591,7 @@ on-line service.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1d4q9clp0q56br80c21a4wz1gc4jw3mdy97z9mq07x9i8rhlppzs")))) + "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) @@ -11053,7 +11649,7 @@ you searched for and execute it, or view its documentation.") (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) - ("emacs-emms" ,emms))) + ("emacs-emms" ,emacs-emms))) (home-page "https://github.com/emacs-helm/helm-emms") (synopsis "Emms for Helm") @@ -11108,7 +11704,7 @@ See @code{helm-exwm-switch-browser} for an example.") (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) - ("emacs-flycheck" ,flycheck) + ("emacs-flycheck" ,emacs-flycheck) ("emacs-helm" ,emacs-helm))) (home-page "https://github.com/yasuyk/helm-flycheck") (synopsis "Show Flycheck errors with Helm") @@ -11282,15 +11878,52 @@ e.g. the package dependencies it requires. See function file.") (license license:gpl3+)))) +(define-public emacs-picpocket + (let ((version "40") + (commit "6fd88b8711c4370662c0f9c462170187d092a046")) + (package + (name "emacs-picpocket") + (version version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/johanclaesson/picpocket") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw")))) + (build-system emacs-build-system) + (arguments ; needed for running tests + `(#:tests? #t + #:emacs ,emacs + #:test-command '("emacs" "--batch" + "-l" "picpocket-test.el" + "-f" "ert-run-tests-batch-and-exit"))) + (home-page "https://github.com/johanclaesson/picpocket") + (synopsis "Image viewer for Emacs") + (description + "Picpocket is an image viewer for GNU Emacs. It has commands for: + +@itemize +@item File operations on the picture files (delete, move, copy, hardlink). +@item Scale and rotate the picture. +@item Associate pictures with tags which are saved to disk. +@item Filter pictures according to tags. +@item Customizing keystrokes for quick tagging and file operations. +@item Undo and browse history of undoable commands. +@end itemize") + (license license:gpl3+)))) + (define-public emacs-wgrep-helm ;; `emacs-wgrep-helm' was mistakenly added. (deprecated-package "emacs-wgrep-helm" emacs-wgrep)) (define-public emacs-mu4e-conversation - (let ((commit "223cc66e99c7665326e3d991d6d383cb0d7512bb")) + (let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e")) (package (name "emacs-mu4e-conversation") - (version (git-version "20180722" "2" commit)) + (version (git-version "20181126" "4" commit)) (source (origin (method url-fetch) @@ -11301,7 +11934,7 @@ file.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1ivy7pihhma465hi25p1y45dyi8h52nsm2m0cvizj5sw36jw0n81")))) + "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29")))) (build-system emacs-build-system) (propagated-inputs `(("mu" ,mu))) @@ -11310,8 +11943,8 @@ file.") (synopsis "Show a complete thread in a single buffer") (description - "This package offers an alternate view to mu4e e-mail display. It -shows all e-mails of a thread in a single view, where each correspondant has + "This package offers an alternate view to mu4e's e-mail display. It +shows all e-mails of a thread in a single view, where each correspondent has their own face. Threads can be displayed linearly (in which case e-mails are displayed in chronological order) or as an Org document where the node tree maps the thread tree.") @@ -11374,8 +12007,8 @@ wiki.") (license license:expat))) (define-public emacs-recent-addresses - (let ((commit "d9da58db542089a1ceb5ef29e420dbfbc4a36373") - (revision "0")) + (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb") + (revision "1")) (package (name "emacs-recent-addresses") (home-page "http://nschum.de/src/emacs/recent-addresses/") @@ -11383,18 +12016,20 @@ wiki.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/nschum/recent-addresses.el") + ;; Note: Use a branch that works with Helm. Submitted + ;; at <https://github.com/nschum/recent-addresses.el/pull/1>. + (url "https://github.com/civodul/recent-addresses.el") (commit commit))) (sha256 (base32 - "175rvcwmkb5z7ss7q2y5178mvdvp5bhn39irz80qinlvaz8fm4nk")) + "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (synopsis "Record recently-used email addressed and auto-complete them") (description - "@code{recent-addresses} is an Emacs allows you to quickly look up -previously used email addresses. It can be used alongside the Gnus email -client.") + "@code{recent-addresses} is an Emacs package that allows you to quickly +look up previously used email addresses. It can be used alongside the Gnus +email client.") (license license:gpl2+)))) (define-public emacs-fold-dwim @@ -11551,7 +12186,7 @@ was called.") (define-public emacs-dired-du (package (name "emacs-dired-du") - (version "0.5") + (version "0.5.1") (source (origin (method url-fetch) @@ -11560,7 +12195,7 @@ was called.") version ".tar")) (sha256 (base32 - "09yj37p2fa5f81fqrzwghjkyy2ydsf4rbkfwpn2yyvzd5nd97bpl")))) + "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/dired-du.html") (synopsis "Dired with recursive directory sizes") @@ -11612,34 +12247,483 @@ buffers – other modes on the TODO list). (license license:gpl3)))) (define-public emacs-magit-todos - ;; TODO: <1.1 is broken with Guix. Switch to 1.1 when out. - (let ((commit "966642762788d335dc2d3667d230a36ede65972e")) + (package + (name "emacs-magit-todos") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/magit-todos") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-async" ,emacs-async) + ("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-hl-todo" ,emacs-hl-todo) + ("magit" ,emacs-magit) + ("emacs-pcre2el" ,emacs-pcre2el) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/alphapapa/magit-todos") + (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer") + (description "This package displays keyword entries from source code +comments and Org files in the Magit status buffer. Activating an item jumps +to it in its file. By default, it uses keywords from @code{hl-todo}, minus a +few (like NOTE).") + (license license:gpl3))) + +(define-public emacs-git-annex + ;; Unreleased version has a fontification fix. + (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707") + (revision "1")) + (package + (name "emacs-git-annex") + (version (string-append "1.1-" revision "." (string-take commit 8))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jwiegley/git-annex-el") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh")))) + (build-system emacs-build-system) + (home-page "https://github.com/jwiegley/git-annex-el") + (synopsis "Emacs integration for git-annex") + (description "Enhances Dired and buffers visiting annex files with +git-annex functionality. In Dired, the names of annex files are shortened by +hiding the symbolic links and fontified based on whether content is present. +Commands for performing some common operations (e.g., unlocking and adding +files) are provided.") + (license license:gpl2+)))) + +(define-public emacs-hackernews + (let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9")) (package - (name "emacs-magit-todos") - (version (git-version "1.0.4" "1" commit)) + (name "emacs-hackernews") + (version (git-version "0.4.0" "1" commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/alphapapa/magit-todos") + (url "https://github.com/clarete/hackernews.el") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0nxarip8sf0446xfgrcfsjm4vbsg50klxjbr4i6h09a3lri03gyp")))) + "06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7")))) (build-system emacs-build-system) - (propagated-inputs - `(("emacs-async" ,emacs-async) - ("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-hl-todo" ,emacs-hl-todo) - ("magit" ,magit) - ("emacs-pcre2el" ,emacs-pcre2el) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/alphapapa/magit-todos") - (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer") - (description "This package displays keyword entries from source code -comments and Org files in the Magit status buffer. Activating an item jumps -to it in its file. By default, it uses keywords from @code{hl-todo}, minus a -few (like NOTE).") + (home-page "https://github.com/clarete/hackernews.el") + (synopsis "Hacker News client for Emacs") + (description "The @command{hackernews} package is able to fetch stories +from six different Hacker News feeds, namely top, new, best, ask, show and job +stories. The default feed is top stories, which corresponds to the Hacker +News homepage.") (license license:gpl3)))) + +(define-public emacs-youtube-dl + (let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd")) + (package + (name "emacs-youtube-dl") + (version (git-version "1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/skeeto/youtube-dl-emacs/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6")))) + (build-system emacs-build-system) + (inputs + `(("youtube-dl" ,youtube-dl))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((youtube-dl (assoc-ref inputs "youtube-dl"))) + ;; .el is read-only in git. + (chmod "youtube-dl.el" #o644) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (emacs-substitute-variables + "youtube-dl.el" + ("youtube-dl-program" + (string-append youtube-dl "/bin/youtube-dl"))))))))) + (home-page "https://github.com/skeeto/youtube-dl-emacs/") + (synopsis "Emacs youtube-dl download manager") + (description "This package manages a video download queue for +@command{youtube-dl}, which serves as the back end. It manages a single +@command{youtube-dl} subprocess, downloading one video at a time. New videos +can be queued at any time.") + (license license:unlicense)))) + +(define-public emacs-org-web-tools + (package + (name "emacs-org-web-tools") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-web-tools") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-esxml" ,emacs-esxml) + ("emacs-s" ,emacs-s))) + (inputs + `(("pandoc" ,ghc-pandoc))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-exec-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((pandoc (assoc-ref inputs "pandoc"))) + (substitute* "org-web-tools.el" + (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\""))) + #t)))))) + (home-page "https://github.com/alphapapa/org-web-tools") + (synopsis "Display/Process web page as Org-mode content") + (description "This package contains library functions and commands useful +for retrieving web page content and processing it into Org-mode content. + +For example, you can copy a URL to the clipboard or kill-ring, then run a +command that downloads the page, isolates the “readable” content with +@command{eww-readable}, converts it to Org-mode content with Pandoc, and +displays it in an Org-mode buffer. Another command does all of that but +inserts it as an Org entry instead of displaying it in a new buffer.") + (license license:gpl3+))) + +(define-public emacs-blimp + (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03")) + (package + (name "emacs-blimp") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/walseb/blimp") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-eimp" ,emacs-eimp))) + (home-page "https://github.com/walseb/blimp") + (synopsis "Emacs wrapper around all Imagemagick commands") + (description "Blimp (Bustling Image Manipulation Package) is a complete +wrapper around all Imagemagick commands with descriptions, autocompletion (for +some commands) and hints displayed in prompt using @command{eimp.el} to +execute its commands and resize images.") + (license license:gpl3+)))) + +(define-public emacs-synosaurus + (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb")) + (package + (name "emacs-synosaurus") + (version (git-version "0.1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hpdeifel/synosaurus") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva")))) + (build-system emacs-build-system) + (propagated-inputs + `(("wordnet" ,wordnet))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((wn (assoc-ref inputs "wordnet"))) + ;; .el is read-only in git. + (chmod "synosaurus-wordnet.el" #o644) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (emacs-substitute-variables + "synosaurus-wordnet.el" + ("wordnet-command" + (string-append wn "/bin/wn"))))))))) + (home-page "https://github.com/hpdeifel/synosaurus") + (synopsis "Extensible thesaurus mode for Emacs") + (description "Synosaurus is a thesaurus fontend for Emacs with pluggable +backends, including the @command{wordnet} offline backend.") + (license license:gpl3+)))) + +(define-public emacs-all-the-icons + (package + (name "emacs-all-the-icons") + (version "3.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/domtronn/all-the-icons.el.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn")))) + (build-system emacs-build-system) + (arguments + `(#:include '("\\.el$" "^data/" "^fonts/") + ;; Compiling "test/" fails with "Symbol’s value as variable is void: + ;; all-the-icons--root-code". Ignoring tests. + #:exclude '("^test/") + #:tests? #f)) + (propagated-inputs + `(("f" ,emacs-f) + ("memoize" ,emacs-memoize))) + (home-page "https://github.com/domtronn/all-the-icons.el") + (synopsis "Collect icon fonts and propertize them within Emacs") + (description "All-the-icons is a utility package to collect various icon +fonts and propertize them within Emacs. Icon fonts allow you to propertize +and format icons the same way you would normal text. This enables things such +as better scaling of and anti aliasing of the icons.") + ;; Package is released under Expat license. Elisp files are licensed + ;; under GPL3+. Fonts come with various licenses: Expat for + ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for + ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf", + ;; "ocitcons.ttf" and "weathericons.ttf". + (license + (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0)))) + +(define-public emacs-powerline + (package + (name "emacs-powerline") + (version "2.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/milkypostman/powerline.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar")))) + (build-system emacs-build-system) + (home-page "https://github.com/milkypostman/powerline/") + (synopsis "Mode-line plugin for Emacs") + (description "Powerline is a utility plugin which allows you to create +a better-looking, more functional Emacs mode-line. A collection of predefined +themes comes with the package.") + (license license:gpl3+))) + +(define-public emacs-spaceline + (package + (name "emacs-spaceline") + (version "2.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TheBB/spaceline.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl")))) + (build-system emacs-build-system) + (propagated-inputs + `(("dash" ,emacs-dash) + ("powerline" ,emacs-powerline) + ("s" ,emacs-s))) + (home-page "https://github.com/TheBB/spaceline") + (synopsis "Powerline theme from Spacemacs") + (description "Spaceline provides Spacemacs' mode-line theme. +This package provides features for three kinds of users. + +@itemize +@item You just want to use the Spacemacs mode-line theme and forget about it. +@item You want to use something similar to the Spacemacs mode-line theme, but +with a handful of easy tweaks. +@item You want an easy-to-use library for building your own mode-line from +scratch, and you think the Spacemacs theme looks good. +@end itemize") + (license license:gpl3+))) + +(define-public emacs-column-marker + (package + (name "emacs-column-marker") + (version "9") + (source + (origin + (method url-fetch) + (uri "https://www.emacswiki.org/emacs/download/column-marker.el") + (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/ColumnMarker") + (synopsis "Emacs mode for highlighting columns") + (description + "With @code{column-marker.el} you can highlight any number of text columns. +Three such highlight column markers are provided by default. This is +especially useful for languages like COBOL or Fortran where certain columns +have special meaning. It is also handy for aligning text across long vertical +distances. Multi-column characters, such as @kbd{TAB} are treated +correctly.") + (license license:gpl2+))) + +(define-public emacs-slime-repl-ansi-color + (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7")) + (package + (name "emacs-slime-repl-ansi-color") + (version (git-version "0.0.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/deadtrickster/slime-repl-ansi-color") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4")))) + (build-system emacs-build-system) + (home-page "https://github.com/deadtrickster/slime-repl-ansi-color") + (synopsis "Color ANSI codes in the REPL of SLIME") + (description "Color ANSI codes in the REPL of SLIME") + (license license:gpl2+)))) + +(define-public emacs-helm-slime + (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76")) + (package + (name "emacs-helm-slime") + (version (git-version "0.0.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-slime") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-slime" ,emacs-slime))) + (home-page "https://github.com/emacs-helm/helm-slime") + (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs") + (description "Helm-SLIME defines a few new commands: + +@itemize +@item helm-slime-complete: Select a symbol from the SLIME completion systems. +@item helm-slime-list-connections: Yet another slime-list-connections with Helm. +@item: helm-slime-apropos: Yet another slime-apropos with Helm. +@item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it. +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-gtk-look + (package + (name "emacs-gtk-look") + (version "29") + (source (origin + (method url-fetch) + (uri "https://download.tuxfamily.org/user42/gtk-look.el") + (sha256 + (base32 + "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda _ + ;; File is read-only. + (chmod "gtk-look.el" #o644) + (emacs-substitute-variables "gtk-look.el" + ("gtk-lookup-devhelp-indices" + '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*")))) + #t))))) + (home-page "http://user42.tuxfamily.org/gtk-look/index.html") + (synopsis "Find and display HTML documentation for GTK, GNOME and Glib") + (description "@command{gtk-look} finds and displays HTML documentation for +GTK, GNOME and Glib functions and variables in Emacs, similar to what +info-lookup-symbol does for info files (C-h S). The documentation is expected +to be devhelp indexes with HTML files. The location of the indexes can be +customized. In addition to C code development @command{gtk-look} is good for + +@itemize +@item @command{perl-gtk2}, recognising class funcs like +@command{Gtk2::Label->new} and bare method names like @command{set_text}. +@item @command{guile-gnome}, recognising methods like @command{set-text} and +classes like @command{<gtk-window>}. +@end itemize\n") + (license license:gpl3+))) + +(define-public emacs-ov + (package + (name "emacs-ov") + (version "1.0.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ShingoFukuyama/ov.el.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc")))) + (build-system emacs-build-system) + (home-page "https://github.com/ShingoFukuyama/ov.el") + (synopsis "Overlay library for Emacs Lisp") + (description "@code{ov.el} provides a simple way to manipulate overlays in +Emacs.") + (license license:gpl3+))) + +(define-public emacs-matrix-client + (let ((commit "3eab4c28280feff18ee1ddd7db66ada4f135cbf8")) + (package + (name "emacs-matrix-client") + (version (git-version "0.0.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jgkamat/matrix-client-el.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1k6721jz0m22vpb78881k087mpx8hf3s2219ic75v5mhgx355f7m")))) + (build-system emacs-build-system) + (propagated-inputs + `(("a" ,emacs-a) + ("dash" ,emacs-dash) + ("esxml" ,emacs-esxml) + ("f" ,emacs-f) + ("ht" ,emacs-ht) + ("ov" ,emacs-ov) + ("request" ,emacs-request) + ("s" ,emacs-s) + ("tracking" ,emacs-tracking))) + (home-page "https://github.com/jgkamat/matrix-client-el") + (synopsis "Matrix client for Emacs") + (description "@code{matrix-client} is a simple chat UI to Matrix.org +rooms. It also provides an API which allows Emacs to seamlessly create +RPC channels with users and other software.") + (license license:gpl3+)))) |