|
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.
[Prev in Thread] | Current Thread | [Next in Thread] |