1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

New user option pcomplete-remote-file-ignore

* etc/NEWS: Mention pcomplete-remote-file-ignore.

* lisp/pcomplete.el (pcomplete-remote-file-ignore):
New user option.
(pcomplete--entries): Use it.

* lisp/shell.el (shell-completion-vars):
Set 'pcomplete-remote-file-ignore'.
This commit is contained in:
Michael Albinus 2023-08-20 09:41:07 +02:00
parent fd1479a0af
commit efb276fef1
3 changed files with 21 additions and 2 deletions

View file

@ -357,6 +357,14 @@ to load the edited aliases.
Running 'rgrep' in Eshell now uses the Emacs grep facility instead of
calling external rgrep.
** Pcomplete
---
*** New user option 'pcomplete-remote-file-ignore'.
When this option is non-nil, remote file names are not completed by
Pcomplete. Packages, like 'shell-mode', could set this in order to
suppress remote file name completion at all.
** Shell Mode
+++

View file

@ -138,6 +138,11 @@
"A regexp of names to be disregarded during directory completion."
:type '(choice regexp (const :tag "None" nil)))
(defcustom pcomplete-remote-file-ignore nil
"Whether to ignore remote file names."
:version "30.1"
:type 'boolean)
(define-obsolete-variable-alias 'pcomplete-ignore-case 'completion-ignore-case
"28.1")
@ -924,7 +929,10 @@ this is `comint-dynamic-complete-functions'."
(sort comps pcomplete-compare-entry-function)))
,@(cdr (completion-file-name-table s p a)))
(let ((completion-ignored-extensions nil)
(completion-ignore-case completion-ignore-case))
(completion-ignore-case completion-ignore-case)
(tramp-mode (and tramp-mode (not pcomplete-remote-file-ignore)))
(non-essential (not (file-remote-p s)))
(minibuffer-completing-file-name (file-remote-p s))))
(completion-table-with-predicate
#'comint-completion-file-name-table pred 'strict s p a))))))
@ -1322,7 +1330,8 @@ If specific documentation can't be given, be generic."
"Sort and remove multiples in SEQUENCE.
Sequence should be a vector or list of strings."
(sort (seq-uniq sequence) #'string-lessp))
(define-obsolete-function-alias 'pcomplete-uniqify-list #'pcomplete-uniquify-list "27.1")
(define-obsolete-function-alias
'pcomplete-uniqify-list #'pcomplete-uniquify-list "27.1")
(defun pcomplete-process-result (cmd &rest args)
"Call CMD using `call-process' and return the simplest result."

View file

@ -595,6 +595,8 @@ Shell buffers. It implements `shell-completion-execonly' for
;; Don't use pcomplete's defaulting mechanism, rely on
;; shell-dynamic-complete-functions instead.
(setq-local pcomplete-default-completion-function #'ignore)
;; Do not expand remote file names.
(setq-local pcomplete-remote-file-ignore t)
(setq-local comint-input-autoexpand shell-input-autoexpand)
;; Not needed in shell-mode because it's inherited from comint-mode, but
;; placed here for read-shell-command.