[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master efb276fef1f: New user option pcomplete-remote-file-ignore
From: |
Michael Albinus |
Subject: |
master efb276fef1f: New user option pcomplete-remote-file-ignore |
Date: |
Sun, 20 Aug 2023 03:41:21 -0400 (EDT) |
branch: master
commit efb276fef1f580eafa8458fc262a4b35eb3abd5e
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>
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'.
---
etc/NEWS | 8 ++++++++
lisp/pcomplete.el | 13 +++++++++++--
lisp/shell.el | 2 ++
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 6588299c532..aa19c785ff1 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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
+++
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index c7ec228c1db..3d8a4e7edaa 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -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."
diff --git a/lisp/shell.el b/lisp/shell.el
index 7ea9d1c2ead..b554ee5add9 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master efb276fef1f: New user option pcomplete-remote-file-ignore,
Michael Albinus <=