[ESS] ESS with Corfu

Manuel Teodoro teoten @end|ng |rom gm@||@com
Tue Nov 21 16:35:25 CET 2023


Hi,

I was wondering if somebody has experience using ESS with Corfu. I have
been using Company until now and it works great out of the Box with R in
ESS. Recently I decided to try out Corfu and I like it way more for other
languages like ESS and Julia, but it has some drawbacks with R.

Basically when I am only writing code everything is alright. But when I
work with data it often gets super slow when I need to access fields inside
a data frame (both, with "$" and within "[ ]"). My work around for now is
to delay the time Corfu takes to react, so it won't get in my way. But
still, every now and then blocks the R console (inferior-ess-r-mode) with
the following message

*Error running timer ‘corfu--auto-complete-deferred’: (error "Buffer
 *ess-get-words* has no process") [3 times]*

I have a very basic configuration of Corfu and I already tried deactivating
other packages that might influence like orderless and cape, but the issue
persists. My config is this:

"""
(straight-use-package 'corfu)
  (when (require 'corfu nil :noerror)

    ;; Setup corfu for popup like completion
    (customize-set-variable 'corfu-auto-delay 0.5)
    (customize-set-variable 'corfu-cycle t)
    (customize-set-variable 'corfu-auto t)

    (global-corfu-mode 1)
    (when (require 'corfu-popupinfo nil :noerror)

      (corfu-popupinfo-mode 1)
      (eldoc-add-command #'corfu-insert)
      (keymap-set corfu-map "M-p" #'corfu-popupinfo-scroll-down)
      (keymap-set corfu-map "M-n" #'corfu-popupinfo-scroll-up)
      (keymap-set corfu-map "M-d" #'corfu-popupinfo-toggle)))
"""

I found that the only definition of * *ess-get-words** in the ESS code is
for the function *ess-get-words-from-vector *but I am not sure how corfu
interacts with it and how I could help it. Probably my problem has to do
with the timeout parameter?

Any ideas would be helpful.

Thanks!
Manuel Teodoro

	[[alternative HTML version deleted]]



More information about the ESS-help mailing list