[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot b06589b 09/10: Fix #679: correct path/URI when us
From: |
Stefan Monnier |
Subject: |
[elpa] externals/eglot b06589b 09/10: Fix #679: correct path/URI when using TRAMP from MS Windows |
Date: |
Wed, 19 May 2021 21:52:14 -0400 (EDT) |
branch: externals/eglot
commit b06589b393844c31c17962497e621a72e0e78e01
Author: Jim Porter <826865+jimporter@users.noreply.github.com>
Commit: GitHub <noreply@github.com>
Fix #679: correct path/URI when using TRAMP from MS Windows
Co-authored-by: João Távora <joaotavora@gmail.com>
* eglot.el (eglot--connect): Ensure drive letter doesn't sneak into
rootPath. (eglot--path-to-uri): Only add a leading "/" for local MS
Windows paths. (eglot--uri-to-path): Only remove leading "/" from
local MS Windows paths.
---
eglot.el | 35 +++++++++++++++++++++--------------
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git a/eglot.el b/eglot.el
index fc82367..f17e795 100644
--- a/eglot.el
+++ b/eglot.el
@@ -1046,8 +1046,8 @@ This docstring appeases checkdoc, that's all."
(emacs-pid))
;; Maybe turn trampy `/ssh:foo@bar:/path/to/baz.py'
;; into `/path/to/baz.py', so LSP groks it.
- :rootPath (expand-file-name
- (file-local-name default-directory))
+ :rootPath (file-local-name
+ (expand-file-name default-directory))
:rootUri (eglot--path-to-uri default-directory)
:initializationOptions
(eglot-initialization-options
server)
@@ -1274,24 +1274,31 @@ If optional MARKER, return a marker instead"
(defun eglot--path-to-uri (path)
"URIfy PATH."
- (concat "file://" (if (eq system-type 'windows-nt) "/")
- (url-hexify-string
- ;; Again watch out for trampy paths.
- (directory-file-name (file-local-name (file-truename path)))
- eglot--uri-path-allowed-chars)))
+ (let ((truepath (file-truename path)))
+ (concat "file://"
+ ;; Add a leading "/" for local MS Windows-style paths.
+ (if (and (eq system-type 'windows-nt)
+ (not (file-remote-p truepath)))
+ "/")
+ (url-hexify-string
+ ;; Again watch out for trampy paths.
+ (directory-file-name (file-local-name truepath))
+ eglot--uri-path-allowed-chars))))
(defun eglot--uri-to-path (uri)
"Convert URI to file path, helped by `eglot--current-server'."
(when (keywordp uri) (setq uri (substring (symbol-name uri) 1)))
- (let* ((retval (url-filename (url-generic-parse-url (url-unhex-string uri))))
- (normalized (if (and (eq system-type 'windows-nt)
- (cl-plusp (length retval)))
- (substring retval 1)
- retval))
- (server (eglot-current-server))
+ (let* ((server (eglot-current-server))
(remote-prefix (and server
(file-remote-p
- (project-root (eglot--project server))))))
+ (project-root (eglot--project 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)
+ (eq system-type 'windows-nt)
+ (cl-plusp (length retval)))
+ (substring retval 1)
+ retval)))
(concat remote-prefix normalized)))
(defun eglot--snippet-expansion-fn ()
- [elpa] externals/eglot updated (fc221c8 -> 1ac06d0), Stefan Monnier, 2021/05/19
- [elpa] externals/eglot efac602 02/10: Fix #673: declare eglot--cached-server before use, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot a0a6218 01/10: Fix #670: make eglot-current-server work in notification handlers, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot 9330397 03/10: Close #677: switch default langserver for OCaml to ocamllsp, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot c6e05e0 04/10: Per #677: mention ocaml-lsp in the README, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot 6f27bc1 06/10: Allow LSP languageId to be overridden via eglot-server-programs, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot 3f1ad3b 07/10: Close #685: Fix Emacs 28 warning by avoiding positional args in define-minor-mode, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot 40bba97 08/10: Per #687: provide context for finer project-find-functions, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot b06589b 09/10: Fix #679: correct path/URI when using TRAMP from MS Windows,
Stefan Monnier <=
- [elpa] externals/eglot 1ac06d0 10/10: Fix #76: manage cross-referenced files outside project in same server, Stefan Monnier, 2021/05/19
- [elpa] externals/eglot 98943f1 05/10: Add a completion-category-defaults entry, Stefan Monnier, 2021/05/19