Function: tramp-completion-handle-file-exists-p
tramp-completion-handle-file-exists-p is a byte-compiled function
defined in tramp.el.gz.
Signature
(tramp-completion-handle-file-exists-p FILENAME)
Documentation
Like file-exists-p for partial Tramp files.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
(defun tramp-completion-handle-file-exists-p (filename)
"Like `file-exists-p' for partial Tramp files."
;; We need special handling only when a method is needed. Then we
;; regard all files "/method:" or "/[method/" as existent, if
;; "method" is a valid Tramp method. And we regard all files
;; "/method:user@", "/user@" or "/[method/user@" as existent, if
;; "user@" is a valid file name completion. Host completion is
;; performed in the respective backend operation.
(or (and (cond
;; Completion styles like `flex' and `substring' check for
;; the file name "/". This does exist.
((string-equal filename "/"))
;; Is it a valid method?
((and (not (string-empty-p tramp-postfix-method-format))
(string-match
(rx
(regexp tramp-prefix-regexp)
(* (regexp tramp-remote-file-name-spec-regexp)
(regexp tramp-postfix-hop-regexp))
(group-n 9 (regexp tramp-method-regexp))
(? (regexp tramp-postfix-method-regexp))
eos)
filename))
(assoc (match-string 9 filename) tramp-methods))
;; Is it a valid user?
((string-match
(rx
(regexp tramp-prefix-regexp)
(* (regexp tramp-remote-file-name-spec-regexp)
(regexp tramp-postfix-hop-regexp))
(group-n 10
(regexp tramp-method-regexp)
(regexp tramp-postfix-method-regexp))
(group-n 11
(regexp tramp-user-regexp)
(regexp tramp-postfix-user-regexp))
eos)
filename)
(member
(match-string 11 filename)
(file-name-all-completions
"" (concat tramp-prefix-format (match-string 10 filename))))))
t)
(tramp-run-real-handler #'file-exists-p (list filename))))