diff --git a/modules/home/users/msyds/emacs/init.el b/modules/home/users/msyds/emacs/init.el index 987bc83..de541d1 100755 --- a/modules/home/users/msyds/emacs/init.el +++ b/modules/home/users/msyds/emacs/init.el @@ -71,6 +71,7 @@ syd/lsp syd/custom syd/transient + syd/scheme syd/bookmark syd/haskell syd/qbe)) diff --git a/modules/home/users/msyds/emacs/lisp/syd/scheme.el b/modules/home/users/msyds/emacs/lisp/syd/scheme.el new file mode 100644 index 0000000..fce39ee --- /dev/null +++ b/modules/home/users/msyds/emacs/lisp/syd/scheme.el @@ -0,0 +1,27 @@ +;;; -*- lexical-binding: t; -*- + +(require 'syd/base) +(require 'syd/handle) +(require 'syd/popups) +(require 'syd/leader) + +(use-package geiser + :config + (add-hook 'scheme-mode-hook #'syd-lisp-mode) + (defun syd-scheme-eval-region (beg end) + (geiser-eval-region beg end)) + (defun syd-scheme-doc () + (interactive) + (geiser-doc-symbol-at-point) + (geiser-doc--buffer)) + (syd-handle '(scheme-mode) + :docs #'syd-scheme-doc + :eval-region #'syd-scheme-eval-region + :load-buffer #'geiser-eval-buffer) + (syd-push + shackle-rules + `("*Geiser Documentation*" ,@syd-help-popup-options))) + +(use-package geiser-guile) + +(provide 'syd/scheme)