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?
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)))))))