bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#41423: 27.0.91; eshell file completion in tramp dir is slow (3 minut


From: Gregory Heytings
Subject: bug#41423: 27.0.91; eshell file completion in tramp dir is slow (3 minutes) [regression on pretest]
Date: Fri, 28 Aug 2020 13:17:21 +0000
User-agent: Alpine 2.22 (NEB 394 2020-01-19)


A last note: this bug exists because in Emacs 27 eshell uses `pcomplete-completions-at-point': TAB is bound to `completion-at-point' and `completion-at-point-functions' is `(pcomplete-completions-at-point t)'.

In Emacs 26 eshell used the (now obsolete) `pcomplete' function: TAB was bound to `eshell-pcomplete', which was defined as follows:

(defun eshell-pcomplete (&optional interactively)
   "Eshell wrapper for `pcomplete'."
   (interactive "p")
   (setq this-command 'pcomplete)
   (condition-case nil
       (if interactively
          (call-interactively 'pcomplete)
        (pcomplete))
     (text-read-only (completion-at-point))))

IOW, pcomplete-completions-at-point was called only if `pcomplete' failed, and is now called by default. (`completion-at-point-functions' was set to `(pcomplete-completions-at-point t)', as in Emacs 27.)

A simple fix is to eval

(setq completion-at-point-functions '(pcomplete t))

after starting eshell (or to put this in one of the eshell hooks), which will restore the previous default behavior.

I have no idea how `pcomplete-completions-at-point' should be adapted to avoid this bug.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]