[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/elpa dfab9a0 011/139: Experimental diagnostic overlays
From: |
João Távora |
Subject: |
[elpa] externals/elpa dfab9a0 011/139: Experimental diagnostic overlays |
Date: |
Mon, 14 May 2018 09:53:25 -0400 (EDT) |
branch: externals/elpa
commit dfab9a08a6b6af099c21f9cd8a99f5a00d81cb4e
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Experimental diagnostic overlays
---
eglot.el | 40 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/eglot.el b/eglot.el
index 479e87a..cd91d78 100644
--- a/eglot.el
+++ b/eglot.el
@@ -414,11 +414,47 @@
;;; Notifications
;;;
+(defvar-local eglot--diagnostic-overlays nil)
+
(cl-defun eglot--textDocument/publishDiagnostics
(_process &key uri diagnostics)
"Handle notification publishDiagnostics"
- (eglot--message "So yeah I got %s for %s"
- diagnostics uri))
+ (let* ((obj (url-generic-parse-url uri))
+ (filename (car (url-path-and-query obj)))
+ (buffer (find-buffer-visiting filename)))
+ (cond
+ (buffer
+ (with-current-buffer buffer
+ (eglot--message "OK so add some %s diags" (length diagnostics))
+ (mapc #'delete-overlay eglot--diagnostic-overlays)
+ (setq eglot--diagnostic-overlays nil)
+ (cl-flet ((pos-at (pos-plist)
+ (save-excursion
+ (goto-char (point-min))
+ (forward-line (plist-get pos-plist :line))
+ (forward-char (plist-get pos-plist :character))
+ (point))))
+ (loop for diag across diagnostics
+ do (cl-destructuring-bind (&key range severity
+ _code _source message)
+ diag
+ (cl-destructuring-bind (&key start end)
+ range
+ (let* ((begin-pos (pos-at start))
+ (end-pos (pos-at end))
+ (ov (make-overlay begin-pos
+ end-pos
+ buffer)))
+ (push ov eglot--diagnostic-overlays)
+ (overlay-put ov 'face
+ (case severity
+ (1 'flymake-errline)
+ (2 'flymake-warnline)))
+ (overlay-put ov 'help-echo
+ message)
+ (overlay-put ov 'eglot--diagnostic diag))))))))
+ (t
+ (eglot--message "OK so %s isn't visited" filename)))))
;;; Helpers
- [elpa] branch externals/elpa created (now 4c0bfc3), João Távora, 2018/05/14
- [elpa] externals/elpa 3a8f9a1 002/139: Remove a couple of comments, João Távora, 2018/05/14
- [elpa] externals/elpa 72895ca 006/139: Handle notifications, João Távora, 2018/05/14
- [elpa] externals/elpa efd14d6 015/139: Fix mode line, João Távora, 2018/05/14
- [elpa] externals/elpa c222c3b 019/139: Lay groundwork for uniform treatment of network connections, João Távora, 2018/05/14
- [elpa] externals/elpa 16be2fc 020/139: Fix parser to accept multiple messages in one chunk, João Távora, 2018/05/14
- [elpa] externals/elpa 6f0a8df 008/139: Organize a bit, João Távora, 2018/05/14
- [elpa] externals/elpa 0222e7e 007/139: Improve `eglot--current-process', João Távora, 2018/05/14
- [elpa] externals/elpa 7c82a03 024/139: Start experimenting with python, João Távora, 2018/05/14
- [elpa] externals/elpa 8bd634c 016/139: Start working on this again, João Távora, 2018/05/14
- [elpa] externals/elpa dfab9a0 011/139: Experimental diagnostic overlays,
João Távora <=
- [elpa] externals/elpa 22dc2f7 034/139: Ready to start fixing flymake integration, João Távora, 2018/05/14
- [elpa] externals/elpa 931093e 032/139: Don't clutter UI with warnings, João Távora, 2018/05/14
- [elpa] externals/elpa c948713 035/139: Auto-reconnect on unexpected connection loss, João Távora, 2018/05/14
- [elpa] externals/elpa 3489176 004/139: Add a mode-line construct and some minor fanciness, João Távora, 2018/05/14
- [elpa] externals/elpa bc011d0 010/139: Minor cleanup, João Távora, 2018/05/14
- [elpa] externals/elpa e1d36d2 014/139: Fix some byte-compilation warnings, João Távora, 2018/05/14
- [elpa] externals/elpa 1dc2a9f 021/139: Implement spinners and RLS's window/progress, João Távora, 2018/05/14
- [elpa] externals/elpa 95983c9 028/139: Change status to error everytime an error is found, João Távora, 2018/05/14
- [elpa] externals/elpa 328c7ae 025/139: Auto update mode-line after setting some process properties, João Távora, 2018/05/14
- [elpa] externals/elpa 2775dea 003/139: Rename eglot--continuations eglot--pending-continuations, João Távora, 2018/05/14