Dmitry Gutov writes: > On 05.02.2022 16:38, Michael Albinus wrote: >> Dmitry Gutov writes: >> >>> Hi Michael, >> Hi Dmitry, >> >>>>>> When invoking a command that respects xref-search-program via TRAMP, >>>>>> e.g. on a remote system that doesn't have (in my case ripgrep) >>>>>> installed, an error is signalled indicating that the search query >>>>>> couldn't be executed. >>>>> >>>>> One way to work around this will probably involve an addition to >>>>> find-file-hook and some code which checks (file-remote-p >>>>> buffer-file-name) and sets xref-search-program to a particular value >>>>> buffer-locally depending on the result. >>>>> >>>>> Or an around-advice for xref-matches-in-files. >>>> There are connection-local variables exactly for this use case. >>> >>> Is there a documented way on how to make the variable's value on >>> remote hosts customizable for the user too? >> Something like >> --8<---------------cut here---------------start------------->8--- >> (connection-local-set-profile-variables >> 'remote-xref-variables >> '((xref-search-program . "/bin/grep"))) >> (with-eval-after-load 'xref >> (connection-local-set-profiles >> '(:application tramp :machine "myhost") >> 'remote-xref-variables)) >> --8<---------------cut here---------------end--------------->8--- > > Nice. Some integration with the Customize UI probably wouldn't hurt, though. > > Philip, would you like to try writing a patch along the lines of > Michael's suggestion? > > It would need to use version checks, though, given that > connection-local vars were only added in Emacs 27. The following works, with one issue: