emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] master e6689ea 12/23: company-files--directory-files: Swallow fil


From: Dmitry Gutov
Subject: [elpa] master e6689ea 12/23: company-files--directory-files: Swallow file-error
Date: Fri, 11 Nov 2016 22:21:42 +0000 (UTC)

branch: master
commit e6689ea1f54920fbca283203cc5e9f3c678280bd
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    company-files--directory-files: Swallow file-error
    
    Fixes #563.
---
 company-files.el    |   16 +++++++++-------
 test/files-tests.el |    5 +++++
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/company-files.el b/company-files.el
index 4397df9..4410281 100644
--- a/company-files.el
+++ b/company-files.el
@@ -40,13 +40,15 @@ The values should use the same format as 
`completion-ignored-extensions'."
 
 (defun company-files--directory-files (dir prefix)
   ;; Don't use directory-files. It produces directories without trailing /.
-  (let ((comp (sort (file-name-all-completions prefix dir)
-                    (lambda (s1 s2) (string-lessp (downcase s1) (downcase 
s2))))))
-    (when company-files-exclusions
-      (setq comp (company-files--exclusions-filtered comp)))
-    (if (equal prefix "")
-        (delete "../" (delete "./" comp))
-      comp)))
+  (condition-case err
+      (let ((comp (sort (file-name-all-completions prefix dir)
+                        (lambda (s1 s2) (string-lessp (downcase s1) (downcase 
s2))))))
+        (when company-files-exclusions
+          (setq comp (company-files--exclusions-filtered comp)))
+        (if (equal prefix "")
+            (delete "../" (delete "./" comp))
+          comp))
+    (file-error nil)))
 
 (defun company-files--exclusions-filtered (completions)
   (let* ((dir-exclusions (cl-delete-if-not #'company-files--trailing-slash-p
diff --git a/test/files-tests.el b/test/files-tests.el
index d45a652..254baa2 100644
--- a/test/files-tests.el
+++ b/test/files-tests.el
@@ -28,6 +28,11 @@
                     (company-files 'candidates
                                    company-dir)))))
 
+(ert-deftest company-files-candidates-normal-root ()
+  (let (company-files--completion-cache)
+    (should (member "/lost+found/"
+                    (company-files 'candidates "/")))))
+
 (ert-deftest company-files-candidates-excluding-dir ()
   (let ((company-files-exclusions '("test/"))
         company-files--completion-cache)



reply via email to

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