Add the guile cube with a LSP client

This commit is contained in:
Sameer Rahmani 2022-12-04 21:59:24 +00:00
parent 99fc162767
commit 02002e0dba
1 changed files with 10 additions and 24 deletions

View File

@ -28,37 +28,23 @@
(require 'fpkg)
(require 'fg42/cube)
(defcube fg42/guile-cube
"This cube adds supports for GNU Guile Scheme via =geiser-guile= library.
For more info checkout [[https://www.nongnu.org/geiser/]]"
(:title "Guile Cube"
:flag guile
"This cube adds supports for GNU Guile Scheme via =emacs-lsp-scheme= library.
For more info checkout [[https://codeberg.org/rgherdt/emacs-lsp-scheme]]"
(:title "Scheme Cube"
:flag scheme
:flag-default t)
(fg42/rainbow-delimiters-cube)
(fg42/paredit-cube)
(fpkg/use geiser-guile))
(fpkg/use lsp-scheme
:hook (scheme-mode . lsp-scheme-guile)
:config
(add-hook 'scheme-mode-hook #'lsp-scheme)
(setq lsp-scheme-implementation "guile")))
(defcube fg42/guix-cube
"This cube provides all the functionality necessary to use and develop
GNU Guix. It depends on the =fg42/guile-cube= and will execute it internally.
If you want to develop guix pass the path to the guix source via =:src=
keyword (default is =~/src/guix="
(:title "Guix Cube"
:flag guix
:flag-default t)
(let ((src (or (plist-get fg42/guix-cube-params :src)
"~/src/guix")))
(if-flag guile
(progn
(fg42/guile-cube)
(with-eval-after-load 'geiser-guile
(add-to-list 'geiser-guile-load-path src)))
(error "`fg42/guile-cube' cube in necessary to use `fg42/guix-cube'"))))
(provide 'cubes/scheme)
;;; scheme.el ends here