+
+(define-public emacs-anzu
+ (package
+ (name "emacs-anzu")
+ (version "0.62")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/syohex/emacs-anzu")
+ (synopsis "Show number of matches in mode-line while searching")
+ (description
+ "Anzu provides a minor mode which displays \"current match/total
+matches\" in the mode line in various search modes. This is an Emacs port of
+Anzu.zim.")
+ (license license:gpl3+)))
+
+(define-public emacs-emmet-mode
+ (package
+ (name "emacs-emmet-mode")
+ (version "1.0.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/smihica/emmet-mode"
+ "/archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/smihica/emmet-mode")
+ (synopsis "Unofficial Emmet's support for Emacs")
+ (description
+ "Unfold CSS-selector-like expressions to markup. It is intended to be
+used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
+ (license license:gpl3+)))
+
+(define-public emacs-ergoemacs-mode
+ (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
+ (revision "1"))
+ (package
+ (name "emacs-ergoemacs-mode")
+ (version (git-version "5.16.10.12" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ergoemacs/ergoemacs-mode.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-undo-tree" ,emacs-undo-tree)))
+ (home-page "https://ergoemacs.github.io/")
+ (synopsis "Emacs mode based on common modern interface and ergonomics")
+ (description
+ "This package provides an efficient Emacs keybinding set based on
+statistics of command frequency, and supports common shortcuts for open,
+close, copy, cut, paste, undo, redo.")
+ (license license:gpl3+))))
+
+(define-public emacs-password-store
+ (package
+ (name "emacs-password-store")
+ (version "1.7.1")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://git.zx2c4.com/password-store/snapshot/"
+ "password-store-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
+ (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"))))))
+ (propagated-inputs
+ `(("emacs-f" ,emacs-f)
+ ("emacs-s" ,emacs-s)
+ ("password-store" ,password-store)))
+ (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+)))
+
+(define-public emacs-pass
+ (package
+ (name "emacs-pass")
+ (version "1.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/NicolasPetton/pass/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0zlx9v6z0q3w9qhq9bq6vb7sli4c9x7qccm2wq55j0nw7bwy2yvj"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-password-store" ,emacs-password-store)
+ ("emacs-f" ,emacs-f)))
+ (home-page "https://github.com/NicolasPetton/pass")
+ (synopsis "Major mode for @file{password-store.el}")
+ (description "This is a major mode for managing password-store (pass)
+keychains. The keychain entries are displayed in a directory-like structure
+and can be consulted and modified.")
+ (license license:gpl3+)))
+
+(define-public emacs-evil-anzu
+ (package
+ (name "emacs-evil-anzu")
+ (version "0.03")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
+ "/archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-evil" ,emacs-evil)
+ ("emacs-anzu" ,emacs-anzu)))
+ (home-page "https://github.com/syohex/emacs-evil-anzu")
+ (synopsis "Anzu for evil-mode")
+ (description "@code{anzu} provides a minor mode that displays the current
+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+))))
+
+(define-public emacs-cl-generic
+ (package
+ (name "emacs-cl-generic")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
+ version ".el"))
+ (sha256
+ (base32
+ "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
+ (build-system emacs-build-system)
+ (home-page "https://elpa.gnu.org/packages/seq.html")
+ (synopsis
+ "Forward @code{cl-generic} compatibility for Emacs before version 25")
+ (description "This package provides a subset of the features of the
+@code{cl-generic} package introduced in Emacs-25, for use on previous
+@code{emacsen}.")
+ (license license:gpl3+)))
+
+(define-public emacs-finalize
+ (package
+ (name "emacs-finalize")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-cl-generic" ,emacs-cl-generic)))
+ (home-page "https://github.com/skeeto/elisp-finalize")
+ (synopsis "Finalizers for Emacs Lisp")
+ (description
+ "This package will allows to immediately run a callback (a finalizer)
+after its registered lisp object has been garbage collected. This allows for
+extra resources, such as buffers and processes, to be cleaned up after the
+object has been freed.")
+ (license license:unlicense)))
+
+(define-public emacs-emacsql
+ (package
+ (name "emacs-emacsql")
+ (version "2.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/skeeto/emacsql/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:modules ((guix build emacs-build-system)
+ (guix build utils)
+ (guix build emacs-utils)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
+ (add-before 'install 'patch-elisp-shell-shebangs
+ (lambda _
+ (substitute* (find-files "." "\\.el")
+ (("/bin/sh") (which "sh")))
+ #t))
+ (add-after 'patch-elisp-shell-shebangs 'setenv-shell
+ (lambda _
+ (setenv "SHELL" "sh")))
+ (add-after 'setenv-shell 'build-emacsql-sqlite
+ (lambda _
+ (invoke "make" "binary" "CC=gcc")))
+ (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"))
+ #t))
+ (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
+ ;; Avoid interactive prompts.
+ ("(defvar emacsql-sqlite-user-prompted" 't)
+ ;; 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"))))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (install-file "sqlite/emacsql-sqlite"
+ (string-append out "/bin"))
+ (for-each (cut install-file <>
+ (string-append out "/share/emacs/site-lisp/guix.d/"
+ "emacsql" "-" ,version))
+ (find-files "." "\\.elc*$")))
+ #t)))))
+ (inputs
+ `(("emacs-minimal" ,emacs-minimal)
+ ("mysql" ,mysql)
+ ("postgresql" ,postgresql)))
+ (propagated-inputs
+ `(("emacs-finalize" ,emacs-finalize)
+ ("emacs-pg" ,emacs-pg)))
+ (home-page "https://github.com/skeeto/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
+has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
+object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
+ (license license:gpl3+)))
+
+(define-public emacs-closql
+ (package
+ (name "emacs-closql")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/emacscollective/closql/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-emacsql" ,emacs-emacsql)))
+ (home-page "https://github.com/emacscollective/closql")
+ (synopsis "Store EIEIO objects using EmacSQL")
+ (description
+ "This package allows to store uniform EIEIO objects in an EmacSQL
+database. SQLite is used as backend. This library imposes some restrictions
+on what kind of objects can be stored; it isn't intended to store arbitrary
+objects. All objects have to share a common superclass and subclasses cannot
+add any additional instance slots.")
+ (license license:gpl3)))
+
+(define-public emacs-epkg
+ ;; The release version is to old for the current database scheme.
+ (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
+ (package
+ (name "emacs-epkg")
+ (version (git-version "3.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emacscollective/epkg.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-closql" ,emacs-closql)
+ ("emacs-dash" ,emacs-dash)))
+ (home-page "https://emacsmirror.net")
+ (synopsis "Browse the Emacsmirror package database")
+ (description "This package provides access to a local copy of the
+Emacsmirror package database. It provides low-level functions for querying
+the database and a @file{package.el} user interface for browsing the database.
+Epkg itself is not a package manager.
+
+Getting a local copy:
+
+@example
+git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
+cd ~/.emacs.d/epkgs
+git submodule init
+git config --global url.https://github.com/.insteadOf git@@github.com:
+git submodule update
+@end example
+
+Some submodule may be missing. In this case Git will prompt for a GitHub user
+name and password. To skip it press a @key{Return} key.
+
+You could get a Epkg package list by invoking @code{epkg-list-packages} in
+Emacs.")
+ (license license:gpl3+))))
+
+(define-public emacs-elisp-slime-nav
+ (package
+ (name "emacs-elisp-slime-nav")
+ (version "0.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/purcell/elisp-slime-nav")
+ (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
+ (description
+ "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
+in @code{emacs-lisp-mode}, together with an elisp equivalent of
+@code{slime-describe-symbol}.")
+ (license license:gpl3+)))