diff options
author | Joeke <joeke@posteo.net> | 2022-12-16 14:05:43 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2022-12-16 18:34:17 +0100 |
commit | b770ecb57e06b3db5c05773b9125afd61f291a40 (patch) | |
tree | 0f953595923c15881ac8dfdd6a5c58d8335690b5 | |
parent | 48a2f54dc20d4cabfede18fda4fa5267ea618725 (diff) | |
download | guix-b770ecb57e06b3db5c05773b9125afd61f291a40.tar.gz |
gnu: Add emacs-islisp-mode.
* gnu/packages/emacs-xyz.scm (emacs-islisp-mode): New variable. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
-rw-r--r-- | gnu/packages/emacs-xyz.scm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 455317b15d..9069b452ea 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -118,6 +118,7 @@ ;;; 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> ;;; ;;; This file is part of GNU Guix. ;;; @@ -195,6 +196,7 @@ #: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) @@ -13253,6 +13255,54 @@ 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) + #: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"))))))))) + (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") |