guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/08: gnu: Add emacs-islisp-mode.


From: guix-commits
Subject: 04/08: gnu: Add emacs-islisp-mode.
Date: Fri, 16 Dec 2022 12:36:09 -0500 (EST)

ngz pushed a commit to branch master
in repository guix.

commit b770ecb57e06b3db5c05773b9125afd61f291a40
Author: Joeke <joeke@posteo.net>
AuthorDate: Fri Dec 16 14:05:43 2022 +0100

    gnu: Add emacs-islisp-mode.
    
    * gnu/packages/emacs-xyz.scm (emacs-islisp-mode): New variable.
    
    Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
 gnu/packages/emacs-xyz.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

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")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]