[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#70036: a fix that
From: |
Theodor Thornhill |
Subject: |
bug#70036: a fix that |
Date: |
Fri, 19 Apr 2024 08:26:53 +0200 |
>
> Could we rather use eglot--managed-buffers, like in my patch? there
> shouldn't be a need to loop through say 200 buffers that are unrelated
> to the project in question, right? Apart from this I agree, and will try
> it.
Like this?
I can confirm with yours and this patch the latency is down again, so
thanks.
I'll test a little the difference with/without eglot--managed-buffers.
Theo
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 90a607075d3..3578aed92b4 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -2381,8 +2381,11 @@ eglot-handle-notification
(lambda ()
(remhash token (eglot--progress-reporters
server))))))))))
+(defvar-local eglot--cached-tdi nil
+ "A cached LSP TextDocumentIdentifier URI string.")
+
(cl-defmethod eglot-handle-notification
- (_server (_method (eql textDocument/publishDiagnostics)) &key uri diagnostics
+ (server (_method (eql textDocument/publishDiagnostics)) &key uri diagnostics
&allow-other-keys) ; FIXME: doesn't respect `eglot-strict-mode'
"Handle notification publishDiagnostics."
(cl-flet ((eglot--diag-type (sev)
@@ -2391,9 +2394,14 @@ eglot-handle-notification
((= sev 2) 'eglot-warning)
(t 'eglot-note)))
(mess (source code message)
- (concat source (and code (format " [%s]" code)) ": " message)))
+ (concat source (and code (format " [%s]" code)) ": " message))
+ (find-it (uri)
+ (cl-loop for b in (eglot--managed-buffers server)
+ when (with-current-buffer b
+ (equal eglot--cached-tdi uri))
+ return b)))
(if-let* ((path (expand-file-name (eglot-uri-to-path uri)))
- (buffer (find-buffer-visiting path)))
+ (buffer (find-it uri)))
(with-current-buffer buffer
(cl-loop
initially
@@ -2518,9 +2526,6 @@ eglot-handle-request
(t (setq success :json-false)))
`(:success ,success)))
-(defvar-local eglot--cached-tdi nil
- "A cached LSP TextDocumentIdentifier URI string.")
-
(defun eglot--TextDocumentIdentifier ()
"Compute TextDocumentIdentifier object for current buffer."
`(:uri ,(or eglot--cached-tdi
Thanks,
Theo
- bug#70036: a fix that, (continued)
- bug#70036: a fix that, João Távora, 2024/04/18
- bug#70036: a fix that, Eli Zaretskii, 2024/04/18
- bug#70036: a fix that, João Távora, 2024/04/18
- Message not available
- bug#70036: a fix that, João Távora, 2024/04/18
- bug#70036: a fix that, João Távora, 2024/04/18
- bug#70036: a fix that, Michael Albinus, 2024/04/19
- bug#70036: a fix that, Theodor Thornhill, 2024/04/18
- bug#70036: a fix that, João Távora, 2024/04/18
- bug#70036: a fix that, João Távora, 2024/04/18
- bug#70036: a fix that, Theodor Thornhill, 2024/04/19
- bug#70036: a fix that,
Theodor Thornhill <=
- bug#70036: a fix that, João Távora, 2024/04/19
- bug#70036: a fix that, Theodor Thornhill, 2024/04/19
- bug#70036: a fix that, João Távora, 2024/04/19
- bug#70036: a fix that, Theodor Thornhill, 2024/04/19
- bug#70036: a fix that, João Távora, 2024/04/19
- bug#70036: a fix that, Theodor Thornhill, 2024/04/19
- bug#70036: a fix that, João Távora, 2024/04/19
- bug#70036: a fix that, Theodor Thornhill, 2024/04/19
- bug#70036: a fix that, Eli Zaretskii, 2024/04/19
- bug#70036: a fix that, Ihor Radchenko, 2024/04/19