From 9af34d5a190d0bf97c7a0171ce957fdcc1952a12 Mon Sep 17 00:00:00 2001 Message-Id: <9af34d5a190d0bf97c7a0171ce957fdcc1952a12.1693957442.git.charles.b.jackson@protonmail.com> From: Charles Jackson Date: Tue, 5 Sep 2023 18:42:05 -0500 Subject: [PATCH] gnu: Add vim-vlime. * gnu/packages/vim.scm (vim-vlime): New variable. --- gnu/packages/vim.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index d58b022123..b5fb461197 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2021 Tissevert ;;; Copyright © 2021 Foo Chuan Wei ;;; Copyright © 2022, 2023 Luis Henrique Gomes Higino +;;; Copyright © 2023 Charles Jackson ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ (define-module (gnu packages vim) #:use-module ((guix licenses) #:prefix license:) + #:use-module ((gnu packages lisp-xyz) #:prefix lisp:) #:use-module (guix packages) #:use-module (guix gexp) #:use-module (guix utils) @@ -1113,6 +1115,58 @@ (define-public vim-slime to Lisp.") (license license:expat)))) +(define-public vim-vlime + ;; last tag is very outdated + (let ((commit "c1ac16c1a50bec4c30da87cd4ce2af12e26fb022") + (revision "1")) + (package + (name "vim-vlime") + (version (git-version "0.4.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vlime/vlime") + (commit commit))) + (sha256 + (base32 "1dfc1wyjsgkckrklkzvk4whaz3ahaka59rvm7rc724mabmk83pmp")) + (file-name (git-file-name name version)))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("vim/autoload" "share/vim/vimfiles/") + ("vim/doc" "share/vim/vimfiles/") + ("vim/ftplugin" "share/vim/vimfiles/") + ("vim/syntax" "share/vim/vimfiles/") + ("vim/test" "share/vim/vimfiles/") + ;; This is so the Vimscript part of Vlime can find the lisp files + ("lisp" "share/vim/") + ;; This is so lisp can load Vlime without the Vim part + ("lisp" "share/common-lisp/source/vlime")) + #:phases + (modify-phases %standard-phases + ;; Create a symbolic link to the .asd file so that + ;; (asdf:load-system "vlime") finds the system. + (add-after 'install 'link-asd + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/share/common-lisp/systems/")) + (symlink (string-append out "/share/common-lisp/source/vlime/vlime.asd") + (string-append out "/share/common-lisp/systems/vlime.asd")))))))) + (propagated-inputs + (list lisp:cl-alexandria + lisp:cl-slime-swank + lisp:cl-usocket + lisp:cl-vom + lisp:cl-yason)) + (home-page "https://github.com/vlime/vlime") + (synopsis "Common Lisp dev environment for Vim (and Neovim)") + (description "Vlime is similar to SLIME for Emacs and SLIMV for Vim. It +provides REPL integration, as well as omni-completions, cross reference +utilities, a nice inspector, debugger support, and many other great facilities +to aid you in your glorious Common Lisp hacking quest.") + (license license:expat)))) + (define-public vim-paredit ;; The last tagged version is from August 2013. (let ((commit "97d51d099523b37bb35cbcf3564cbfb46e66e4ec") base-commit: e365c26a34fa485f9af46538fcea128db681c33d -- 2.34.1