From cffd8603d108588e8796a4fe958fd80feaf9c439 Mon Sep 17 00:00:00 2001 From: Timo Wilken Date: Wed, 19 Jul 2023 23:05:02 +0200 Subject: Configure emacs-sly for Common Lisp dev --- tw/home/files/emacs-init.el | 64 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) (limited to 'tw/home') 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 "i") #'geiser-mode-switch-to-repl - (kbd "I") #'geiser-mode-switch-to-repl-and-enter + (kbd "z") #'geiser-mode-switch-to-repl + (kbd "Z") #'geiser-mode-switch-to-repl-and-enter (kbd "eb") #'geiser-eval-buffer (kbd "ef") #'geiser-eval-definition (kbd "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 "C-c") #'sly-interrupt + (kbd "z") #'sly-mrepl + (kbd "Z") #'sly-mrepl-sync + (kbd "i") #'sly-inspect + (kbd "D") #'sly-disassemble-symbol + (kbd "E") #'sly-edit-value + (kbd "eT") #'sly-list-threads ; eval requests get a new thread each + (kbd "e:") #'sly-interactive-eval + (kbd "el") #'sly-eval-last-expression + (kbd "ep") #'sly-pprint-eval-last-expression + (kbd "ef") #'sly-eval-defun + (kbd "er") #'sly-eval-region + (kbd "eF") #'sly-compile-defun + (kbd "eB") #'sly-compile-file + (kbd "eL") #'sly-compile-and-load-file + (kbd "eR") #'sly-compile-region + (kbd "eU") #'sly-undefine-function + (kbd "eM") #'sly-remove-method + (kbd "dd") #'sly-describe-symbol + (kbd "df") #'sly-describe-function + (kbd "da") #'sly-apropos + (kbd "dA") #'sly-apropos-all + (kbd "dg") #'sly-edit-definition + (kbd "dC-o") #'sly-pop-find-definition-stack + (kbd "dG") #'sly-edit-uses + (kbd "dwc") #'sly-who-calls + (kbd "dwC") #'sly-calls-who + (kbd "dwr") #'sly-who-references + (kbd "dwb") #'sly-who-binds + (kbd "dws") #'sly-who-sets + (kbd "dwm") #'sly-who-macroexpands + (kbd "dwS") #'sly-who-specializes + (kbd "dhs") #'hyperspec-lookup ; hyperspec.el is bundled with sly; opens in browser + (kbd "dhf") #'hyperspec-lookup-format + (kbd "dhm") #'hyperspec-lookup-reader-macro + (kbd "cl") #'sly-list-connections + (kbd "cn") #'sly-next-connection + (kbd "cp") #'sly-prev-connection + (kbd "m1") #'sly-expand-1 + (kbd "mm") #'sly-macroexpand-all + (kbd "mf") #'sly-format-string-expand + (kbd "tt") #'sly-trace-dialog-toggle-trace + (kbd "ts") #'sly-trace-dialog + (kbd "tf") #'sly-toggle-trace-fdefinition + (kbd "tF") #'sly-untrace-all + (kbd "ss") #'sly-stickers-dwim ; an ephemeral `print' around the thing at point + (kbd "sr") #'sly-stickers-replay + (kbd "sb") #'sly-stickers-toggle-break-on-stickers + (kbd "sf") #'sly-stickers-fetch + (kbd "sn") #'sly-stickers-next-sticker + (kbd "sp") #'sly-stickers-prev-sticker + (kbd "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) -- cgit v1.2.3