aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorJoeke <joeke@posteo.net>2022-12-16 14:05:43 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2022-12-16 18:34:17 +0100
commitb770ecb57e06b3db5c05773b9125afd61f291a40 (patch)
tree0f953595923c15881ac8dfdd6a5c58d8335690b5 /gnu
parent48a2f54dc20d4cabfede18fda4fa5267ea618725 (diff)
downloadguix-b770ecb57e06b3db5c05773b9125afd61f291a40.tar.gz
guix-b770ecb57e06b3db5c05773b9125afd61f291a40.zip
gnu: Add emacs-islisp-mode.
* gnu/packages/emacs-xyz.scm (emacs-islisp-mode): New variable. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/emacs-xyz.scm50
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")