X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/3540c6eb2b51f98f0243170ce55b4ec3eede0983..f9299da92a4822cbb3e85c976734990fdf486e18:/gnu/packages/emacs.scm diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 96bb8cbc9d..0681c7e3b0 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -312,12 +312,12 @@ editor (without an X toolkit)" ) ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'autogen - (lambda _ - (zero? (system* "sh" "autogen.sh")))) + (lambda _ + (invoke "sh" "autogen.sh"))) ;; Build sometimes fails: deps/dispnew.d: No such file or directory (add-before 'build 'make-deps-dir (lambda _ - (zero? (system* "mkdir" "-p" "src/deps")))))))))) + (invoke "mkdir" "-p" "src/deps"))))))))) ;;; @@ -411,7 +411,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (define-public emacs-with-editor (package (name "emacs-with-editor") - (version "2.7.2") + (version "2.7.3") (source (origin (method url-fetch) (uri (string-append @@ -420,7 +420,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1jqi3axcs0cb1pcv1jxxc2a09v6psrm33wwl6hmyshzl8kbxs2mv")))) + "1ln2s0kckzkv50qmr6x1kb2j30cfjii0vs6lpghg7ff4lav8jqgh")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) @@ -436,7 +436,7 @@ on stdout instead of using a socket as the Emacsclient does.") (define-public magit (package (name "magit") - (version "2.12.1") + (version "2.13.0") (source (origin (method url-fetch) (uri (string-append @@ -444,7 +444,7 @@ on stdout instead of using a socket as the Emacsclient does.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3")))) + "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-minimal))) @@ -585,7 +585,7 @@ support for Git-SVN.") (modify-phases %standard-phases (add-before 'install 'make-info (lambda _ - (zero? (system* "make" "info"))))))) + (invoke "make" "info")))))) (native-inputs `(("texinfo" ,texinfo))) (propagated-inputs @@ -602,7 +602,7 @@ process, passing on the arguments as command line arguments.") (define-public emacs-ghub (package (name "emacs-ghub") - (version "2.0.0") + (version "2.0.1") (source (origin (method url-fetch) (uri (string-append @@ -611,14 +611,14 @@ process, passing on the arguments as command line arguments.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc")))) + "0d0qj5r1bm2aidi61rigrdaycxnyb7y1ivb3h8rpvvapsf8sk7z0")))) (build-system emacs-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'install 'make-info (lambda _ - (zero? (system* "make" "info"))))))) + (invoke "make" "info")))))) (native-inputs `(("texinfo" ,texinfo))) (home-page "https://github.com/magit/ghub") @@ -702,8 +702,7 @@ only a handful of functions that are not resource-specific.") files)) (with-directory-excursion "doc" - (unless (zero? (system* "makeinfo" "haskell-mode.texi")) - (error "makeinfo failed")) + (invoke "makeinfo" "haskell-mode.texi") (install-file "haskell-mode.info" info)) (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md")) (copy-to-dir el-dir (find-files "." "\\.elc?")) @@ -794,7 +793,7 @@ provides an optional IDE-like error list.") (modify-phases %standard-phases (add-after 'unpack 'autoconf (lambda _ - (zero? (system* "autoconf")))) + (invoke "autoconf"))) (add-before 'configure 'support-emacs! (lambda _ ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is @@ -825,13 +824,13 @@ provides an optional IDE-like error list.") #t))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (and (zero? (system* "make" "install" "install-icons")) - (with-directory-excursion - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp") - (for-each delete-file '("ChangeLog" "ChangeLog.1")) - (symlink "w3m-load.el" "w3m-autoloads.el") - #t))))))) + (invoke "make" "install" "install-icons") + (with-directory-excursion + (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp") + (for-each delete-file '("ChangeLog" "ChangeLog.1")) + (symlink "w3m-load.el" "w3m-autoloads.el") + #t)))))) (home-page "http://emacs-w3m.namazu.org/") (synopsis "Simple Web browser for Emacs based on w3m") (description @@ -1154,7 +1153,7 @@ than @code{electric-indent-mode}.") (add-before 'install 'make-info (lambda _ (with-directory-excursion "docs" - (zero? (system* "make" "info"))))) + (invoke "make" "info")))) (add-after 'install 'install-info (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1430,11 +1429,11 @@ Maps directly inside Emacs.") (license license:gpl3+))) (define-public emacs-graphviz-dot-mode - (let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580") + (let ((commit "c456a2b65c734089e6c44e87209a5a432a741b1a") (revision "1")) (package (name "emacs-graphviz-dot-mode") - (version (string-append "0.3.10-" revision "." + (version (string-append "0.3.11-" revision "." (string-take commit 7))) (source (origin (method git-fetch) @@ -1444,7 +1443,7 @@ Maps directly inside Emacs.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714")))) + "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1")))) (build-system emacs-build-system) (arguments `(#:phases @@ -2662,7 +2661,7 @@ build jobs.") (define-public emacs-company (package (name "emacs-company") - (version "0.9.3") + (version "0.9.6") (source (origin (method url-fetch) @@ -2671,7 +2670,7 @@ build jobs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1fyrpchpdmvszssy1qmsw41aqpv6q5rybvs1bw00nv9xdhiaq4vh")))) + "0a7zvmfvxh9w67myvcj2511ayk0fvkm06cdg38y8khnsx63jrr4k")))) (build-system emacs-build-system) (arguments `(#:phases @@ -3014,6 +3013,33 @@ This provides a basic API and common UI widgets such as popup tooltips and popup menus.") (license license:gpl3+))) +(define-public emacs-puppet-mode + (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2") + (revision "1")) + (package + (name "emacs-puppet-mode") + ;; The last release, 0.3 was several years ago, and there have been many + ;; commits since + (version (git-version "0.3" revision commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://raw.githubusercontent.com/voxpupuli/puppet-mode/" + commit "/puppet-mode.el")) + (sha256 + (base32 + "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm")))) + (build-system emacs-build-system) + (home-page "https://github.com/voxpupuli/puppet-mode") + (synopsis "Emacs major mode for the Puppet configuration language") + (description + "This package provides support for the Puppet configuration language, +including syntax highlighting, indentation of expressions and statements, +linting of manifests and integration with Puppet Debugger.") + ;; Also incorporates work covered by the Apache License, Version 2.0 + (license license:gpl3+)))) + (define-public emacs-god-mode (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964") (revision "1")) @@ -3643,6 +3669,35 @@ splitting the input text by spaces and re-building it into a regular expression.") (license license:gpl3+))) +(define-public emacs-ivy-yasnippet + (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4")) + (package + (name "emacs-ivy-yasnippet") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mkcms/ivy-yasnippet.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ivy" ,emacs-ivy) + ("emacs-yasnippet" ,emacs-yasnippet) + ("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/mkcms/ivy-yasnippet") + (synopsis "Preview @code{yasnippets} with @code{ivy}") + (description "This package allows you to select @code{yasnippet} +snippets using @code{ivy} completion. When current selection changes in the +minibuffer, the snippet contents are temporarily expanded in the buffer. To +use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled +@code{yas-minor-mode} first).") + (license license:gpl3+)))) + (define-public emacs-avy (package (name "emacs-avy") @@ -4768,7 +4823,7 @@ distribution, primarily targeting Clojure users") (define-public emacs-orgalist (package (name "emacs-orgalist") - (version "1.7") + (version "1.8") (source (origin (method url-fetch) @@ -4776,7 +4831,7 @@ distribution, primarily targeting Clojure users") "orgalist-" version ".el")) (sha256 (base32 - "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr")))) + "1wqwnmn08i0qkxm8b2iclvf6cydcn68h1p3h7r1kig2bdn5b8948")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/orgalist.html") (synopsis "Manage Org-like lists in non-Org buffers") @@ -5580,7 +5635,7 @@ highlights quasi-quoted expressions.") (define-public emacspeak (package (name "emacspeak") - (version "47.0") + (version "48.0") (source (origin (method url-fetch) @@ -5589,7 +5644,7 @@ highlights quasi-quoted expressions.") version "/emacspeak-" version ".tar.bz2")) (sha256 (base32 - "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7")))) + "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy")))) (build-system gnu-build-system) (arguments '(#:make-flags (list (string-append "prefix=" @@ -5597,30 +5652,35 @@ highlights quasi-quoted expressions.") #:phases (modify-phases %standard-phases (replace 'configure - (lambda _ - ;; Configure Emacspeak according to etc/install.org. - (setenv "SHELL" (which "sh")) - (zero? (system* "make" "config")))) + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lisp (string-append out + "/share/emacs/site-lisp/emacspeak"))) + (setenv "SHELL" (which "sh")) + ;; Configure Emacspeak according to etc/install.org. + (invoke "make" "config")))) (add-after 'build 'build-espeak (lambda _ - (zero? (system* "make" "espeak")))) + (invoke "make" "espeak"))) (replace 'install - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (lisp (string-append out "/share/emacs/site-lisp/emacspeak")) - (info (string-append out "/share/info"))) + (info (string-append out "/share/info")) + (emacs (string-append (assoc-ref inputs "emacs") + "/bin/emacs"))) ;; According to etc/install.org, the Emacspeak directory should ;; be copied to its installation destination. (for-each (lambda (file) (copy-recursively file (string-append lisp "/" file))) - '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm" - "xsl")) + '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds" + "stumpwm" "xsl")) ;; Make sure emacspeak is loaded from the correct directory. (substitute* "etc/emacspeak.sh" - (("exec emacs.*$") - (string-append "exec emacs -l " lisp + (("exec FLAVOR.*") + (string-append "exec " emacs " -l " lisp "/lisp/emacspeak-setup.el $CL_ALL"))) ;; Install the convenient startup script. (mkdir-p bin) @@ -5639,10 +5699,11 @@ highlights quasi-quoted expressions.") #t)))) #:tests? #f)) ; no check target (inputs - `(("espeak" ,espeak) + `(("emacs" ,emacs) + ("espeak" ,espeak) + ("perl" ,perl) ("tcl" ,tcl) ("tclx" ,tclx))) - (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://emacspeak.sourceforge.net") (synopsis "Audio desktop interface for Emacs") (description @@ -7175,7 +7236,7 @@ messaging service.") (define-public emacs-bash-completion (package (name "emacs-bash-completion") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) @@ -7185,7 +7246,7 @@ messaging service.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj")))) + "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq")))) (inputs `(("bash" ,bash))) (build-system emacs-build-system) (arguments @@ -7888,7 +7949,7 @@ close, copy, cut, paste, undo, redo.") (define-public emacs-password-store (package (name "emacs-password-store") - (version "1.7.1") + (version "1.7.2") (source (origin (method url-fetch) (uri @@ -7896,7 +7957,7 @@ close, copy, cut, paste, undo, redo.") "password-store-" version ".tar.xz")) (sha256 (base32 - "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn")))) + "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27")))) (build-system emacs-build-system) (arguments `(#:phases @@ -7911,6 +7972,7 @@ close, copy, cut, paste, undo, redo.") (propagated-inputs `(("emacs-f" ,emacs-f) ("emacs-s" ,emacs-s) + ("emacs-with-editor" ,emacs-with-editor) ("password-store" ,password-store))) (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs") (synopsis "Password store (pass) support for Emacs") @@ -8099,7 +8161,7 @@ object has been freed.") #t))))) (inputs `(("emacs-minimal" ,emacs-minimal) - ("mysql" ,mysql) + ("mariadb" ,mariadb) ("postgresql" ,postgresql))) (propagated-inputs `(("emacs-finalize" ,emacs-finalize) @@ -9905,11 +9967,11 @@ perform regression test for packages that provide font-lock rules.") (license license:gpl3+)))) (define-public emacs-racket-mode - (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451") + (let ((commit "48f0cb99d3b2ca6066249546d2063d85437251c1") (revision "1")) (package (name "emacs-racket-mode") - (version (string-append "0.0.1" "-" revision "." + (version (string-append "0.0.2" "-" revision "." (string-take commit 7))) (source (origin @@ -9920,8 +9982,10 @@ perform regression test for packages that provide font-lock rules.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1")))) + "0fxky8xj639bjhiab9way9daqda22301b7w85vm4b4ydgjgnc59x")))) (build-system emacs-build-system) + (arguments + `(#:include '("\\.el$" "\\.rkt$"))) (propagated-inputs `(("emacs-faceup" ,emacs-faceup) ("emacs-s" ,emacs-s))) @@ -10778,26 +10842,39 @@ Org-mode. It features: (license license:gpl3+)))) (define-public emacs-fish-completion - (package - (name "emacs-fish-completion") - (version "20180329") - (source - (origin - (method url-fetch) - (uri (string-append - "https://github.com/Ambrevar/emacs-fish-completion/archive/" - "3e3ed1f19fa778b7c35ad88e033dce5a6b1fc153" - ".tar.gz")) - (sha256 - (base32 - "16329py7fvid0bap1qhqxhdc68m9qqy1p8gc2bhng81zhm5a5zsm")))) - (build-system emacs-build-system) - (propagated-inputs `(("fish" ,fish))) - (home-page - "https://github.com/Ambrevar/emacs-fish-completion") - (synopsis "Fish completion for Emacs pcomplete") - (description - "This package provides completion for the Fish shell to pcomplete (used + (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b")) + (package + (name "emacs-fish-completion") + (version (git-version "20180616" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/" + "archive.tar.gz?ref=" + commit)) + (sha256 + (base32 + "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi")))) + (build-system emacs-build-system) + (inputs `(("fish" ,fish))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((fish (assoc-ref inputs "fish"))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (emacs-substitute-variables + "fish-completion.el" + ("fish-completion-command" + (string-append fish "/bin/fish"))))))))) + (home-page + "https://gitlab.com/Ambrevar/emacs-fish-completion") + (synopsis "Fish completion for Emacs pcomplete") + (description + "This package provides completion for the Fish shell to pcomplete (used by shell and Eshell). You can set it up globally with: @example @@ -10812,23 +10889,23 @@ shell/Eshell mode hook. The package @code{emacs-bash-completion} is an optional dependency: if available, @code{fish-completion-complete} can be configured to fall back on bash to further try completing. See @code{fish-completion-fallback-on-bash-p}.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-gif-screencast - (let ((commit "825e606950ec842304bf75cf85baef707b853b03")) + (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a")) (package (name "emacs-gif-screencast") - (version (git-version "20180309" "1" commit)) + (version (git-version "20180616" "1" commit)) (source (origin (method url-fetch) (uri (string-append - "https://github.com/Ambrevar/emacs-gif-screencast/archive/" - commit - ".tar.gz")) + "https://gitlab.com/Ambrevar/emacs-gif-screencast/" + "repository/archive.tar.gz?ref=" + commit)) (sha256 (base32 - "1f83sdx4qj4g6byvbdq7aayissbcy5lqm43djp8h0lq455nf7jkc")))) + "0lc457i78xjkn5idr2aaiadkh76zcsksj84z0qh80a9y775syrgh")))) (build-system emacs-build-system) (inputs `(("scrot" ,scrot) @@ -10855,7 +10932,7 @@ try completing. See @code{fish-completion-fallback-on-bash-p}.") ("gif-screencast-optimize-program" (string-append imagemagick "/bin/gifsicle"))))))))) (home-page - "https://github.com/Ambrevar/emacs-gif-screencast") + "https://gitlab.com/Ambrevar/emacs-gif-screencast") (synopsis "One-frame-per-action GIF recording") (description "Call @code{gif-screencast} to start a recording. @@ -10912,3 +10989,305 @@ on-line service.") "This is a Helm interface to company-mode, a text completion framework.") (license license:gpl3+)))) + +(define-public emacs-helm-descbinds + (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e")) + (package + (name "emacs-helm-descbinds") + (version (git-version "1.13" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-descbinds") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/emacs-helm/helm-descbinds") + (synopsis "Convenient @code{describe-bindings} with Helm") + (description + "This package is a replacement of @code{describe-bindings} for Helm. +@code{describe-bindings} is replaced with @code{helm-descbinds}. As usual, +type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run +@code{helm-descbinds}. The bindings are presented in a similar way as +@code{describe-bindings} does, but you can use completion to find the command +you searched for and execute it, or view its documentation.") + (license license:gpl3+)))) + +(define-public emacs-helm-emms + (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec")) + (package + (name "emacs-helm-emms") + (version (git-version "1.3" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-emms") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-emms" ,emms))) + (home-page + "https://github.com/emacs-helm/helm-emms") + (synopsis "Emms for Helm") + (description "Helm interface for Emms to browse all tracks and all folders +from @code{emms-source-file-default-directory}.") + (license license:gpl3+)))) + +(define-public emacs-helm-exwm + (let ((commit "82a856c80c8d295e3be522a01c5a15af50d08990")) + (package + (name "emacs-helm-exwm") + (version (git-version "20180523" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/emacs-helm/helm-exwm/archive/" + commit + ".tar.gz")) + (sha256 + (base32 + "1xsg2lar1vh7jmj5lnnyi14vssxkgy95sv9r8pbfhbnkjkbjm9pb")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-exwm" ,emacs-exwm))) + (home-page + "https://github.com/emacs-helm/helm-exwm") + (synopsis "Helm for EXWM buffers") + (description + "@code{helm-exwm} runs a Helm session over the list of EXWM buffers. +@code{helm-exwm-switch} is a convenience X application launcher using Helm to +switch between the various windows of one or several specific applications. +See @code{helm-exwm-switch-browser} for an example.") + (license license:gpl3+)))) + +(define-public emacs-helm-flycheck + (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6")) + (package + (name "emacs-helm-flycheck") + (version (git-version "0.4" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yasuyk/helm-flycheck") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-flycheck" ,flycheck) + ("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/yasuyk/helm-flycheck") + (synopsis "Show Flycheck errors with Helm") + (description + "This integrates Flycheck with Helm.") + (license license:gpl3+)))) + +(define-public emacs-helm-ls-git + (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa")) + (package + (name "emacs-helm-ls-git") + (version (git-version "1.9.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-ls-git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/emacs-helm/helm-ls-git") + (synopsis "Helm interface for listing the files in a Git repository") + (description + "This package provides a Helm interface for Git files. +@itemize +@item Display the open buffers in project. +@item Display a status source showing state of project (modified files etc.). +@item Display a list of all files in project under git control. +@item Quickly look at diffs of modified files. +@item Allow switching to @code{git status} with your preferred frontend +(vc-dir, Magit,etc.). +@item Full integration of git-grep, also allow usage of @code{helm-grep} (you +can use ack-grep instead of grep). +@item Integrate usage of gid from id-utils. +@item Full integration with @code{helm-find-files}, allow you to browse +projects unrelated to current-buffer. +@item In addition, all actions of type files and buffers are provided. +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-helm-mu + (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf")) + (package + (name "emacs-helm-mu") + (version (git-version "20180513" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/emacs-helm/helm-mu/archive/" + commit + ".tar.gz")) + (sha256 + (base32 + "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("mu" ,mu))) + (home-page + "https://github.com/emacs-helm/helm-mu") + (synopsis + "Helm sources for searching emails and contacts") + (description + "Helm sources for searching emails and contacts using @code{mu} and +@code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for +Emacs build on top of mu. Mu is highly efficient making it possible to get +instant results even for huge maildirs. It also provides search operators, +e.g: @code{from:Peter to:Anne flag:attach search term}.") + (license license:gpl3+)))) + +(define-public emacs-helm-pass + (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb")) + (package + (name "emacs-helm-pass") + (version (git-version "20180416" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/jabranham/helm-pass/archive/" + commit + ".tar.gz")) + (sha256 + (base32 + "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-password-store" ,emacs-password-store))) + (home-page + "https://github.com/jabranham/helm-pass") + (synopsis "Helm interface to pass, the standard Unix password manager") + (description + "Users of @code{helm-pass} may also be interested in functionality +provided by other Emacs packages dealing with pass: +@itemize +@item @code{emacs-password-store}, which @code{helm-pass} relies on. +@item @code{emacs-pass}, a major mode for @code{pass}. +@item @code{auth-source-pass.el}: integration of Emacs' auth-source with +@code{pass}, included in Emacs 26+). +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-image+ + (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc")) + (package + (name "emacs-image+") + (version (git-version "0.6.2" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mhayashi1120/Emacs-imagex") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd")))) + (build-system emacs-build-system) + (inputs `(("imagemagick" ,imagemagick))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((imagemagick (assoc-ref inputs "imagemagick"))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (chmod "image+.el" #o666) + (emacs-substitute-variables + "image+.el" + ("imagex-convert-command" + (string-append imagemagick "/bin/convert")) + ("imagex-identify-command" + (string-append imagemagick "/bin/identify"))))))))) + (home-page "https://github.com/mhayashi1120/Emacs-imagex") + (synopsis "Image manipulation extensions for Emacs") + (description + "Image+ provides keybindings allowing you to zoom in or zoom out of an +image, rotate it, save modified images, and more.") + (license license:gpl3+)))) + +(define-public emacs-package-lint + (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288")) + (package + (name "emacs-package-lint") + (version (git-version "0.5" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/purcell/package-lint") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq")))) + (build-system emacs-build-system) + (home-page "https://github.com/purcell/package-lint") + (synopsis "Linting library for elisp package authors") + (description + "This provides a list of issues with the Emacs package metadata of a file, +e.g. the package dependencies it requires. See function +@code{package-lint-buffer}. Checks will currently be enabled only if a +\"Package-Requires:\" or \"Package-Version:\" header is present in the +file.") + (license license:gpl3+)))) + +(define-public emacs-wgrep-helm + (let ((commit "1cdd7c136f1e7565bb13d2df69be3dc77b83698d")) + (package + (name "emacs-wgrep-helm") + (version (git-version "2.1.10" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mhayashi1120/Emacs-wgrep") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-wgrep" ,emacs-wgrep))) + (home-page + "https://github.com/mhayashi1120/Emacs-wgrep") + (synopsis + "Writable helm-grep-mode buffer and apply the changes to files") + (description + "@code{wgrep-helm} allows you to edit a @code{helm-grep-mode} buffer and +apply those changes to the file buffer.") + (license license:gpl3+))))