tag: 1.2
commit d52738f5c827e3b65d41953e2644c085272e54e7
Author: Michał Krzywkowski <[email protected]>
Commit: Michał Krzywkowski <[email protected]>

    Treat tab characters as 1 column wide in position conversion functions
    
    Fixes #158.
    
    * eglot.el (eglot--pos-to-lsp-position): Call
      eglot-current-column-function with tab-width bound to 1.
    (eglot--lsp-position-to-point): Call eglot-move-to-column-function
    with tab-width bound to 1.
---
 eglot.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/eglot.el b/eglot.el
index 3ba1b87..d9c1c3a 100644
--- a/eglot.el
+++ b/eglot.el
@@ -743,7 +743,8 @@ for all others.")
   (eglot--widening
    (list :line (1- (line-number-at-pos pos t)) ; F!@&#$CKING OFF-BY-ONE
          :character (progn (when pos (goto-char pos))
-                           (funcall eglot-current-column-function)))))
+                           (let ((tab-width 1))
+                             (funcall eglot-current-column-function))))))
 
 (defvar eglot-move-to-column-function #'move-to-column
   "Function to move to a column reported by the LSP server.
@@ -778,7 +779,8 @@ If optional MARKER, return a marker instead"
     (forward-line (min most-positive-fixnum
                        (plist-get pos-plist :line)))
     (unless (eobp) ;; if line was excessive leave point at eob
-      (funcall eglot-move-to-column-function (plist-get pos-plist :character)))
+      (let ((tab-width 1))
+        (funcall eglot-move-to-column-function (plist-get pos-plist 
:character))))
     (if marker (copy-marker (point-marker)) (point))))
 
 (defun eglot--path-to-uri (path)

Reply via email to