diff --git a/modules/lang/scheme/config.el b/modules/lang/scheme/config.el index dc1357fd4..2ac7f0e4b 100644 --- a/modules/lang/scheme/config.el +++ b/modules/lang/scheme/config.el @@ -10,7 +10,7 @@ :init (setq geiser-autodoc-identifier-format "%s → %s" geiser-repl-current-project-function #'doom-project-root) - + (after! scheme ; built-in (set-repl-handler! 'scheme-mode #'+scheme/open-repl) (set-eval-handler! 'scheme-mode #'geiser-eval-region) @@ -22,34 +22,39 @@ '(("^\\*[gG]eiser \\(dbg\\|xref\\|messages\\)\\*$" :slot 1 :vslot -1) ("^\\*Geiser documentation\\*$" :slot 2 :vslot 2 :select t :size 0.35) ("^\\* [A-Za-z0-9_-]+ REPL \\*" :size 0.3 :quit nil :ttl nil))) - + (map! :localleader - :map scheme-mode-map - "'" #'geiser-mode-switch-to-repl - "\"" #'geiser-connect - "[" #'geiser-squarify - "\\" #'geiser-insert-lambda - "s" #'geiser-set-scheme - (:prefix ("e" . "eval") - "b" #'geiser-eval-buffer - "B" #'geiser-eval-buffer-and-go - "e" #'geiser-eval-last-sexp - "d" #'geiser-eval-definition - "D" #'geiser-eval-definition-and-go - "r" #'geiser-eval-region - "R" #'geiser-eval-region-and-go) - (:prefix ("h" . "help") - "d" #'geiser-autodoc - "<" #'geiser-xref-callers - ">" #'geiser-xref-callees - "i" #'geiser-doc-look-up-manual) - (:prefix ("r" . "repl") - "b" #'geiser-switch-to-repl - "q" #'geiser-repl-exit - "l" #'geiser-load-current-buffer - "r" #'geiser-restart-repl - "R" #'geiser-reload - "c" #'geiser-repl-clear-buffer))) + (:map (scheme-mode-map geiser-repl-mode-map) + :desc "Toggle REPL" "'" #'switch-to-geiser + :desc "Connect to external Scheme" "\"" #'geiser-connect + :desc "Toggle type of brackets" "[" #'geiser-squarify + :desc "Insert lambda" "\\" #'geiser-insert-lambda + :desc "Set Scheme implementation" "s" #'geiser-set-scheme + :desc "Reload Geiser buffers+REPLs" "R" #'geiser-reload + (:prefix ("h" . "help") + :desc "Show callers of " "<" #'geiser-xref-callers + :desc "Show callees of " ">" #'geiser-xref-callees + :desc "Toggle autodoc mode" "a" #'geiser-autodoc-mode + :desc "Show autodoc of " "s" #'geiser-autodoc-show + :desc "Search manual for " "m" #'geiser-doc-look-up-manual + :desc "Show docstring of " "." #'geiser-doc-symbol-at-point) + (:prefix ("r" . "repl") + :desc "Load file into REPL" "f" #'geiser-load-file + :desc "Restart REPL" "r" #'geiser-restart-repl)) + (:map scheme-mode-map + (:prefix ("e" . "eval") + :desc "Eval buffer" "b" #'geiser-eval-buffer + :desc "Eval buffer and go to REPL" "B" #'geiser-eval-buffer-and-go + :desc "Eval last sexp" "e" #'geiser-eval-last-sexp + :desc "Eval definition" "d" #'geiser-eval-definition + :desc "Eval defn. and go to REPL" "D" #'geiser-eval-definition-and-go + :desc "Eval region" "r" #'geiser-eval-region + :desc "Eval region and go to REPL" "R" #'geiser-eval-region-and-go) + (:prefix ("r" . "repl") + :desc "Load current buffer in REPL" "b" #'geiser-load-current-buffer)) + (:map geiser-repl-mode-map + :desc "Clear REPL buffer" "c" #'geiser-repl-clear-buffer + :desc "Quit REPL" "q" #'geiser-repl-exit))) (use-package! macrostep-geiser @@ -58,9 +63,9 @@ :init (map! :after geiser :localleader - :map scheme-mode-map - :desc "Expand macro" "m" #'macrostep-geiser - :desc "Expand all macros recursively" "M" #'macrostep-geiser-all)) + :map (scheme-mode-map geiser-repl-mode-map) + :desc "Expand macro by one step" "m" #'macrostep-expand + :desc "Recursively expand macro" "M" #'macrostep-geiser-expand-all)) (use-package! flycheck-guile