]> code.delx.au - gnu-emacs-elpa/blobdiff - company-files.el
Add company-etags-everywhere
[gnu-emacs-elpa] / company-files.el
index e44b4f5bd4f550215ba8ef68a3016026e6cf68d1..53730c6e0691e90e3ebb0c8ad67d36c6d576db51 100644 (file)
@@ -1,4 +1,4 @@
-;;; company-files.el --- company-mode completion back-end for file paths
+;;; company-files.el --- company-mode completion backend for file paths
 
 ;; Copyright (C) 2009-2011, 2014-2015  Free Software Foundation, Inc.
 
 
 ;; Copyright (C) 2009-2011, 2014-2015  Free Software Foundation, Inc.
 
     (and (cl-dolist (regexp company-files--regexps)
            (when (setq file (company-grab-line regexp 1))
              (cl-return file)))
     (and (cl-dolist (regexp company-files--regexps)
            (when (setq file (company-grab-line regexp 1))
              (cl-return file)))
-         (or (not (file-remote-p file))
-             (file-remote-p file nil t))
+         (company-files--connected-p file)
          (setq dir (file-name-directory file))
          (not (string-match "//" dir))
          (file-exists-p dir)
          (file-name-all-completions (file-name-nondirectory file) dir)
          file)))
 
          (setq dir (file-name-directory file))
          (not (string-match "//" dir))
          (file-exists-p dir)
          (file-name-all-completions (file-name-nondirectory file) dir)
          file)))
 
+(defun company-files--connected-p (file)
+  (or (not (file-remote-p file))
+      (file-remote-p file nil t)))
+
 (defvar company-files--completion-cache nil)
 
 (defun company-files--complete (prefix)
 (defvar company-files--completion-cache nil)
 
 (defun company-files--complete (prefix)
     (unless (company-file--keys-match-p key (car company-files--completion-cache))
       (dolist (file (company-files--directory-files dir file))
         (setq file (concat dir file))
     (unless (company-file--keys-match-p key (car company-files--completion-cache))
       (dolist (file (company-files--directory-files dir file))
         (setq file (concat dir file))
-        (push file candidates)
-        (when (file-directory-p file)
-          (push file directories)))
+        (when (company-files--connected-p file)
+          (push file candidates)
+          (when (file-directory-p file)
+            (push file directories))))
       (dolist (directory (reverse directories))
         ;; Add one level of children.
         (dolist (child (company-files--directory-files directory ""))
       (dolist (directory (reverse directories))
         ;; Add one level of children.
         (dolist (child (company-files--directory-files directory ""))
@@ -90,7 +94,7 @@
 
 ;;;###autoload
 (defun company-files (command &optional arg &rest ignored)
 
 ;;;###autoload
 (defun company-files (command &optional arg &rest ignored)
-  "`company-mode' completion back-end existing file names.
+  "`company-mode' completion backend existing file names.
 Completions works for proper absolute and relative files paths.
 File paths with spaces are only supported inside strings."
   (interactive (list 'interactive))
 Completions works for proper absolute and relative files paths.
 File paths with spaces are only supported inside strings."
   (interactive (list 'interactive))