-;;; 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
(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)))
+(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)
(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 ""))
;;;###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))