From: Felicián Németh Date: Sun, 19 Jan 2020 10:13:20 +0000 (+0100) Subject: Abide by lsp when reporting and moving to columns X-Git-Tag: emacs-29.0.90~1616^2~524^2~4^2~246 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f901fa91bc61454363a07989e458a3a05bca080f;p=emacs.git Abide by lsp when reporting and moving to columns * eglot.el (eglot-current-column-function): Set to eglot-lsp-abiding-column. (eglot-move-to-column-function): Set to eglot-move-to-lsp-abiding-column. * NEWS.md: Log the change here as well. Co-authored-by: João Távora GitHub-reference: fix https://github.com/joaotavora/eglot/issues/361 --- diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 2a50611d364..5d363ed3037 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -1002,15 +1002,15 @@ CONNECT-ARGS are passed as additional arguments to (defun eglot-current-column () (- (point) (point-at-bol))) -(defvar eglot-current-column-function #'eglot-current-column +(defvar eglot-current-column-function #'eglot-lsp-abiding-column "Function to calculate the current column. This is the inverse operation of `eglot-move-to-column-function' (which see). It is a function of no arguments returning a column number. For buffers managed by fully LSP-compliant servers, this should be set to -`eglot-lsp-abiding-column', and `eglot-current-column' (the default) -for all others.") +`eglot-lsp-abiding-column' (the default), and +`eglot-current-column' for all others.") (defun eglot-lsp-abiding-column () "Calculate current COLUMN as defined by the LSP spec." @@ -1026,7 +1026,7 @@ for all others.") :character (progn (when pos (goto-char pos)) (funcall eglot-current-column-function))))) -(defvar eglot-move-to-column-function #'eglot-move-to-column +(defvar eglot-move-to-column-function #'eglot-move-to-lsp-abiding-column "Function to move to a column reported by the LSP server. According to the standard, LSP column/character offsets are based @@ -1036,8 +1036,8 @@ where X is a multi-byte character, it actually means `b', not `c'. However, many servers don't follow the spec this closely. For buffers managed by fully LSP-compliant servers, this should -be set to `eglot-move-to-lsp-abiding-column', and -`eglot-move-to-column' (the default) for all others.") +be set to `eglot-move-to-lsp-abiding-column' (the default), and +`eglot-move-to-column' for all others.") (defun eglot-move-to-column (column) "Move to COLUMN without closely following the LSP spec."