A lot of things including
M-x compile work fine over tramp, but
find-tag seems to be the exception: it attempts to jump to a location in a local file.
Would someone investigate why it's doing this, and explore a possible fix?
Stack Exchange network consists of 181 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.Visit Stack Exchange
Emacs Stack Exchange is a question and answer site for those using, extending or developing Emacs. It only takes a minute to sign up.Sign up to join this community
I don't have that problem, using
find-tag over TRAMP resolves the filenames over TRAMP as well.
That said, that works only if the TAGS file contains relative paths (relative to the location of the TAGS file itself, therefore over TRAMP), and not absolute ones.
I guess it'd be better if in case of absolute filenames over TRAMP, the resolution was smart enough to consider them as absolute filenames... on the remote location.
Here's an attempt at doing just that (this redefines the function that's responsible for the path resolution):
(defun etags-file-of-tag (&optional relative) ; Doc string? (save-excursion (re-search-backward "\f\n\\([^\n]+\\),[0-9]*\n") (let ((str (convert-standard-filename (buffer-substring (match-beginning 1) (match-end 1))))) (if relative str (let ((basedir (file-truename default-directory))) (if (file-remote-p basedir) (with-parsed-tramp-file-name basedir nil (expand-file-name (apply 'tramp-make-tramp-file-name (list method user host str hop)))) (expand-file-name str basedir)))))))