]> code.delx.au - gnu-emacs-elpa/blobdiff - company-files.el
company-search-candidates: Mention company-search-regexp-function
[gnu-emacs-elpa] / company-files.el
index 7cfc500751a1c22a4eacc74afa0a29753b893b73..53730c6e0691e90e3ebb0c8ad67d36c6d576db51 100644 (file)
@@ -1,6 +1,6 @@
-;;; 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  Free Software Foundation, Inc.
+;; Copyright (C) 2009-2011, 2014-2015  Free Software Foundation, Inc.
 
 ;; Author: Nikolaj Schumacher
 
 
 ;; Author: Nikolaj Schumacher
 
     (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)))
+         (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 ""))
@@ -88,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))