feat(emacs): handle eval

This commit is contained in:
2026-01-09 09:16:16 -07:00
parent fc1554f55c
commit d4b1621d04
2 changed files with 39 additions and 1 deletions

View File

@@ -46,9 +46,17 @@
(and (get-buffer-window-list buffer)
buffer)))
(defun syd-elisp-eval-region (beg end)
(eval-region beg end t))
(defun syd-elisp-load-buffer ()
(eval-buffer))
(syd-handle '(emacs-lisp-mode lisp-interaction-mode)
:docs #'syd-elisp-handle-docs
:repl #'syd-elisp-open-repl)
:repl #'syd-elisp-open-repl
:eval-region #'syd-elisp-eval-region
:load-buffer #'syd-elisp-load-buffer)
(syd-add-hook '(emacs-lisp-mode-hook lisp-interaction-mode-hook)
#'syd-lisp-mode)

View File

@@ -102,6 +102,28 @@
(evil-append-line 1)))
(error "Couldn't open a REPL for %S" major-mode)))
;;; Eval handler
(syd-define-handler-type eval-region (beg end)
"Eval region.")
(evil-define-operator syd-eval-operator (beg end)
"Evaluate selection."
:move-point nil
(interactive "<r>")
(syd-handle-eval-region beg end))
;;; Load buffer handler
(syd-define-handler-type load-buffer ()
"Load buffer/file")
(defun syd-handle-load-buffer* ()
(interactive)
(syd-handle-load-buffer))
;;; Keybinds
@@ -109,6 +131,14 @@
:states '(motion normal)
"K" #'syd-handle-docs*)
(general-def
:states '(normal visual)
"gr" #'syd-eval-operator)
(general-def
:states 'normal
"gR" #'syd-handle-load-buffer*)
(general-def
:prefix-map 'syd-leader-open-map
"r" #'syd-handle-repl*)