From 19437af399658570116e403ec85162369f7db6b0 Mon Sep 17 00:00:00 2001 From: Joeke Date: Fri, 16 Dec 2022 14:05:43 +0100 Subject: [PATCH] gnu: Add emacs-islisp-mode --- gnu/packages/emacs-xyz.scm | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 0d11c59b48..2322194d6f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -118,6 +118,7 @@ ;;; Copyright © 2022 Hilton Chain ;;; Copyright © 2022 Nicolas Graves ;;; Copyright © 2022 Thiago Jung Bauermann +;;; Copyright © 2022 Joeke de Graaf ;;; ;;; This file is part of GNU Guix. ;;; @@ -13125,6 +13126,57 @@ (define-public emacs-helm-make 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) + (inputs (list eisl)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-eisl-variables + (lambda* (#:key inputs outputs #:allow-other-keys) + (emacs-substitute-variables + "implementations/easy-islisp/easy-islisp.el" + ("easy-islisp-executable" (search-input-file + inputs "/bin/eisl")) + ("easy-islisp-library-directory" `(if (getenv + "EASY_ISLISP") + (getenv + "EASY_ISLISP") + ,(search-input-directory + inputs + "share/eisl/library")))))) + (add-after 'install 'install-additional-directories + (lambda _ + (let ((site-lisp-dir (elpa-directory #$output))) + (for-each (lambda (dir) + (with-directory-excursion dir + (for-each (lambda (file) + (install-file file + site-lisp-dir)) + (find-files "." + "\\.(lsp|el)$")))) + '("advance" "implementations")))))))) + (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") -- 2.37.2