From fd9bd300bec3838ee3a5b8424938c1cc5a2a781d Mon Sep 17 00:00:00 2001 From: Nikolaj Schumacher Date: Mon, 20 Apr 2009 18:27:56 +0200 Subject: [PATCH] Added Windows support to company-files. --- company-files.el | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/company-files.el b/company-files.el index fa9666df0..fa6936ee5 100644 --- a/company-files.el +++ b/company-files.el @@ -26,13 +26,20 @@ (directory-files dir nil "\\`[^.]\\|\\`.[^.]") (file-name-all-completions prefix dir)))) +(defvar company-files-regexps + (let ((begin (if (eq system-type 'windows-nt) + "[a-z][A-Z]\\" + "~?/"))) + (list (concat "\"\\(" begin "[^\"\n]*\\)") + (concat "\'\\(" begin "[^\'\n]*\\)") + (concat "\\(?:[ \t]\\|^\\)\\(" begin "[^ \t\n]*\\)")))) + (defun company-files-grab-existing-name () ;; Grab file names with spaces, only when they include quotes. - (let ((file (or (company-grab-line "\"\\(~?/[^\"\n]*\\)" 1) - (company-grab-line "\'\\(~?/[^\'\n]*\\)" 1) - (company-grab-line "[ \t\n]\\(~?/[^ \t\n]*\\)" 1))) - dir) - (and file + (let (file dir) + (and (dolist (regexp company-files-regexps) + (when (setq file (company-grab-line regexp 1)) + (return file))) (setq dir (file-name-directory file)) (file-exists-p dir) (file-name-all-completions (file-name-nondirectory file) dir) -- 2.39.2