diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 9faaeb2..0d5bc29 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -1,98 +1,20 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès -;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost -;;; Copyright © 2015 Federico Beffa -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus -;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich -;;; Copyright © 2015, 2016, 2018, 2020 Christopher Lemmer Webber -;;; Copyright © 2016 Adriano Peluso -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner -;;; Copyright © 2016 David Thompson -;;; Copyright © 2016 Matthew Jordan -;;; Copyright © 2016, 2017 Roel Janssen -;;; Copyright © 2016, 2017 Nikita -;;; Copyright © 2016, 2019 Alex Griffin -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou -;;; Copyright © 2016, 2017, 2018 Alex Vong -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac -;;; Copyright © 2017 Christopher Baines -;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe -;;; Copyright © 2017, 2018, 2019, 2020 Clément Lassieur -;;; Copyright © 2017 Vasile Dumitrascu -;;; Copyright © 2017, 2018 Kyle Meyer -;;; Copyright © 2017 Kei Kebreau -;;; Copyright © 2017 George Clemmer -;;; Copyright © 2017, 2018 Feng Shu -;;; Copyright © 2017 Jan Nieuwenhuizen -;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov -;;; Copyright © 2017 Mekeor Melire -;;; Copyright © 2017 Peter Mikkelsen -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice -;;; Copyright © 2017 Mike Gerwitz -;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer -;;; Copyright © 2018 Sohom Bhattacharjee -;;; Copyright © 2018, 2019 Mathieu Lirzin -;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt -;;; Copyright © 2018, 2019 Tim Gesthuizen -;;; Copyright © 2018, 2019 Jack Hill -;;; Copyright © 2018 Pierre-Antoine Rouby -;;; Copyright © 2018 Alex Branham -;;; Copyright © 2018 Thorsten Wilms -;;; Copyright © 2018, 2019, 2020 Pierre Langlois -;;; Copyright © 2018, 2019, 2020 Brett Gilio -;;; Copyright © 2019, 2020 Dimakakos Dimos -;;; Copyright © 2019, 2020 Brian Leung -;;; Copyright © 2019 mikadoZero -;;; Copyright © 2019 Gabriel Hondet -;;; Copyright © 2019, 2020 Joseph LaFreniere -;;; Copyright © 2019 Amar Singh -;;; Copyright © 2019 Baptiste Strazzulla -;;; Copyright © 2019 Giacomo Leidi -;;; Copyright © 2019 Jens Mølgaard -;;; Copyright © 2019, 2020 Amin Bandali -;;; Copyright © 2019 Jelle Licht -;;; Copyright © 2019 Björn Höfling -;;; Copyright © 2019 Stephen Webber -;;; Copyright © 2019 Leo Prikler -;;; Copyright © 2019 David Wilson -;;; Copyright © 2020 Paul Garlick -;;; Copyright © 2020 Robert Smith -;;; Copyright © 2020 Evan Straw -;;; Copyright © 2020 Masaya Tojo -;;; Copyright © 2020 Martin Becze -;;; Copyright © 2020 Michael Rohleder -;;; Copyright © 2020 Brice Waegeneire -;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc> -;;; Copyright © 2020 John Soo -;;; Copyright © 2020 Jérémy Korwin-Zmijowski -;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero -;;; Copyright © 2020 Marius Bakke -;;; Copyright © 2020 pinoaffe -;;; Copyright © 2020 Vinicius Monego -;;; Copyright © 2020 Ryan Desfosses -;;; Copyright © 2020 Marcin Karpezo -;;; Copyright © 2020 Fredrik Salomonsson -;;; Copyright © 2020 Ryan Desfosses -;;; Copyright © 2020 Eric Bavier -;;; Copyright © 2020 Morgan Smith -;;; Copyright © 2020 Peng Mei Yu +;;; Copyright © 2020 Collin J. Doering ;;; -;;; This file is part of GNU Guix. +;;; This file is part of the GNU Guix channel rekahsoft-guix ;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. +;;; The rekahsoft-guix channel for GNU Guix is free software; you can +;;; redistribute it and/or modify it under the terms of the GNU General Public +;;; License as published by the Free Software Foundation; either version 3 of +;;; the License, or (at your option) any later version. ;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; The rekahsoft-guix channel for GNU Guix is distributed in the hope that it +;;; will be useful, but WITHOUT ANY WARRANTY; without even the implied +;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . +;;; You should have received a copy of the GNU General Public License along +;;; with the rekahsoft-guix channel for GNU Guix. If not, see +;;; . (define-module (gnu packages emacs-xyz) #:use-module ((guix licenses) #:prefix license:) @@ -190,23896 +112,6 @@ ;;; Emacs hacking. ;;; -(define-public emacs-geiser - (package - (name "emacs-geiser") - (version "0.11.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/jaor/geiser/") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv")))) - (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (symlink "geiser-install.el" - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/" - "geiser-autoloads.el")) - #t))))) - (inputs `(("guile" ,guile-2.2))) - (native-inputs - `(("emacs" ,emacs-minimal) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("texinfo" ,texinfo))) - (home-page "https://nongnu.org/geiser/") - (synopsis "Collection of Emacs modes for Guile and Racket hacking") - (description - "Geiser is a collection of Emacs major and minor modes that conspire with -one or more Scheme implementations to keep the Lisp Machine Spirit alive. The -continuously running Scheme interpreter takes the center of the stage in -Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme -implementation, Emacs and, ultimately, the schemer, giving them access to live -metadata.") - (license license:bsd-3))) - -(define-public emacs-ac-geiser - (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05") - (revision "0")) - (package - (name "emacs-ac-geiser") - (version (git-version "0.1" revision commit)) - (source - (origin - (uri (git-reference - (url "https://github.com/xiaohanyu/ac-geiser") - (commit commit))) - (method git-fetch) - (sha256 - (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("geiser" ,emacs-geiser) - ("auto-complete" ,emacs-auto-complete))) - (synopsis "Auto-complete backend for geiser") - (description - "This package provides an auto-complete source for Scheme projects -using geiser.") - (license license:bsd-3) - (home-page "https://github.com/xiaohanyu/ac-geiser")))) - -(define-public emacs-hyperbole - (package - (name "emacs-hyperbole") - (version "7.1.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "hyperbole-" version ".tar")) - (sha256 - (base32 "1bspmqnbniwr9385wh823dsr5fgch5qnlkf45s4vi0nvg8jdccp1")) - (patches - (search-patches "emacs-hyperbole-toggle-messaging.patch")))) - (build-system emacs-build-system) - (arguments - `(#:include '("DEMO" - "DEMO-ROLO.otl" - "HY-ABOUT" - "\\.el$" - "\\.info$" - "\\.kotl$") - #:phases - (modify-phases %standard-phases - ;; Fix build issues about missing "domainname" and "hpmap:dir-user" - ;; parent dir. - (add-after 'unpack 'fix-build - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "hypb.el" - (("/bin/domainname") - (string-append (assoc-ref inputs "inetutils") - "/bin/dnsdomainname"))) - (substitute* "hyperbole.el" - (("\\(hyperb:check-dir-user\\)") "")) - #t))))) - (inputs - `(("inetutils" ,inetutils))) - (home-page "https://www.gnu.org/software/hyperbole/") - (synopsis "The Everyday Hypertextual Information Manager") - (description - "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and -programmable hypertextual information management system implemented as a GNU -Emacs package. It offers rapid views and interlinking of all kinds of textual -information, utilizing Emacs for editing. It can dramatically increase your -productivity and greatly reduce the number of keyboard/mouse keys you'll need -to work efficiently. Hyperbole lets you: - -@itemize -@item Quickly create hyperlink buttons either from the keyboard or by dragging -between a source and destination window with a mouse button depressed. Later, -activate buttons by pressing/clicking on them or by giving the name of the -button. -@item Activate many kinds of \"implicit buttons\" recognized by context within -text buffers, e.g. URLs, grep output lines, and git commits. A single key or -mouse button automatically does the right thing in dozens of contexts; just -press and go. -@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6, -that all renumber automatically as any node or tree is moved in the outline. -Each node also has a permanent hyperlink anchor that you can reference from -any other node. -@item Manage all your contacts quickly with hierarchical categories and embed -hyperlinks within each entry. Or create an archive of documents with -hierarchical entries and use the same search mechanism to quickly find any -matching entry. -@item Use single keys to easily manage your Emacs windows or frames and -quickly retrieve saved window and frame configurations. -@item Search for things in your current buffers, in a directory tree or across -major web search engines with the touch of a few keys. -@end itemize - -The common thread in all these features is making retrieval, management and -display of information fast and easy. That is Hyperbole's purpose.") - (license license:gpl3+))) - -(define-public emacs-paredit - (package - (name "emacs-paredit") - (version "24") - (source (origin - (method url-fetch) - (uri (string-append "http://mumble.net/~campbell/emacs/paredit-" - version ".el")) - (sha256 - (base32 - "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka")))) - (build-system emacs-build-system) - (home-page "http://mumble.net/~campbell/emacs/paredit/") - (synopsis "Emacs minor mode for editing parentheses") - (description - "ParEdit (paredit.el) is a minor mode for performing structured editing -of S-expression data. The typical example of this would be Lisp or Scheme -source code. - -ParEdit helps **keep parentheses balanced** and adds many keys for moving -S-expressions and moving around in S-expressions. Its behavior can be jarring -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 git-modes - (package - (name "emacs-git-modes") - (version "1.2.8") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/git-modes") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72")))) - (build-system emacs-build-system) - (home-page "https://github.com/magit/git-modes") - (synopsis "Emacs major modes for Git configuration files") - (description - "This package provides Emacs major modes for editing various Git -configuration files, such as .gitattributes, .gitignore, and .git/config.") - (license license:gpl3+))) - -(define-public emacs-with-editor - (package - (name "emacs-with-editor") - (version "2.9.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/with-editor") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1m8bm8q5zakfjdkd0662gbkvzmcrlkxy1856xns2nfiflrkpw88b")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/magit/with-editor") - (synopsis "Emacs library for using Emacsclient as EDITOR") - (description - "This package provides an Emacs library to use the Emacsclient as -@code{$EDITOR} of child processes, making sure they know how to call home. -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 emacs-libgit - (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a") - (revision "1")) - (package - (name "emacs-libgit") - (version (git-version "20200515" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/libegit2") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f")) - (patches (search-patches - ;; Submitted for inclusion upstream (see: - ;; https://github.com/magit/libegit2/pull/96). - "emacs-libgit-use-system-libgit2.patch")))) - ;; Use the cmake-build-system as it provides support for cross builds. - (build-system cmake-build-system) - (arguments - `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x") - ;; Add the emacs-build-system byte compilation and install phases. - #:imported-modules (,@%cmake-build-system-modules - (guix build emacs-build-system) - (guix build emacs-utils)) - #:modules ((guix build cmake-build-system) - ((guix build emacs-build-system) #:prefix emacs:) - (guix build emacs-utils) - (guix build utils)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-libgit--module-file - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (make-file-writable "libgit.el") - (emacs-substitute-variables "libgit.el" - ("libgit--module-file" - (string-append out "/share/emacs/site-lisp/libegit2.so"))) - #t))) - (add-before 'install 'prepare-for-install - (lambda _ - (let ((s (string-append "../" ,name "-" ,version "-checkout"))) - (copy-file "libegit2.so" (string-append s "/libegit2.so")) - (chdir s) - #t))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((install (assoc-ref emacs:%standard-phases 'install))) - (install #:outputs outputs - #:include (cons "\\.so$" - emacs:%default-include))))) - (add-after 'install 'make-autoloads - (assoc-ref emacs:%standard-phases 'make-autoloads)) - (add-after 'make-autoloads 'enable-autoloads-compilation - (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation)) - (add-after 'enable-autoloads-compilation 'patch-el-files - (assoc-ref emacs:%standard-phases 'patch-el-files)) - (add-after 'patch-el-files 'emacs-build - (assoc-ref emacs:%standard-phases 'build)) - (add-after 'emacs-build 'validate-compiled-autoloads - (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads))))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("emacs" ,emacs-no-x) - ("git" ,git-minimal))) - (inputs - `(("libgit2" ,libgit2))) - (home-page "https://github.com/magit/libegit2") - (synopsis "Emacs bindings for libgit2") - (description "This is an experimental module written in C providing -libgit2 bindings for Emacs, intended to boost the performance of Magit.") - ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+. - (license license:gpl3+)))) - -(define-public emacs-magit - ;; There hasn't been an official release since 2018-11-16. - (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b") - (revision "6")) - (package - (name "emacs-magit") - (version (git-version "2.90.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/magit") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms")))) - (build-system emacs-build-system) - (arguments - `(#:emacs ,emacs-no-x ;module support is required - #:tests? #t - #:test-command '("make" "test") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'build-info-manual - (lambda _ - (invoke "make" "info") - ;; Copy info files to the lisp directory, which acts as - ;; the root of the project for the emacs-build-system. - (for-each (lambda (f) - (install-file f "lisp")) - (find-files "Documentation" "\\.info$")) - (chdir "lisp") - #t)) - (add-after 'build-info-manual 'set-magit-version - (lambda _ - (make-file-writable "magit.el") - (emacs-substitute-variables "magit.el" - ("magit-version" ,version)) - #t)) - (add-after 'set-magit-version 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (let ((perl (assoc-ref inputs "perl"))) - (make-file-writable "magit-sequence.el") - (emacs-substitute-variables "magit-sequence.el" - ("magit-perl-executable" (string-append perl "/bin/perl"))) - #t))) - (add-before 'check 'configure-git - (lambda _ - ;; Otherwise some tests fail with error "unable to auto-detect - ;; email address". - (setenv "HOME" (getcwd)) - (invoke "git" "config" "--global" "user.name" "toto") - (invoke "git" "config" "--global" "user.email" - "toto@toto.com"))) - (add-after 'configure-git 'disable-tramp-test - (lambda _ - ;; There is an issue causing TRAMP to fail in the build - ;; environment. Setting the tramp-remote-shell parameter of - ;; the sudo-method to the file name of the shell didn't help. - (chdir "..") - (substitute* "t/magit-tests.el" - (("^\\(ert-deftest magit-toplevel:tramp.*" all) - (string-append all " (skip-unless nil)"))) - #t)) - (add-before 'install 'enter-lisp-directory - (lambda _ - (chdir "lisp") - #t))))) - (native-inputs - `(("texinfo" ,texinfo))) - (inputs - `(("git" ,git) - ("perl" ,perl))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-libgit" ,emacs-libgit) - ("emacs-transient" ,emacs-transient) - ("emacs-with-editor" ,emacs-with-editor))) - (home-page "https://magit.vc/") - (synopsis "Emacs interface for the Git version control system") - (description - "With Magit, you can inspect and modify your Git repositories -with Emacs. You can review and commit the changes you have made to -the tracked files, for example, and you can browse the history of past -changes. There is support for cherry picking, reverting, merging, -rebasing, and other common Git operations.") - (license license:gpl3+)))) - -(define-public emacs-magit-svn - (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f")) - (package - (name "emacs-magit-svn") - (version (git-version "2.2.1" "2" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/magit-svn") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy")))) - (build-system emacs-build-system) - (propagated-inputs `(("dash" ,emacs-dash) - ("with-editor" ,emacs-with-editor) - ("magit" ,emacs-magit) - ("transient" ,emacs-transient))) - (home-page "https://github.com/magit/magit-svn") - (synopsis "Git-SVN extension to Magit") - (description - "This package is an extension to Magit, the Git Emacs mode, providing -support for Git-SVN.") - (license license:gpl3+)))) - -(define-public emacs-magit-popup - (package - (name "emacs-magit-popup") - (version "2.13.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/magit-popup") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'install 'make-info - (lambda _ - (invoke "make" "info")))))) - (native-inputs - `(("texinfo" ,texinfo))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/magit/magit-popup") - (synopsis "Define prefix-infix-suffix command combos") - (description - "This library implements a generic interface for toggling switches and -setting options and then invoking an Emacs command which does something with -these arguments. The prototypical use is for the command to call an external -process, passing on the arguments as command line arguments.") - (license license:gpl3+))) - -(define-public emacs-magit-annex - (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a") - (revision "1")) - (package - (name "emacs-magit-annex") - (version (git-version "1.7.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/magit-annex") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd")))) - (build-system emacs-build-system) - (propagated-inputs - `(("magit" ,emacs-magit) - ("transient" ,emacs-transient))) - (home-page "https://github.com/magit/magit-annex/") - (synopsis "Git-annex support for Magit") - (description - "Magit-annex adds a few git-annex operations to the Magit interface.") - (license license:gpl3+)))) - -(define-public emacs-minions - (package - (name "emacs-minions") - (version "0.3.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tarsius/minions") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/tarsius/minions") - (synopsis "Minor-mode menu for the mode line") - (description - "This package implements a menu that lists enabled minor-modes, as well -as commonly but not currently enabled minor-modes. It can be used to toggle -local and global minor-modes, to access mode-specific menus, and to get help -about modes. - -This menu is intended as a replacement for the incomplete yet wide list of -enabled minor-modes that is displayed in the mode line by default. To use the -menu like this, enable Minions mode. - -Alternatively the menu can be bound globally, for example: -@code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.") - (license license:gpl3+))) - -(define-public emacs-treepy - (package - (name "emacs-treepy") - (version "0.1.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/volrath/treepy.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk")))) - (build-system emacs-build-system) - (home-page - "https://github.com/volrath/treepy.el") - (synopsis "Tree traversal tools") - (description - "Generic tools for recursive and iterative tree traversal based on -clojure.walk and clojure.zip respectively.") - (license license:gpl3+))) - -(define-public emacs-graphql - (package - (name "emacs-graphql") - (version "0.1.1") - (source (origin - (modules '((guix build utils))) - ;; Remove examples file with references to external packages as - ;; they do not exist at compilation time. - (snippet - '(begin (delete-file "examples.el") - #t)) - (method git-fetch) - (uri (git-reference - (url "https://github.com/vermiculus/graphql.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw")))) - (build-system emacs-build-system) - (home-page - "https://github.com/vermiculus/graphql.el") - (synopsis "GraphQL utilities") - (description - "GraphQL.el provides a generally-applicable domain-specific language for -creating and executing GraphQL queries against your favorite web services. -GraphQL is a data query language and runtime designed and used to request and -deliver data to mobile and web apps.") - (license license:gpl3+))) - -(define-public emacs-ghub - (package - (name "emacs-ghub") - (version "3.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/ghub") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1229g0d9f4ywwjndx32x4z5jdr0kzyi44hjxmy0sifwfmg9nn251")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'install 'make-info - (lambda _ - (invoke "make" "info")))))) - (native-inputs - `(("texinfo" ,texinfo))) - (propagated-inputs - `(("dash" ,emacs-dash) - ("emacs-let-alist" ,emacs-let-alist) - ("treepy" ,emacs-treepy))) - (home-page "https://github.com/magit/ghub") - (synopsis "Emacs client libraries for the APIs of various Git forges") - (description - "Ghub provides basic support for using the APIs of various Git forges from -Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab, -Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a -handful of functions that are not resource-specific.") - (license license:gpl3+))) - -(define-public emacs-typit - ;; Last release is from 2017. - (let ((commit "231cb7df43253b84323520b8ed70f128d37003af") - (revision "1")) - (package - (name "emacs-typit") - (version (git-version "0.2.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mrkkrp/typit") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-dictionaries - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (site-lisp - (string-append - out "/share/emacs/site-lisp/dict"))) - (mkdir-p site-lisp) - (copy-recursively "dict" site-lisp) - #t)))))) - (propagated-inputs - `(("emacs-f" ,emacs-f) - ("emacs-mmt" ,emacs-mmt))) - (home-page "https://github.com/mrkkrp/typit") - (synopsis "Typing game for Emacs with two difficulties") - (description "Emacs Typit is a typing game for Emacs. Words that are -picked randomly from the most frequent words in language you're practicing, -until time is up.") - (license license:gpl3+)))) - -(define-public emacs-scribble-mode - (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2") - (revision "2")) - (package - (name "emacs-scribble-mode") - (version (git-version "0.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-pe/scribble-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii")))) - (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-shroud - (package - (name "emacs-shroud") - (version "1.105") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.savannah.gnu.org/git/emacs-shroud.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("texinfo" ,texinfo) - ("perl" ,perl) - ("emacs-minimal" ,emacs-minimal))) - (propagated-inputs - `(("emacs-bui" ,emacs-bui) - ("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-s" ,emacs-s) - ("gnupg" ,gnupg) - ("shroud" ,shroud))) - (home-page "https://www.nongnu.org/emacs-shroud") - (synopsis "Emacs interface to the Shroud password manager") - (description - "This package provides an Emacs interface to the Shroud password manager, -using the Buffers User Interface library. You can view, copy, and edit secrets -from within Emacs.") - (license license:gpl3+))) - -(define-public emacs-unpackaged-el - (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad") - (revision "3")) - (package - (name "emacs-unpackaged-el") - (version (git-version "0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alphapapa/unpackaged.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-org" ,emacs-org) - ("emacs-s" ,emacs-s) - ("emacs-hydra" ,emacs-hydra) - ("emacs-use-package" ,emacs-use-package))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'require-hydra - (lambda _ - (substitute* "unpackaged.el" - ((";;; Code:") ";;; Code:\n(require 'hydra)")) - #t))))) - (home-page "https://github.com/alphapapa/unpackaged.el") - (synopsis "Useful snippets of Emacs Lisp code") - (description "This package provides Emacs Lisp utilities for a variety -of tasks, including version control, task management, and regex-based -replacement.") - (license license:gpl3+)))) - -(define-public emacs-haskell-mode - (package - (name "emacs-haskell-mode") - (version "17.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/haskell/haskell-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0izcasi2v02zh08c863h43m8mmsldzy8pck43cllrfn0zf24v2qn")))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (native-inputs - `(("emacs" ,emacs-minimal) - ("emacs-el-search" ,emacs-el-search) - ("emacs-stream" ,emacs-stream) - ("texinfo" ,texinfo))) - (build-system gnu-build-system) - (arguments - `(#:make-flags (list (string-append "EMACS=" - (assoc-ref %build-inputs "emacs") - "/bin/emacs")) - #:modules ((ice-9 match) - (srfi srfi-26) - ,@%gnu-build-system-modules) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'pre-build - (lambda* (#:key inputs #:allow-other-keys) - (define (el-dir store-dir) - (match (find-files store-dir "\\.el$") - ((f1 f2 ...) (dirname f1)) - (_ ""))) - - (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh"))) - (define emacs-prefix? (cut string-prefix? "emacs-" <>)) - - (setenv "SHELL" "sh") - (setenv "EMACSLOADPATH" - (string-concatenate - (map (match-lambda - (((? emacs-prefix? name) . dir) - (string-append (el-dir dir) ":")) - (_ "")) - inputs))) - (substitute* (find-files "." "\\.el") (("/bin/sh") sh)) - #t))) - (add-before 'check 'delete-failing-tests - ;; XXX: these tests require GHC executable, which would be a big - ;; native input. - (lambda _ - (with-directory-excursion "tests" - (for-each delete-file - '("haskell-customize-tests.el" - "inferior-haskell-tests.el"))) - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (el-dir (string-append out "/share/emacs/site-lisp")) - (doc (string-append - out "/share/doc/haskell-mode-" ,version)) - (info (string-append out "/share/info"))) - (define (copy-to-dir dir files) - (for-each (lambda (f) - (install-file f dir)) - files)) - - (with-directory-excursion "doc" - (invoke "makeinfo" "haskell-mode.texi") - (install-file "haskell-mode.info" info)) - (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md")) - (copy-to-dir el-dir (find-files "." "\\.elc?")) - #t)))))) - (home-page "https://github.com/haskell/haskell-mode") - (synopsis "Haskell mode for Emacs") - (description - "This is an Emacs mode for editing, debugging and developing Haskell -programs.") - (license license:gpl3+))) - -(define-public emacs-dante - (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b") - (revision "1")) - (package - (name "emacs-dante") - (version (git-version "1.6" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jyp/dante") - (commit commit))) - (sha256 - (base32 - "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-flycheck" ,emacs-flycheck) - ("emacs-haskell-mode" ,emacs-haskell-mode) - ("emacs-s" ,emacs-s) - ("emacs-company" ,emacs-company) - ("emacs-lcr" ,emacs-lcr))) - (home-page "https://github.com/jyp/dante") - (synopsis "Minor mode for interactive Haskell") - (description - "This package provides a minor mode for Haskell development that -supports type hints, definition-jumping, completion, and more.") - (license license:gpl3+)))) - -(define-public emacs-flycheck - ;; Last release version was more than 500 commits ago. - (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3") - (revision "2")) - (package - (name "emacs-flycheck") - (version (git-version "31" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flycheck/flycheck/") - (commit commit))) - (sha256 - (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (native-inputs - `(("emacs-shut-up" ,emacs-shut-up))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'change-flycheck-version - (lambda _ - (substitute* "flycheck.el" - (("\\(pkg-info-version-info 'flycheck\\)") - (string-append "\"" ,version "\""))) - #t))) - ;; TODO: many failing tests - #:tests? #f - #:test-command '("emacs" "-Q" "--batch" "-L" "." - "--load" "test/flycheck-test" - "--load" "test/run.el" - "-f" "flycheck-run-tests-main"))) - (home-page "https://www.flycheck.org") - (synopsis "On-the-fly syntax checking") - (description - "This package provides on-the-fly syntax checking for GNU Emacs. It is a -replacement for the older Flymake extension which is part of GNU Emacs, with -many improvements and additional features. - -Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax -checking for over 30 programming and markup languages with more than 70 -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-flymake-shellcheck - ;; No tag, version grabbed from source .el file. - (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6") - (revision "0")) - (package - (name "emacs-flymake-shellcheck") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/federicotdn/flymake-shellcheck") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix")))) - (build-system emacs-build-system) - (home-page "https://github.com/federicotdn/flymake-shellcheck") - (synopsis "Flymake backend for Bash/Sh powered by ShellCheck") - (description - "This package provides a backend for Flymake to use the -tool ShellCheck for static analyzing @command{bash} and @command{sh} -scripts.") - (license license:gpl3+)))) - -(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") - (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+))) - -(define-public emacs-ace-jump-mode - (package - (name "emacs-ace-jump-mode") - (version "2.0") - (home-page "https://github.com/winterTTr/ace-jump-mode") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (sha256 - (base32 - "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (synopsis "Cursor location minor mode for fast navigation") - (description "Ace-jump-mode is a fast/direct cursor location minor -mode. It creates an N-Branch search tree internally and marks all -the possible position with predefined keys in within the whole Emacs -view. This allows you to move to the character, word, or line almost -directly.") - (license license:gpl3+))) - -(define-public emacs-anaphora - (package - (name "emacs-anaphora") - (version "1.0.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rolandwalker/anaphora") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib")))) - (build-system emacs-build-system) - (home-page "https://github.com/rolandwalker/anaphora/") - (synopsis "Anaphoric expressions for Emacs Lisp") - (description "@code{emacs-anaphora} implements anaphoric expressions for -Emacs Lisp. - -Anaphoric expressions implicitly create one or more temporary variables which -can be referred to during the expression. This technique can improve clarity -in certain cases. It also enables recursion for anonymous functions.") - (license license:public-domain))) - -(define-public emacs-xr - (package - (name "emacs-xr") - (version "1.19") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar")) - (sha256 - (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/xr.html") - (synopsis "Convert string regexp to rx notation") - (description - "This is an inverse companion to the @code{rx} package for translating -regexps in string form to the @code{rx} notation. Its chief uses are: - -@itemize -@item Migrating existing code to @code{rx} form, for better readability and -maintainability -@item Understanding complex regexp strings and finding errors in them -@end itemize - -In addition to Emacs regexps, this package can also parse and troubleshoot -skip set strings, which are arguments to @code{skip-chars-forward} and -@code{skip-chars-backward}.") - (license license:gpl3+))) - -(define-public emacs-ample-regexps - (let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046") - (revision "1")) - (package - (name "emacs-ample-regexps") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/immerrr/ample-regexps.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1")))) - (build-system emacs-build-system) - (native-inputs - `(("ert-runner" ,emacs-ert-runner))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner" "-l" "ample-regexps"))) - (home-page "https://github.com/immerrr/ample-regexps.el") - (synopsis "Compose and reuse Emacs regexps") - (description - "This package allows common parts of regexps to be easily picked out -and reused.") - (license license:gpl3+)))) - -(define-public emacs-ample-theme - (let ((commit "536966adf882446165a1f756830028faa792c7a9") - (revision "1")) - (package - (name "emacs-ample-theme") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jordonbiondo/ample-theme") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf")))) - (build-system emacs-build-system) - (home-page "https://github.com/jordonbiondo/ample-theme") - (synopsis "Theme for Emacs providing dark, light, and flat versions") - (description "Ample themes is a collection of three themes sharing a -similar pallet with a light, dark and flat versions with a focus on being easy -on the eyes during night and day. They only support GUI and 256 colour -terminals.") - (license license:gpl3+)))) - -(define-public emacs-reformatter - (package - (name "emacs-reformatter") - (version "0.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/purcell/reformatter.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah")))) - (build-system emacs-build-system) - (home-page "https://github.com/purcell/reformatter.el") - (synopsis "Define commands which run reformatters on the current buffer") - (description - "This library lets elisp authors easily define an idiomatic command to -reformat the current buffer using a command-line program, together with an -optional minor mode which can apply this command automatically on save.") - (license license:gpl3+))) - -(define-public emacs-relint - (package - (name "emacs-relint") - (version "1.18") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "relint-" version ".tar")) - (sha256 - (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-xr" ,emacs-xr))) - (home-page "https://github.com/mattiase/relint") - (synopsis "Elisp regexp mistake finder") - (description - "Relint (regular expression lint) scans Elisp files for mistakes in -regexps, including deprecated syntax and bad practice. It also checks the -regexp-like arguments to @code{skip-chars-forward} and -@code{skip-chars-backward}.") - (license license:gpl3+))) - -(define-public emacs-bug-hunter - (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7") - (revision "1")) - (package - (name "emacs-bug-hunter") - (version (git-version "1.3.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Malabarba/elisp-bug-hunter") - (commit commit))) - (file-name (git-file-name name commit)) - (sha256 - (base32 - "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-seq" ,emacs-seq))) - (home-page "https://github.com/Malabarba/elisp-bug-hunter") - (synopsis "Hunt down errors by bisecting elisp files") - (description - "The Bug Hunter is an Emacs library that finds the source of an error -or unexpected behavior inside an elisp configuration file (typically -@file{init.el} or @file{.emacs}).") - (license license:gpl3+)))) - - -;;; -;;; Web browsing. -;;; - -(define-public emacs-w3m - ;; Emacs-w3m follows a "rolling release" model. - (package - (name "emacs-w3m") - (version "2018-11-11") - (source (origin - (method cvs-fetch) - (uri (cvs-reference - (root-directory - ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot") - (module "emacs-w3m") - (revision version))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp")))) - (build-system gnu-build-system) - (native-inputs `(("autoconf" ,autoconf) - ("texinfo" ,texinfo) - ("emacs" ,emacs-minimal))) - (inputs `(("w3m" ,w3m) - ("imagemagick" ,imagemagick))) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (guix build emacs-utils)) - #:imported-modules (,@%gnu-build-system-modules - (guix build emacs-utils)) - #:configure-flags - (let ((out (assoc-ref %outputs "out"))) - (list (string-append "--with-lispdir=" - out "/share/emacs/site-lisp") - (string-append "--with-icondir=" - out "/share/images/emacs-w3m") - ;; Leave .el files uncompressed, otherwise GC can't - ;; identify run-time dependencies. See - ;; - "--without-compress-install")) - #:tests? #f ; no check target - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'autoconf - (lambda _ - (invoke "autoconf"))) - (add-before 'configure 'support-emacs! - (lambda _ - ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is - ;; unsupported. - (substitute* "configure" - (("EMACS_FLAVOR=unsupported") - "EMACS_FLAVOR=emacs")) - #t)) - (add-before 'build 'patch-exec-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (w3m (assoc-ref inputs "w3m")) - (imagemagick (assoc-ref inputs "imagemagick")) - (coreutils (assoc-ref inputs "coreutils"))) - (make-file-writable "w3m.el") - (emacs-substitute-variables "w3m.el" - ("w3m-command" (string-append w3m "/bin/w3m")) - ("w3m-touch-command" - (string-append coreutils "/bin/touch")) - ("w3m-icon-directory" - (string-append out "/share/images/emacs-w3m"))) - (make-file-writable "w3m-image.el") - (emacs-substitute-variables "w3m-image.el" - ("w3m-imagick-convert-program" - (string-append imagemagick "/bin/convert")) - ("w3m-imagick-identify-program" - (string-append imagemagick "/bin/identify"))) - #t))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (invoke "make" "install" "install-icons") - (with-directory-excursion - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp") - (for-each delete-file '("ChangeLog" "ChangeLog.1")) - (symlink "w3m-load.el" "w3m-autoloads.el") - #t)))))) - (home-page "http://emacs-w3m.namazu.org/") - (synopsis "Simple Web browser for Emacs based on w3m") - (description - "Emacs-w3m is an emacs interface for the w3m web browser.") - (license license:gpl2+))) - -(define-public emacs-wget - (package - (name "emacs-wget") - (version "0.5.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_" - version ".orig.tar.gz")) - (sha256 - (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff")))) - (build-system gnu-build-system) - (inputs `(("wget" ,wget))) - (native-inputs `(("emacs" ,emacs-minimal))) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (guix build emacs-utils)) - #:imported-modules (,@%gnu-build-system-modules - (guix build emacs-utils)) - #:tests? #f ; no check target - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("/usr/local") (assoc-ref outputs "out")) - (("/site-lisp/emacs-wget") "/site-lisp")) - #t)) - (add-before 'build 'patch-exec-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((wget (assoc-ref inputs "wget"))) - (emacs-substitute-variables "wget.el" - ("wget-command" (string-append wget "/bin/wget")))) - #t)) - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (emacs-generate-autoloads - "wget" (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/")) - #t))))) - (home-page "https://www.emacswiki.org/emacs/EmacsWget") - (synopsis "Simple file downloader for Emacs based on wget") - (description - "Emacs-wget is an emacs interface for the wget file downloader.") - (license license:gpl2+))) - -(define-public emacs-eww-lnum - (package - (name "emacs-eww-lnum") - (version "1.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/m00natic/eww-lnum") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2")))) - (build-system emacs-build-system) - (home-page "https://github.com/m00natic/eww-lnum") - (synopsis "Conkeror-like functionality for Eww") - (description "This is extension to the Emacs browser Eww that adds -Conkeror-like functionality. In short, currently visible links, forms, -buttons are temporarily assigned numbers with which the former can be -immediately activated. Also filtering can be applied so selection can be -incrementally confined in Isearch manner.") - (license license:gpl3+))) - - - -;;; -;;; Multimedia. -;;; - -(define-public emacs-emms - (package - (name "emacs-emms") - (version "5.42") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "emms-" version ".tar")) - (sha256 - (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-external-programs - ;; Specify the absolute file names of the various programs - ;; so that everything works out-of-the-box. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (flac (assoc-ref inputs "flac")) - (vorbis (assoc-ref inputs "vorbis-tools")) - (alsa (assoc-ref inputs "alsa-utils")) - (mpg321 (assoc-ref inputs "mpg321")) - (mp3info (assoc-ref inputs "mp3info")) - (mutagen (assoc-ref inputs "mutagen")) - (opus (assoc-ref inputs "opus-tools"))) - (emacs-substitute-variables "emms-player-mpg321-remote.el" - ("emms-player-mpg321-remote-command" - (string-append mpg321 "/bin/mpg321"))) - (substitute* "emms-player-simple.el" - (("\"ogg123\"") - (string-append "\"" vorbis "/bin/ogg123\""))) - (substitute* "emms-player-simple.el" - (("\"mpg321\"") - (string-append "\"" mpg321 "/bin/mpg321\""))) - (emacs-substitute-variables "emms-info-ogginfo.el" - ("emms-info-ogginfo-program-name" - (string-append vorbis "/bin/ogginfo"))) - (emacs-substitute-variables "emms-info-opusinfo.el" - ("emms-info-opusinfo-program-name" - (string-append opus "/bin/opusinfo"))) - (emacs-substitute-variables "emms-info-libtag.el" - ("emms-info-libtag-program-name" - (string-append out "/bin/emms-print-metadata"))) - (emacs-substitute-variables "emms-info-mp3info.el" - ("emms-info-mp3info-program-name" - (string-append mp3info "/bin/mp3info"))) - (emacs-substitute-variables "emms-info-metaflac.el" - ("emms-info-metaflac-program-name" - (string-append flac "/bin/metaflac"))) - (emacs-substitute-variables "emms-source-file.el" - ("emms-source-file-gnu-find" (which "find"))) - (substitute* "emms-volume-amixer.el" - (("\"amixer\"") - (string-append "\"" alsa "/bin/amixer\""))) - (substitute* "emms-tag-editor.el" - (("\"mid3v2\"") - (string-append "\"" mutagen "/bin/mid3v2\""))) - #t)))))) - (inputs - `(("alsa-utils" ,alsa-utils) - ("flac" ,flac) ;for metaflac - ("vorbis-tools" ,vorbis-tools) - ("mpg321" ,mpg321) - ("taglib" ,taglib) - ("mp3info" ,mp3info) - ("mutagen" ,python-mutagen) - ("opus-tools" ,opus-tools))) - (home-page "https://www.gnu.org/software/emms/") - (synopsis "The Emacs Multimedia System") - (description - "EMMS is the Emacs Multimedia System. It is a small front-end which -can control one of the supported external players. Thus, it supports -whatever formats are supported by your music player. It also -supports tagging and playlist management, all behind a clean and -light user interface.") - (license license:gpl3+))) - -(define-public emacs-emms-mode-line-cycle - (package - (name "emacs-emms-mode-line-cycle") - (version "0.2.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/momomo5717/emms-mode-line-cycle") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emms" ,emacs-emms))) - (home-page "https://github.com/momomo5717/emms-mode-line-cycle") - (synopsis "Display the EMMS mode line as a ticker") - (description - "This is a minor mode for updating the EMMS mode-line string cyclically -within a specified width. It is useful for displaying long track titles.") - (license license:gpl3+))) - - -;;; -;;; Miscellaneous. -;;; - -(define-public emacs-ace-link - (package - (name "emacs-ace-link") - (version "0.5.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/ace-link") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-avy" ,emacs-avy))) - (home-page "https://github.com/abo-abo/ace-link") - (synopsis "Quickly follow links in Emacs") - (description - "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode}, -@code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode}, -@code{goto-address-mode} buffer, you can tab through the links to select the -one you want. This is an O(N) operation, where the N is the amount of links. -This package turns this into an O(1) operation. It does so by assigning a -letter to each link using avy.") - (license license:gpl3+))) - -(define-public emacs-auto-sudoedit - (package - (name "emacs-auto-sudoedit") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ncaq/auto-sudoedit") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f")))) - (propagated-inputs - `(("emacs-f" ,emacs-f))) - (build-system emacs-build-system) - (home-page "https://github.com/ncaq/auto-sudoedit") - (synopsis "Automatically re-open read-only files with sudo") - (description - "This package automatically reopens a file or directory with -@command{sudo} if it cannot write to it.") - (license license:expat))) - -(define-public emacs-bbdb - (package - (name "emacs-bbdb") - (version "3.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "bbdb-" version ".tar")) - (sha256 - (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx")))) - (build-system emacs-build-system) - (arguments - ;; XXX: The following file cannot be byte-compiled, because et requires - ;; `vm-autoloads', from the VM package, with is neither in Emacs nor - ;; packaged in Guix. So, don't bother for now. - `(#:exclude '("bbdb-vm\\.el"))) - (home-page "http://elpa.gnu.org/packages/bbdb.html") - (synopsis "Contact management utility for Emacs") - (description - "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides -an address book for email and snail mail addresses, phone numbers and the -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 emacs-bluetooth - (package - (name "emacs-bluetooth") - (version "0.1.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "bluetooth-" version ".el")) - (sha256 - (base32 "1vp2vpyq0ybjni35ics1mg1kiwgvc7x12dlmvygy78sqp52sfkcv")))) - (build-system emacs-build-system) - (inputs - `(("bluez" ,bluez))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://gitlab.com/rstocker/emacs-bluetooth") - (synopsis "Manage Bluetooth devices using Emacs") - (description - "This package implements basic Bluetooth management functionality, such -as connecting and disconnecting devices, setting properties and aliases, -putting the adapter in discovery mode and controlling its power supply. It -also includes a pairing agent.") - (license license:gpl3+))) - -(define-public emacs-aggressive-indent - (package - (name "emacs-aggressive-indent") - (version "1.8.3") - (source (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "aggressive-indent-" version ".el")) - (sha256 - (base32 - "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/aggressive-indent.html") - (synopsis "Minor mode to aggressively keep your code always indented") - (description - "@code{aggressive-indent-mode} is a minor mode that keeps your code -always indented. It reindents after every change, making it more reliable -than @code{electric-indent-mode}.") - (license license:gpl2+))) - -(define-public emacs-ctrlf - (package - (name "emacs-ctrlf") - (version "1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/raxod502/ctrlf") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc")))) - (build-system emacs-build-system) - (home-page "https://github.com/raxod502/ctrlf/") - (synopsis "Single-buffer text search in Emacs") - (description "CTRLF (pronounced @emph{control F}) is an intuitive and -efficient solution for single-buffer text search in Emacs, replacing packages -such as Isearch, Swiper, and helm-swoop. It takes inspiration from the -widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as -web browsers, but follows the flow and keybindings of Isearch.") - (license license:expat))) - -(define-public emacs-dhall-mode - ;; There is no proper release. The base version is extracted from the - ;; "Version" keyword in the main file. - (let ((revision "0") - (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2")) - (package - (name "emacs-dhall-mode") - (version (git-version "0.1.3" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/psibi/dhall-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-reformatter" ,emacs-reformatter))) - (home-page "https://github.com/psibi/dhall-mode") - (synopsis "Major mode for working with Dhall configuration language") - (description - "Dhall-mode provides an Emacs Major mode for working with the Dhall -configuration language. It features: - -@itemize -@item Syntax highlighting -@item Multiline support for String -@item Basic indentation, commenting -@item Automatic formatting on save using dhall-format. -@item Error highlighting. -@end itemize") - (license license:gpl3+)))) - -(define-public emacs-link-hint - ;; Last release was in 2015. - (let ((commit "d74a483652486260c052941fedeadddb1ea71f88") - (revision "1")) - (package - (name "emacs-link-hint") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/noctuid/link-hint.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-avy" ,emacs-avy))) - (home-page "https://github.com/noctuid/link-hint.el") - (synopsis "Vimperator-style link-hinting in Emacs") - (description "This package provides commands for visiting and acting on -links.") - (license license:gpl3+)))) - -(define-public emacs-ag - (package - (name "emacs-ag") - (version "0.48") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Wilfred/ag.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'install 'make-info - (lambda _ - (with-directory-excursion "docs" - (invoke "make" "info")))) - (add-after 'install 'install-info - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info (string-append out "/share/info"))) - (install-file "docs/_build/texinfo/agel.info" info) - #t)))))) - (native-inputs - `(("python-sphinx" ,python-sphinx) - ("texinfo" ,texinfo))) - (propagated-inputs - `(("dash" ,emacs-dash) - ("s" ,emacs-s) - ;; We need to use 'ag' as the executable on remote systems. - ("the-silver-searcher" ,the-silver-searcher))) - (home-page "https://github.com/Wilfred/ag.el") - (synopsis "Front-end for ag (the-silver-searcher) for Emacs") - (description "This package provides the ability to use the silver -searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features -include version control system awareness, use of Perl compatible regular -expressions, editing the search results directly and searching file names -rather than the contents of files.") - (license license:gpl3+))) - -(define-public emacs-async - (package - (name "emacs-async") - (home-page "https://github.com/jwiegley/emacs-async") - (version "1.9.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7")))) - (build-system emacs-build-system) - (synopsis "Asynchronous processing in Emacs") - (description - "This package provides the ability to call asynchronous functions and -processes. For example, it can be used to run dired commands (for copying, -moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used -as a library for other Emacs packages.") - (license license:gpl3+))) - -(define-public emacs-auctex - (package - (name "emacs-auctex") - (version "12.2.4") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "auctex-" version ".tar")) - (sha256 - (base32 "1yz2h692mr35zgqwlxdq8rzv8n0jixhpaqmbiki00hlysm4zh9py")))) - (build-system emacs-build-system) - ;; We use 'emacs' because AUCTeX requires dbus at compile time - ;; ('emacs-minimal' does not provide dbus). - (arguments - `(#:emacs ,emacs - #:include '("\\.el$" "^images/" "^latex/" "\\.info$") - #:exclude '("^tests/" "^latex/README") - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (etc-dir (string-append out "/share/" ,name "/" - ,version "/etc"))) - (with-directory-excursion "doc" - (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm - (invoke "pdftex" "tex-ref") - (install-file "tex-ref.pdf" - (string-append etc-dir "/refcards"))) - #t)))))) - (native-inputs - `(("perl" ,perl))) - (inputs - `(("texlive" ,(texlive-union (list texlive-amsfonts))))) - (home-page "https://www.gnu.org/software/auctex/") - (synopsis "Integrated environment for TeX") - (description - "AUCTeX is a comprehensive customizable integrated environment for -writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs -or XEmacs.") - (license license:gpl3+))) - -(define-public emacs-autothemer - (package - (name "emacs-autothemer") - (version "0.2.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sebastiansturm/autothemer") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/sebastiansturm/autothemer") - (synopsis "Conveniently create Emacs themes") - (description - "Autothemer provides a thin layer on top of @code{deftheme} and -@code{custom-theme-set-faces} that creates a new custom color theme, based on -a set of simplified face specifications and a user-supplied color palette") - (license license:gpl3+))) - -(define-public emacs-howm - (package - (name "emacs-howm") - (version "1.4.6") - (source - (origin - (method url-fetch) - (uri (string-append "https://howm.sourceforge.jp/a/" - "howm-" version ".tar.gz")) - (sha256 - (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5")))) - (build-system gnu-build-system) - (native-inputs - `(("emacs" ,emacs-minimal))) - (arguments - `(#:configure-flags - (list (string-append "--with-howmdir=" %output - "/share/emacs/site-lisp/")) - #:modules ((guix build gnu-build-system) - ((guix build emacs-build-system) #:prefix emacs:) - (guix build utils)) - #:imported-modules (,@%gnu-build-system-modules - (guix build emacs-build-system) - (guix build emacs-utils)) - #:phases - (modify-phases %standard-phases - (add-after 'install 'make-autoloads - (assoc-ref emacs:%standard-phases 'make-autoloads))))) - (home-page "https://howm.osdn.jp/") - (synopsis "Note-taking tool for Emacs") - (description "Howm is a note-taking tool for Emacs. Like -code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text -searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.") - (license license:gpl1+))) - -(define-public emacs-bm - (package - (name "emacs-bm") - (version "201905") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joodland/bm") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn")))) - (build-system emacs-build-system) - (home-page "https://github.com/joodland/bm") - (synopsis "Visual bookmarks for Emacs") - (description "This package provides visible, buffer local bookmarks and -the ability to jump forward and backward to the next bookmark.") - (license license:gpl2+))) - -(define-public emacs-calfw - (package - (name "emacs-calfw") - (version "1.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kiwanami/emacs-calfw") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-howm" ,emacs-howm))) - (home-page "https://github.com/kiwanami/emacs-calfw/") - (synopsis "Calendar framework for Emacs") - (description - "This package displays a calendar view with various schedule data in the -Emacs buffer.") - (license license:gpl3+))) - -(define-public emacs-caps-lock - (package - (name "emacs-caps-lock") - (version "1.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "caps-lock-" version ".el")) - (sha256 - (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva")))) - (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/caps-lock.html") - (synopsis "Caps Lock as a minor mode") - (description - "This package provides a minor mode to emulate the behavior of a Caps -Lock key.") - (license license:gpl3+))) - -(define-public emacs-chronometrist - (package - (name "emacs-chronometrist") - (version "0.5.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/contrapunctus-1/chronometrist.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0jz35972m372kx9x8mgf42zhzdw2w9wv2ri52chfb2fin4bh1biy")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir-elisp - ;; Elisp directory is not in root of the source. - (lambda _ - (chdir "elisp") - #t)) - (add-after 'install 'install-doc - ;; Documentation consists of several Markdown files. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out - "/share/doc/emacs-chronometrist-" - ,version))) - (with-directory-excursion "../doc" - (for-each (lambda (f) (install-file f doc)) - (cons* "../UNLICENSE" - "../WTFPL" - (find-files "." "\\.md$"))))) - #t))))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-s" ,emacs-s) - ("emacs-ts" ,emacs-ts))) - (home-page "https://github.com/contrapunctus-1/chronometrist") - (synopsis "Time tracker for Emacs") - (description "Chronometrist is a time tracker in Emacs, largely modelled -after the Android application, @emph{A Time Tracker}. - -Its features are: -@itemize -@item Simple and efficient to use, -@item Displays useful information about your time usage, -@item Support for both mouse and keyboard, -@item Human errors in tracking are easily fixed by editing a plain text file, -@item Hooks to let you perform arbitrary actions when starting/stopping tasks. -@end itemize") - ;; Software is dual-licensed. - (license (list license:unlicense license:wtfpl2)))) - -(define-public emacs-direnv - (package - (name "emacs-direnv") - (version "2.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/wbolster/emacs-direnv") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49")))) - (build-system emacs-build-system) - (propagated-inputs - `(("dash" ,emacs-dash) - ("with-editor" ,emacs-with-editor))) - (home-page "https://github.com/wbolster/emacs-direnv") - (synopsis "Direnv integration for Emacs") - (description - "This package provides support for invoking direnv to get the environment -for the current file and updating the environment within Emacs to match. - -Direnv can be invoked manually, and a global minor mode is included that will -update the environment when the active buffer changes. - -Using emacs-direnv means that programs started from Emacs will use the -environment set through Direnv.") - (license license:gpl3+))) - -(define-public emacs-elf-mode - (package - (name "emacs-elf-mode") - (version "0.1.0") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/abo-abo/elf-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k")))) - (build-system emacs-build-system) - (home-page "https://github.com/abo-abo/elf-mode") - (synopsis "Show symbol list when opening a binary file in Emacs") - (description "This Emacs package provides a command showing the symbols -that the binary uses instead of the actual binary contents.") - (license license:gpl3+))) - -(define-public emacs-form-feed - (package - (name "emacs-form-feed") - (version "0.2.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/wasamasa/form-feed") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2")))) - (build-system emacs-build-system) - (home-page "https://github.com/wasamasa/form-feed") - (synopsis "Display ^L glyphs as horizontal lines") - (description - "This package provides a minor mode @code{form-feed-mode} to display page -delimiters which usually appear as ^L glyphs on a single line as horizontal -lines spanning the entire window. The minor mode is suitable for inclusion -into mode hooks and is intended to be used that way.") - (license license:gpl3+))) - -(define-public emacs-ggtags - (package - (name "emacs-ggtags") - (version "0.8.13") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/ggtags-" - version ".el")) - (sha256 - (base32 - "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg")))) - (build-system emacs-build-system) - (inputs - `(("global" ,global))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (chmod "ggtags.el" #o644) - (emacs-substitute-variables "ggtags.el" - ("ggtags-executable-directory" - (string-append (assoc-ref inputs "global") "/bin"))) - #t))))) - (home-page "https://github.com/leoliu/ggtags") - (synopsis "Frontend to the GNU Global source code tagging system") - (description "@code{ggtags} provides a frontend to the GNU Global source -code tagging system. - -Features: - -@itemize -@item Build on @code{compile.el} for asynchronicity and its large feature-set. -@item Automatically update Global's tag files when needed with tuning for -large source trees. -@item Intuitive navigation among multiple matches with mode-line display of -current match, total matches and exit status. -@item Read tag with completion. -@item Show definition at point. -@item Jump to #include files. -@item Support search history and saving a search to register/bookmark. -@item Query replace. -@item Manage Global's environment variables on a per-project basis. -@item Highlight (definition) tag at point. -@item Abbreviated display of file names. -@item Support all Global search backends: @code{grep}, @code{idutils}, etc. -@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and -@code{pygments} backend. -@item Support all Global's output formats: @code{grep}, @code{ctags-x}, -@code{cscope} etc. -@item Support projects on remote hosts (e.g. via @code{tramp}). -@item Support eldoc. -@item Search @code{GTAGSLIBPATH} for references and symbols. -@end itemize\n") - (license license:gpl3+))) - -(define-public emacs-go-mode - (package - (name "emacs-go-mode") - (version "1.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dominikh/go-mode.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "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 - "This package provides go-mode, an Emacs mode for working with software -written in the Go programming language.") - (license license:bsd-3))) - -(define-public emacs-google-maps - (package - (name "emacs-google-maps") - (version "1.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jd/google-maps.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0")))) - (build-system emacs-build-system) - (home-page "https://github.com/jd/google-maps.el") - (synopsis "Access Google Maps from Emacs") - (description "The @code{google-maps} package displays Google -Maps directly inside Emacs.") - (license license:gpl3+))) - -(define-public emacs-graphviz-dot-mode - (package - (name "emacs-graphviz-dot-mode") - (version "0.4.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ppareit/graphviz-dot-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'install 'make-info - (lambda* (#:key inputs #:allow-other-keys) - (with-directory-excursion "texinfo" - (substitute* "Makefile" - (("\\/usr\\/bin\\/gzip") - (string-append (assoc-ref inputs "gzip") "/bin/gzip"))) - (invoke "make" - "clean" - "info" - (string-append "TEXINFODIR=" - (assoc-ref inputs "texinfo") - "/bin"))))) - (add-after 'install 'install-info - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info (string-append out "/share/info"))) - (install-file "texinfo/graphviz-dot-mode.info.gz" info) - #t)))))) - (native-inputs - `(("gzip" ,gzip) - ("texinfo" ,texinfo))) - (propagated-inputs - `(("emacs-company" ,emacs-company))) - (home-page "http://ppareit.github.com/graphviz-dot-mode") - (synopsis "Major mode for editing Graphviz DOT files") - (description - "This Emacs package helps you to create @file{.dot} or @file{.gv} files -using the DOT syntax, and use Graphviz to convert these files to diagrams.") - (license license:gpl2+))) - -(define-public emacs-imenu-list - (package - (name "emacs-imenu-list") - (version "0.8") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/bmag/imenu-list") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx")))) - (build-system emacs-build-system) - (home-page "https://github.com/bmag/imenu-list") - (synopsis - "Automatically tracks the current buffer's imenu entries") - (description - "This Emacs minor mode creates an automatically updated buffer called -@code{*Ilist*} that is populated with the current buffer's imenu entries. -This buffer is typically shown as a sidebar (Emacs vertically splits the -window).") - (license license:gpl3+))) - -(define-public emacs-mmm-mode - (package - (name "emacs-mmm-mode") - (version "0.5.8") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "mmm-mode-" version ".tar")) - (sha256 - (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4")))) - (build-system emacs-build-system) - (home-page "https://github.com/purcell/mmm-mode") - (synopsis "Allow multiple major modes in an Emacs buffer") - (description - "MMM Mode is a minor mode that allows multiple major modes to coexist in -a single buffer.") - (license license:gpl3+))) - -(define-public emacs-mmt - (package - (name "emacs-mmt") - (version "0.2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mrkkrp/mmt") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav")))) - (build-system emacs-build-system) - (home-page "https://github.com/mrkkrp/mmt") - (synopsis "Classic tools to write Emacs Lisp macros") - (description "Emacs MMT is a package that contains classic tools for Emacs -Lisp developers who want to write macros with convenience.") - (license license:gpl3+))) - -(define-public emacs-tablist - (package - (name "emacs-tablist") - (version "1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/politza/tablist") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy")))) - (build-system emacs-build-system) - (home-page "https://github.com/politza/tablist") - (synopsis "Extension for @code{tabulated-list-mode}") - (description "Tablist is the Emacs package that provides several -additional features to @code{tabulated-list-mode}: it adds marks, -filters, new key bindings and faces. It can be enabled by -@code{tablist-mode} or @code{tablist-minor-mode} commands.") - (license license:gpl3+))) - -(define-public emacs-djvu - (package - (name "emacs-djvu") - (version "1.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "djvu-" version ".el")) - (sha256 - (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7")))) - (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/djvu.html") - (synopsis "Edit and view Djvu files via djvused") - (description - "This package is a front end for the command-line program djvused from -DjVuLibre, see @url{http://djvu.sourceforge.net/}. It assumes you have the -programs @command{djvused}, @command{djview}, @command{ddjvu}, and -@command{djvm} installed.") - (license license:gpl3+))) - -(define-public emacs-pabbrev - (package - (name "emacs-pabbrev") - (version "4.2.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "pabbrev-" version ".el")) - (sha256 - (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh")))) - (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/pabbrev.html") - (synopsis "Predictive abbreviation expansion") - (description - "The code provides a abbreviation expansion for Emacs. It is -fairly similar to Dabbrev expansion, which works based on the contents -of the current buffer (or other buffers). - -Predictive abbreviation expansion works based on the previously -written text. Unlike dynamic abbreviation, the text is analysed -during idle time, while Emacs is doing nothing else.") - (license license:gpl3+))) - -(define-public emacs-pdf-tools - (package - (name "emacs-pdf-tools") - (version "0.90") - (home-page "https://github.com/politza/pdf-tools") - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; there are no tests - #:modules ((guix build gnu-build-system) - ((guix build emacs-build-system) #:prefix emacs:) - (guix build utils) - (guix build emacs-utils)) - #:imported-modules (,@%gnu-build-system-modules - (guix build emacs-build-system) - (guix build emacs-utils)) - #:phases - (modify-phases %standard-phases - ;; Build server side using 'gnu-build-system'. - (add-after 'unpack 'enter-server-dir - (lambda _ (chdir "server") #t)) - (add-after 'enter-server-dir 'autogen - (lambda _ - (invoke "bash" "autogen.sh"))) - - ;; Build emacs side using 'emacs-build-system'. - (add-after 'compress-documentation 'enter-lisp-dir - (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" - (string-append (assoc-ref outputs "out") - "/bin/epdfinfo"))) - ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto - ;; upgrading" that pdf-tools tries to perform. - (emacs-substitute-variables "pdf-tools.el" - ("pdf-tools-handle-upgrades" '())))) - (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path - (assoc-ref emacs:%standard-phases 'add-source-to-load-path)) - (add-after 'emacs-add-source-to-load-path 'emacs-install - (assoc-ref emacs:%standard-phases 'install)) - (add-after 'emacs-install 'emacs-build - (assoc-ref emacs:%standard-phases 'build)) - (add-after 'emacs-install 'emacs-make-autoloads - (assoc-ref emacs:%standard-phases 'make-autoloads))))) - (native-inputs `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config) - ("emacs" ,emacs-minimal))) - (inputs `(("poppler" ,poppler) - ("cairo" ,cairo) - ("glib" ,glib) - ("libpng" ,libpng) - ("zlib" ,zlib))) - (propagated-inputs `(("tablist" ,emacs-tablist))) - (synopsis "Emacs support library for PDF files") - (description - "PDF Tools is, among other things, a replacement of DocView for PDF -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.") - (license license:gpl3+))) - -(define-public emacs-dash - (package - (name "emacs-dash") - (version "2.17.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magnars/dash.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("./run-tests.sh"))) - (home-page "https://github.com/magnars/dash.el") - (synopsis "Modern list library for Emacs") - (description "This package provides a modern list API library for Emacs.") - (license license:gpl3+))) - -(define-public emacs-bui - (package - (name "emacs-bui") - (version "1.2.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://notabug.org/alezost/emacs-bui.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x")))) - (build-system emacs-build-system) - (propagated-inputs - `(("dash" ,emacs-dash))) - (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 -@code{info} interfaces to display an arbitrary data of the same -type, for example: packages, buffers, files, etc.") - (license license:gpl3+))) - -(define-public emacs-guix - (package - (name "emacs-guix") - (version "0.5.2") - (source (origin - (method url-fetch) - (uri (string-append "https://emacs-guix.gitlab.io/website/" - "releases/emacs-guix-" version ".tar.gz")) - (sha256 - (base32 - "0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Add support for Guile 3.0. Remove for versions > 0.5.2. - (substitute* "configure" - (("\"2\\.2 2\\.0\"") - "\"3.0 2.2 2.0\"")) - #t)))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config) - ("emacs" ,emacs-minimal))) - (inputs - `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile")) - ("guix" ,guix))) - (propagated-inputs - `(("geiser" ,emacs-geiser) - ("guile-gcrypt" ,guile-gcrypt) - ("dash" ,emacs-dash) - ("bui" ,emacs-bui) - ("edit-indirect" ,emacs-edit-indirect) - ("magit-popup" ,emacs-magit-popup))) - (home-page "https://emacs-guix.gitlab.io/website/") - (synopsis "Emacs interface for GNU Guix") - (description - "Emacs-Guix provides a visual interface, tools and features for the GNU -Guix package manager. Particularly, it allows you to do various package -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.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://notabug.org/alezost/emacs-build-farm.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz")))) - (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") - (version "2.0.10") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-undercover" ,emacs-undercover))) - (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode") - (synopsis "Emacs major mode for editing D code") - (description "This package provides an Emacs major mode for highlighting -code written in the D programming language. This mode is currently known to -work with Emacs 24 and 25.") - (license license:gpl2+))) - -(define-public emacs-extempore-mode - ;; Use the latest commit at time of packaging. There are no releases or tags. - (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e") - (revision "1")) - (package - (name "emacs-extempore-mode") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/extemporelang/extempore-emacs-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp")))) - (build-system emacs-build-system) - (home-page "https://github.com/extemporelang/extempore-emacs-mode") - (synopsis "Emacs major mode for Extempore source files") - (description - "This package provides a major mode for editing Extempore code. It can -create an Extempore REPL, connect the current @code{extempore-mode} buffer to a -running Extempore process, and more.") - (license license:bsd-2)))) - -(define-public emacs-kakoune - ;; Package has no release. Version is extracted from "Version:" keyword in - ;; main file. - (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d") - (revision "0")) - (package - (name "emacs-kakoune") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jmorag/kakoune.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-expand-region" ,emacs-expand-region) - ("emacs-multiple-cursors" ,emacs-multiple-cursors) - ("emacs-ryo-modal" ,emacs-ryo-modal))) - (home-page "https://github.com/jmorag/kakoune.el") - (synopsis "Emacs simple simulation, but not emulation, of Kakoune") - (description "This package provides many, but not all of the editing -primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very -shallow emulation, which seeks to do as little work as possible, leveraging -Emacs native editing commmands and the work of other packages wherever -possible.") - (license license:expat)))) - -(define-public emacs-keyfreq - (package - (name "emacs-keyfreq") - (version "20160516.716") - (source - (origin - (method url-fetch) - (uri (string-append "http://melpa.org/packages/keyfreq-" - version ".el")) - (sha256 - (base32 - "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8")))) - (build-system emacs-build-system) - (home-page "https://github.com/dacap/keyfreq") - (synopsis "Track Emacs command frequencies") - (description "@code{emacs-keyfeq} tracks and shows how many times you used -a command.") - (license license:gpl3+))) - -(define-public emacs-olivetti - (package - (name "emacs-olivetti") - (version "1.8.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rnkn/olivetti") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa")))) - (build-system emacs-build-system) - (home-page "https://github.com/rnkn/olivetti") - (synopsis "Emacs minor mode for a nice writing environment") - (description "This package provides an Emacs minor mode that puts writing -in the center.") - (license license:gpl3+))) - -(define-public emacs-undo-tree - (package - (name "emacs-undo-tree") - (version "0.7.4") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "undo-tree-" version ".el")) - (sha256 - (base32 "018ixl802f076sfyf4gkacpgrdpybin88jd8vq9zgyvc6x2dalfa")))) - (build-system emacs-build-system) - (home-page "http://www.dr-qubit.org/emacs.php") - (synopsis "Treat undo history as a tree") - (description - "Tree-like interface to Emacs undo system, providing -graphical tree presentation of all previous states of buffer that -allows easily move between them.") - (license license:gpl3+))) - -(define-public emacs-s - (package - (name "emacs-s") - (version "1.12.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magnars/s.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:emacs ,emacs ; FIXME: tests fail with emacs-minimal - #:test-command '("./run-tests.sh"))) - (home-page "https://github.com/magnars/s.el") - (synopsis "Emacs string manipulation library") - (description "This package provides an Emacs library for manipulating -strings.") - (license license:gpl3+))) - -(define-public emacs-symon - (package - (name "emacs-symon") - (version "20160630") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zk-phi/symon") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz")))) - (build-system emacs-build-system) - (home-page "https://github.com/zk-phi/symon") - (synopsis "Tiny graphical system monitor") - (description - "Tiny graphical system monitor for the Emacs minibuffer when idle.") - (license license:gpl2+))) - -(define-public emacs-sx - (let ((version "20191229") - (revision "0") - (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f")) - (package - (name "emacs-sx") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vermiculus/sx.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-markdown-mode" ,emacs-markdown-mode))) - (home-page "https://github.com/vermiculus/sx.el") - (synopsis "Emacs StackExchange client") - (description - "Emacs StackExchange client. Ask and answer questions on -Stack Overflow, Super User, and other StackExchange sites.") - (license license:gpl3+)))) - -(define-public emacs-toml-mode - (let ((version "0.1.3") - (revision "0") - (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06")) - (package - (name "emacs-toml-mode") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dryman/toml-mode.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57")))) - (build-system emacs-build-system) - (home-page "https://github.com/dryman/toml-mode.el") - (synopsis "Emacs major mode for editing TOML files") - (description - ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo - ;; parser does not currently support @comma{}, making it impossible - ;; to use commas in the @acronym arguments. - "This package provides a major mode for editing files in @dfn{TOML} -(Tom's Obvious, Minimal Language) data format.") - (license license:gpl3+)))) - -(define-public emacs-twittering-mode - (package - (name "emacs-twittering-mode") - (version "3.1.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/twmode" - "/twittering-mode-" version - "/twittering-mode-" version ".tar.xz")) - (sha256 - (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28")))) - (build-system emacs-build-system) - (home-page "http://twmode.sourceforge.net") - (synopsis "Emacs major mode for Twitter") - (description - "Twittering mode is an Emacs major mode for Twitter. -You can check timelines, tweet, mark posts as favorites and so on with -Emacs.") - (license license:gpl2+))) - -(define-public emacs-f - (package - (name "emacs-f") - (version "0.20.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rejeep/f.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-s" ,emacs-s) - ("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/rejeep/f.el") - (synopsis "Emacs API for working with files and directories") - (description "This package provides an Emacs library for working with -files and directories.") - (license license:gpl3+))) - -(define-public emacs-fountain-mode - (package - (name "emacs-fountain-mode") - (version "3.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rnkn/fountain-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s")))) - (build-system emacs-build-system) - (home-page "https://github.com/rnkn/fountain-mode") - (synopsis "Major mode for screenwriting in Fountain markup") - (description "Fountain Mode is a scriptwriting program for GNU Emacs -using the Fountain plain text markup format.") - (license license:gpl3+))) - -(define-public emacs-fringe-helper - (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd") - (revision "1")) - (package - (name "emacs-fringe-helper") - (version (git-version "1.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nschum/fringe-helper.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/nschum/fringe-helper.el") - (synopsis "Helper functions for fringe bitmaps") - (description - "This package allows fringe bitmaps to be defined with a visual string -representation.") - (license license:gpl2+)))) - -(define-public emacs-git-gutter - (package - (name "emacs-git-gutter") - (version "0.90") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syohex/emacs-git-gutter") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5")))) - (build-system emacs-build-system) - (home-page "https://github.com/syohex/emacs-git-gutter") - (synopsis "See and manage hunks of text in a version control system") - (description - "This package is an Emacs minor mode for displaying and interacting with -hunks of text managed in a version control system. Added modified and deleted -areas can be indicated with symbols on the edge of the buffer, and commands -can be used to move between and perform actions on these hunks. - -Git, Mercurial, Subversion and Bazaar are supported, and many parts of the -display and behaviour is easily customisable.") - (license license:gpl3+))) - -(define-public emacs-git-gutter-fringe - (let ((commit "16226caab44174301f1659f7bf8cc67a76153445") - (revision "1")) - (package - (name "emacs-git-gutter-fringe") - (version (git-version "0.23" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syohex/git-gutter-fringe") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-git-gutter" ,emacs-git-gutter) - ("emacs-fringe-helper" ,emacs-fringe-helper))) - (home-page "https://github.com/syohex/git-gutter-fringe") - (synopsis "See and manage hunks of text in a version control system") - (description - "This package extends @code{git-gutter} to use the fringe area of a -window.") - (license license:gpl3+)))) - -(define-public emacs-git-link - (package - (name "emacs-git-link") - (version "0.7.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sshaw/git-link") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/sshaw/git-link") - (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos") - (description - "@code{git-link} returns the URL for the current buffer's file location -at the current line number or active region. @code{git-link-commit} returns -the URL for a commit. URLs are added to the kill ring.") - (license license:gpl3+))) - -(define-public emacs-apheleia - (package - (name "emacs-apheleia") - (version "1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/raxod502/apheleia") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf")))) - (build-system emacs-build-system) - (home-page "https://github.com/raxod502/apheleia") - (synopsis "Reformat buffer stably") - (description - "This package allows for a buffer to be reformatted without moving point, -so that running a formatting tool like @code{Prettier} or @code{Black} upon -saving won't move point back to the beginning of the buffer.") - (license license:gpl3+))) - -(define-public emacs-git-timemachine - (package - (name "emacs-git-timemachine") - (version "4.11") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/pidu/git-timemachine.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-transient" ,emacs-transient))) - (home-page "https://gitlab.com/pidu/git-timemachine") - (synopsis "Step through historic versions of Git-controlled files") - (description "This package enables you to step through historic versions -of files under Git version control from within Emacs.") - (license license:gpl3+))) - -(define-public emacs-minitest - (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182") - (revision "1")) - (package - (name "emacs-minitest") - (version (git-version "0.8.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/arthurnn/minitest-emacs") - (commit commit))) - (file-name (git-file-name name commit)) - (sha256 - (base32 - "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1")))) - (build-system emacs-build-system) - (arguments - '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include) - #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f))) - (home-page "https://github.com/arthurnn/minitest-emacs") - (synopsis "Emacs minitest mode") - (description - "The minitest mode provides commands to run the tests for the current -file or line, as well as rerunning the previous tests, or all the tests for a -project. - -This package also includes relevant snippets for yasnippet.") - (license license:expat)))) - -(define-public emacs-el-mock - (package - (name "emacs-el-mock") - (version "1.25.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rejeep/el-mock.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7")))) - (build-system emacs-build-system) - (home-page "https://github.com/rejeep/el-mock.el") - (synopsis "Tiny mock and stub framework in Emacs Lisp") - (description - "Emacs Lisp Mock is a library for mocking and stubbing using readable -syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp -Expectations, but it can be used in other contexts.") - (license license:gpl3+))) - -(define-public emacs-espuds - (package - (name "emacs-espuds") - (version "0.3.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ecukes/espuds") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-s" ,emacs-s) - ("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f))) - (home-page "https://github.com/ecukes/espuds") - (synopsis "Common step definitions for Ecukes") - (description "Espuds is a collection of the most commonly used step -definitions for testing with the Ecukes framework.") - (license license:gpl3+))) - -(define-public emacs-spark - (let ((version "20160503") ; no proper tag, use date of commit - (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025") - (revision "1")) - (package - (name "emacs-spark") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alvinfrancis/spark") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1")))) - (build-system emacs-build-system) - (home-page "https://github.com/alvinfrancis/spark") - (synopsis "Sparkline generation library for Emacs Lisp") - (description "@code{emacs-spark} is a sparkline generation library for -Emacs Lisp. It generates a sparkline string given a list of numbers. It is a -port of @code{cl-spark} to Emacs Lisp.") - (license license:expat)))) - -(define-public emacs-es-mode - (package - (name "emacs-es-mode") - (version "4.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dakrone/es-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg")))) - (build-system emacs-build-system) - (propagated-inputs - ;; The version of org in Emacs 24.5 is not sufficient, and causes tables - ;; to be rendered incorrectly - `(("emacs-dash" ,emacs-dash) - ("emacs-org" ,emacs-org) - ("emacs-spark" ,emacs-spark))) - (home-page "https://github.com/dakrone/es-mode") - (synopsis "Major mode for editing Elasticsearch queries") - (description "@code{es-mode} includes highlighting, completion and -indentation support for Elasticsearch queries. Also supported are -@code{es-mode} blocks in @code{org-mode}, for which the results of queries can -be processed through @code{jq}, or in the case of aggregations, can be -rendered in to a table. In addition, there is an @code{es-command-center} -mode, which displays information about Elasticsearch clusters.") - (license license:gpl3+))) - -(define-public emacs-expand-region - (package - (name "emacs-expand-region") - (version "0.11.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magnars/expand-region.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35")))) - (build-system emacs-build-system) - (home-page "https://github.com/magnars/expand-region.el") - (synopsis "Increase selected region by semantic units") - (description - "Expand region increases the selected region by semantic units. Just -keep pressing the key until it selects what you want. There's also -@code{er/contract-region} if you expand too far.") - (license license:gpl3+))) - -(define-public emacs-fill-column-indicator - (package - (name "emacs-fill-column-indicator") - (version "1.90") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alpaker/Fill-Column-Indicator") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator") - (synopsis "Graphically indicate the fill column") - (description - "Fill-column-indicator graphically indicates the location of the fill -column by drawing a thin line down the length of the editing window.") - (license license:gpl3+))) - -(define-public emacs-grep-a-lot - (package - (name "emacs-grep-a-lot") - (version "1.0.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ZungBang/emacs-grep-a-lot") - (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad"))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw")))) - (build-system emacs-build-system) - (home-page "https://github.com/ZungBang/emacs-grep-a-lot") - (synopsis "Enables multiple grep buffers in Emacs") - (description - "This Emacs package allows managing multiple grep buffers.") - (license license:gpl3+))) - -(define-public emacs-fd - (package - (name "emacs-fd") - (version "0.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/yqrashawn/fd-dired") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y")))) - (build-system emacs-build-system) - (home-page "https://github.com/yqrashawn/fd-dired") - (synopsis "Dired-mode interface for fd result") - (description "This package provides a dired-mode interface for fd's -result.") - (license license:gpl3+))) - -(define-public emacs-rg - (package - (name "emacs-rg") - (version "1.8.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dajva/rg.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y")))) - (build-system emacs-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'hardcode-rg-path - ;; Hardcode the path to ripgrep. - (lambda _ - (let ((file "rg.el")) - (chmod file #o644) - (emacs-substitute-sexps file - ("(defcustom rg-executable" (which "rg"))))))))) - (propagated-inputs - `(("emacs-s" ,emacs-s) - ("emacs-wgrep" ,emacs-wgrep))) - (inputs - `(("ripgrep" ,ripgrep))) - (home-page "https://rgel.readthedocs.io/en/latest/") - (synopsis "Search tool based on @code{ripgrep}") - (description - "@code{rg} is an Emacs search package based on the @code{ripgrep} command -line tool. It allows one to interactively search based on the editing context -then refine or modify the search results.") - (license license:gpl3+))) - -(define-public emacs-inf-ruby - (package - (name "emacs-inf-ruby") - (version "2.5.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nonsequitur/inf-ruby") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v")))) - (build-system emacs-build-system) - (home-page "https://github.com/nonsequitur/inf-ruby") - (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs") - (description - "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing -for easy interaction with a ruby subprocess. Features include support for -detecting specific uses of Ruby, e.g. when using rails, and using a -appropriate console.") - (license license:gpl3+))) - -(define-public emacs-znc - (package - (name "emacs-znc") - (version "0.0.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://marmalade-repo.org/packages/znc-" - version ".el")) - (sha256 - (base32 - "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh")))) - (build-system emacs-build-system) - (home-page "https://github.com/sshirokov/ZNC.el") - (synopsis "Make ERC and ZNC get along better") - (description - "This is a thin wrapper around @code{erc} that enables one to use the ZNC -IRC bouncer with ERC.") - (license license:expat))) - -(define-public emacs-erc-status-sidebar - (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c") - (revision "1")) - (package - (name "emacs-erc-status-sidebar") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/drewbarbs/erc-status-sidebar") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-seq" ,emacs-seq))) - (home-page "https://github.com/drewbarbs/erc-status-sidebar") - (synopsis "Hexchat-like activity overview for ERC channels") - (description - "This package provides a Hexchat-like status bar for joined channels in -ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the -@code{erc-track} module, and displays all the same information -@code{erc-track} does in the mode line, but in an alternative format.") - (license license:expat)))) - -(define-public emacs-shut-up - (package - (name "emacs-shut-up") - (version "0.3.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cask/shut-up") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq")))) - (build-system emacs-build-system) - (home-page "https://github.com/cask/shut-up") - (synopsis "Silence Emacs") - (description "This package silences most output of Emacs when running an -Emacs shell script.") - (license license:expat))) - -(define-public emacs-undercover - (package - (name "emacs-undercover") - (version "0.6.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sviridov/undercover.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-shut-up" ,emacs-shut-up))) - (home-page "https://github.com/sviridov/undercover.el") - (synopsis "Test coverage library for Emacs Lisp") - (description - "Undercover is a test coverage library for software written in Emacs -Lisp.") - (license license:expat))) - -(define-public emacs-paren-face - (package - (name "emacs-paren-face") - (version "1.0.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tarsius/paren-face") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas")))) - (build-system emacs-build-system) - (home-page "https://github.com/tarsius/paren-face") - (synopsis "Face for parentheses in Lisp modes") - (description - "This library defines a face named @code{parenthesis} used just for -parentheses. The intended purpose of this face is to make parentheses less -visible in Lisp code by dimming them. Lispers probably don't need to be -constantly made aware of the existence of the parentheses. Dimming them might -be even more useful for people new to Lisp who have not yet learned to -subconsciously blend out the parentheses.") - (license license:gpl3+))) - -(define-public emacs-page-break-lines - (package - (name "emacs-page-break-lines") - (version "0.11") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/purcell/page-break-lines") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12")))) - (build-system emacs-build-system) - (home-page "https://github.com/purcell/page-break-lines") - (synopsis "Display page breaks as tidy horizontal lines") - (description - "This library provides a global mode which displays form feed characters -as horizontal rules.") - (license license:gpl3+))) - -(define-public emacs-simple-httpd - (package - (name "emacs-simple-httpd") - (version "1.5.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/skeeto/emacs-web-server") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb")))) - (build-system emacs-build-system) - (home-page "https://github.com/skeeto/emacs-web-server") - (synopsis "HTTP server in pure Emacs Lisp") - (description - "This package provides a simple HTTP server written in Emacs Lisp to -serve files and directory listings.") - (license license:unlicense))) - -(define-public emacs-skewer-mode - (package - (name "emacs-skewer-mode") - (version "1.8.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/skeeto/skewer-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-simple-httpd" ,emacs-simple-httpd) - ("emacs-js2-mode" ,emacs-js2-mode))) - (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$"))) - (home-page "https://github.com/skeeto/skewer-mode") - (synopsis "Live web development in Emacs") - (description - "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in -a web browser. Expressions are sent on-the-fly from an editing buffer to be -evaluated in the browser, just like Emacs does with an inferior Lisp process -in Lisp modes.") - (license license:unlicense))) - -(define-public emacs-litable - (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f")) - (package - (name "emacs-litable") - (version (git-version "0.1" "0" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Fuco1/litable") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/Fuco1/litable/") - (synopsis "Dynamic evaluation replacement with Emacs") - (description "This package provides dynamic evaluation in Emacs.") - (license license:gpl3+)))) - -(define-public emacs-literate-calc-mode - (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37") - (revision "0")) - (package - (name "emacs-literate-calc-mode") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sulami/literate-calc-mode.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-s" ,emacs-s))) - (home-page "https://github.com/sulami/literate-calc-mode.el") - (synopsis "Literate programming for Emacs Calc") - (description - "This library provides literate programming for Calc. There is both -a major and a minor mode. The major mode does some basic syntax highlighting, -while the minor mode only evaluates all Calc statements while typing. In -particular, the minor mode works quite well with Org or Markdown modes, or -other markup language major modes.") - (license license:gpl3+)))) - -(define-public emacs-string-inflection - (package - (name "emacs-string-inflection") - (version "1.0.6") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/akicho8/string-inflection") - (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k")))) - (build-system emacs-build-system) - (native-inputs - `(("ert-runner" ,emacs-ert-runner))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner"))) - (home-page "https://github.com/akicho8/string-inflection") - (synopsis "Convert symbol names between different naming conventions") - (description - "This Emacs package provides convenient methods for manipulating the -naming style of a symbol. It supports different naming conventions such as: - -@enumerate -@item camel case -@item Pascal case -@item all upper case -@item lower case separated by underscore -@item etc... -@end enumerate\n") - (license license:gpl2+))) - -(define-public emacs-stripe-buffer - (package - (name "emacs-stripe-buffer") - (version "0.2.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sabof/stripe-buffer") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk")))) - (build-system emacs-build-system) - (home-page "https://github.com/sabof/stripe-buffer/") - (synopsis "Add stripes to list buffers") - (description - "This Emacs package adds faces to add stripes to list buffers and org -tables.") - (license license:gpl2+))) - -(define-public emacs-org-beautify-theme - ;; Latest release (0.4) is not tagged, use commit hash. - (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738") - (revision "0")) - (package - (name "emacs-org-beautify-theme") - (version "0.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jonnay/org-beautify-theme") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y")))) - (build-system emacs-build-system) - (home-page "https://github.com/jonnay/org-beautify-theme") - (synopsis "Theme to make Org mode look more beautiful") - (description - "The theme adds padding between headings, increases the size of titles, -strike through completed TODO headings, changes Org blocks, changes Org check -boxes, and more.") - (license license:gpl3+)))) - -(define-public emacs-org-rich-yank - (package - (name "emacs-org-rich-yank") - (version "0.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/unhammer/org-rich-yank") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z")))) - (build-system emacs-build-system) - (home-page "https://github.com/unhammer/org-rich-yank") - (synopsis "Automatically surround source code pasted into Org with -@code{#+BEGIN_SRC} blocks") - (description - "This package provides a utility function for Org buffers that makes a -@code{_SRC} block with the appropriate language annotation for code that has -been copied from an Emacs major mode.") - (license license:gpl2+))) - -(define-public emacs-ob-erlang - (let ((revision "1") - (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333")) - (package - (name "emacs-ob-erlang") - (version (git-version "20180827" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xfwduke/ob-erlang") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij")))) - (build-system emacs-build-system) - (home-page "https://github.com/xfwduke/ob-erlang/") - (synopsis "Org-babel support for Erlang") - (description "This package adds support for working with Erlang code -blocks with @code{org-babel} in @code{org-mode}.") - (license license:gpl3+)))) - -(define-public emacs-ob-restclient - (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46")) - (package - (name "emacs-ob-restclient") - (version (git-version "0.02" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alf/ob-restclient.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy")))) - (propagated-inputs - `(("emacs-restclient" ,emacs-restclient))) - (build-system emacs-build-system) - (home-page "https://github.com/alf/ob-restclient.el") - (synopsis "Org-babel functionality for @code{restclient-mode}") - (description - "This package integrates @code{restclient-mode} with Org.") - (license license:gpl3+)))) - -(define-public emacs-org-now - (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91")) - (package - (name "emacs-org-now") - (version (git-version "0.1-pre" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alphapapa/org-now") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c")))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (build-system emacs-build-system) - (home-page "https://github.com/alphapapa/org-now") - (synopsis "Show current Org tasks in a sidebar") - (description - "This package provides commands to show Org headings in a sidebar -window while working on them. After defining one heading as the \"now\" -heading, other headings can be refiled to it with one command, and back to -their original location with another.") - (license license:gpl3+)))) - -(define-public emacs-rich-minority - (package - (name "emacs-rich-minority") - (version "1.0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Malabarba/rich-minority") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj")))) - (build-system emacs-build-system) - (home-page "https://github.com/Malabarba/rich-minority") - (synopsis "Clean-up and beautify the list of minor modes") - (description - "This Emacs package hides and/or highlights minor modes in the -mode-line.") - (license license:gpl2+))) - -(define-public emacs-robe - (package - (name "emacs-robe") - (version "0.8.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dgutov/robe") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn")))) - (build-system emacs-build-system) - (arguments - '(#:include (cons "^lib\\/" %default-include))) - (propagated-inputs - `(("emacs-inf-ruby" ,emacs-inf-ruby))) - (home-page "https://github.com/dgutov/robe") - (synopsis "Ruby code assistance tool for Emacs") - (description - "Robe can provide information on loaded classes and modules in Ruby code, -as well as where methods are defined. This allows the user to jump to method -definitions, modules and classes, display method documentation and provide -method and constant name completion.") - (license license:gpl3+))) - -(define-public emacs-robot-mode - (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0") - (revision "1")) - (package - (name "emacs-robot-mode") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - ;; A better maintained fork of robot-mode. - (url "https://github.com/jvalkeejarvi/robot-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-s" ,emacs-s))) - (home-page "https://github.com/jvalkeejarvi/robot-mode") - (synopsis "Emacs mode for Robot Framework") - (description "This major mode facilitates editing Robot Framework source -files with features such as syntax highlighting, comments, finding keywords, -completing keywords and smart indentation.") - (license license:gpl3+)))) - -(define-public emacs-rspec - (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20") - (revision "1")) - (package - (name "emacs-rspec") - (version (git-version "1.11" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pezra/rspec-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include) - #:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/pezra/rspec-mode") - (synopsis "Provides a rspec mode for working with RSpec") - (description - "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to -verify the spec associated with the current buffer, or entire project, as well -as moving between the spec files, and corresponding code files. - -Also included are keybindings for spec files and Dired buffers, as well as -snippets for yasnippet.") - (license license:gpl3+)))) - -(define-public emacs-smart-mode-line - (package - (name "emacs-smart-mode-line") - (version "2.13") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Malabarba/smart-mode-line") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-rich-minority" ,emacs-rich-minority))) - (home-page "https://github.com/Malabarba/smart-mode-line") - (synopsis "Color-coded smart mode-line") - (description - "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to -read from small to large monitors by using colors, a prefix feature, and smart -truncation.") - (license license:gpl2+))) - -(define-public emacs-sr-speedbar - (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47") - (revision "0")) - (package - (name "emacs-sr-speedbar") - (version (git-version "20161025" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacsorphanage/sr-speedbar") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/SrSpeedbar") - (synopsis "Same frame Emacs @code{speedbar}") - (description - "This Emacs package allows you to show @code{M-x speedbar} in the -same frame (in an extra window). You can customize the initial width of -the speedbar window.") - (license license:gpl3+)))) - -(define-public emacs-shell-switcher - (package - (name "emacs-shell-switcher") - (version "1.0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DamienCassou/shell-switcher") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria")))) - (build-system emacs-build-system) - (home-page "https://github.com/DamienCassou/shell-switcher") - (synopsis "Provide fast switching between shell buffers") - (description - "This package provides commands to quickly switch between shell buffers.") - (license license:gpl3+))) - -(define-public emacs-shx - (package - (name "emacs-shx") - (version "1.4.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/riscy/shx-for-emacs") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; A docstring provides examples of mapping hosts to programs in /bin. - ;; These examples are valid as-is. - (delete 'patch-el-files)) - #:tests? #t - #:test-command - '("emacs" "--batch" "--quiet" - "--script" "test/script.el"))) - (home-page "https://github.com/riscy/shx-for-emacs") - (synopsis "Extras for the comint-mode shell") - (description - "This package extends @code{comint-mode}: it parses markup in the output -stream, enabling plots and graphics to be embedded, and adds command-line -functions which plug into Emacs (e.g. use @code{:e } to edit a -file).") - (license license:gpl3+))) - -(define-public emacs-names - (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971") - (version "20151201.0") - (revision "8")) - (package - (name "emacs-names") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Malabarba/names") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz")))) - (build-system emacs-build-system) - (home-page "https://github.com/Malabarba/names/") - (synopsis "Namespace implementation for Emacs Lisp") - (description - "This package provides a macro that writes your namespaces for you.") - (license license:gpl3+)))) - -(define-public emacs-evil-leader - (package - (name "emacs-evil-leader") - (version "0.4.3") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/cofi/evil-leader") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5")))) - (inputs - `(("emacs-evil" ,emacs-evil))) - (build-system emacs-build-system) - (home-page "https://github.com/cofi/evil-leader") - (synopsis "Implement feature from Vim") - (description - "Evil Leader provides the @code{} feature from Vim that provides -an easy way to bind keys under a configurable prefix key.") - (license license:gpl3+))) - -(define-public emacs-evil-textobj-syntax - (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3") - (version "0") - (revision "1")) - (package - (name "emacs-evil-textobj-syntax") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/laishulu/evil-textobj-syntax/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil) - ("emacs-names" ,emacs-names))) - (home-page "https://github.com/laishulu/evil-textobj-syntax/") - (synopsis "Text objects based on syntax highlighting") - (description - "This package provides text objects for @code{evil-mode} with -boundaries defined by syntax highlighting.") - (license license:gpl3+)))) - -(define-public emacs-flycheck-flow - (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d") - (version "1.1") - (revision "1")) - (package - (name "emacs-flycheck-flow") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lbolla/emacs-flycheck-flow") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-flycheck" ,emacs-flycheck))) - (home-page "https://github.com/lbolla/emacs-flycheck-flow") - (synopsis "Flow support for @code{flycheck-mode}") - (description - "This package allows @code{flycheck-mode} to provide syntax-checking -for Flow files.") - (license license:gpl3+)))) - -(define-public emacs-flycheck-grammalecte - (package - (name "emacs-flycheck-grammalecte") - (version "1.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://git.deparis.io/" - "flycheck-grammalecte/snapshot/" - "flycheck-grammalecte-" version ".tar.xz")) - (sha256 - (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a")))) - (build-system emacs-build-system) - (arguments - `(#:include '("\\.(el|py)$") - #:exclude '("^test-profile.el$") - #:emacs ,emacs ;need libxml support - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'specify-python-location - ;; Hard-code python3 executable location in the library. - (lambda* (#:key inputs #:allow-other-keys) - (let ((python3 (string-append (assoc-ref inputs "python") - "/bin/python3"))) - (substitute* "flycheck-grammalecte.el" - (("\"python3") (string-append "\"" python3))) - (substitute* '("conjugueur.py" "flycheck-grammalecte.py") - (("/usr/bin/env python3?") python3)) - #t))) - (add-before 'build 'link-to-grammalecte - ;; XXX: The Python part of the package requires grammalecte, but - ;; the library is not specified in PYTHONPATH, since we're not - ;; using Python build system. As a workaround, we symlink - ;; grammalecte libraries here. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (grammalecte (assoc-ref inputs "grammalecte")) - (version ,(version-major+minor (package-version python)))) - (with-directory-excursion - (string-append out "/share/emacs/site-lisp") - (symlink (string-append grammalecte "/lib/" - "python" version "/site-packages/" - "grammalecte") - "grammalecte")) - #t)))))) - (inputs - `(("grammalecte" ,grammalecte) - ("python" ,python))) - (propagated-inputs - `(("emacs-flycheck" ,emacs-flycheck))) - (home-page "https://git.deparis.io/flycheck-grammalecte/") - (synopsis "Integrate Grammalecte with Flycheck") - (description - "Integrate the French grammar and typography checker Grammalecte with -Flycheck to automatically look for mistakes in your writings. It also -provides an easy way to find synonyms and antonyms for a given word (to avoid -repetitions for example).") - (license license:gpl3+))) - -(define-public emacs-flycheck-guile - (package - (name "emacs-flycheck-guile") - (version "0.2") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/flatwhatson/flycheck-guile") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5")))) - (propagated-inputs - `(("emacs-flycheck" ,emacs-flycheck) - ("emacs-geiser" ,emacs-geiser))) - (build-system emacs-build-system) - (home-page "https://github.com/flatwhatson/flycheck-guile") - (synopsis "GNU Guile support for Flycheck") - (description - "This package provides a Flycheck checker for GNU Guile using @code{guild -compile}.") - (license license:gpl3+))) - -(define-public emacs-flycheck-ledger - (package - (name "emacs-flycheck-ledger") - (version "0.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/purcell/flycheck-ledger.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50")))) - (inputs `(("ledger" ,ledger))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((ledger (assoc-ref inputs "ledger"))) - ;; Specify the absolute executable location of ledger. - (substitute* "flycheck-ledger.el" - (("\"ledger\"") (string-append "\"" ledger "\"")))) - #t))))) - (propagated-inputs - `(("emacs-flycheck" ,emacs-flycheck))) - (build-system emacs-build-system) - (home-page "https://github.com/purcell/flycheck-ledger") - (synopsis "Ledger support for Flycheck") - (description - "This Flycheck checker uses the output of @code{ledger balance} on the -current file to find errors such as unbalanced transactions and syntax -errors.") - (license license:gpl3+))) - -(define-public emacs-flycheck-rust - (package - (name "emacs-flycheck-rust") - (version "1.1") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/flycheck/flycheck-rust") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r")))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-flycheck" ,emacs-flycheck) - ("emacs-let-alist" ,emacs-let-alist))) - (build-system emacs-build-system) - (home-page "https://github.com/flycheck/flycheck-rust") - (synopsis "Rust/Cargo support for Flycheck") - (description - "This Flycheck extension configures Flycheck automatically for -the current Cargo project.") - (license license:gpl3+))) - -(define-public emacs-elisp-demos - (package - (name "emacs-elisp-demos") - (version "2020.02.19") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xuchunyang/elisp-demos") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc")))) - (build-system emacs-build-system) - (arguments - `(#:include '("\\.el$" "\\.org$") - #:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/xuchunyang/elisp-demos/") - (synopsis "Enhance @code{*Help*} buffers with additional examples") - (description - "This package injects example uses of Elisp functions into their -respective @code{*Help*} buffers.") - (license license:gpl3+))) - -(define-public emacs-docker-compose-mode - (package - (name "emacs-docker-compose-mode") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/meqif/docker-compose-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f))) - (home-page "https://github.com/meqif/docker-compose-mode/") - (synopsis "Major mode for editing @file{docker-compose} files") - (description - "This is a major mode for @file{docker-compose} files that provides -completion of relevant keywords.") - (license license:expat))) - -(define-public emacs-dvc - (let ((revision "591") ;no tags or official releases - (guix-revision "1")) - (package - (name "emacs-dvc") - (version (string-append "0.0.0-" guix-revision "." revision)) - (source - (origin - (method bzr-fetch) - (uri (bzr-reference - (url "lp:dvc") - (revision revision))) - (sha256 - (base32 - "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h")) - (file-name (string-append name "-" version "-checkout")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags - (list (string-append "--with-lispdir=" (assoc-ref %outputs "out") - "/share/emacs/site-lisp/")) - #:tests? #f ;no test suite - #:phases - (modify-phases %standard-phases - (add-before 'build 'set-home - ;; Something in dvc-bookmarks.el attempts to write config files in - ;; $HOME during the autoload generation. - (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t)) - (add-before 'build 'fix-texinfo - ;; See https://bugs.launchpad.net/dvc/+bug/1264383. - (lambda _ - (substitute* "texinfo/dvc-intro.texinfo" - (("@itemx update ``to''") - "@item update ``to''") - (("@itemx brief") - "@item brief") - (("@itemx full") - "@item full") - (("@itemx drop") - "@item drop") - (("@itemx left file") - "@item left file")) - #t))))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) ;for aclocal - ("emacs" ,emacs-minimal) - ("texinfo" ,texinfo))) - (home-page "http://xsteve.at/prg/emacs_dvc/index.html") - (synopsis "Emacs front-end for various distributed version control systems.") - (description "DVC is a legacy Emacs front-end for a number of -distributed version control systems. It currently supports GNU Arch, GNU -Bazaar, git, Mercurial, and Monotone. It also provides some integration with -Gnus, e.g., for applying patches received by email.") - (license license:gpl2+)))) - -(define-public emacs-sudo-edit - (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d") - (revision "6")) - (package - (name "emacs-sudo-edit") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nflath/sudo-edit") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl")))) - (build-system emacs-build-system) - (native-inputs - `(("emacs-undercover" ,emacs-undercover))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'fix-makefile - (lambda _ - (substitute* "Makefile" - (("\\$\\(CASK\\) exec ") "")) - #t))) - #:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/nflath/sudo-edit/") - (synopsis "Open files as another user") - (description - "This package allows editing files as another user, including the root -user.") - (license license:gpl3+)))) - -(define-public emacs-miniedit - (package - (name "emacs-miniedit") - (version "2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacsmirror/miniedit") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq")))) - (build-system emacs-build-system) - (home-page "https://github.com/emacsmirror/miniedit/") - (synopsis "Enhanced editing for minibuffer fields") - (description - "This package provides a function that can be called from the -minibuffer to enable editing the minibuffer input in another buffer with -@code{text-mode} enabled.") - (license license:gpl2+))) - -(define-public emacs-ob-ipython - (package - (name "emacs-ob-ipython") - (version "20180224") - (source (origin - (method git-fetch) - (uri (git-reference - (commit "7147455230841744fb5b95dcbe03320313a77124") - (url "https://github.com/gregsexton/ob-ipython"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-f" ,emacs-f))) - (home-page "http://www.gregsexton.org") - (synopsis "Org-Babel functions for IPython evaluation") - (description "This package adds support to Org-Babel for evaluating Python -source code using IPython.") - (license license:gpl3+))) - -(define-public emacs-debbugs - (package - (name "emacs-debbugs") - (version "0.25") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/debbugs-" - version ".tar")) - (sha256 - (base32 "0h0pxav170yzfpjf4vb8simiw67x9dkcjx9m4ghdk6wia25y8jni")))) - (build-system emacs-build-system) - (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) - (propagated-inputs - `(("emacs-async" ,emacs-async))) - (home-page "https://elpa.gnu.org/packages/debbugs.html") - (synopsis "Access the Debbugs bug tracker in Emacs") - (description - "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug -Tracker} from within Emacs. - -For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs, -and the command @code{M-x debbugs-gnu-search} for bug searching. If you -prefer the listing of bugs as TODO items of @code{org-mode}, you could use -@code{M-x debbugs-org} and related commands. - -A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug -Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.") - (license license:gpl3+))) - -(define-public emacs-ert-expectations - (package - (name "emacs-ert-expectations") - (version "0.2") - (source - (origin - (method url-fetch) - (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el") - (sha256 - (base32 - "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/ert-expectations.el") - (synopsis "Simple unit test framework for Emacs Lisp") - (description "@code{emacs-ert-expectations} is a simple unit test -framework for Emacs Lisp to be used with @code{ert}.") - (license license:gpl3+))) - -(define-public emacs-deferred - (package - (name "emacs-deferred") - (version "0.5.1") - (home-page "https://github.com/kiwanami/emacs-deferred") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-shell - ;; Setting the SHELL environment variable is required for the tests - ;; to find sh. - (lambda _ - (setenv "SHELL" (which "sh")) - #t)) - (add-before 'check 'fix-makefile - (lambda _ - (substitute* "Makefile" - (("\\$\\(CASK\\) exec ") "")) - #t))) - #:tests? #t - #:test-command '("make" "test"))) - (native-inputs - `(("emacs-ert-expectations" ,emacs-ert-expectations) - ("emacs-undercover" ,emacs-undercover) - ("ert-runner" ,emacs-ert-runner))) - (synopsis "Simple asynchronous functions for Emacs Lisp") - (description - "The @code{deferred.el} library provides support for asynchronous tasks. -The API is almost the same as that of -@uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library -for asynchronous tasks.") - (license license:gpl3+))) - -(define-public emacs-butler - (package - (name "emacs-butler") - (version "0.2.4") - (home-page "https://github.com/AshtonKem/Butler") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-deferred" ,emacs-deferred))) - (synopsis "Emacs client for Jenkins") - (description - "Butler provides an interface to connect to Jenkins continuous -integration servers. Users can specify a list of server in the -@code{butler-server-list} variable and then use @code{M-x butler-status} to -view the build status of those servers' build jobs, and possibly to trigger -build jobs.") - (license license:gpl3+))) - -(define-public emacs-company - (package - (name "emacs-company") - (version "0.9.13") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "company-" version ".tar")) - (sha256 - (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw")))) - (build-system emacs-build-system) - (home-page "https://company-mode.github.io/") - (synopsis "Modular text completion framework") - (description - "Company is a modular completion mechanism. Modules for retrieving -completion candidates are called back-ends, modules for displaying them are -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-company-posframe - (let ((version "0.1.0") - (revision "1") - (commit "67d899502384fb9ab2870aba0af41523dea7b64f")) - (package - (name "emacs-company-posframe") - (version (git-version version revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/company-posframe") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-company" ,emacs-company) - ("emacs-posframe" ,emacs-posframe))) - (home-page "https://github.com/tumashu/company-posframe") - (synopsis "Use a posframe for @code{emacs-company}'s candidate menu") - (description - "Allows @code{emacs-company} to use child frames for its candidate menus. - -@code{emacs-company-posframe} is fast enough for daily use and supports CJK -languages.") - (license license:gpl3+)))) - -(define-public emacs-irony-mode - (package - (name "emacs-irony-mode") - (version "1.4.0") - (home-page "https://github.com/Sarcasm/irony-mode") - (source (origin - (method git-fetch) - (uri (git-reference - (url (string-append home-page ".git")) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i")))) - (build-system emacs-build-system) - (inputs `(("server" ,emacs-irony-mode-server))) - (arguments `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (chmod "irony.el" #o644) - (emacs-substitute-variables "irony.el" - ("irony-server-install-prefix" - (assoc-ref inputs "server"))) - #t))))) - (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 -resistant 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))) - (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") - (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") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996")))) - (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") - (commit "0df5831eaae264a25422b061eb2792aadde8b3f2"))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd")))) - (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 - ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason, - ;; so we use the latest 2.2.0 commit instead - (let ((commit "479676cade80a9f03802ca3d956591820ed5c537") - (revision "1")) - (package - (name "emacs-company-quickhelp") - (version (git-version "2.2.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/expez/company-quickhelp") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-pos-tip" ,emacs-pos-tip) - ("emacs-company" ,emacs-company))) - (home-page "https://github.com/expez/company-quickhelp") - (synopsis "Popup documentation for completion candidates") - (description "@code{company-quickhelp} shows documentation for the -completion candidate when using the Company text completion framework.") - (license license:gpl3+)))) - -(define-public emacs-math-symbol-lists - (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb") - (revision "1")) - (package - (name "emacs-math-symbol-lists") - (version (git-version "1.2.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vspinu/math-symbol-lists") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm")))) - (build-system emacs-build-system) - (home-page "https://github.com/vspinu/math-symbol-lists") - (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands") - (description "This is a storage package used by completion engines like -@code{company-math}.") - (license license:gpl3+)))) - -(define-public emacs-company-coq - (package - (name "emacs-company-coq") - (version "1.0.1") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/cpitclaudel/company-coq") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b")))) - (inputs - `(("emacs-company" ,emacs-company) - ("emacs-company-math" ,emacs-company-math) - ("emacs-dash" ,emacs-dash) - ("emacs-yasnippet" ,emacs-yasnippet))) - (build-system emacs-build-system) - (home-page "https://github.com/cpitclaudel/company-coq") - (synopsis "Emacs extensions for Proof General's Coq mode") - (description "This package includes a collection of Company mode backends -for Proof-General's Coq mode, and many useful extensions to Proof-General. It -features: - -@itemize -@item Prettification of operators, types, and subscripts, -@item Auto-completion, -@item Insertion of cases, -@item Fully explicit intros, -@item Outlines, code folding, and jumping to definition, -@item Help with errors, -@item and more. -@end itemize") - (license license:gpl3+))) - -(define-public emacs-company-math - (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9") - (revision "1")) - (package - (name "emacs-company-math") - (version (git-version "1.3" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vspinu/company-math") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists) - ("emacs-company" ,emacs-company))) - (home-page "https://github.com/vspinu/company-math") - (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags") - (description "This package provides a backend for use with -@code{company-mode} allowing for completion of common math symbols.") - (license license:gpl3+)))) - -(define-public emacs-compdef - (let ((commit "67104a38763cc819644f711248b170a43bce151b") - (revision "2")) - (package - (name "emacs-compdef") - (version (git-version "0.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/jjzmajic/compdef.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg")))) - (build-system emacs-build-system) - (home-page "https://gitlab.com/jjzmajic/compdef") - (synopsis "Set local completion backends") - (description "This package provides a function to cleanly set local -completion backends according to mode, and integrates with -@code{use-package}.") - (license license:gpl3+)))) - -(define-public emacs-icomplete-vertical - (package - (name "emacs-icomplete-vertical") - (version "0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/oantolin/icomplete-vertical") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90")))) - (build-system emacs-build-system) - (home-page "https://github.com/oantolin/icomplete-vertical") - (synopsis "Display icomplete candidates vertically") - (description - "This package defines a global minor mode to display Icomplete -completion candidates vertically.") - (license license:gpl3+))) - -(define-public emacs-handle - (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab") - (revision "2")) - (package - (name "emacs-handle") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/jjzmajic/handle.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-parent-mode" ,emacs-parent-mode))) - (home-page "https://gitlab.com/jjzmajic/handle") - (synopsis "Handle generic functions across related major modes") - (description "This package provides generic functions that specialize on -major modes and intended purpose rather than on arguments. Different -callables for tasks like expression evaluation, definition-jumping, and more -can now be grouped accordingly and tried in sequence until one of them -succeeds.") - (license license:gpl3+)))) - -(define-public emacs-nswbuff - (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc") - (revision "1")) - (package - (name "emacs-nswbuff") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joostkremers/nswbuff") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma")))) - (build-system emacs-build-system) - (home-page "https://github.com/joostkremers/nswbuff") - (synopsis "Quickly switch between buffers") - (description "This package allows for navigating between buffers within -a customizable list.") - (license license:gpl3+)))) - -(define-public emacs-phi-search - (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c") - (revision "1")) - (package - (name "emacs-phi-search") - (version (git-version "20160630" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zk-phi/phi-search") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x")))) - (build-system emacs-build-system) - (home-page "https://github.com/zk-phi/phi-search") - (synopsis "Interactive search compatible with @code{multiple-cursors}") - (description "This package can be used with @code{multiple-cursors} to -provide an incremental search that moves all fake cursors in sync.") - (license license:gpl2+)))) - -(define-public emacs-phi-search-mc - (let ((commit "7aa671910f766437089aec26c3aa7814222d1356") - (revision "1")) - (package - (name "emacs-phi-search-mc") - (version (git-version "2.2.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/knu/phi-search-mc.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-phi-search" ,emacs-phi-search) - ("emacs-multiple-cursors" ,emacs-multiple-cursors))) - (home-page "https://github.com/knu/phi-search-mc.el") - (synopsis "Extend @code{phi-search} with additional -@code{multiple-cursors} functionality") - (description "This package provides further integration between -@code{multiple-cursors} and @code{phi-search}, a package that allows for -interactive searches to move multiple fake cursors.") - (license license:bsd-2)))) - -(define-public emacs-multiple-cursors - (package - (name "emacs-multiple-cursors") - (version "1.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magnars/multiple-cursors.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss")))) - (build-system emacs-build-system) - (home-page "https://github.com/magnars/multiple-cursors.el") - (synopsis "Multiple cursors for Emacs") - (description - "This package adds support to Emacs for editing text with multiple -simultaneous cursors.") - (license license:gpl3+))) - -(define-public emacs-mc-extras - (let ((commit "053abc52181b8718559d7361a587bbb795faf164") - (revision "1")) - (package - (name "emacs-mc-extras") - (version (git-version "1.2.4" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/knu/mc-extras.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-multiple-cursors" ,emacs-multiple-cursors))) - (home-page "https://github.com/knu/mc-extras.el") - (synopsis "Extra functions for manipulating multiple cursors") - (description - "This package provides additional functions for -@code{multiple-cursors}, including functions for marking s-expressions, -comparing characters, removing cursors, and more.") - (license license:bsd-2)))) - -(define-public emacs-typo - (package - (name "emacs-typo") - (version "1.1") - (home-page "https://github.com/jorgenschaefer/typoel") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2")))) - (build-system emacs-build-system) - (synopsis "Minor mode for typographic editing") - (description - "This package provides two Emacs modes, @code{typo-mode} and -@code{typo-global-mode}. These modes automatically insert Unicode characters -for quotation marks, dashes, and ellipses. For example, typing @kbd{\"} -automatically inserts a Unicode opening or closing quotation mark, depending -on context.") - (license license:gpl3+))) - -(define-public emacs-company-lsp - (package - (name "emacs-company-lsp") - (version "2.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tigersoldier/company-lsp") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-lsp-mode" ,emacs-lsp-mode) - ("emacs-company" ,emacs-company) - ("emacs-s" ,emacs-s) - ("emacs-dash" ,emacs-dash))) - (native-inputs - `(("emacs-buttercup" ,emacs-buttercup))) - (arguments - `(#:tests? #t - #:test-command '("buttercup" "-L" "."))) - (home-page "https://github.com/tigersoldier/company-lsp") - (synopsis "Completion for @code{lsp-mode}") - (description - "This package provides completion features that are not possible with -@code{lsp-mode} and @code{company-capf} alone, including support for trigger -characters and asynchronous fetching of completion candidates.") - (license license:gpl3+))) - -(define-public emacs-scala-mode - (package - (name "emacs-scala-mode") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hvesalai/emacs-scala-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv")))) - (build-system emacs-build-system) - (home-page "https://github.com/hvesalai/emacs-scala-mode") - (synopsis "Emacs major mode for Scala") - (description - "This package provides basic Emacs support for the Scala language, -including: local indenting of code, comments and multi-line strings, motion -commands and highlighting.") - ;; There are no copyright headers in the source code. The LICENSE file - ;; indicates GPL3. - (license license:gpl3))) - -(define-public emacs-scheme-complete - (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5")) - (package - (name "emacs-scheme-complete") - (version (string-append "20151223." (string-take commit 8))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ashinn/scheme-complete") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x")) - (patches - (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch")))) - (build-system emacs-build-system) - (home-page "https://github.com/ashinn/scheme-complete") - (synopsis "Smart tab completion for Scheme in Emacs") - (description - "This file provides a single function, @code{scheme-smart-complete}, -which you can use for intelligent, context-sensitive completion for any Scheme -implementation in Emacs. To use it just load this file and bind that function -to a key in your preferred mode.") - (license license:public-domain)))) - -(define-public emacs-scel - (let ((version "20170629") - (revision "1") - (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b")) - (package - (name "emacs-scel") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/supercollider/scel") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw")))) - (build-system emacs-build-system) - (arguments - `(#:modules ((guix build emacs-build-system) - ((guix build cmake-build-system) #:prefix cmake:) - (guix build utils)) - #:imported-modules (,@%emacs-build-system-modules - (guix build cmake-build-system)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "el/CMakeLists.txt" - (("share/emacs/site-lisp/SuperCollider") - (string-append - "share/emacs/site-lisp"))) - ((assoc-ref cmake:%standard-phases 'configure) - #:outputs outputs - #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF")))) - (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path - (lambda _ - (setenv "EMACSLOADPATH" - (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH"))) - #t)) - (replace 'install (assoc-ref cmake:%standard-phases 'install))))) - (inputs - `(("supercollider" ,supercollider))) - (native-inputs - `(("cmake" ,cmake-minimal))) - (home-page "https://github.com/supercollider/scel") - (synopsis "SuperCollider Emacs interface") - (description "@code{emacs-scel} is an Emacs interface to SuperCollider. -SuperCollider is a platform for audio synthesis and algorithmic composition.") - (license license:gpl2+)))) - -(define-public emacs-company-auctex - (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25") - (revision "1")) - (package - (name "emacs-company-auctex") - (version (git-version "0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alexeyr/company-auctex") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-yasnippet" ,emacs-yasnippet) - ("emacs-auctex" ,emacs-auctex) - ("emacs-company" ,emacs-company))) - (home-page "https://github.com/alexeyr/company-auctex/") - (synopsis "Completion for @code{AUCTeX}") - (description - "This package provides a group of backends permitting auto-completion -for @code{AUCTeX}.") - (license license:gpl3+)))) - -(define-public emacs-mit-scheme-doc - (package - (name "emacs-mit-scheme-doc") - (version "20140203") - (source - (origin - (modules '((guix build utils))) - (snippet - ;; keep only file of interest - '(begin - (for-each delete-file '("dot-emacs.el" "Makefile")) - (install-file "6.945-config/mit-scheme-doc.el" ".") - (delete-file-recursively "6.945-config") - #t)) - (file-name (string-append name "-" version ".tar.bz2")) - (method url-fetch) - (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/" - "6.945/dont-panic/emacs-basic-config.tar.bz2")) - (sha256 - (base32 - "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1")))) - (build-system emacs-build-system) - (inputs `(("mit-scheme" ,mit-scheme))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure-doc - (lambda* (#:key inputs #:allow-other-keys) - (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme")) - (doc-dir (string-append mit-scheme-dir "/share/doc/" - "mit-scheme-" - ,(package-version mit-scheme)))) - (substitute* "mit-scheme-doc.el" - (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/") - (string-append "file:" doc-dir "/mit-scheme-ref/"))))))))) - (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/") - (synopsis "MIT-Scheme documentation lookup for Emacs") - (description - "This package provides a set of Emacs functions to search definitions of -identifiers in the MIT-Scheme documentation.") - (license license:gpl2+))) - -(define-public emacs-constants - (package - (name "emacs-constants") - (version "2.6") - (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fedeinthemix/emacs-constants") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0")))) - (build-system emacs-build-system) - (synopsis "Enter definition of constants into an Emacs buffer") - (description - "This package provides functions for inserting the definition of natural -constants and units into an Emacs buffer.") - (license license:gpl2+))) - -(define-public emacs-tagedit - (package - (name "emacs-tagedit") - (version "1.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magnars/tagedit") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-s" ,emacs-s) - ("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/magnars/tagedit") - (synopsis "Some paredit-like features for html-mode") - (description - "This package provides a collection of paredit-like functions for editing -in @code{html-mode}.") - (license license:gpl3+))) - -(define-public emacs-slime - (package - (name "emacs-slime") - (version "2.25") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/slime/slime") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0rz54943cbs9lvpc8hnyw5ka60f3bi8x4xykk8pq0lpmv1zbij1x")))) - (build-system emacs-build-system) - (native-inputs - `(("texinfo" ,texinfo))) - (arguments - `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib") - #:exclude '("^slime-tests.el" "^contrib/test/" - "^contrib/Makefile$" "^contrib/README.md$") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) - (add-before 'install 'configure - (lambda* _ - (emacs-substitute-variables "slime.el" - ("inferior-lisp-program" "sbcl")) - #t)) - (add-before 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info-dir (string-append out "/share/info")) - (doc-dir (string-append out "/share/doc/" - ,name "-" ,version)) - (doc-files '("doc/slime-refcard.pdf" - "README.md" "NEWS" "PROBLEMS" - "CONTRIBUTING.md"))) - (with-directory-excursion "doc" - (substitute* "Makefile" - (("infodir=/usr/local/info") - (string-append "infodir=" info-dir))) - (invoke "make" "html/index.html") - (invoke "make" "slime.info") - (install-file "slime.info" info-dir) - (copy-recursively "html" (string-append doc-dir "/html"))) - (for-each (lambda (f) - (install-file f doc-dir) - (delete-file f)) - doc-files) - (delete-file-recursively "doc") - #t)))))) - (home-page "https://github.com/slime/slime") - (synopsis "Superior Lisp Interaction Mode for Emacs") - (description - "SLIME extends Emacs with support for interactive programming in -Common Lisp. The features are centered around @command{slime-mode}, -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 (list license:gpl2+ license:public-domain)))) - -(define-public emacs-popup - (package - (name "emacs-popup") - (version "0.5.8") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/auto-complete/popup-el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl")))) - (build-system emacs-build-system) - (home-page "https://github.com/auto-complete/popup-el") - (synopsis "Visual Popup User Interface for Emacs") - (description - "Popup.el is a visual popup user interface library for Emacs. -This provides a basic API and common UI widgets such as popup tooltips -and popup menus.") - (license license:gpl3+))) - -(define-public emacs-python-environment - (package - (name "emacs-python-environment") - (version "0.0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tkf/emacs-python-environment/") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-deferred" ,emacs-deferred))) - (home-page "https://github.com/tkf/emacs-python-environment") - (synopsis "Provides a @code{virtualenv} API in Emacs Lisp") - (description - "This package permits automated installation of tools written in Python.") - (license license:gpl3+))) - -(define-public emacs-jedi - (package - (name "emacs-jedi") - (version "0.2.8") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tkf/emacs-jedi/") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1")))) - (build-system emacs-build-system) - (native-inputs - `(("emacs-mocker" ,emacs-mocker))) - (propagated-inputs - `(("emacs-auto-complete" ,emacs-auto-complete) - ("emacs-python-environment" ,emacs-python-environment) - ("emacs-epc" ,emacs-epc))) - (home-page "https://github.com/tkf/emacs-jedi") - (synopsis "Provides Python completion in Emacs") - (description - "This package provides completion in Python buffers and also helps find -the locations of docstrings, arguments, and functions.") - (license license:gpl3+))) - -(define-public emacs-company-jedi - (package - (name "emacs-company-jedi") - (version "0.04") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syohex/emacs-company-jedi") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-jedi" ,emacs-jedi) - ("emacs-company" ,emacs-company))) - (home-page "https://github.com/syohex/emacs-company-jedi") - (synopsis "Provides Python completion in @code{company-mode}") - (description - "This package provides a Company backend for Python.") - (license license:gpl3+))) - -(define-public emacs-puppet-mode - (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2") - (revision "1")) - (package - (name "emacs-puppet-mode") - ;; The last release, 0.3 was several years ago, and there have been many - ;; commits since - (version (git-version "0.3" revision commit)) - (source - (origin - (method url-fetch) - (uri (string-append - "https://raw.githubusercontent.com/voxpupuli/puppet-mode/" - commit "/puppet-mode.el")) - (sha256 - (base32 - "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm")))) - (build-system emacs-build-system) - (home-page "https://github.com/voxpupuli/puppet-mode") - (synopsis "Emacs major mode for the Puppet configuration language") - (description - "This package provides support for the Puppet configuration language, -including syntax highlighting, indentation of expressions and statements, -linting of manifests and integration with Puppet Debugger.") - ;; Also incorporates work covered by the Apache License, Version 2.0 - (license license:gpl3+)))) - -(define-public emacs-god-mode - (package - (name "emacs-god-mode") - (version "2.17.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/chrisdone/god-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi")))) - (build-system emacs-build-system) - (home-page "https://github.com/chrisdone/god-mode") - (synopsis "Minor mode for entering commands without modifier keys") - (description - "This package provides a global minor mode for entering Emacs commands -without modifier keys. It's similar to Vim's separation of commands and -insertion mode. When enabled all keys are implicitly prefixed with -@samp{C-} (among other helpful shortcuts).") - (license license:gpl3+))) - -(define-public emacs-jinja2-mode - (package - (name "emacs-jinja2-mode") - (version "0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/paradoxxxzero/jinja2-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381")))) - (build-system emacs-build-system) - (home-page "https://github.com/paradoxxxzero/jinja2-mode") - (synopsis "Major mode for jinja2") - (description - "Emacs major mode for jinja2 with: syntax highlighting, -sgml/html integration, and indentation (working with sgml).") - (license license:gpl3+))) - -(define-public emacs-company-cabal - ;; The latest version is 0.3.0, but no release has been provided after 0.2.1. - (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d") - (revision "1")) - (package - (name "emacs-company-cabal") - (version (git-version "0.3.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/iquiw/company-cabal/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-company" ,emacs-company))) - (arguments - `(#:include (cons "^tools\\/" %default-include))) - (home-page "https://github.com/iquiw/company-cabal/") - (synopsis "Company completion for Haskell Cabal files") - (description - "This package allows for completion of field names, section names, -field values, and more within @code{haskell-cabal-mode}.") - (license license:gpl3+)))) - -(define-public emacs-rfcview - (package - (name "emacs-rfcview") - (version "0.13") - (home-page "http://www.loveshack.ukfsn.org/emacs") - (source (origin - (method url-fetch) - (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el") - (sha256 - (base32 - "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz")))) - (build-system emacs-build-system) - (synopsis "Prettify Request for Comments (RFC) documents") - (description "The Internet Engineering Task Force (IETF) and the Internet -Society (ISOC) publish various Internet-related protocols and specifications -as \"Request for Comments\" (RFC) documents and Internet Standard (STD) -documents. RFCs and STDs are published in a simple text form. This package -provides an Emacs major mode, rfcview-mode, which makes it more pleasant to -read these documents in Emacs. It prettifies the text and adds -hyperlinks/menus for easier navigation. It also provides functions for -browsing the index of RFC documents and fetching them from remote servers or -local directories.") - (license license:gpl3+))) - -(define-public emacs-ffap-rfc-space - (package - (name "emacs-ffap-rfc-space") - (version "12") - (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html") - (source (origin - (method url-fetch) - (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el") - (sha256 - (base32 - "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck")))) - (build-system emacs-build-system) - (synopsis "Make ffap recognize an RFC with a space before its number") - (description "The Internet Engineering Task Force (IETF) and the -Internet Society (ISOC) publish various Internet-related protocols and -specifications as \"Request for Comments\" (RFC) documents. The -built-in Emacs module \"ffap\" (Find File at Point) has the ability to -recognize names at point which look like \"RFC1234\" and \"RFC-1234\" -and load the appropriate RFC from a remote server. However, it fails -to recognize a name like \"RFC 1234\". This package enhances ffap so -that it correctly finds RFCs even when a space appears before the -number.") - (license license:gpl3+))) - -(define-public emacs-feature-mode - (let ((version "20190801") - (revision "1") - (commit "11ae1671629bfedaa553c7b819676d64eb320992")) - (package - (name "emacs-feature-mode") - (version (git-version version revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/michaelklishin/cucumber.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/" - %default-include))) - (home-page "https://github.com/michaelklishin/cucumber.el/") - (synopsis "Emacs mode for editing Gherkin plain text user stories") - (description "Major mode for editing Gherkin (popularized by the -Cucumber tool) user stories. Also known by the name @code{cucumber.el}.") - (license license:gpl2+)))) - -(define-public emacs-org-bullets - (package - (name "emacs-org-bullets") - (version "0.2.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sabof/org-bullets") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w")))) - (build-system emacs-build-system) - (home-page "https://github.com/sabof/org-bullets") - (synopsis "Show bullets in org-mode as UTF-8 characters") - (description - "This package provides an Emacs minor mode causing bullets in -@code{org-mode} to be rendered as UTF-8 characters.") - (license license:gpl3+))) - -(define-public emacs-org-drill - (package - (name "emacs-org-drill") - (version "2.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/phillord/org-drill") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-org" ,emacs-org) - ("emacs-persist" ,emacs-persist))) - (home-page "https://gitlab.com/phillord/org-drill") - (synopsis "Flash card memorization system using Org mode") - (description - "This package uses spaced repetition algorithms to conduct interactive -drill sessions to aid in memorization. In these sessions you are shown flash -cards created in Org mode.") - (license license:gpl3+))) - -(define-public emacs-org-superstar - (package - (name "emacs-org-superstar") - (version "1.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/integral-dw/org-superstar-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-org" ,emacs-org))) - (home-page "https://github.com/integral-dw/org-superstar-mode") - (synopsis "Prettify headings and plain lists in Org mode") - (description "This package prettifies headings and plain lists in -Org mode. It is a direct descendant of @code{org-bullets}, with most -of the code base completely rewritten. - -Currently, this package prettifies Org heading lines by: -@itemize -@item replacing trailing bullets by UTF-8 bullets, -@item hiding leading stars, customizing their look or removing them from vision, -@item applying a custom face to the header bullet, -@item applying a custom face to the leading bullets, -@item using double-bullets for inline tasks, -@item (optional) using special bullets for TODO keywords. -@end itemize - -It also prettifies Org plain list bullets by: -@itemize -@item replacing each bullet type (*, + and -) with UTF-8 bullets, -@item applying a custom face to item bullets. -@end itemize - -Features degrade gracefully when viewed from terminal.") - (license license:gpl3+))) - -(define-public emacs-org-pomodoro - ;; Last release version was from 2016. - (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479") - (revision "1")) - (package - (name "emacs-org-pomodoro") - (version (git-version "2.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/marcinkoziej/org-pomodoro") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-alert" ,emacs-alert))) - (arguments - `(#:include (cons "^resources\\/" %default-include) - #:tests? #t - #:test-command '("emacs" "--batch" - "-l" "org-pomodoro-tests.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - (modify-phases %standard-phases - (add-before 'check 'make-tests-writable - (lambda _ - (make-file-writable "org-pomodoro-tests.el") - #t)) - (add-before 'check 'add-require - (lambda _ - (emacs-batch-edit-file "org-pomodoro-tests.el" - `(progn (progn (goto-char (point-min)) - (re-search-forward - "ert-deftest") - (beginning-of-line) - (forward-line -1) - (insert "(require 'org-pomodoro)")) - (basic-save-buffer))) - #t))))) - (home-page "https://github.com/marcinkoziej/org-pomodoro") - (synopsis "Pomodoro technique for org-mode") - (description "@code{emacs-org-pomodoro} adds very basic support for -Pomodoro technique in Emacs org-mode. - -Run @code{M-x org-pomodoro} for the task at point or select one of the -last tasks that you clocked time for. Each clocked-in pomodoro starts -a timer of 25 minutes and after each pomodoro a break timer of 5 -minutes is started automatically. Every 4 breaks a long break is -started with 20 minutes. All values are customizable.") - (license license:gpl3+)))) - -(define-public emacs-org-sidebar - (package - (name "emacs-org-sidebar") - (version "0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alphapapa/org-sidebar") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-org-super-agenda" ,emacs-org-super-agenda) - ("emacs-org" ,emacs-org) - ("emacs-org-ql" ,emacs-org-ql) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/alphapapa/org-sidebar") - (synopsis "Helpful sidebar for Org buffers") - (description "This package provides a sidebar for Org buffers. At the -top is a chronological list of scheduled and deadlined tasks in the current -buffer (similar to the Org agenda ,but without all its features), and below -that is a list of all other non-done to-do items. If the buffer is narrowed, -the sidebar only shows items in the narrowed portion; this allows seeing an -overview of tasks in a subtree.") - (license license:gpl3+))) - -(define-public emacs-org-trello - (package - (name "emacs-org-trello") - (version "0.8.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/org-trello/org-trello") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-deferred" ,emacs-deferred) - ("emacs-f" ,emacs-f) - ("emacs-helm" ,emacs-helm) - ("emacs-request" ,emacs-request) - ("emacs-s" ,emacs-s))) - (home-page "https://org-trello.github.io") - (synopsis "Emacs minor mode for interacting with Trello") - (description "This package provides an Emacs minor mode to extend -@code{org-mode} with Trello abilities. Trello is an online project -organizer.") - (license license:gpl3+))) - -(define-public emacs-org-tanglesync - (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f") - (revision "2")) - (package - (name "emacs-org-tanglesync") - (version (git-version "0.6" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mtekman/org-tanglesync.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-org" ,emacs-org))) - (home-page "https://github.com/mtekman/org-tanglesync.el") - (synopsis "Sync Org source blocks with tangled external files") - (description "This package automatically pulls changes from source code -to their corresponding tangled blocks.") - (license license:gpl3+)))) - -(define-public emacs-company-flow - (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16") - (revision "1")) - (package - (name "emacs-company-flow") - (version (git-version "0.1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/aaronjensen/company-flow/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-company" ,emacs-company) - ("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/aaronjensen/company-flow/") - (synopsis "Flow backend for @code{company-mode}") - (description - "This package provides completion for JavaScript files utilizing Flow.") - (license license:gpl3+)))) - -(define-public emacs-atom-one-dark-theme - (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2") - (revision "0")) - (package - (name "emacs-atom-one-dark-theme") - (version (git-version "0.4.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jonathanchu/atom-one-dark-theme") - (commit commit))) - (sha256 - (base32 - "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (home-page "https://github.com/jonathanchu/atom-one-dark-theme") - (synopsis "Atom One Dark color theme for Emacs") - (description "An Emacs port of the Atom One Dark theme from Atom.io.") - (license license:gpl3+)))) - -(define-public emacs-zenburn-theme - (package - (name "emacs-zenburn-theme") - (version "2.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bbatsov/zenburn-emacs") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f")))) - (build-system emacs-build-system) - (home-page "https://github.com/bbatsov/zenburn-emacs") - (synopsis "Low contrast color theme for Emacs") - (description - "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs. -It is built on top of the custom theme support in Emacs 24 or later.") - (license license:gpl3+))) - -(define-public emacs-moe-theme-el - (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f") - (version "1.0") - (revision "1")) - (package - (name "emacs-moe-theme-el") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kuanyui/moe-theme.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc")))) - (build-system emacs-build-system) - (home-page "https://github.com/kuanyui/moe-theme.el") - (synopsis "Anime-inspired color themes") - (description - "This package provides vibrant color schemes with light and dark -variants.") - (license license:gpl3+)))) - -(define-public emacs-solarized-theme - (package - (name "emacs-solarized-theme") - (version "1.3.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bbatsov/solarized-emacs/") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/bbatsov/solarized-emacs") - (synopsis "Port of the Solarized theme for Emacs") - (description - "Solarized for Emacs is a port of the Solarized theme for Vim. This -package provides a light and a dark variant.") - (license license:gpl3+))) - -(define-public emacs-poet-theme - (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4") - (revision "0")) - (package - (name "emacs-poet-theme") - (version (git-version "0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kunalb/poet") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz")))) - (build-system emacs-build-system) - (home-page "https://github.com/kunalb/poet/") - (synopsis "Emacs theme for prose") - (description - "Emacs has very good support for multiple fonts in a single file. Poet -uses this support to make it much more convenient to write prose within Emacs, -with particular attention paid to @code{org-mode} and @code{markdown-mode}. -Code blocks, tables, etc are formatted in monospace text with the appropriate -backgrounds.") - (license license:expat)))) - -(define-public emacs-ahungry-theme - (package - (name "emacs-ahungry-theme") - (version "1.10.0") - (source - (origin (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-" - version ".tar")) - (sha256 - (base32 - "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm")))) - (build-system emacs-build-system) - (home-page "https://github.com/ahungry/color-theme-ahungry") - (synopsis "Ahungry color theme for Emacs") - (description "Ahungry theme for Emacs provides bright and bold colors. -If you load it from a terminal, you will be able to make use of the -transparent background. If you load it from a GUI, it will default to a -dark background.") - (license license:gpl3+))) - -(define-public emacs-gruvbox-theme - (package - (name "emacs-gruvbox-theme") - (version "1.28.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/greduan/emacs-theme-gruvbox") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-autothemer" ,emacs-autothemer))) - (home-page "https://github.com/greduan/emacs-theme-gruvbox") - (synopsis "Gruvbox is a retro groove color scheme ported from Vim") - (description - "Gruvbox is heavily inspired by badwolf, jellybeans and solarized. - -Designed as a bright theme with pastel 'retro groove' colors and light/dark -mode switching in the way of solarized. The main focus when developing gruvbox -is to keep colors easily distinguishable, contrast enough and still pleasant -for the eyes.") - (license license:expat))) ; MIT license - -(define-public emacs-spacegray-theme - (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97") - (revision "0")) - (package - (name "emacs-spacegray-theme") - (version (git-version "0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bruce/emacs-spacegray-theme") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n")))) - (build-system emacs-build-system) - (home-page "https://github.com/bruce/emacs-spacegray-theme") - (synopsis "Port of Sublime Text's Spacegray theme for Emacs") - (description - "@code{spacegray-theme} is an Emacs port of the Spacegray theme from -Sublime Text. It features a dark blue/gray background and soft blue, green, -orange and red as accent colors.") - (license license:expat)))) ; MIT license - -(define-public emacs-2048-game - (package - (name "emacs-2048-game") - (version "20151026.1233") - (source - (origin - (method url-fetch) - (uri (string-append "https://melpa.org/packages/2048-game-" - version ".el")) - (sha256 - (base32 - "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd")))) - (build-system emacs-build-system) - (home-page "https://hg.sr.ht/~zck/game-2048") - (synopsis "Implementation of the game 2048 in Emacs Lisp") - (description - "This program is an implementation of 2048 for Emacs. -The goal of this game is to create a tile with value 2048. The size of the -board and goal value can be customized.") - (license license:gpl3+))) - -(define-public emacs-chess - (package - (name "emacs-chess") - (version "2.0.4") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "chess-" version ".tar")) - (sha256 - (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-pieces - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (pieces - (string-append out "/share/emacs/site-lisp/pieces"))) - (mkdir-p pieces) - (copy-recursively "pieces" pieces) - #t)))))) - (home-page "https://elpa.gnu.org/packages/chess.html") - (synopsis "Play chess in GNU Emacs") - (description - "Chess is an Emacs Lisp library and several clients on top of the -underlying library functionality for performing various activities related to -the game of chess.") - (license license:gpl3+))) - -(define-public emacs-4clojure - ;; There is no release. Base version is extracted from Version keyword in - ;; the main file. - (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9") - (revision "1")) - (package - (name "emacs-4clojure") - (version (git-version "0.2.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacsorphanage/4clojure") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-request" ,emacs-request))) - (home-page "https://github.com/emacsorphanage/4clojure/") - (synopsis "Open and evaluate 4clojure questions in Emacs") - (description "Emacs 4clojure interacts with -@url{http://www.4clojure.com, 4clojure} problems. You can open a specific -question and move to the next or previous one. You can also verify your -answers.") - (license license:gpl3+)))) - -(define-public emacs-base16-theme - (package - (name "emacs-base16-theme") - (version "2.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/belak/base16-emacs") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6")))) - (build-system emacs-build-system) - (home-page "https://github.com/belak/base16-emacs") - (synopsis "Base16 color themes for Emacs") - (description - "Base16 provides carefully chosen syntax highlighting and a default set -of sixteen colors suitable for a wide range of applications. Base16 is not a -single theme but a set of guidelines with numerous implementations.") - (license license:expat))) - -(define-public emacs-solaire-mode - (package - (name "emacs-solaire-mode") - (version "1.0.9") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hlissner/emacs-solaire-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg")))) - (build-system emacs-build-system) - (home-page "https://github.com/hlissner/emacs-solaire-mode") - (synopsis "Change background of file-visiting buffers in Emacs") - (description - "@code{solaire-mode} is inspired by editors which visually distinguish -code-editing windows from sidebars, popups, terminals, ecetera. It changes the -background of file-visiting buffers (and certain aspects of the UI) to make -them easier to distinguish from other, less important buffers.") - (license license:expat))) - -(define-public emacs-prescient - (package - (name "emacs-prescient") - (version "5.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/raxod502/prescient.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-company" ,emacs-company) - ("emacs-ivy" ,emacs-ivy) - ("emacs-selectrum" ,emacs-selectrum))) - (home-page "https://github.com/raxod502/prescient.el/") - (synopsis "Emacs library for sorting and filtering candidates") - (description - "Prescient is a library for sorting and filtering, as well as extensions -for Ivy and Company that make use of the library.") - (license license:expat))) - -(define-public emacs-selectrum - (package - (name "emacs-selectrum") - (version "2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/raxod502/selectrum") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4")))) - (build-system emacs-build-system) - (home-page "https://github.com/raxod502/selectrum/") - (synopsis "Incremental narrowing in Emacs") - (description "Selectrum is a solution for incremental narrowing in -Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based -on choosing the right abstractions and prioritizing consistency and -predictability over special-cased improvements for particular cases. -As such, Selectrum follows existing Emacs conventions where they exist -and are reasonable, and it declines to implement features which have -marginal benefit compared to the additional complexity of a new -interface.") - (license license:expat))) - -(define-public emacs-smartparens - (package - (name "emacs-smartparens") - (version "1.11.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Fuco1/smartparens") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-markdown-mode" ,emacs-markdown-mode))) - (home-page "https://github.com/Fuco1/smartparens") - (synopsis "Paredit-like insertion, wrapping and navigation with user -defined pairs") - (description - "Smartparens is a minor mode for Emacs that deals with parens pairs -and tries to be smart about it. It started as a unification effort to -combine functionality of several existing packages in a single, -compatible and extensible way to deal with parentheses, delimiters, tags -and the like. Some of these packages include autopair, textmate, -wrap-region, electric-pair-mode, paredit and others. With the basic -features found in other packages it also brings many improvements as -well as completely new features.") - (license license:gpl3+))) - -(define-public emacs-highlight-symbol - ;; We prefer a more recent commit that provides an option to squelch - ;; echo-area alerts that can drown out useful information like eldoc - ;; messages. - (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a") - (version "1.3") - (revision "1")) - (package - (name "emacs-highlight-symbol") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nschum/highlight-symbol.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96")))) - (build-system emacs-build-system) - (home-page "https://nschum.de/src/emacs/highlight-symbol/") - (synopsis "Automatic and manual symbol highlighting for Emacs") - (description - "Use @code{highlight-symbol} to toggle highlighting of the symbol at -point throughout the current buffer. Use @code{highlight-symbol-mode} to keep -the symbol at point highlighted. - -The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev}, -@code{highlight-symbol-next-in-defun} and -@code{highlight-symbol-prev-in-defun} allow for cycling through the locations -of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key -bindings @code{M-p} and @code{M-p} for navigation. When -@code{highlight-symbol-on-navigation-p} is set, highlighting is triggered -regardless of @code{highlight-symbol-idle-delay}. - -@code{highlight-symbol-query-replace} can be used to replace the symbol. ") - (license license:gpl2+)))) - -(define-public emacs-symbol-overlay - (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc") - (revision "1")) - (package - (name "emacs-symbol-overlay") - (version (git-version "4.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/wolray/symbol-overlay") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7")))) - (build-system emacs-build-system) - (home-page "https://github.com/wolray/symbol-overlay") - (synopsis "Highlight symbols and perform various search operations on them") - (description - "This package provides functions for highlighting and navigating -between symbols.") - (license license:gpl3+)))) - -(define-public emacs-hl-todo - (package - (name "emacs-hl-todo") - (version "3.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tarsius/hl-todo") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls")))) - (build-system emacs-build-system) - (home-page "https://github.com/tarsius/hl-todo") - (synopsis "Emacs mode to highlight TODO and similar keywords") - (description - "This package provides an Emacs mode to highlight TODO and similar -keywords in comments and strings. This package also provides commands for -moving to the next or previous keyword and to invoke @code{occur} with a -regexp that matches all known keywords.") - (license license:gpl3+))) - -(define-public emacs-perspective - (package - (name "emacs-perspective") - (version "2.9") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nex3/perspective-el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1hmbczw3b7k2xdqcy5p3xnf2781gjw6bqqcwc5r9myg6b8p3pr7m")))) - (build-system emacs-build-system) - (home-page "https://github.com/nex3/perspective-el") - (synopsis "Switch between named \"perspectives\"") - (description - "This package provides tagged workspaces in Emacs, similar to workspaces in -windows managers such as Awesome and XMonad. @code{perspective.el} provides -multiple workspaces (or \"perspectives\") for each Emacs frame. Each -perspective is composed of a window configuration and a set of buffers. -Switching to a perspective activates its window configuration, and when in a -perspective only its buffers are available by default.") - ;; This package is released under the same license as Emacs (GPLv3+) or - ;; the Expat license. - (license license:gpl3+))) - -(define-public emacs-persp-mode - (package - (name "emacs-persp-mode") - (version "2.9.8") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Bad-ptr/persp-mode.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g")))) - (build-system emacs-build-system) - (home-page "https://github.com/Bad-ptr/persp-mode.el") - (synopsis "Switch between named \"perspectives\" shared among frames") - (description - "This package extends @code{perspective.el} to enable perspectives that -can be saved to and restored from a file.") - (license license:gpl2+))) - -(define-public emacs-test-simple - (package - (name "emacs-test-simple") - (version "1.3.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/test-simple-" - version ".el")) - (sha256 - (base32 - "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz")))) - (build-system emacs-build-system) - (home-page "https://github.com/rocky/emacs-test-simple") - (synopsis "Simple unit test framework for Emacs Lisp") - (description - "Test Simple is a simple unit test framework for Emacs Lisp. It -alleviates the need for context macros, enclosing specifications or required -test tags. It supports both interactive and non-interactive use.") - (license license:gpl3+))) - -(define-public emacs-load-relative - (package - (name "emacs-load-relative") - (version "1.3.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/load-relative-" - version ".el")) - (sha256 - (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj")))) - (build-system emacs-build-system) - (home-page "https://github.com/rocky/emacs-load-relative") - (synopsis "Emacs Lisp relative file loading related functions") - (description - "Provides functions which facilitate writing multi-file Emacs packages -and running from the source tree without having to \"install\" code or fiddle -with @{load-path}. - -The main function, @code{load-relative}, loads an Emacs Lisp file relative to -another (presumably currently running) Emacs Lisp file.") - (license license:gpl3+))) - -(define-public emacs-loc-changes - (package - (name "emacs-loc-changes") - (version "1.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/loc-changes-" - version ".el")) - (sha256 - (base32 - "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3")))) - (build-system emacs-build-system) - (home-page "https://github.com/rocky/emacs-loc-changes") - (synopsis "Keeps track of positions even after buffer changes") - (description - "This Emacs package provides a mean to track important buffer positions -after buffer changes.") - (license license:gpl3+))) - -(define-public emacs-realgud - (package - (name "emacs-realgud") - (version "1.5.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/realgud/realgud/") - (commit version))) - (sha256 - (base32 - "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-realgud:run-process-void-error - ;; See: https://github.com/realgud/realgud/issues/269. - (lambda _ - (substitute* '("realgud/debugger/gdb/gdb.el" - "realgud/debugger/gub/gub.el") - (("^\\(require 'load-relative\\).*" anchor) - (string-append anchor - "(require-relative-list \ -'(\"../../common/run\") \"realgud:\")\n"))) - #t)) - (add-after 'unpack 'fix-autogen-script - (lambda _ - (substitute* "autogen.sh" - (("./configure") "sh configure")) - #t)) - (add-after 'fix-autogen-script 'autogen - (lambda _ - (setenv "CONFIG_SHELL" "sh") - (invoke "sh" "autogen.sh"))) - (add-after 'fix-autogen-script 'set-home - (lambda _ - (setenv "HOME" (getenv "TMPDIR")) - #t)) - (add-before 'patch-el-files 'remove-realgud-pkg.el - (lambda _ - ;; FIXME: `patch-el-files' crashes on this file with error: - ;; unable to locate "bashdb". - (delete-file "./test/test-regexp-bashdb.el") - #t))) - #:include (cons* ".*\\.el$" %default-include))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("emacs-test-simple" ,emacs-test-simple))) - (propagated-inputs - `(("emacs-load-relative" ,emacs-load-relative) - ("emacs-loc-changes" ,emacs-loc-changes))) - (home-page "https://github.com/realgud/realgud/") - (synopsis - "Modular front-end for interacting with external debuggers") - (description - "RealGUD is a modular, extensible GNU Emacs front-end for interacting -with external debuggers. It integrates various debuggers such as gdb, pdb, -ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the -sources. Unlike GUD, it also supports running multiple debug sessions in -parallel.") - (license license:gpl3+))) - -(define-public emacs-request - (package - (name "emacs-request") - (version "0.3.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tkf/emacs-request") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #f)) ; requires network access. - (propagated-inputs - `(("emacs-deferred" ,emacs-deferred))) - (home-page "https://github.com/tkf/emacs-request") - (synopsis "Package for speaking HTTP in Emacs Lisp") - (description "This package provides a HTTP request library with multiple -backends. It supports url.el which is shipped with Emacs and the curl command -line program.") - (license license:gpl3+))) - -(define-public emacs-rudel - (package - (name "emacs-rudel") - (version "0.3.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/rudel-" - version ".tar")) - (sha256 - (base32 - "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz")))) - (build-system emacs-build-system) - (home-page "http://rudel.sourceforge.net/") - (synopsis "Collaborative editing framework") - (description - "Rudel is a collaborative editing environment for GNU Emacs. Its purpose -is to share buffers with other users in order to edit the contents of those -buffers collaboratively. Rudel supports multiple backends to enable -communication with other collaborative editors using different protocols, -though currently Obby (for use with the Gobby editor) is the only -fully-functional one.") - (license license:gpl3+))) - -(define-public emacs-hydra - (package - (name "emacs-hydra") - (version "0.15.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/hydra") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/abo-abo/hydra") - (synopsis "Make Emacs bindings that stick around") - (description - "This package can be used to tie related commands into a family of short -bindings with a common prefix---a Hydra. Once you summon the Hydra (through -the prefixed binding), all the heads can be called in succession with only a -short extension. Any binding that isn't the Hydra's head vanquishes the -Hydra. Note that the final binding, besides vanquishing the Hydra, will still -serve its original purpose, calling the command assigned to it. This makes -the Hydra very seamless; it's like a minor mode that disables itself -automatically.") - (license license:gpl3+))) - -(define-public emacs-interleave - (package - (name "emacs-interleave") - (version "1.4.0") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/rudolfochrist/interleave") - (commit (string-append "interleave-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb")))) - (build-system emacs-build-system) - (home-page "https://github.com/rudolfochrist/interleave") - (synopsis "Emacs minor mode to interleave notes and text books") - (description - "Interleave is a minor mode that presents a document viewer side -by side to an Org buffer with your notes relevant to the current page.") - (license license:gpl3+))) - -(define-public emacs-ivy - (package - (name "emacs-ivy") - (version "0.13.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar")) - (sha256 - (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-hydra" ,emacs-hydra))) - (home-page "https://github.com/abo-abo/swiper") - (synopsis "Incremental vertical completion for Emacs") - (description - "This package provides @code{ivy-read} as an alternative to -@code{completing-read} and similar functions. No attempt is made to determine -the best candidate. Instead, the user can navigate candidates with -@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by -splitting the input text by spaces and re-building it into a regular -expression.") - (license license:gpl3+))) - -(define-public emacs-counsel - (package - (name "emacs-counsel") - (version "0.13.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "counsel-" version ".el")) - (sha256 - (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-swiper" ,emacs-swiper))) - (home-page "https://github.com/abo-abo/swiper") - (synopsis "Various completion functions using Ivy") - (description - "Just call one of the interactive functions in a file to complete the -corresponding thing using Ivy. - -The following completions are currently available: -@itemize -@item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++. -@item Describe functions for Elisp: function, variable, library, command, -@item bindings, theme. -@item Navigation functions: imenu, ace-line, semantic, outline. -@item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout. -@item Grep utilities: grep, ag, pt, recoll, ack, rg. -@item System utilities: process list, rhythmbox, linux-app. -@item Many more. -@end itemize") - (license license:gpl3+))) - -(define-public emacs-swiper - (package - (name "emacs-swiper") - (version "0.13.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "swiper-" version ".el")) - (sha256 - (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ivy" ,emacs-ivy))) - (home-page "https://github.com/abo-abo/swiper") - (synopsis "Isearch with an overview") - (description - "This package gives an overview of the current regex search candidates. -The search regex can be split into groups with a space. Each group is -highlighted with a different face. - -It can double as a quick `regex-builder', although only single lines will be -matched.") - (license license:gpl3+))) - -(define-public emacs-ivy-xref - (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547") - (revision "1")) - (package - (name "emacs-ivy-xref") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alexmurray/ivy-xref") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ivy" ,emacs-ivy))) - (home-page "https://github.com/alexmurray/ivy-xref") - (synopsis "Ivy interface for @code{xref}") - (description "This package provides an Ivy interface for selecting from -@code{xref} results.") - (license license:gpl3)))) - -(define-public emacs-ivy-pass - (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5") - (revision "1")) - (package - (name "emacs-ivy-pass") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ecraven/ivy-pass") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ivy" ,emacs-ivy) - ("emacs-password-store" ,emacs-password-store) - ("password-store" ,password-store))) - (home-page "https://github.com/ecraven/ivy-pass") - (synopsis "Ivy interface for password store (pass)") - (description "This package provides an Ivy interface for working with -the password store @code{pass}.") - (license license:gpl3)))) - -(define-public emacs-ivy-yasnippet - (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd") - (revision "2")) - (package - (name "emacs-ivy-yasnippet") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mkcms/ivy-yasnippet") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ivy" ,emacs-ivy) - ("emacs-yasnippet" ,emacs-yasnippet) - ("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/mkcms/ivy-yasnippet") - (synopsis "Preview @code{yasnippets} with @code{ivy}") - (description "This package allows you to select @code{yasnippet} -snippets using @code{ivy} completion. When current selection changes in the -minibuffer, the snippet contents are temporarily expanded in the buffer. To -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 - ;; The latest release version has a small mistake that has since been fixed, - ;; so we use a more recent commit. - (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3") - (revision "2")) - (package - (name "emacs-ivy-rich") - (version (git-version "0.1.4" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Yevgnen/ivy-rich") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y")))) - (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") - (version "0.5.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/avy") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/abo-abo/avy") - (synopsis "Tree-based completion for Emacs") - (description - "This package provides a generic completion method based on building a -balanced decision tree with each candidate being a leaf. To traverse the tree -from the root to a desired leaf, typically a sequence of @code{read-key} can -be used. - -In order for @code{read-key} to make sense, the tree needs to be visualized -appropriately, with a character at each branch node. So this completion -method works only for things that you can see on your screen, all at once, -such as the positions of characters, words, line beginnings, links, or -windows.") - (license license:gpl3+))) - -(define-public emacs-ace-window - (package - (name "emacs-ace-window") - (version "0.10.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/ace-window") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-avy" ,emacs-avy))) - (home-page "https://github.com/abo-abo/ace-window") - (synopsis "Quickly switch windows in Emacs") - (description - "@code{ace-window} is meant to replace @code{other-window}. -In fact, when there are only two windows present, @code{other-window} is -called. If there are more, each window will have its first character -highlighted. Pressing that character will switch to that window.") - (license license:gpl3+))) - -(define-public emacs-iedit - ;; Last release version was in 2016. - (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f") - (revision "1")) - (package - (name "emacs-iedit") - (version (git-version "0.9.9.9" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/victorhge/iedit") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/Iedit") - (synopsis "Edit multiple regions in the same way simultaneously") - (description - "This package is an Emacs minor mode and allows you to edit one -occurrence of some text in a buffer (possibly narrowed) or region, and -simultaneously have other occurrences edited in the same way. - -You can also use Iedit mode as a quick way to temporarily show only the buffer -lines that match the current text being edited. This gives you the effect of -a temporary @code{keep-lines} or @code{occur}.") - (license license:gpl3+)))) - -(define-public emacs-zoutline - (package - (name "emacs-zoutline") - (version "0.2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/zoutline") - (commit version))) - (sha256 - (base32 - "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (home-page "https://github.com/abo-abo/zoutline") - (synopsis "Simple outline library") - (description - "This library provides helpers for outlines. Outlines allow users to -navigate code in a tree-like fashion.") - (license license:gpl3+))) - -(define-public emacs-lispy - (package - (name "emacs-lispy") - (version "0.27.0") - (home-page "https://github.com/abo-abo/lispy") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/lispy") - (commit version))) - (sha256 - (base32 - "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ace-window" ,emacs-ace-window) - ("emacs-hydra" ,emacs-hydra) - ("emacs-iedit" ,emacs-iedit) - ("emacs-swiper" ,emacs-swiper) - ("emacs-zoutline" ,emacs-zoutline))) - (native-inputs - `(("emacs-clojure-mode" ,emacs-clojure-mode) - ("emacs-undercover" ,emacs-undercover))) - (arguments - `(#:include (cons* "^lispy-clojure\\.clj$" - "^lispy-python\\.py$" - %default-include) - #:phases - ;; XXX: one failing test involving python evaluation - (modify-phases %standard-phases - (add-before 'check 'make-test-writable - (lambda _ - (make-file-writable "lispy-test.el") - #t)) - (add-before 'check 'remove-python-eval-test - (lambda _ - (emacs-batch-edit-file "lispy-test.el" - `(progn - (progn - (goto-char (point-min)) - (re-search-forward - "ert-deftest lispy-eval-python-str") - (beginning-of-line) - (kill-sexp)) - (basic-save-buffer))) - #t))) - #:tests? #t - #:test-command '("make" "test"))) - (synopsis "Modal S-expression editing") - (description - "Due to the structure of Lisp syntax it's very rare for the programmer -to want to insert characters right before \"(\" or right after \")\". Thus -unprefixed printable characters can be used to call commands when the point is -at one of these special locations. Lispy provides unprefixed keybindings for -S-expression editing when point is at the beginning or end of an -S-expression.") - (license license:gpl3+))) - -(define-public emacs-lispyville - (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db") - (revision "2")) - (package - (name "emacs-lispyville") - (version (git-version "0.1" revision commit)) - (home-page "https://github.com/noctuid/lispyville") - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) (commit commit))) - (sha256 - (base32 - "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw")) - (file-name (git-file-name name version)))) - (propagated-inputs - `(("emacs-evil" ,emacs-evil) - ("emacs-lispy" ,emacs-lispy))) - (build-system emacs-build-system) - (synopsis "Minor mode for integrating Evil with lispy") - (description - "LispyVille's main purpose is to provide a Lisp editing environment -suited towards Evil users. It can serve as a minimal layer on top of lispy -for better integration with Evil, but it does not require the use of lispy’s -keybinding style. The provided commands allow for editing Lisp in normal -state and will work even without lispy being enabled.") - (license license:gpl3+)))) - -(define-public emacs-lpy - (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766") - (revision "3")) - (package - (name "emacs-lpy") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/lpy") - (commit commit))) - (sha256 - (base32 - "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas")) - (file-name (git-file-name name version)))) - (propagated-inputs - `(("emacs-zoutline" ,emacs-zoutline) - ("emacs-lispy" ,emacs-lispy))) - (build-system emacs-build-system) - (home-page "https://github.com/abo-abo/lpy") - (synopsis "Modal editing for Python") - (description - "This package provides a minor mode for Python that binds useful -commands to unprefixed keys, such as @code{j} or @code{e}, under certain -circumstances, and leaves the keys untouched outside of those situations, -allowing unprefixed keys to insert their respective characters as expected.") - (license license:gpl3+)))) - -(define-public emacs-clojure-mode - (package - (name "emacs-clojure-mode") - (version "5.11.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/clojure-emacs/clojure-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1x1yszp6waa778ki6sw66w1pzcz389wd01gkcldfxxnd7z89ad5d")))) - (build-system emacs-build-system) - (native-inputs - `(("emacs-buttercup" ,emacs-buttercup) - ("emacs-dash" ,emacs-dash) - ("emacs-s" ,emacs-s))) - (arguments - `(#:tests? #t - #:test-command '("buttercup"))) - (home-page "https://github.com/clojure-emacs/clojure-mode") - (synopsis "Major mode for Clojure code") - (description - "This Emacs package provides font-lock, indentation, navigation and basic -refactoring for the @uref{http://clojure.org, Clojure programming language}. -It is recommended to use @code{clojure-mode} with Paredit or Smartparens.") - (license license:gpl3+))) - -(define-public emacs-epl - (package - (name "emacs-epl") - (version "0.8") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cask/epl") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr")))) - (build-system emacs-build-system) - (home-page "https://github.com/cask/epl") - (synopsis "Emacs Package Library") - (description - "A package management library for Emacs, based on @code{package.el}. - -The purpose of this library is to wrap all the quirks and hassle of -@code{package.el} into a sane API.") - (license license:gpl3+))) - -(define-public emacs-counsel-notmuch - ;; Upstream provides no release. Extract version for main file. - (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688") - (revision "0")) - (package - (name "emacs-counsel-notmuch") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fuxialexander/counsel-notmuch.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'locate-notmuch - (lambda* (#:key inputs #:allow-other-keys) - (make-file-writable "counsel-notmuch.el") - (emacs-substitute-variables "counsel-notmuch.el" - ("counsel-notmuch-path" - (string-append (assoc-ref inputs "notmuch") - "/bin/notmuch"))) - #t))))) - (inputs - `(("emacs-counsel" ,emacs-counsel) - ("notmuch" ,notmuch) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/fuxialexander/counsel-notmuch") - (synopsis "Search emails in Notmuch asynchronously with Ivy") - (description - "This package can be used to search emails in Notmuch -asynchronously, with Counsel and Ivy. Simply call -@code{counsel-notmuch} and input your Notmuch query.") - (license license:gpl3+)))) - -(define-public emacs-counsel-projectile - (package - (name "emacs-counsel-projectile") - (version "0.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ericdanan/counsel-projectile") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-counsel" ,emacs-counsel) - ("emacs-projectile" ,emacs-projectile))) - (home-page "https://github.com/ericdanan/counsel-projectile") - (synopsis "Enhance Projectile with Ivy") - (description - "This package uses Ivy to provide additional actions for Projectile -commands and replacements for existing functions.") - (license license:gpl3+))) - -(define-public emacs-qml-mode - (package - (name "emacs-qml-mode") - (version "0.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/coldnew/qml-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947")))) - (build-system emacs-build-system) - (home-page "https://github.com/coldnew/qml-mode/") - (synopsis "Qt Modeling Language (QML) mode for Emacs") - (description "This package provides the @code{qml-mode} major Emacs mode -for editing source files written in the Qt Modeling Language (QML) user -interface markup language. It provides syntax highlighting and basic -navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs -builtin JavaScript mode.") - (license license:gpl2+))) - -(define-public emacs-queue - (package - (name "emacs-queue") - (version "0.2") - (source (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/queue-" - version ".el")) - (sha256 - (base32 - "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb")))) - (build-system emacs-build-system) - (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html") - (synopsis "Queue data structure for Emacs") - (description - "This Emacs library provides queue data structure. These queues can be -used both as a first-in last-out (FILO) and as a first-in first-out (FIFO) -stack, i.e. elements can be added to the front or back of the queue, and can -be removed from the front. This type of data structure is sometimes called an -\"output-restricted deque\".") - (license license:gpl3+))) - -(define-public emacs-pkg-info - (package - (name "emacs-pkg-info") - (version "0.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lunaryorn/pkg-info.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-epl" ,emacs-epl))) - (home-page "https://github.com/lunaryorn/pkg-info.el") - (synopsis "Information about Emacs packages") - (description - "This library extracts information from the installed Emacs packages.") - (license license:gpl3+))) - -(define-public emacs-spinner - (package - (name "emacs-spinner") - (version "1.7.3") - (source (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/spinner-" - version ".el")) - (sha256 - (base32 - "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd")))) - (build-system emacs-build-system) - (home-page "https://github.com/Malabarba/spinner.el") - (synopsis "Emacs mode-line spinner for operations in progress") - (description - "This Emacs package adds spinners and progress-bars to the mode-line for -ongoing operations.") - (license license:gpl3+))) - -(define-public emacs-sparql-mode - (package - (name "emacs-sparql-mode") - (version "2.0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ljos/sparql-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s")))) - (build-system emacs-build-system) - (home-page "https://github.com/ljos/sparql-mode") - (synopsis "SPARQL mode for Emacs") - (description "This package provides a major mode for Emacs that provides -syntax highlighting for SPARQL. It also provides a way to execute queries -against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also -possible to query other endpoints like DBPedia.") - (license license:gpl3+))) - -(define-public emacs-better-defaults - (package - (name "emacs-better-defaults") - (version "0.1.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/technomancy/better-defaults") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr")))) - (build-system emacs-build-system) - (home-page "https://github.com/technomancy/better-defaults") - (synopsis "Better defaults for Emacs") - (description - "Better defaults attempts to address the most obvious deficiencies of the -Emacs default configuration in uncontroversial ways that nearly everyone can -agree upon.") - (license license:gpl3+))) - -(define-public emacs-undohist-el - (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0") - (revision "1")) - (package - (name "emacs-undohist-el") - (version (git-version "0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/m2ym/undohist-el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx")) - (patches - (search-patches "emacs-undohist-ignored.patch")))) - (build-system emacs-build-system) - (home-page "https://github.com/m2ym/undohist-el") - (synopsis "Save undo history between sessions") - (description "This package allows persistent use of undo history for -individual file buffers.") - (license license:gpl3+)))) - -(define-public emacs-eprime - (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f")) - (package - (name "emacs-eprime") - (version (string-append "20140513-" (string-take commit 7))) - (source (origin - (method url-fetch) - (uri (string-append "https://raw.githubusercontent.com" - "/AndrewHynes/eprime-mode/" - commit "/eprime-mode.el")) - (file-name (string-append "eprime-" version ".el")) - (sha256 - (base32 - "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d")))) - (build-system emacs-build-system) - (home-page "https://github.com/AndrewHynes/eprime-mode") - (synopsis "E-prime checking mode for Emacs") - (description "This package provides an E-prime checking mode for Emacs -that highlights non-conforming text. The subset of the English language called -E-Prime forbids the use of the \"to be\" form to strengthen your writing.") - (license license:gpl3+)))) - -(define-public emacs-julia-mode - ;; XXX: Upstream version remained stuck at 0.3. See - ;; . - (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4") - (revision "1")) - (package - (name "emacs-julia-mode") - (version (string-append "0.3-" revision "." (string-take commit 8))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/JuliaEditorSupport/julia-emacs") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "julia-mode-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/JuliaEditorSupport/julia-emacs") - (synopsis "Major mode for Julia") - (description "This Emacs package provides a mode for the Julia -programming language.") - (license license:expat)))) - -(define-public emacs-smex - (package - (name "emacs-smex") - (version "3.0") - (source (origin - (method url-fetch) - (uri (string-append "https://raw.githubusercontent.com" - "/nonsequitur/smex/" version "/smex.el")) - (file-name (string-append "smex-" version ".el")) - (sha256 - (base32 - "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp")))) - (build-system emacs-build-system) - (home-page "https://github.com/nonsequitur/smex/") - (synopsis "M-x interface with Ido-style fuzzy matching") - (description - "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a -convenient interface to your recently and most frequently used commands. And -to all the other commands, too.") - (license license:gpl3+))) - -(define-public emacs-js2-mode - (package - (name "emacs-js2-mode") - (version "20190219") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mooz/js2-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/mooz/js2-mode/") - (synopsis "Improved JavaScript editing mode for Emacs") - (description - "Js2-mode provides a JavaScript major mode for Emacs that is more -advanced than the built-in javascript-mode. Features include accurate syntax -highlighting using a recursive-descent parser, on-the-fly reporting of syntax -errors and strict-mode warnings, smart line-wrapping within comments and -strings, and code folding.") - (license license:gpl3+))) - -(define-public emacs-nodejs-repl - (package - (name "emacs-nodejs-repl") - (version "0.2.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abicky/nodejs-repl.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5")))) - (build-system emacs-build-system) - (inputs - `(("node" ,node))) - (native-inputs - `(("emacs-ert-expectations" ,emacs-ert-expectations))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-shell - ;; Setting the SHELL environment variable is required for the tests - ;; to find sh. - (lambda _ - (setenv "SHELL" (which "sh")) - #t)) - (add-after 'unpack 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((node (assoc-ref inputs "node"))) - ;; Specify the absolute file names of the various - ;; programs so that everything works out-of-the-box. - (make-file-writable "nodejs-repl.el") - (emacs-substitute-variables - "nodejs-repl.el" - ("nodejs-repl-command" - (string-append node "/bin/node"))))))) - #:tests? #t - #:test-command '("emacs" "-Q" "--batch" - "-L" "." - "-l" "test/test.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/abicky/nodejs-repl.el") - (synopsis "Node.js REPL inside Emacs") - (description - "This program is derived from comint-mode and provides the following -features: - -@itemize -@item TAB completion same as Node.js REPL -@item file name completion in string -@item incremental history search -@end itemize") - (license license:gpl3+))) - -(define-public emacs-typescript-mode - (package - (name "emacs-typescript-mode") - (version "0.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ananthakumaran/typescript.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh")))) - (build-system emacs-build-system) - (home-page "https://github.com/ananthakumaran/typescript.el") - (synopsis "Emacs major mode for editing Typescript code") - (description - "This is based on Karl Landstrom's barebones @code{typescript-mode}. -This is much more robust and works with @code{cc-mode}'s comment -filling (mostly). The modifications to the original @code{javascript.el} mode -mainly consisted in replacing \"javascript\" with \"typescript\" - -The main features of this Typescript mode are syntactic highlighting (enabled -with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic -indentation and filling of comments and C preprocessor fontification.") - (license license:gpl3+))) - -(define-public emacs-tide - (package - (name "emacs-tide") - (version "3.2.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ananthakumaran/tide") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-s" ,emacs-s) - ("emacs-flycheck" ,emacs-flycheck) - ("emacs-typescript-mode" ,emacs-typescript-mode))) - (home-page "https://github.com/ananthakumaran/tide") - (synopsis "Typescript IDE for Emacs") - (description - "Tide is an Interactive Development Environment (IDE) for Emacs which -provides the following features: - -@itemize -@item ElDoc -@item Auto complete -@item Flycheck -@item Jump to definition, Jump to type definition -@item Find occurrences -@item Rename symbol -@item Imenu -@item Compile On Save -@item Highlight Identifiers -@item Code Fixes -@item Code Refactor -@item Organize Imports -@end itemize") - (license license:gpl3+))) - -(define-public emacs-markdown-mode - (package - (name "emacs-markdown-mode") - (version "2.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jrblevin/markdown-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7")))) - (build-system emacs-build-system) - (home-page "https://jblevins.org/projects/markdown-mode/") - (synopsis "Emacs Major mode for Markdown files") - (description - "Markdown-mode is a major mode for editing Markdown-formatted text files -in Emacs.") - (license license:gpl3+))) - -(define-public emacs-evil-markdown - (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b") - (revision "2")) - (package - (name "emacs-evil-markdown") - (version (git-version "0.0.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Somelauw/evil-markdown") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil) - ("emacs-markdown-mode" ,emacs-markdown-mode))) - (home-page "https://github.com/Somelauw/evil-markdown/") - (synopsis "Evil keybindings for @code{markdown-mode}") - (description - "This package provides custom text objects and bindings for -@code{markdown-mode}.") - (license license:gpl3+)))) - -(define-public emacs-edit-indirect - (package - (name "emacs-edit-indirect") - (version "0.1.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Fanael/edit-indirect") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r")))) - (build-system emacs-build-system) - (home-page "https://github.com/Fanael/edit-indirect") - (synopsis "Edit regions in separate buffers") - (description "This package allows you to edit regions in separate buffers, -like @code{org-edit-src-code} but for arbitrary regions.") - (license license:gpl3+))) - -(define-public emacs-projectile - (package - (name "emacs-projectile") - (version "2.2.0") - (source (origin - (method url-fetch) - (uri (string-append "https://raw.githubusercontent.com/bbatsov" - "/projectile/v" version "/projectile.el")) - (file-name (string-append "projectile-" version ".el")) - (sha256 - (base32 - "1d983siysg98bjbb2r99qbrpvpf6dn85si8gyak4z05m67s8sn6v")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-pkg-info" ,emacs-pkg-info))) - (home-page "https://github.com/bbatsov/projectile") - (synopsis "Manage and navigate projects in Emacs easily") - (description - "This library provides easy project management and navigation. The -concept of a project is pretty basic - just a folder containing special file. -Currently git, mercurial and bazaar repos are considered projects by default. -If you want to mark a folder manually as a project just create an empty -.projectile file in it.") - (license license:gpl3+))) - -(define-public emacs-skeletor - (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13") - (revision "1")) - (package - (name "emacs-skeletor") - (version (git-version "1.6.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/chrisbarrett/skeletor.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-s" ,emacs-s) - ("emacs-f" ,emacs-f) - ("emacs-dash" ,emacs-dash) - ("emacs-let-alist" ,emacs-let-alist))) - (native-inputs - `(("emacs-ert-runner" ,emacs-ert-runner))) - (arguments - `(#:include (cons "^project-skeletons\\/" %default-include) - ;; XXX: one failing test involving initializing a git repo - #:phases - (modify-phases %standard-phases - (add-before 'check 'make-test-writable - (lambda _ - (make-file-writable "test/skeletor-test.el") - #t)) - (add-before 'check 'remove-git-test - (lambda _ - (emacs-batch-edit-file "test/skeletor-test.el" - `(progn - (progn - (goto-char (point-min)) - (re-search-forward - "ert-deftest initialises-git-repo") - (beginning-of-line) - (kill-sexp)) - (basic-save-buffer))) - #t))) - #:tests? #t - #:test-command '("ert-runner"))) - (home-page "https://github.com/chrisbarrett/skeletor.el") - (synopsis "Project skeletons for Emacs") - (description "This package provides project templates and automates the -mundane parts of setting up a new project, such as version control, licenses, -and tooling.") - (license license:gpl3+)))) - -(define-public emacs-elfeed - (package - (name "emacs-elfeed") - (version "3.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/skeeto/elfeed") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/skeeto/elfeed") - (synopsis "Atom/RSS feed reader for Emacs") - (description - "Elfeed is an extensible web feed reader for Emacs, supporting both Atom -and RSS, with a user interface inspired by notmuch.") - (license license:gpl3+))) - -(define-public emacs-elfeed-org - (let ((commit "77b6bbf222487809813de260447d31c4c59902c9")) - (package - (name "emacs-elfeed-org") - (version (git-version "0.1" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/remyhonig/elfeed-org") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-elfeed" ,emacs-elfeed) - ("emacs-org" ,emacs-org) - ("emacs-dash" ,emacs-dash) - ("emacs-s" ,emacs-s))) - (native-inputs - `(("ert-runner" ,emacs-ert-runner) - ("emacs-xtest" ,emacs-xtest))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner" "-L" "org-mode/lisp") - #:phases - (modify-phases %standard-phases - (add-before 'check 'chmod - (lambda _ - (chmod "test/fixture-mark-feed-ignore.org" #o644) - #t))))) - (home-page "https://github.com/remyhonig/elfeed-org") - (synopsis "Configure Elfeed with an Org-mode file") - (description - "@code{elfeed-org} lets you manage your Elfeed subscriptions -in Org-mode. Maintaining tags for all RSS feeds is cumbersome using -the regular flat list, where there is no hierarchy and tag names are -duplicated a lot. Org-mode makes the book keeping of tags and feeds -much easier.") - (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") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (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") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (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.7.7") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/technomancy/find-file-in-project") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("ert-runner" "tests"))) - (native-inputs - `(("ert-runner" ,emacs-ert-runner))) - (home-page "https://github.com/technomancy/find-file-in-project") - (synopsis "File/directory finder for Emacs") - (description "@code{find-file-in-project} finds 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.21") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jorgenschaefer/pyvenv") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx")))) - (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 "Python virtual environment interface 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-indent-guides - (let ((version "0.8.5") ; from package metadata - (revision "0") - (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c")) - (package - (name "emacs-highlight-indent-guides") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DarthFennec/highlight-indent-guides") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2")))) - (build-system emacs-build-system) - (home-page - "https://github.com/DarthFennec/highlight-indent-guides") - (synopsis "Minor mode to highlight indentation") - (description - "This package provides a minor mode to highlight indentation levels via -font-lock. Indent widths are dynamically discovered, which means this -correctly highlights in any mode, regardless of indent width, even in -languages with non-uniform indentation such as Haskell. This mode works -properly around hard tabs and mixed indentation and behaves well in large -buffers.") - (license license:expat)))) - -(define-public emacs-highlight-indentation - ;; Last release version is from 2015. - (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f") - (revision "1")) - (package - (name "emacs-highlight-indentation") - (version (git-version "0.7.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/antonj/Highlight-Indentation-for-Emacs") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz")))) - (build-system emacs-build-system) - (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/") - (synopsis "Highlighting indentation for Emacs") - (description "This package 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.34.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jorgenschaefer/elpy") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include) - #:phases - (modify-phases %standard-phases - ;; The following tests fail when building with Emacs 27 (see: - ;; https://github.com/jorgenschaefer/elpy/issues/1812). - (add-after 'unpack 'disable-problematic-tests - (lambda _ - (substitute* "test/elpy-company-backend-test.el" - (("elpy-company-backend-should-add-shell-candidates.*" all) - (string-append all " (skip-unless nil)\n"))) - (substitute* "test/elpy-folding-fold-comments-test.el" - (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all) - (string-append all " (skip-unless nil)\n"))) - #t)) - ;; The default environment of the RPC uses Virtualenv to install - ;; Python dependencies from PyPI. We don't want/need this in Guix. - (add-before 'check 'do-not-use-virtualenv - (lambda _ - (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1") - (substitute* "elpy-rpc.el" - (("defcustom elpy-rpc-virtualenv-path 'default") - "defcustom elpy-rpc-virtualenv-path 'system")) - #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) - ;; The following are recommended Python dependencies that make Elpy - ;; much more useful. Installing these avoids Elpy prompting to install them - ;; from PyPI using pip. - ("python-autopep8" ,python-autopep8) - ("python-black" ,python-black) - ("python-flake8" ,python-flake8) - ("python-jedi" ,python-jedi) - ("python-rope" ,python-rope) - ("python-yapf" ,python-yapf))) - (native-inputs - `(("ert-runner" ,emacs-ert-runner) - ("emacs-f" ,emacs-f) - ("python" ,python-wrapper) - ;; 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") - (version "2.1.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Fanael/rainbow-delimiters") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g")))) - (build-system emacs-build-system) - (home-page "https://github.com/Fanael/rainbow-delimiters") - (arguments - `(#:tests? #t - #:test-command '("emacs" "-Q" "-batch" - "-l" "rainbow-delimiters-test.el" - "-f" "ert-run-tests-batch-and-exit"))) - (synopsis "Highlight brackets according to their depth") - (description - "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which -highlights parentheses, brackets, and braces according to their depth. Each -successive level is highlighted in a different color, making it easy to spot -matching delimiters, orient yourself in the code, and tell which statements -are at a given level.") - (license license:gpl3+))) - -(define-public emacs-rainbow-identifiers - (package - (name "emacs-rainbow-identifiers") - (version "0.2.2") - (source (origin - (method url-fetch) - (uri (string-append "https://raw.githubusercontent.com/Fanael" - "/rainbow-identifiers/" version - "/rainbow-identifiers.el")) - (file-name (string-append "rainbow-identifiers-" version ".el")) - (sha256 - (base32 - "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31")))) - (build-system emacs-build-system) - (home-page "https://github.com/Fanael/rainbow-identifiers") - (synopsis "Highlight identifiers in source code") - (description - "Rainbow identifiers mode is an Emacs minor mode providing highlighting of -identifiers based on their names. Each identifier gets a color based on a hash -of its name.") - (license license:bsd-2))) - -(define-public emacs-rainbow-mode - (package - (name "emacs-rainbow-mode") - (version "1.0.5") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "rainbow-mode-" version ".el")) - (sha256 - (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/rainbow-mode.html") - (synopsis "Colorize color names in buffers") - (description - "This minor mode sets background color to strings that match color -names, e.g., @samp{#0000ff} is displayed in white with a blue background.") - (license license:gpl3+))) - -(define-public emacs-ryo-modal - ;; Package has no release. Version is extracted from "Version:" keyword in - ;; main file. - (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f") - (revision "0")) - (package - (name "emacs-ryo-modal") - (version (git-version "0.4" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Kungsgeten/ryo-modal") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95")))) - (build-system emacs-build-system) - (home-page "https://github.com/Kungsgeten/ryo-modal") - (synopsis "Emacs minor mode for defining modal editing environments") - (description "RYO modal provides a convenient way of defining modal -keybindings in Emacs, and does not come with any predefined bindings.") - (license license:expat)))) - -(define-public emacs-visual-fill-column - (package - (name "emacs-visual-fill-column") - (version "1.11") - (source (origin - (method url-fetch) - (uri (string-append "https://codeload.github.com/joostkremers/" - "visual-fill-column/tar.gz/" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh")))) - (build-system emacs-build-system) - (home-page "https://github.com/joostkremers/visual-fill-column") - (synopsis "Fill-column for visual-line-mode") - (description - "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics -the effect of @code{fill-column} in @code{visual-line-mode}. Instead of -wrapping lines at the window edge, which is the standard behaviour of -@code{visual-line-mode}, it wraps lines at @code{fill-column}. If -@code{fill-column} is too large for the window, the text is wrapped at the -window edge.") - (license license:gpl3+))) - -(define-public emacs-writeroom - (package - (name "emacs-writeroom") - (version "3.10") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joostkremers/writeroom-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-visual-fill-column" ,emacs-visual-fill-column))) - (home-page "https://github.com/joostkremers/writeroom-mode") - (synopsis "Distraction-free writing for Emacs") - (description - "This package defines a minor mode for distraction-free writing. Some of -the default effects include entering fullscreen, deleting other windows of the -current frame, disabling the mode line, and adding margins to the buffer that -restrict the text width to 80 characters.") - (license license:bsd-3))) - -(define-public emacs-ido-completing-read+ - (package - (name "emacs-ido-completing-read+") - (version "3.12") - (source (origin - (method url-fetch) - (uri (string-append "https://raw.githubusercontent.com" - "/DarwinAwardWinner/ido-ubiquitous/v" - version "/ido-completing-read+.el")) - (file-name (string-append "ido-completing-read+-" version ".el")) - (sha256 - (base32 - "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf")))) - (build-system emacs-build-system) - (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous") - (synopsis "Replacement for completing-read using ido") - (description - "The ido-completing-read+ function is a wrapper for ido-completing-read. -Importantly, it detects edge cases that ordinary ido cannot handle and either -adjusts them so ido can handle them, or else simply falls back to the standard -Emacs completion function instead.") - (license license:gpl3+))) - -(define-public emacs-ido-ubiquitous - (package - (name "emacs-ido-ubiquitous") - (version "3.12") - (source (origin - (method url-fetch) - (uri (string-append "https://raw.githubusercontent.com" - "/DarwinAwardWinner/ido-ubiquitous/v" - version "/ido-ubiquitous.el")) - (file-name (string-append "ido-ubiquitous-" version ".el")) - (sha256 - (base32 - "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+))) - (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous") - (synopsis "Use ido (nearly) everywhere") - (description - "Ido-ubiquitous enables ido-style completion for almost every function -that uses the standard completion function completing-read.") - (license license:gpl3+))) - -(define-public emacs-yaml-mode - (package - (name "emacs-yaml-mode") - (version "0.0.14") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/yoshiki/yaml-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r")))) - (build-system emacs-build-system) - (home-page "https://github.com/yoshiki/yaml-mode") - (synopsis "Major mode for editing YAML files") - (description - "Yaml-mode is an Emacs major mode for editing files in the YAML data -serialization format. It was initially developed by Yoshiki Kurihara and many -features were added by Marshall Vandegrift. As YAML and Python share the fact -that indentation determines structure, this mode provides indentation and -indentation command behavior very similar to that of python-mode.") - (license license:gpl3+))) - -(define-public emacs-gitlab-ci-mode - (package - (name "emacs-gitlab-ci-mode") - (version "20190425.11.10") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-yaml-mode" ,emacs-yaml-mode))) - (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/") - (synopsis "Emacs mode for editing GitLab CI files") - (description - "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI -files. It provides syntax highlighting and completion for keywords and -special variables. An interface to GitLab’s CI file linter is also provided -via @code{gitlab-ci-lint}.") - (license license:gpl3+))) - -(define-public emacs-gitlab-snip-helm - (package - (name "emacs-gitlab-snip-helm") - (version "0.0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-helm" ,emacs-helm))) - (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/") - (synopsis "GitLab snippet API interaction for Emacs") - (description "This package provides GitLab snippet API interaction for -Emacs.") - (license license:gpl3+))) - -(define-public emacs-web-mode - (package - (name "emacs-web-mode") - (version "17") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fxbois/web-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk")))) - (build-system emacs-build-system) - (synopsis "Major mode for editing web templates") - (description "Web mode is an Emacs major mode for editing web templates -aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by -client/server side engines). Web mode is compatible with many template -engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker, -Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template, -Dust.js, React/JSX, Angularjs, ejs, etc.") - (home-page "http://web-mode.org/") - (license license:gpl3+))) - -(define-public emacs-wgrep - (package - (name "emacs-wgrep") - (version "2.3.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mhayashi1120/Emacs-wgrep") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d")))) - (build-system emacs-build-system) - (home-page "https://github.com/mhayashi1120/Emacs-wgrep") - (synopsis "Edit a grep buffer and apply those changes to the files") - (description - "Emacs wgrep allows you to edit a grep buffer and apply those changes -to the file buffer. Several backends are supported beside the classic grep: -ack, ag, helm and pt.") - (license license:gpl3+))) - -(define-public emacs-helm - (package - (name "emacs-helm") - (version "3.6.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-helm/helm") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-async" ,emacs-async) - ("emacs-popup" ,emacs-popup))) - (home-page "https://emacs-helm.github.io/helm/") - (synopsis "Incremental completion and selection narrowing -framework for Emacs") - (description "Helm is incremental completion and selection narrowing -framework for Emacs. It will help steer you in the right direction when -you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork -of @code{anything.el} originally written by Tamas Patrovic and can be -considered to be its successor. Helm sets out to clean up the legacy code in -@code{anything.el} and provide a cleaner, leaner and more modular tool, that's -not tied in the trap of backward compatibility.") - (license license:gpl3+))) - -(define-public emacs-helm-org - (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b") - (revision "3")) - (package - (name "emacs-helm-org") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-helm/helm-org") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm))) - (home-page "https://github.com/emacs-helm/helm-org") - (synopsis "Helm interface to the Silver Searcher") - (description - "This package provides a frontend for grepping tools like ag and ack, -as well as features for editing search results.") - (license license:gpl3+)))) - -(define-public emacs-helm-swoop - (package - (name "emacs-helm-swoop") - (version "2.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacsorphanage/helm-swoop") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm))) - (home-page "https://github.com/emacsorphanage/helm-swoop") - (synopsis "Filter and jump to lines in an Emacs buffer using Helm") - (description - "This package builds on the Helm interface to provide several commands -for search-based navigation of buffers.") - (license license:gpl2+))) - -(define-public emacs-helm-ag - (package - (name "emacs-helm-ag") - (version "0.62") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syohex/emacs-helm-ag") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm))) - (home-page "https://github.com/syohex/emacs-helm-ag") - (synopsis "Helm interface to the Silver Searcher") - (description - "This package provides a frontend for grepping tools like ag and ack, -as well as features for editing search results.") - (license license:gpl3+))) - -(define-public emacs-helm-projectile - (package - (name "emacs-helm-projectile") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bbatsov/helm-projectile") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm) - ("emacs-projectile" ,emacs-projectile))) - (home-page "https://github.com/bbatsov/helm-projectile") - (synopsis "Helm integration for Projectile") - (description - "This Emacs library provides a Helm interface for Projectile.") - (license license:gpl3+))) - -(define-public emacs-taskrunner - (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358") - (revision "1")) - (package - (name "emacs-taskrunner") - (version (git-version "0.6" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-taskrunner/emacs-taskrunner") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-async" ,emacs-async) - ("emacs-projectile" ,emacs-projectile))) - (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner") - (synopsis "Retrieve tasks from various build systems and task-runners") - (description "This package parses Makefiles and build-system files for -multiple project types.") - (license license:gpl3+)))) - -(define-public emacs-ivy-taskrunner - (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162") - (revision "1")) - (package - (name "emacs-ivy-taskrunner") - (version (git-version "0.9" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-taskrunner/ivy-taskrunner") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ivy" ,emacs-ivy) - ("emacs-taskrunner" ,emacs-taskrunner) - ("emacs-projectile" ,emacs-projectile))) - (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner") - (synopsis "Retrieve build-system tasks using Ivy") - (description "This package provides an Ivy interface for selecting -Makefile targets.") - (license license:gpl3+)))) - -(define-public emacs-helm-taskrunner - (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea") - (revision "1")) - (package - (name "emacs-helm-taskrunner") - (version (git-version "0.9" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-taskrunner/helm-taskrunner") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm) - ("emacs-taskrunner" ,emacs-taskrunner) - ("emacs-projectile" ,emacs-projectile))) - (home-page "https://github.com/emacs-taskrunner/helm-taskrunner") - (synopsis "Retrieve build-system tasks using Helm") - (description "This package provides a Helm interface for selecting -Makefile targets.") - (license license:gpl3+)))) - -(define-public emacs-helm-make - (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0") - (revision "1")) - (package - (name "emacs-helm-make") - (version (string-append "0.1.0-" revision "." (string-take commit 7))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/helm-make") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm) - ("emacs-projectile" ,emacs-projectile))) - (home-page "https://github.com/abo-abo/helm-make") - (synopsis "Select a Makefile target with helm") - (description "@code{helm-make} or @code{helm-make-projectile} will give -you a @code{helm} selection of directory Makefile's targets. Selecting a -target will call @code{compile} on it.") - (license license:gpl3+)))) - -(define-public emacs-cider - (package - (name "emacs-cider") - (version "0.25.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/clojure-emacs/cider") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1sdd7vzw948q01kc8im1asiq1j06q0mnn2s8kj83f8sbdnfy0qbk")))) - (build-system emacs-build-system) - (arguments - '(#:exclude ;don't exclude 'cider-test.el' - '("^\\.dir-locals\\.el$" "^test/"))) - (propagated-inputs - `(("emacs-clojure-mode" ,emacs-clojure-mode) - ("emacs-parseedn" ,emacs-parseedn) - ("emacs-pkg-info" ,emacs-pkg-info) - ("emacs-queue" ,emacs-queue) - ("emacs-sesman" ,emacs-sesman) - ("emacs-spinner" ,emacs-spinner))) - (home-page "https://cider.mx/") - (synopsis "Clojure development environment for Emacs") - (description - "CIDER (Clojure Interactive Development Environment that Rocks) aims to -provide an interactive development experience similar to the one you'd get -when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with -Geiser) and Smalltalk. - -CIDER is the successor to the now deprecated combination of using SLIME + -swank-clojure for Clojure development. - -There are plenty of differences between CIDER and SLIME, but the core ideas -are pretty much the same (and SLIME served as the principle inspiration for -CIDER).") - (license license:gpl3+))) - -;; There hasn't been a tag or release since 2016, so we take the latest -;; commit. -(define-public emacs-sly - (let ((commit "6a2f543cb21f14104c2253af5a1427b884a987ae") - ;; Update together with sbcl-slynk-boot0. - (revision "5")) - (package - (name "emacs-sly") - (version (git-version "1.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joaotavora/sly") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144")))) - (build-system emacs-build-system) - (native-inputs - `(("texinfo" ,texinfo))) - (arguments - `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include) - #:phases - ;; The package provides autoloads. - (modify-phases %standard-phases - (delete 'make-autoloads) - (add-before 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info-dir (string-append out "/share/info")) - (doc-dir (string-append out "/share/doc/" - ,name "-" ,version)) - (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below. - "README.md" "NEWS.md" "PROBLEMS.md" - "CONTRIBUTING.md"))) - (with-directory-excursion "doc" - (substitute* "Makefile" - (("infodir=/usr/local/info") - (string-append "infodir=" info-dir)) - ;; Don't rebuild contributors.texi since we are not in - ;; the git repo. - (("contributors.texi: Makefile texinfo-tabulate.awk") - "contributors.texi:")) - (invoke "make" "html/index.html") - (invoke "make" "sly.info") - ;; TODO: We need minimal texlive with "preprint" package - ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf") - (install-file "sly.info" info-dir) - (copy-recursively "html" (string-append doc-dir "/html"))) - (for-each (lambda (f) - (install-file f doc-dir) - (delete-file f)) - doc-files) - (delete-file-recursively "doc") - #t)))))) - (home-page "https://github.com/joaotavora/sly") - (synopsis "Sylvester the Cat's Common Lisp IDE") - (description - "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and -contains the following improvements over it: - -@enumerate -@item Completely redesigned REPL based on Emacs's own full-featured - @code{comint.el}. -@item Live code annotations via a new @code{sly-stickers} contrib. -@item Consistent interactive button interface. Everything can be copied to - the REPL. -@item Multiple inspectors with independent history. -@item Regexp-capable @code{M-x sly-apropos}. -@item Contribs are first class SLY citizens and enabled by default. -@item Use ASDF to loads contribs on demand. -@end enumerate - -SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector, -xref, etc...) are still available, but with better integration.") - (license license:gpl3+)))) - -(define-public emacs-sly-quicklisp - (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c") - (revision "1")) - (package - (name "emacs-sly-quicklisp") - (version (git-version "0.0.0" revision commit)) - (home-page "https://github.com/joaotavora/sly-quicklisp") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-sly" ,emacs-sly))) - (arguments - `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include) - #:phases - ;; The package provides autoloads. - (modify-phases %standard-phases - (delete 'make-autoloads) - (delete 'enable-autoloads-compilation)))) - (synopsis "Quicklisp support for SLY") - (description - "@command{sly-quicklisp} is an external contrib for SLY that provides a -sly-quickload command that prompts the user for a package to install. ") - (license license:gpl3+)))) - -(define-public emacs-sly-asdf - (let ((commit "32ce14994e8faee9321605cec36d156b02996c46") - (revision "4")) - (package - (name "emacs-sly-asdf") - (version (git-version "0.1.0" revision commit)) - (home-page "https://github.com/mmgeorge/sly-asdf") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-sly" ,emacs-sly) - ("emacs-popup" ,emacs-popup))) - (arguments - '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include))) - (synopsis "ASDF contrib for SLY") - (description - "@command{sly-asdf} is an external contrib for SLY that provides -additional support for working with ASDF projects.") - (license license:gpl3+)))) - -(define-public emacs-sly-named-readtables - (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f") - (revision "1")) - (package - (name "emacs-sly-named-readtables") - (version (git-version "0.1" revision commit)) - (home-page "https://github.com/joaotavora/sly-named-readtables") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-sly" ,emacs-sly))) - (arguments - '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include) - #:phases (modify-phases %standard-phases - ;; Byte compilation of the autoload file fails. - (delete 'enable-autoloads-compilation)))) - (synopsis "Named-readtables support for SLY") - (description - "@command{sly-named-readtables} is an external contrib for SLY that -enables different readtables to be active in different parts of the same -file.") - (license license:gpl3+)))) - -(define-public emacs-sly-macrostep - (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0") - (revision "1")) - (package - (name "emacs-sly-macrostep") - (version (git-version "0.1" revision commit)) - (home-page "https://github.com/joaotavora/sly-macrostep") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-sly" ,emacs-sly) - ("emacs-macrostep" ,emacs-macrostep))) - (arguments - '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include) - #:phases - ;; The package provides autoloads. - (modify-phases %standard-phases - (delete 'make-autoloads) - (delete 'enable-autoloads-compilation)))) - (synopsis "Expand Common Lisp macros inside source files with SLY") - (description - "@command{sly-macrostep} is a SLY contrib for expanding CL macros right -inside the source file.") - (license license:gpl3+)))) - -(define-public emacs-sly-package-inferred - (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef") - (revision "1")) - (package - (name "emacs-sly-package-inferred") - (version (git-version "0.1" revision commit)) - (home-page "https://github.com/40ants/sly-package-inferred") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-sly" ,emacs-sly))) - (arguments - '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include) - #:phases - ;; The package provides autoloads. - (modify-phases %standard-phases - (delete 'make-autoloads)))) - (synopsis "Improved package inferred systems support for SLY") - (description - "@command{sly-package-inferred} is an external contrib for SLY that -replaces its completion with a function which is better suited for systems -using package inferred style.") - (license license:gpl3+)))) - -(define-public emacs-lua-mode - (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c") - (revision "0")) - (package - (name "emacs-lua-mode") - (version (git-version "20200508" revision commit)) - (home-page "https://github.com/immerrr/lua-mode/") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("buttercup" "-l" "lua-mode.el"))) - (native-inputs - `(("emacs-buttercup" ,emacs-buttercup) - ("lua" ,lua))) - (synopsis "Major mode for lua") - (description - "This Emacs package provides a mode for @uref{https://www.lua.org/, -Lua programming language}.") - (license license:gpl2+)))) - -(define-public emacs-ebuild-mode - (package - (name "emacs-ebuild-mode") - (version "1.51") - (source - (origin - (method url-fetch) - (uri (string-append - "https://dev.gentoo.org/~ulm/emacs/" - "ebuild-mode-" version ".tar.xz")) - (file-name (string-append name "-" version ".tar.xz")) - (sha256 - (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2")))) - (build-system emacs-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (invoke "make" "ebuild-mode.info") - (install-file "ebuild-mode.info" - (string-append (assoc-ref outputs "out") - "/share/info")) - #t))))) - (native-inputs - `(("texinfo" ,texinfo))) - (home-page "https://devmanual.gentoo.org") - (synopsis "Major modes for Gentoo package files") - (description - "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42 -news items, openrc and runscripts.") - (license license:gpl2+))) - -(define-public emacs-evil - (package - (name "emacs-evil") - (version "1.14.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-evil/evil") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'fix-test-helpers - (lambda _ - (substitute* "evil-test-helpers.el" - (("\\(undo-tree-mode 1\\)") "")) - #t))))) - (build-system emacs-build-system) - (home-page "https://github.com/emacs-evil/evil") - (synopsis "Extensible Vi layer for Emacs") - (description - "Evil is an extensible vi layer for Emacs. It emulates the -main features of Vim, and provides facilities for writing custom -extensions.") - (license license:gpl3+))) - -(define-public emacs-evil-collection - (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919") - (revision "15")) - (package - (name "emacs-evil-collection") - (version (git-version "0.0.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-evil/evil-collection") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil) - ("emacs-annalist" ,emacs-annalist))) - (arguments - `(#:include (cons* "^modes\\/" %default-include))) - (home-page "https://github.com/emacs-evil/evil-collection") - (synopsis "Collection of Evil bindings for many major and minor modes") - (description "This is a collection of Evil bindings for the parts of -Emacs that Evil does not cover properly by default, such as @code{help-mode}, -@code{M-x calendar}, Eshell and more.") - (license license:gpl3+)))) - -(define-public emacs-goto-chg - (let ((commit "1829a13026c597e358f716d2c7793202458120b5") - (version "1.7.3") - (revision "1")) - (package - (name "emacs-goto-chg") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-evil/goto-chg") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-undo-tree" ,emacs-undo-tree))) - (home-page "https://github.com/emacs-evil/goto-chg") - (synopsis "Go to the last change in the Emacs buffer") - (description - "This package provides @code{M-x goto-last-change} command that goes to -the point of the most recent edit in the current Emacs buffer. When repeated, -go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is -used for reverse direction.") - (license license:gpl2+)))) - -(define-public emacs-janpath-evil-numbers - (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524") - (version "0.5") - (revision "1")) - (package - (name "emacs-janpath-evil-numbers") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/janpath/evil-numbers") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/janpath/evil-numbers") - (synopsis "Increment and decrement numeric literals") - (description - "This package provides functionality to search for a number up to the -end of a line and increment or decrement it.") - (license license:gpl3+)))) - -(define-public emacs-evil-owl - (let ((commit "24c5f43df375194386344e69bc720ea3986c9510") - (revision "3")) - (package - (name "emacs-evil-owl") - (version (git-version "0.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mamapanda/evil-owl") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil))) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/mamapanda/evil-owl") - (synopsis "Preview candidates when using Evil registers and marks") - (description - "This package supplements Evil's register- and mark-based commands with -a popup window for previewing candidates.") - (license license:gpl3+)))) - -(define-public emacs-evil-args - (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387") - (revision "1")) - (package - (name "emacs-evil-args") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/wcsmith/evil-args") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/wcsmith/evil-args") - (synopsis "Motions and text objects for delimited arguments in Evil") - (description - "This package provides motions and text objects for delimited -arguments, such as arguments separated by commas and semicolons.") - (license license:expat)))) - -(define-public emacs-evil-escape - (package - (name "emacs-evil-escape") - (version "3.14") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/syl20bnr/evil-escape") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i")))) - (propagated-inputs - `(("emacs-evil" ,emacs-evil))) - (build-system emacs-build-system) - (home-page "https://github.com/syl20bnr/evil-escape") - (synopsis "Escape from insert state and everything else in Emacs") - (description - "Evil escape provides a customizable key sequence to escape from insert -state and everything else in Emacs.") - (license license:gpl3+))) - -(define-public emacs-evil-exchange - (let ((commit "47691537815150715e64e6f6ec79be7746c96120") - (version "0.41") - (revision "1")) - (package - (name "emacs-evil-exchange") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Dewdrops/evil-exchange") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'fix-makefile - (lambda _ - (substitute* "Makefile" - (("cask exec ") "")) - #t))) - #:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/Dewdrops/evil-exchange") - (synopsis "Exchange text easily within Evil") - (description - "This package, a port of @code{vim-exchange}, provides an Evil operator -for exchanging text.") - (license license:gpl3+)))) - -(define-public emacs-evil-replace-with-register - (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67") - (version "0.1") - (revision "1")) - (package - (name "emacs-evil-replace-with-register") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Dewdrops/evil-ReplaceWithRegister") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister") - (synopsis "Quickly replace text with the contents of a register") - (description - "This package provides an Evil operator for replacing text with the -contents of a register.") - (license license:gpl3+)))) - -(define-public emacs-evil-indent-plus - (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40") - (version "1.0.0") - (revision "1")) - (package - (name "emacs-evil-indent-plus") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/TheBB/evil-indent-plus") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/TheBB/evil-indent-plus") - (synopsis "Text objects based on indentation") - (description - "This package adds new text objects for @code{evil-mode} based on -blocks having the same or higher indentation, including or excluding -surrounding lines.") - (license license:gpl2+)))) - -(define-public emacs-evil-text-object-python - (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15") - (version "1.0.1") - (revision "1")) - (package - (name "emacs-evil-text-object-python") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/wbolster/evil-text-object-python") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/wbolster/evil-text-object-python") - (synopsis "Text objects for Python") - (description - "This package provides @code{evil-mode} text objects for Python.") - (license license:gpl3+)))) - -(define-public emacs-evil-lion - (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab") - (revision "1")) - (package - (name "emacs-evil-lion") - (version (git-version "0.0.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/edkolev/evil-lion") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/edkolev/evil-lion") - (synopsis "Align operator for @code{evil-mode}") - (description - "This package, a port of @code{vim-lion}, provides an operator for -aligning text objects based on separators.") - (license license:gpl3+)))) - -(define-public emacs-evil-expat - (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2") - (revision "1")) - (package - (name "emacs-evil-expat") - (version (git-version "0.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/edkolev/evil-expat") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/edkolev/evil-expat") - (synopsis "Extra @code{ex} commands for @code{evil-mode}") - (description - "This package provides additional commands for the @code{ex} command -line, including functions for version control with Git and for copying and -pasting into and from @code{tmux} paste buffers.") - (license license:gpl3+)))) - -(define-public emacs-evil-nerd-commenter - (package - (name "emacs-evil-nerd-commenter") - (version "3.3.8") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/redguardtoo/evil-nerd-commenter") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/redguardtoo/evil-nerd-commenter") - (synopsis "Comment and uncomment lines efficiently") - (description - "This package provides text objects and operators for comments within -@code{evil-mode}.") - (license license:gpl3+))) - -(define-public emacs-evil-visual-replace - (package - (name "emacs-evil-visual-replace") - (version "0.0.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/troyp/evil-visual-replace") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/troyp/evil-visual-replace") - (synopsis "Replacement commands for @code{evil-mode} visual blocks") - (description - "This package provides versions of @code{query-replace} and -@code{replace-regexp} that work for @code{evil-mode} visual blocks.") - (license license:gpl2+))) - -(define-public emacs-evil-visualstar - (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752") - (version "0.0.2") - (revision "1")) - (package - (name "emacs-evil-visualstar") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bling/evil-visualstar") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/bling/evil-visualstar") - (synopsis "Instantly search using the visual selection") - (description - "This package provides @code{evil-mode} functions for using selected text -to search.") - (license license:gpl3+)))) - -(define-public emacs-monky - (package - (name "emacs-monky") - (version "0.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ananthakumaran/monky") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps")))) - (build-system emacs-build-system) - (home-page "https://ananthakumaran.in/monky/index.html") - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "test/monky-unit-test.el" - "-f" "ert-run-tests-batch-and-exit"))) - (synopsis "Interactive interface for the Mercurial version control system") - (description - "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you -can selectively commit files, view the diffs, and other things.") - (license license:gpl3+))) - -(define-public emacs-monroe - (package - (name "emacs-monroe") - (version "0.3.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sanel/monroe") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy")))) - (build-system emacs-build-system) - (home-page "https://github.com/sanel/monroe") - (synopsis "Clojure nREPL client for Emacs") - (description - "Monroe is a nREPL client for Emacs, focused on simplicity and easy -distribution, primarily targeting Clojure users") - (license license:gpl3+))) - -(define-public emacs-orgalist - (package - (name "emacs-orgalist") - (version "1.12") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "orgalist-" version ".el")) - (sha256 - (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/orgalist.html") - (synopsis "Manage Org-like lists in non-Org buffers") - (description "Orgalist writes and manages Org mode's plain lists in -non-Org buffers. More specifically, it supports the syntax of Org mode for -numbered, unnumbered, description items, checkboxes, and counter cookies. - -The library also implements radio lists, i.e., lists written in Org syntax -later translated into the host format, e.g., LaTeX or HTML.") - (license license:gpl3+))) - -(define-public emacs-writegood-mode - (package - (name "emacs-writegood-mode") - (version "2.0.2") - (home-page "https://github.com/bnbeckwith/writegood-mode") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (sha256 - (base32 - "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b")) - (file-name (string-append name "-checkout")))) - (build-system emacs-build-system) - (synopsis "Polish up poor writing on the fly") - (description - "This minor mode tries to find and highlight problems with your writing -in English as you type. It primarily detects \"weasel words\" and abuse of -passive voice.") - (license license:gpl3+))) - -(define-public emacs-neotree - (package - (name "emacs-neotree") - (version "0.5.2") - (home-page "https://github.com/jaypei/emacs-neotree") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit version))) - (sha256 - (base32 - "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (synopsis "Folder tree view for Emacs") - (description "This Emacs package provides a folder tree view.") - (license license:gpl3+))) - -(define-public emacs-org - (package - (name "emacs-org") - ;; emacs-org-contrib inherits from this package. Please update it as - ;; well. - (version "9.3.6") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar")) - (sha256 - (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((share (string-append (assoc-ref outputs "out") "/share")) - (info-dir (string-append share "/info")) - (doc-dir (string-append share "/doc/" ,name "-" ,version))) - (install-file "org" info-dir) - (install-file "orgcard.pdf" doc-dir)) - #t))))) - (home-page "https://orgmode.org/") - (synopsis "Outline-based notes management and organizer") - (description "Org is an Emacs mode for keeping notes, maintaining TODO -lists, and project planning with a fast and effective lightweight markup -language. It also is an authoring system with unique support for literate -programming and reproducible research.") - (license license:gpl3+))) - -(define-public emacs-org-contrib - (package - (inherit emacs-org) - (name "emacs-org-contrib") - (version "20200213") - (source - (origin - (method url-fetch) - (uri (string-append "https://orgmode.org/elpa/" - "org-plus-contrib-" version ".tar")) - (sha256 - (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5")))) - (arguments - `(#:modules ((guix build emacs-build-system) - (guix build utils) - (guix build emacs-utils) - (ice-9 ftw) - (srfi srfi-1)) - #:phases - (modify-phases %standard-phases - (add-after 'install 'delete-org-files - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (org (assoc-ref inputs "org")) - (contrib-files - (map basename (find-files out))) - (org+contrib-files - (map basename (find-files org))) - (duplicates (lset-intersection string=? - contrib-files - org+contrib-files))) - (with-directory-excursion - (string-append out "/share/emacs/site-lisp") - (for-each delete-file duplicates)) - #t)))))) - (propagated-inputs - `(("arduino-mode" ,emacs-arduino-mode) - ("cider" ,emacs-cider) - ("org" ,emacs-org) - ("scel" ,emacs-scel))) - (synopsis "Contributed packages to Org mode") - (description "Org is an Emacs mode for keeping notes, maintaining TODO -lists, and project planning with a fast and effective plain-text system. - -This package is equivalent to org-plus-contrib, but only includes additional -files that you would find in @file{contrib/} from the git repository."))) - -(define-public emacs-flx - (package - (name "emacs-flx") - (version "0.6.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lewang/flx") - (commit (string-append "v" version)))) - (sha256 - (base32 - "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (home-page "https://github.com/lewang/flx") - (synopsis "Fuzzy matching for Emacs") - (description - "Flx provides fuzzy matching for emacs a la sublime text. -The sorting algorithm is a balance between word beginnings (abbreviation) -and contiguous matches (substring). The longer the substring match, -the higher it scores. This maps well to how we think about matching. -Flx has support for ido (interactively do things) through flx-ido.") - (license license:gpl3+))) - -(define-public emacs-cyberpunk-theme - (package - (name "emacs-cyberpunk-theme") - (version "1.22") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/n3mo/cyberpunk-theme.el/") - (commit version))) - (sha256 - (base32 - "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (home-page "https://github.com/n3mo/cyberpunk-theme.el") - (synopsis "Cyberpunk theme for Emacs built-in color theme support") - (description - "Cyberpunk color theme for the Emacs 24+ built-in color theme support -known loosely as deftheme. Many mode-specific customizations are included.") - (license license:gpl3+))) - -(define-public emacs-danneskjold-theme - (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57") - (revision "1")) - (package - (name "emacs-danneskjold-theme") - (version (string-append "0.0.0-" revision "." (string-take commit 7))) - (home-page "https://github.com/rails-to-cosmos/danneskjold-theme") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-screenshots - (lambda _ - (delete-file-recursively "screenshots") #t))))) - (synopsis "High-contrast Emacs theme") - (description - "@code{danneskjold-theme} is a high-contrast theme for Emacs.") - (license license:gpl3+)))) - -(define-public emacs-dream-theme - (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b") - (revision "1")) - (package - (name "emacs-dream-theme") - (version (string-append "0.0.0-" revision "." (string-take commit 7))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/djcb/dream-theme") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk")))) - (build-system emacs-build-system) - (home-page "https://github.com/djcb/dream-theme") - (synopsis "High-contrast Emacs theme") - (description - "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired -by zenburn, sinburn and similar themes, but slowly diverging from them.") - (license license:gpl3+)))) - -(define-public emacs-dracula-theme - (package - (name "emacs-dracula-theme") - (version "1.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dracula/emacs") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0")))) - (build-system emacs-build-system) - (home-page "https://draculatheme.com/") - (synopsis "Dark theme for Emacs") - (description - "Dracula is a dark color theme for many editors, shells and more. This -package provides the Emacs theme.") - (license license:expat))) - -(define-public emacs-auto-complete - (package - (name "emacs-auto-complete") - (version "1.5.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/auto-complete/auto-complete") - (commit (string-append "v" version)))) - (sha256 - (base32 - "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-popup" ,emacs-popup))) - (home-page "https://github.com/auto-complete/auto-complete") - (synopsis "Intelligent auto-completion extension for Emacs") - (description - "Auto-Complete is an intelligent auto-completion extension for Emacs. -It extends the standard Emacs completion interface and provides an environment -that allows users to concentrate more on their own work. Its features are: -a visual interface, reduce overhead of completion by using statistic method, -extensibility.") - (license license:gpl3+))) - -(define-public emacs-nginx-mode - (package - (name "emacs-nginx-mode") - (version "1.1.9") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ajc/nginx-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs")))) - (build-system emacs-build-system) - (home-page "https://github.com/ajc/nginx-mode") - (synopsis "Emacs major mode for editing nginx config files") - (description "This package provides an Emacs major mode for -editing nginx config files.") - (license license:gpl2+))) - -(define-public emacs-stream - (package - (name "emacs-stream") - (version "2.2.5") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "stream-" version ".tar")) - (file-name (git-file-name name version)) - (sha256 - (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw")))) - (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/stream.html") - (synopsis "Implementation of streams for Emacs") - (description "This library provides an implementation of streams for Emacs. -Streams are implemented as delayed evaluation of cons cells.") - (license license:gpl3+))) - -(define-public emacs-cl-print - (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991") - (revision "1")) - (package - (name "emacs-cl-print") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacsmirror/cl-print") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79")))) - (build-system emacs-build-system) - (home-page "https://github.com/emacsmirror/cl-print") - (synopsis "CL-style generic printing") - (description "This package provides a generic function, -@code{cl-print-object}, to which the programmer can add any method they -please.") - (license license:gpl3+)))) - -(define-public emacs-el-search - (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0") - (revision "2")) - (package - (name "emacs-el-search") - (version (git-version "1.12.6.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacsmirror/el-search") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak")))) - (build-system emacs-build-system) - (inputs - `(("emacs-stream" ,emacs-stream) - ("emacs-cl-print" ,emacs-cl-print))) - (home-page "https://github.com/emacsmirror/el-search") - (synopsis "Expression based interactive search for emacs-lisp-mode") - (description "This package provides expression based interactive search -procedures for emacs-lisp-mode.") - (license license:gpl3+)))) - -(define-public emacs-ht - (package - (name "emacs-ht") - (version "2.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Wilfred/ht.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx")))) - (build-system emacs-build-system) - (propagated-inputs `(("emacs-dash" ,emacs-dash))) - (native-inputs - `(("emacs-ert-runner" ,emacs-ert-runner))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner"))) - (home-page "https://github.com/Wilfred/ht.el") - (synopsis "Hash table library for Emacs") - (description - "This package simplifies the use of hash tables in elisp. It also -provides functions to convert hash tables from and to alists and plists.") - (license license:gpl3+))) - -(define-public emacs-log4e - (package - (name "emacs-log4e") - (version "0.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/aki2o/log4e") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-tests - ;; Guile builder complains about null characters in some - ;; strings of test files. Remove "test" directory (it is not - ;; needed anyway). - (lambda _ - (delete-file-recursively "test")))))) - (home-page "https://github.com/aki2o/log4e") - (synopsis "Logging framework for elisp") - (description - "This package provides a logging framework for elisp. It allows -you to deal with multiple log levels.") - (license license:gpl3+))) - -(define-public emacs-gntp - (package - (name "emacs-gntp") - (version "0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tekai/gntp.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a")))) - (build-system emacs-build-system) - (home-page "https://github.com/tekai/gntp.el") - (synopsis "Growl Notification Protocol for Emacs") - (description - "This package implements the Growl Notification Protocol GNTP -described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}. -It is incomplete as it only lets you send but not receive -notifications.") - (license license:bsd-3))) - -(define-public emacs-alert - (package - (name "emacs-alert") - (version "1.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jwiegley/alert") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-gntp" ,emacs-gntp) - ("emacs-log4e" ,emacs-log4e))) - (home-page "https://github.com/jwiegley/alert") - (synopsis "Growl-style notification system for Emacs") - (description - "Alert is a Growl-workalike for Emacs which uses a common notification -interface and multiple, selectable \"styles\", whose use is fully -customizable by the user.") - (license license:gpl2+))) - -(define-public emacs-zones - (package - (name "emacs-zones") - (version "2019.7.13") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "zones-" version ".el")) - (sha256 - (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/Zones") - (synopsis "Define and act on multiple zones of buffer text") - (description - "Library @file{zones.el} lets you easily define and subsequently act on -multiple zones of buffer text. You can think of this as enlarging the notion -of region. In effect, it can remove the requirement of target text being -a contiguous sequence of characters. A set of buffer zones is, in effect, -a (typically) noncontiguous set of text.") - (license license:gpl3+))) - -(define-public emacs-mu4e-alert - (package - (name "emacs-mu4e-alert") - (version "1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/iqbalansari/mu4e-alert") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-alert" ,emacs-alert) - ("emacs-s" ,emacs-s) - ("emacs-ht" ,emacs-ht) - ("mu" ,mu))) - (home-page "https://github.com/iqbalansari/mu4e-alert") - (synopsis "Desktop notification for mu4e") - (description - "This package provides desktop notifications for mu4e. -Additionally it can display the number of unread emails in the -mode-line.") - (license license:gpl3+))) - -(define-public emacs-mu4e-jump-to-list - (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b") - (revision "1")) - (package - (name "emacs-mu4e-jump-to-list") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv")))) - (build-system emacs-build-system) - (propagated-inputs - `(("mu" ,mu))) - (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el") - (synopsis "Select and view mailing lists in mu4e") - (description - "@code{mu4e-jump-to-list} allows you to select and view mailing lists -automatically using existing List-ID headers in your mu database. Just press -\"l\" in the headers view and any mailing list you've subscribed to will be -automatically discovered and presented in recency order.") - (license license:gpl3+)))) - -(define-public emacs-mu4e-patch - (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d") - (revision "1")) - (package - (name "emacs-mu4e-patch") - (version (git-version "0.1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/seanfarley/mu4e-patch") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn")))) - (build-system emacs-build-system) - (propagated-inputs - `(("mu" ,mu))) - (home-page "https://github.com/seanfarley/mu4e-patch") - (synopsis "Colorize patch-like emails in mu4e") - (description - "Extension for mu4e to colorize patch-like emails with diff-mode. -This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has -been adapted to work with mu4e.") - (license license:gpl3+)))) - -(define-public emacs-pretty-mode - (package - (name "emacs-pretty-mode") - (version "2.0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/akatov/pretty-mode/") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh")))) - (build-system emacs-build-system) - (home-page "https://github.com/akatov/pretty-mode") - (synopsis "Redisplay parts of the buffer as Unicode symbols") - (description - "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.") - (license license:gpl3+))) - -(define-public emacs-yasnippet - (package - (name "emacs-yasnippet") - (version "0.14.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joaotavora/yasnippet") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "yasnippet-tests.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - (modify-phases %standard-phases - ;; Set HOME, otherwise test-rebindings fails. - (add-before 'check 'set-home - (lambda _ - (setenv "HOME" (getcwd)) - #t))))) - (home-page "https://github.com/joaotavora/yasnippet") - (synopsis "Yet another snippet extension for Emacs") - (description "YASnippet is a template system for Emacs. It allows you to -type an abbreviation and automatically expand it into function templates.") - (license license:gpl3+))) - -(define-public emacs-yasnippet-snippets - (package - (name "emacs-yasnippet-snippets") - (version "0.23") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/AndreaCrotti/yasnippet-snippets") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let* ((source (assoc-ref %build-inputs "source")) - (out (assoc-ref %outputs "out")) - (snippet-dir - (string-append out "/share/emacs/yasnippet-snippets/"))) - (with-directory-excursion source - (mkdir-p snippet-dir) - (copy-recursively "snippets" snippet-dir))) - #t))) - (home-page "https://github.com/AndreaCrotti/yasnippet-snippets") - (synopsis "Collection of YASnippet snippets for many languages") - (description - "Provides Andrea Crotti's collection of YASnippet snippets. After installation, -the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\". -To make YASnippet aware of these snippets, add the above directory to -@code{yas-snippet-dirs}.") - (license license:gpl3+))) - -(define-public emacs-helm-c-yasnippet - (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0") - (revision "1")) - (package - (name "emacs-helm-c-yasnippet") - (version (string-append "0.6.7" "-" revision "." - (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-jp/helm-c-yasnippet") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm) - ("emacs-yasnippet" ,emacs-yasnippet))) - (home-page "https://github.com/emacs-jp/helm-c-yasnippet") - (synopsis "Helm integration for Yasnippet") - (description "This Emacs library provides Helm interface for -Yasnippet.") - (license license:gpl2+)))) - -(define-public emacs-helm-system-packages - ;; There won't be a new release after 1.10.1 until - ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed, - ;; and latest commits fix import issues with Guix. - (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a")) - (package - (name "emacs-helm-system-packages") - (version (git-version "1.10.1" "1" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-helm/helm-system-packages") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4")))) - (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 -packages displayed in their own respective face). Fuzzy-search, mark and -execute the desired action over any selections of packages: Install, -uninstall, display packages details (in Org Mode) or insert details at point, -find files owned by packages... And much more, including performing all the -above over the network.") - (license license:gpl3+)))) - -(define-public emacs-helm-org-rifle - (package - (name "emacs-helm-org-rifle") - (version "1.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alphapapa/helm-org-rifle") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-helm" ,emacs-helm) - ("emacs-org" ,emacs-org) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/alphapapa/helm-org-rifle") - (synopsis "Rifle through Org files") - (description "This package searches both headings and contents of entries -in Org buffers and displays matching entries.") - (license license:gpl3+))) - -(define-public emacs-dired-git-info - ;; Upstream has no proper release. The base version is extracted from the - ;; "Version" keyword in the main file. - (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176") - (revision "0")) - (package - (name "emacs-dired-git-info") - (version (git-version "0.3.1" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/clemera/dired-git-info") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik")))) - (build-system emacs-build-system) - (home-page "https://github.com/clemera/dired-git-info/") - (synopsis "Show git info in Emacs Dired") - (description "This Emacs package provides a minor mode which shows git -information inside the Dired buffer.") - (license license:gpl3+)))) - -(define-public emacs-dired-toggle-sudo - (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169") - (revision "0")) - (package - (name "emacs-dired-toggle-sudo") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/renard/dired-toggle-sudo") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car")))) - (build-system emacs-build-system) - (home-page "https://github.com/renard/dired-toggle-sudo") - (synopsis "Browse directory with @code{sudo} privileges") - (description "This package allows for the use of @code{dired} with -@code{sudo} privileges.") - (license license:wtfpl2)))) - -(define-public emacs-diredfl - (package - (name "emacs-diredfl") - (version "0.4") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/purcell/diredfl") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z")))) - (build-system emacs-build-system) - (home-page "https://github.com/purcell/diredfl/") - (synopsis "Extra Emacs font lock rules for a more colourful Dired") - (description "This library enables additional font locking in Dired mode. -This is adapted from the extra font lock rules provided by Drew Adams' Dired+ -package.") - (license license:gpl3+))) - -(define-public emacs-memoize - (package - (name "emacs-memoize") - (version "1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/skeeto/emacs-memoize") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "memoize-test.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/skeeto/emacs-memoize") - (synopsis "Emacs lisp memoization library") - (description "@code{emacs-memoize} is an Emacs library for -memoizing functions.") - (license license:unlicense))) - -(define-public emacs-linum-relative - (package - (name "emacs-linum-relative") - (version "0.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/coldnew/linum-relative") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n")))) - (build-system emacs-build-system) - (home-page "https://github.com/coldnew/linum-relative") - (synopsis "Relative line numbering for Emacs") - (description "@code{emacs-linum-relative} displays the relative line -number on the left margin in Emacs.") - (license license:gpl2+))) - -(define-public emacs-idle-highlight - (package - (name "emacs-idle-highlight") - (version "1.1.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nonsequitur/idle-highlight-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/IdleHighlight") - (synopsis "Highlights all occurrences of the word the point is on") - (description - "This Emacs package provides @code{idle-highlight-mode} that sets - an idle timer to highlight all occurrences in the buffer of the word under - the point.") - (license license:gpl3+))) - -(define-public emacs-ox-twbs - (package - (name "emacs-ox-twbs") - (version "1.1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/marsmining/ox-twbs") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f")))) - (build-system emacs-build-system) - (home-page "https://github.com/marsmining/ox-twbs") - (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap") - (description - "This Emacs package outputs your org-mode docs with a simple, clean and -modern look. It implements a new HTML back-end for exporting org-mode docs as -HTML compatible with Twitter Bootstrap. By default, HTML is exported with -jQuery and Bootstrap resources included via osscdn.") - (license license:gpl3+))) - -(define-public emacs-highlight-sexp - (package - (name "emacs-highlight-sexp") - (version "1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/daimrod/highlight-sexp") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79")))) - (build-system emacs-build-system) - (home-page "https://github.com/daimrod/highlight-sexp") - (synopsis "Minor mode that highlights the s-exp at the current position") - (description - "This Emacs package highlights the s-exp at the current position.") - (license license:gpl3+))) - -(define-public emacs-highlight-stages - (let ((commit "29cbc5b78261916da042ddb107420083da49b271") - (revision "1")) - (package - (name "emacs-highlight-stages") - (version (string-append "1.1.0" "-" revision "." (string-take commit 7))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zk-phi/highlight-stages") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0")) - (patches - (search-patches "emacs-highlight-stages-add-gexp.patch")))) - (build-system emacs-build-system) - (home-page "https://github.com/wigust/highlight-stages") - (synopsis "Minor mode that highlights (quasi-quoted) expressions") - (description "@code{highlight-stages} provides an Emacs minor mode that -highlights quasi-quoted expressions.") - (license license:gpl3+)))) - -(define-public emacspeak - (package - (name "emacspeak") - (version "52.0") - (source - (origin - (method url-fetch) - (uri (string-append - "https://github.com/tvraman/emacspeak/releases/download/" - version "/emacspeak-" version ".tar.bz2")) - (sha256 - (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl")))) - (build-system gnu-build-system) - (arguments - '(#:make-flags (list (string-append "prefix=" - (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-broken-symlink - (lambda _ - (delete-file "lisp/sudoku.el") - #t)) - (replace 'configure - (lambda _ - (setenv "SHELL" (which "sh")) - ;; Configure Emacspeak according to etc/install.org. - (invoke "make" "config"))) - (add-after 'build 'build-espeak - (lambda _ - (invoke "make" "espeak"))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (lisp (string-append out "/share/emacs/site-lisp/emacspeak")) - (info (string-append out "/share/info")) - (emacs (string-append (assoc-ref inputs "emacs") - "/bin/emacs"))) - ;; According to etc/install.org, the Emacspeak directory should - ;; be copied to its installation destination. - (for-each - (lambda (file) - (copy-recursively file (string-append lisp "/" file))) - '("etc" "info" "js" "lisp" "media" "servers" "sounds" - "stumpwm" "xsl")) - ;; Make sure emacspeak is loaded from the correct directory. - (substitute* "run" - (("\\./lisp/emacspeak-setup.el") - (string-append lisp "/lisp/emacspeak-setup.el"))) - ;; Install the convenient startup script. - (mkdir-p bin) - (copy-file "run" (string-append bin "/emacspeak"))) - #t)) - (add-after 'install 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (emacspeak (string-append out "/bin/emacspeak")) - (espeak (string-append (assoc-ref inputs "espeak") - "/bin/espeak"))) - ;; The environment variable DTK_PROGRAM tells emacspeak what - ;; program to use for speech. - (wrap-program emacspeak - `("DTK_PROGRAM" ":" prefix (,espeak))) - #t)))) - #:tests? #f)) ; no check target - (inputs - `(("emacs" ,emacs) - ("espeak" ,espeak-ng) - ("perl" ,perl) - ("tcl" ,tcl) - ("tclx" ,tclx))) - (home-page "http://emacspeak.sourceforge.net") - (synopsis "Audio desktop interface for Emacs") - (description - "Emacspeak is a speech interface that allows visually impaired users to -interact independently and efficiently with the computer. Audio -formatting---a technique pioneered by AsTeR---and full support for W3C's Aural -CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic -information. By seamlessly blending all aspects of the Internet such as -Web-surfing and messaging, Emacspeak speech-enables local and remote -information via a consistent and well-integrated user interface.") - (license license:gpl2+))) - -(define-public emacs-adaptive-wrap - (package - (name "emacs-adaptive-wrap") - (version "0.7") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "adaptive-wrap-" version ".el")) - (sha256 - (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html") - (synopsis "Smart line-wrapping with wrap-prefix") - (description - "This Emacs package provides the @code{adaptive-wrap-prefix-mode} -minor mode which sets the wrap-prefix property on the fly so that -single-long-line paragraphs get word-wrapped in a way similar to what -you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without -actually changing the buffer's text.") - (license license:gpl3+))) - -(define-public emacs-diff-hl - (package - (name "emacs-diff-hl") - (version "1.8.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dgutov/diff-hl") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq")))) - (build-system emacs-build-system) - (home-page "https://github.com/dgutov/diff-hl") - (synopsis - "Highlight uncommitted changes using VC") - (description - "@code{diff-hl-mode} highlights uncommitted changes on the side of the -window (using the fringe, by default), allows you to jump between -the hunks and revert them selectively.") - (license license:gpl3+))) - -(define-public emacs-diminish - (package - (name "emacs-diminish") - (version "0.45") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/myrjola/diminish.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6")))) - (build-system emacs-build-system) - (home-page "https://github.com/myrjola/diminish.el") - (synopsis "Diminish minor modes with no modeline display") - (description "@code{emacs-diminish} implements hiding or -abbreviation of the mode line displays (lighters) of minor modes.") - (license license:gpl2+))) - -(define-public emacs-use-package - (package - (name "emacs-use-package") - (version "2.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jwiegley/use-package") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y")))) - (build-system emacs-build-system) - (native-inputs - `(("texinfo" ,texinfo))) - (propagated-inputs - `(("emacs-diminish" ,emacs-diminish))) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "use-package-tests.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - (modify-phases %standard-phases - (add-before 'install 'install-manual - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info-dir (string-append out "/share/info"))) - (mkdir-p info-dir) - (install-file "use-package.info" info-dir) - #t))) - (add-before 'install-manual 'build-manual - (lambda _ - (invoke "makeinfo" "use-package.texi") - #t))))) - (home-page "https://github.com/jwiegley/use-package") - (synopsis "Declaration for simplifying your .emacs") - (description "The use-package macro allows you to isolate package -configuration in your @file{.emacs} file in a way that is both -performance-oriented and tidy.") - (license license:gpl2+))) - -(define-public emacs-leaf - (package - (name "emacs-leaf") - (version "4.2.5") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "leaf-" version ".tar")) - (sha256 - (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw")))) - (build-system emacs-build-system) - (home-page "https://github.com/conao3/leaf.el") - (synopsis "Simplify your init.el configuration, extended use-package") - (description - "This package provides macros that allows you to declaratively configure -settings typical of an Elisp package with various keywords. The syntax is -similar, but not identical to use-package -- overall, leaf aims at a cleaner -and more predictable implementation.") - (license license:agpl3+))) - -(define-public emacs-strace-mode - (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11") - (revision "1")) - (package - (name "emacs-strace-mode") - (version (string-append "0.0.2-" revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pkmoore/strace-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f")))) - (build-system emacs-build-system) - (home-page "https://github.com/pkmoore/strace-mode") - (synopsis "Emacs major mode to highlight strace outputs") - (description "@code{emacs-strace-mode} provides an Emacs major mode - highlighting strace outputs.") - (license license:gpl3+)))) - -(define-public emacs-default-encrypt - (package - (name "emacs-default-encrypt") - (version "4.4") - (source - (origin - (method url-fetch) - (uri (string-append - "https://informationelle-selbstbestimmung-im-internet.de" - "/emacs/jl-encrypt" version "/jl-encrypt.el")) - (file-name (string-append "jl-encrypt-" version ".el")) - (sha256 - (base32 - "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78")))) - (build-system emacs-build-system) - (home-page - "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html") - (synopsis "Automatically encrypt or sign Gnus messages in Emacs") - (description - "DefaultEncrypt is designed to be used with Gnus in Emacs. It -automatically encrypts messages that you send (e.g., email) when public keys -for all recipients are available, and it protects you from accidentally -sending un-encrypted messages. It can also be configured to automatically -sign messages that you send. For details and instructions on how to use -DefaultEncrypt, please refer to the home page or read the comments in the -source file, @file{jl-encrypt.el}.") - (license license:gpl3+))) - -(define-public emacs-extend-smime - (package - (name "emacs-extend-smime") - (version "3.3") - (source - (origin - (method url-fetch) - (uri (string-append - "https://informationelle-selbstbestimmung-im-internet.de" - "/emacs/jl-smime" version "/jl-smime.el")) - (file-name (string-append "jl-smime-" version ".el")) - (sha256 - (base32 - "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh")))) - (build-system emacs-build-system) - (home-page - "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html") - (synopsis "Improved S/MIME support for Gnus in Emacs") - (propagated-inputs - `(("emacs-default-encrypt" ,emacs-default-encrypt))) - (description - ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt - ;; should not be translated. The name "emacs-default-encrypt" refers to - ;; the Guix package that provides DefaultEncrypt. - "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances -DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose -Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol). -Before a message (e.g., email) is sent, ExtendSMIME searches for missing -certificates via LDAP and imports them into @code{gpgsm}. When certificates -for all recipients are available, DefaultEncrypt automatically encrypts the -message. For details and instructions on how to use ExtendSMIME, please refer -to the home page or read the comments in the source file, -@file{jl-smime.el}.") - (license license:gpl3+))) - -(define-public emacs-htmlize - (package - (name "emacs-htmlize") - (version "1.55") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hniksic/emacs-htmlize") - (commit (string-append "release/" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x")))) - (build-system emacs-build-system) - (home-page "https://github.com/hniksic/emacs-htmlize") - (synopsis "Convert buffer text and decorations to HTML") - (description "@code{emacs-htmlize} converts the buffer text and -the associated decorations to HTML. Output to CSS, inline CSS and -fonts is supported.") - (license license:gpl2+))) - -(define-public emacs-xmlgen - (package - (name "emacs-xmlgen") - (version "0.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/philjackson/xmlgen") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "xmlgen-test.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/philjackson/xmlgen") - (synopsis "S-expression to XML domain specific language (DSL) in -Emacs Lisp") - (description "@code{emacs-xmlgen} provides S-expression to XML -conversion for Emacs Lisp.") - (license license:gpl2+))) - -(define-public emacs-cdlatex - (package - (name "emacs-cdlatex") - (version "4.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cdominik/cdlatex") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-auctex" ,emacs-auctex))) - (home-page "https://github.com/cdominik/cdlatex") - (synopsis "Fast Emacs input methods for LaTeX environments and -math") - (description "CDLaTeX is an Emacs minor mode supporting fast -insertion of environment templates and math in LaTeX. Similar -commands are also offered as part of the AUCTeX package, but it is not -the same - CDLaTeX focuses on speediness for inserting LaTeX -constructs.") - (license license:gpl3+))) - -(define-public emacs-cnfonts - (package - (name "emacs-cnfonts") - (version "0.9.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/cnfonts") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx")))) - (build-system emacs-build-system) - (home-page "https://github.com/tumashu/cnfonts") - (synopsis "Emacs Chinese fonts setup tool") - (description "cnfonts is a Chinese fonts setup tool, allowing for easy -configuration of Chinese fonts.") - (license license:gpl2+))) - -(define-public emacs-php-mode - (package - (name "emacs-php-mode") - (version "1.23.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ejmr/php-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c")))) - (build-system emacs-build-system) - (home-page "https://github.com/ejmr/php-mode") - (synopsis "Major mode for editing PHP code") - (description - "PHP mode is a major mode for editing PHP source code. It's an extension -of C mode; thus it inherits all C mode's navigation functionality. But it -colors according to the PHP grammar and indents according to the PEAR coding -guidelines. It also includes a couple handy IDE-type features such as -documentation search and a source and class browser.") - (license license:gpl3+))) - -(define-public emacs-pos-tip - (package - (name "emacs-pos-tip") - (version "0.4.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pitkali/pos-tip") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33")))) - (build-system emacs-build-system) - ;; The following functions and variables needed by emacs-pos-tip are - ;; not included in emacs-minimal: - ;; x-display-pixel-width, x-display-pixel-height, x-show-tip - (arguments `(#:emacs ,emacs)) - (home-page "https://github.com/pitkali/pos-tip") - (synopsis "Show tooltip at point") - (description "The standard library tooltip.el provides a function for -displaying a tooltip at the mouse position. However, locating a tooltip at an -arbitrary buffer position in a window is not easy. Pos-tip provides such a -function to be used by other frontend programs.") - (license license:gpl2+))) - -(define-public emacs-pyim-basedict - (package - (name "emacs-pyim-basedict") - (version "0.3.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/pyim-basedict") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d")))) - (build-system emacs-build-system) - (home-page "https://github.com/tumashu/pyim-basedict") - (synopsis "Input method dictionary of pyim") - (description "Pyim-basedict is the default pinyin input method dictionary, -containing words from the rime project.") - (license license:gpl2+))) - -(define-public emacs-pyim - (package - (name "emacs-pyim") - (version "1.8") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/pyim") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-async" ,emacs-async) - ("emacs-pyim-basedict" ,emacs-pyim-basedict) - ("emacs-popup" ,emacs-popup) - ("emacs-posframe" ,emacs-posframe))) - (home-page "https://github.com/tumashu/pyim") - (synopsis "Chinese input method") - (description "Chinese input method which supports quanpin, shuangpin, wubi -and cangjie.") - (license license:gpl2+))) - -(define-public emacs-posframe - (package - (name "emacs-posframe") - (version "0.7.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "posframe-" version ".el")) - (sha256 - (base32 "1kwl83jb5k1hnx0s2qw972v0gjqbbvk4sdcdb1qbdxsyw36sylc9")))) - (build-system emacs-build-system) - ;; emacs-minimal does not include the function font-info. - (arguments - `(#:emacs ,emacs)) - (home-page "https://github.com/tumashu/posframe") - (synopsis "Pop a posframe (a child frame) at point") - (description "@code{emacs-posframe} can pop a posframe at point. A -posframe is a child frame displayed within its root window's buffer. -@code{emacs-posframe} is fast and works well with CJK languages.") - (license license:gpl3+))) - -(define-public emacs-el2org - (package - (name "emacs-el2org") - (version "0.6.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/el2org") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b")))) - (build-system emacs-build-system) - (home-page "https://github.com/tumashu/el2org") - (synopsis "Convert Emacs-lisp file to org file") - (description "El2org is a simple tool, which can convert Emacs-lisp file -to org file, you can use this tool to write orgify commentary.") - (license license:gpl2+))) - -(define-public emacs-mustache - (package - (name "emacs-mustache") - (version "0.23") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Wilfred/mustache.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-ht" ,emacs-ht) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/Wilfred/mustache.el") - (synopsis "Mustache templating library for Emacs") - (description "Mustache templating library for Emacs, mustache is -a simple web template system, which is described as a logic-less system -because it lacks any explicit control flow statements, both looping and -conditional evaluation can be achieved using section tags processing lists -and lambdas.") - (license license:gpl3+))) - -(define-public emacs-org2web - (package - (name "emacs-org2web") - (version "0.9.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/org2web") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-el2org" ,emacs-el2org) - ("emacs-ht" ,emacs-ht) - ("emacs-mustache" ,emacs-mustache) - ("emacs-simple-httpd" ,emacs-simple-httpd))) - (home-page "https://github.com/tumashu/org2web") - (synopsis "Static site generator based on org-mode ") - (description "Org2web is a static site generator based on org-mode, -which code derived from Kelvin H's org-page.") - (license license:gpl2+))) - -(define-public emacs-xelb - (package - (name "emacs-xelb") - (version "0.18") - (source (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/xelb-" - version ".tar")) - (sha256 - (base32 - "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7")))) - (build-system emacs-build-system) - ;; The following functions and variables needed by emacs-xelb are - ;; not included in emacs-minimal: - ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym - ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region - ;; x-display-pixel-width, x-display-pixel-height - (arguments - `(#:emacs ,emacs - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'regenerate-el-files - (lambda* (#:key inputs #:allow-other-keys) - (invoke "make" - (string-append "PROTO_PATH=" - (assoc-ref inputs "xcb-proto") - "/share/xcb") - (string-append "EMACS_BIN=" - (assoc-ref inputs "emacs") - "/bin/emacs -Q"))))))) - (native-inputs `(("xcb-proto" ,xcb-proto))) - (home-page "https://github.com/ch11ng/xelb") - (synopsis "X protocol Emacs Lisp binding") - (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the -X11 protocol based on the XML description files from the XCB project. It -features an object-oriented API and permits a certain degree of concurrency. -It should enable you to implement low-level X11 applications.") - (license license:gpl3+))) - -(define-public emacs-exwm - (package - (name "emacs-exwm") - (version "0.24") - (synopsis "Emacs X window manager") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "exwm-" version ".tar")) - (sha256 - (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s")) - (patches - ;; Patch fixing fullscreen view. Applied upstream as - ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in - ;; next release. - (search-patches "emacs-exwm-fix-fullscreen-states.patch")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-xelb" ,emacs-xelb))) - (inputs - `(("xhost" ,xhost) - ("dbus" ,dbus))) - ;; The following functions and variables needed by emacs-exwm are - ;; not included in emacs-minimal: - ;; scroll-bar-mode, fringe-mode - ;; x-display-pixel-width, x-display-pixel-height - (arguments - `(#:emacs ,emacs - #:phases - (modify-phases %standard-phases - (add-after 'build 'install-xsession - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (xsessions (string-append out "/share/xsessions")) - (bin (string-append out "/bin")) - (exwm-executable (string-append bin "/exwm"))) - ;; Add a .desktop file to xsessions - (mkdir-p xsessions) - (mkdir-p bin) - (make-desktop-entry-file - (string-append xsessions "/exwm.desktop") - #:name ,name - #:comment ,synopsis - #:exec exwm-executable - #:try-exec exwm-executable) - ;; Add a shell wrapper to bin - (with-output-to-file exwm-executable - (lambda _ - (format #t "#!~a ~@ - ~a +SI:localuser:$USER ~@ - exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%" - (string-append (assoc-ref inputs "bash") "/bin/sh") - (string-append (assoc-ref inputs "xhost") "/bin/xhost") - (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch") - (string-append (assoc-ref inputs "emacs") "/bin/emacs") - '(cond - ((file-exists-p "~/.exwm") - (load-file "~/.exwm")) - ((not (featurep 'exwm)) - (require 'exwm) - (require 'exwm-config) - (exwm-config-default) - (message (concat "exwm configuration not found. " - "Falling back to default configuration..."))))))) - (chmod exwm-executable #o555) - #t)))))) - (home-page "https://github.com/ch11ng/exwm") - (description - "EXWM is a full-featured tiling X window manager for Emacs built on top -of XELB.") - (license license:gpl3+))) - -(define-public emacs-switch-window - (package - (name "emacs-switch-window") - (version "1.6.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dimitri/switch-window") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg")))) - (build-system emacs-build-system) - (home-page "https://github.com/dimitri/switch-window") - (synopsis "Emacs window switch tool") - (description "Switch-window is an emacs window switch tool, which -offer a visual way to choose a window to switch to, delete, split or -other operations.") - (license license:wtfpl2))) - -(define-public emacs-exwm-x - (package - (name "emacs-exwm-x") - (version "1.9.0") - (synopsis "Derivative window manager based on EXWM") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/exwm-x") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-counsel" ,emacs-counsel) - ("emacs-exwm" ,emacs-exwm) - ("emacs-switch-window" ,emacs-switch-window) - ("emacs-use-package" ,emacs-use-package))) - (inputs - `(("xhost" ,xhost) - ("dbus" ,dbus))) - ;; Need emacs instead of emacs-minimal, - ;; for emacs's bin path will be inserted into bin/exwm-x file. - (arguments - `(#:emacs ,emacs - #:phases - (modify-phases %standard-phases - (add-after 'build 'install-xsession - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (xsessions (string-append out "/share/xsessions")) - (bin (string-append out "/bin")) - (exwm-executable (string-append bin "/exwm-x"))) - ;; Add a .desktop file to xsessions - (mkdir-p xsessions) - (mkdir-p bin) - (with-output-to-file - (string-append xsessions "/exwm-x.desktop") - (lambda _ - (format #t "[Desktop Entry]~@ - Name=~a~@ - Comment=~a~@ - Exec=~a~@ - TryExec=~@*~a~@ - Type=Application~%" ,name ,synopsis exwm-executable))) - ;; Add a shell wrapper to bin - (with-output-to-file exwm-executable - (lambda _ - (format #t "#!~a ~@ - ~a +SI:localuser:$USER ~@ - exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%" - (string-append (assoc-ref inputs "bash") "/bin/sh") - (string-append (assoc-ref inputs "xhost") "/bin/xhost") - (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch") - (string-append (assoc-ref inputs "emacs") "/bin/emacs") - '(require 'exwmx-loader)))) - (chmod exwm-executable #o555) - #t)))))) - (home-page "https://github.com/tumashu/exwm-x") - (description "EXWM-X is a derivative window manager based on EXWM, with focus -on mouse-control.") - (license license:gpl3+))) - -(define-public emacs-gnugo - (package - (name "emacs-gnugo") - (version "3.1.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/gnugo-" - version ".tar")) - (sha256 - (base32 - "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1")))) - (build-system emacs-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'configure-default-gnugo-xpms-variable - (lambda _ - (substitute* "gnugo.el" - (("defvar gnugo-xpms nil") - "defvar gnugo-xpms #'gnugo-imgen-create-xpms")) - #t))))) - (propagated-inputs - `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode) - ("emacs-xpm" ,emacs-xpm))) - (home-page "https://elpa.gnu.org/packages/gnugo.html") - (synopsis "Emacs major mode for playing GNU Go") - (description "This package provides an Emacs based interface for GNU Go. -It has a graphical mode where the board and stones are drawn using XPM images -and supports the use of a mouse.") - (license license:gpl3+))) - -(define-public emacs-gnuplot - (package - (name "emacs-gnuplot") - (version "0.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bruceravel/gnuplot-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn")))) - (build-system gnu-build-system) - (native-inputs `(("emacs" ,emacs-minimal))) - (arguments - (let ((elisp-dir "/share/emacs/site-lisp")) - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (guix build emacs-utils)) - #:imported-modules (,@%gnu-build-system-modules - (guix build emacs-utils)) - #:configure-flags - (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs") - "/bin/emacs") - (string-append "--with-lispdir=" %output ,elisp-dir)) - #:phases - (modify-phases %standard-phases - (add-after 'install 'generate-autoloads - (lambda* (#:key outputs #:allow-other-keys) - (emacs-generate-autoloads - "gnuplot" - (string-append (assoc-ref outputs "out") ,elisp-dir)) - #t)))))) - (home-page "https://github.com/bruceravel/gnuplot-mode") - (synopsis "Emacs major mode for interacting with gnuplot") - (description "@code{emacs-gnuplot} is an emacs major mode for interacting -with gnuplot.") - (license license:gpl2+))) - -(define-public emacs-transpose-frame - (package - (name "emacs-transpose-frame") - (version "0.1.0") - (source - (origin - (method url-fetch) - (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el") - (file-name (string-append "transpose-frame-" version ".el")) - (sha256 - (base32 - "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/TransposeFrame") - (synopsis "Transpose window arrangement in current frame") - (description "@code{emacs-transpose-frame} provides some interactive -functions which allows users to transpose windows arrangement in currently -selected frame.") - (license license:bsd-2))) - -(define-public emacs-key-chord - (package - (name "emacs-key-chord") - (version "0.6") - (source - (origin - (method url-fetch) - (uri "https://www.emacswiki.org/emacs/download/key-chord.el") - (file-name (string-append "key-chord-" version ".el")) - (sha256 - (base32 - "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/key-chord.el") - (synopsis "Map pairs of simultaneously pressed keys to Emacs commands") - (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a -mode for binding key chords to commands. A key chord is defined as two keys -pressed simultaneously or a single key quickly pressed twice.") - (license license:gpl2+))) - -(define-public emacs-evil-surround - (package - (name "emacs-evil-surround") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-evil/evil-surround") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil))) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/emacs-evil/evil-surround") - (synopsis "Easily modify surrounding parentheses and quotes") - (description "@code{emacs-evil-surround} allows easy deletion, change and -addition of surrounding pairs, such as parentheses and quotes, in evil mode.") - (license license:gpl3+))) - -(define-public emacs-evil-commentary - (package - (name "emacs-evil-commentary") - (version "2.1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/linktohack/evil-commentary") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/linktohack/evil-commentary") - (synopsis "Comment out code in evil mode") - (description "@code{emacs-evil-commentary} adds keybindings to easily -comment out lines of code in evil mode. It provides @code{gcc} to comment out -lines, and @code{gc} to comment out the target of a motion.") - (license license:gpl3+))) - -;; Tests for emacs-ansi have a circular dependency with ert-runner, and -;; therefore cannot be run -(define-public emacs-ansi - (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88") - (revision "1")) - (package - (name "emacs-ansi") - (version (git-version "0.4.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rejeep/ansi.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/rejeep/ansi.el") - (synopsis "Convert strings to ANSI") - (description "@code{emacs-ansi} defines functions that turns simple -strings to ANSI strings. Turning a string into an ANSI string can be to add -color to a text, add color in the background of a text or adding a style, such -as bold, underscore or italic.") - (license license:gpl3+)))) - -;; Tests for emacs-commander have a circular dependency with ert-runner, and -;; therefore cannot be run -(define-public emacs-commander - (package - (name "emacs-commander") - (version "0.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rejeep/commander.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/rejeep/commander.el") - (synopsis "Emacs command line parser") - (description "@code{emacs-commander} provides command line parsing for -Emacs.") - (license license:gpl3+))) - -(define-public emacs-eglot - (package - (name "emacs-eglot") - (version "1.6") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "eglot-" version ".tar")) - (sha256 - (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-jsonrpc" ,emacs-jsonrpc))) - (home-page "https://github.com/joaotavora/eglot") - (synopsis "Client for Language Server Protocol (LSP) servers") - (description - "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol, -LSP} client that stays out of the way. It guesses the LSP program to start -for the current file, using the major mode as a hint. It prompts you to enter -one if it fails.") - (license license:gpl3+))) - -;; Tests for ert-runner have a circular dependency with ecukes, and therefore -;; cannot be run -(define-public emacs-ert-runner - (package - (name "emacs-ert-runner") - (version "0.8.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rejeep/ert-runner.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98")))) - (build-system emacs-build-system) - (inputs - `(("emacs-ansi" ,emacs-ansi) - ("emacs-commander" ,emacs-commander) - ("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-s" ,emacs-s) - ("emacs-shut-up" ,emacs-shut-up))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-executable - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (source-directory (string-append - (getenv "TMPDIR") "/source"))) - (substitute* "bin/ert-runner" - (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)") - (string-append "ERT_RUNNER=\"" out - "/share/emacs/site-lisp"))) - (install-file "bin/ert-runner" (string-append out "/bin")) - (wrap-program (string-append out "/bin/ert-runner") - (list "EMACSLOADPATH" ":" 'prefix - ;; Do not capture the transient source directory in - ;; the wrapper. - (delete source-directory - (string-split (getenv "EMACSLOADPATH") #\:)))) - #t)))) - #:include (cons* "^reporters/.*\\.el$" %default-include))) - (home-page "https://github.com/rejeep/ert-runner.el") - (synopsis "Opinionated Ert testing workflow") - (description "@code{ert-runner} is a tool for Emacs projects tested -using ERT. It assumes a certain test structure setup and can therefore make -running tests easier.") - (license license:gpl3+))) - -(define-public emacs-xtest - (package - (name "emacs-xtest") - (version "1.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/promethial/xtest") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09")))) - (arguments - `(#:exclude '())) - (build-system emacs-build-system) - (home-page "https://github.com/promethial/xtest/") - (synopsis "Simple testing with Emacs") - (description "This package provides a simple testing library for Emacs.") - (license license:gpl3+))) - -(define-public emacs-disable-mouse - (package - (name "emacs-disable-mouse") - (version "0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/purcell/disable-mouse") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357")))) - (build-system emacs-build-system) - (home-page "https://github.com/purcell/disable-mouse") - (synopsis "Disable mouse commands globally") - (description - "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode}, -pair of minor modes which suppress all mouse events by intercepting them and -running a customisable handler command (@code{ignore} by default). ") - (license license:gpl3+))) - -(define-public emacs-json-reformat - (package - (name "emacs-json-reformat") - (version "0.0.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gongo/json-reformat") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs")) - (patches (search-patches "emacs-json-reformat-fix-tests.patch")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-undercover" ,emacs-undercover))) - (native-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-shut-up" ,emacs-shut-up) - ("ert-runner" ,emacs-ert-runner))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner") - #:phases - (modify-phases %standard-phases - (add-before 'check 'make-tests-writable - (lambda _ - (for-each make-file-writable (find-files "test")) - #t)) - (add-before 'check 'delete-json-objects-order-test - (lambda _ - (emacs-batch-edit-file "test/json-reformat-test.el" - `(progn (progn (goto-char (point-min)) - (re-search-forward - "ert-deftest json-reformat-test:json-reformat-region") - (beginning-of-line) - (kill-sexp)) - (basic-save-buffer))) - #t))))) - (home-page "https://github.com/gongo/json-reformat") - (synopsis "Reformatting tool for JSON") - (description "@code{json-reformat} provides a reformatting tool for -@url{http://json.org/, JSON}.") - (license license:gpl3+))) - -(define-public emacs-json-snatcher - (package - (name "emacs-json-snatcher") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Sterlingg/json-snatcher") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw")))) - (build-system emacs-build-system) - (home-page "https://github.com/sterlingg/json-snatcher") - (synopsis "Grabs the path to JSON values in a JSON file") - (description "@code{emacs-json-snatcher} grabs the path to JSON values in -a @url{http://json.org/, JSON} file.") - (license license:gpl3+))) - -(define-public emacs-json-mode - (package - (name "emacs-json-mode") - (version "1.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joshwnj/json-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-json-reformat" ,emacs-json-reformat) - ("emacs-json-snatcher" ,emacs-json-snatcher))) - (home-page "https://github.com/joshwnj/json-mode") - (synopsis "Major mode for editing JSON files") - (description "@code{json-mode} extends the builtin js-mode syntax -highlighting.") - (license license:gpl3+))) - -(define-public emacs-jsonrpc - (package - (name "emacs-jsonrpc") - (version "1.0.12") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "jsonrpc-" version ".el")) - (sha256 - (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad")))) - (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/jsonrpc.html") - (synopsis "JSON-RPC library") - (description - "This library implements the JSONRPC 2.0 specification as -described in @url{http://www.jsonrpc.org/}. As the name suggests, -JSONRPC is a generic Remote Procedure Call protocol designed around -JSON objects.") - (license license:gpl3+))) - -(define-public emacs-restclient - (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc") - (version "0") - (revision "2")) ;Guix package revision, - ;upstream doesn't have official releases - (package - (name "emacs-restclient") - (version (git-version version revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pashky/restclient.el") - (commit commit))) - (sha256 - (base32 - "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-helm" ,emacs-helm))) - (home-page "https://github.com/pashky/restclient.el") - (synopsis "Explore and test HTTP REST webservices") - (description - "This tool allows for testing and exploration of HTTP REST Web services -from within Emacs. Restclient runs queries from a plan-text query sheet, -displays results pretty-printed in XML or JSON with @code{restclient-mode}") - (license license:public-domain)))) - -(define-public emacs-whitespace-cleanup-mode - (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d") - (revision "1")) - (package - (name "emacs-whitespace-cleanup-mode") - (version (git-version "0.10" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/purcell/whitespace-cleanup-mode") - (commit commit))) - (sha256 - (base32 - "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (home-page "https://github.com/purcell/whitespace-cleanup-mode") - (synopsis "Intelligently call @code{whitespace-cleanup} on save") - (description - "This package provides a minor mode that calls -@code{whitespace-cleanup} before saving the current buffer only if the -whitespace in the buffer was initially clean.") - (license license:gpl3+)))) - -(define-public emacs-eimp - (let ((version "1.4.0") - (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f") - (revision "1")) - (package - (name "emacs-eimp") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nicferrier/eimp") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((imagemagick (assoc-ref inputs "imagemagick"))) - ;; eimp.el is read-only in git. - (chmod "eimp.el" #o644) - (emacs-substitute-variables "eimp.el" - ("eimp-mogrify-program" - (string-append imagemagick "/bin/mogrify")))) - #t))))) - (inputs - `(("imagemagick" ,imagemagick))) - (home-page "https://github.com/nicferrier/eimp") - (synopsis "Interactive image manipulation utility for Emacs") - (description "@code{emacs-eimp} allows interactive image manipulation -from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do -the actual transformations.") - (license license:gpl2+)))) - -(define-public emacs-dired-hacks - (let ((commit "886befe113fae397407c804f72c45613d1d43535") - (revision "2")) - (package - (name "emacs-dired-hacks") - (version (git-version "0.0.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Fuco1/dired-hacks") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-eimp" ,emacs-eimp) - ("emacs-f" ,emacs-f) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/Fuco1/dired-hacks") - (synopsis - "Collection of useful dired additions") - (description - "This package provides the following collection of Emacs dired mode -additions: - -@itemize -@item dired-avfs -@item dired-columns -@item dired-filter -@item dired-hacks-utils -@item dired-images -@item dired-list -@item dired-narrow -@item dired-open -@item dired-rainbow -@item dired-ranger -@item dired-subtree -@item dired-tagsistant -@end itemize\n") - (license license:gpl3+)))) - -(define-public emacs-dired-sidebar - (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc") - (revision "1")) - (package - (name "emacs-dired-sidebar") - (home-page "https://github.com/jojojames/dired-sidebar") - (version (git-version "0.1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca")))) - (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.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/justbur/emacs-which-key") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "which-key-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/justbur/emacs-which-key") - (synopsis "Display available key bindings in popup") - (description - "@code{emacs-which-key} is a minor mode for Emacs that displays the key -bindings following your currently entered incomplete command (a prefix) in a -popup. For example, after enabling the minor mode if you enter C-x and wait -for the default of 1 second, the minibuffer will expand with all of the -available key bindings that follow C-x (or as many as space allows given your -settings).") - (license license:gpl3+))) - -(define-public emacs-hercules - (package - (name "emacs-hercules") - (version "0.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/jjzmajic/hercules.el.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-which-key" ,emacs-which-key))) - (home-page "https://gitlab.com/jjzmajic/hercules.el") - (synopsis "Call a chain of related commands without repeated prefix keys") - (description - "This package provides sticky-key-like functionality to obviate the -need for repeated prefix-key sequences, and can reuse existing keymaps. The -list of commands is displayed in a handy popup.") - (license license:gpl3+))) - -(define-public emacs-ws-butler - (package - (name "emacs-ws-butler") - (version "0.6") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lewang/ws-butler") - (commit "323b651dd70ee40a25accc940b8f80c3a3185205"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb")))) - (build-system emacs-build-system) - (native-inputs - `(("ert-runner" ,emacs-ert-runner))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner" "tests"))) - (home-page "https://github.com/lewang/ws-butler") - (synopsis "Trim spaces from end of lines") - (description - "This Emacs package automatically and unobtrusively trims whitespace -characters from end of lines.") - (license license:gpl3+))) - -(define-public emacs-openwith - (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9") - (revision "0")) - (package - (name "emacs-openwith") - (home-page "https://bitbucket.org/jpkotta/openwith") - (version (git-version "0.0.1" revision changeset)) - (source (origin - (method hg-fetch) - (uri (hg-reference (url home-page) (changeset changeset))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01")))) - (build-system emacs-build-system) - (synopsis "Open external applications for files with Emacs") - (description - "This package enables you to associate file name patterns with external -applications that are automatically invoked when you use commands like -@code{find-file}. For example, you can have it open @code{png} files with -@code{feh} and @code{mp4} files with @code{mpv}. This is especially useful -when browsing files with Dired.") - (license license:gpl2+)))) - -(define-public emacs-org-edit-latex - (package - (name "emacs-org-edit-latex") - (version "0.8.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/et2010/org-edit-latex") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-auctex" ,emacs-auctex) - ;; The version of org in Emacs 25.2 is not sufficient, because the - ;; `org-latex-make-preamble' function is required. - ("emacs-org" ,emacs-org))) - (home-page "https://github.com/et2010/org-edit-latex") - (synopsis "Edit a latex fragment just like editing a src block") - (description "@code{emacs-org-edit-latex} is an extension for org-mode. -It lets you edit a latex fragment in a dedicated buffer just like editing a -src block.") - (license license:gpl3+))) - -(define-public emacs-emamux - (package - (name "emacs-emamux") - (version "0.14") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syohex/emacs-emamux") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b")))) - (build-system emacs-build-system) - (home-page "https://github.com/syohex/emacs-emamux") - (synopsis "Manipulate Tmux from Emacs") - (description - "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal -multiplexer.") - (license license:gpl3+))) - -(define-public emacs-rpm-spec-mode - (package - (name "emacs-rpm-spec-mode") - (version "0.16") - (source - (origin - (method url-fetch) - ;; URI has the Fedora release number instead of the version - ;; number. This will have to updated manually every new release. - (uri (string-append - "https://src.fedoraproject.org/cgit/rpms" - "/emacs-rpm-spec-mode.git/snapshot" - "/emacs-rpm-spec-mode-f26.tar.gz")) - (sha256 - (base32 - "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3")))) - (build-system emacs-build-system) - (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git") - (synopsis "Emacs major mode for editing RPM spec files") - (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for -editing RPM spec files.") - (license license:gpl2+))) - -(define-public emacs-lcr - (package - (name "emacs-lcr") - (version "1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jyp/lcr") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/jyp/lcr") - (synopsis "Lightweight coroutines in Emacs Lisp") - (description "This package provides macros that can translate code into -equivalent continuation-passing code, as well as miscellaneous utility -functions written in continuation-passing style.") - (license license:gpl3+))) - -(define-public emacs-attrap - (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d") - (revision "2")) - (package - (name "emacs-attrap") - (version (git-version "1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jyp/attrap") - (commit commit))) - (sha256 - (base32 - "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-flycheck" ,emacs-flycheck) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/jyp/attrap") - (synopsis "Fix coding error at point") - (description "This package provides a command to fix the Flycheck error -at point.") - (license license:gpl3+)))) - -(define-public emacs-git-messenger - (package - (name "emacs-git-messenger") - (version "0.18") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syohex/emacs-git-messenger") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-popup" ,emacs-popup))) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" "-l" "test/test.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/syohex/emacs-git-messenger") - (synopsis "Popup commit message at current line") - (description "@code{emacs-git-messenger} provides -@code{git-messenger:popup-message}, a function that when called, will popup -the last git commit message for the current line. This uses git-blame -internally.") - (license license:gpl3+))) - -(define-public emacs-gitpatch - (package - (name "emacs-gitpatch") - (version "0.5.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumashu/gitpatch") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig")))) - (build-system emacs-build-system) - (home-page "https://github.com/tumashu/gitpatch") - (synopsis "Mail git patch from Emacs") - (description "@code{emacs-gitpatch} lets users easily send git patches, -created by @code{git format-patch}, from @code{magit}, @code{dired} and -@code{ibuffer} buffers.") - (license license:gpl3+))) - -(define-public emacs-erc-hl-nicks - (package - (name "emacs-erc-hl-nicks") - (version "1.3.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/leathekd/erc-hl-nicks") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra")))) - (build-system emacs-build-system) - (synopsis "Nickname highlighting for Emacs ERC") - (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC -client for Emacs. The main features are: -@itemize -@item Auto-colorizes nicknames without having to specify colors -@item Ignores certain characters that IRC clients add to nicknames to avoid -duplicates (nickname, nickname’, nickname\", etc.) -@item Attempts to produce colors with a sufficient amount of contrast between -the nick color and the background color -@end itemize\n") - (home-page "https://github.com/leathekd/erc-hl-nicks") - (license license:gpl3+))) - -(define-public emacs-engine-mode - (package - (name "emacs-engine-mode") - (version "2.1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hrs/engine-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i")))) - (build-system emacs-build-system) - (synopsis "Minor mode for defining and querying search engines") - (description "@code{engine-mode} is a global minor mode for Emacs. It -enables you to easily define search engines, bind them to keybindings, and -query them from the comfort of your editor.") - (home-page "https://github.com/hrs/engine-mode") - (license license:gpl3+))) - -(define-public emacs-prop-menu - (package - (name "emacs-prop-menu") - (version "0.1.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/david-christiansen/prop-menu-el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc")))) - (build-system emacs-build-system) - (home-page - "https://github.com/david-christiansen/prop-menu-el") - (synopsis - "Create and display a context menu based on text and overlay properties") - (description - "This is a library for computing context menus based on text -properties and overlays. The intended use is to have tools that -annotate source code and others that use these annotations, without -requiring a direct coupling between them, but maintaining -discoverability. - -Major modes that wish to use this library should first define an -appropriate value for @code{prop-menu-item-functions}. Then, they should -bind @code{prop-menu-by-completing-read} to an appropriate -key. Optionally, a mouse pop-up can be added by binding -@code{prop-menu-show-menu} to a mouse event.") - (license license:gpl3+))) - -(define-public emacs-idris-mode - (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59") - (revision "0")) - (package - (name "emacs-idris-mode") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/idris-hackers/idris-mode") - (commit commit))) - (file-name (git-file-name name commit)) - (sha256 - (base32 - "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-prop-menu" ,emacs-prop-menu))) - (home-page - "https://github.com/idris-hackers/idris-mode") - (synopsis "Major mode for editing Idris code") - (description - "This is an Emacs mode for editing Idris code. It is compatible with -the latest versions of Idris 1.") - (license license:gpl3+)))) - -(define-public emacs-browse-at-remote - (package - (name "emacs-browse-at-remote") - (version "0.10.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rmuslimov/browse-at-remote") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-f" ,emacs-f) - ("emacs-s" ,emacs-s))) - (native-inputs - `(("ert-runner" ,emacs-ert-runner))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner"))) - (home-page "https://github.com/rmuslimov/browse-at-remote") - (synopsis "Open github/gitlab/bitbucket/stash page from Emacs") - (description - "This Emacs package allows you to open a target page on -github/gitlab (or bitbucket) by calling @code{browse-at-remote} command. -It supports dired buffers and opens them in tree mode at destination.") - (license license:gpl3+))) - -(define-public emacs-tiny - (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908") - (revision "1")) - (package - (name "emacs-tiny") - (version (git-version "0.2.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/tiny") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) - (home-page "https://github.com/abo-abo/tiny") - (synopsis "Quickly generate linear ranges in Emacs") - (description - "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}. -It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp -proficiency is an advantage, since you can transform your numeric range with -an elisp expression.") - (license license:gpl3+)))) - -(define-public emacs-emojify - (package - (name "emacs-emojify") - (version "1.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/iqbalansari/emacs-emojify") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons "^data/" %default-include))) - (propagated-inputs - `(("emacs-ht" ,emacs-ht))) - (home-page "https://github.com/iqbalansari/emacs-emojify") - (synopsis "Display emojis in Emacs") - (description "This package displays emojis in Emacs similar to how Github, -Slack, and other websites do. It can display plain ASCII like @code{:)} as -well as Github-style emojis like @code{:smile:}. It provides a minor mode -@code{emojify-mode} to enable the display of emojis in a buffer.") - (license license:gpl3+))) - -(define-public emacs-make-it-so - (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126") - (revision "2")) - (package - (name "emacs-make-it-so") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/make-it-so") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons "^recipes/" %default-include))) - (propagated-inputs - `(("emacs-ivy" ,emacs-ivy))) - (home-page "https://github.com/abo-abo/make-it-so") - (synopsis "Transform files with Makefile recipes") - (description "This package provides an interface for selecting from -different conversion recipes, often including tools like @code{ffmpeg} or -@code{convert}. The conversion command need only be written once, and -subsequent invocations can be readily customized. Several recipes are -included by default, and more can be readily added.") - (license license:gpl3+)))) - -(define-public emacs-unidecode - (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7") - (revision "1")) - (package - (name "emacs-unidecode") - (version (git-version "0.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sindikat/unidecode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons* "^tools/" "^data/" %default-include) - #:tests? #t - #:test-command '("emacs" "--batch" - "-l" "unidecode-test.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - (modify-phases %standard-phases - (add-before 'check 'make-tests-writable - (lambda _ - (make-file-writable "unidecode-test.el") - #t)) - (add-before 'check 'add-require - (lambda _ - (emacs-batch-edit-file "unidecode-test.el" - `(progn (progn (goto-char (point-min)) - (re-search-forward - "ert-deftest") - (forward-line -1) - (insert "(require 'unidecode)")) - (basic-save-buffer))) - #t))))) - (home-page "https://github.com/sindikat/unidecode") - (synopsis "Transliterate Unicode text to ASCII") - (description "This package provides functions for converting Unicode to ASCII.") - (license license:gpl2+)))) - -(define-public emacs-pubmed - (package - (name "emacs-pubmed") - (version "0.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/fvdbeek/emacs-pubmed.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-deferred" ,emacs-deferred) - ("emacs-esxml" ,emacs-esxml) - ("emacs-s" ,emacs-s) - ("emacs-unidecode" ,emacs-unidecode))) - (home-page "https://gitlab.com/fvdbeek/emacs-pubmed") - (synopsis "Interface to PubMed") - (description "This package provides an Emacs interface to the PubMed -database of references on life sciences.") - (license license:gpl3+))) - -(define-public emacs-websocket - (package - (name "emacs-websocket") - (version "1.12") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "websocket-" version ".tar")) - (sha256 - (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/websocket.html") - (synopsis "Emacs WebSocket client and server") - (description - "This is an Elisp library for WebSocket clients to talk to WebSocket -servers, and for WebSocket servers to accept connections from WebSocket -clients. This library is designed to be used by other library writers, to -write applications that use WebSockets, and is not useful by itself.") - (license license:gpl3+))) - -(define-public emacs-oauth2 - (package - (name "emacs-oauth2") - (version "0.13") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "oauth2-" version ".el")) - (sha256 - (base32 "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/oauth2.html") - (synopsis "OAuth 2.0 authorization protocol implementation") - (description - "This package provides an Elisp implementation of the OAuth 2.0 draft. -The main entry point is @code{oauth2-auth-and-store} which will return a token -structure. This token structure can be then used with -@code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to -retrieve any data that need OAuth authentication to be accessed. If the token -needs to be refreshed, the code handles it automatically and stores the new -value of the access token.") - (license license:gpl3+))) - -(define-public emacs-circe - (package - (name "emacs-circe") - (version "2.11") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jorgenschaefer/circe") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("buttercup" "-L" ".") - #:phases - (modify-phases %standard-phases - ;; The HOME environment variable should be set to an existing - ;; directory for the tests to succeed. - (add-before 'check 'set-home - (lambda _ - (setenv "HOME" "/tmp") - #t))))) - (native-inputs - `(("emacs-buttercup" ,emacs-buttercup))) - ;; In order to securely connect to an IRC server using TLS, Circe requires - ;; the GnuTLS binary. - (propagated-inputs - `(("gnutls" ,gnutls))) - (home-page "https://github.com/jorgenschaefer/circe") - (synopsis "Client for IRC in Emacs") - (description "Circe is a Client for IRC in Emacs. It integrates well with -the rest of the editor, using standard Emacs key bindings and indicating -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$") - ,@(package-arguments emacs-circe))) - (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 "a6d9f49bc6161f12c594d25254e77eedf4a67666") - (revision "8")) - (package - (name "emacs-slack") - (version (git-version "0.0.2" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/yuya373/emacs-slack") - (commit commit))) - (file-name (git-file-name name commit)) - (sha256 - (base32 - "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; HOME needs to exist for source compilation. - (add-before 'build 'set-HOME - (lambda _ (setenv "HOME" "/tmp") #t))))) - (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) - ("emacs-circe" ,emacs-circe))) - (home-page "https://github.com/yuya373/emacs-slack") - (synopsis "Slack client for Emacs") - (description "This package provides an Emacs client for the Slack -messaging service.") - (license license:gpl3+)))) - -(define-public emacs-bash-completion - (package - (name "emacs-bash-completion") - (version "2.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/szermatt/emacs-bash-completion") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0")))) - (inputs `(("bash" ,bash))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (λ _ - (for-each make-file-writable (find-files ".")) - #t)) - (add-before 'install 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (emacs-substitute-variables "bash-completion.el" - ("bash-completion-prog" (string-append bash "/bin/bash")))) - #t))))) - (home-page "https://github.com/szermatt/emacs-bash-completion") - (synopsis "Bash completion for the shell buffer") - (description - "@code{bash-completion} defines dynamic completion hooks for shell-mode -and shell-command prompts that are based on Bash completion.") - (license license:gpl2+))) - -(define-public emacs-easy-kill - (package - (name "emacs-easy-kill") - (version "0.9.3") - (source (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/easy-kill-" - version ".tar")) - (sha256 - (base32 - "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb")))) - (build-system emacs-build-system) - (home-page "https://github.com/leoliu/easy-kill") - (synopsis "Kill and mark things easily in Emacs") - (description - "This package provides commands @code{easy-kill} and @code{easy-mark} to -let users kill or mark things easily.") - (license license:gpl3+))) - -(define-public emacs-csv-mode - (package - (name "emacs-csv-mode") - (version "1.12") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "csv-mode-" version ".tar")) - (sha256 - (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j")))) - (build-system emacs-build-system) - (home-page "https://elpa.gnu.org/packages/csv-mode.html") - (synopsis "Major mode for editing comma/char separated values") - (description - "This Emacs package implements CSV mode, a major mode for editing records -in a generalized CSV (character-separated values) format.") - (license license:gpl3+))) - -(define-public emacs-transmission - (package - (name "emacs-transmission") - (version "0.12.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/holomorph/transmission") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry")))) - (build-system emacs-build-system) - (home-page "https://github.com/holomorph/transmission") - (synopsis "Emacs interface to a Transmission session") - (description "This package provides an Emacs interface to interact with a -running session of the Transmission Bittorrent client. - -Features: - -@itemize -@item List, add, start/stop, verify, remove torrents. -@item Set speed limits, ratio limits, bandwidth priorities, trackers. -@item Navigate to the corresponding file list, torrent info, peer info -contexts. -@item Toggle downloading and set priorities for individual files. -@end itemize\n") - (license license:gpl3+))) - -(define-public emacs-polymode - (package - (name "emacs-polymode") - (version "0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/polymode/polymode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b")))) - (build-system emacs-build-system) - (home-page "https://github.com/polymode/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 emacs-polymode-org - (package - (name "emacs-polymode-org") - (version "0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/polymode/poly-org") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-polymode" ,emacs-polymode))) - (properties '((upstream-name . "poly-org"))) - (home-page "https://github.com/polymode/poly-org") - (synopsis "Polymode definitions for Org mode buffers") - (description - "Provides definitions for @code{emacs-polymode} to support -@code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the -native modes of the blocks' languages while remaining inside the primary Org -buffer.") - (license license:gpl3+))) - -(define-public eless - (package - (name "eless") - (version "0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kaushalmodi/eless") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb")))) - (build-system trivial-build-system) - (inputs - `(("bash" ,bash))) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (copy-recursively (assoc-ref %build-inputs "source") "source") - (chdir "source") - (substitute* "eless" (("/usr/bin/env bash") - (string-append (assoc-ref %build-inputs "bash") - "/bin/bash"))) - (install-file "eless" (string-append %output "/bin")) - (install-file "doc/eless.info" (string-append %output "/share/info")) - #t))) - (home-page "https://github.com/kaushalmodi/eless") - (synopsis "Use Emacs as a paginator") - (description "@code{eless} provides a combination of Bash script -and a minimal Emacs view-mode. - -Feautures: - -@itemize -@item Independent of a user’s Emacs config. -@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config. -@item Not require an Emacs server to be already running. -@item Syntax highlighting. -@item Org-mode file rendering. -@item @code{man} page viewer. -@item Info viewer. -@item Dired, wdired, (batch edit symbolic links). -@item Colored diffs, git diff, git log, ls with auto ANSI detection. -@item Filter log files lines matching a regexp. -@item Auto-revert log files similar to @code{tail -f}. -@item Quickly change frame and font sizes. -@end itemize\n") - (license license:expat))) - -(define-public emacs-evil-matchit - (package - (name "emacs-evil-matchit") - (version "2.3.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/redguardtoo/evil-matchit") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/redguardtoo/evil-matchit") - (synopsis "Vim matchit ported into Emacs") - (description - "@code{evil-matchit} is a minor mode for jumping between matching tags in -evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.") - (license license:gpl3+))) - -(define-public emacs-evil-smartparens - (package - (name "emacs-evil-smartparens") - (version "0.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/expez/evil-smartparens") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil) - ("emacs-smartparens" ,emacs-smartparens))) - (home-page "https://github.com/expez/evil-smartparens") - (synopsis "Emacs Evil integration for Smartparens") - (description "@code{emacs-evil-smartparens} is an Emacs minor mode which -makes Evil play nice with Smartparens. Evil is an Emacs minor mode that -emulates Vim features and provides Vim-like key bindings.") - (license license:gpl3+))) - -(define-public emacs-evil-quickscope - (package - (name "emacs-evil-quickscope") - (version "0.1.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/blorbx/evil-quickscope") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil))) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "evil-quickscope-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/blorbx/evil-quickscope") - (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands") - (description "@code{emacs-evil-quickscope} highlights targets for Evil -mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a -port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim -features and provides Vim-like key bindings.") - (license license:gpl3+))) - -(define-public emacs-bongo - (package - (name "emacs-bongo") - (version "1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dbrock/bongo") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv")))) - (build-system emacs-build-system) - (home-page "https://github.com/dbrock/bongo") - (synopsis "Media player for Emacs") - (description - "This package provides a flexible media player for Emacs. @code{Bongo} -supports multiple backends such as @code{vlc}, @code{mpg123}, -@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and -@code{afplay}.") - (license license:gpl2+))) - -(define-public emacs-groovy-modes - (package - (name "emacs-groovy-modes") - (version "2.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-s" ,emacs-s))) - (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes") - (synopsis "Groovy related modes for Emacs") - (description - "This package provides @code{groovy-mode} for syntax highlighting in -Groovy source files, REPL integration with run-groovy and Grails project -navigation with the grails mode.") - (license license:gpl3+))) - -(define-public emacs-jenkinsfile-mode - (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8") - (revision "1")) - (package - (name "emacs-jenkinsfile-mode") - (version (git-version "0.0.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/john2x/jenkinsfile-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx")))) - (propagated-inputs - `(("emacs-groovy-modes" ,emacs-groovy-modes))) - (build-system emacs-build-system) - (home-page "https://github.com/john2x/jenkinsfile-mode/") - (synopsis "Emacs major-mode for editing Jenkinsfile") - (description "This package provides a @code{jenkinsfile-mode} derived -from @code{groovy-mode} for editing Jenkins declarative pipeline files.") - (license license:gpl3+)))) - -(define-public emacs-org-tree-slide - (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5") - (revision "2")) - (package - (name "emacs-org-tree-slide") - (version (git-version "2.8.4" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/takaxp/org-tree-slide") - (commit commit))) - (sha256 - (base32 - "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (home-page "https://github.com/takaxp/org-tree-slide") - (synopsis "Presentation tool for org-mode") - (description - "Org-tree-slide provides a slideshow mode to view org-mode files. Use -@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and -@kbd{C-<} to jump to the next and previous slide.") - (license license:gpl3+)))) - -(define-public emacs-scratch-el - (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897") - (revision "1")) - (package - (name "emacs-scratch-el") - (version (git-version "1.2" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ieure/scratch-el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf")))) - (build-system emacs-build-system) - (native-inputs - `(("texinfo" ,texinfo))) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (unless (invoke "makeinfo" "scratch.texi") - (error "makeinfo failed")) - (install-file "scratch.info" - (string-append (assoc-ref outputs "out") - "/share/info")) - #t))))) - (home-page "https://github.com/ieure/scratch-el/") - (synopsis "Create scratch buffers with the same mode as current buffer") - (description "Scratch is an extension to Emacs that enables one to create -scratch buffers that are in the same mode as the current buffer. This is -notably useful when working on code in some language; you may grab code into a -scratch buffer, and, by virtue of this extension, do so using the Emacs -formatting rules for that language.") - (license license:bsd-2)))) - -(define-public emacs-kv - (package - (name "emacs-kv") - (version "0.0.19") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nicferrier/emacs-kv") - (commit "721148475bce38a70e0b678ba8aa923652e8900e"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" "-l" "kv-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/nicferrier/emacs-kv") - (synopsis "Key/Value data structures library for Emacs Lisp") - (description "@code{emacs-kv} is a collection of tools for dealing with -key/value data structures such as plists, alists and hash-tables in Emacs -Lisp.") - (license license:gpl3+))) - -(define-public emacs-esxml - (package - (name "emacs-esxml") - (version "0.3.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tali713/esxml") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-sources - (lambda _ - ;; See: https://github.com/tali713/esxml/pull/28. - (substitute* "css-lite.el" - ((";;; main interface") - (string-append ";;; main interface\n" - "(require 'cl-lib)")) - (("mapcan") - "cl-mapcan") - (("',\\(cl-mapcan #'process-css-rule rules\\)") - "(cl-mapcan #'process-css-rule ',rules)")) - (substitute* "esxml-form.el" - ((",esxml-form-field-defn") - "#'esxml-form-field-defn")) - ;; See: https://github.com/tali713/esxml/issues/25 - (delete-file "esxpath.el") - #t))))) - (propagated-inputs - `(("emacs-kv" ,emacs-kv))) - (home-page "https://github.com/tali713/esxml/") - (synopsis "SXML for EmacsLisp") - (description "This is XML/XHTML done with S-Expressions in EmacsLisp. -Simply, this is the easiest way to write HTML or XML in Lisp. This library -uses the native form of XML representation as used by many libraries already -included within Emacs. See @code{esxml-to-xml} for a concise description of -the format.") - (license license:gpl3+))) - -(define-public emacs-nov-el - (package - (name "emacs-nov-el") - (version "0.3.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://depp.brause.cc/nov.el.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'embed-path-to-unzip - (lambda _ - (substitute* "nov.el" - (("\\(executable-find \"unzip\"\\)") - (string-append "\"" (which "unzip") "\""))) - #t))))) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-esxml" ,emacs-esxml))) - (inputs - `(("unzip" ,unzip))) - (home-page "https://depp.brause.cc/nov.el/") - (synopsis "Major mode for reading EPUBs in Emacs") - (description "@code{nov.el} provides a major mode for reading EPUB -documents. - -Features: - -@itemize -@item Basic navigation (jump to TOC, previous/next chapter) -@item Remembering and restoring the last read position -@item Jump to next chapter when scrolling beyond end -@item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{