diff options
Diffstat (limited to 'gnu/packages/emacs-xyz.scm')
-rw-r--r-- | gnu/packages/emacs-xyz.scm | 5704 |
1 files changed, 3979 insertions, 1725 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index c5d49c2925..ba2916a463 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016, 2018, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com> @@ -14,7 +14,7 @@ ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2016-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2016-2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> @@ -31,7 +31,7 @@ ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> -;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com> ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz> @@ -81,7 +81,7 @@ ;;; Copyright © 2020, 2021, 2022 Niklas Eklund <niklas.eklund@posteo.net> ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com> ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org> -;;; Copyright © 2020, 2021 Zhu Zihao <all_but_last@163.com> +;;; Copyright © 2020-2022 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io> ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com> ;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net> @@ -117,6 +117,11 @@ ;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com> ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> +;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> +;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net> +;;; Copyright © 2023 Simon Streit <simon@netpanic.org> +;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -194,7 +199,9 @@ #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages libevent) + #:use-module (gnu packages lisp) #:use-module (gnu packages lisp-xyz) + #:use-module (gnu packages lsof) #:use-module (gnu packages lua) #:use-module (gnu packages music) #:use-module (gnu packages version-control) @@ -245,6 +252,8 @@ #:use-module (gnu packages ocaml) #:use-module (gnu packages erlang) #:use-module (gnu packages statistics) + #:use-module (gnu packages libcanberra) + #:use-module (gnu packages wget) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -256,7 +265,7 @@ (define-public emacs-geiser (package (name "emacs-geiser") - (version "0.26.1") + (version "0.28.2") (source (origin (method git-fetch) @@ -265,7 +274,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1k5ligm1aba9b6dqg0yi86a2y2fhnxi7jsjgxj9jw7icgfa11djn")))) + (base32 "01sif1pw3shhdzcg9vidc2j5cqmrgjh5kynicf5mh3kmlvvsg9k6")))) (build-system emacs-build-system) (arguments '(#:phases @@ -303,7 +312,7 @@ e.g. emacs-geiser-guile for Guile.") (define-public emacs-geiser-guile (package (name "emacs-geiser-guile") - (version "0.26.1") + (version "0.28.1") (source (origin (method git-fetch) @@ -312,7 +321,7 @@ e.g. emacs-geiser-guile for Guile.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "06939mv9i7zzqvq71d0ixk3y9135132f3pk9jgjdwvacl1d31h8k")))) + (base32 "0gp8xbfm7y2gabjyys8jylfy1pkkglqas32xxrbqxfh1hv0cfh2f")))) (build-system emacs-build-system) (arguments (list @@ -552,6 +561,51 @@ optional baked-in Evil support, antialiased separators, and an easy configuration language which makes it trivial to write your own themes.") (license license:gpl3+)))) +(define-public emacs-inspector + (let ((commit "cab7ea001baa54eff6393f171e9ef1f69258d5ac")) ;version bump + (package + (name "emacs-inspector") + (version "0.15") + (source + (origin + (uri (git-reference + (url "https://github.com/mmontone/emacs-inspector") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "00gh9s3868w0zbhcsqsvq5wqgcfpa4j7sxqwzxcxb51cmrnhp30l")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "emacs" "-Q" "--batch" + "-L" "." + "-l" "inspector-tests.el" + "-l" "tree-inspector-tests.el" + "-f" "ert-run-tests-batch-and-exit") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'preserve-emacs-28-compatibility + ;; XXX: `cl-constantly' function is defined in "cl-lib" starting + ;; from Emacs 29+. For now, replace it with its definition. + (lambda _ + (substitute* "tree-inspector.el" + (("cl-constantly") "lambda (_)")))) + (add-before 'check 'skip-failing-test + (lambda _ + (substitute* "tree-inspector-tests.el" + (("\\(ert-deftest inspector-tests--inspect-struct-test.*" all) + (string-append all " (skip-unless nil)")))))))) + (native-inputs (list emacs-ert-runner)) + (propagated-inputs (list emacs-treeview)) + (home-page "https://github.com/mmontone/emacs-inspector") + (synopsis "Inspection tool for Emacs Lisp objects") + (description + "This package provides an introspection tool similar to those found in +Common Lisp or Smalltalk, but for Emacs Lisp.") + (license license:gpl3+)))) + (define-public emacs-terminal-here (package (name "emacs-terminal-here") @@ -574,6 +628,49 @@ Emacs, whose initial working directories are determined in relation to the current buffer.") (license license:gpl3+))) +(define-public emacs-treeview + (let ((commit "d9c10feddf3b959e7b33ce83103e1f0a61162723") + (revision "0")) + (package + (name "emacs-treeview") + (version (git-version "1.1.1" revision commit)) + (source + (origin + (uri (git-reference + (url "https://github.com/tilmanrassy/emacs-treeview") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "14s0b6zbapsvgyxki59lglwb3s8wjsjwkgj5r66af9nj2bgz5ms9")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (home-page "https://github.com/tilmanrassy/emacs-treeview/") + (synopsis "Emacs Lisp framework for tree navigation") + (description + "Abstract Emacs Lisp framework for tree navigation.") + (license license:gpl3+)))) + +(define-public emacs-hide-lines + (package + (name "emacs-hide-lines") + (version "20210513.1636") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vapniks/hide-lines.git") + (commit "f0828c15e50db5eddb905de783e7683b04d1eca3"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pw0wp1pzy6snycvz12nj0q7jxxj07h3lqas184w44nhrira7qhj")))) + (build-system emacs-build-system) + (home-page "https://github.com/vapniks/hide-lines") + (synopsis "Commands for hiding lines based on a regexp") + (description + "This package provides commands to hide lines based on a regular +expression.") + (license license:gpl3+))) + (define-public emacs-hgignore-mode ;; From 2021-03-14. ;; No releases available. @@ -600,6 +697,34 @@ editing @file{.hgignore} files used by the Mercurial version control system.") (license license:gpl3+)))) +(define-public emacs-hsluv + (package + (name "emacs-hsluv") + (version "20181127.1206") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hsluv/hsluv-emacs.git") + (commit "c3bc5228e30d66e7dee9ff1a0694c2b976862fc0"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19q8qlq4s2kfydpadkq1zd92611dvq7dr8vlhlbd9gplzpx7dhfd")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-seq)) + (home-page "https://github.com/hsluv/hsluv-emacs") + (synopsis "HSLuv color space conversions") + (description + "This package provides an elisp implementation of the HSLUV colorspace +conversions documented on @url{http://www.hsluv.org/}. HSLuv is a +human-friendly alternative to HSL. CIELUV is a color space designed for +perceptual uniformity based on human experiments. When accessed by polar +coordinates, it becomes functionally similar to HSL with a single problem: its +chroma component doesn't fit into a specific range. HSLuv extends CIELUV with +a new saturation component that allows you to span all the available chroma as +a neat percentage.") + (license license:expat))) + (define-public emacs-platformio-mode (package (name "emacs-platformio-mode") @@ -638,6 +763,8 @@ uploading PlatformIO projects.") "DEMO-ROLO.otl" "HY-ABOUT" "man/hkey-help.txt" + "man/hyberbole.info" + "kotl/.*" "\\.kotl$" %default-include) #:phases @@ -654,6 +781,13 @@ uploading PlatformIO projects.") (("\\(hyperb:check-dir-user\\)") "")) (substitute* "hgnus.el" (("hmail ") "hmail hvar ")))) + (add-after 'install 'install-doc + (lambda _ + (install-file "man/hyperbole.info" + (string-append #$output "/share/info")) + (install-file "man/hkey-help.txt" + (string-append #$output "/share/doc/" + #$name "-" #$version)))) (add-after 'install 'install-images (lambda _ (let ((dir (string-append #$output "/share/info/im"))) @@ -721,7 +855,7 @@ comparing large files in batches.") (define-public emacs-package-build (package (name "emacs-package-build") - (version "3.1") + (version "4.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -730,7 +864,7 @@ comparing large files in batches.") (file-name (git-file-name name version)) (sha256 (base32 - "1gkqav0ipfk5gsklxrbggqrbphr12qg1qr6dpdi4f0hs0i11fr23")))) + "165gbrc1h1yj764kn3qq2y1551y04lqnklfa0k87gqgd38q5v985")))) (build-system emacs-build-system) (home-page "https://github.com/melpa/package-build") (synopsis "Tools for assembling an Emacs package archive") @@ -739,41 +873,36 @@ Emacs package archive}.") (license license:gpl3+))) (define-public emacs-paredit - ;; The last tagged release is from 2014; use the latest commit, which - ;; includes many fixes such as honoring the 'fill-paragraph-function' - ;; variable. - (let ((commit "d0b1a2f42fb47efc8392763d6487fd027e3a2955") - (revision "1")) - (package - (name "emacs-paredit") - (version (git-version "24" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://mumble.net/~campbell/git/paredit.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1x91xxvwb3r3h61ff1kknlaakxm1a40r7zg2lck9j52yiza4f191")))) - (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 + (package + (name "emacs-paredit") + (version "26") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://mumble.net/~campbell/git/paredit.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hwl2jhv1fhsdrspfhprq77n763i4zsj350q024ajy0m2kaql6ws")))) + (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 +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+)))) + (license license:gpl3+))) (define-public emacs-puni ;; No tagged release upstream - (let ((commit "ed4a863460329a3019c286ff382e2ddc0ffdc9d7") - (revision "0")) + (let ((commit "28836e98d5566172b1a94d7b38290d07b49201b2") + (revision "1")) (package (name "emacs-puni") (version (git-version "0" revision commit)) @@ -785,7 +914,7 @@ when typing parentheses directly or commenting out code line by line.") (file-name (git-file-name name version)) (sha256 (base32 - "14lcqf0qdkq2rklx12v12qpgfahz2bpqmnl3bzcz5myawgjjcphd")))) + "1z35nzsqcp8q9nnka0d5gpiidl07qfqmd2giwnd3b3v7h3v1kwpz")))) (build-system emacs-build-system) (propagated-inputs (list emacs-with-editor)) (home-page "https://github.com/AmaiKinono/puni") @@ -824,16 +953,62 @@ of the segments available in that package using icons from information in the mode line.") (license license:expat))) +(define-public emacs-snow + (let ((commit "35ea06f19047ac99eaff9663cb035491c4a13e07") + (revision "0")) + (package + (name "emacs-snow") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/snow.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pcqvg70r1k73k3jxgz5qzwqsvwjnwvpfrbjf4b54smglz2nvz19")))) + (build-system emacs-build-system) + (home-page "https://github.com/alphapapa/snow.el/") + (synopsis "Let it snow in Emacs") + (description "This package adds a command @code{snow} that displays +a buffer in which it snows. The storm varies in intensity, a gentle breeze +blows at times, and snow accumulates on the terrain in the scene.") + (license license:gpl3+)))) + +(define-public emacs-spongebob + (let ((commit "ae8ae6ba0dc57b7357ba87ff0609d27c4a0a5f51") + (revision "0")) + (package + (name "emacs-spongebob") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/dustyweb/spongebob.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1agqpp078ij2irn0kb8bgqk0nd47fi20yfd9szn8kbqypfqalvgc")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/dustyweb/gauche") + (synopsis "Memetically mock a region of text") + (description "This package transforms text using @code{studlify-region} +and inserts a SpongeBob SquarePants ASCII art figure in the current +buffer.") + (license license:gpl3+)))) + (define-public emacs-project (package (name "emacs-project") - (version "0.8.1") + (version "0.9.6") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar")) (sha256 - (base32 "0q2js8qihlhchpx2mx0f992ygslsqri2q4iv8kcl4fx31lpp7c1k")))) + (base32 "11zxkfv756xsx6c87r66sm3k88hv5f623bp3hh1cp3j97hkd4b4d")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xref)) (home-page "https://elpa.gnu.org/packages/project.html") @@ -906,11 +1081,11 @@ on stdout instead of using a socket as the Emacsclient does.") (license license:gpl3+))) (define-public emacs-libgit - (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a") + (let ((commit "ab1a53a6a0120872e42582fc980e779d47de6d0e") (revision "1")) (package (name "emacs-libgit") - (version (git-version "20200515" revision commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -919,11 +1094,7 @@ on stdout instead of using a socket as the Emacsclient does.") (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")) + "1fqqhc7mr9lyshqva8wqknk5kc9vr10rxdp9dkrqgwawr3lk1k5p")) (snippet #~(begin ;; bundled, use the one shipped with emacs instead @@ -931,146 +1102,149 @@ on stdout instead of using a socket as the Emacsclient does.") ;; 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 + (list + #:configure-flags #~(list "-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) + #: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 'patch-source - (lambda _ - ;; Use Emacs 28 unibyte strings. - ;; XXX: This now breaks if linked against Emacs <= 26, probably - ;; also 27. - (substitute* "src/egit-blob.c" - (("make_string") "make_unibyte_string")))) - (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 (emacs:elpa-directory out) "/libegit2.so")))))) - (add-before 'install 'prepare-for-install - (lambda _ - (let ((s "../source")) - (copy-file "libegit2.so" (string-append s "/libegit2.so")) - (chdir s)))) - (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 'unpack 'emacs-add-install-to-native-load-path - (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path)) - (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))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; Use Emacs 28 unibyte strings. + ;; XXX: This now breaks if linked against Emacs <= 26, probably + ;; also 27. + (substitute* "src/egit-blob.c" + (("make_string") "make_unibyte_string")))) + (add-after 'unpack 'set-libgit--module-file + (lambda _ + (emacs-substitute-variables "libgit.el" + ("libgit--module-file" + (string-append (emacs:elpa-directory #$output) + "/libegit2.so"))))) + (add-after 'unpack 'skip-failing-tests + ;; XXX: Skip 2 failing tests (out of 29). + (lambda _ + (substitute* "test/submodule-test.el" + (("\\(ert-deftest (status|ids) .*" all) + (string-append all " (skip-unless nil)"))))) + (add-before 'install 'prepare-for-install + (lambda _ + (let ((s "../source")) + (copy-file "libegit2.so" (string-append s "/libegit2.so")) + (chdir s)))) + (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 'unpack 'emacs-add-install-to-native-load-path + (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path)) + (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 - (list pkg-config emacs-no-x git-minimal)) + (list emacs-no-x git-minimal pkg-config)) (inputs (list 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+)))) + (license license:gpl2+)))) (define-public emacs-magit - (package - (name "emacs-magit") - (version "3.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/magit") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn")))) - (build-system emacs-build-system) - (arguments - (list - #:tests? #t - #:test-command #~(list "make" "test") - #:exclude #~(cons* "magit-libgit.el" - "magit-libgit-pkg.el" - %default-exclude) - #: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$")))) - (add-after 'build-info-manual 'set-magit-version - (lambda _ - (make-file-writable "lisp/magit.el") - (emacs-substitute-variables "lisp/magit.el" - ("magit-version" #$version)))) - (add-after 'set-magit-version 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (make-file-writable "lisp/magit-sequence.el") - (emacs-substitute-variables "lisp/magit-sequence.el" - ("magit-perl-executable" - (search-input-file inputs "/bin/perl"))))) - (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. - (substitute* "t/magit-tests.el" - (("^\\(ert-deftest magit-toplevel:tramp.*" all) - (string-append all " (skip-unless nil)"))))) - (replace 'expand-load-path - (lambda args - (with-directory-excursion "lisp" - (apply (assoc-ref %standard-phases 'expand-load-path) args)))) - (replace 'install - (lambda args - (with-directory-excursion "lisp" - (apply (assoc-ref %standard-phases 'install) args))))))) - (native-inputs - (list texinfo)) - (inputs - (list git perl)) - (propagated-inputs - (list emacs-dash 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 + (let ((commit "c883fabe28a74d59d996cbef3f742874f3459bc0") + (revision "2")) + (package + (name "emacs-magit") + (version (git-version "3.3.0" 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 "0cq2bgny5jac1n9h7hp0pkipil41sf079h2qh5rh7bj0085dc7wv")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "make" "test") + #:exclude #~(cons* "magit-libgit.el" + "magit-libgit-pkg.el" + %default-exclude) + #: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 "docs" "\\.info$")))) + (add-after 'build-info-manual 'set-magit-version + (lambda _ + (make-file-writable "lisp/magit.el") + (emacs-substitute-variables "lisp/magit.el" + ("magit-version" #$version)))) + (add-after 'set-magit-version 'patch-exec-paths + (lambda* (#:key inputs #:allow-other-keys) + (for-each make-file-writable + (list "lisp/magit-git.el" "lisp/magit-sequence.el")) + (emacs-substitute-variables "lisp/magit-git.el" + ("magit-git-executable" + (search-input-file inputs "/bin/git"))) + (emacs-substitute-variables "lisp/magit-sequence.el" + ("magit-perl-executable" + (search-input-file inputs "/bin/perl"))))) + (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"))) + (replace 'expand-load-path + (lambda args + (with-directory-excursion "lisp" + (apply (assoc-ref %standard-phases 'expand-load-path) args)))) + (replace 'install + (lambda args + (with-directory-excursion "lisp" + (apply (assoc-ref %standard-phases 'install) args))))))) + (native-inputs + (list texinfo)) + (inputs + (list git perl)) + (propagated-inputs + (list emacs-dash emacs-with-editor emacs-compat)) + (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+))) + (license license:gpl3+)))) (define-public emacs-magit-svn (package @@ -1148,17 +1322,39 @@ process, passing on the arguments as command line arguments.") "Magit-annex adds a few git-annex operations to the Magit interface.") (license license:gpl3+))) +(define-public emacs-malyon + (package + (name "emacs-malyon") + (version "20161204") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/speedenator/malyon/") + (commit "0d9882650720b4a791556f5e2d917388965d6fc0"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0an1yvp0p624rxd8n5phiwvznw35ripqhlwzwyv2bw7lc1rscllr")))) + (build-system emacs-build-system) + (home-page "https://github.com/speedenator/malyon") + (synopsis "Z-machine interpreter") + (description + "Malyon is a Z-machine interpreter for playing text-based adventure +games. Malyon plays version 3 (.z3), version 5 (.z5), and version 8 (.z8) z +code files.") + (license license:expat))) + (define-public emacs-mct (package (name "emacs-mct") - (version "0.5.0") + (version "0.5.1") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/protesilaos/mct") (commit version))) (sha256 - (base32 "0714n5nim0hyd5jywvvddka2gi2bhi1vkrbhx75mdn8h50r688kq")) + (base32 "0vmlss546z0x8y26cxb1iis926pwjfv466gwm0clb8jfqkvr0qmh")) (file-name (git-file-name name version)))) (native-inputs (list texinfo)) (build-system emacs-build-system) @@ -1185,6 +1381,38 @@ leveraging built-in functionality.") (license (list license:gpl3+ license:fdl1.3+)))) ; GFDLv1.3+ for the manual +(define-public emacs-fzf + (let ((commit "21912ebc7e1084aa88c9d8b7715e782a3978ed23") + (revision "0")) + (package + (name "emacs-fzf") + (version (git-version "0.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bling/fzf.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gdqjh8996hb06bnnyhi94k69mjfrzyfgq00a9s4wwagv28sqmkj")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #f ;no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-fzf-executable + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "fzf.el" + ("fzf/executable" (search-input-file inputs "/bin/fzf")))))))) + (inputs (list fzf)) + (home-page "https://github.com/bling/fzf.el") + (synopsis "Emacs front-end for Fzf finder") + (description "This package provides an Emacs front-end for Fzf general +purpose finder.") + (license license:gpl3+)))) + (define-public emacs-minions (package (name "emacs-minions") @@ -1220,10 +1448,10 @@ Alternatively the menu can be bound globally, for example: (define-public emacs-nano-modeline ;; No tagged release upstream. The commit below matches latest version ;; bump. - (let ((commit "823161c8894996e5c8375249f467a422579a2947")) + (let ((commit "61f62aa4716eae4fa89961955323d146e9791fca")) (package (name "emacs-nano-modeline") - (version "0.7.1") + (version "0.7.2") (source (origin (method git-fetch) (uri (git-reference @@ -1232,7 +1460,7 @@ Alternatively the menu can be bound globally, for example: (file-name (git-file-name name version)) (sha256 (base32 - "1g59g1r7gs1pz7wbh07k9p47qp7fygd1gc5kwbd0s5w42zhc6mid")))) + "1zwf3mp0z4vc36lg057vspk7dr8chcvhivm1l8q7p3m9b6xw8ask")))) (build-system emacs-build-system) (home-page "https://github.com/rougier/nano-modeline") (synopsis "Emacs minor mode controlling mode line") @@ -1265,6 +1493,29 @@ this one is much simpler and much more consistent. When using this package, then only the color of the mode line changes when a window becomes in-/active.") (license license:gpl3+))) +(define-public emacs-acme-theme + (let ((commit "7c408d111c5e451ecb8fdd5f76cf7d8074aec793") + (revision "0")) + (package + (name "emacs-acme-theme") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/ianyepan/acme-emacs-theme") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16qxspzlf0bvw36ff4qnrn5p7mc5sf923ba0ar04cr87bfqgyak4")))) + (build-system emacs-build-system) + (home-page "https://github.com/ianyepan/acme-emacs-theme") + (synopsis "Emacs theme inspired by Plan 9's Acme and Sam Editor") + (description "Acme theme is an Emacs theme with an old-school vibe +inspired by Plan 9 Acme and the Sam text editor.") + (license license:gpl3+)))) + (define-public emacs-theme-magic ;; No tagged release upstream, but the commit below correspond to the 0.2.3 ;; release. @@ -1424,33 +1675,41 @@ you will die. The game builds the list of words from the active buffer.") (license license:gpl2+)))) (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"))) - (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 + (let ((commit "b57b5ca5d2d0837e1fb4a4f30c051d5f3e643f0f")) ;version bump + (package + (name "emacs-graphql") + (version "0.1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vermiculus/graphql.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18k2c2b7y5qgc7qpkqjmz1nv61w470ja3vwprmy5dlkzficzqsvf")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-failing-test + (lambda _ + (substitute* "test/graphql-test.el" + (("\\(ert-deftest correct-tag .*" all) + (string-append all " (skip-unless nil)")))))))) + (native-inputs (list emacs-ert-runner)) + (propagated-inputs (list emacs-ghub)) + (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+))) + (license license:gpl3+)))) (define-public emacs-graphql-mode ;; No tagged commit. No "Version" keyword either. @@ -1798,35 +2057,33 @@ 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 - (list emacs-dash - emacs-f - emacs-flycheck - emacs-haskell-mode - emacs-s - emacs-company - 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 + (package + (name "emacs-dante") + (version "1.7") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jyp/dante") + (commit version))) + (sha256 + (base32 + "0q7hackvaplh1f645ngd76f2ls5mvg93xicr3rkxr07hd36yihag")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-company + emacs-dash + emacs-f + emacs-flycheck + emacs-haskell-mode + emacs-lcr + emacs-s)) + (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+)))) + (license license:gpl3+))) (define-public emacs-flycheck (package @@ -1876,6 +2133,44 @@ 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-collection + (package + (name "emacs-flymake-collection") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mohkale/flymake-collection") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dxy1bljvd8rar0pivdrfahmgnnjlxm0mlks8mzw3l7k7b7jar6k")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "src"))) + (add-after 'chdir 'move-checkers + (lambda _ + ;; Move checkers to the top level, which is in the + ;; EMACSLOADPATH. + (for-each (lambda (f) + (rename-file f (basename f))) + (find-files "./checkers" ".*\\.el$"))))))) + (home-page "https://github.com/mohkale/flymake-collection/") + (synopsis "Collection of checkers for Flymake") + (description + "This package provides a comprehensive list of diagnostic-functions for +use with Flymake, give users the tools to easily define new syntax checkers +and help selectively enable or disable diagnostic functions based on major +modes.") + (license license:expat))) + (define-public emacs-flymake-flycheck (package (name "emacs-flymake-flycheck") @@ -2051,7 +2346,7 @@ Distributed @acronym{Source Control Management, SCM} system.") (define-public emacs-alarm-clock (package (name "emacs-alarm-clock") - (version "1.0.1") + (version "1.0.3") (source (origin (method git-fetch) (uri (git-reference @@ -2060,7 +2355,7 @@ Distributed @acronym{Source Control Management, SCM} system.") (file-name (git-file-name name version)) (sha256 (base32 - "11afq6lnlqdzbll015fx3031bslwfaz5362qgk2ipgqlk872559h")))) + "02gr5scf50js00xa1chvd0j7agr8bys5madzk96fwg0s4gfdmyqa")))) (build-system emacs-build-system) (arguments (list #:include #~(cons "alarm.mp3" %default-include) @@ -2296,14 +2591,14 @@ project root.") (define-public emacs-relint (package (name "emacs-relint") - (version "1.20") + (version "1.21") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "relint-" version ".tar")) (sha256 - (base32 "0r20dim2r4a4bv0fmgbnq3graa7hhlai55h9qyknapqbr2j1v1h7")))) + (base32 "12453agy7y3ayqn32fi11ljlnk8ck3i1aljw5wzm0yyqp00m73x3")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xr)) (home-page "https://github.com/mattiase/relint") @@ -2357,6 +2652,7 @@ or unexpected behavior inside an elisp configuration file (typically (uri (git-reference (url "https://github.com/emacs-w3m/emacs-w3m.git") (commit "bbcebbe20ebfa807a3e4beaadf40ce6f4be213e7"))) + (file-name (git-file-name name version)) (sha256 (base32 "0y892n8jaxzyxi1fgyklc7zfh57ibp4yyywmif69dm28hykj6lmz")))) @@ -2481,14 +2777,14 @@ incrementally confined in Isearch manner.") (define emacs-emms-print-metadata (package (name "emacs-emms-print-metadata") - (version "11") + (version "14") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "emms-" version ".tar")) (sha256 - (base32 "000lqhsafyh1n293ksnlyavxv1pzl5pazds4sgxjcqd45lyn55ii")))) + (base32 "0525vmi397q604z8i35zld3c4fkwbvxwir5lf4f1ji1bbvkzqavc")))) (build-system gnu-build-system) (arguments (list @@ -2729,6 +3025,28 @@ an interactive shell, and look up definitions and documentation as well as code completion and project management support.") (license license:gpl3+))) +(define-public emacs-auto-compile + (package + (name "emacs-auto-compile") + (version "1.7.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacscollective/auto-compile.git") + (commit version))) + (sha256 + (base32 + "1njnyilv6lxnbvi6yrgzg6qjhf6vgh4fpag4hav1j45718y6kd31")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-compat emacs-packed)) + (home-page "https://github.com/emacscollective/auto-compile") + (synopsis "Automatically compile Emacs Lisp libraries") + (description + "This package provides two minor modes which automatically recompile +Emacs Lisp source files. Together, these modes guarantee that Emacs never +loads outdated byte code files.") + (license license:gpl3+))) + (define-public emacs-auto-sudoedit (package (name "emacs-auto-sudoedit") @@ -2804,6 +3122,34 @@ 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-bbdb-vcard + ;; No release since Dec 1, 2013. + (let ((version "0.4.1") ;3d79fdb4200a64a043e203a3baac95c936095b52, not tagged + (revision "88") + (commit "113c66115ce68316e209f51ebce56de8dded3606")) + (package + (name "emacs-bbdb-vcard") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tohojo/bbdb-vcard") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sr5kd2gvw1b4hl147yb60cgx6j730vdnpyr09p7vmpw65hzwlwm")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-bbdb)) + (home-page "https://github.com/tohojo/bbdb-vcard") + (synopsis + "vCard Import and Export for The Insidious Big Brother Database (BBDB)") + (description + "@code{bbdb-vcard.el} imports and exports vCards (version 3.0) as +defined in RFC 2425 and RFC 2426 to/from The Insidious Big Brother Database +(BBDB). Version 2.1 vCards are converted into version 3.0 on import.") + (license license:gpl2+)))) + (define-public emacs-beacon (package (name "emacs-beacon") @@ -2826,6 +3172,57 @@ mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.") shine on top of your cursor so you know where it is.") (license license:gpl3+))) +(define-public emacs-paradox + (let ((commit "96401577ed02f433debe7604e49afd478e9eda61")) ;version bump + (package + (name "emacs-paradox") + (version "2.5.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Malabarba/paradox") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v9hmvq6bcr2hwlb09ldsd6pjl19ri5n2hl2bs3x52fqjj6fdzzn")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-hydra emacs-let-alist emacs-seq emacs-spinner)) + (home-page "https://github.com/Malabarba/paradox") + (synopsis "Paradox is an extension to Emacs packages menu") + (description + "Paradox is a project for modernizing Emacs' Package menu. It provides +improved appearance, mode-line information, GitHub integration, +customizability and asynchronous upgrading.") + (license license:gpl2+)))) + +(define-public emacs-carp + (let ((commit "17d3d84963434233997626850195f205882bf0df") + (revision "0")) + (package + (name "emacs-carp") + (version (git-version "0" revision commit)) + (source + (origin + (uri (git-reference + (url "https://github.com/carp-lang/carp-emacs") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "0mn4mg94hzzwb54kikg4c6hvf9ka15f2nz95g0clmn8r0mvkj4d5")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-clojure-mode emacs-flycheck)) + (home-page "https://github.com/carp-lang/carp-emacs") + (synopsis "Emacs support for Carp") + (description + "This package provides syntax highlighting, a minor mode for +listing type errors via Flycheck, as well as REPL support for Carp.") + (license license:asl2.0)))) + (define-public emacs-counsel-bbdb (package (name "emacs-counsel-bbdb") @@ -2929,7 +3326,7 @@ is set.") (define-public emacs-ctrlf (package (name "emacs-ctrlf") - (version "1.5") + (version "1.6") (source (origin (method git-fetch) @@ -2938,7 +3335,7 @@ is set.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1nd1yk86s0dyf87q77dg724f6629p270q3ar85jgp8gclw5plvyz")))) + (base32 "061id540spjycgy2xshj8kwgdngkjinznhx2qp5pmqzzx7z7rpfb")))) (build-system emacs-build-system) (home-page "https://github.com/raxod502/ctrlf/") (synopsis "Single-buffer text search in Emacs") @@ -3026,23 +3423,27 @@ links.") (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))))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'substitute-ag-path + (lambda* (#:key inputs #:allow-other-keys) + (make-file-writable "ag.el") + (emacs-substitute-variables "ag.el" + ("ag-executable" (search-input-file inputs "/bin/ag"))))) + (add-before 'install 'make-info + (lambda _ + (with-directory-excursion "docs" + (invoke "make" "info")))) + (add-after 'install 'install-info + (lambda _ + (install-file "docs/_build/texinfo/agel.info" + (string-append #$output "/share/info"))))))) + (inputs (list the-silver-searcher)) ; 'ag' executable (native-inputs (list python-sphinx texinfo)) (propagated-inputs - (list emacs-dash - emacs-s - the-silver-searcher)) ;'ag' executable + (list emacs-dash emacs-s)) (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 @@ -3085,7 +3486,7 @@ while paused.") (package (name "emacs-async") (home-page "https://github.com/jwiegley/emacs-async") - (version "1.9.6") + (version "1.9.7") (source (origin (method git-fetch) (uri (git-reference @@ -3094,7 +3495,7 @@ while paused.") (file-name (git-file-name name version)) (sha256 (base32 - "1q480ss2jgijdpy6pa4xrjni9pf5q6dwf8hv052fhdpi55bmfdn2")))) + "18pysi1pf6hbv6w0nq50j5xclvgd006iqqijh44wck9hxhdwyfr1")))) (build-system emacs-build-system) (synopsis "Asynchronous processing in Emacs") (description @@ -3107,14 +3508,14 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "13.1.4") + (version "13.1.8") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "auctex-" version ".tar")) (sha256 - (base32 "1r9qysnfdbiblq3c95rgsh7vgy3k4qabnj0vicqhdkca0cl2b2bj")))) + (base32 "0xw5gd8y5hy9h4c6isbk044n16gkcfafi2xyrs9ibvhrncrxph46")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). @@ -3366,7 +3767,7 @@ Its features are: (define-public emacs-citeproc-el (package (name "emacs-citeproc-el") - (version "0.9.1") + (version "0.9.2") (source (origin (method git-fetch) @@ -3375,7 +3776,7 @@ Its features are: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0rkwqn9pcimfcyq19wlrcij0kcjyhbwisla7vwbhjj8ang0bq9rm")))) + (base32 "0p9gch5iijia5pm9rzlv50xcad2g9mis9mc90nvh31in9xjcccpz")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support @@ -3398,7 +3799,7 @@ of bibliographic references.") (define-public emacs-corfu (package (name "emacs-corfu") - (version "0.27") + (version "0.34") (source (origin (method git-fetch) @@ -3407,7 +3808,7 @@ of bibliographic references.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "17cdbqkil4454kd3w77w18fv15djwg07qclgcnlp6mimp6sbam9w")))) + (base32 "0cv0hcgsw4l8lk3gqwqlw91m4kc2dd80ndx06rg6czd22qdrd68m")))) (build-system emacs-build-system) (arguments `(#:phases @@ -3455,7 +3856,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.") (define-public emacs-cape (package (name "emacs-cape") - (version "0.9") + (version "0.12") (source (origin (method git-fetch) @@ -3464,7 +3865,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "09lzzhx438s9wlpmiyyx9bbb2hlscf415f080bkz6gyw4nsdh0g4")))) + (base32 "1855wi6ghi42ngjq3qyjr3p1nc57s257v9c98wqmb2n6vca5p2lp")))) (build-system emacs-build-system) (home-page "https://github.com/minad/cape") (synopsis "Completion at point extensions for Emacs") @@ -3834,14 +4235,14 @@ window).") (define-public emacs-mmm-mode (package (name "emacs-mmm-mode") - (version "0.5.8") + (version "0.5.9") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "mmm-mode-" version ".tar")) (sha256 - (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4")))) + (base32 "12fss1ccb66xc87m5wpr3vg7bfrzz5m0q6s7pa0avvhsm2f8r2yh")))) (build-system emacs-build-system) (home-page "https://github.com/purcell/mmm-mode") (synopsis "Allow multiple major modes in an Emacs buffer") @@ -4003,7 +4404,7 @@ during idle time, while Emacs is doing nothing else.") (define-public emacs-pdf-tools (package (name "emacs-pdf-tools") - (version "0.91") + (version "1.0.0") (source (origin (method git-fetch) @@ -4012,7 +4413,7 @@ during idle time, while Emacs is doing nothing else.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "07ixspgn4s1jg66w7m2f3sh43giakz9srhp7rpw389z32g57i1rx")))) + (base32 "1idazz46zx2q84di4p73770l4bcnai2a03q95psg827ykdnmjwij")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -4063,7 +4464,7 @@ during idle time, while Emacs is doing nothing else.") (list cairo glib libpng poppler zlib)) (propagated-inputs (list emacs-tablist)) - (home-page "https://github.com/politza/pdf-tools") + (home-page "https://github.com/vedang/pdf-tools") (synopsis "Emacs support library for PDF files") (description "PDF Tools is, among other things, a replacement of DocView for PDF @@ -4109,6 +4510,7 @@ restore the saved place.") (uri (git-reference (url "https://github.com/jeremy-compostella/pdfgrep") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "17yqvvgkgxmcl8nc0mb9yaz884zcdnz7dwvfi4mxjzp1l05fvwjk")))) (build-system emacs-build-system) @@ -4185,20 +4587,20 @@ type, for example: packages, buffers, files, etc.") (license license:gpl3+))) (define-public emacs-guix - (let ((commit "c9aef52121b458297e70bb50f49f7276b4a8d759") - (revision "5")) + (let ((commit "cf5b7a402ea503c3dcda85a86b9a6c6dd01896e0") + (revision "6")) (package (name "emacs-guix") (version (git-version "0.5.2" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.com/emacs-guix/emacs-guix.git") + (url "https://git.savannah.gnu.org/git/guix/emacs-guix.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "00xdxadbi9fxpfp60zah9190rcz3w08vl1blbhmaiy7c1hd2gi39")))) + "0wxiipgv91rlk9bhspx370rykywi52rxg5m1f7680vzs3ckc7nyd")))) (build-system gnu-build-system) (arguments (list @@ -4220,9 +4622,8 @@ type, for example: packages, buffers, files, etc.") (native-inputs (list autoconf automake emacs-minimal pkg-config texinfo)) (inputs - `(("guile" - ,@(assoc-ref (package-native-inputs guix) "guile")) - ("guix" ,guix))) + (list (lookup-package-input guix "guile") + guix)) (propagated-inputs (list emacs-bui emacs-dash @@ -4231,7 +4632,7 @@ type, for example: packages, buffers, files, etc.") emacs-geiser-guile emacs-magit-popup guile-gcrypt)) - (home-page "https://emacs-guix.gitlab.io/website/") + (home-page "https://guix.gnu.org") (synopsis "Emacs interface for GNU Guix") (description "Emacs-Guix provides a visual interface, tools and features for the GNU @@ -4312,6 +4713,33 @@ 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-external-completion + (package + (name "emacs-external-completion") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://elpa.gnu.org/packages/external-completion-" version + ".tar")) + (sha256 + (base32 + "12pddwp5jby2icshj77w4kwxv75zi00jdxw18f721d7zx3l7q668")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/external-completion.html") + (synopsis "Let external tools control Emacs completion style") + (description + "The @code{external} completion style is used with a ``programmable +completion'' table that gathers completions from an external tool such as +a shell utility, an inferior process, an HTTP server. The table and external +tool are fully in control of the matching of the pattern string to the +potential candidates of completion. When @code{external} is in use, the usual +styles configured by the user or other in @code{completion-styles} are +ignored. This compromise is for speed: all other styles need the full data +set to be available in Emacs addressing space, which is often slow if not +completely unfeasible.") + (license license:gpl3+))) + (define-public emacs-kakoune ;; Package has no release. Version is extracted from "Version:" keyword in ;; main file. @@ -4585,7 +5013,6 @@ which is restored where possible when the file is loaded again.") (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") @@ -4593,6 +5020,27 @@ which is restored where possible when the file is loaded again.") strings.") (license license:gpl3+))) +(define-public emacs-inflections + (package + (name "emacs-inflections") + (version "2.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/eschulte/jump.el") + (commit version))) + (file-name (git-file-name name version)) + (snippet #~(begin (delete-file "jump.el"))) + (sha256 + (base32 "03fh7i6blnbc0zbmp83fk095hr3q4fdvrvfxad74zghcbc2nk7b7")))) + (build-system emacs-build-system) + (home-page "https://github.com/eschulte/jump.el") + (synopsis "Convert english words between singular and plural") + (description "This package provides an Emacs library for converting +english words between singular and plural.") + (license license:gpl3+))) + (define-public emacs-blight (let ((commit "6bf9c6192d2bf979eebbfae1963401ef3ff4ef5d") (revision "0")) @@ -4699,7 +5147,7 @@ Stack Overflow, Super User, and other StackExchange sites.") (define-public emacs-skempo (package (name "emacs-skempo") - (version "0.1.0") + (version "0.2.2") (source (origin (method git-fetch) @@ -4709,10 +5157,8 @@ Stack Overflow, Super User, and other StackExchange sites.") (file-name (git-file-name name version)) (sha256 (base32 - "0na465f27p6n64sf0pj0aqdi384m1wy3hxcc2d6a67hs39rkyvi9")))) + "0xsr6819qaad0y8rhfrf555c9w7cmgbgkf1a2svgbp7rhhnywl0a")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-parent-mode)) (home-page "https://github.com/xFA25E/skempo") (synopsis "Enhancements for skeleton/tempo + abbrev") (description @@ -4815,7 +5261,7 @@ files and directories.") (define-public emacs-fountain-mode (package (name "emacs-fountain-mode") - (version "3.6.0") + (version "3.6.2") (source (origin (method git-fetch) @@ -4824,7 +5270,13 @@ files and directories.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14cb4r23pn98sxzh0qwjwpvm7k7q9hhpks8avydccwssm69x1s1w")))) + (base32 "0mml0in6xxhfv4mdb7rl9k8m6xwmrjl5bb301p8d56sfng982pdl")))) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'add-contrib + (lambda _ + (copy-recursively "contrib" ".")))))) (build-system emacs-build-system) (home-page "https://github.com/rnkn/fountain-mode") (synopsis "Major mode for screenwriting in Fountain markup") @@ -4861,34 +5313,36 @@ representation.") (license license:gpl2+)))) (define-public emacs-git-gutter - (package - (name "emacs-git-gutter") - (version "0.92") - (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 "1fkp6iyisb3g5afyjkxz4yj4ws5f8n7whklck4jdf3014vs01b3c")))) - (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 + (let ((commit "ec28e85d237065cb3c28db4b66d129da6d309f9c") + (revision "0")) + (package + (name "emacs-git-gutter") + (version (git-version "0.92" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/syohex/emacs-git-gutter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fx3jp65ibcsv8akd8g4k701cs8yq0sg1bd2qszzfh6lvc4pblmi")))) + (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+))) + (license license:gpl3+)))) (define-public emacs-git-gutter-fringe - (let ((commit "16226caab44174301f1659f7bf8cc67a76153445") - (revision "1")) + (let ((commit "648cb5b57faec55711803cdc9434e55a733c3eba") + (revision "2")) (package (name "emacs-git-gutter-fringe") (version (git-version "0.23" revision commit)) @@ -4900,7 +5354,7 @@ display and behaviour is easily customisable.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm")))) + (base32 "13bqq5r8ys2mmw1ffsm6hn6fji0vq3nx3slw98c9dgbvlprkaiip")))) (build-system emacs-build-system) (propagated-inputs (list emacs-git-gutter emacs-fringe-helper)) @@ -4937,6 +5391,28 @@ 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-frowny + (package + (name "emacs-frowny") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/duckwork/frowny.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01ss3js71as1jpqcf0x9hfvapiyyhj9ni4y1n6wvqsghv5dcaiy0")))) + (build-system emacs-build-system) + (home-page "https://github.com/duckwork/frowny.el") + (synopsis "Insert frownies in Emacs :(") + (description "This package ships @code{frowny-mode}, which makes it so that +inserting a single @code{(} when after a @code{:} will not automatically close +the parenthesis, meaning that only @code{:(} is inserted. Works with +@code{electric-pair-mode}, @code{paredit-mode}, and others.") + (license license:public-domain))) + (define-public emacs-apache-mode (package (name "emacs-apache-mode") @@ -4963,7 +5439,7 @@ This mode supports Apache HTTP Server 2.4 and major modules.") (define-public emacs-apheleia (package (name "emacs-apheleia") - (version "3.0") + (version "3.1") (source (origin (method git-fetch) @@ -4972,7 +5448,7 @@ This mode supports Apache HTTP Server 2.4 and major modules.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0fpqh4wv69msfsnv3k88cai3nbja70ab5c02xf8gwfgg3613pjdd")))) + (base32 "1145zh7nqadgz5r2llwjwgj2aciv08mn2cpp3zlf0rf3awg86yg7")))) (build-system emacs-build-system) (home-page "https://github.com/raxod502/apheleia") (synopsis "Reformat buffer stably") @@ -5108,6 +5584,32 @@ tool for Emacs. Ecukes is not a complete clone of Cucumber and is not intended to be.") (license license:gpl3+))) +(define-public emacs-ef-themes + ;; XXX: Upstream did not tag last release. The commit below matches version + ;; bump. + (let ((commit "35201e49e8c3f5d1a2d6c17cb1697a9e18529a9a")) + (package + (name "emacs-ef-themes") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~protesilaos/ef-themes") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0c3gly6d5037dvvznf1mzihrfrcrrjmnsd2dda5k4frfyrc25rmn")))) + (build-system emacs-build-system) + (home-page "https://git.sr.ht/~protesilaos/ef-themes") + (synopsis "Colorful and legible themes") + (description + "The Ef themes are a collection of light and dark themes for GNU Emacs +whose goal is to provide colorful yet legible options for users who want +something with a bit more flair than the Modus themes.") + (license license:gpl3+)))) + (define-public emacs-espuds (package (name "emacs-espuds") @@ -5454,6 +5956,36 @@ detecting specific uses of Ruby, e.g. when using rails, and using a appropriate console.") (license license:gpl3+))) +(define-public emacs-zig-mode + (let ((commit "dbc648f5bca8f3b9ca2cc7827f326f5530115144") + (revision "0")) + (package + (name "emacs-zig-mode") + (version (git-version "0.0.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ziglang/zig-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hwkkwhc5b2pzyqa2h0xw8wxijsrp1fk70fhyv8hx19shzlc4la3")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:emacs emacs + #:test-command #~(list "emacs" "--batch" + "-l" "zig-mode.el" + "-f" "ert-run-tests-batch-and-exit"))) + (home-page "https://github.com/ziglang/zig-mode/") + (synopsis "Zig mode for Emacs") + (description + "This package provides syntax highlighting and automatic indentation +for the Zig programming language in Emacs.") + (license license:gpl3+)))) + (define-public emacs-znc (package (name "emacs-znc") @@ -5852,6 +6384,7 @@ boxes, and more.") (uri (git-reference (url "https://github.com/Chobbes/org-chef") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "0xdfaf3shl3iij7nnshb5ryccqq70rpk0zm0d3fdwdbfa8rf7fkp")))) (build-system emacs-build-system) @@ -5894,6 +6427,30 @@ allrecipes.com.") inline PDF preview in Org buffers by using pdf2svg.") (license license:gpl3+))) +(define-public emacs-org-rainbow-tags + ;; Upstream didn't tag version. + (let ((commit "c6040d228c5e8c5c6d33c7f81fc09d935ad1bcbd")) + (package + (name "emacs-org-rainbow-tags") + (version "0.1-pre") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KaratasFurkan/org-rainbow-tags") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "006nx01sby8k0fc9lf63ldf0sl94ihldyrvqr9r18fb1gpzvivl6")))) + (build-system emacs-build-system) + (home-page "https://github.com/KaratasFurkan/org-rainbow-tags") + (synopsis "Colorize Org tags automatically") + (description + "This package adds random colors to your Org tags. In order to make +colors random but consistent between same tags, colors are generated from the +hash of the tag names.") + (license license:gpl3+)))) + (define-public emacs-org-rich-yank (package (name "emacs-org-rich-yank") @@ -5989,10 +6546,10 @@ blocks with @code{org-babel} in @code{org-mode}.") (license license:gpl3+)))) (define-public emacs-ob-restclient - (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f")) + (let ((commit "1b021ce1c67c97fa1aa4d2c0816edb7add129e48")) (package (name "emacs-ob-restclient") - (version (git-version "0.02" "2" commit)) + (version (git-version "0.02" "3" commit)) (source (origin (method git-fetch) @@ -6001,7 +6558,7 @@ blocks with @code{org-babel} in @code{org-mode}.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq")))) + (base32 "1bcjj01q5n9w2cch6brbz8pzwnwsmdlgaa4sf5s97b9frmqb2ffg")))) (propagated-inputs (list emacs-restclient)) (build-system emacs-build-system) @@ -6124,7 +6681,7 @@ method and constant name completion.") (define-public emacs-robot-mode (package (name "emacs-robot-mode") - (version "0.6.1") + (version "0.7.0") (source (origin (method git-fetch) @@ -6133,7 +6690,7 @@ method and constant name completion.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "127lydk66n90ih39q8gxzb44rss2xllb7bn3ygxrf5m5vvl9w5rj")))) + (base32 "10i4lwjf60ms3dj8s7k9c0vb24rhszskhciz9lijphcdh8k622hz")))) (build-system emacs-build-system) (home-page "https://github.com/kopoli/robot-mode") (synopsis "Emacs mode for Robot Framework") @@ -6287,6 +6844,7 @@ configuration.") (uri (git-reference (url "https://github.com/TeMPOraL/nyan-mode/") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx")))) (build-system emacs-build-system) @@ -6387,8 +6945,8 @@ It is not intended as a user interface.") (make-file-writable "sqlite3.el") (emacs-substitute-sexps "sqlite3.el" ("(require 'sqlite3-api nil t)" - (string-append - "(module-load \"" #$output "/lib/sqlite3-api.so\")"))))) + `(module-load + ,(string-append #$output "/lib/sqlite3-api.so")))))) (add-before 'check 'build-emacs-module (lambda _ ;; Remove code that fetches constants from the SQLite website @@ -6463,31 +7021,40 @@ the speedbar window.") (license license:gpl3+))) (define-public emacs-shx - (package - (name "emacs-shx") - (version "1.5.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 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn")))) - (build-system emacs-build-system) - (arguments - `(#: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 + ;; XXX: Some tests fails in the latest stable release. + (let ((commit "b99d16f36bc278d668d8428c4bc9af77064c336a") + (revision "1")) + (package + (name "emacs-shx") + (version (git-version "1.5.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/riscy/shx-for-emacs") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wkqnc5n8if8fsh7f3bdr5nzn6dbj1nzdxlmnz8nflmx4g32fp6v")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command + #~(list "emacs" "--batch" "--quiet" "--script" "test/script.el") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'appease-checkdoc + (lambda _ + (substitute* "shx.el" + (("Toggle shx-mode on") "Toggle `shx-mode' on"))))))) + (home-page "https://github.com/riscy/shx-for-emacs") + (synopsis "Extras for the Comint mode shell") + (description + "This package extends 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 <filename>} to edit a -file).") - (license license:gpl3+))) +functions which plug into Emacs (e.g., use @code{:e <filename>} to edit +a file).") + (license license:gpl3+)))) (define-public emacs-names (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971") @@ -6806,39 +7373,36 @@ files which are intended to be packages.") (license license:gpl3+))) (define-public emacs-flymake-proselint - (let ((commit "6a99865c7ac6474b8c5d1f9a1ae2384667f06d36") - (revision "0")) - (package - (name "emacs-flymake-proselint") - (version (git-version "0.2.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~manuel-uberti/flycheck-proselint") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "028ilp9h22rlawlh5ydiykvi8pryyknwi019sjyxkk2h0fza9jan")))) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "flymake-proselint.el" - (("\"proselint\"") - (string-append - "\"" (search-input-file inputs "/bin/proselint") "\"")))))))) - (propagated-inputs - (list emacs-flycheck)) - (inputs - (list python-proselint)) - (home-page "https://git.sr.ht/~manuel-uberti/flycheck-proselint") - (synopsis "Flymake backend for @code{proselint}") - (description "This package adds support for @code{proselint} in Flymake.") - (license license:gpl3+)))) + (let ((commit "9c68ee881f18f554f0ab5bbf5bee1a4b753d792b")) + (package + (name "emacs-flymake-proselint") + (version "0.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~manuel-uberti/flymake-proselint") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1n8i17il2nfazw3d9kza2r7py61dgdr7kqmg0s1vhrk86qq39669")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-exec-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "flymake-proselint.el" + (("\"proselint\"") + (string-append + "\"" (search-input-file inputs "/bin/proselint") "\"")))))))) + (inputs + (list python-proselint)) + (home-page "https://git.sr.ht/~manuel-uberti/flymake-proselint") + (synopsis "Flymake backend for @code{proselint}") + (description "This package adds support for @code{proselint} in Flymake.") + (license license:gpl3+)))) (define-public emacs-elisp-demos (package @@ -6980,14 +7544,14 @@ user.") (define-public emacs-subed (package (name "emacs-subed") - (version "1.0.10") + (version "1.0.29") (source (origin (method url-fetch) (uri (string-append "https://elpa.nongnu.org/nongnu/subed-" version ".tar")) (sha256 (base32 - "08vw9sv2g76yj8sfnx53dd28zkj4s0842i7qi92jam993v9s8h0z")))) + "0q2sfdypj929y4fllk97rsb2bxm9a1izjy1f0z2viz5hz0hpqp26")))) (arguments (list #:tests? #t @@ -7102,14 +7666,14 @@ by a query, so both a link can refer to several mails.") (define-public emacs-debbugs (package (name "emacs-debbugs") - (version "0.33") + (version "0.35") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/debbugs-" version ".tar")) (sha256 - (base32 "1s4p3jf9yrm8pn5pljpkrw05n2p9v6fpl141rh1df7f7l0w80qbk")))) + (base32 "1w6y02ikjshfk12sdgbryfgj2z4yia2mpifa7g13ab7v9phpqpl1")))) (build-system emacs-build-system) (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) (propagated-inputs @@ -7159,7 +7723,7 @@ Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.") emacs-transient)) (home-page "https://docs.kyleam.com/piem") (synopsis "Glue for working with public-inbox archives") - (description "This packages provides a collection of Emacs libraries for + (description "This package provides a collection of Emacs libraries for working with public-inbox archives. As much of the hard work here is already done by other Emacs libraries—things like mail clients, news readers, Git interfaces, and even web browsers—piem is mostly about bridging some of these @@ -7318,18 +7882,15 @@ variables, and so on. The mode also allows you to execute Tup commands.") (define-public emacs-compat (package (name "emacs-compat") - (version "28.1.1.2") + (version "29.1.3.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~pkal/compat") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "compat-" version ".tar")) (sha256 (base32 - "19abp29rnbkw91q0h2yqm2z7awzzjhci8h6v875g5ahvplrp6337")))) + "025idv426a2igaz7ijf5njjdi53zm5lmf345a1smv03iqx3fyj81")))) (build-system emacs-build-system) - (propagated-inputs (list emacs-nadvice)) (home-page "https://git.sr.ht/~pkal/compat") (synopsis "Emacs Lisp Compatibility Library") (description @@ -7367,6 +7928,15 @@ 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* (%emacs-company-box-upstream-source #:key commit version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sebastiencs/company-box") + (commit commit))) + (file-name (git-file-name "emacs-company-box" version)) + (hash hash))) + (define-public emacs-company-box ;; There is no release yet. Version is extracted from the main ;; file. @@ -7378,13 +7948,74 @@ These are distributed in separate files and can be used individually.") (version (git-version version revision commit)) (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sebastiencs/company-box") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59")))) + (method (@@ (guix packages) computed-origin-method)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build emacs-utils) + (guix build utils)) + #~(begin + (use-modules (guix build utils) + (guix build emacs-utils)) + (let* ((dir (string-append "emacs-company-box-" #$version))) + + (set-path-environment-variable + "PATH" '("bin") + (list #+emacs-minimal + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package gzip) + #+(canonical-package tar))) + + ;; Copy the upstream source + (copy-recursively + #+(%emacs-lsp-treemacs-upstream-source + #:commit commit #:version version + #:hash + (content-hash + "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59")) + dir) + + (with-directory-excursion dir + ;; The icons are unclearly licensed and possibly non-free, + ;; see <https://github.com/emacs-lsp/lsp-treemacs/issues/123> + (with-directory-excursion "images" + (for-each delete-file-recursively + '("eclipse" "idea" "netbeans"))) + + ;; Also remove any mentions in the source code. + (make-file-writable "company-box-icons.el") + (emacs-batch-edit-file "company-box-icons.el" + '(progn + (while (search-forward-regexp + "(defvar company-box-icons-\\([a-z-]*\\)" + nil t) + (pcase (match-string 1) + ((or "images" + "all-the-icons" + "icons-in-terminal") nil) + (_ (beginning-of-line) + (kill-sexp))) + (basic-save-buffer)))) + + ;; Also patch source to not show broken icons as configuration + ;; option. + (substitute* "company-box-icons.el" + (("- .*, from.*editor.*") "") + (("\\(const :tag \"([a-z]*)\".*\\)" all tag) + (if (member tag + '("images" "all-the-icons" "icons-in-terminal")) + all + "")))) + + (invoke "tar" "cvfa" #$output + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + "--sort=name" + "--hard-dereference" + dir)))))))) (build-system emacs-build-system) (propagated-inputs (list emacs-company emacs-dash emacs-frame-local)) @@ -7403,7 +8034,7 @@ This package is not compatible with a TTY.") (define-public emacs-company-posframe (package (name "emacs-company-posframe") - (version "0.5.0") + (version "0.7.0") (source (origin (method git-fetch) (uri (git-reference @@ -7412,7 +8043,7 @@ This package is not compatible with a TTY.") (file-name (git-file-name name version)) (sha256 (base32 - "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm")))) + "03kj8yxd4y9aw86b6y6z5l9y76q5gjyiyhi5120nx1a8cwbd9g4a")))) (build-system emacs-build-system) (propagated-inputs (list emacs-company emacs-posframe)) @@ -7621,7 +8252,7 @@ features: (define-public emacs-company-math (package (name "emacs-company-math") - (version "1.4") + (version "1.5.1") (source (origin (method git-fetch) @@ -7630,10 +8261,10 @@ features: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1")))) + (base32 "1pj10i7ml5d2spcmf8035ngcq5zc6rs3lqx09d0qj6bsghglr6j3")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-math-symbol-lists emacs-company)) + (list emacs-company emacs-math-symbol-lists)) (home-page "https://github.com/vspinu/company-math") (synopsis "Completion backends for math symbols and @code{LaTeX} tags") (description @@ -8176,7 +8807,7 @@ in @code{html-mode}.") (define-public emacs-slime (package (name "emacs-slime") - (version "2.27") + (version "2.28") (source (origin (method git-fetch) @@ -8185,45 +8816,45 @@ in @code{html-mode}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2")))) + (base32 "1acmm4w1mv1qzpnkgc4wyiilbx8l0dk16sx8wv815ri5ks289rll")))) (build-system emacs-build-system) - (native-inputs - (list 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 ".")))) - (add-before 'install 'configure - (lambda* _ - (emacs-substitute-variables "slime.el" - ("inferior-lisp-program" "sbcl")))) - (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)) + (list + #:include #~(cons* "\\.lisp$" "\\.asd$" + "contrib" + "lib/hyperspec.el" + %default-include) + #:exclude #~(list "^slime-tests.el" "^contrib/test/" + "^contrib/Makefile$" "^contrib/README.md$") + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'configure + (lambda* _ + (emacs-substitute-variables "slime.el" + ("inferior-lisp-program" "sbcl")))) + (add-before 'install 'install-doc + (lambda _ + (let ((info-dir (string-append #$output "/share/info")) + (doc-dir (string-append #$output "/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"))))))) + (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"))))))) + (native-inputs + (list texinfo)) (home-page "https://github.com/slime/slime") (synopsis "Superior Lisp Interaction Mode for Emacs") (description @@ -8238,7 +8869,7 @@ for compilation, debugging, documentation lookup, and so on.") (define-public emacs-popup (package (name "emacs-popup") - (version "0.5.8") + (version "0.5.9") (source (origin (method git-fetch) @@ -8247,7 +8878,7 @@ for compilation, debugging, documentation lookup, and so on.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl")))) + (base32 "13ww7hld5pa32myj9krr6prmc99s7hnpsw8mw9krpxffykkblj2f")))) (build-system emacs-build-system) (home-page "https://github.com/auto-complete/popup-el") (synopsis "Visual Popup User Interface for Emacs") @@ -8276,7 +8907,7 @@ and popup menus.") (propagated-inputs (list emacs-pos-tip emacs-popup)) (home-page "https://github.com/waymondo/popup-kill-ring") (synopsis "Interactively insert item from kill-ring") - (description "This Emacs packages manages your Emacs kill-ring in an + (description "This Emacs package manages your Emacs kill-ring in an autocomplete style popup menu.") (license license:gpl3+)))) @@ -8304,10 +8935,50 @@ autocomplete style popup menu.") windows Emacs produces, while still keeping them within arm’s reach.") (license license:gpl3+)))) +(define-public emacs-pydoc + ;; https://github.com/statmobile/pydoc/issues/31 + (let ((commit "c8b667e17bfe3e63221f822c5c4d58c8fb4fea90") + (revision "0")) + (package + (name "emacs-pydoc") + (version (git-version "0.2" revision commit)) + (source + (origin + (uri (git-reference + (url "https://github.com/statmobile/pydoc") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "082ar5w28dknaa63mf587vdzr78xlnvh8lbxqq3hk6qa2c72akam")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-python-executable + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "pydoc.el" + ("pydoc-python-command" + (search-input-file inputs "bin/python"))))) + (add-after 'unpack 'patch-lsof-executable + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "pydoc.el" + (("\"lsof") + ;; Replace removed double quote in parsing of lsof executable. + (string-append "\"" (search-input-file inputs "bin/lsof"))))))))) + (inputs (list lsof python-wrapper)) + (propagated-inputs (list python-jedi)) + (home-page "https://github.com/statmobile/pydoc") + (synopsis "Navigate Python documentation in Emacs") + (description "This package provides an Emacs mode for navigating +Python documentation with @code{pydoc} in Emacs.") + (license license:gpl3+)))) + (define-public emacs-python-black (package (name "emacs-python-black") - (version "1.1.0") + (version "1.2.0") (source (origin (method git-fetch) @@ -8316,8 +8987,7 @@ windows Emacs produces, while still keeping them within arm’s reach.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m")))) + (base32 "1x6b67cs7kn8711fxr3fq8y9wcpf9g71asf9wiqfrk2mrfzli6a3")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-reformatter python-black-macchiato)) @@ -8455,6 +9125,91 @@ the locations of docstrings, arguments, and functions.") "This package provides a Company backend for Python.") (license license:gpl3+))) +(define-public emacs-elquery + (package + (name "emacs-elquery") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/AdamNiederer/elquery") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "035zjzmd7yfw0rsjpaklc2wwiqw6brkjadch9x8n8n2gjyxg05mn")))) + (build-system emacs-build-system) + (arguments + (list + #:emacs emacs-no-x + #:tests? #t + #:test-command #~(list "ert-runner") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-native-compilation + (lambda _ + (substitute* "elquery.el" + (("\\(1- \\(/ length \\(match-data\\)\\) 2\\)") + "(1- (/ (length (match-data)) 2))")))) + (add-before 'check 'disable-failing-tests + (lambda _ + (substitute* "test/elquery-test.el" + (("\\(ert-deftest elquery--write-test .*" all) + (string-append all "(skip-unless nil)\n")))))))) + (native-inputs + (list emacs-ert-runner emacs-undercover)) + (propagated-inputs + (list emacs-dash)) + (home-page "https://github.com/AdamNiederer/elquery/") + (synopsis "Read and manipulate HTML in Emacs") + (description + "Elquery is a library that lets you parse, query, set, and format HTML using +Emacs Lisp. It implements most of the @code{querySelector} API, and can get +and set HTML attributes.") + (license license:gpl3+))) + +(define-public emacs-cov + ;; XXX: Upstream made no release nor any tag so far. + (let ((commit "cd3e1995c596cc227124db9537792d8329ffb696") + (revision "0")) + (package + (name "emacs-cov") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/AdamNiederer/cov") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gyc0si60czhgrkm7kink1p1zj1h5j5nzif4ivm5bg78l28skmpm")))) + (build-system emacs-build-system) + (arguments + (list + #:emacs emacs-no-x ;for libxml + #:tests? #t + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'disable-failing-tests + (lambda _ + (substitute* "test/cov-test.el" + (("\\(ert-deftest cov--load-coverage-test-mtime-check .*" all) + (string-append all "(skip-unless nil)\n")))))))) + (native-inputs + (list emacs-ert-runner emacs-mocker emacs-undercover)) + (propagated-inputs + (list emacs-elquery emacs-f emacs-s)) + (home-page "https://github.com/AdamNiederer/cov/") + (synopsis "Emacs extension for displaying coverage data") + (description + "Cov shows code coverage data for your program in Emacs. It supports +currently @code{gcov}, @code{lcov}, @code{coverage.py}, and @code{clover} +output, as well as the Coveralls format produced by Undercover.") + (license license:gpl3+)))) + (define-public emacs-puppet-mode (package (name "emacs-puppet-mode") @@ -8511,22 +9266,51 @@ linting of manifests and integration with Puppet Debugger.") (description "This package provides an Emacs major mode for writing Purescript.") (license license:gpl3+)))) +(define-public emacs-new-purescript-mode + (let ((commit "9f7bb73e26340fcd2ea1946dbad165f0406eb3e1") + (revision "0")) + (package + (name "emacs-new-purescript-mode") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/justinwoo/new-purescript-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0b3499df0gfz8yrdxz9dpgwal21h50sciigwz25ri1hwv1c1i7k0")))) + (build-system emacs-build-system) + (home-page "https://github.com/justinwoo/new-purescript-mode/") + (synopsis "Simple PureScript mode for cheap syntax highlighting") + (description "New PureScript mode is a simple PureScript Emacs mode that +just provides syntax highlighting.") + (license license:expat)))) + (define-public emacs-god-mode (package (name "emacs-god-mode") - (version "2.17.3") + (version "2.18.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/chrisdone/god-mode") + (url "https://github.com/emacsorphanage/god-mode") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1wsc04l5j5a9y5439qx85pcchxjnjgcgwbffw3l30q9zlblvc58b")))) + "1njln47w25ix9w0xjv02110ngr8d8ma3w7db0x4xcxhihbl65zly")))) (build-system emacs-build-system) - (home-page "https://github.com/chrisdone/god-mode") + (arguments + (list #:tests? #true + #:test-command + #~(list "emacs" "--no-init-file" "--batch" + "--eval=(require 'ecukes)" "--eval=(ecukes)"))) + (native-inputs (list emacs-ecukes)) + (home-page "https://github.com/emacsorphanage/god-mode") (synopsis "Minor mode for entering commands without modifier keys") (description "This package provides a global minor mode for entering Emacs commands @@ -8754,7 +9538,7 @@ cards created in Org mode.") (define-public emacs-org-mime (package (name "emacs-org-mime") - (version "0.3.1") + (version "0.3.2") (source (origin (method git-fetch) @@ -8763,7 +9547,7 @@ cards created in Org mode.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "17380kpf08j5ai30nn5iks0k3x8sm3kmz8lkyr1v0qvpr5a8s70b")))) + (base32 "1w5z9irzk918mj75z5m0j2h8mms8v27x50kp7r3b01wblf0jd2zc")))) (build-system emacs-build-system) (home-page "https://github.com/org-mime/org-mime") (synopsis "Send HTML email using Org mode HTML export") @@ -8775,11 +9559,11 @@ email.") (license license:gpl3+))) (define-public emacs-org-msg - ;; No git tags. The commit below corresponds to the release of version 3.3. - (let ((commit "89e746c0a864031eef940758230bc7263a6f2289")) + ;; No git tags. The commit below corresponds to the release of version 4.0. + (let ((commit "60e22e446325a9b3387396459d98be7c1c52579d")) (package (name "emacs-org-msg") - (version "3.3") + (version "4.0") (source (origin (method git-fetch) @@ -8788,7 +9572,7 @@ email.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r")))) + (base32 "077g7gvn1k6i2x4m2kd3dkrznc89f5a5pd916wsmpy703pv0aca5")))) (build-system emacs-build-system) (propagated-inputs (list emacs-htmlize)) @@ -9336,6 +10120,7 @@ may export to Markdown so that it can be used for a web based CV.") (uri (git-reference (url "https://github.com/larstvei/ox-gfm") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8")))) @@ -9493,7 +10278,7 @@ them easier to distinguish from other, less important buffers.") (define-public emacs-embark (package (name "emacs-embark") - (version "0.17") + (version "0.19") (source (origin (method git-fetch) @@ -9501,7 +10286,7 @@ them easier to distinguish from other, less important buffers.") (url "https://github.com/oantolin/embark") (commit version))) (sha256 - (base32 "1s0ssf4q9kg4c5w87h2ypyvrhi31mz3s6k4h7pxi9a47lkccq8n1")) + (base32 "05c8p7rqv9p8p3nhgcjfr66hpsqazhnhwsnfdapxd9z7wrybqbg5")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -9528,7 +10313,7 @@ include installing, removing or visiting the homepage.") (define-public emacs-prescient (package (name "emacs-prescient") - (version "5.2.1") + (version "6.1") (source (origin (method git-fetch) @@ -9537,10 +10322,10 @@ include installing, removing or visiting the homepage.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0z97d7nnl1hgxj4fsvgw3hb3j4dc9wkdq2vq3dw607f29lwqiadk")))) + (base32 "1mc9pjb80bxcmzaylfwh0sgpvwbx3h35jalznwz464hw3vqfff83")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-company emacs-ivy emacs-selectrum)) + (list emacs-company emacs-corfu emacs-ivy emacs-selectrum emacs-vertico)) (home-page "https://github.com/raxod502/prescient.el/") (synopsis "Emacs library for sorting and filtering candidates") (description @@ -9575,43 +10360,44 @@ interface.") (license license:expat))) (define-public emacs-orderless - (package - (name "emacs-orderless") - (version "0.7") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/oantolin/orderless") - (commit version))) - (sha256 - (base32 "0m9nyz80j0qnn14drbgk8vn5yr7sv0z6yiz8w95ahcw2qwlgyjs7")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'makeinfo - (lambda* (#:key outputs #:allow-other-keys) - (invoke "makeinfo" "orderless.texi") - (install-file "orderless.info" - (string-append (assoc-ref outputs "out") - "/share/info"))))))) - (native-inputs - (list texinfo)) - (home-page "https://github.com/oantolin/orderless") - (synopsis "Emacs completion style that matches multiple regexps in any order") - (description "This package provides an orderless completion style that + (let ((commit "004cee6b8e01f8eb0cb1c683d0a637b14890600f")) + (package + (name "emacs-orderless") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oantolin/orderless") + (commit commit))) + (sha256 + (base32 "115bwqi2yc44bgvcl7lha8p2s6jgh5hksn4wa9s0kpfxhi14jwmy")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'makeinfo + (lambda _ + (invoke "makeinfo" "orderless.texi") + (install-file "orderless.info" + (string-append #$output "/share/info"))))))) + (native-inputs + (list texinfo)) + (home-page "https://github.com/oantolin/orderless") + (synopsis "Emacs completion style that matches multiple regexps in any order") + (description "This package provides an orderless completion style that divides the pattern into space-separated components, and matches candidates that match all of the components in any order. Each component can match in any one of several ways: literally, as a regexp, as an initialism, in the flex style, or as multiple word prefixes.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-consult (package (name "emacs-consult") - (version "0.19") + (version "0.31") (source (origin (method git-fetch) @@ -9619,7 +10405,7 @@ style, or as multiple word prefixes.") (url "https://github.com/minad/consult") (commit version))) (sha256 - (base32 "1lb7ci1kkgv07c4hcfxisr5zjx68hq15bqf4x3bhmnn13x38j7jw")) + (base32 "0ckyn4sdhc9dykbbdiin75jxza883dqa3g4mvf8qgsnzlqcjvvg6")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat)) @@ -9641,6 +10427,7 @@ list of candidates.") (uri (git-reference (url "https://github.com/mohkale/consult-bibtex") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "0jxjvpg3j8zk77sfhyy27fd1zbj2zz7xayavan3hhj4853q92kwq")))) @@ -9680,7 +10467,7 @@ replaced with the directory you choose.") (define-public emacs-consult-notmuch (package (name "emacs-consult-notmuch") - (version "0.7") + (version "0.8.1") (source (origin (method git-fetch) @@ -9689,14 +10476,14 @@ replaced with the directory you choose.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0xzpkpf2sb89qkbqcrwddp4pgnzdjp40bc5da22jq9r4pf67y7qs")))) + (base32 "0gcd69i99prnskh1na7clydqgh1y9rbzkdc6dy9zmin9hfdrw1yd")))) (build-system emacs-build-system) (propagated-inputs (list emacs-consult emacs-notmuch)) (home-page "https://codeberg.org/jao/consult-notmuch") (synopsis "Search and preview Notmuch emails using Consult") (description - "This package provides two commands using consult to query Notmuch emails + "This package provides two commands using Consult to query Notmuch emails and present results either as single emails or full trees.") (license license:gpl3+))) @@ -9712,6 +10499,7 @@ and present results either as single emails or full trees.") (uri (git-reference (url "https://github.com/jgru/consult-org-roam") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "0c2hjd2gw77h77487fzdqfybg0ricsvlnwwfxai9baawz37bcn7q")))) @@ -9746,6 +10534,67 @@ provides a front-end interface for the workspace/symbols LSP procedure call.") (license license:gpl3+))) +(define-public emacs-eglot-tempel + (let ((commit "e08b203d6a7c495d4b91ed4537506b5f1ea8a84f") + (revision "0")) + (package + (name "emacs-eglot-tempel") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fejfighter/eglot-tempel") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f4m0bb1f91x9jqfc0ny95a3pfh1mzzjzdjpa6f548hynq8j34ib")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "emacs" "-Q" "-batch" + "-l" "eglot-tempel-tests.el" + "-f" "ert-run-tests-batch-and-exit"))) + (native-inputs (list emacs-ert-runner)) + (propagated-inputs (list emacs-eglot emacs-tempel)) + (home-page "https://github.com/fejfighter/eglot-tempel") + (synopsis "Bridge for Tempel templates with Eglot") + (description "This package is an adapter to use the Tempel templating +library with Eglot instead of Yasnippet.") + (license license:gpl3+)))) + +(define-public emacs-consult-xdg-recent-files + (let ((commit "593023ffb99a368152ebd4e739488fa560bdfdea") + (revision "0")) + (package + (name "emacs-consult-xdg-recent-files") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hrehfeld/consult-xdg-recent-files") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nd23n67dmlflw52dc1rbhy04mc9ymydnsmvfr75hqb7sznn3343")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-consult)) + (home-page "https://github.com/hrehfeld/consult-xdg-recent-files") + (synopsis "Include files used by other programs than Emacs in Consult") + (description + "This package provides the ability to include files used by other +programs in the candidate lists of commands like @code{consult-recent-file} +and @code{consult-buffer}. This allows to use the same interface for file +opening. + +On systems that comply with the XDG specification, these files are listed in +the file @file{recently-used.xbel}, which is found in the directory +@file{~/.local/share} or the location described by the environment variable +@code{XDG_DATA_HOME}.") + (license license:gpl3+)))) + (define-public emacs-consult-yasnippet (let ((commit "ae0450889484f23dc4ec37518852a2c61b89f184") (revision "0")) @@ -9774,7 +10623,7 @@ expansion and overwriting the marked region with a new snippet completion.") (define-public emacs-marginalia (package (name "emacs-marginalia") - (version "0.14") + (version "1.0") (source (origin (method git-fetch) @@ -9783,7 +10632,7 @@ expansion and overwriting the marked region with a new snippet completion.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1gbcjw447vxd3ivfjgnya2ix3w791kvbika1v9bzj8s7i996fb6f")))) + (base32 "1rf4xgb82j1g6ybrzz7ak9hlk86d4r0hcprbqz05hvjnb8nyfa4c")))) (build-system emacs-build-system) (home-page "https://github.com/minad/marginalia") (synopsis "Marginalia in the minibuffer completions") @@ -9795,26 +10644,28 @@ placed at the margin of the minibuffer for your completion candidates.") (license license:gpl3+))) (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 - (list emacs-dash emacs-markdown-mode)) - (home-page "https://github.com/Fuco1/smartparens") - (synopsis "Paredit-like insertion, wrapping and navigation with user + (let ((commit "7afd647395018a26633673ed92ce7a9cb3ccb8f2") + (revision "0")) + (package + (name "emacs-smartparens") + (version (git-version "1.11.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Fuco1/smartparens") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ihvz1w2ggjplk604cdd5alxcq2iy3nm95m7wb6vncrbyb6v0ad2")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-dash 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 + (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 @@ -9822,7 +10673,7 @@ 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+))) + (license license:gpl3+)))) (define-public emacs-dumbparens ;; There are no releases. @@ -10082,6 +10933,30 @@ another (presumably currently running) Emacs Lisp file.") after buffer changes.") (license license:gpl3+))) +(define-public emacs-loccur + (let ((commit "01b7afa62589432a98171074abb8c5a1e089034a") + (revision "1")) + (package + (name "emacs-loccur") + (version (git-version "1.2.5" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fourier/loccur/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b1x1xsiwqzsiss1jc6w990v1vfvbn5d5w67yzmx59s9ldjmdqq2")))) + (build-system emacs-build-system) + (home-page "https://github.com/fourier/loccur") + (synopsis "Perform an occur-like folding in current buffer") + (description + "Loccur is a tool to quickly navigate a file. It is a minor mode for +Emacs acting like occur but w/o creating a new window. It just hides all the +text excepting lines containing matches.") + (license license:gpl3+)))) + (define-public emacs-realgud (package (name "emacs-realgud") @@ -10437,11 +11312,12 @@ matched.") "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-ivy emacs-password-store password-store)) + (list emacs-ivy emacs-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}.") + (synopsis "Ivy interface to the @code{pass} password store") + (description + "This package provides an Ivy interface for working with the password +store (@code{pass}) in Emacs.") (license license:gpl3)))) (define-public emacs-ivy-yasnippet @@ -10763,10 +11639,36 @@ 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-function-args + ;; The latest release is from August 21, 2017. + (let ((commit "beba049751fed78666c87bd146a6f1cf149bb819") + (revision "0")) + (package + (name "emacs-function-args") + (version (git-version "0.6.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abo-abo/function-args") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1j92ll2afvcp891fxra3sawxg000cs3ra01wxksiil2dg5zpzzkn")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-ivy)) + (home-page "https://github.com/abo-abo/function-args") + (synopsis "C/C++ completion for GNU Emacs") + (description + "This package provides a way of showing an inline arguments hint for +the C/C++ function at point.") + (license license:gpl3+)))) + (define-public emacs-lpy ;; There is no proper release/tag. - (let ((commit "ce78a4613458790cc785c1687af7eed8f0d8d66c") - (revision "5")) + (let ((commit "fa95b11e1023704510cc7dd2897bf8bcc3027cbb") + (revision "6")) (package (name "emacs-lpy") (version (git-version "0.1.0" revision commit)) @@ -10776,13 +11678,13 @@ state and will work even without lispy being enabled.") (uri (git-reference (url "https://github.com/abo-abo/lpy") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 - "1vxrjy6k030hcbclblgcaaw7h6k17kl3n9zla08527525c0gma01")) - (file-name (git-file-name name version)))) - (propagated-inputs - (list emacs-zoutline emacs-lispy)) + "18kx2mfmxy8s8csnp0iaiirl2z9baicq9f2w7rxlgkxww5511v7d")))) (build-system emacs-build-system) + (propagated-inputs + (list emacs-function-args emacs-lispy emacs-zoutline)) (home-page "https://github.com/abo-abo/lpy") (synopsis "Modal editing for Python") (description @@ -10795,7 +11697,7 @@ allowing unprefixed keys to insert their respective characters as expected.") (define-public emacs-clojure-mode (package (name "emacs-clojure-mode") - (version "5.15.1") + (version "5.16.0") (source (origin (method git-fetch) @@ -10804,7 +11706,7 @@ allowing unprefixed keys to insert their respective characters as expected.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "12m3yjhy4q0x3ri4xxb9raqg9lmw4hk4jgn436d9zvsk4fr3h1nd")))) + (base32 "0s09b9gbmjmk56jm9hcbk06zfa96kqhgx58d98w13yy01yx0pych")))) (build-system emacs-build-system) (native-inputs (list emacs-buttercup emacs-dash emacs-paredit emacs-s)) @@ -10819,6 +11721,55 @@ 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-clj-deps-new + (let ((commit "e1cf65eb040f5a2e9a3eca970044ba71cc53fb27") + (revision "0")) + (package + (name "emacs-clj-deps-new") + (version (git-version "1.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jpe90/emacs-clj-deps-new") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03db3l5klc20wgdaj44scgjfi2mha85bip07ls6pwbi039ls7rvx")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-transient)) + (home-page "https://github.com/jpe90/emacs-clj-deps-new") + (synopsis "Create Clojure projects from templates") + (description + "This is a small wrapper around the +@uref{https://github.com/seancorfield/deps-new, deps-new} and +@uref{https://github.com/seancorfield/clj-new, clj-new} tools for creating +Clojure projects from templates.") + (license license:gpl3+)))) + +(define-public emacs-clj-refactor + (package + (name "emacs-clj-refactor") + (version "3.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clojure-emacs/clj-refactor.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15ya7hp5d2kwh1ig55d75vlghm1vsq99jh44i8q8v25vfmzjp7gp")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-yasnippet emacs-paredit emacs-multiple-cursors emacs-cider + emacs-clojure-mode emacs-parseedn emacs-hydra emacs-inflections)) + (home-page "https://github.com/clojure-emacs/clj-refactor.el") + (synopsis "Powerful refactoring functionality for Clojure projects") + (description "This Emacs package complements the refactoring functionality +you'd find in clojure-mode and CIDER.") + (license license:gpl3+))) + (define-public emacs-clojure-snippets ;; Use latest commit (2018) since latest tagged release is too old and is ;; missing important changes. @@ -11316,7 +12267,7 @@ strings, and code folding.") (base32 "1qin0hclm3ly62nl5ddiim64bcd2k74b1yqsqqc61cf9k2q8k287")))) (build-system emacs-build-system) (home-page "https://github.com/redguardtoo/js-comint") - (synopsis "Interacting with a JavaScript interpeter") + (synopsis "Interacting with a JavaScript interpreter") (description "This program is a comint mode for Emacs which allows you to run a compatible JavaScript REPL, such as node, SpiderMonkey or Rhino. @@ -11513,26 +12464,40 @@ like @code{org-edit-src-code} but for arbitrary regions.") (define-public emacs-projectile (package (name "emacs-projectile") - (version "2.5.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 - "1wy2kpli90z7p4dqr4b7f1fv99g6lfxi1kzy2bfl0p8qi40rpmyv")))) + (version "2.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bbatsov/projectile") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ybd41iss8vd56qv6czpxqq7a99s4h7i3a2r4khy4rf5blj5zdqi")))) (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "buttercup" "-L" ".") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'fix-failing-test + (lambda _ + (substitute* "test/projectile-test.el" + (("user-emacs-directory") "\".\""))))))) + (native-inputs + (list emacs-buttercup)) (propagated-inputs (list emacs-dash 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.") +concept of a project is pretty basic: just a folder containing special file. +Currently Git, Mercurial and Bazaar repositories are considered projects by +default. If you want to mark a folder manually as a project just create an +empty @file{.projectile} file in it.") (license license:gpl3+))) (define-public emacs-skeletor @@ -11551,33 +12516,27 @@ If you want to mark a folder manually as a project just create an empty (base32 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-s emacs-f emacs-dash emacs-let-alist)) - (native-inputs - (list 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 + (list + #:include #~(cons "^project-skeletons\\/" %default-include) + #:tests? #true + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + ;; XXX: one failing test involving initializing a git repo. + (add-before 'check 'remove-git-test + (lambda _ + (emacs-batch-edit-file "test/skeletor-test.el" + `(progn (goto-char (point-min)) - (re-search-forward - "ert-deftest initialises-git-repo") + (re-search-forward "ert-deftest initialises-git-repo") (beginning-of-line) - (kill-sexp)) - (basic-save-buffer))) - #t))) - #:tests? #t - #:test-command '("ert-runner"))) + (kill-sexp) + (basic-save-buffer)))))))) + (native-inputs + (list emacs-ert-runner)) + (propagated-inputs + (list emacs-dash emacs-f emacs-let-alist emacs-s)) (home-page "https://github.com/chrisbarrett/skeletor.el") (synopsis "Project skeletons for Emacs") (description "This package provides project templates and automates the @@ -12152,7 +13111,7 @@ generated by Org mode (or Markdown mode) is left untouched.") (define-public emacs-visual-fill-column (package (name "emacs-visual-fill-column") - (version "2.5") + (version "2.5.1") (source (origin (method git-fetch) @@ -12161,7 +13120,7 @@ generated by Org mode (or Markdown mode) is left untouched.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "168wiywaffhhn7j4nfbnq4lfxpxl0x17z9ckk3nwkpaz45d9a2q6")))) + (base32 "0006x7vbwrx4w3b51aajzds0qaw3zb3b2wmj0c3j0anlrmyb37yz")))) (build-system emacs-build-system) (home-page "https://codeberg.org/joostkremers/visual-fill-column") (synopsis "Fill-column for visual-line-mode") @@ -12246,6 +13205,18 @@ a file, or a complete directory.") (base32 "1wn94nkfv6qyyj6clvms7m7ncqf09bgszv67may530y75kylivav")))) (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-native-comp + (lambda _ + ;; Native compilation of this package may crash your system, + ;; see <https://bugs.gnu.org/57878>. + (for-each + (lambda (file) + (make-file-writable file) + (emacs-batch-disable-compilation file #:native? #t)) + (find-files "." "\\.el$"))))))) (propagated-inputs (list emacs-s)) (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous") @@ -12443,7 +13414,7 @@ ack, ag, helm and pt.") (define-public emacs-helm (package (name "emacs-helm") - (version "3.8.7") + (version "3.9.0") (source (origin (method git-fetch) @@ -12452,7 +13423,7 @@ ack, ag, helm and pt.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1a8zkp00ahb84ww5072naxwllzbjhi7ccarkk2d7xsykn5lig54c")))) + (base32 "1i253ani2bl665biha0f071pncr2jh7x5yxp8rg2013sdf4nr74c")))) (build-system emacs-build-system) (propagated-inputs (list emacs-async emacs-popup)) @@ -12659,10 +13630,61 @@ 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-islisp-mode + (package + (name "emacs-islisp-mode") + (version "0.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/sasanidas/islisp-mode") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1s6alrv1hfi1plj5lh826j0h71xvm2v092kglj3yvy34g73dgrna")))) + (build-system emacs-build-system) + (arguments + (list + #:include #~(cons "\\.lsp$" %default-include) + #:tests? #true + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + ;; Move the extensions source files to the top level, which is + ;; included in the EMACSLOADPATH. + (add-after 'unpack 'move-source-files + (lambda _ + (for-each (lambda (dir) + (let ((files (find-files dir "\\.(lsp|el)$"))) + (for-each (lambda (f) + (rename-file f (basename f))) + files))) + '("advance" "implementations/easy-islisp")))) + (add-after 'move-source-files 'patch-eisl-variables + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "easy-islisp.el" + ("easy-islisp-executable" + (search-input-file inputs "/bin/eisl")) + ("easy-islisp-library-directory" + `(or (getenv "EASY_ISLISP") + ,(search-input-directory inputs "share/eisl/library"))))))))) + (native-inputs (list emacs-ert-runner)) + (inputs (list eisl)) + (home-page "https://gitlab.com/sasanidas/islisp-mode") + (synopsis "ISLisp support for Emacs") + (description + "This package provides support for programming with ISLisp in Emacs. It +features a major mode with syntax highlighting, symbol autocompletion and +documentation search, among other features. It also includes an inferior mode +with REPL integration. Currently it only supports the Easy ISLisp (eisl) +implementation.") + (license license:gpl3+))) + (define-public emacs-cider (package (name "emacs-cider") - (version "1.5.0") + (version "1.6.0") (source (origin (method git-fetch) @@ -12671,7 +13693,7 @@ target will call @code{compile} on it.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ih902n8p3pl1apprprkyrlnrp2dxli86y5k09zahy9mglfz2z5n")))) + (base32 "1a3xbfn1id8dcy3178kmdnzcvh7lq2pdwwg4axhncw6jq9hqiqja")))) (build-system emacs-build-system) (arguments '(#:exclude ;don't exclude 'cider-test.el' @@ -12822,32 +13844,30 @@ sly-quickload command that prompts the user for a package to install.") (license license:gpl3+)))) (define-public emacs-sly-asdf - (let ((commit "3180921efdc19a2195960e1d601b2a6f31a6feea") - (revision "5")) - (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 - "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-sly 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 + (package + (name "emacs-sly-asdf") + (version "0.2.0") + (home-page "https://github.com/mmgeorge/sly-asdf") + (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 + "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-sly 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+)))) + (license license:gpl3+))) (define-public emacs-sly-named-readtables (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f") @@ -13036,7 +14056,7 @@ Lua programming language}.") (define-public emacs-ebuild-mode (package (name "emacs-ebuild-mode") - (version "1.60") + (version "1.61") (source (origin (method url-fetch) @@ -13045,7 +14065,7 @@ Lua programming language}.") "ebuild-mode-" version ".tar.xz")) (file-name (string-append name "-" version ".tar.xz")) (sha256 - (base32 "1n7knzssvz0yyhnn6m37lz8d9v2840skcbm0ipqjpqyzawnr3psw")))) + (base32 "02fkmzh9rdl061n1p9lgf5mgkm67vxcbd8sj0f1dicb9vyry0zgy")))) (build-system emacs-build-system) (arguments (list @@ -13065,6 +14085,30 @@ Lua programming language}.") news items, openrc and runscripts.") (license license:gpl2+))) +(define-public emacs-ebuku + ;; Upstream has no tagged release. + (let ((revision "1") + (commit "0c6cf404a49bd68800221446df186fffa0139325")) + (package + (name "emacs-ebuku") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flexibeast/ebuku") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09fkzmcvzdbdjaa167wiybj0kir7y12pcq2varjywshvq2l7niz4")))) + (build-system emacs-build-system) + (home-page "https://github.com/flexibeast/ebuku") + (synopsis "Emacs interface to the buku Web bookmark manager") + (description + "Ebuku provides a basic interface to the @code{buku} Web bookmark +manager.") + (license license:gpl3+)))) + (define-public emacs-evil ;; Commit message claims this is 1.15.0, but there's no tag for it, so we ;; use full git-version instead @@ -13200,32 +14244,6 @@ 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 (list 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")) @@ -13309,21 +14327,21 @@ arguments, such as arguments separated by commas and semicolons.") (define-public emacs-evil-escape (package (name "emacs-evil-escape") - (version "3.14") + (version "3.16") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/syl20bnr/evil-escape") + (url "https://github.com/emacsorphanage/evil-escape") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i")))) + (base32 "1z30v59igndqzxg9gcx4bsbf5jkh11wp936il8azkrz3qdryaj4a")))) (propagated-inputs (list emacs-evil)) (build-system emacs-build-system) - (home-page "https://github.com/syl20bnr/evil-escape") + (home-page "https://github.com/emacsorphanage/evil-escape") (synopsis "Escape from insert state and everything else in Emacs") (description "Evil escape provides a customizable key sequence to escape from insert @@ -13505,7 +14523,7 @@ pasting into and from @code{tmux} paste buffers.") (define-public emacs-evil-nerd-commenter (package (name "emacs-evil-nerd-commenter") - (version "3.5.7") + (version "3.6.0") (source (origin (method git-fetch) @@ -13515,7 +14533,7 @@ pasting into and from @code{tmux} paste buffers.") (file-name (git-file-name name version)) (sha256 (base32 - "0xnm8i23c2p3mdf4xxjk00766ygvysk7c8iib2jkah5pfg6jc9vb")))) + "1v2iwci0yc1sld1sidrwdnqriyhs78ba3gp4d9az0af48grl7x1w")))) (build-system emacs-build-system) (propagated-inputs (list emacs-evil)) (home-page "https://github.com/redguardtoo/evil-nerd-commenter") @@ -13687,51 +14705,72 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "9.5.5") + (version "9.6.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://git.savannah.gnu.org/git/emacs/org-mode.git") + (url "https://git.savannah.gnu.org/git/emacs/org-mode") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0bswysz5laiya9pm689v4rpxjlfqg21azyh1jal9jq80iwjwi2p8")))) + (base32 "0iycj54ksanx6n3s06xhf0ax1cqjdcxynmz6cby27bcsj0sqflnp")))) (build-system emacs-build-system) (arguments - `(#:tests? #t - #:test-command '("make" "test-dirty") - #:phases - (modify-phases %standard-phases - (add-before 'check 'make - (lambda _ - (invoke "make" (string-append "ORGVERSION=" ,version)))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "local.mk" - (("^prefix.*") - (string-append "prefix = " (assoc-ref outputs "out"))) - (("^lispdir.*") - (string-append "lispdir = " - (elpa-directory (assoc-ref outputs "out"))))) - ;; The dependent targets for install perform cleanup that - ;; partially undoes our make phase - (substitute* "lisp/Makefile" - (("^install:.*") "install:\n")) - (invoke "make" "install"))) - (add-after 'unpack 'fix-tests - (lambda* (#:key inputs #:allow-other-keys) - ;; These files are modified during testing - (with-directory-excursion "testing/examples" - (for-each make-file-writable - '("babel.org" - "ob-awk-test.org" - "ob-sed-test.org" - "ob-shell-test.org")) - ;; Specify where sh is - (substitute* "babel.org" - (("/bin/sh" sh) - (string-append (assoc-ref inputs "bash") sh))))))))) + (list + #:tests? #t + #:test-command #~(list "make" "test-dirty") + #:phases + #~(modify-phases %standard-phases + (replace 'expand-load-path + ;; Make sure `load-path' includes "lisp" directory, otherwise + ;; byte-compilation fails. + (lambda args + (with-directory-excursion "lisp" + (apply (assoc-ref %standard-phases 'expand-load-path) args)))) + (add-after 'expand-load-path 'bootstrap + ;; XXX: Generate "org-loaddefs.el". + (lambda _ + (invoke "make" "autoloads"))) + (add-before 'check 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + ;; XXX: Running tests updates ID locations. The process expects + ;; a file to be writeable in "~/.emacs.d/". + (setenv "HOME" (getcwd)) + (mkdir-p ".emacs.d") + ;; These files are modified during testing. + (with-directory-excursion "testing/examples" + (for-each make-file-writable + '("babel.org" + "ob-awk-test.org" + "ob-sed-test.org" + "ob-shell-test.org")) + ;; Specify where sh executable is. + (let ((sh (search-input-file inputs "/bin/sh"))) + (substitute* "babel.org" + (("/bin/sh") sh)))) + ;; XXX: Skip failing tests. + (substitute* "testing/lisp/test-ob-shell.el" + (("ob-shell/remote-with-stdin-or-cmdline .*" all) + (string-append all " (skip-unless nil)\n"))) + (substitute* "testing/lisp/test-org.el" + (("test-org/org-(encode-time|time-string-to-time) .*" all) + (string-append all " (skip-unless nil)\n"))))) + (replace 'install + (lambda _ + (let ((elpa (elpa-directory #$output)) + (info (string-append #$output "/share/info"))) + (substitute* "local.mk" + (("^lispdir.*") (string-append "lispdir = " elpa)) + (("^datadir.*") (string-append "datadir = " elpa "/etc")) + (("^infodir.*") (string-append "infodir = " info)))) + (invoke "make" "install" (string-append "ORGVERSION=" #$version)))) + (add-after 'install 'install-org-news + ;; Install ORG-NEWS files in doc directory. + (lambda _ + (install-file "etc/ORG-NEWS" + (string-append #$output "/share/doc/" + #$name "-" #$version))))))) (native-inputs (list texinfo)) (home-page "https://orgmode.org/") @@ -13745,7 +14784,7 @@ programming and reproducible research.") (define-public emacs-org-contrib (package (name "emacs-org-contrib") - (version "0.4") + (version "0.4.1") (source (origin (method git-fetch) @@ -13754,7 +14793,7 @@ programming and reproducible research.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "06b1rpywj596nnnap6pj6fnmcq8fcc4i30zv7qsvs3ryxciw01fb")))) + (base32 "0f3zjy3ybkqmvvlx04251add0vcz248qibxy5akal96l8bdhjajx")))) (build-system emacs-build-system) (arguments `(#:phases @@ -13845,26 +14884,28 @@ characters.") (license license:gpl3+)))) (define-public emacs-ob-sclang - (package - (inherit emacs-org-contrib) - (name "emacs-ob-sclang") - (source - (origin - (inherit (package-source emacs-org-contrib)) - (modules '((guix build utils))) - (snippet - '(begin - (with-directory-excursion "lisp" - (for-each (lambda (file) - (unless (equal? file "./ob-sclang.el") - (delete-file file))) - (find-files "." "\\.el$"))))))) - (propagated-inputs - (list emacs-org emacs-scel)) - (synopsis "Org Babel support for SuperCollider") - (description "This package adds support for evaluating @code{sclang} -Org mode source blocks. It is extracted from the @code{emacs-org-contrib} -package."))) + (let ((commit "cd3f3c847d8149cd4ce4a775942dac88ba92c772") + (revision "1")) + (package + (name "emacs-ob-sclang") + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://repo.or.cz/ob-sclang") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dr8va2v0262plqxd63yxymqiffkql9klci7wsp5i7xgpka8925q")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-org emacs-scel)) + (home-page "https://repo.or.cz/ob-sclang") + (synopsis "Org Babel support for SuperCollider") + (description "This package adds support for evaluating @code{sclang} Org +mode source blocks.") + (license license:gpl3+)))) (define-public emacs-org-edna (package @@ -14256,7 +15297,7 @@ you to deal with multiple log levels.") (define-public emacs-denote (package (name "emacs-denote") - (version "0.6.0") + (version "1.2.0") (source (origin (method git-fetch) @@ -14265,7 +15306,7 @@ you to deal with multiple log levels.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0wqrl2fdprmgffxg5xak881gs0g4ffdy2n8wcb4wbz3f6anhfaa5")))) + (base32 "0cglzccbqpcppb9s3phhszskkxp2wd0582jv85qhawxabfzyzkj3")))) (build-system emacs-build-system) (native-inputs (list texinfo)) (home-page "https://protesilaos.com/emacs/denote/") @@ -14279,40 +15320,43 @@ such files while providing facilities to link between them.") (license license:gpl3+))) (define-public emacs-logos - (package - (name "emacs-logos") - (version "0.4.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~protesilaos/logos") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1f40h8kbmza2rgmz84rgwbb4bwqkbfxnc3sc7gqshvxdkz3flbb7")))) - (native-inputs (list texinfo)) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'install 'makeinfo - (lambda* (#:key outputs #:allow-other-keys) - (invoke "emacs" - "--batch" - "--eval=(require 'ox-texinfo)" - "--eval=(find-file \"README.org\")" - "--eval=(org-texinfo-export-to-info)") - (install-file "logos.info" (string-append #$output "/share/info"))))))) - (home-page "https://protesilaos.com/emacs/logos") - (synopsis "Simple focus mode for Emacs") - (description "This package provides a simple focus mode which can be + ;; XXX: Upstream did not tag latest release. Use the commit matching + ;; version bump. + (let ((commit "d8f18f74591ffcac6466409ac7cd29f90838b2fe")) + (package + (name "emacs-logos") + (version "1.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~protesilaos/logos") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g3jxzwv99wkxlb36j2nyjibayvwjpy7qc2mz9lfd2945q6apj3z")))) + (native-inputs (list texinfo)) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'makeinfo + (lambda* (#:key outputs #:allow-other-keys) + (invoke "emacs" + "--batch" + "--eval=(require 'ox-texinfo)" + "--eval=(find-file \"README.org\")" + "--eval=(org-texinfo-export-to-info)") + (install-file "logos.info" (string-append #$output "/share/info"))))))) + (home-page "https://protesilaos.com/emacs/logos") + (synopsis "Simple focus mode for Emacs") + (description "This package provides a simple focus mode which can be applied to any buffer for reading, writing, or even doing a presentation. The buffer can be divided in pages using the @code{page-delimiter}, outline structure, or any other pattern.") - (license (list license:gpl3+ - license:fdl1.3+)))) ; GFDLv1.3+ for the manual + (license (list license:gpl3+ + license:fdl1.3+))))) ; GFDLv1.3+ for the manual (define-public emacs-tmr (package @@ -14332,21 +15376,35 @@ structure, or any other pattern.") (list #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'patch-ffplay + (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) (let ((ffplay (search-input-file inputs "/bin/ffplay"))) - (make-file-writable "tmr.el") (substitute* "tmr.el" - (("\"ffplay") - (string-append "\"" ffplay))))))))) + (("\"ffplay ") + (string-append "\"" ffplay " ")))) + (emacs-substitute-variables "tmr.el" + ("tmr-sound-file" + (search-input-file + inputs + "share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga"))))) + (add-after 'install 'makeinfo + (lambda _ + (invoke "emacs" + "--batch" + "--eval=(require 'ox-texinfo)" + "--eval=(find-file \"README.org\")" + "--eval=(org-texinfo-export-to-info)") + (install-file "tmr.info" + (string-append #$output "/share/info"))))))) (native-inputs (list texinfo)) - (inputs (list ffmpeg)) + (inputs (list ffmpeg sound-theme-freedesktop)) (home-page "https://protesilaos.com/emacs/tmr/") (synopsis "Set timers using a convenient notation") (description "TMR is an Emacs package that provides facilities for setting timers using a convenient notation.") - (license license:gpl3+))) + (license (list license:gpl3+ + license:fdl1.3+)))) ;GFDLv1.3+ for the manual (define-public emacs-gn-mode (package @@ -14512,28 +15570,29 @@ 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 - (list emacs-alert emacs-s emacs-ht 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+))) + (let ((commit "3c9af8c7994df0a1a4f0703552ea3beffb485ace") + (revision "0")) + (package + (name "emacs-mu4e-alert") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xzz53/mu4e-alert") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13li5pqqkzj7dwgpnngnk1ff46i100qw9xknlimpy2vf2k5yqv3y")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-alert emacs-ht emacs-s mu)) + (home-page "https://github.com/xzz53/mu4e-alert") + (synopsis "Desktop notifications and mode line display 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") @@ -14563,10 +15622,29 @@ automatically using existing List-ID headers in your mu database. Just press automatically discovered and presented in recency order.") (license license:gpl3+)))) +(define-public emacs-url-scgi + (package + (name "emacs-url-scgi") + (version "0.8") + (source (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "url-scgi-" version ".tar")) + (sha256 + (base32 + "1837vyamwk5mp2nf3k477hyr5pq1xy6p7br7kl6h2k8jmxqy3mlj")))) + (build-system emacs-build-system) + (home-page "https://github.com/skangas/url-scgi/") + (synopsis "SCGI support for url.el") + (description + "This library add support for SCGI URLs to Emacs. It is based on url.el, +which is shipped with Emacs.") + (license license:gpl3+))) + (define-public emacs-mentor (package (name "emacs-mentor") - (version "0.4") + (version "0.5") (source (origin (method url-fetch) @@ -14574,10 +15652,10 @@ automatically discovered and presented in recency order.") version ".tar")) (sha256 (base32 - "1n51yabm4npx62fpfn8rhky09x4y779ismdxa026fycy7va7ynzz")))) + "1kkzm881fxhc5hb83x0j12lv22b72nzw45qrypbl1jf2siispz9l")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-async emacs-xml-rpc)) + (list emacs-async emacs-url-scgi emacs-xml-rpc)) (home-page "https://elpa.nongnu.org/nongnu/mentor.html") (synopsis "Emacs front-end for the rTorrent bittorrent client") (description @@ -14643,7 +15721,7 @@ been adapted to also work with mu4e.") (define-public emacs-tempel (package (name "emacs-tempel") - (version "0.4") + (version "0.6") (source (origin (method git-fetch) (uri (git-reference @@ -14652,7 +15730,7 @@ been adapted to also work with mu4e.") (file-name (git-file-name name version)) (sha256 (base32 - "0iyh6wxchqg83gpwvg6lz4qy4c2qh25iqjpjm56kif52346a99d2")))) + "1jgsjhrfdd72a0na4s1qp8yc24mbgrpxkv8yqac0vgqipg98cdg6")))) (build-system emacs-build-system) (home-page "https://github.com/minad/tempel") (synopsis "Simple templates for Emacs") @@ -14661,6 +15739,29 @@ been adapted to also work with mu4e.") the Emacs Tempo library. You may also write your templates in Lisp.") (license license:gpl3+))) +(define-public emacs-tempel-collection + (let ((commit "cd9529b2a2fdfd49010117d2a1fc49adf9725051") + (revision "0")) + (package + (name "emacs-tempel-collection") + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Crandel/tempel-collection") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02x6jq5k7fa46ni64qf8wrmkay6zfbmkildb727zs6wchmyg2znn")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-tempel)) + (home-page "https://github.com/Crandel/tempel-collection") + (synopsis "Collection of TempEl templates") + (description "This package provides a collection of templates for +the Emacs TempEl package.") + (license license:gpl3+)))) + (define-public emacs-yasnippet (package (name "emacs-yasnippet") @@ -14954,7 +16055,7 @@ number on the left margin in Emacs.") (define-public emacs-lin (package (name "emacs-lin") - (version "0.3.0") + (version "1.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -14963,7 +16064,7 @@ number on the left margin in Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "1w1mli2wrxbnwagn3rx5ygslmzlri3drm74nqgwpl4pwh66xi98a")))) + "0bbxm2ndp6hcpdiv34dl9smgx5l0m4pdzm7csp283f6q9kwwdf3v")))) (native-inputs (list texinfo)) (build-system emacs-build-system) (arguments @@ -15173,10 +16274,10 @@ actually changing the buffer's text.") (define-public emacs-diff-hl ;;; XXX: Latest release is not tagged. Use commit matching version bump. - (let ((commit "37b00f3bad841e131d69442a89cbebc3041d996b")) + (let ((commit "8f2e4eb345f0639c8fc41e3f7576f77ba6987655")) (package (name "emacs-diff-hl") - (version "1.9.0") + (version "1.9.1") (source (origin (method git-fetch) @@ -15185,7 +16286,7 @@ actually changing the buffer's text.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0s3fcwk6c99n2q25bf0a33lphr9mcrxmvr5wz8qsj86jfbyi1is1")))) + (base32 "1c265083zyqi33sf3mpkk1n7pyfkrzxg4dacx0b787ypbj1sls16")))) (build-system emacs-build-system) (home-page "https://github.com/dgutov/diff-hl") (synopsis @@ -15220,47 +16321,47 @@ abbreviation of the mode line displays (lighters) of minor modes.") (license license:gpl3+)))) (define-public emacs-use-package - (package - (name "emacs-use-package") - (version "2.4.1") - (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 - "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9")))) - (build-system emacs-build-system) - (native-inputs - (list texinfo)) - (propagated-inputs - (list 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 + ;; XXX: Upstream did not tag latest release. Using commit matching exact + ;; version bump. + (let ((commit "942617d26e11d80d879ff23d2a8b477bd074a734")) + (package + (name "emacs-use-package") + (version "2.4.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jwiegley/use-package") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zpf9xv65jg813k90x8g9k4lja896nqfh48pjinicmz1rn0rf51a")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "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 _ + (let ((info-dir (string-append #$output "/share/info"))) + (install-file "use-package.info" info-dir)))) + (add-before 'install-manual 'build-manual + (lambda _ + (invoke "makeinfo" "use-package.texi")))))) + (native-inputs + (list texinfo)) + (propagated-inputs + (list emacs-diminish)) + (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+))) + (license license:gpl2+)))) (define-public emacs-leaf (package @@ -15444,7 +16545,7 @@ constructs.") (define-public emacs-cnfonts (package (name "emacs-cnfonts") - (version "0.9.1") + (version "1.0.0") (source (origin (method git-fetch) @@ -15453,7 +16554,7 @@ constructs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx")))) + (base32 "1vim429ikgsh7zvh521af39xgmm6qb3fc3pwb51458fj010gf8pj")))) (build-system emacs-build-system) (home-page "https://github.com/tumashu/cnfonts") (synopsis "Emacs Chinese fonts setup tool") @@ -15461,6 +16562,38 @@ constructs.") configuration of Chinese fonts.") (license license:gpl2+))) +(define-public emacs-cal-china-x + (let ((revision "0") + (commit "94005e678a1d2522b7a00299779f40c5c77286b8")) + (package + (name "emacs-cal-china-x") + (version (git-version "2.6b" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/xwl/cal-china-x") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dy9awy5y990wz925rdn95gn23ywarwbvkqq0l0xms1br1v8kxc6")))) + (build-system emacs-build-system) + (home-page "https://github.com/xwl/cal-china-x") + (synopsis "Chinese localization, lunar/horoscope/zodiac info and more") + (description + "Cal-China-X provides additional features for Emacs' Cal-China package: + +@itemize +@item Chinese localizations. +@item Display holiday, lunar, horoscope, zodiac, solar term info on mode line. +@item Define holidays using holiday-lunar, holiday-solar-term. +@item Highlight holidays based on different priorities. +@item Add cal-china-x-chinese-holidays, cal-china-x-japanese-holidays. +@item custom week diary (like weeks in school). +@end itemize") + (license license:gpl3+)))) + (define-public emacs-boon (package (name "emacs-boon") @@ -15523,7 +16656,7 @@ similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.") (define-public emacs-csharp-mode (package (name "emacs-csharp-mode") - (version "1.1.1") + (version "2.0.0") (source (origin (method git-fetch) @@ -15532,7 +16665,7 @@ similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0wfd4jdjsq8qp6pavf25y87dxvlnsqapfi4c4m3xj24baalr2dpq")))) + (base32 "1d0pf236xi4c7fazv67a53yrac24lilnkzp9pb55xm88gig7rfmz")))) (build-system emacs-build-system) (home-page "https://github.com/josteink/csharp-mode") (synopsis "Major mode for C# code") @@ -15593,7 +16726,7 @@ in Emacs.") (define-public emacs-php-mode (package (name "emacs-php-mode") - (version "1.24.1") + (version "1.24.2") (source (origin (method git-fetch) @@ -15602,7 +16735,7 @@ in Emacs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "06xgmlbvqhkrnk6390mdbpjij34msxxwzqmagi6zpwpsf38mn6qf")))) + (base32 "13lkzvamr86409whr8as4721gx9xrlfkmxvv941775mryliqk6j6")))) (build-system emacs-build-system) (arguments `(#:phases @@ -15663,6 +16796,9 @@ function to be used by other frontend programs.") (sha256 (base32 "0fzyh8qmicq2vy9j1ca708ir67dpxp1cwjaw0sw469p24cvj12yy")))) (build-system emacs-build-system) + (arguments + (list + #:include #~(cons "pyim-basedict.pyim" %default-include))) (propagated-inputs (list emacs-pyim)) (home-page "https://github.com/tumashu/pyim-basedict") @@ -15674,13 +16810,13 @@ containing words from the Rime project.") (define-public emacs-pyim (package (name "emacs-pyim") - (version "5.2.5") + (version "5.2.9") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar")) (sha256 - (base32 "00f23pl53rdy9iwp4gj2656wik7c6vnmhsglg7z4pz3ippz3f4hq")))) + (base32 "0blsz344jq1zx4qs73zinb8fhh2a35k5nx12i2wn76902qx2qc6j")))) (build-system emacs-build-system) (propagated-inputs (list emacs-async emacs-popup emacs-posframe emacs-xr)) @@ -15762,14 +16898,14 @@ the center of the screen and not at the bottom.") (define-public emacs-posframe (package (name "emacs-posframe") - (version "1.1.7") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "posframe-" version ".tar")) (sha256 - (base32 "13i2wxx079gfq0vbq0iwmsig5b7x4aspd1q02yqc79846f1dsx4w")))) + (base32 "05qkwb3ys05chn0maz7q19kp539m7p5acb8di4rni4vjjlkpx2bj")))) (build-system emacs-build-system) ;; emacs-minimal does not include the function font-info. (arguments @@ -15861,13 +16997,27 @@ and lambdas.") (sha256 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7")))) (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'fix-byte-compilation + ;; XXX: The fix below was integrated upstream and can be removed + ;; in next release. + (lambda _ + (substitute* "org2web-el2org.el" + (("(define-obsolete-function-alias .*)\\)" _ lead) + (string-append lead " \"0.1\")")))))))) (propagated-inputs - (list emacs-dash emacs-el2org emacs-ht emacs-mustache + (list emacs-dash + emacs-el2org + emacs-ht + emacs-mustache 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.") + (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-meow @@ -15934,7 +17084,7 @@ It should enable you to implement low-level X11 applications.") (define-public emacs-exwm (package (name "emacs-exwm") - (version "0.26") + (version "0.27") (synopsis "Emacs X window manager") (source (origin @@ -15942,7 +17092,7 @@ It should enable you to implement low-level X11 applications.") (uri (string-append "https://elpa.gnu.org/packages/" "exwm-" version ".tar")) (sha256 - (base32 "03pg0r8a5vb1wc5grmjgzql74p47fniv47x39gdll5s3cq0haf6q")))) + (base32 "094k33clmxhnab0wniyrs48sdz28kna2g6fmkhsd7n20nmhhc4sn")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xelb)) @@ -16321,17 +17471,23 @@ Emacs.") (define-public emacs-eglot (package (name "emacs-eglot") - (version "1.8") + (version "1.11") (source (origin (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "eglot-" version ".tar")) + (uri (string-append "https://elpa.gnu.org/packages/eglot-" version + ".tar")) (sha256 - (base32 "1n04jnf3wwpxafrzfd02l53wf90brjc8p835f84k0n0rjxin99k5")))) + (base32 + "1ifnk4bznykj34s4yh0gq5nyzja7mlv60krxa47j842grpndq2hp")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-eldoc emacs-jsonrpc emacs-project)) + (list emacs-external-completion + emacs-eldoc + emacs-jsonrpc + emacs-project + emacs-seq + emacs-xref)) (home-page "https://github.com/joaotavora/eglot") (synopsis "Client for Language Server Protocol (LSP) servers") (description @@ -16341,6 +17497,26 @@ for the current file, using the major mode as a hint. It prompts you to enter one if it fails.") (license license:gpl3+))) +(define-public emacs-jarchive + (package + (name "emacs-jarchive") + (version "0.10.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~dannyfreeman/jarchive") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hddjs4yj03cqppip1gsgmkhp3fmq9ggyf5wxx5k3m78cg7k1bl7")))) + (build-system emacs-build-system) + (home-page "https://sr.ht/~dannyfreeman/jarchive") + (synopsis "Jarchive teaches Emacs how to navigate to files inside JARs") + (description "Jarchive makes Emacs handle Java and LSP URIs pointing to + source inside JARs.") + (license license:gpl3+))) + (define-public emacs-eldoc (package (name "emacs-eldoc") @@ -16438,28 +17614,38 @@ running tests easier.") (license license:gpl3+))) (define-public emacs-org-transclusion - (package - (name "emacs-org-transclusion") - (version "1.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nobiot/org-transclusion") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0pjk6686ss50s9ws014if9mnixsf9m53z1d7bvkbx09lq3jqa7ry")))) - (build-system emacs-build-system) - (home-page "https://nobiot.github.io/org-transclusion/") - (synopsis "Enable transclusion with Org Mode") - (description "Org-transclusion lets you insert a copy of text content via + (let ((commit "cf51df7b87e0d32ba13ac5380557e81d9845d81b")) ;version bump + (package + (name "emacs-org-transclusion") + (version "1.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nobiot/org-transclusion") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ix5l8cjcafw8lqhkmwa3cpdw6cbpx65k0iww426nxya849y61yx")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "emacs" "--batch" + "-l" "org-transclusion.el" + "-l" "test/unit-tests.el" + "-f" "ert-run-tests-batch-and-exit"))) + (native-inputs + (list emacs-ert-runner)) + (home-page "https://nobiot.github.io/org-transclusion/") + (synopsis "Enable transclusion with Org Mode") + (description "Org-transclusion lets you insert a copy of text content via a file link or ID link within an Org file. It lets you have the same content present in different buffers at the same time without copy-and-pasting it. Edit the source of the content, and you can refresh the transcluded copies to the up-to-date state. Org-transclusion keeps your files clear of the transcluded copies, leaving only the links to the original content.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-disable-mouse (package @@ -16580,21 +17766,20 @@ highlighting.") ;; Commit refers to a commit in the Emacs repository, as jsonrpc.el was ;; upstreamed. By convention, it should refer to a commit in which ;; jsonrpc.el was actually touched. - (let ((commit "50654cf0b1bf6210fc8f46d8e7ae13bbeeccecb5") - (revision "0")) ; Currently a version bump + (let ((commit "8bf4cdcf79bc3254a9169f28f68922ab83bd4e78")) ;version bump (package (name "emacs-jsonrpc") - (version (git-version "1.0.15" revision commit)) + (version "1.0.16") (source (origin (method git-fetch) (uri (git-reference - (url "https://git.savannah.gnu.org/git/emacs.git") + (url "https://git.savannah.gnu.org/git/emacs") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0srwb171dxha1nfzppk6x9v4bdj3lk74pksqnhalw8jw9c67b72y")))) + "1mka35kparv7z52kknh9nam4wyczcp73glp48q24v05gm42a8xxr")))) (build-system emacs-build-system) (arguments (list #:phases @@ -16638,9 +17823,9 @@ formatting, and utility methods for jsonnet files.") (license license:gpl3+))) (define-public emacs-restclient - (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3") + (let ((commit "1fb570643b08ba66eb70831b6f874f52546917f1") (version "0") - (revision "3")) ;Guix package revision, + (revision "4")) ;Guix package revision, ;upstream doesn't have official releases (package (name "emacs-restclient") @@ -16652,7 +17837,7 @@ formatting, and utility methods for jsonnet files.") (commit commit))) (sha256 (base32 - "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk")) + "0npij1p1yw4p1f1yrx6bl8q18nav5p2xvbp7qhzhn7lb2fdn5jqv")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -16812,6 +17997,42 @@ additions: or @code{treemacs}, but leveraging @code{Dired} to do the job of display.") (license license:gpl3+))) +(define-public emacs-dirvish + (package + (name "emacs-dirvish") + (version "2.0.53") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alexluigit/dirvish") + (commit "c535e2147171be5506f4ff34e862bacbfb3de768"))) + (sha256 + (base32 + "1nmp5ci4dvcpih6phfhk66s98lf8b49qd35ymy29kqkf5v4cnwga")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-transient)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; Move the extensions source files to the top level, which + ;; is included in the EMACSLOADPATH. + (add-after 'unpack 'move-source-files + (lambda _ + (let ((el-files (find-files "./extensions" ".*\\.el$"))) + (for-each (lambda (f) + (rename-file f (basename f))) + el-files))))))) + (home-page "https://github.com/alexluigit/dirvish") + (synopsis "Improved version of the Emacs package Dired") + (description + "Dirvish is an improved version of the Emacs inbuilt package Dired. It +not only gives Dired an appealing and highly customizable user interface, but +also comes together with almost all possible parts required for full usability +as a modern file manager.") + (license license:gpl3+))) + (define-public emacs-which-key (package (name "emacs-which-key") @@ -16842,6 +18063,27 @@ available key bindings that follow C-x (or as many as space allows given your settings).") (license license:gpl3+))) +(define-public emacs-free-keys + (package + (name "emacs-free-keys") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/Fuco1/free-keys") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc")))) + (build-system emacs-build-system) + (home-page "https://github.com/Fuco1/free-keys") + (synopsis "Show free keybindings for modkeys or prefixes in Emacs.") + (description + "Free-keys shows available key bindings in the current Emacs buffer.") + (license license:gpl3+))) + (define-public emacs-hercules (package (name "emacs-hercules") @@ -16996,7 +18238,7 @@ multiplexer.") (define-public emacs-plz (package (name "emacs-plz") - (version "0.2.1") + (version "0.3") (source (origin (method git-fetch) @@ -17005,9 +18247,17 @@ multiplexer.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0p0xd532xa8icysyxwqk481lr9xanmp68gf97fd9n2936gp12chv")))) + (base32 "1ack4rajjdmb3fqz5v394rqpvn9mfvbkrxra27yrcqz97mma1ki7")))) (build-system emacs-build-system) (inputs (list curl)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'substitute-curl-path + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "plz.el" + ("plz-curl-program" (search-input-file inputs "/bin/curl")))))))) (home-page "https://github.com/alphapapa/plz.el") (synopsis "HTTP library for Emacs") (description @@ -17018,7 +18268,7 @@ which avoids some of the issues with using Emacs’s built-in Url library.") (define-public emacs-ement (package (name "emacs-ement") - (version "0.2.1") + (version "0.5.2") (source (origin (method git-fetch) @@ -17027,7 +18277,7 @@ which avoids some of the issues with using Emacs’s built-in Url library.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0kfh0vlsz4qnx4vwkwhkxawk5cpxgnvkar72wha9cxj8s6j51vx0")))) + (base32 "1gc5b0mzh4a4xxbzfgjx5m830rymnf93qn2k5jvj7kmwnh15w89h")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support @@ -17087,7 +18337,7 @@ editing RPM spec files.") (define-public emacs-lcr (package (name "emacs-lcr") - (version "1.1") + (version "1.5") (source (origin (method git-fetch) @@ -17096,7 +18346,7 @@ editing RPM spec files.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8")))) + (base32 "0hhn0gqkwki0dfk6j759hmbj1ijn4bs550jh3kgy9jfmnb7cd81l")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash)) @@ -17248,7 +18498,7 @@ the nick color and the background color (define-public emacs-engine-mode (package (name "emacs-engine-mode") - (version "2.1.1") + (version "2.2.1") (source (origin (method git-fetch) @@ -17257,7 +18507,7 @@ the nick color and the background color (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i")))) + (base32 "11ls3wrvfmcz61pps438x772nk06rqff91s3xi5rzc3n2hkl1ayb")))) (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 @@ -17290,6 +18540,43 @@ a fontified buffer and pass the data to any number of backends which can deal with specific output formats.") (license license:gpl3+))) +(define-public emacs-enh-ruby-mode + ;; The latest tag is from 2019. + (let ((revision "0") + (commit "7e76d754e1632b4fc9a024fa393c3fc837bcc86b")) + (package + (name "emacs-enh-ruby-mode") + (version (git-version "20191111" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zenspider/enhanced-ruby-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gc2kgvnzq6m6hswcvsd4c00xywi2phdnr121r53kvsv46avrq9z")))) + (build-system emacs-build-system) + (arguments + (list #:include #~(cons "^ruby/" %default-include) + #:tests? #t + #:test-command ''("rake" "test:all") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-default-ruby + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "enh-ruby-mode.el" + ("enh-ruby-program" + (search-input-file inputs "bin/ruby")))))))) + (native-inputs (list ruby-rake)) + (inputs (list ruby)) + (home-page "https://github.com/zenspider/Enhanced-Ruby-Mode") + (synopsis "Emacs major mode for editing Ruby files") + (description "@code{enh-ruby-mode} is a major mode providing syntax +highlighting, navigation and indentation capabilities for editing Ruby source +files. It parses the source files using Ruby's builtin @code{Ripper} class +and performs syntax checks on them.") + (license license:ruby)))) + (define-public emacs-inheritenv (package (name "emacs-inheritenv") @@ -17505,7 +18792,7 @@ groups.") (define-public emacs-taxy-magit-section (package (name "emacs-taxy-magit-section") - (version "0.10") + (version "0.12.1") (source (origin (method url-fetch) (uri (string-append @@ -17513,7 +18800,7 @@ groups.") ".tar")) (sha256 (base32 - "1g58nvpb04ldhn5qnjw2q5idrv6vhlfa0qmb46cvis6bkz46cxkw")))) + "0bs00y8pl51dji23zx5w64h6la0y109q0jv2q1nggizk6q5bsxmg")))) (build-system emacs-build-system) (propagated-inputs (list emacs-magit emacs-taxy)) (home-page "https://github.com/alphapapa/taxy.el") @@ -17629,7 +18916,7 @@ included by default, and more can be readily added.") (define-public emacs-pubmed (package (name "emacs-pubmed") - (version "0.6.1") + (version "0.6.2") (source (origin (method git-fetch) @@ -17639,7 +18926,7 @@ included by default, and more can be readily added.") (file-name (git-file-name name version)) (sha256 (base32 - "1f884r3fs9nybf5y9dwp8f9m8azssxjy55z7bd0nl9pjll9rhsz2")))) + "05j4nhn2bgacc54pvmkhwgdsmzxzkcfn49a12k43wckrrf3izbqf")))) (build-system emacs-build-system) (propagated-inputs (list emacs-deferred emacs-esxml emacs-s emacs-unidecode)) @@ -17851,43 +19138,38 @@ Slack client.") (license license:gpl3+)))) (define-public emacs-bash-completion - ;; Need to use a newer commit than the latest version in order to support - ;; completion interfaces that alters the candidate list provided by the - ;; package - (let ((commit "c5eaeed156ab906190c662d491269230967104b1") - (revision "0")) - (package - (name "emacs-bash-completion") - (version (git-version "3.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/szermatt/emacs-bash-completion") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0r221iirqsbz13s76r68i496izbirrvcw8ql3wsh205zmxa3jqg1")))) - (inputs (list bash)) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (λ _ - (for-each make-file-writable (find-files ".")))) - (add-before 'install 'configure - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "bash-completion.el" - ("bash-completion-prog" - (search-input-file inputs "/bin/bash")))))))) - (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+)))) + (package + (name "emacs-bash-completion") + (version "3.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/szermatt/emacs-bash-completion") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cly0m6msn8xv9857nv4syw8fldqzvsa4kciq7av40y26a61hvrh")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'make-git-checkout-writable + (λ _ + (for-each make-file-writable (find-files ".")))) + (add-before 'install 'configure + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "bash-completion.el" + ("bash-completion-prog" + (search-input-file inputs "/bin/bash")))))))) + (inputs (list bash)) + (home-page "https://github.com/szermatt/emacs-bash-completion") + (synopsis "Bash completion for the shell buffer") + (description + "Bash Completion defines dynamic completion hooks for Shell mode and +@code{shell-command} prompts that are based on Bash completion.") + (license license:gpl2+))) (define-public emacs-easy-kill (package @@ -18326,11 +19608,11 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.") (license license:gpl3+)))) (define-public emacs-org-tree-slide - (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5") - (revision "2")) + (let ((commit "d6529bc2df727d09014e0e56abf4f15a8e8fc20f") + (revision "0")) (package (name "emacs-org-tree-slide") - (version (git-version "2.8.4" revision commit)) + (version (git-version "2.8.18" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -18338,15 +19620,15 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.") (commit commit))) (sha256 (base32 - "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk")) + "1br32mpwarmrn158y2pkkmfl2ssv8q8spzknkg2avr16fil0j1pz")) (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") + (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.") + "Org Tree Slide is a minor mode for using an Org document in +presentations by progressively revealing individual subtrees of the +document.") (license license:gpl3+)))) (define-public emacs-scratch-el @@ -18357,7 +19639,7 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ieure/scratch-el") + (url "https://codeberg.org/emacs-weirdware/scratch") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -18376,7 +19658,7 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.") (string-append (assoc-ref outputs "out") "/share/info")) #t))))) - (home-page "https://github.com/ieure/scratch-el/") + (home-page "https://codeberg.org/emacs-weirdware/scratch") (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 @@ -18446,7 +19728,7 @@ the format.") (define-public emacs-nov-el (package (name "emacs-nov-el") - (version "0.3.4") + (version "0.4.0") (source (origin (method git-fetch) @@ -18456,18 +19738,18 @@ the format.") (file-name (git-file-name name version)) (sha256 (base32 - "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf")))) + "10507fdfx02wb3j7g34w4ii8rgnjbmriq63ir6x1agf38s3i9p52")))) (build-system emacs-build-system) (arguments - `(#:emacs ,emacs ;need libxml - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'embed-path-to-unzip - (lambda _ - (substitute* "nov.el" - (("\\(executable-find \"unzip\"\\)") - (string-append "\"" (which "unzip") "\""))) - #t))))) + (list + #:emacs emacs ;need libxml + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'embed-path-to-unzip + (lambda _ + (substitute* "nov.el" + (("\\(executable-find \"unzip\"\\)") + (string-append "\"" (which "unzip") "\"")))))))) (propagated-inputs (list emacs-dash emacs-esxml)) (inputs @@ -18784,6 +20066,9 @@ used with SGML-like languages: XML, HTML, XHTML, XSL, etc.") (base32 "1ipwzl0l26g5qvc1sgmz2ra5vn1j3hl0mnkgzpa3j4p8gsmxdiqr")))) (build-system emacs-build-system) + (arguments + (list #:include #~(cons* "^kbd\\.svg$" "^kbd-ergo\\.svg$" + %default-include))) (propagated-inputs (list emacs-undo-tree)) (home-page "https://ergoemacs.github.io/") @@ -18808,30 +20093,37 @@ close, copy, cut, paste, undo, redo.") (uri (git-reference (url "git://git.zx2c4.com/password-store") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 - "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi")) - (file-name (git-file-name name version)))) + "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi")))) (build-system emacs-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'extract-el-file - (lambda _ - (copy-file "contrib/emacs/password-store.el" "password-store.el") - (delete-file-recursively "contrib") - (delete-file-recursively "man") - (delete-file-recursively "src") - (delete-file-recursively "tests")))))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'extract-el-file + (lambda _ + (copy-file "contrib/emacs/password-store.el" + "password-store.el") + (delete-file-recursively "contrib") + (delete-file-recursively "man") + (delete-file-recursively "src") + (delete-file-recursively "tests"))) + (add-after 'extract-el-file 'patch-executables + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "password-store.el" + ("password-store-executable" + (search-input-file inputs "/bin/pass")))))))) + (inputs + (list password-store)) (propagated-inputs - (list emacs-auth-source-pass emacs-s emacs-with-editor - password-store)) + (list emacs-auth-source-pass emacs-s emacs-with-editor)) (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs") (synopsis "Password store (pass) support for Emacs") (description "This package provides functions for working with pass (\"the standard Unix password manager\").") - (license license:gpl2+)))) + (license license:gpl3+)))) (define-public emacs-password-store-otp (package @@ -18971,24 +20263,27 @@ match and total match information in the mode-line in various search modes.") (license license:gpl3+))) (define-public emacs-pg - (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d")) - (package - (name "emacs-pg") - (version (git-version "0.1" "1" commit)) - (source (origin - (method git-fetch) - (uri (git-reference (url "https://github.com/cbbrowne/pg.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0")))) - (build-system emacs-build-system) - (home-page "https://github.com/cbbrowne/pg.el") - (synopsis "Emacs Lisp interface for PostgreSQL") - (description - "This package provides an Emacs Lisp interface for PostgreSQL.") - (license license:gpl3+)))) + (package + (name "emacs-pg") + (version "0.20") + (source (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/emarsden/pg-el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a38rvl5rwfb77p4xxmjhrs6s67pfkzjfm0pdxvf0b6xh7h404kh")))) + (build-system emacs-build-system) + (home-page "https://github.com/emarsden/pg-el") + (synopsis "Emacs Lisp interface for PostgreSQL") + (description + "This module lets you access the PostgreSQL object-relational DBMS from +Emacs, using its socket-level frontend/backend protocol. The module is +capable of automatic type coercions from a range of SQL types to the +equivalent Emacs Lisp type. This is a low level API, and won't be useful to +end users.") + (license license:gpl2+))) (define-public emacs-finalize (package @@ -19016,58 +20311,61 @@ object has been freed.") (define-public emacs-emacsql (package (name "emacs-emacsql") - (version "3.0.0") + (version "3.1.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/skeeto/emacsql") + (url "https://github.com/magit/emacsql") (commit (string-append version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g")))) + (base32 "1xpmji2qgr9r38cdhws65x9s9jy7fk93q8g1j2fm7j8kcfjh9x3g")))) (build-system emacs-build-system) (arguments - `(#:modules ((guix build emacs-build-system) + (list + #:tests? #true + #:test-command #~(list "emacs" "-Q" "--batch" + "-L" "tests" + "-L" "." + "-l" "tests/emacsql-tests.el" + "-f" "ert-run-tests-batch-and-exit") + #:modules '((guix build emacs-build-system) (guix build utils) (guix build emacs-utils) (srfi srfi-26)) - #:phases - (modify-phases %standard-phases - (add-before 'install 'patch-elisp-shell-shebangs - (lambda _ - (substitute* (find-files "." "\\.el") - (("/bin/sh") (which "sh"))))) - (add-after 'patch-elisp-shell-shebangs 'setenv-shell - (lambda _ - (setenv "SHELL" "sh"))) - (add-after 'setenv-shell 'build-emacsql-sqlite - (lambda _ - (invoke "make" "binary" (string-append "CC=" ,(cc-for-target))))) - (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite - ;; This build phase installs emacs-emacsql binary. - (lambda* (#:key outputs #:allow-other-keys) - (install-file "sqlite/emacsql-sqlite" - (string-append (assoc-ref outputs "out") "/bin")))) - (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el - ;; This build phase removes interactive prompts - ;; and makes sure Emacs look for binaries in the right places. - (lambda* (#:key outputs #:allow-other-keys) - (let ((file "emacsql-sqlite.el")) - (chmod file #o644) - (emacs-substitute-sexps file - ;; Make sure Emacs looks for ‘GCC’ binary in the right place. - ("(executable-find" (which "gcc")) - ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary - ;; in the right place. - ("(defvar emacsql-sqlite-executable" - (string-append (assoc-ref outputs "out") - "/bin/emacsql-sqlite"))))))))) + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'patch-elisp-shell-shebangs + (lambda _ + (substitute* (find-files "." "\\.el") + (("/bin/sh") (which "sh"))))) + (add-after 'patch-elisp-shell-shebangs 'setenv-shell + (lambda _ + (setenv "SHELL" "sh"))) + (add-after 'setenv-shell 'build-emacsql-sqlite + (lambda _ + (invoke "make" "binary" (string-append "CC=" #$(cc-for-target))))) + (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite + ;; This build phase installs emacs-emacsql binary. + (lambda _ + (install-file "sqlite/emacsql-sqlite" + (string-append #$output "/bin")))) + (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el + ;; This build phase removes interactive prompts + ;; and makes sure Emacs look for binaries in the right places. + (lambda _ + (emacs-substitute-variables "emacsql-sqlite.el" + ("emacsql-sqlite-executable" + (string-append #$output "/bin/emacsql-sqlite")) + ;; Make sure Emacs looks for ‘GCC’ binary in the right place. + ("emacsql-sqlite-c-compilers" + `(list ,(which "gcc"))))))))) (inputs (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql)) (propagated-inputs (list emacs-finalize emacs-pg)) - (home-page "https://github.com/skeeto/emacsql") + (home-page "https://github.com/magit/emacsql") (synopsis "Emacs high-level SQL database front-end") (description "Any readable Lisp value can be stored as a value in EmacSQL, including numbers, strings, symbols, lists, vectors, and closures. EmacSQL @@ -19465,77 +20763,119 @@ tables of contents.") (license license:gpl3+))) (define-public emacs-ts + ;; XXX: Upstream did not tag last release. Use commit matching version + ;; bump. + (let ((commit "552936017cfdec89f7fc20c254ae6b37c3f22c5b")) + (package + (name "emacs-ts") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/ts.el") + (commit commit))) + (sha256 + (base32 "18lif159zndl19ddz9rfq12l90770858yasfns21ryl1yrq3aifr")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + ;; XXX: Three tests are failing because of a timezone-related issue + ;; with how they're written. On my machine, all the failing test + ;; results are 18000 seconds (5 hours) off. + + ;; The ts-parse-org function accepts a string without any timezone + ;; info, not assumed to be in Unix time, and converts it to a so-called + ;; ts struct. The ts-unix function (accessor) accepts a ts struct, + ;; then seems to assume the struct's corresponding time is in terms of + ;; the user's current time zone, before returning a Unix time in + ;; seconds. + + ;; The failing tests all have similar problems, but nothing else about + ;; the library seems particularly off. + (list + #:tests? #t + #:test-command #~(list "emacs" "--batch" + "-l" "test/test.el" + "-f" "ert-run-tests-batch-and-exit") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'make-tests-writable + (lambda _ + (make-file-writable "test/test.el"))) + (add-before 'check 'delete-failing-tests + (lambda _ + (emacs-batch-edit-file "test/test.el" + `(progn + (goto-char (point-min)) + (dolist (test-regexp + '("ert-deftest ts-fill" + "ert-deftest ts-format" + "ert-deftest ts-parse-org\\_>" + "ert-deftest ts-parse-org-element")) + (re-search-forward test-regexp) + (beginning-of-line) + (kill-sexp) + (goto-char (point-min))) + (basic-save-buffer)))))))) + (propagated-inputs + (list emacs-dash emacs-s)) + (home-page "https://github.com/alphapapa/ts.el") + (synopsis "Timestamp and date/time library") + (description "This package facilitates manipulating dates, times, and +timestamps by providing a @code{ts} struct.") + (license license:gpl3+)))) + +(define-public emacs-circadian (package - (name "emacs-ts") - (version "0.2.2") + (name "emacs-circadian") + (version "0.3.3") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/alphapapa/ts.el") + (url "https://github.com/guidoschmidt/circadian.el") (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0l35gz1hpada2kzascbyqgawa5d3sdyg67gzvak84p9zx62jppn8")) - (file-name (git-file-name name version)))) + (base32 "1hydxhmcchaprfmp08xr6nlksz6y97jbf4mswj69bgdfjfbf22km")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-s emacs-dash)) (arguments - ;; XXX: Three tests are failing because of a timezone-related issue - ;; with how they're written. On my machine, all the failing test - ;; results are 18000 seconds (5 hours) off. - - ;; The ts-parse-org function accepts a string without any timezone - ;; info, not assumed to be in Unix time, and converts it to a so-called - ;; ts struct. The ts-unix function (accessor) accepts a ts struct, - ;; then seems to assume the struct's corresponding time is in terms of - ;; the user's current time zone, before returning a Unix time in - ;; seconds. - - ;; The failing tests all have similar problems, but nothing else about - ;; the library seems particularly off. - - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "test/test.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - (modify-phases %standard-phases - (add-before 'check 'make-tests-writable - (lambda _ - (make-file-writable "test/test.el") - #t)) - (add-before 'check 'delete-failing-tests - (lambda _ - (emacs-batch-edit-file "test/test.el" - `(progn (progn - (goto-char (point-min)) - (dolist (test-regexp - '("ert-deftest ts-format" - "ert-deftest ts-parse-org\\_>" - "ert-deftest ts-parse-org-element" - "ert-deftest ts-update")) - (re-search-forward test-regexp) - (beginning-of-line) - (kill-sexp))) - (basic-save-buffer))) - #t))))) - (home-page "https://github.com/alphapapa/ts.el") - (synopsis "Timestamp and date/time library") - (description "This package facilitates manipulating dates, times, and -timestamps by providing a @code{ts} struct.") - (license license:gpl3+))) + (list + #:tests? #t + #:test-command + #~(list "emacs" "--batch" + "-l" "test.el" + "--eval" "(ert-run-tests-batch-and-exit test-order)") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'skip-failing-test + ;; XXX: Skip known (to upstream) failing test. + (lambda _ + (substitute* "test.el" + (("\\(ert-deftest test-circadian-sunrise-sunset .*" all) + (string-append all " (skip-unless nil)")))))))) + (native-inputs + (list emacs-el-mock)) + (home-page "https://github.com/guidoschmidt/circadian.el") + (synopsis "Theme-switching for Emacs based on daytime") + (description "Circadian may reduce eye strain by automatically switching +between light and dark themes based on daytime. It is inspired by color +temperature shifting tools and brightness adaption software.") + ;; The LICENSE file is expat, but the sole ".el" file is explicitly GPL3+. + (license (list license:gpl3+ + license:expat)))) (define-public emacs-peg (package (name "emacs-peg") - (version "1.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar")) (sha256 - (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl")))) + (base32 "0yxfwwwc6fck1p9smcm1dwnva42868xvavhy7j749vlxrgb3v94x")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/peg.html") (synopsis "Parsing Expression Grammars in Elisp") @@ -19546,7 +20886,7 @@ according to a parsing expression grammar.") (define-public emacs-eldev (package (name "emacs-eldev") - (version "1.2.2") + (version "1.3.1") (source (origin (method git-fetch) @@ -19555,7 +20895,7 @@ according to a parsing expression grammar.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0d6wbfim0q81sm5m45fjc6n0v6nk32qrgas5nzrs0vslym4bfxna")))) + (base32 "14rrh5ycwd3r5k3df8aif4jii645m5jgplxky3hrjgr8vxd951h8")))) (build-system emacs-build-system) (arguments (list @@ -19633,40 +20973,49 @@ interactive commands and functions, such as @code{completing-read}.") (license license:gpl3+))) (define-public emacs-org-ql - (package - (name "emacs-org-ql") - (version "0.6.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alphapapa/org-ql") - (commit version))) - (sha256 - (base32 - "0iamqv5j43ngj1xdqr36rkgk9lqpk9bg8y531jsldnvwzrp3srpf")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-dash - emacs-f - emacs-helm - emacs-helm-org - emacs-org - emacs-org-super-agenda - emacs-ov - emacs-peg - emacs-ts - emacs-s)) - (native-inputs - (list emacs-buttercup emacs-with-simulated-input)) - (arguments - `(#:tests? #t - #:test-command '("buttercup" "-L" "."))) - (home-page "https://github.com/alphapapa/org-ql/") - (synopsis "Query language for Org buffers") - (description "This package provides a Lispy query language for Org + (let ((commit "29533525c39e0e243912bb3c807412e4bc3e804e") + (revision "0")) + (package + (name "emacs-org-ql") + (version (git-version "0.6.3" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-ql") + (commit commit))) + (sha256 + (base32 + "01zc2mrlr197r0h2xjgzg88fy74lqbw0hv60jw08ihs0yw7n56y7")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "buttercup" "-L" ".") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'fix-test + (lambda _ + (substitute* "tests/test-org-ql.el" + (("can't be linked to") "can’t be linked to"))))))) + (native-inputs + (list emacs-buttercup emacs-with-simulated-input)) + (propagated-inputs + (list emacs-dash + emacs-f + emacs-helm + emacs-helm-org + emacs-org + emacs-org-super-agenda + emacs-ov + emacs-peg + emacs-s + emacs-ts)) + (home-page "https://github.com/alphapapa/org-ql/") + (synopsis "Query language for Org buffers") + (description "This package provides a Lispy query language for Org files, allowing for actions to be performed based on search criteria.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-bing-dict (package @@ -19759,7 +21108,7 @@ files to be expanded upon opening them.") (define-public emacs-ebib (package (name "emacs-ebib") - (version "2.38.1") + (version "2.39.3") (source (origin (method git-fetch) @@ -19768,7 +21117,7 @@ files to be expanded upon opening them.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1a2pjnfk3yk7r13avjv4xcmq0ld1lw78ngifn9khpl28kd9fgv74")))) + (base32 "1azgsjf5j8k6llq74brykidcb2mnq6fghk8jyq7qad5afh7n0mrc")))) (build-system emacs-build-system) (propagated-inputs (list emacs-biblio emacs-ivy emacs-parsebib)) @@ -19787,30 +21136,33 @@ with (La)TeX mode, Org mode and other Emacs editing modes.") license:gpl3+)))) (define-public emacs-biblio - (package - (name "emacs-biblio") - (version "0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cpitclaudel/biblio.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-dash emacs-let-alist)) - (home-page "https://github.com/cpitclaudel/biblio.el") - (synopsis "Browse and import bibliographic references") - (description "This package provides an extensible Emacs package for + (let ((commit "517ec18f00f91b61481214b178f7ae0b8fbc499b") + (revision "1")) + (package + (name "emacs-biblio") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cpitclaudel/biblio.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0m5vpyj6312rc3xq8lrr1g2hyl26adzwvjxb3jqrm7bvqvs4i5zp")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-dash emacs-let-alist emacs-seq)) + (home-page "https://github.com/cpitclaudel/biblio.el") + (synopsis "Browse and import bibliographic references") + (description "This package provides an extensible Emacs package for browsing and fetching references. @file{biblio.el} makes it easy to browse and gather bibliographic references and publications from various sources, by keywords or by DOI. References are automatically fetched from well-curated sources, and formatted as BibTeX.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-citar (package @@ -19869,7 +21221,7 @@ citations.") (build-system emacs-build-system) (propagated-inputs (list emacs-org-roam emacs-citar)) (home-page "https://github.com/emacs-citar/citar-org-roam") - (synopsis "Emacs pacakge to provide tighter Citar and Org-Roam integration") + (synopsis "Emacs package to provide tighter Citar and Org-Roam integration") (description "\ Out-of-box, Citar provides default support for file-per-note bibliographic notes that are compatible with Org-Roam v2. This package integrates directly @@ -19884,11 +21236,11 @@ Citar note support: (license license:gpl3))) (define-public emacs-helm-bibtex - (let ((commit "aa775340ba691d2322948bfdc6a88158568a1399") - (revision "3")) + (let ((commit "8ebf50d5bd368082d0b7ab79d26a52f372cdef98") + (revision "1")) (package (name "emacs-helm-bibtex") - (version (git-version "2.0.0" revision commit)) + (version (git-version "2.0.1" revision commit)) (source (origin (method git-fetch) @@ -19897,7 +21249,7 @@ Citar note support: (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk")))) + (base32 "1x6nfkprj95cp4ldb485v13hrkd7rvzp750d9xz80vk76gpvaw3l")))) (build-system emacs-build-system) (propagated-inputs (list emacs-helm @@ -20127,31 +21479,6 @@ successive level is highlighted in a different color. This makes it easy to orient yourself in the code, and tell which statements are at a given level.") (license license:gpl3+)))) -(define-public emacs-hierarchy - (package - (name "emacs-hierarchy") - (version "0.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DamienCassou/hierarchy") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r")))) - (build-system emacs-build-system) - (native-inputs - (list emacs-buttercup)) - (arguments - `(#:tests? #t - #:test-command '("buttercup" "-L" "."))) - (home-page "https://github.com/DamienCassou/hierarchy") - (synopsis "Library to create and display hierarchy structures") - (description "This package provides an Emacs library to create, query, -navigate and display hierarchy structures.") - (license license:gpl3+))) - (define-public emacs-tree-mode (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534") (revision "1")) @@ -20190,8 +21517,7 @@ navigate and display hierarchy structures.") (base32 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri")))) (propagated-inputs - (list emacs-hierarchy emacs-request emacs-dash emacs-s - emacs-tree-mode)) + (list emacs-dash emacs-request emacs-s emacs-tree-mode)) (build-system emacs-build-system) (home-page "https://github.com/ahungry/md4rd") (synopsis "Emacs Mode for Reddit") @@ -20200,43 +21526,41 @@ navigate and display hierarchy structures.") (license license:gpl3+))) (define-public emacs-pulseaudio-control - (let ((commit "a931533140547510decdc368f39b2d2b97ca725f") - (revision "4")) + (let ((commit "34a6114357dbbc6b6720aa013e0f8a48f3739403") + (revision "0")) (package (name "emacs-pulseaudio-control") - (version (git-version "0.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flexibeast/pulseaudio-control") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76")))) + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~flexibeast/pulseaudio-control") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wm312pqp0i5i6qh6g3nacnnvsrad58927cl2g42gxzrzlb3slv5")))) (build-system emacs-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-file-name - (lambda* (#:key inputs #:allow-other-keys) - (let ((pulseaudio (assoc-ref inputs "pulseaudio"))) - (chmod "pulseaudio-control.el" #o600) - (emacs-substitute-variables "pulseaudio-control.el" - ("pulseaudio-control-pactl-path" - (string-append pulseaudio "/bin/pactl"))) - #t)))))) + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((pulseaudio (assoc-ref inputs "pulseaudio"))) + (emacs-substitute-variables "pulseaudio-control.el" + ("pulseaudio-control-pactl-path" + (string-append pulseaudio "/bin/pactl"))))))))) (inputs (list pulseaudio)) - (home-page "https://github.com/flexibeast/pulseaudio-control") - (synopsis "Control @code{pulseaudio} from Emacs") + (home-page "https://git.sr.ht/~flexibeast/pulseaudio-control") + (synopsis "Control Pulseaudio from Emacs") (description - "This package allows controlling @code{pulseaudio} from Emacs.") + "This package allows controlling Pulseaudio from Emacs.") (license license:gpl3+)))) (define-public emacs-pulsar (package (name "emacs-pulsar") - (version "0.4.0") + (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -20245,7 +21569,7 @@ navigate and display hierarchy structures.") (file-name (git-file-name name version)) (sha256 (base32 - "05ig8p3y5k20w4xy0ahaml9z0i0xyw6fkypzvz0mjpldhxl7dbxd")))) + "0wwj9civyidfcv0k859w0i2aqb75dypy7aihk3cnv1nv2q4m61j5")))) (native-inputs (list texinfo)) (build-system emacs-build-system) (arguments @@ -20423,8 +21747,8 @@ never confused by comments or @code{foo-bar} matching @code{foo}.") (define-public emacs-crdt ;; XXX: Upstream does not always tag new releases. The commit below ;; corresponds exactly to latest version bump. - (let ((commit "480f60fdda9e40848920fa460b59dfba23fa06e5") - (version "0.3.3")) + (let ((commit "e6d42f42c5dedb73560048f4bf6263c63ffa21bb") + (version "0.3.5")) (package (name "emacs-crdt") (version version) @@ -20436,7 +21760,7 @@ never confused by comments or @code{foo-bar} matching @code{foo}.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "10hb2xwv8ylkm4cla2q5l11r1m1s1j4ywiwvy9x5884gxvbpbbph")))) + (base32 "16dpg0d8p4fqjl2nir290iim9bb7f87rwnxs16lx67dasvbfawph")))) (build-system emacs-build-system) (home-page "https://code.librehq.com/qhong/crdt.el") (synopsis "Real-time collaborative editing environment") @@ -20653,22 +21977,22 @@ or expressions with SVG rounded box labels that are fully customizable.") (define-public emacs-kind-icon (package (name "emacs-kind-icon") - (version "0.1.7") + (version "0.1.9") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/kind-icon-" version ".tar")) (sha256 - (base32 "02imi2qj329yrqvs23d4z7fv8bbaz0fvya6zdswb38blpdri4cn1")))) + (base32 "0phssrcpmcidzlwy1577f3f02qwjs6hpavb416302y0n8kkhwvli")))) (build-system emacs-build-system) (propagated-inputs (list emacs-svg-lib)) (home-page "https://github.com/jdtsmith/kind-icon") (synopsis "Completion kind icons in Emacs") - (description "Kind-icon mode adds a colorful icon or text prefix based -on :company-kind for compatible completion UIs. The \"kind\" prefix is -typically used for differentiating completion candidates such as variables, -functions, etc.") + (description "Kind-icon mode adds a colorful icon or text prefix based on +@code{:company-kind} for compatible completion UIs. The ``kind'' prefix is +typically used for differentiating completion candidates such as variables or +functions.") (license license:gpl3+))) (define-public emacs-svg-icon @@ -20951,6 +22275,30 @@ key again.") within Emacs.") (license license:gpl3+)))) +(define-public emacs-ibrowse + (let* ((commit "7e4a2987fc63861514b441f65db2008da5949ef2") + (revision "0")) + (package + (name "emacs-ibrowse") + (version (git-version "0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~ngraves/ibrowse.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15661xgjxdxk1p0g87dsas9jd9v7g64y6n9irlbyzww09gjsjwwd")))) + (build-system emacs-build-system) + (inputs (list sqlite)) + (propagated-inputs (list emacs-embark emacs-marginalia)) + (home-page "https://git.sr.ht/~ngraves/ibrowse.el") + (synopsis "Interact with your browser from emacs") + (description "This package provides some commands to act on the browser +tabs, history, or bookmarks from Emacs.") + (license license:gpl3+)))) + (define-public emacs-ibuffer-projectile (package (name "emacs-ibuffer-projectile") @@ -21212,10 +22560,10 @@ notes.") (license license:gpl3+))) (define-public emacs-org-reveal - (let ((commit "fe9148b670d144124d9697fcf5d0528f19025104")) + (let ((commit "f55c851bf6aeb1bb2a7f6cf0f2b7bd0e79c4a5a0")) (package (name "emacs-org-reveal") - (version (git-version "20210902" "1" commit)) + (version (git-version "20222711" "1" commit)) (source (origin (method git-fetch) (uri (git-reference @@ -21224,7 +22572,7 @@ notes.") (file-name (git-file-name name version)) (sha256 (base32 - "034gkbc03z9jzj7ad34mmqgmvj4f14ap7iixh3zx4wp2ipw5xb7c")))) + "1ck8v9qwk434w4ib9bmlmpqmiv8k1is5bcr5h7pnswgmgma68dka")))) (build-system emacs-build-system) (home-page "https://github.com/yjwen/org-reveal") (synopsis "Org and Reveal.js powered HTML presentation tool") @@ -21236,7 +22584,7 @@ powerful Org contents.") (define-public emacs-org-re-reveal (package (name "emacs-org-re-reveal") - (version "3.15.0") + (version "3.17.0") (source (origin (method git-fetch) @@ -21245,7 +22593,7 @@ powerful Org contents.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0mn7qn80289gizvnxyjjs00b7qmlf0692kai7qgzgfj6i87pjc38")))) + (base32 "1bp3kz2awy2mizs59qsa2yl7wfa0197fklnramzifz6z2zv5kbrx")))) (build-system emacs-build-system) (propagated-inputs (list emacs-htmlize emacs-org)) @@ -21476,7 +22824,7 @@ and doesn't require memorisation of commands. (define-public emacs-logview (package (name "emacs-logview") - (version "0.15.1") + (version "0.16") (source (origin (method git-fetch) @@ -21485,7 +22833,7 @@ and doesn't require memorisation of commands. (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1khri5632pjirj191x3ps94s4pyrwapf1pbrkmqqp0d26b50d3s2")))) + (base32 "0vw6brs76z7fkvlazakwhhgdcydjc099j150c7503kwi2hmmp0p8")))) (propagated-inputs (list emacs-datetime emacs-extmap)) (build-system emacs-build-system) @@ -21529,26 +22877,24 @@ functions.") (license license:gpl3+))) (define-public emacs-benchmark-init - (let ((commit "02435560415bbadbcf5051fb7042880549170e7e") - (revision "1")) - (package - (name "emacs-benchmark-init") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dholm/benchmark-init-el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "19375vamhld4xm2qrdmhlp2nczfvalmz9x6ahl23zwkilr8n1nbw")))) - (build-system emacs-build-system) - (home-page "https://github.com/dholm/benchmark-init-el") - (synopsis "Benchmark Emacs @code{require} and @code{load} calls") - (description "@code{benchmark-init} provides a way to keep track of where + (package + (name "emacs-benchmark-init") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dholm/benchmark-init-el") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19375vamhld4xm2qrdmhlp2nczfvalmz9x6ahl23zwkilr8n1nbw")))) + (build-system emacs-build-system) + (home-page "https://github.com/dholm/benchmark-init-el") + (synopsis "Benchmark Emacs @code{require} and @code{load} calls") + (description "@code{benchmark-init} provides a way to keep track of where time is being spent during Emacs startup in order to optimize startup time.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-magit-gerrit (package @@ -21646,47 +22992,38 @@ Magit.") (license license:gpl3+))) (define-public emacs-lice-el - (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c")) - (package - (name "emacs-lice-el") - (version (git-version "0.2" "2" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/buzztaiki/lice-el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-template-directory - (lambda* (#:key outputs #:allow-other-keys) - (chmod "lice.el" #o666) - (emacs-substitute-variables "lice.el" - ("lice:system-template-directory" - (string-append (assoc-ref outputs "out") - "/share/emacs-lice-el/template"))) - #t)) - (add-after 'install 'install-templates - (lambda* (#:key outputs #:allow-other-keys) - (copy-recursively - "template" - (string-append (assoc-ref outputs "out") - "/share/emacs-lice-el/template")) - #t))))) - (home-page "https://github.com/buzztaiki/lice-el") - (synopsis "License and header template for Emacs") - (description "@code{lice.el} provides following features: + (package + (name "emacs-lice-el") + (version "0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/buzztaiki/lice-el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06plnrxj6kgnl9mjcbc48mgagpa60yyyyribwicmcgg9pgrs0wad")))) + (build-system emacs-build-system) + (arguments + (list + #:include #~(cons "^template/" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-template-directory + (lambda _ + (emacs-substitute-variables "lice.el" + ("lice:system-template-directory" + (string-append (elpa-directory #$output) "/template")))))))) + (home-page "https://github.com/buzztaiki/lice-el") + (synopsis "License and header template for Emacs") + (description "@code{lice.el} provides following features: @itemize @item License template management. @item File header insertion. @end itemize\n") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-academic-phrases (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656")) @@ -22230,6 +23567,29 @@ It replaces the standard completions buffer with Ido prompt.") using user-provided rules.") (license license:gpl3+))) +(define-public emacs-on + (let ((commit "83baed07a105c135190d49d7ec77f95e8f38fa54") + (revision "0")) + (package + (name "emacs-on") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ajgrf/on.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14ly3w89hf4jgd8wacirxgd8vrgj7vc0hpfn911w5wa4k2a6nzpp")))) + (build-system emacs-build-system) + (home-page "https://github.com/ajgrf/on.el") + (synopsis "Hooks for faster Emacs startup") + (description + "This package exposes a number of utility hooks and functions ported +from Doom Emacs.") + (license license:expat)))) + (define-public emacs-on-screen (package (name "emacs-on-screen") @@ -22275,38 +23635,40 @@ Emacs minor mode to escape sequences in code.") (license license:gpl3+)))) (define-public emacs-dashboard - (package - (name "emacs-dashboard") - (version "1.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rakanalh/emacs-dashboard") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-page-break-lines)) - (arguments - '(#:include '("\\.el$" "\\.txt$" "\\.png$") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-dashboard-widgets - ;; This phase fixes compilation error. - (lambda _ - (chmod "dashboard-widgets.el" #o666) - (emacs-substitute-variables "dashboard-widgets.el" - ("dashboard-init-info" - '(format "Loaded in %s" (emacs-init-time)))) - #t))))) - (home-page "https://github.com/rakanalh/emacs-dashboard") - (synopsis "Startup screen extracted from Spacemacs") - (description "This package provides an extensible Emacs dashboard, with -sections for bookmarks, projectil projects, org-agenda and more.") - (license license:gpl3+))) + (let ((version "1.7.0") + (commit "a69cc103aebd957f967e431399681b6d9d6b52fc") + (revision "0")) + (package + (name "emacs-dashboard") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rakanalh/emacs-dashboard") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c6snnpc9rp6zhhdz411wyh2wn56yq2cdmxxqsp1ibvac8cbb1pq")))) + (build-system emacs-build-system) + (arguments + (list + #:include #~(cons* "\\.txt$" "\\.png$" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-dashboard-widgets + ;; This phase fixes compilation error. + (lambda _ + (emacs-substitute-variables "dashboard-widgets.el" + ("dashboard-init-info" + '(format "Loaded in %s" (emacs-init-time))))))))) + (propagated-inputs + (list emacs-page-break-lines)) + (home-page "https://github.com/rakanalh/emacs-dashboard") + (synopsis "Startup screen extracted from Spacemacs") + (description "This package provides an extensible Emacs dashboard, with +sections for bookmarks, Projectile projects, Org Agenda and more.") + (license license:gpl3+)))) (define-public emacs-slime-company (package @@ -22335,14 +23697,14 @@ modes of SLIME.") (define-public emacs-sml-mode (package (name "emacs-sml-mode") - (version "6.10") + (version "6.11") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/sml-mode-" - version ".el")) + version ".tar")) (sha256 - (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb")))) + (base32 "05vga709kphbx6jacqh57cq5gyicwrxxf81gask5lbq7vzfzlbfc")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/sml-mode.html") (synopsis "Major mode for editing (Standard) ML") @@ -23075,6 +24437,32 @@ the GIF result.") on-line service.") (license license:gpl3+))) +(define-public emacs-lingva + (let ((commit "6c33594068fa33de622172503deeec6778d9c744") + (revision "1")) + (package + (name "emacs-lingva") + (version + (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://codeberg.org/martianh/lingva.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r2f4wrd2v67m7198z0194pg853hbq4vvpd3x96y5ikbypywf426")))) + (build-system emacs-build-system) + (home-page "https://codeberg.org/martianh/lingva.el") + (synopsis "Interact with the lingva.ml API from within Emacs") + (description "This is a basic interface to the lingva.ml API, which +allows you to obtain translations of texts from Google Translate without any +tracking.") + (license license:gpl3+)))) + (define-public emacs-helm-company (package (name "emacs-helm-company") @@ -23370,7 +24758,7 @@ file.") (define-public emacs-packed (package (name "emacs-packed") - (version "3.0.4") + (version "3.1.0") (source (origin (method git-fetch) @@ -23379,8 +24767,10 @@ file.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p")))) + (base32 "0i2j5yk6xhv4rh3317f241y9llwf4wk18a6a4lkqrvbjpvi9yvn0")))) (build-system emacs-build-system) + (propagated-inputs + (list emacs-compat)) (home-page "https://github.com/emacscollective/packed") (synopsis "Package manager agnostic Emacs Lisp package utilities") (description @@ -23595,68 +24985,65 @@ accept and reject GitHub pull requests.") (license license:gpl3+)))) (define-public emacs-deadgrep - ;; Latest release is not tagged. - (let ((commit "aebaf72e35546fd235b4861399791814e4e4c7d8") - (revision "1")) - (package - (name "emacs-deadgrep") - (version (git-version "0.11" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Wilfred/deadgrep") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1qd60winrrpxmrjsx77i24921p6dad9halz5l5s6biwa421zcgr3")))) - (build-system emacs-build-system) - (inputs (list ripgrep)) - (propagated-inputs - (list emacs-dash emacs-s emacs-spinner)) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((ripgrep (assoc-ref inputs "ripgrep"))) - ;; .el is read-only in git. - (make-file-writable "deadgrep.el") - ;; Specify the absolute file names of rg so that everything - ;; works out-of-the-box. - (emacs-substitute-variables "deadgrep.el" - ("deadgrep-executable" - (string-append ripgrep "/bin/rg"))))))))) - (home-page "https://github.com/Wilfred/deadgrep") - (synopsis "Frontend for @code{ripgrep}") - (description "This package provides an Emacs interface for performing + (package + (name "emacs-deadgrep") + (version "0.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Wilfred/deadgrep") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bwf8gsqw7hsmacqd34piwgv066ijfclmxaigkvhvpac0lpsmi79")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((ripgrep (search-input-file inputs "/bin/rg"))) + ;; Specify the absolute file name of rg so that everything + ;; works out-of-the-box. + (emacs-substitute-variables "deadgrep.el" + ("deadgrep-executable" ripgrep)))))))) + (native-inputs + (list emacs-ert-runner emacs-undercover)) + (inputs + (list ripgrep)) + (propagated-inputs + (list emacs-dash emacs-s emacs-spinner)) + (home-page "https://github.com/Wilfred/deadgrep") + (synopsis "Frontend for @code{ripgrep}") + (description "This package provides an Emacs interface for performing searches with @code{ripgrep}.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-focus - (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0") - (version "1.0.0") - (revision "1")) - (package - (name "emacs-focus") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/larstvei/Focus") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw")))) - (build-system emacs-build-system) - (home-page "https://github.com/larstvei/Focus") - (synopsis "Minor mode for focusing in on relevant text") - (description "This package provides a minor mode that dims the color of + (package + (name "emacs-focus") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/larstvei/Focus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qbzbs18isxyf5yiz64vyxvzjpfjdaafxnas2lhx3sjkgglb08i2")))) + (build-system emacs-build-system) + (home-page "https://github.com/larstvei/Focus") + (synopsis "Minor mode for focusing in on relevant text") + (description "This package provides a minor mode that dims the color of text in neighboring sections.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-pandoc-mode (package @@ -23779,6 +25166,42 @@ for C++ code that uses OpenVDB and needs to be build against multiple incompatible versions of it.") (license license:gpl3+))) +(define-public emacs-org-board + (let ((commit "1393bd46d11a81328ed4fb8471831415a3efe224") + (revision "1")) + (package + (name "emacs-org-board") + (version (git-version "1138" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charlesroelli/org-board") + (commit commit))) + (sha256 + (base32 + "1kryrg988c3sbxyp1sdgc6xdv2iz6kiflpzn2rw4z3l4grzab53b")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-wget-location + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "org-board.el" + ("org-board-wget-program" + (search-input-file inputs "/bin/wget")))))))) + (inputs + (list wget)) + (propagated-inputs + (list emacs-org emacs-ztree)) + (home-page "https://github.com/charlesroelli/org-board") + (synopsis "Bookmarking and web archival system for Org mode") + (description + "Org Board is a bookmarking and web archival system for Emacs Org mode. +It archives your bookmarks so that you can access them even when you're not +online, or when the site hosting them goes down.") + (license license:gpl2+)))) + (define-public emacs-org-brain (package (name "emacs-org-brain") @@ -24254,6 +25677,43 @@ stories. The default feed is top stories, which corresponds to the Hacker News homepage.") (license license:gpl3))) +(define-public emacs-tokei + (package + (name "emacs-tokei") + (version "0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nagy/tokei.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gcjlcfxd4bg123gjf7d0vfvfd6zpd0da8svynglca1qhp77jkx1")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + ;; .el is read-only in git. + (make-file-writable "tokei.el") + ;; Specify the absolute file name of tokei so that everything + ;; works out-of-the-box. + (emacs-substitute-variables "tokei.el" + ("tokei-program" + (search-input-file inputs "/bin/tokei")))))))) + (inputs (list tokei)) + (propagated-inputs (list emacs-magit)) + (home-page "https://github.com/nagy/tokei.el") + (synopsis "Display codebase statistics in Emacs") + (description + "@code{emacs-tokei} is a major-mode for Emacs, that displays codebase +statistics with the help of @code{tokei}.") + (license license:gpl3+))) + (define-public emacs-youtube-dl (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4") (revision "2")) @@ -24501,7 +25961,7 @@ backends, including the @command{wordnet} offline backend.") (define-public emacs-editorconfig (package (name "emacs-editorconfig") - (version "0.8.2") + (version "0.9.1") (source (origin (method git-fetch) @@ -24511,7 +25971,7 @@ backends, including the @command{wordnet} offline backend.") (file-name (git-file-name name version)) (sha256 (base32 - "1lqxgc24gr67yhi64i9v4w2dcjhpx99jg1kr25gr2byqkkdldkz0")))) + "1v8x649r9b0ihnhddkkfb8ck21z2hr3swgczwgzwdk0ys6pl89my")))) (build-system emacs-build-system) (home-page "https://github.com/editorconfig/editorconfig-emacs") (synopsis "Define and maintain consistent coding styles between different @@ -24951,7 +26411,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)") (define-public emacs-buttercup (package (name "emacs-buttercup") - (version "1.26") + (version "1.29") (source (origin (method git-fetch) @@ -24961,7 +26421,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)") (file-name (git-file-name name version)) (sha256 (base32 - "1zr9lczdr9dfh99n079d5advxm9p32a8f984dx14f3jn5mx750b1")))) + "0a5wvm7nh4748wzvp2b9jll74ifqz22bicxkl5fwp4di4vrqpd47")))) (build-system emacs-build-system) (arguments (list @@ -25438,46 +26898,49 @@ chevron marks.") (license license:gpl3+)))) (define-public emacs-nix-mode - ;; Use the latest commit to get unreleased fixes to build with Emacs 28.1. - (let ((commit "8fe2ccf0b01f694a77d2528e06c10f06057784f6") - (revision "0")) - (package - (name "emacs-nix-mode") - (version (git-version "1.4.5" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/NixOS/nix-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "08kz9qp4gp55z1i87ig0ysq6pgqgwlgr765g1vp8gsh6lp3myh36")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-company emacs-json-mode emacs-magit emacs-mmm-mode)) - (home-page "https://github.com/NixOS/nix-mode") - (synopsis "Emacs major mode for editing Nix expressions") - (description "@code{nixos-mode} provides an Emacs major mode for editing + (package + (name "emacs-nix-mode") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NixOS/nix-mode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xvrnpk7cnjm55ja6j7bdnszkzj914gmyzb12r89jh0z25r09crq")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-company emacs-json-mode emacs-magit emacs-mmm-mode)) + (home-page "https://github.com/NixOS/nix-mode") + (synopsis "Emacs major mode for editing Nix expressions") + (description "@code{nixos-mode} provides an Emacs major mode for editing Nix expressions. It supports syntax highlighting, indenting and refilling of comments.") - (license license:lgpl2.1+)))) + (license license:lgpl2.1+))) (define-public emacs-libmpdel (package (name "emacs-libmpdel") - (version "1.3.0") + (version "2.0.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitea.petton.fr/mpdel/libmpdel.git") + (url "https://github.com/mpdel/libmpdel") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0krxhcay5s9s7i41q7ga5skj31vaz2qx3djcrlwajf203bl8j4m9")))) + "03bavca89cf7dsjmg7hb48qnvca41ndiij33iw5yjjhbq1zyj8r4")))) (build-system emacs-build-system) - (home-page "https://gitea.petton.fr/mpdel/libmpdel") + (arguments + (list + #:tests? #t + #:test-command #~(list "ert-runner"))) + (native-inputs + (list emacs-ert-runner)) + (home-page "https://github.com/mpdel/libmpdel") (synopsis "Emacs library to communicate with Music Player Daemon (MPD)") (description "LibMPDel is an Emacs library client to communicate with Music Player @@ -25488,20 +26951,20 @@ music.") (define-public emacs-mpdel (package (name "emacs-mpdel") - (version "1.0.0") + (version "2.1.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitea.petton.fr/mpdel/mpdel.git") + (url "https://github.com/mpdel/mpdel") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g")))) + "00ajjb9iawva3g7i1y6bz4d4ny3cv5rby6vgkwiy2xkprzxi8900")))) (build-system emacs-build-system) - (inputs - (list emacs-libmpdel)) + (propagated-inputs + (list emacs-libmpdel emacs-navigel)) (home-page "https://gitea.petton.fr/mpdel/mpdel") (synopsis "Emacs user interface for Music Player Daemon (MPD)") (description @@ -25510,13 +26973,113 @@ next, volume) and display and control the current playlist as well as your stored playlists.") (license license:gpl3+))) + +(define-public emacs-kodi-remote + (let ((commit "f5e932036c16e2b61a63020e006fc601e38d181e") + (revision "0")) + (package + (name "emacs-kodi-remote") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spiderbit/kodi-remote.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gck7lvqxcr9ikrzlpvcf4408cq6i4s8ijgb0kdsbkfzv0w86934")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-f emacs-json-mode emacs-let-alist emacs-request)) + (home-page "https://github.com/spiderbit/kodi-remote.el") + (synopsis "Remote control for Kodi") + (description + "This package provides a major mode to control Kodi +instances (play/pause, volume control, media selection, etc.) remotely.") + (license license:gpl3+)))) + +(define-public emacs-navigel + (package + (name "emacs-navigel") + (version "0.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DamienCassou/navigel") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v9f7wb6yghds3hjj8x5di6gfa8n5kjwhav7la1ca2zwgs2c1a9p")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "ert-runner"))) + (native-inputs + (list emacs-ert-runner)) + (propagated-inputs + (list emacs-tablist)) + (home-page "https://github.com/DamienCassou/navigel") + (synopsis "Emacs library for creating tabulated-list based user-interfaces") + (description + "The navigel package is a library that makes it simpler for Emacs Lisp +developers to define user-interfaces based on tablists (also known as +tabulated-lists).") + (license license:gpl3+))) + +(define-public emacs-eat + (package + (name "emacs-eat") + (version "0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/akib/emacs-eat") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0zs1fwbapgsap8vai97f1inginb896gl15kyjm521nvaywk4rc12")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Remove generated terminfo database. + (delete-file-recursively "terminfo"))))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:include #~(cons* "^term/" + "^terminfo/" + "^integration/" + "\\.ti$" + %default-include) + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'build-info + (lambda _ + (invoke "make" "info"))) + (add-before 'install 'build-terminfo-database + (lambda _ + (invoke "make" "terminfo")))))) + (native-inputs + (list ncurses texinfo)) + (home-page "https://codeberg.org/akib/emacs-eat") + (synopsis "Terminal emulator in Emacs") + (description + "Eat (Emulate A Terminal) is a terminal emulator in Emacs, written in +pure Elisp. It has features like complete mouse support and shell +integration.") + (license license:gpl3+))) + (define-public emacs-vterm - (let ((version "0.0.1") - (revision "1") - (commit "b44723552f86407d528c4a6c8057382c061b008e")) + (let ((commit "e19dc2bb9859a75616bf068c341a540d0d329e4d")) (package (name "emacs-vterm") - (version (git-version version revision commit)) + (version "0.0.2") (source (origin (method git-fetch) (uri (git-reference @@ -25525,7 +27088,7 @@ stored playlists.") (file-name (git-file-name name version)) (sha256 (base32 - "0rq2skwylvc7s4vfpbbsdykws4akyp9sc6xgrh2ql5yydhhnv2h3")))) + "0iqlzpy83ra6xz406fmddfj72bmkdb5b1j59m1dbxf3wxn55320d")))) (build-system emacs-build-system) (arguments `(#:modules ((guix build emacs-build-system) @@ -25694,7 +27257,7 @@ according to their use.") (define-public emacs-detached (package (name "emacs-detached") - (version "0.8.1") + (version "0.10.1") (source (origin (method git-fetch) (uri (git-reference @@ -25703,7 +27266,7 @@ according to their use.") (file-name (git-file-name name version)) (sha256 (base32 - "190sil04wbnnml7i1nv19xn8fpqwng9xngpsxvmfxj3bzn7slid6")))) + "0dvvyqc0nw9has54vps10f5iv831cb29vqvbvx0m2djv9pacqp17")))) (arguments (list #:tests? #t @@ -25712,7 +27275,6 @@ according to their use.") #~(modify-phases %standard-phases (add-after 'unpack 'configure (lambda* (#:key inputs #:allow-other-keys) - (make-file-writable "detached.el") (emacs-substitute-variables "detached.el" ("detached-dtach-program" (search-input-file inputs "/bin/dtach")) @@ -25722,11 +27284,11 @@ according to their use.") (native-inputs (list emacs-ert-runner)) (inputs (list dtach)) (home-page "https://git.sr.ht/~niklaseklund/detached.el") - (synopsis "A package to launch, and manage, detached processes") + (synopsis "Launch and manage detached processes from Emacs") (description - "The detached package allows users to run processes -detached from Emacs. It provides integration with multiple built-in modes, as -well as providing an interface to attach and interact with the processes.") + "The Detached package allows users to run processes detached from Emacs. +It provides integration with multiple built-in modes, as well as providing an +interface to attach and interact with the processes.") (license license:gpl3+))) (define-public emacs-dtache @@ -26043,7 +27605,7 @@ constant expressions.") (define-public emacs-dockerfile-mode (package (name "emacs-dockerfile-mode") - (version "1.7") + (version "1.8") (source (origin (method git-fetch) @@ -26053,7 +27615,7 @@ constant expressions.") (file-name (git-file-name name version)) (sha256 (base32 - "0hmzwh8m72rj6cwaxfypnv3fmjrs11iqr15vsdw1rw7m55xi675f")))) + "0bv19mii4h47jllps72h69nwrlbfvwxgca1cl4cdxvpx0zkr6qx7")))) (build-system emacs-build-system) (propagated-inputs (list emacs-s)) @@ -26065,8 +27627,8 @@ the standard @code{Dockerfile} file format.") (license license:asl2.0))) (define-public emacs-lsp-mode - (let ((commit "4aafe25e03ab7470b8d3c1cb326affa3c5e9930e") - (revision "0")) + (let ((commit "26c4d3e54ad2956623e64132312fe864274d346f") + (revision "1")) (package (name "emacs-lsp-mode") (version (git-version "8.0.1" revision commit)) @@ -26078,7 +27640,7 @@ the standard @code{Dockerfile} file format.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "01csz4vr3fg1q2py45mxj5j8bkvckn3daam1jafb2gg9gjc9bp7z")))) + (base32 "0klnik69b5y6s2q00vyshxymlg7k4x9x6m7wpsf7z9w12qn27alx")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs ;need libxml support @@ -26113,19 +27675,77 @@ optional integration with other popular Emacs packages like Company, Flycheck, and Projectile.") (license license:gpl3+)))) +(define* (%emacs-lsp-treemacs-upstream-source #:key commit version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-lsp/lsp-treemacs") + (commit commit))) + (file-name (git-file-name "emacs-lsp-treemacs" version)) + (hash hash))) + (define-public emacs-lsp-treemacs (package (name "emacs-lsp-treemacs") (version "0.4") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-lsp/lsp-treemacs") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0")))) + (method (@@ (guix packages) computed-origin-method)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build emacs-utils) + (guix build utils)) + #~(begin + (use-modules (guix build utils) + (guix build emacs-utils)) + (let* ((dir (string-append "emacs-lsp-treemacs-" #$version))) + + (set-path-environment-variable + "PATH" '("bin") + (list #+emacs-minimal + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package gzip) + #+(canonical-package tar))) + + ;; Copy the upstream source + (copy-recursively + #+(%emacs-lsp-treemacs-upstream-source + #:commit version #:version version + #:hash + (content-hash + "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0")) + dir) + + (with-directory-excursion dir + ;; The icons are unclearly licensed and possibly non-free, + ;; see <https://github.com/emacs-lsp/lsp-treemacs/issues/123> + (with-directory-excursion "icons" + (for-each delete-file-recursively + '("eclipse" "idea" "netbeans"))) + + ;; Also remove any mentions in the source code. + (make-file-writable "lsp-treemacs-themes.el") + (emacs-batch-edit-file "lsp-treemacs-themes.el" + '(progn + (while (search-forward-regexp + "(treemacs-create-theme \"\\([^\"]*\\)\"" + nil t) + (pcase (match-string 1) + ("Iconless" nil) + (_ (beginning-of-line) + (kill-sexp))) + (basic-save-buffer))))) + + (invoke "tar" "cvfa" #$output + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + "--sort=name" + "--hard-dereference" + dir)))))))) (build-system emacs-build-system) (propagated-inputs (list emacs-lsp-mode emacs-treemacs)) @@ -26164,7 +27784,7 @@ Debug server.") (define-public emacs-bfuture (package (name "emacs-bfuture") - (version "1.0.1") + (version "1.0.2") (source (origin (method git-fetch) @@ -26173,7 +27793,7 @@ Debug server.") (commit (string-append "v" version)))) (sha256 (base32 - "1m4v4xbsvg26z7nvg2c8q7x1nvv7v4ajm56l0nbkwcbdbrgahpva")) + "1qflkyr7fafw84mksxs25mka133y8ak8nsga3al29014pshbvzxn")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments @@ -26626,7 +28246,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (define-public emacs-forge (package (name "emacs-forge") - (version "0.3.1") + (version "0.3.2") (source (origin (method git-fetch) @@ -26635,7 +28255,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "112mghydfzrbiwnzrb2f9d74y6ja702157p66ss94kqps0lj7rkp")))) + (base32 "0p1jlq169hpalhzmjm3h4q3x5xr9kdmz0qig8jwfvisyqay5vbih")))) (build-system emacs-build-system) (arguments `(#:tests? #f ;no tests @@ -27148,31 +28768,32 @@ invoked.") (description "This package allows ERT to work with asynchronous tests.") (license license:gpl3+))) +(define-public emacs-prodigy + (package + (name "emacs-prodigy") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rejeep/prodigy.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04xspdj67nas1ivv0ldlmmkr6v7zd7y3k346pnfgvq8wzqi6x4vz")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-dash emacs-f emacs-s)) + (native-inputs + (list emacs-el-mock emacs-ert-async)) + (home-page "https://github.com/rejeep/prodigy.el") + (synopsis "Manage external services from within Emacs") + (description "This package provides a GUI for defining and monitoring services.") + (license license:gpl3+))) + (define-public emacs-prodigy-el - (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1") - (revision "2")) - (package - (name "emacs-prodigy-el") - (version (git-version "0.7.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rejeep/prodigy.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-dash emacs-s emacs-f)) - (native-inputs - (list emacs-el-mock emacs-ert-async)) - (home-page "https://github.com/rejeep/prodigy.el") - (synopsis "Manage external services from within Emacs") - (description "This package provides a GUI for defining and monitoring services.") - (license license:gpl3+)))) + (deprecated-package "emacs-prodigy-el" emacs-prodigy)) (define-public emacs-web-server (package @@ -27313,7 +28934,8 @@ support JSX syntax.") (define-public emacs-origami-el (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366") (version "1.0") - (revision "1")) + (revision "1") + (patch "1d9c4f120c027a5009b0424270e3aae59f1cb128")) (package (name "emacs-origami-el") (version (git-version version revision commit)) @@ -27326,7 +28948,17 @@ support JSX syntax.") (file-name (git-file-name name version)) (sha256 (base32 - "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x")))) + "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x")) + (patches + (list + (origin + (method url-fetch) + (uri (string-append + "https://github.com/gregsexton/origami.el" + "/commit/" patch ".patch")) + (sha256 + (base32 + "0yia4dhqjzdidxd77s2ggg6mmj05jbsnwc35myzzhzh1zbq8mrfy"))))))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-s)) @@ -27752,7 +29384,7 @@ or regions to a REPL from ~a buffers.") language)))) (make-emacs-eval-in-repl "elm" #:inputs (list emacs-elm-mode))) (define-public emacs-eval-in-repl-erlang - (make-emacs-eval-in-repl "erlang" #:inputs (list emacs-erlang))) + (make-emacs-eval-in-repl "erlang" #:inputs (delay (list emacs-erlang)))) (define-public emacs-eval-in-repl-geiser (make-emacs-eval-in-repl "geiser" #:language "Scheme" @@ -27883,7 +29515,7 @@ well as an option for visually flashing evaluated s-expressions.") (define-public emacs-counsel-tramp (package (name "emacs-counsel-tramp") - (version "0.7.5") + (version "0.7.6") (source (origin (method git-fetch) @@ -27892,7 +29524,7 @@ well as an option for visually flashing evaluated s-expressions.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr")))) + (base32 "02dhchmyaqv6855mafjxizzgpl32rmnwdmw0nbm6rkckr13cgjl1")))) (build-system emacs-build-system) (propagated-inputs (list emacs-counsel)) @@ -27905,14 +29537,14 @@ well as an option for visually flashing evaluated s-expressions.") (define-public emacs-tramp (package (name "emacs-tramp") - (version "2.5.3.2") + (version "2.6.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "tramp-" version ".tar")) (sha256 - (base32 "1jcicb9f7c1nmaqg20yy2j4wd0qfch4llc26ga7q3ckhx41pvbiw")))) + (base32 "1y58k0qdc9i3av61p9ks7hg5vynsi2zslv5mswcbd1wf23iggr7c")))) (build-system emacs-build-system) (arguments (list @@ -28110,31 +29742,42 @@ functions (e.g. @code{webfeeder-title-function}).") (license license:gpl3+))) (define-public emacs-evil-numbers - (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e")) + ;; XXX: Upstream did not tag latest release. Use commit matching exact + ;; version bump. + (let ((commit "61dde4e3715fd1255df8f87a37d9c8022e909bf4")) (package (name "emacs-evil-numbers") - (version (git-version "0.4" "1" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dieggsy/evil-numbers") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np")))) + (version "0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/juliapath/evil-numbers") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "006s8azhypp5n7jnvqkb4rmzqmnsdwj87c3r97zhjzgi2jq953gx")))) (build-system emacs-build-system) - (home-page "https://github.com/dieggsy/evil-numbers") - (synopsis "Increment and decrement numbers in Emacs") - (description "This package increments and decrements binary, octal, -decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for -number up to EOL and then increments or decrements and keeps zero padding up -(unlike in Vim). When a region is active, as in Evil's visual mode, all the -numbers within that region will be incremented/decremented (unlike in Vim). - -It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.") + (arguments + (list + #:tests? #t + #:test-command #~(list "emacs" "--batch" + "-l" "evil-numbers.el" + "-l" "tests/evil-numbers-tests.el" + "-f" "ert-run-tests-batch-and-exit"))) + (native-inputs (list emacs-ert-runner)) + (propagated-inputs (list emacs-evil)) + (home-page "https://github.com/juliapath/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-janpath-evil-numbers + (deprecated-package "emacs-janpath-evil-numbers" emacs-evil-numbers)) + (define-public emacs-rotate-text (package (name "emacs-rotate-text") @@ -28161,16 +29804,15 @@ between \"frame-width\" and \"frame-height\", between \"public\", (define-public emacs-ediprolog (package (name "emacs-ediprolog") - (version "2.1") + (version "2.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/ediprolog-" - version - ".el")) + version ".tar")) (sha256 - (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md")))) + (base32 "021jm5zdxrjg7xcja18vgc2v52rk17xi1k7xxw8q802nmixhy0js")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/ediprolog.html") (synopsis "Emacs Does Interactive Prolog") @@ -28227,14 +29869,14 @@ implementation of Windows NT and LanManager compatible password encryption.") (define-public emacs-nadvice (package (name "emacs-nadvice") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" - "nadvice-" version ".el")) + "nadvice-" version ".tar")) (sha256 - (base32 "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw")))) + (base32 "0ac7zxi04gzcd5hz81lib1db3c6a7xmwkb381ljxvaha1mlzp1k0")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/nadvice.html") (synopsis "Forward compatibility for Emacs-24.4's nadvice") @@ -28274,7 +29916,7 @@ advice system without dropping support for Emacs<24.4.") (sha256 (base32 "0ajv6l1p8dinnlybwzvv4c2i6291is6isjxb2h4apg27g66qbcki")))) (build-system emacs-build-system) - (home-page "httpa://elpa.gnu.org/packages/soap-client.html") + (home-page "https://elpa.gnu.org/packages/soap-client.html") (synopsis "Access SOAP web services") (description "This package provides a SOAP client to access web services.") @@ -28311,18 +29953,19 @@ programming in Emacs Lisp easy and fun.") (base32 "1g0wc2kp15ra323b4rxvdh58q9c4h7m20grw6a0cs53m7l9xi62f")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-fsm emacs-nadvice emacs-soap-client emacs-url-http-ntlm)) + (list emacs-fsm emacs-soap-client emacs-url-http-ntlm)) (home-page "https://elpa.gnu.org/packages/excorporate.html") (synopsis "Exchange integration") (description "This package provides Exchange integration for Emacs.") (license license:gpl3+))) (define-public emacs-evil-traces - (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3") - (revision "2")) + ;; XXX: Upstream does not tag releases. Use commit matching exact version + ;; bump. + (let ((commit "05e201cd63b549e3c88b5c3fc9b264bd6fe5a42c")) (package (name "emacs-evil-traces") - (version (git-version "0.0.1" revision commit)) + (version "0.2.0") (source (origin (method git-fetch) (uri (git-reference @@ -28331,25 +29974,25 @@ programming in Emacs Lisp easy and fun.") (file-name (git-file-name name version)) (sha256 (base32 - "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz")))) + "0vadpy2whcgx08blyb4vw6wq3nrxdl03zv85lp37pf3mdk9kwmga")))) (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "make" "test") + #: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"))))))) (propagated-inputs (list emacs-evil)) - (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))) - #:tests? #t - #:test-command '("make" "test"))) (home-page "https://github.com/mamapanda/evil-traces") - (synopsis "Visual hints for @code{evil-ex}") - (description "This package adds visual hints to certain @code{ex} -commands in @code{evil-mode}.") + (synopsis "Visual hints for Emacs' Evil Ex commands") + (description "This package adds visual hints to certain Ex commands in +Evil mode.") (license license:gpl3+)))) (define-public emacs-evil-tmux-navigator @@ -28870,14 +30513,14 @@ federated microblogging social network.") (define-public emacs-ebdb (package (name "emacs-ebdb") - (version "0.8.14") + (version "0.8.17") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "ebdb-" version ".tar")) (sha256 - (base32 "0h7yva7p4b4lapi7pwcibf75nqmazjf3r67ibnkc8l9salfhml25")))) + (base32 "0d2csc7b4mhaqcj8g3v46j11f5xcvbvgx06wxxfq2w0p2nzz1sik")))) (build-system emacs-build-system) (home-page "https://github.com/girzel/ebdb") (synopsis "EIEIO port of BBDB, Emacs's contact-management package") @@ -28887,6 +30530,28 @@ a re-write of the Insidious Big Brother Database (BBDB) using Emacs Lisp's (relatively new) EIEIO object oriented libraries.") (license license:gpl3+))) +(define-public emacs-ebdb-i18n-chn + (package + (name "emacs-ebdb-i18n-chn") + (version "1.3.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "ebdb-i18n-chn-" version ".tar")) + (sha256 + (base32 "06ii9xi2y157vfbhx75mn80ash22d1xgcyp9kzz1s0lkxwlv74zj")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-ebdb emacs-pyim)) + (home-page "https://elpa.gnu.org/packages/ebdb-i18n-chn.html") + (synopsis "China-specific internationalization support for EBDB") + (description + "EBDB-i18n-Chn makes EBDB nicer to use with China-based contacts, both +for handling Chinese characters, and for formatting of phones and addresses. +Be aware that using this library will incur a non-neglible slowdown at load +time. It shouldn't have any real impact on search and completion times.") + (license license:gpl3+))) + (define-public emacs-refactor (package (name "emacs-refactor") @@ -29036,6 +30701,29 @@ challenge the three computer opponents in one player mode. You can even train opponent slimes.") (license license:gpl3+))) +(define-public emacs-syslog-mode + (package + (name "emacs-syslog-mode") + (version "20210910.1952") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vapniks/syslog-mode.git") + (commit "072664784dae41a573a9de8d178bf577b7526b82"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04ddpn6il6mh1f992x3fxl6yljryghi51q4845lx08cbc74wnfz0")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-hide-lines emacs-ov emacs-hsluv)) + (home-page "https://github.com/vapniks/syslog-mode") + (synopsis "Major-mode for viewing log files and strace output") + (description "This library provides a major-mode for viewing syslog and +strace files. You can highlight and filter the lines of the file by regular +expressions and by timestamp, view notes associated with files, extract text, +count matches, etc.") + (license license:gpl3+))) + (define-public emacs-systemd-mode (package (name "emacs-systemd-mode") @@ -29256,7 +30944,7 @@ Emacs that integrate with major modes like Org-mode.") (define-public emacs-modus-themes (package (name "emacs-modus-themes") - (version "2.6.0") + (version "4.0.1") (source (origin (method git-fetch) @@ -29265,7 +30953,7 @@ Emacs that integrate with major modes like Org-mode.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1zl1gd3jlkanjmlsxmwhqaiwyblp6kzznfjnw9cq8ah2390y9n1c")))) + (base32 "16m8y56jyf44rj541fqb243pmbz9bk5py5zl1xhzal4fsk5bsfrg")))) (native-inputs (list texinfo)) (build-system emacs-build-system) (arguments @@ -29279,19 +30967,22 @@ Emacs that integrate with major modes like Org-mode.") "--eval=(require 'ox-texinfo)" "--eval=(find-file \"doc/modus-themes.org\")" "--eval=(org-texinfo-export-to-info)") - (install-file "doc/modus-themes.info" (string-append #$output "/share/info"))))))) + (install-file "doc/modus-themes.info" + (string-append #$output "/share/info"))))))) (home-page "https://protesilaos.com/modus-themes/") - (synopsis "Accessible themes (WCAG AAA)") + (synopsis "Accessible themes for Emacs (WCAG AAA standard)") (description "The Modus themes are designed for accessible readability. They conform with the highest standard for color contrast between any given combination of background and foreground values. This corresponds to the WCAG AAA standard, which specifies a minimum rate of distance in relative luminance of 7:1. -Modus Operandi (modus-operandi) is a light theme, while Modus -Vivendi (modus-vivendi) is dark. Each theme’s color palette is designed to -meet the needs of the numerous interfaces that are possible in the Emacs -computing environment.") +The Modus themes consist of six themes. Modus Operandi is a light theme, +while Modus Vivendi is dark. Modus Operandi Tinted and Modus Vivendi Tinted +are variants of the two main themes. They slightly tone down the intensity of +the background and provide a bit more color variety. Modus Operandi +Deuteranopia and its companion Modus Vivendi Deuteranopia are optimized for +users with red-green color deficiency.") (license (list license:gpl3+ license:fdl1.3+)))) ; GFDLv1.3+ for the manual @@ -29538,39 +31229,37 @@ such as: (license license:gpl3+))) (define-public emacs-flycheck-cpplint - (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2") - (revision "1")) - (package - (name "emacs-flycheck-cpplint") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flycheck/flycheck-google-cpplint") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-cpplint-path - (lambda _ - (substitute* "flycheck-google-cpplint.el" - (("\"cpplint.py\"") - (string-append "\"" (which "cpplint") "\"")))))))) - (inputs - (list cpplint)) - (propagated-inputs - (list emacs-flycheck)) - (synopsis "Google C++ checker for Flycheck") - (description "This package provides a interface for @code{cpplint} over + (package + (name "emacs-flycheck-cpplint") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flycheck/flycheck-google-cpplint") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nlyv81pyqmyz18dlzw5h23prhkvyzb0aasjxba8mm33avx0fvvb")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-cpplint-path + (lambda _ + (substitute* "flycheck-google-cpplint.el" + (("\"cpplint.py\"") + (string-append "\"" (which "cpplint") "\"")))))))) + (inputs + (list cpplint)) + (propagated-inputs + (list emacs-flycheck)) + (synopsis "Google C++ checker for Flycheck") + (description "This package provides a interface for @code{cpplint} over Flycheck plugin. @code{cpplint} is a static code checker for C++, following Google guidelines.") - (home-page "https://github.com/flycheck/flycheck-google-cpplint") - (license license:gpl3+)))) + (home-page "https://github.com/flycheck/flycheck-google-cpplint") + (license license:gpl3+))) (define-public emacs-highlight-doxygen ;; Upstream does not tag releases. Commit below matches version bump. @@ -29622,6 +31311,31 @@ language they are written in.") fish-completion. It can be used in both Eshell and M-x shell.") (license license:gpl3+))) +(define-public emacs-helm-themes + (let ((version "0.05") + (commit "92ee3ad4edf1d068feb0822a05638db99b50a7c0") + (revision "1")) + (package + (name "emacs-helm-themes") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsorphanage/helm-themes") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p62gg8nnb6kmb9mk66230p0ap0zwwzhzdxr3j34z5ls574vr6s7")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-helm)) + (home-page "https://github.com/emacsorphanage/helm-themes") + (synopsis "Emacs theme selection with Helm interface") + (description + "Helm Themes provide an Emacs theme selection with Helm interface.") + (license license:gpl3+)))) + (define-public emacs-helm-switch-to-repl (package (name "emacs-helm-switch-to-repl") @@ -29647,52 +31361,54 @@ other @code{helm-type-file} sources such as @code{helm-locate}.") (license license:gpl3+))) (define-public emacs-telega-server - (package - (name "emacs-telega-server") - (version "0.8.03") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zevlg/telega.el") - (commit (string-append "v" version)))) - (sha256 - (base32 "1ffy17i5fi1bw5r5m6x372c52hc1k83wxdxvi4z0hixyklj48nsv")) - (file-name (git-file-name "emacs-telega" version)) - (patches - (search-patches "emacs-telega-path-placeholder.patch" - "emacs-telega-test-env.patch")))) - (build-system gnu-build-system) - (arguments - (list - #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - (string-append "INSTALL_PREFIX=" #$output "/bin")) - #:phases - #~(modify-phases %standard-phases - (add-before 'configure 'enter-subdirectory - (lambda _ (chdir "server"))) - (replace 'configure - (lambda _ - (substitute* "run_tests.py" - (("^(TELEGA_SERVER = ).*$" _all prefix) - (string-append prefix - "\"" #$output "/bin/telega-server\"\n"))))) - (delete 'check) - (add-after 'install 'check - (assoc-ref %standard-phases 'check)) - (add-before 'install-license-files 'leave-subdirectory - (lambda _ (chdir "..")))) - #:test-target "test")) - (inputs - (list tdlib libappindicator)) - (native-inputs - (list python pkg-config)) - (home-page "https://zevlg.github.io/telega.el/") - (synopsis "Server process of Telega") - (description "Telega-server is helper program to interact with Telegram + (let ((commit "01e8f9e397bb18522b76d3bcdb74f5798e7c4999") + (revision "0")) + (package + (name "emacs-telega-server") + (version (git-version "0.8.03" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zevlg/telega.el") + (commit commit))) + (sha256 + (base32 "0fv0czx61rsvgf9jnn8nvng7flnihnjhym73hli5fzfgdx15lam7")) + (file-name (git-file-name "emacs-telega" version)) + (patches + (search-patches "emacs-telega-path-placeholder.patch" + "emacs-telega-test-env.patch")))) + (build-system gnu-build-system) + (arguments + (list + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "INSTALL_PREFIX=" #$output "/bin")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'enter-subdirectory + (lambda _ (chdir "server"))) + (replace 'configure + (lambda _ + (substitute* "run_tests.py" + (("^(TELEGA_SERVER = ).*$" _all prefix) + (string-append prefix + "\"" #$output "/bin/telega-server\"\n"))))) + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases 'check)) + (add-before 'install-license-files 'leave-subdirectory + (lambda _ (chdir "..")))) + #:test-target "test")) + (inputs + (list tdlib libappindicator)) + (native-inputs + (list python pkg-config)) + (home-page "https://zevlg.github.io/telega.el/") + (synopsis "Server process of Telega") + (description "Telega-server is helper program to interact with Telegram service, and connect it with Emacs via inter-process communication.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-telega (package @@ -29700,39 +31416,40 @@ service, and connect it with Emacs via inter-process communication.") (name "emacs-telega") (build-system emacs-build-system) (arguments - `(#:emacs ,(if (target-64bit?) - emacs-minimal - ;; Require wide-int support for 32-bit platform. - emacs-wide-int) - #:include (cons "^etc\\/" %default-include) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-sources - (lambda* (#:key inputs #:allow-other-keys) - ;; Hard-code paths to `ffplay` and `ffmpeg`. - (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay")) - (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg"))) - (substitute* '("telega-ffplay.el" "telega-vvnote.el") - (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)" - all func cmd) - (string-append func " \"" - (search-input-file - inputs (string-append "/bin/" cmd)))) - (("\\(executable-find \"ffplay\"\\)") - (string-append "(and (file-executable-p \"" ffplay-bin "\")" - "\"" ffplay-bin "\")")) - (("\\(executable-find \"ffmpeg\"\\)") - (string-append "(and (file-executable-p \"" ffmpeg-bin "\")" - "\"" ffmpeg-bin "\")")))))) - (add-after 'unpack 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "telega-customize.el" - (("@TELEGA_SERVER_BIN@") - (search-input-file inputs "/bin/telega-server"))) - (substitute* "telega-util.el" - (("@TELEGA_SHARE@") - (string-append (elpa-directory (assoc-ref outputs "out")) - "/etc")))))))) + (list + #:emacs (if (target-64bit?) + emacs-minimal + ;; Require wide-int support for 32-bit platform. + emacs-wide-int) + #:include #~(cons "^etc\\/" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-sources + (lambda* (#:key inputs #:allow-other-keys) + ;; Hard-code paths to `ffplay` and `ffmpeg`. + (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay")) + (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg"))) + (substitute* '("telega-ffplay.el" "telega-vvnote.el") + (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)" + all func cmd) + (string-append func " \"" + (search-input-file + inputs (string-append "/bin/" cmd)))) + (("\\(executable-find \"ffplay\"\\)") + (string-append "(and (file-executable-p \"" ffplay-bin "\")" + "\"" ffplay-bin "\")")) + (("\\(executable-find \"ffmpeg\"\\)") + (string-append "(and (file-executable-p \"" ffmpeg-bin "\")" + "\"" ffmpeg-bin "\")")))))) + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "telega-customize.el" + (("@TELEGA_SERVER_BIN@") + (search-input-file inputs "/bin/telega-server"))) + (substitute* "telega-core.el" + (("@TELEGA_SHARE@") + (string-append (elpa-directory (assoc-ref outputs "out")) + "/etc")))))))) (inputs (list emacs-telega-server ffmpeg)) (native-inputs '()) @@ -29748,13 +31465,14 @@ for the Telegram messaging platform."))) (inherit emacs-telega) (name "emacs-telega-contrib") (arguments - `(#:exclude '("telega-live-location.el") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'enter-subdirectory - (lambda _ (chdir "contrib") #t)) - (add-before 'install-license-files 'leave-subdirectory - (lambda _ (chdir "..") #t))))) + (list + #:exclude #~(list "telega-live-location.el") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'enter-subdirectory + (lambda _ (chdir "contrib"))) + (add-before 'install-license-files 'leave-subdirectory + (lambda _ (chdir "..")))))) (inputs '()) (native-inputs '()) (propagated-inputs @@ -29766,7 +31484,7 @@ contributed packages to Telega."))) (define-public emacs-doom-modeline (package (name "emacs-doom-modeline") - (version "3.3.1") + (version "3.3.2") (source (origin (method git-fetch) @@ -29774,7 +31492,7 @@ contributed packages to Telega."))) (url "https://github.com/seagle0128/doom-modeline") (commit (string-append "v" version)))) (sha256 - (base32 "0p728hbphfch6kmkjxm1qwxrwz6l94s3sj7wl1wc4mp82zrdsi15")) + (base32 "1v24hiqs4zbq613vanixgng9cx697di63jpafpmjlsripjfvk1qp")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments @@ -29792,7 +31510,7 @@ icon support, git integration, and several other utilities.") (define-public emacs-mood-line (package (name "emacs-mood-line") - (version "1.2.5") + (version "2.2.0") (source (origin (method git-fetch) @@ -29801,7 +31519,7 @@ icon support, git integration, and several other utilities.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0z6s80j259xf8nxjxcsmp7wyvpcg5wyx58brlrbwg1aa9hl3fxga")))) + (base32 "1z50vr3ymn466z26qh0ybbm8aaizl5ghi471a47cp8bnnn9y9dqg")))) (build-system emacs-build-system) (home-page "https://gitlab.com/jessieh/mood-line") (synopsis "Minimal mode-line for Emacs") @@ -29902,10 +31620,11 @@ Fish-style truncated directories in eshell and various modelines.") (license license:gpl3+))) (define-public emacs-org-present - (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21")) + (let ((commit "4ec04e1b77dea76d7c30066ccf3200d2e0b7bee9") + (revision "1")) (package (name "emacs-org-present") - (version "0.0.1") + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) @@ -29915,15 +31634,16 @@ Fish-style truncated directories in eshell and various modelines.") (file-name (git-file-name name version)) (sha256 (base32 - "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q")))) + "0bcrgwc80968zx52lwg71cs7v2yrygynzbnrakxdja1l5a6h3xy6")))) (build-system emacs-build-system) - (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode") - (description "Org-present is an extremely minimalist presentation tool -for Emacs org-mode. Simply layout your presentation with each slide under a -top-level header, start the minor mode with @code{org-present}, and page through -each slide with left/right keys.") + (propagated-inputs (list emacs-org)) + (synopsis "Minimalist presentation minor-mode for Emacs Org mode") + (description "Org Present is a minimalist presentation tool for Emacs +Org mode. Simply layout your presentation with each slide under a top-level +header, start the minor mode, and page through each slide with Left and Right +keys.") (home-page "https://github.com/rlister/org-present") - (license license:gpl2)))) + (license license:gpl3+)))) (define-public emacs-fullframe (package @@ -30032,6 +31752,46 @@ REPL appropriate to the current major mode.") "Rime is an Emacs input method built upon Rime input method engine.") (license license:gpl3+))) +(define-public emacs-liberime + (let ((commit "cc9eb9812fd6f68e78ed6a0c0a85da7a18765753") + (revision "0")) + (package + (name "emacs-liberime") + (version (git-version "0.0.6" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/merrickluo/liberime") + (commit commit))) + (sha256 + (base32 + "11c2wj00wwbdxqkzl60sd77cp43rja5v8hrvhrvhg75v62kawva2")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:include #~(cons "^src/liberime-core.so$" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'delete-files-and-patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (delete-file-recursively "emacs-module") + (emacs-substitute-variables "liberime.el" + ("liberime-module-file" + (string-append #$output "/src/liberime-core.so")) + ("liberime-shared-data-dir" + (search-input-directory inputs "share/rime-data"))))) + (add-before 'install 'build-emacs-module + (lambda _ + (invoke "make")))))) + (inputs (list librime rime-data)) + (home-page "https://github.com/merrickluo/liberime") + (synopsis "Librime Emacs Lisp binding") + (description + "Liberime is an Emacs dynamic module provide librime bindings.") + (license license:gpl3+)))) + (define-public emacs-bison-mode (package (name "emacs-bison-mode") @@ -30444,6 +32204,7 @@ data format @code{edn}. See @url{https://github.com/edn-format/edn}.") (uri (git-reference (url "https://github.com/sinic/ednc") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "1gsx2qgv5xm9r0i0axd4hf31g2rq2m4a1hvnif48g4xb0llss73c")))) (build-system emacs-build-system) @@ -31017,7 +32778,7 @@ variables.") (define-public emacs-company-emoji (package (name "emacs-company-emoji") - (version "2.6.1") + (version "2.7.0") (source (origin (method git-fetch) @@ -31026,7 +32787,7 @@ variables.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk")))) + (base32 "1prcjdqm4djp5nr93m2axddhhdmn1s0y157px9zsk7g5yi36dn6q")))) (build-system emacs-build-system) (propagated-inputs (list emacs-company)) @@ -31345,6 +33106,7 @@ snippets for Emacs.") (uri (git-reference (url "https://github.com/abo-abo/orca") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "00a363vkqvryw5s7pj0kh8pqq5vvbf1pmbzz0b1z1fckwr49sv0f")))) (build-system emacs-build-system) @@ -31502,6 +33264,31 @@ ASCII UML sequence diagrams in Emacs, which can be embedded in source code, comments or emails.") (license license:gpl3+)))) +(define-public emacs-ukrainian-holidays + ;; There is no proper release. + ;; The base version is extracted from the source code. + (let ((revision "0") + (commit "e52b0c92843e9f4d0415a7ba3b8559785497d23d")) + (package + (name "emacs-ukrainian-holidays") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/abo-abo/ukrainian-holidays") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "033v4ck979lhkpwblci5clacfc1xnkq03p5d1m566wff8dp5flwz")))) + (build-system emacs-build-system) + (home-page "https://github.com/abo-abo/ukrainian-holidays") + (synopsis "Ukrainian holidays for Emacs calendar") + (description + "This package provides Ukrainian holidays for Emacs calendar.") + (license license:gpl3+)))) + (define-public emacs-trashed (package (name "emacs-trashed") @@ -31756,38 +33543,40 @@ arbitrary Emacs Lisp objects.") (license license:gpl3+))) (define-public emacs-csound-mode - (package - (name "emacs-csound-mode") - (version "0.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hlolli/csound-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-breaking-compilation - (lambda _ - (for-each (lambda (file) - (chmod file #o600) ; needed to write changes. - (emacs-batch-disable-compilation file)) - '("csound-font-lock.el")) - #t))))) - (inputs - (list emacs-highlight emacs-multi emacs-shut-up)) - (home-page "https://github.com/hlolli/csound-mode") - (synopsis "Emacs major mode for coding in CSound") - (description "Provides both a basic major mode for editing -CSound files, as well as a REPL for fast feedback when composing -and sound-designing.") - (license license:gpl3+))) + ;; XXX: Upstream did not tag last release. Using the commit matching + ;; version bump. + (let ((commit "44c49e5a9262ede4b4477bafb13b42b1ba047b9c")) + (package + (name "emacs-csound-mode") + (version "0.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hlolli/csound-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kfhca1n0iv1400jf4ggjbarg7ry8ccd5bs7cf2brjdiqp74cvwb")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-breaking-compilation + (lambda _ + (let ((file "csound-font-lock.el")) + (make-file-writable file) + (emacs-batch-disable-compilation file))))))) + (propagated-inputs + (list emacs-dash emacs-highlight emacs-multi emacs-shut-up)) + (home-page "https://github.com/hlolli/csound-mode") + (synopsis "Emacs major mode for coding in CSound") + (description "This package provides both a basic major mode for editing +CSound files, as well as a REPL for fast feedback when composing and +sound-designing using CSound.") + (license license:gpl3+)))) (define-public emacs-multi (package @@ -31814,11 +33603,11 @@ the expectations of each branch to define which one to invoke.") (license license:expat))) (define-public emacs-highlight - (let ((commit "9258a2b8362d737115cbd87618f947eadb140411") - (revision "1")) + (let ((commit "24366dfd5062a6902a13a03d724fc099db3121b8") + (revision "2")) (package (name "emacs-highlight") - (version "0.0.0") + (version (git-version "0" revision commit)) (source (origin (method git-fetch) @@ -31828,7 +33617,7 @@ the expectations of each branch to define which one to invoke.") (file-name (git-file-name name commit)) (sha256 (base32 - "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8")))) + "17r7f4y6b05nq2pzaq8pwww0s6j64vd6fikyv7pliv1n74sljj0d")))) (build-system emacs-build-system) (home-page "https://github.com/emacsmirror/highlight") (synopsis "Highlighting commands for GNU Emacs") @@ -32006,7 +33795,7 @@ web development.") (define-public emacs-iter2 (package (name "emacs-iter2") - (version "1.3") + (version "1.4") (source (origin (method git-fetch) @@ -32015,7 +33804,7 @@ web development.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1hsg5q1acghb0xz2pv5g20zg5j32wikp47b62if8afq767rkc5f3")))) + (base32 "1k0n35vxcvvy8c2yih24c8gjc4bqd5lawda0zz62c5kgksgn87ri")))) (build-system emacs-build-system) (home-page "https://github.com/doublep/iter2") (synopsis "Reimplementation of Elisp generators") @@ -32084,35 +33873,35 @@ provides an easy way to bind keys under a configurable prefix key.") (license license:gpl3+)))) (define-public emacs-promise - (package - (name "emacs-promise") - (version "1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/chuntaro/emacs-promise") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj")))) - (build-system emacs-build-system) - (home-page "https://github.com/chuntaro/emacs-promise") - (synopsis "Promises/A+ for Emacs") - (description "This is a simple implementation of Promises/A+. + ;; XXX: Last stable release fails to build with "(wrong-number-of-arguments + ;; (3 . 4) 2)" error. + (let ((commit "cec51feb5f957e8febe6325335cf57dc2db6be30") + (revision "1")) + (package + (name "emacs-promise") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chuntaro/emacs-promise") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kxsdgg5byw9zddf8jkc3h87mb4k5pnjdpskaagkahc0xg3w18d7")))) + (build-system emacs-build-system) + (home-page "https://github.com/chuntaro/emacs-promise") + (synopsis "Promises/A+ for Emacs") + (description "This is a simple implementation of Promises/A+. -This implementation ports the following Promises/A+ features -faithfully. See @url{https://github.com/then/promise}. +This implementation ports the following Promises/A+ features faithfully. See +@url{https://github.com/then/promise}. -@itemize -@item The same API as the JavaScript version of Promise can be used. -@item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject}, -@code{all}, @code{race}, etc. -@item It supports \"thenable\". -@item It supports \"Inheritance of Promise\". -@item It supports \"rejection-tracking\". -@end itemize\n") - (license license:gpl3+))) +The same API as the JavaScript version of Promise can be used. It has all the +@code{then}, @code{catch}, @code{resolve}, @code{reject}, @code{all}, +@code{race}, etc. It also supports @code{thenable}, inheritance of promise +and rejection tracking.") + (license license:gpl3+)))) (define-public emacs-async-await (package @@ -32259,7 +34048,7 @@ s-expression.") (define-public emacs-map (package (name "emacs-map") - (version "3.2.1") + (version "3.3.1") (source (origin (method url-fetch) @@ -32267,7 +34056,7 @@ s-expression.") version ".tar")) (sha256 (base32 - "1vy231m2fm5cgz5nib14ib7ifprajhnbmzf6x4id48h2491m1n24")))) + "1gvywhdfg27nx6pyq7yfwq9x6j96jama59i5s9rp41pvg2dlmvm0")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/map.html") (synopsis "Map manipulation functions") @@ -32279,14 +34068,14 @@ work on alists, hash-table and arrays. All functions are prefixed with (define-public emacs-xref (package (name "emacs-xref") - (version "1.5.1") + (version "1.6.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xref-" version ".tar")) (sha256 - (base32 "131jxsc1sl8q3r9drhylwyfig9qjjkj3hilv3npidp868pr7xdna")))) + (base32 "0z9kpbnrdh9y9qlj2fa64v660biakvw6x3z9klqa47qcx8gbyqp6")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/xref.html") (synopsis "Cross-referencing commands") @@ -32466,7 +34255,7 @@ and preferred services can easily be configured.") (define-public emacs-vertico (package (name "emacs-vertico") - (version "0.27") + (version "1.0") (source (origin (method git-fetch) @@ -32475,7 +34264,7 @@ and preferred services can easily be configured.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "17ip4v0hkv9q2fsnpja24jnf5d5zn4g91553n2s0l5c6gwwpilkp")))) + (base32 "0g2zy70gks24g7i4qj1ijx57g016svbymb8l493j81c4bhc88mjl")))) (build-system emacs-build-system) (arguments `(#:phases @@ -32504,16 +34293,16 @@ complementary packages.") (define-public emacs-wisp-mode (package (name "emacs-wisp-mode") - (version "0.3.0") + (version "1.0.8") (source (origin (method hg-fetch) (uri (hg-reference (url "https://hg.sr.ht/~arnebab/wisp") - (changeset (string-append "wisp-mode-" version)))) + (changeset (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "189baxk27rq3s6h6mh0m25sv504853rpvyxxdcwx6wdy7l88qany")))) + (base32 "1hqwdmx081icv516cyndjkwvgr7b41hi5qdaylkv0jran35jwjiw")))) (build-system emacs-build-system) (home-page "https://www.draketo.de/software/wisp") (synopsis "Syntax highlighting and indentation support for Wisp files") @@ -32643,12 +34432,12 @@ to the @url{https://multitran.com} online dictionary.") (license license:gpl3))) (define-public emacs-code-cells - ;; No tagged release upstream - (let ((commit "8660bdeedee360e5eb632f1eb1356eb09d7dfbee") - (revision "0")) + ;; XXX: Upstream does not tag releases. The commit below matches version + ;; bump. + (let ((commit "fd68a33eb43b3cbd44fed767f48e230382903592")) (package (name "emacs-code-cells") - (version (git-version "0.2" revision commit)) + (version "0.3") (source (origin (method git-fetch) @@ -32657,7 +34446,7 @@ to the @url{https://multitran.com} online dictionary.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0mvfsdlhc3znc0d2p8vm7apkbpvbs688wmwvd0sms33qly53f546")))) + (base32 "072d5vldjfg9mj4a86bw8xmxl3hmywsnx4f2k6nayqy4whry5fmq")))) (build-system emacs-build-system) (home-page "https://github.com/astoff/code-cells.el") (synopsis "Emacs utilities for code split into cells, including Jupyter @@ -32666,6 +34455,60 @@ notebooks") execute code split into cells according to certain magic comments.") (license license:gpl3+)))) +(define-public emacs-ein + ;; XXX: Upstream doesn't make any release, and didn't set any version. + (let ((commit "b2410dc96f61aa806a7934099d8f1e40c8f6ca18")) + (package + (name "emacs-ein") + (version "20220911") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/millejoh/emacs-ipython-notebook") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02392bxl0msda58cls0i79mzqjs73x39czx0mlb0sg2vxp84gy15")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command + #~(list "emacs" "-Q" "--batch" + "-L" "test" + "--load" "test/testein-loader.el") + #:phases + #~(modify-phases %standard-phases + (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))))))) + (native-inputs + (list emacs-f emacs-mocker)) + (propagated-inputs + (list emacs-anaphora + emacs-dash + emacs-deferred + emacs-polymode + emacs-request + emacs-websocket + emacs-with-editor)) + (home-page "https://github.com/millejoh/emacs-ipython-notebook") + (synopsis "Jupyter client for all languages") + (description + "The Emacs IPython Notebook (EIN) package provides a Jupyter Notebook +client and integrated REPL (like SLIME) in Emacs. EIN improves notebook +editing by allowing you to use Emacs. It also expose IPython features such as +code evaluation, object inspection and code completion. These features can be +accessed anywhere in Emacs and improve Python code editing and reading in +general in Emacs.") + (license license:gpl3+)))) + (define-public emacs-kibit-helper (package (name "emacs-kibit-helper") @@ -32692,7 +34535,7 @@ for detecting and improve non-idiomatic Clojure source code.") (define-public emacs-mint-mode (package (name "emacs-mint-mode") - (version "1.0.3") + (version "2.0.0") (source (origin (method git-fetch) @@ -32701,14 +34544,11 @@ for detecting and improve non-idiomatic Clojure source code.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "19szk2dhsa0771kbg1ywp0zz8j6akysvwmmrx2bihq8h5j4y23pg")))) + (base32 "0fwxhkkhvbwdxrg9j9pjgkh864fa8rvc6dcr46a69spyjja3rw90")))) (build-system emacs-build-system) - (arguments '(#:include '("\\.el$" "\\.txt$"))) (home-page "https://github.com/creatorrr/emacs-mint-mode") (synopsis "Major mode for Mint language") - (description - "Mint mode provides syntax highlighting, basic keyword auto-completion, -and format on save for Mint programming language.") + (description "Mint mode provides syntax highlighting for Mint language.") (license license:gpl3+))) (define-public emacs-seeing-is-believing @@ -32837,6 +34677,53 @@ wraps GNU Global calls and integration to editor using this API with project.el and xref.el.") (license license:gpl3+)))) +(define-public emacs-citre + (package + (name "emacs-citre") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/universal-ctags/citre/") + (commit (string-append "v" version)))) + (sha256 + (base32 "168z6yidh2nxkmdlx9cqdzzb7achxdipnbk5pj9787m9bp1sdpkd")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-external-programs + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "citre-ctags.el" + ("citre-ctags-program" + ;; XXX: Do not use SEARCH-INPUT-FILE in this place, for it + ;; will get ctags of emacs-minimal instead of + ;; universal-ctags. + (string-append #$(this-package-input "universal-ctags") + "/bin/ctags"))) + (emacs-substitute-variables "citre-readtags.el" + ("citre-readtags-program" + (search-input-file inputs "/bin/readtags"))) + (emacs-substitute-variables "citre-global.el" + ("citre-gtags-program" + (search-input-file inputs "/bin/gtags"))) + (emacs-substitute-variables "citre-global.el" + ("citre-global-program" + (search-input-file inputs "/bin/global")))))))) + (inputs (list global universal-ctags)) + (home-page "https://github.com/universal-ctags/citre") + (synopsis "Ctags IDE on Emacs") + (description + "Citre is an advanced Ctags (or actually, readtags) frontend for +Emacs. It offers Completion At Point, Xref and Imenu integration. It also +provides a Completing Read UI for jumping to definition and a powerful code +reading tool that lets you go down the rabbit hole without leaving current +buffer.") + (license license:gpl3+))) + (define-public emacs-seq (package (name "emacs-seq") @@ -32959,6 +34846,7 @@ audio volume via amixer.") (uri (git-reference (url "https://git.sr.ht/~technomancy/fennel-mode") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "1yib626wi7xiairzqkk96s99p1q7mmr2y5v78bv01h5d7h12sdgq")))) (build-system emacs-build-system) @@ -32972,7 +34860,7 @@ Fennel code within Emacs.") (define-public emacs-org-modern (package (name "emacs-org-modern") - (version "0.4") + (version "0.7") (source (origin (method git-fetch) @@ -32980,7 +34868,7 @@ Fennel code within Emacs.") (url "https://github.com/minad/org-modern") (commit version))) (sha256 - (base32 "0af9dzp9n3882kvsp3q4008hffq1mp9hjl964mlp5j8vay3x7qbz")) + (base32 "0bqps8dpvqd2dfw3bamnnf1ikvd48vn8hgb08975f0wski54xh5n")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (home-page "https://github.com/minad/org-modern") @@ -33029,8 +34917,8 @@ headlines, keywords, tables and source blocks.") (license license:gpl3+)))) ; License is in pyimport.el (define-public emacs-straight-el - (let ((commit "fed215348076ba9182f634e0770a175220474b5a") - (revision "0")) + (let ((commit "f21103d97d180fba0b6e2e86ebb0b6269219ef2c") + (revision "1")) (package (name "emacs-straight-el") (version (git-version "0" revision commit)) @@ -33043,7 +34931,7 @@ headlines, keywords, tables and source blocks.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0z0j670s18mp1bhrsnng0mybcbnlywarhlz7zmrf9399rr513z1x")))) + (base32 "1dqhb7kx4hr3cm4gj6qdk9aav05vc016y4nks2dj1sy88wia6wsv")))) (build-system emacs-build-system) (arguments (list @@ -33085,7 +34973,7 @@ hacker.") (define-public emacs-osm (package (name "emacs-osm") - (version "0.8") + (version "0.9") (home-page "https://github.com/minad/osm") (source (origin (method git-fetch) @@ -33095,7 +34983,7 @@ hacker.") (file-name (git-file-name name version)) (sha256 (base32 - "039ac364f00slx1dxxgsgfcr4x47v9ymn8arcs0fyhdhw7jnky5j")))) + "0iacf3mqjq8vfhd0nyzry0spishyvn92zgd55ivqxb9xfdr3lx9x")))) (build-system emacs-build-system) (arguments (list #:phases #~(modify-phases %standard-phases @@ -33128,30 +35016,27 @@ parallel fetching of tiles with cURL, and more.") (license license:gpl3+))) (define-public emacs-corfu-terminal - ;; Upstream does not tag releases, version taken from package header. - (let ((commit "7c5a8a1c07b6c1a41b358b083d5bf7773701d26b") - (revision "0")) - (package - (name "emacs-corfu-terminal") - (version (git-version "0.4" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://codeberg.org/akib/emacs-corfu-terminal") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0pk5vfcz8w4hiqrwzwpxdjzlbhla0bw7a1h6v0mqxad0j9y7v3nw")))) - (build-system emacs-build-system) - (propagated-inputs (list emacs-corfu emacs-popon)) - (home-page "https://codeberg.org/akib/emacs-corfu-terminal/") - (synopsis "Replace corfu child frames with popups") - (description - "This package replaces the child frames @code{emacs-corfu} uses + (package + (name "emacs-corfu-terminal") + (version "0.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://codeberg.org/akib/emacs-corfu-terminal") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15pwv48v6plvc33715x1j1g6vf53ds4880ly5h96x2idffh7fncl")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-corfu emacs-popon)) + (home-page "https://codeberg.org/akib/emacs-corfu-terminal/") + (synopsis "Replace corfu child frames with popups") + (description + "This package replaces the child frames @code{emacs-corfu} uses with popups, which also work in the terminal.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-corfu-doc-terminal ;; Upstream does not tag releases, version taken from package header. @@ -33181,36 +35066,33 @@ with popups, which also work in the terminal.") (license license:gpl3+)))) (define-public emacs-popon - ;; Upstream does not tag releases. The commit below matches the version - ;; bump. - (let ((commit "d16cb747d356eab3f1bc4061ecee473732f7b8bb")) - (package - (name "emacs-popon") - (version "0.4") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://codeberg.org/akib/emacs-popon") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1i5rp0gvcdqakzaznsh0lqzvlq5kif9q2grq4l80gl75dmqdpym7")))) - (build-system emacs-build-system) - (home-page "https://codeberg.org/akib/emacs-popon/") - (synopsis "Pop floating text on a window") - (description - "@code{emacs-popon} allows you to pop text on a window, what we call + (package + (name "emacs-popon") + (version "0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://codeberg.org/akib/emacs-popon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wkydg326ql8cvvmibq1nf6y40d1b0ax0p892pwncmi7awnf20gr")))) + (build-system emacs-build-system) + (home-page "https://codeberg.org/akib/emacs-popon/") + (synopsis "Pop floating text on a window") + (description + "@code{emacs-popon} allows you to pop text on a window, what we call a popon. Popons are window-local and sticky, they don't move while scrolling, and they even don't go away when switching buffer, but you can bind a popon to a specific buffer to only show on that buffer.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-consult-lsp (package (name "emacs-consult-lsp") - (version "1.0") + (version "1.1") (source (origin (method git-fetch) @@ -33219,17 +35101,42 @@ can bind a popon to a specific buffer to only show on that buffer.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "14dyclspkf1a34nvjj800ckz1phsizq07ps8k4x0ah6ik0hfhy1w")))) + (base32 "0bnq8jahcyjsai1y4ngdq08y77m1hn78h3p48czr7sg907nr42yh")))) (build-system emacs-build-system) (propagated-inputs (list emacs-consult emacs-lsp-mode emacs-f)) (home-page "https://github.com/gagbo/consult-lsp/") - (synopsis "LSP-mode and consult helping each other") + (synopsis "LSP mode and Consult helping each other") (description "@code{emacs-consult-lsp} provides helpers for interactively selecting LSP workspace diagnostics, symbols, and file symbols from @{emacs-lsp-mode} by leveraging @code{emacs-consult} APIs.") (license license:expat))) +(define-public emacs-purs-mode + ;; XXX: Upstream set no tag nor any Version keyword. Using 0 as the base + ;; version. + (let ((commit "16553383915cf453747a491715ed0427c107cc9e") + (revision "1")) + (package + (name "emacs-purs-mode") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/PureFunctor/purs-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0174p0g38jd34jwpww7zgh48i3lkhqrnrxz8ca09idz4adri38z7")))) + (build-system emacs-build-system) + (home-page "https://github.com/PureFunctor/purs-mode/") + (synopsis "PureScript major mode for Emacs") + (description + "Purs mode provides a PureScript major mode for Emacs.") + (license license:gpl3+)))) + (define-public emacs-pdb-capf (let ((commit "31602ccab53aa7dcf26a1af222c7da2bcc1390ed") (revision "0")) @@ -33297,6 +35204,353 @@ tree to go back to previous buffer states. To use vundo, type @kbd{M-x vundo RE the buffer you want to undo. An undo tree buffer should pop up.") (license license:gpl3+))) +(define-public emacs-hare-mode + ;; XXX: Upstream did not tag any commit. Using "Version:" keyword as base + ;; version. + (let ((commit "bb7b2faccb5939b0c8d4ffa6a6e28a0d2bc93dd6") + (revision "0")) + (package + (name "emacs-hare-mode") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~bbuccianti/hare-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13vjlmxfgwiljzjwkzhxzz565y34fggsbp840bxlwbwa6lsfrsa8")))) + (build-system emacs-build-system) + (home-page "https://git.sr.ht/~bbuccianti/hare-mode") + (synopsis "Hare major mode for Emacs") + (description + "This package an Emacs major mode for the Hare programming language.") + (license license:gpl3+)))) + +(define-public emacs-org-cliplink + (let ((commit "13e0940b65d22bec34e2de4bc8cba1412a7abfbc") + (revision "0")) + (package + (name "emacs-org-cliplink") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rexim/org-cliplink") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1avyiw8vlv4n1r7zqvc6wjlsz7jl2pqaprzpm782gzp0c999pssl")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-curl-executable + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "org-cliplink-transport.el" + (("\\(executable-find \"curl\"\\)") + (let ((curl (search-input-file inputs "/bin/curl"))) + (string-append "\"" curl "\"")))))) + (add-before 'check 'fix-failing-test + ;; XXX: Fix randomly (!) failing test, which doesn't account for + ;; the fact that (random) may return a negative number. + (lambda _ + (substitute* "test/org-cliplink-transport-test.el" + (("curl-rexim.me-\\[a-z0-9\\]\\+") + "curl-rexim.me--?[a-z0-9]+"))))))) + (native-inputs + (list emacs-el-mock emacs-ert-runner emacs-undercover)) + (inputs + (list curl)) + (home-page "https://github.com/rexim/org-cliplink/") + (synopsis "Insert Org mode links from the clipboard") + (description + "Org Cliplink provides a simple command that takes a URL from the +clipboard and inserts an Org mode link with a title of a page found by the URL +into the current buffer.") + (license license:expat)))) + +(define-public emacs-flymake-mypy + (let ((commit "d79e158f9ed3065ab692cd0d4048aac985c4fecd") + (revision "0")) + (package + (name "emacs-flymake-mypy") + (version "0.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/com4/flymake-mypy") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zaa2kljsmm13layqmb7dwd7l2x3a5ymzzmzjjhykc67kbyjvvkk")))) + (build-system emacs-build-system) + (home-page "https://github.com/com4/flymake-mypy") + (synopsis "Flymake checker for mypy") + (description +"This package provides Flymake support for Python static type checking +using mypy.") + (license license:bsd-2)))) + +(define-public emacs-mpv + ;; No release since Dec 28, 2021. + (let ((commit "2e0234bc21a3dcdf12d94d3285475e7f6769d3e8") + (revision "0")) + (package + (name "emacs-mpv") + (version (git-version "0.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kljohann/mpv.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mvzg2wqpycny2dmiyp8jm0fflvll7ay6scvsb9rxgfwimr2vbw5")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #f ;there are no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'set-mpv-el-version 'patch-exec-paths + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "mpv.el" + ("mpv-executable" + (search-input-file inputs "/bin/mpv")))))))) + (inputs (list mpv)) + (home-page "https://github.com/kljohann/mpv.el/") + (synopsis "Control MPV for easy note taking") + (description + "This package is a potpourri of helper functions to control a MPV +process via its IPC interface.") + (license license:gpl3+)))) + +(define-public emacs-apel-lb + ;; No release since Jun 15, 2010. + (let ((version "10.8") ;tag chise-base-0_25 + (revision "81") + (commit "82eb2325bd149dc57b43a9ce9402c6c6183e4052")) + (package + (name "emacs-apel-lb") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wanderlust/apel") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qiw19pn1cs8y571irw7bjdygkvwan9ch2i1dg139dri4b6q1il6")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/WanderLust") + (synopsis "Library for making portable Emacs Lisp programs") + (description + "A Portable Emacs Library (APEL) is a library for making portable Emacs +Lisp programs. APEL-LB is a variant of APEL, which features supports to +latest Emacs.") + (license license:gpl2+)))) + +(define-public emacs-flim-lb + ;; No release since Nov 28, 2007. + (let ((version "1.14.9") + (revision "134") + (commit "3a931b566494e7dc210a5109b60c8cbd5b655108")) + (package + (name "emacs-flim-lb") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wanderlust/flim") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hva2nm0k37ssx42s0h9d9y6nawmp1g4qz1s8bvmp3s1897pvssz")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-apel-lb emacs-oauth2)) + (home-page "https://www.emacswiki.org/emacs/WanderLust") + (synopsis + "Library for basic features about message representation or encoding") + (description + "FLIM is a library to provide basic features about message representation +or encoding. FLIM-LB is a variant of FLIM, which features supports to latest +Emacs.") + (license license:gpl2+)))) + +(define-public emacs-semi-epg + ;; No release since Dec 24, 2003. + (let ((version "1.14.6") + (revision "242") + (commit "7d8df0ef2f483e2dc063a72099295f467e6bc2c8")) + (package + (name "emacs-semi-epg") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wanderlust/semi") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01dn91xjcl7p5rnbgyh5l4kdlqx31s0gw5vh7hhcapbiq8rihmjd")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-bbdb-vcard emacs-flim-lb)) + (home-page "https://www.emacswiki.org/emacs/WanderLust") + (synopsis "Library to provide MIME feature for GNU Emacs") + (description + "SEMI is a package for GNU Emacs to provide features related with MIME +user interface. SEMI-EPG is a variant of SEMI, which features supports to +EasyPG and latest Emacs.") + (license license:gpl2+)))) + +(define-public emacs-wanderlust + ;; No release since Jan 15, 2010. + ;; FIXME: Building with emacs-next-pgtk would yield a void variable related + ;; macro-expansion failure at runtime, so don't rewrite emacs input of this + ;; package. + (let ((version "2.15.9") + (revision "779") + (commit "f5cb2f0cf5e2c893acf2e669fd549836828dfdfc")) + (package + (name "emacs-wanderlust") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wanderlust/wanderlust") + (commit commit))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin (substitute* "WL-CFG" + ((".*WL_PREFIX.*") + (string-append "(setq wl-install-utils t)" "\n" + "(setq WL_PREFIX \"\")" "\n" + "(setq ELMO_PREFIX \"\")" "\n"))) + (substitute* "Makefile" + (("package-user-dir") "NONE")))) + (sha256 + (base32 + "1ijs57wv1vrh33vn311hgkp42vlmjyi998nc4qdrqi7yy9j8hl1h")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'expand-load-path 'chdir-elmo + (lambda _ + (chdir "elmo"))) + (add-after 'chdir-elmo 'expand-load-path-elmo + (assoc-ref %standard-phases 'expand-load-path)) + (add-after 'expand-load-path-elmo 'chdir-utils + (lambda _ + (chdir "../utils"))) + (add-after 'chdir-utils 'expand-load-path-utils + (assoc-ref %standard-phases 'expand-load-path)) + (add-after 'expand-load-path-utils 'chdir-wl + (lambda _ + (chdir "../wl"))) + (add-after 'chdir-wl 'expand-load-path-wl + (assoc-ref %standard-phases 'expand-load-path)) + (add-after 'expand-load-path-wl 'change-directory + (lambda _ + (chdir ".."))) + (add-after 'install 'install-via-makefile + (lambda* (#:key inputs #:allow-other-keys) + (let ((emacs (search-input-file inputs "/bin/emacs")) + (lispdir (elpa-directory #$output)) + (infodir (string-append #$output "/share/info"))) + (for-each mkdir-p (list lispdir infodir)) + (substitute* "Makefile" + (("(EMACS\t= )emacs" all m) + (string-append m emacs)) + (("(LISPDIR = )NONE" all m) + (string-append m lispdir)) + (("(PIXMAPDIR = )NONE" all m) + (string-append m lispdir "/icons")) + (("(INFODIR = )NONE" all m) + (string-append m infodir)))) + (invoke "make" "install") + (invoke "make" "install-info")))))) + (propagated-inputs (list emacs-semi-epg)) + (home-page "https://www.emacswiki.org/emacs/WanderLust") + (synopsis "Yet Another Message Interface on Emacsen") + (description + "Wanderlust is an mail/news management system on Emacsen. It supports +IMAP4rev1(RFC2060), NNTP, POP and local message files. + +The main features of Wanderlust: + +@itemize +@item Pure elisp implementation. +@item Supports IMAP4rev1, NNTP, POP(POP3/APOP), MH and Maildir format. +@item Unified access method to messages based on Mew-like Folder Specification. +@item Mew-like Key-bind and mark handling. +@item Manages unread messages. +@item Interactive thread display. +@item Folder Mode shows the list of subscribed folders. +@item Message Cache, Disconnected Operation. +@item MH-like FCC (Fcc: %Backup and Fcc: $Backup is allowed). +@item MIME compliant (by SEMI). +@item Transmission of news and mail are unified by Message transmitting draft. +@item Graphical list of folders. +@item View a part of message without retrieving the whole message (IMAP4). +@item Server-side message look up (IMAP4), multi-byte characters are allowed. +@item Virtual Folders. +@item Supports compressed folder using common archiving utilities. +@item Old articles in folders are automatically removed/archived (Expiration). +@item Automatic re-file. +@item Template function makes it convenient to send fixed form messages. +@end itemize\n") + (license license:gpl2+)))) + +(define-public emacs-waveform + ;; XXX: Upstream provides no Version keyword. Using 0 as base version. + (let ((commit "ee52c6a72b3e9890743e3a6e2fc1f3195f5687b2") + (revision "0")) + (package + (name "emacs-waveform") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sachac/waveform-el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "082ls7khd22fjwnk7h1zxrmqqcmxqh2wx2vljlxhjh9bcp1y2pyr")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #f ;there are no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'set-waveform-el-version 'patch-exec-paths + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "waveform.el" + ("waveform-ffmpeg-executable" + (search-input-file inputs "/bin/ffmpeg")))))))) + (inputs (list ffmpeg)) + (propagated-inputs (list emacs-mpv)) + (home-page "https://github.com/sachac/waveform-el/") + (synopsis "Display a waveform and use it to navigate") + (description + "This package displays a waveform of a sound file. You can then play or +navigate through it.") + (license license:gpl3+)))) + (define-public emacs-project-x ;; There is no proper release. ;; The base version is extracted from the README.org. @@ -33327,7 +35581,7 @@ across sessions.") (define-public emacs-vertico-posframe (package (name "emacs-vertico-posframe") - (version "0.5.4") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append @@ -33335,7 +35589,7 @@ across sessions.") ".tar")) (sha256 (base32 - "19lx6p06wkwfivxgswdljdsh9bgcd1b9zkzx426w3pwicdk0cvgg")))) + "1cwi26jz9dn8la6zxxai2pfkcpz8lwf4cd8hr44lak6x0ca9bwr3")))) (build-system emacs-build-system) (propagated-inputs (list emacs-posframe emacs-vertico)) (home-page "https://github.com/tumashu/vertico-posframe") |