]> git.eshelyaron.com Git - emacs.git/commitdiff
Slightly polish the flymake integration
authorJoão Távora <joaotavora@gmail.com>
Wed, 6 Jun 2018 11:04:39 +0000 (12:04 +0100)
committerJoão Távora <joaotavora@gmail.com>
Wed, 6 Jun 2018 11:04:39 +0000 (12:04 +0100)
For backends, like RLS, that don't textDocument/publishDiagnostics
right away, assume that the file is clean.  Since Flymake allows
multiple reportings, it should be OK.

* eglot.el (eglot--unreported-diagnostics): Move variable up here.
(eglot--maybe-activate-editing-mode): Assume no diagnostics on
open.

lisp/progmodes/eglot.el

index 5ede7910356023b221185f8c1564f31adc8a2940..81a63fdbea9cf61806eb516fa9f8372552a66930 100644 (file)
@@ -900,6 +900,9 @@ If optional MARKERS, make markers."
 (add-hook 'eglot--managed-mode-hook 'flymake-mode)
 (add-hook 'eglot--managed-mode-hook 'eldoc-mode)
 
+(defvar-local eglot--unreported-diagnostics nil
+  "Unreported Flymake diagnostics for this buffer.")
+
 (defun eglot--maybe-activate-editing-mode (&optional server)
   "Maybe activate mode function `eglot--managed-mode'.
 If SERVER is supplied, do it only if BUFFER is managed by it.  In
@@ -908,6 +911,7 @@ that case, also signal textDocument/didOpen."
   (let* ((cur (and buffer-file-name (eglot--current-server)))
          (server (or (and (null server) cur) (and server (eq server cur) cur))))
     (when server
+      (setq eglot--unreported-diagnostics `(:just-opened . nil))
       (eglot--managed-mode-onoff server 1)
       (eglot--signal-textDocument/didOpen))))
 
@@ -1057,9 +1061,6 @@ function with the server still running."
   (_server (_method (eql :telemetry/event)) &rest _any)
   "Handle notification telemetry/event") ;; noop, use events buffer
 
-(defvar-local eglot--unreported-diagnostics nil
-  "Unreported diagnostics for this buffer.")
-
 (cl-defmethod eglot-handle-notification
   (server (_method (eql :textDocument/publishDiagnostics)) &key uri diagnostics)
   "Handle notification publishDiagnostics"