From: Michal Krzywkowski Date: Fri, 3 Aug 2018 08:22:18 +0000 (+0200) Subject: Fix placement of diagnostics with same start and end positions X-Git-Tag: emacs-29.0.90~1616^2~524^2~4^2~462 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7b7312f8d66ca7a34fb509704f77009db7d7aaa7;p=emacs.git 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. --- 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