diff options
author | Timo Wilken | 2023-07-19 23:05:02 +0200 |
---|---|---|
committer | Timo Wilken | 2023-07-19 23:05:02 +0200 |
commit | cffd8603d108588e8796a4fe958fd80feaf9c439 (patch) | |
tree | eee0ef90f83b75573e82873f3f6bc77ed4de16c4 | |
parent | c27c7d5386b179c81192b4dc12e934976ed6ca7d (diff) |
Configure emacs-sly for Common Lisp dev
-rw-r--r-- | tw/home.scm | 1 | ||||
-rw-r--r-- | tw/home/files/emacs-init.el | 64 |
2 files changed, 63 insertions, 2 deletions
diff --git a/tw/home.scm b/tw/home.scm index 596eb55b..754fb008 100644 --- a/tw/home.scm +++ b/tw/home.scm @@ -399,6 +399,7 @@ auto-expand-secmem ;; Emacs language modes emacs-flymake-collection emacs-geiser emacs-geiser-guile + emacs-sly emacs-cmake-mode emacs-gnuplot emacs-graphviz-dot-mode diff --git a/tw/home/files/emacs-init.el b/tw/home/files/emacs-init.el index 0e41607b..3aba7e3a 100644 --- a/tw/home/files/emacs-init.el +++ b/tw/home/files/emacs-init.el @@ -386,8 +386,8 @@ (geiser-repl-mode . tw/resize-repl-window)) :config (evil-define-key '(normal visual) scheme-mode-map - (kbd "<localleader>i") #'geiser-mode-switch-to-repl - (kbd "<localleader>I") #'geiser-mode-switch-to-repl-and-enter + (kbd "<localleader>z") #'geiser-mode-switch-to-repl + (kbd "<localleader>Z") #'geiser-mode-switch-to-repl-and-enter (kbd "<localleader>eb") #'geiser-eval-buffer (kbd "<localleader>ef") #'geiser-eval-definition (kbd "<localleader>er") #'geiser-eval-region @@ -397,6 +397,66 @@ (use-package geiser-guile :after (geiser)) +(use-package sly + :after (evil) + :hook (lisp-mode) ; `common-lisp-mode' is `lisp-mode'. + :config + (evil-define-key '(normal visual) lisp-mode-map + (kbd "<localleader>C-c") #'sly-interrupt + (kbd "<localleader>z") #'sly-mrepl + (kbd "<localleader>Z") #'sly-mrepl-sync + (kbd "<localleader>i") #'sly-inspect + (kbd "<localleader>D") #'sly-disassemble-symbol + (kbd "<localleader>E") #'sly-edit-value + (kbd "<localleader>eT") #'sly-list-threads ; eval requests get a new thread each + (kbd "<localleader>e:") #'sly-interactive-eval + (kbd "<localleader>el") #'sly-eval-last-expression + (kbd "<localleader>ep") #'sly-pprint-eval-last-expression + (kbd "<localleader>ef") #'sly-eval-defun + (kbd "<localleader>er") #'sly-eval-region + (kbd "<localleader>eF") #'sly-compile-defun + (kbd "<localleader>eB") #'sly-compile-file + (kbd "<localleader>eL") #'sly-compile-and-load-file + (kbd "<localleader>eR") #'sly-compile-region + (kbd "<localleader>eU") #'sly-undefine-function + (kbd "<localleader>eM") #'sly-remove-method + (kbd "<localleader>dd") #'sly-describe-symbol + (kbd "<localleader>df") #'sly-describe-function + (kbd "<localleader>da") #'sly-apropos + (kbd "<localleader>dA") #'sly-apropos-all + (kbd "<localleader>dg") #'sly-edit-definition + (kbd "<localleader>dC-o") #'sly-pop-find-definition-stack + (kbd "<localleader>dG") #'sly-edit-uses + (kbd "<localleader>dwc") #'sly-who-calls + (kbd "<localleader>dwC") #'sly-calls-who + (kbd "<localleader>dwr") #'sly-who-references + (kbd "<localleader>dwb") #'sly-who-binds + (kbd "<localleader>dws") #'sly-who-sets + (kbd "<localleader>dwm") #'sly-who-macroexpands + (kbd "<localleader>dwS") #'sly-who-specializes + (kbd "<localleader>dhs") #'hyperspec-lookup ; hyperspec.el is bundled with sly; opens in browser + (kbd "<localleader>dhf") #'hyperspec-lookup-format + (kbd "<localleader>dhm") #'hyperspec-lookup-reader-macro + (kbd "<localleader>cl") #'sly-list-connections + (kbd "<localleader>cn") #'sly-next-connection + (kbd "<localleader>cp") #'sly-prev-connection + (kbd "<localleader>m1") #'sly-expand-1 + (kbd "<localleader>mm") #'sly-macroexpand-all + (kbd "<localleader>mf") #'sly-format-string-expand + (kbd "<localleader>tt") #'sly-trace-dialog-toggle-trace + (kbd "<localleader>ts") #'sly-trace-dialog + (kbd "<localleader>tf") #'sly-toggle-trace-fdefinition + (kbd "<localleader>tF") #'sly-untrace-all + (kbd "<localleader>ss") #'sly-stickers-dwim ; an ephemeral `print' around the thing at point + (kbd "<localleader>sr") #'sly-stickers-replay + (kbd "<localleader>sb") #'sly-stickers-toggle-break-on-stickers + (kbd "<localleader>sf") #'sly-stickers-fetch + (kbd "<localleader>sn") #'sly-stickers-next-sticker + (kbd "<localleader>sp") #'sly-stickers-prev-sticker + (kbd "<localleader>ta") #'sly-autodoc-mode) + :custom + (sly-mrepl-history-file-name (tw/xdg-emacs-subdir 'data "sly-mrepl-history"))) + ;; Org-mode (use-package org :commands (org-mode) |