tools/eval: add REPL support for +eval/buffer

This commit is contained in:
Henrik Lissner 2019-11-15 00:17:10 -05:00
parent 6536eded02
commit c2db4a8708
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 16 additions and 10 deletions

View file

@ -56,18 +56,27 @@
(defun +eval/buffer ()
"Evaluate the whole buffer."
(interactive)
(cond ((assq major-mode +eval-runners)
(+eval/region (point-min) (point-max)))
((quickrun))))
(if (or (assq major-mode +eval-runners)
(and (fboundp '+eval--ensure-in-repl-buffer)
(ignore-errors
(get-buffer-window (or (+eval--ensure-in-repl-buffer)
t)))))
(+eval/region (point-min) (point-max))
(quickrun)))
;;;###autoload
(defun +eval/region (beg end)
"Evaluate a region between BEG and END and display the output."
(interactive "r")
(let ((load-file-name buffer-file-name))
(if (and (fboundp '+eval--ensure-in-repl-buffer)
(ignore-errors
(get-buffer-window (or (+eval--ensure-in-repl-buffer)
t))))
(+eval/send-region-to-repl beg end)
(if-let (runner (cdr (assq major-mode +eval-runners)))
(funcall runner beg end)
(quickrun-region beg end))))
(quickrun-region beg end)))))
;;;###autoload
(defun +eval/line-or-region ()

View file

@ -6,10 +6,7 @@
"Evaluate selection or sends it to the open REPL, if available."
:move-point nil
(interactive "<r>")
(if (and (fboundp '+eval--ensure-in-repl-buffer)
(+eval--ensure-in-repl-buffer))
(+eval/send-region-to-repl beg end)
(+eval/region beg end)))
(+eval/region beg end))
;;;###autoload (autoload '+eval:replace-region "tools/eval/autoload/evil" nil t)
(evil-define-operator +eval:replace-region (beg end)