From 7b7312f8d66ca7a34fb509704f77009db7d7aaa7 Mon Sep 17 00:00:00 2001 From: Michal Krzywkowski Date: Fri, 3 Aug 2018 10:22:18 +0200 Subject: [PATCH] Fix placement of diagnostics with same start and end positions Some servers such as cquery and clangd publish diagnostic with identical start and end positions. * eglot.el (eglot-handle-notification :textDocument/publishDiagnostics): Add 1 to :line since LSP lines are 0-based. Don't subtract 1 from :character, since both emacs and LSP have 0-based columns. --- lisp/progmodes/eglot.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 0bb162b07c9..58efc166863 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -929,8 +929,8 @@ Uses THING, FACE, DEFS and PREPEND." (let* ((st (plist-get range :start)) (diag-region (flymake-diag-region - (current-buffer) (plist-get st :line) - (1- (plist-get st :character))))) + (current-buffer) (1+ (plist-get st :line)) + (plist-get st :character)))) (setq beg (car diag-region) end (cdr diag-region)))) (eglot--make-diag (current-buffer) beg end -- 2.39.2