summaryrefslogtreecommitdiff
path: root/tw/home/files
diff options
context:
space:
mode:
authorTimo Wilken2023-07-19 23:05:02 +0200
committerTimo Wilken2023-07-19 23:05:02 +0200
commitcffd8603d108588e8796a4fe958fd80feaf9c439 (patch)
treeeee0ef90f83b75573e82873f3f6bc77ed4de16c4 /tw/home/files
parentc27c7d5386b179c81192b4dc12e934976ed6ca7d (diff)
Configure emacs-sly for Common Lisp dev
Diffstat (limited to 'tw/home/files')
-rw-r--r--tw/home/files/emacs-init.el64
1 files changed, 62 insertions, 2 deletions
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)