summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tw/home.scm1
-rw-r--r--tw/home/files/emacs-init.el64
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)