(define-module (oni packages emacs) #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) #:use-module ((guix gexp) #:select (gexp)) #:use-module (guix git-download) #:use-module (guix build-system emacs) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages emacs-xyz) #:use-module ((gnu packages mail) #:select (notmuch))) (define-public emacs-inkplate (let ((commit "0897721a7b3d84aa3f200ae85fddd5fdd370fc42") (revision "0")) (package (name "emacs-inkplate") (version (git-version "0.0.1" revision commit)) (source (origin (uri (git-reference (url "https://git.sr.ht/~ryuslash/inkplatel") (commit commit))) (method git-fetch) (sha256 (base32 "0mqnpf4vrzn3013pcwcr9150k4jy4klrdg0pd3amhg2y25054w4s")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (synopsis "Interface for my Inkplate") (description "This package provides a way to communicate with Inkplate in peripheral mode.") (license license:gpl3+) (home-page "https://sr.ht/~ryuslash/inkplate/")))) (define-public emacs-circe-serenity (let ((commit "6dbc0944755b198c923689c33e7287e444f6a310") (revision "0")) (package (name "emacs-circe-serenity") (version (git-version "0.0.1" revision commit)) (source (origin (uri (git-reference (url "https://github.com/ryuslash/circe-serenity.git") (commit commit))) (method git-fetch) (sha256 (base32 "05fpbvqx6ii8kypv880j3mdc8kql7k16dcs42vpaaabjwn3kv4kn")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs `(("emacs-circe" ,emacs-circe))) (synopsis "Someone's idea of a more serene Circe configuration") (description "A configuration for Circe") (license license:gpl3) (home-page "https://github.com/ryuslash/circe-serenity")))) (define-public emacs-embrace (package (name "emacs-embrace") (version "0.1.4") (source (origin (uri (git-reference (url "https://github.com/cute-jumper/embrace.el") (commit version))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-expand-region" ,emacs-expand-region))) (home-page "https://github.com/cute-jumper/embrace.el") (synopsis "Add/Change/Delete pairs based on `expand-region', similar to `evil-surround'") (description "This package is heavily inspired by evil-surround (which is a port of the vim plugin surround.vim). But instead of using evil and its text objects, this package relies on another excellent package expand-region. For Emacs users who don’t like evil and thus don’t use evil-surround, embrace provides similar commands that can be found in evil-surround. Evil is absolutely not required. For evil-surround users, embrace can make your evil-surround commands even better! (Have you noticed that evil-surround doesn’t work on many custom pairs?)") (license license:gpl3+))) (define-public emacs-insert-char-preview (let ((commit "0e4a62b5407fb1bed8920a4c13cf9a91065e15ad") (revision "0")) (package (name "emacs-insert-char-preview") (version (git-version "0.0.0" revision commit)) (source (origin (uri (git-reference (url "https://gitlab.com/matsievskiysv/insert-char-preview") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "0cqc23y9n63a7kl2p1zrfcsxnclfxcszfmbh2hmbrs6q05ys0kzg")))) (build-system emacs-build-system) (home-page "https://gitlab.com/matsievskiysv/insert-char-preview") (synopsis "Insert Unicode char") (description "Insert Unicode char via insert-char-preview similar to insert-char command, but with character preview in completion prompt.") (license license:gpl3+)))) (define-public emacs-bats (let ((commit "d519f7c89f5ae17dfc33400596df4564b478315f") (revision "0")) (package (name "emacs-bats") (version (git-version "0.0.0" revision commit)) (source (origin (uri (git-reference (url "https://github.com/dougm/bats-mode") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "1ikb4rb20ng1yq95g3ydwpk37axmiw38rjzn1av9m4cs81qby4jv")))) (build-system emacs-build-system) (home-page "https://github.com/dougm/bats-mode") (synopsis "Emacs mode for editing and running Bats tests") (description "bats-mode is an Emacs mode for editing and running Bats tests. bats-mode derives from the bash flavor of sh-mode, adding font-lock for bats keywords.") (license license:gpl2+)))) (define-public emacs-docstr (let ((commit "4a991860c1259657c07c726bc482c97a1f597394") (revision "0")) (package (name "emacs-docstr") (version (git-version "5.7.0" revision commit)) (source (origin (uri (git-reference (url "https://github.com/emacs-vs/docstr") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "1z2l1mvrijwap83fpdlyfclk5aygfvmjaq7dayacj5nz5rggk0j6")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-s" ,emacs-s))) (home-page "https://emacs-vs.github.io/docstr/") (synopsis "A document string minor mode") (description "This package provides a simple solution for the insertion of documentation strings into code.") (license license:gpl3+)))) (define-public emacs-flycheck-posframe (let ((commit "8f60c9bf124ab9597d681504a73fdf116a0bde12") (revision "0")) (package (name "emacs-flycheck-posframe") (version (git-version "0.0.0" revision commit)) (source (origin (uri (git-reference (url "https://github.com/alexmurray/flycheck-posframe") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "0qh9hzvs95jvfrspglzkwhfq6a5pinab94bbh5vzkg8jc2fq6drf")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-flycheck" ,emacs-flycheck) ("emacs-posframe" ,emacs-posframe))) (home-page "https://github.com/alexmurray/flycheck-posframe") (synopsis "Show flycheck errors via posframe.el") (description "Show flycheck errors via posframe.el") (license license:gpl3+)))) (define-public emacs-flycheck-cask (package (name "emacs-flycheck-cask") (version "0.4") (source (origin (uri (git-reference (url "https://github.com/flycheck/flycheck-cask") (commit version))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "1wm5saf29gw0gp0qq5glf9qq3iras99npc2rip7bsnn0czr2mscy")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-flycheck" ,emacs-flycheck) ("emacs-dash" ,emacs-dash))) (home-page "https://github.com/flycheck/flycheck-cask") (synopsis "Cask support for Flycheck") (description "Make Flycheck use Cask packages in Cask projects.") (license license:gpl3+))) (define-public emacs-nroam (package (name "emacs-nroam") (version "20210325.2015") (source (origin (method url-fetch) (uri (string-append "https://melpa.org/packages/nroam-" version ".tar")) (sha256 (base32 "1aybc2k8kyf2dlpbq39p3k1nsvzrhw58xarbwwq0qgz91r49m4xq")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-org-roam" ,emacs-org-roam) ("emacs-org" ,emacs-org))) (home-page "https://github.com/NicolasPetton/nroam") (synopsis "Org-roam backlinks within org-mode buffers") (description "nroam is a supplementary package for org-roam that replaces the backlink side buffer of Org-roam. Instead, it displays org-roam backlinks at the end of org-roam buffers. To setup nroam for all org-roam buffers, evaluate the following: (add-hook 'org-mode-hook #'nroam-setup-maybe) ") (license license:gpl3+))) (define-public emacs-eldoc-cmake (package (name "emacs-eldoc-cmake") (version "20190419.2244") (source (origin (method url-fetch) (uri (string-append "https://melpa.org/packages/eldoc-cmake-" version ".el")) (sha256 (base32 "08qa4lp22pracwskjq1kqv6kjwfbgyjsjsxb8kv820ndz5ccwaik")))) (build-system emacs-build-system) (home-page "https://github.com/ikirill/eldoc-cmake") (synopsis "Eldoc support for CMake") (description " CMake eldoc support, using a pre-generated set of docstrings from CMake's documentation source. See function `eldoc-cmake-enable'. ") (license license:gpl3))) (define-public emacs-elisp-format (let ((commit "03cc293eb2f78ec58fc1d84279af06816a04b979") (revision "0")) (package (name "emacs-elisp-format") (version (git-version "0.0.0" revision commit)) (source (origin (uri (git-reference (url "https://github.com/Yuki-Inoue/elisp-format") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "17l2xsixx3p93dmx9jsg0a3xqdg19nwp1di2pymlg41pw0kdf3x3")))) (build-system emacs-build-system) (home-page "https://github.com/Yuki-Inoue/elisp-format") (synopsis "Format elisp code") (description "This package is format by itself, so you can view format effect.") (license license:gpl3+)))) (define-public emacs-erefactor (let ((commit "bfe27a1b8c7cac0fe054e76113e941efa3775fe8") (revision "0")) (package (name "emacs-erefactor") (version (git-version "0.7.2" revision commit)) (source (origin (uri (git-reference (url "https://github.com/mhayashi1120/Emacs-erefactor") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "1071gqli1qd498syhysyj2wzyw1nya5070m82xd9qalqdh11b8is")))) (build-system emacs-build-system) (home-page "https://github.com/mhayashi1120/Emacs-erefactor") (synopsis "Emacs-Lisp refactoring utilities") (description "Simple refactoring, linting utilities for Emacs-Lisp.") (license license:gpl3+)))) (define-public emacs-flycheck-relint (let ((commit "84b66d364ba583c1d5173a326997d11c6946b463") (revision "0")) (package (name "emacs-flycheck-relint") (version (git-version "0.6" revision commit)) (source (origin (uri (git-reference (url "https://github.com/purcell/flycheck-relint") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "04ypamfnfhw7ba6zd1k62xaxq91qbzfxx4n5nld74w2cyv3s645f")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-flycheck" ,emacs-flycheck) ("emacs-relint" ,emacs-relint))) (home-page "https://github.com/purcell/flycheck-relint") (synopsis "Flycheck integration for `relint`, which checks regexps in emacs lisp") (description "This library provides a Flycheck checker for rx and string regular expressions in Emacs Lisp files, using relint.") (license license:gpl3+)))) (define-public emacs-outli (let ((commit "f16f3ab90c5e4194b62f461e82f01709ae80f6e9") (revision "0")) (package (name "emacs-outli") (version (git-version "0.0.0" revision commit)) (source (origin (uri (git-reference (url "https://github.com/jdtsmith/outli") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "03xirf5q6n1iy3h1gqhzwbiw7vadfmna1h3gkfkdrjqfd3jjq6qm")))) (build-system emacs-build-system) (home-page "https://github.com/jdtsmith/outli") (synopsis "Simple comment-based outlines for Emacs") (description "outli is a simple Emacs outliner for code, documents, and more which styles your headings, and emulates org-mode navigation and structure editing. It is based on the built-in outline-minor-mode and is simple by design, providing just a few key features.") (license license:gpl3+)))) (define-public emacs-eshell-fringe-status (let ((commit "047e9b9c75a39ac9f903bab937918165261d44f8") (revision "0")) (package (name "emacs-eshell-fringe-status") (version (git-version "0.0.0" revision commit)) (source (origin (uri (git-reference (url "https://code.ryuslash.org/ryuslash/eshell-fringe-status.git") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "0frx1lc0rf6p01m5gjyaazl64f839856qn88v263rdls5rpncmz9")))) (build-system emacs-build-system) (home-page "https://code.ryuslash.org/ryuslash/eshell-fringe-status") (synopsis "Show last status in fringe") (description "Show last status in fringe") (license license:gpl3+)))) (define-public emacs-yoshi-theme (let ((commit "8faa406152f76452bda765ed4dafd41cd67f3afb") (revision "0")) (package (name "emacs-yoshi-theme") (version (git-version "7.0.0" revision commit)) (source (origin (uri (git-reference (url "https://code.ryuslash.org/ryuslash/yoshi-theme.git") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "0bb5mf194iw72w7zcvs9jmlxx5ngvslx5i6c6rna9bj3y0zm8jlb")))) (build-system emacs-build-system) (home-page "https://code.ryuslash.org/ryuslash/yoshi-theme") (synopsis "Emacs theme named after my cat") (description "My cat is named Yoshi and I was just working on a random new theme, which was new-theme for a while. I couldn't think of a name so I named it after him.") (license license:gpl3+)))) (define-public emacs-yasnippet-capf (let ((commit "40654214db7a44db3a99321447632b43a10fae57") (revision "0")) (package (name "emacs-yasnippet-capf") (version (git-version "7.0.0" revision commit)) (source (origin (uri (git-reference (url "https://github.com/elken/yasnippet-capf.git") (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 (base32 "1kywl7jblrmixr0vwycpil5hyk4p5qlc3gxg9w25xga4jj91r663")))) (propagated-inputs (list emacs-yasnippet)) (build-system emacs-build-system) (home-page "https://github.com/elken/yasnippet-capf") (synopsis "Completion-At-Point Extension for YASnippet") (description "A simple capf (Completion-At-Point Function) for completing yasnippet snippets.") (license license:gpl3)))) (define-public oni-emacs-notmuch (package (inherit notmuch) (name "oni-emacs-notmuch") (build-system emacs-build-system) (native-inputs '()) (inputs (list notmuch)) (arguments (list #:exclude #~(cons* "make-deps.el" "rstdoc.el" %default-exclude) #:include #~(cons* "notmuch-logo.svg" "notmuch-emacs-mua" %default-include) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ (chdir "emacs"))) (add-after 'chdir 'patch-paths (lambda* (#:key inputs #:allow-other-keys) (let ((notmuch (search-input-file inputs "/bin/notmuch"))) (substitute* "notmuch-lib.el" (("\"notmuch\"") (string-append "\"" notmuch "\""))))))))) (synopsis "Run Notmuch within Emacs") (description "This package provides an Emacs-based interface to the Notmuch mail system.")))