update packages
This commit is contained in:
@@ -72,6 +72,7 @@
|
||||
(declare-function ess-get-process "ess-inf")
|
||||
(declare-function ess-get-process-variable "ess-inf")
|
||||
(declare-function ess-get-words-from-vector "ess-inf")
|
||||
(declare-function ess-get-words-from-vector--foreground "ess-inf")
|
||||
(declare-function ess-process-get "ess-inf")
|
||||
(declare-function ess-process-live-p "ess-inf")
|
||||
(declare-function ess-process-put "ess-inf")
|
||||
@@ -88,6 +89,7 @@
|
||||
(declare-function ess-r-package--all-source-dirs "ess-r-package")
|
||||
(declare-function ess-r-package-name "ess-r-package")
|
||||
(declare-function ess-r-package-source-dirs "ess-r-package")
|
||||
(declare-function ess-roxy--region-p "ess-roxy")
|
||||
|
||||
;; Do not require tramp at runtime. It is expensive to load. Instead,
|
||||
;; guard calls with (require 'tramp) and silence the byte compiler
|
||||
@@ -319,20 +321,28 @@ command conforms to VISIBLY."
|
||||
(defun ess-process-buffer-substring (process start end)
|
||||
(ess--run-presend-hooks process (buffer-substring-no-properties start end)))
|
||||
|
||||
;; Declare globally so that the bytecode compiler let-binds it
|
||||
;; properly
|
||||
(defvar-local ess-r-evaluation-env nil)
|
||||
|
||||
(defun ess-tracebug-send-region (process start end &optional visibly message type)
|
||||
"Send region to process adding source references as specified
|
||||
by `ess-inject-source' variable."
|
||||
(ess-eval-region--normalise-region start end)
|
||||
(let* ((inject-p (cond ((eq type 'function)
|
||||
;; Disable evaluation env if we're sending a roxy region. This is
|
||||
;; not the ideal place to do this.
|
||||
(let* ((ess-r-evaluation-env (unless (ess-roxy--region-p start end)
|
||||
(ess-r-get-evaluation-env)))
|
||||
(inject-p (cond ((eq type 'function)
|
||||
ess-inject-source)
|
||||
((eq type 'buffer)
|
||||
(or (eq ess-inject-source t)
|
||||
(eq ess-inject-source 'function-and-buffer)))
|
||||
(t (or (eq ess-inject-source t)
|
||||
;; We need to always inject with namespaced
|
||||
;; evaluation (fixme: not right place for
|
||||
;; this).
|
||||
(ess-r-get-evaluation-env)))))
|
||||
((eq ess-inject-source t))
|
||||
;; We need to always inject with namespaced
|
||||
;; evaluation (FIXME: not right place for
|
||||
;; this).
|
||||
(ess-r-evaluation-env)))
|
||||
(ess--dbg-del-empty-p (unless inject-p ess--dbg-del-empty-p))
|
||||
(string (if inject-p
|
||||
(ess-make-source-refd-command start end visibly process)
|
||||
@@ -572,12 +582,13 @@ can use `ess--busy-slash', `ess--busy-B',`ess--busy-stars',
|
||||
(defcustom inferior-ess-replace-long+ t
|
||||
"Determines if ESS replaces long + sequences in output.
|
||||
If 'strip, remove all such instances. Otherwise, if non-nil, '+
|
||||
+ + + ' containing more than 4 + is replaced by
|
||||
`ess-long+replacement'."
|
||||
+ + + ' containing 3 or more + is replaced by
|
||||
`ess-long+replacement'.
|
||||
This variable can be process-local but not buffer-local."
|
||||
:group 'ess-tracebug
|
||||
:type '(choice (const nil :tag "No replacement")
|
||||
(const 'strip :tag "Replace all")
|
||||
(const t :tag "Replace 4 or more +")))
|
||||
(const t :tag "Replace 3 or more +")))
|
||||
|
||||
(defvar ess-long+replacement ". + "
|
||||
"Replacement used for long + prompt.
|
||||
@@ -1285,13 +1296,16 @@ ends with an incomplete message."
|
||||
(setq out :incomplete))))
|
||||
out)))
|
||||
|
||||
(defun ess--replace-long+-in-prompt (prompt is-final)
|
||||
(defun ess--replace-long+-in-prompt (proc prompt is-final)
|
||||
"Replace long + + + in PROMPT based on `inferior-ess-replace-long+' value.
|
||||
If IS-FINAL means that PROMPT occurs at the end of the process
|
||||
chunk. If non-nil, special care is taken not to drop last '+'
|
||||
value as it might be a continuation prompt."
|
||||
;; see #576 for interesting input examples
|
||||
(let ((len (length prompt)))
|
||||
(let ((len (length prompt))
|
||||
(inferior-ess-replace-long+ (buffer-local-value
|
||||
'inferior-ess-replace-long+
|
||||
(process-buffer proc))))
|
||||
(if (or (null inferior-ess-replace-long+)
|
||||
(< len 2))
|
||||
prompt
|
||||
@@ -1391,7 +1405,7 @@ prompts."
|
||||
(setq pos2 tpos)
|
||||
(setq prompt (let ((prompt (buffer-substring pos1 pos2)))
|
||||
(if do-clean
|
||||
(ess--replace-long+-in-prompt prompt (eq pos2 (point-max)))
|
||||
(ess--replace-long+-in-prompt proc prompt (eq pos2 (point-max)))
|
||||
prompt)))
|
||||
;; Cannot bypass this trivial call to comint-output-filter because
|
||||
;; external tools could rely on prompts (org-babel [#598] for
|
||||
@@ -2699,7 +2713,7 @@ for signature and trace it with browser tracer."
|
||||
(ess-force-buffer-current "Process to use: ")
|
||||
(let* ((tbuffer (get-buffer-create " *ess-command-output*")) ;; output buffer name is hard-coded in ess-inf.el
|
||||
(pkg (ess-r-package-name))
|
||||
(all-functions (ess-get-words-from-vector
|
||||
(all-functions (ess-get-words-from-vector--foreground
|
||||
(if pkg
|
||||
(format ".ess_all_functions(c('%s'))\n" pkg)
|
||||
".ess_all_functions()\n")))
|
||||
|
||||
Reference in New Issue
Block a user