[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot 04ef055 11/12: Close #27: empty ranges are valid
From: |
João Távora |
Subject: |
[elpa] externals/eglot 04ef055 11/12: Close #27: empty ranges are valid in LSP |
Date: |
Fri, 22 Jun 2018 11:52:17 -0400 (EDT) |
branch: externals/eglot
commit 04ef0558a1a4c64287f7c5b77b8c68df095a8b3b
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Close #27: empty ranges are valid in LSP
The previous hack in eglot--range-region, designed to appease cquery's
occasional practice of publishing diagnostics with empty regions, was
moved to the proper notification handler.
Reported by mkcms <address@hidden>.
* eglot.el (eglot--range-region): Allow empty ranges, which are
allowed in LSP.
(eglot-handle-notification :textDocument/publishDiagnostics): Maybe
fallback to flymake-diag-region here.
---
eglot.el | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/eglot.el b/eglot.el
index 2fdf433..f4a03da 100644
--- a/eglot.el
+++ b/eglot.el
@@ -896,10 +896,7 @@ If optional MARKERS, make markers."
(let* ((st (plist-get range :start))
(beg (eglot--lsp-position-to-point st markers))
(end (eglot--lsp-position-to-point (plist-get range :end) markers)))
- ;; Fallback to `flymake-diag-region' if server botched the range
- (if (/= beg end) (cons beg end) (flymake-diag-region
- (current-buffer) (plist-get st :line)
- (1- (plist-get st :character))))))
+ (cons beg end)))
;;; Minor modes
@@ -1125,7 +1122,18 @@ Don't leave this function with the server still running."
_code source message)
diag-spec
(setq message (concat source ": " message))
- (pcase-let ((`(,beg . ,end) (eglot--range-region range)))
+ (pcase-let
+ ((`(,beg . ,end) (eglot--range-region range)))
+ ;; Fallback to `flymake-diag-region' if server
+ ;; botched the range
+ (if (= beg end)
+ (let* ((st (plist-get range :start))
+ (diag-region
+ (flymake-diag-region
+ (current-buffer) (plist-get st :line)
+ (1- (plist-get st :character)))))
+ (setq beg (car diag-region)
+ end (cdr diag-region))))
(eglot--make-diag (current-buffer) beg end
(cond ((<= sev 1) 'eglot-error)
((= sev 2) 'eglot-warning)
- [elpa] externals/eglot updated (a1f1dd6 -> 0176264), João Távora, 2018/06/22
- [elpa] externals/eglot 04ef055 11/12: Close #27: empty ranges are valid in LSP,
João Távora <=
- [elpa] externals/eglot 0176264 12/12: * eglot.el (Version): Bump to 0.11, João Távora, 2018/06/22
- [elpa] externals/eglot 610d95b 03/12: Use gfm-mode for formatted strings (#20), João Távora, 2018/06/22
- [elpa] externals/eglot 0cde01f 05/12: Close #26: Guess server for js2-mode and rjsx-mode, João Távora, 2018/06/22
- [elpa] externals/eglot 364348d 04/12: Close #25: Improve eglot-ensure and mention it in README.md, João Távora, 2018/06/22
- [elpa] externals/eglot efc0f45 02/12: Minor cleanup to new textDocument/formatting feature, João Távora, 2018/06/22
- [elpa] externals/eglot a9010f1 01/12: Implement formatting (#19), João Távora, 2018/06/22
- [elpa] externals/eglot 17ef74e 07/12: Defer textDocument/formatting requests, João Távora, 2018/06/22
- [elpa] externals/eglot 0b9cffe 08/12: Per #22: Apply text edits atomically, João Távora, 2018/06/22
- [elpa] externals/eglot 48c3f45 10/12: Close #22: Apply text edits as a single undoable edit, João Távora, 2018/06/22
- [elpa] externals/eglot cbc418c 06/12: Per #22: Simplify eglot-format-buffer, João Távora, 2018/06/22