]> git.eshelyaron.com Git - emacs.git/commitdiff
Eglot: don't confuse URLs and windows file paths
authordannyfreeman <danny@dfreeman.email>
Thu, 24 Nov 2022 15:22:33 +0000 (15:22 +0000)
committerJoão Távora <jatav@vestas.com>
Thu, 24 Nov 2022 15:24:35 +0000 (15:24 +0000)
bug#59338

* lisp/progmodes/eglot.el (eglot--path-to-uri): Check for windows path

lisp/progmodes/eglot.el

index d05b5ee33566b2c880efce602ceb2c0da20ada70..5f13679b1ea5c8db9b2c511e17dc91977d61fe79 100644 (file)
@@ -1503,11 +1503,15 @@ If optional MARKER, return a marker instead"
 (defun eglot--path-to-uri (path)
   "URIfy PATH."
   (let ((truepath (file-truename path)))
-    (if (url-type (url-generic-parse-url truepath))
+    (if (and (url-type (url-generic-parse-url path))
+             ;; It might be MS Windows path which includes a drive
+             ;; letter that looks like a URL scheme (bug#59338)
+             (not (and (eq system-type 'windows-nt)
+                       (file-name-absolute-p truepath))))
         ;; Path is already a URI, so forward it to the LSP server
         ;; untouched.  The server should be able to handle it, since
         ;; it provided this URI to clients in the first place.
-        truepath
+        path
       (concat "file://"
               ;; Add a leading "/" for local MS Windows-style paths.
               (if (and (eq system-type 'windows-nt)