[ESS] ess completion
Stephen Eglen
S.J.Eglen at damtp.cam.ac.uk
Thu Jun 12 14:49:15 CEST 2008
Dear Steve,
copying this to ess-help.
The trace you've sent suggests that XEmacs is complaining that
comint-bol has not been given any arguments (the arg is optional in
Emacs). I do not have XEmacs here; please can you send me the output of
"C-h f comint-bol" so that I can check. Either that or please put the
following in your .emacs (after the place where ESS has been loaded) and
try again.
(defun ess-R-complete-object-name ()
"Completion in R via R's completion utilities (formerly 'rcompgen').
To be used instead of ESS' completion engine for R versions >= 2.5.0
(or slightly older versions of R with an attached and working
'rcompgen' package)."
(interactive)
(ess-make-buffer-current)
(let* ((comint-completion-addsuffix nil)
(beg-of-line (save-excursion (comint-bol nil) (point)))
(end-of-line (point-at-eol))
(line-buffer (buffer-substring beg-of-line end-of-line))
(NS (if (ess-current-R-at-least '2.7.0)
"utils:::"
"rcompgen:::"))
(token-string ;; setup, including computation of the token
(progn
(ess-command
(format (concat NS ".assignLinebuffer('%s')\n") line-buffer))
(ess-command (format (concat NS ".assignEnd(%d)\n")
(- (point) beg-of-line)))
(car (ess-get-words-from-vector
(concat NS ".guessTokenFromLine()\n")))))
(possible-completions ;; compute and retrieve possible completions
(progn
(ess-command (concat NS ".completeToken()\n"))
(ess-get-words-from-vector
(concat NS ".retrieveCompletions()\n")))))
(or (comint-dynamic-simple-complete token-string
possible-completions)
'none)))
(Please also tell us what R version and what you typed in *R* to get the
error).
Thanks, Stephen
Steve Goldstein <sgoldstein at wisc.edu> wrote:
> Hello Stephen,
>
> In reply to the Nabble ess-help thread about completion...
>
> When I attempt to complete an R object by hitting TAB, I encounter an
> error. File completion works.
>
> I am using ess-5.3.7 on linux.
>
> Thanks,
> Steve Goldstein
>
> ===================================================
> Backtrace:
>
> Debugger entered--Lisp error: (wrong-number-of-arguments comint-bol 0)
> comint-bol()
> (save-excursion (comint-bol) (point))
> (let* ((comint-completion-addsuffix nil) (beg-of-line ...)
> (end-of-line ...) (line-buffer ...) (NS ...) (token-string ...)
> (possible-completions ...)) (or (comint-dynamic-simple-complete
> token-string possible-completions) (quote none)))
> ess-R-complete-object-name()
> (if ess-use-R-completion (ess-R-complete-object-name)
> (ess-internal-complete-object-name listcomp))
> ess-complete-object-name()
> run-hook-with-args-until-success(ess-complete-object-name)
> #<compiled-function nil "...(4)" [run-hook-with-args-until-success
> comint-dynamic-complete-functions] 2
> ("/usr/share/xemacs/xemacs-packages/lisp/xemacs-base/comint.elc"
> . 52969) nil>()
> call-interactively(comint-dynamic-complete)
>
More information about the ESS-help
mailing list