mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Add a new user option 'ido-big-directories'.
This provides an alternative to 'ido-max-directory-size', for directories that are statically known to be too big for Ido completion. * lisp/ido.el (ido-big-directories): New user option. (ido-directory-too-big-p): Use it. * test/lisp/ido-tests.el (ido-directory-too-big-p): New unit test.
This commit is contained in:
parent
74f54af2b9
commit
f5e3c2cc98
3 changed files with 30 additions and 7 deletions
25
lisp/ido.el
25
lisp/ido.el
|
|
@ -735,6 +735,14 @@ not provide the normal completion. To show the completions, use \\[ido-toggle-i
|
|||
(integer :tag "Size in bytes" 30000))
|
||||
:group 'ido)
|
||||
|
||||
(defcustom ido-big-directories nil
|
||||
"List of directory pattern strings that should be considered big.
|
||||
Ido won't attempt to list the contents of directories matching
|
||||
any of these regular expressions when completing file names."
|
||||
:type '(repeat regexp)
|
||||
:group 'ido
|
||||
:version "27.1")
|
||||
|
||||
(defcustom ido-rotate-file-list-default nil
|
||||
"Non-nil means that Ido will always rotate file list to get default in front."
|
||||
:type 'boolean
|
||||
|
|
@ -1743,13 +1751,16 @@ is enabled then some keybindings are changed in the keymap."
|
|||
;; Return t if dir is a directory, but too big to show
|
||||
;; Do not check for non-readable directories via tramp, as this causes a premature
|
||||
;; connect on incomplete tramp paths (after entering just method:).
|
||||
(let ((ido-enable-tramp-completion nil))
|
||||
(and (numberp ido-max-directory-size)
|
||||
(ido-final-slash dir)
|
||||
(not (ido-is-unc-host dir))
|
||||
(file-directory-p dir)
|
||||
(> (file-attribute-size (file-attributes (file-truename dir)))
|
||||
ido-max-directory-size))))
|
||||
(let ((ido-enable-tramp-completion nil)
|
||||
(case-fold-search nil))
|
||||
(or (seq-some (lambda (regexp) (string-match-p regexp dir))
|
||||
ido-big-directories)
|
||||
(and (numberp ido-max-directory-size)
|
||||
(ido-final-slash dir)
|
||||
(not (ido-is-unc-host dir))
|
||||
(file-directory-p dir)
|
||||
(> (file-attribute-size (file-attributes (file-truename dir)))
|
||||
ido-max-directory-size)))))
|
||||
|
||||
(defun ido-set-current-directory (dir &optional subdir no-merge)
|
||||
;; Set ido's current directory to DIR or DIR/SUBDIR
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue