summaryrefslogtreecommitdiff
path: root/gnu/packages/lisp-xyz.scm
diff options
context:
space:
mode:
authorGrigory Shepelev <shegeley@gmail.com>2025-03-11 22:00:46 +0300
committerDanny Milosavljevic <dannym@friendly-machines.com>2025-06-06 01:55:53 +0200
commit776e00a5c696fb88c8485445b6b5d229927250c3 (patch)
tree090c26a63428e7ec08a5b883c41f2f668c96e603 /gnu/packages/lisp-xyz.scm
parente4e3176a061d046e34d30a0c39a8afc913d4228d (diff)
gnu: Add sbcl-alive-lsp.
* gnu/packages/lisp-xyz.scm (sbcl-alive-lsp): New variable. Change-Id: Id9fea38e2e4e1b66688cd478a255d49d53042285
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r--gnu/packages/lisp-xyz.scm49
1 files changed, 49 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 83538d7176..4ff1a17c6e 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -31822,6 +31822,55 @@ the abstraction and portability layer as thin as possible.")
(define-public ecl-usocket
(sbcl-package->ecl-package sbcl-usocket))
+(define-public sbcl-alive-lsp
+ (package
+ (name "sbcl-alive-lsp")
+ (version "0.2.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nobody-famous/alive-lsp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "sbcl-alive-lsp" version))
+ (sha256
+ (base32 "1dmgglrg7294vx8qacc5d2hkhfrids1iacihj2l8czrvwc3i19yz"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-usocket
+ sbcl-cl-json
+ sbcl-bordeaux-threads
+ sbcl-flexi-streams))
+ (home-page "https://github.com/nobody-famous/alive-lsp")
+ (synopsis "Common Lisp Alive LSP")
+ (description "This package provides a Language Server Protocol
+implementation for use with the
+@url{https://github.com/nobody-famous/alive, Alive} Visual Studio Code
+extension.
+
+It can be used in Emacs like this:
+
+@example
+(require 'lsp)
+(defun lsp-lisp-alive-start-ls ()
+ \"Start the alive-lsp.\"
+ (interactive)
+ (when-let (((lsp--port-available \"localhost\" lsp-lisp-alive-port)))
+ (lsp-async-start-process #'ignore #'ignore
+ \"sbcl\"
+ \"--eval\"
+ \"(require :asdf)\"
+ \"--eval\"
+ \"(asdf:load-system :alive-lsp)\"
+ \"--eval\"
+ (format \"(alive/server::start :port %s)\"
+ lsp-lisp-alive-port))))
+@end example")
+ (license license:unlicense)))
+
+(define-public cl-alive-lsp
+ (sbcl-package->cl-source-package sbcl-alive-lsp))
+
(define-public sbcl-utf8-input-stream
(let ((commit "d33b57a4d439c2f0877e5513be45eb6940d92c68")
(revision "0"))