feature/eval: :eval now accepts functions (refactor emacs-lisp eval fn)
This commit is contained in:
parent
d64ee3c2f6
commit
4aa1427811
4 changed files with 37 additions and 25 deletions
|
@ -10,3 +10,26 @@
|
|||
(let ((buf (get-buffer "*ielm*")))
|
||||
(bury-buffer buf)
|
||||
buf)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +emacs-lisp-eval (beg end)
|
||||
"Evaluate a region and print it to the echo area (if one line long), otherwise
|
||||
to a pop up buffer."
|
||||
(require 'pp)
|
||||
(let ((result (eval (read (buffer-substring-no-properties beg end))))
|
||||
(buf (get-buffer-create "*eval*"))
|
||||
(inhibit-read-only t)
|
||||
lines)
|
||||
(with-current-buffer buf
|
||||
(read-only-mode +1)
|
||||
(setq-local scroll-margin 0)
|
||||
(emacs-lisp-mode)
|
||||
(prin1 result buf)
|
||||
(pp-buffer)
|
||||
(setq lines (count-lines (point-min) (point-max)))
|
||||
(goto-char (point-min))
|
||||
(when (<= lines 1)
|
||||
(message "%s" (buffer-substring (point-min) (point-max)))
|
||||
(kill-buffer buf)))
|
||||
(when (> lines 1)
|
||||
(doom-popup-buffer buf))))
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
:config
|
||||
(set! :repl 'emacs-lisp-mode #'+emacs-lisp/repl)
|
||||
(set! :eval 'emacs-lisp-mode #'+emacs-lisp-eval)
|
||||
(set! :rotate 'emacs-lisp-mode
|
||||
:symbols '(("t" "nil")
|
||||
("let" "let*")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue