tools/eval: associate plist with repl handlers

Also consolidates all REPLs (opened through the :tools eval module)
under one popup rule, which inhibits ESC from prematurely closing
them (#1944), and cleans up after their buffers *only* if their handlers
weren't specified to :persist, e.g.

  (set-repl-handler! 'some-mode #'some-repl-handler :persist t)

Also standardized ESS's REPL commands.
This commit is contained in:
Henrik Lissner 2019-10-23 21:39:19 -04:00
parent e6094f262f
commit 0b67251159
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
9 changed files with 71 additions and 47 deletions

View file

@ -1,11 +1,15 @@
;;; lang/ess/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +ess-repl-buffer (&optional start-args)
"Returns an R/Julia REPL buffer."
(defun +ess/open-julia-repl (&optional arg)
"Open an ESS Julia REPL"
(interactive "P")
(pcase major-mode
('ess-r-mode (run-ess-r start-args))
('ess-julia-mode (run-ess-julia start-args))
(_ (inferior-ess nil nil t)))
(run-ess-julia arg)
(current-buffer))
;;;###autoload
(defun +ess/open-r-repl (&optional arg)
"Open an ESS R REPL"
(interactive "P")
(run-ess-r arg)
(current-buffer))