merge: pull request #5908 from ethan-leba/repl-handler
Add :send-region and :send-buffer options to `set-repl-handler!`
This commit is contained in:
commit
b88eb77605
3 changed files with 22 additions and 5 deletions
|
@ -26,7 +26,10 @@
|
|||
(when (executable-find "Microsoft.Python.LanguageServer")
|
||||
(set-eglot-client! 'python-mode '("Microsoft.Python.LanguageServer"))))
|
||||
:config
|
||||
(set-repl-handler! 'python-mode #'+python/open-repl :persist t)
|
||||
(set-repl-handler! 'python-mode #'+python/open-repl
|
||||
:persist t
|
||||
:send-region #'python-shell-send-region
|
||||
:send-buffer #'python-shell-send-buffer)
|
||||
(set-docsets! '(python-mode inferior-python-mode) "Python 3" "NumPy" "SciPy" "Pandas")
|
||||
|
||||
(set-ligatures! 'python-mode
|
||||
|
|
|
@ -73,7 +73,9 @@
|
|||
(buffer-file-name (buffer-base-buffer))))
|
||||
"emacs")
|
||||
(alist-get 'emacs-lisp-mode +eval-runners)))
|
||||
(+eval/region (point-min) (point-max))
|
||||
(if-let ((buffer-handler (plist-get (cdr (alist-get major-mode +eval-repls)) :send-buffer)))
|
||||
(funcall buffer-handler)
|
||||
(+eval/region (point-min) (point-max)))
|
||||
(quickrun))))
|
||||
|
||||
;;;###autoload
|
||||
|
@ -85,7 +87,9 @@
|
|||
(ignore-errors
|
||||
(get-buffer-window (or (+eval--ensure-in-repl-buffer)
|
||||
t))))
|
||||
(+eval/send-region-to-repl beg end))
|
||||
(funcall (or (plist-get (cdr (alist-get major-mode +eval-repls)) :send-region)
|
||||
#'+eval/send-region-to-repl)
|
||||
beg end))
|
||||
((let ((runner
|
||||
(or (alist-get major-mode +eval-runners)
|
||||
(and (require 'quickrun nil t)
|
||||
|
@ -110,7 +114,10 @@
|
|||
|
||||
;;;###autoload
|
||||
(defun +eval/buffer-or-region ()
|
||||
"Evaluate the whole buffer."
|
||||
"Evaluate the region if it's active, otherwise evaluate the whole buffer.
|
||||
|
||||
If a REPL is open the code will be evaluated in it, otherwise a quickrun
|
||||
runner will be used."
|
||||
(interactive)
|
||||
(call-interactively
|
||||
(if (use-region-p)
|
||||
|
|
|
@ -22,7 +22,14 @@ PLIST is a property list that map special attributes to this repl. These are
|
|||
recognized:
|
||||
|
||||
:persist BOOL
|
||||
If non-nil, this REPL won't be killed when its window is closed."
|
||||
If non-nil, this REPL won't be killed when its window is closed.
|
||||
:send-region FUNC
|
||||
A function that accepts a BEG and END, and sends the contents of the region
|
||||
to the REPL. Defaults to `+eval/send-region-to-repl'.
|
||||
:send-buffer FUNC
|
||||
A function of no arguments that sends the contents of the buffer to the REPL.
|
||||
Defaults to `+eval/region', which will run the :send-region specified function
|
||||
or `+eval/send-region-to-repl'."
|
||||
(declare (indent defun))
|
||||
(dolist (mode (doom-enlist modes))
|
||||
(setf (alist-get mode +eval-repls)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue