From: João Távora Date: Tue, 15 Mar 2022 10:20:24 +0000 (+0000) Subject: Don't advertise didchangewatchedfiles on tramp X-Git-Tag: emacs-29.0.90~1616^2~524^2~4^2~68 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=349f6b5f7894667b5acb5a6a3dd93bcf27751c75;p=emacs.git Don't advertise didchangewatchedfiles on tramp * eglot.el (eglot--trampish-p): New helper. (eglot-client-capabilities): Use it. (eglot--uri-to-path): Use it. GitHub-reference: per https://github.com/joaotavora/eglot/issues/883 --- diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index cc0a06f4cbd..ea9299ab59e 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -644,13 +644,15 @@ treated as in `eglot-dbind'." (cl-defgeneric eglot-client-capabilities (server) "What the EGLOT LSP client supports for SERVER." - (:method (_s) + (:method (s) (list :workspace (list :applyEdit t :executeCommand `(:dynamicRegistration :json-false) :workspaceEdit `(:documentChanges t) - :didChangeWatchedFiles `(:dynamicRegistration t) + :didChangeWatchedFiles + `(:dynamicRegistration + ,(if (eglot--trampish-p s) :json-false t)) :symbol `(:dynamicRegistration :json-false) :configuration t) :textDocument @@ -1401,9 +1403,7 @@ If optional MARKER, return a marker instead" "Convert URI to file path, helped by `eglot--current-server'." (when (keywordp uri) (setq uri (substring (symbol-name uri) 1))) (let* ((server (eglot-current-server)) - (remote-prefix (and server - (file-remote-p - (project-root (eglot--project server))))) + (remote-prefix (and server (eglot--trampish-p server))) (retval (url-filename (url-generic-parse-url (url-unhex-string uri)))) ;; Remove the leading "/" for local MS Windows-style paths. (normalized (if (and (not remote-prefix) @@ -1518,6 +1518,10 @@ and just return it. PROMPT shouldn't end with a question mark." (cl-find read servers :key name :test #'equal))) (t (car servers))))) +(defun eglot--trampish-p (server) + "Tell if SERVER's project root is `file-remote-p'." + (file-remote-p (project-root (eglot--project server)))) + ;;; Minor modes ;;;