emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 5b11751: Improve file name completion in file and d


From: Noam Postavsky
Subject: [Emacs-diffs] master 5b11751: Improve file name completion in file and directory widgets (Bug#7779)
Date: Fri, 6 Sep 2019 17:16:02 -0400 (EDT)

branch: master
commit 5b117511aa1b5c451773891b505a7098a67f9532
Author: Mauro Aranda <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Improve file name completion in file and directory widgets (Bug#7779)
    
    * lisp/wid-edit.el (widget 'file, widget 'directory): Respect the option
    read-file-name-completion-ignore-case.
    (widget 'directory): Filter the file names, to only perform directory name
    completion.
---
 lisp/wid-edit.el | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index fdc1629..9bc7a07 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -3083,7 +3083,9 @@ as the value."
 (define-widget 'file 'string
   "A file widget.
 It reads a file name from an editable text field."
-  :completions #'completion-file-name-table
+  :completions (completion-table-case-fold
+                #'completion-file-name-table
+                (not read-file-name-completion-ignore-case))
   :prompt-value 'widget-file-prompt-value
   :format "%{%t%}: %v"
   ;; Doesn't work well with terminating newline.
@@ -3118,6 +3120,11 @@ It reads a file name from an editable text field."
 (define-widget 'directory 'file
   "A directory widget.
 It reads a directory name from an editable text field."
+  :completions (apply-partially #'completion-table-with-predicate
+                                (completion-table-case-fold
+                                 #'completion-file-name-table
+                                 (not read-file-name-completion-ignore-case))
+                                #'directory-name-p 'strict)
   :tag "Directory")
 
 (defvar widget-symbol-prompt-value-history nil



reply via email to

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