[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot 14c7647 4/8: Be more criterious before running th
From: |
João Távora |
Subject: |
[elpa] externals/eglot 14c7647 4/8: Be more criterious before running the idle timer |
Date: |
Tue, 29 May 2018 22:21:24 -0400 (EDT) |
branch: externals/eglot
commit 14c764708edf49bb3b6c24d054d4d1f5a6d52fac
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Be more criterious before running the idle timer
* eglot.el (eglot--change-idle-timer): make a defvar-local
(eglot--after-change): Only run timer if the buffer is live.
---
eglot.el | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/eglot.el b/eglot.el
index c48aa2b..8ab4b49 100644
--- a/eglot.el
+++ b/eglot.el
@@ -1118,7 +1118,7 @@ THINGS are either registrations or unregisterations."
(defmethod eglot-server-ready-p (_s _what)
"Normally ready if no outstanding changes." (not eglot--recent-changes))
-(defvar eglot--change-idle-timer nil "Idle timer for textDocument/didChange.")
+(defvar-local eglot--change-idle-timer nil "Idle timer for didChange signals.")
(defun eglot--before-change (start end)
"Hook onto `before-change-functions'.
@@ -1141,10 +1141,14 @@ Records START, END and PRE-CHANGE-LENGTH locally."
`(,pre-change-length ,(buffer-substring-no-properties start end)))
(setf eglot--recent-changes :emacs-messup))
(when eglot--change-idle-timer (cancel-timer eglot--change-idle-timer))
- (setq eglot--change-idle-timer
- (run-with-idle-timer
- 0.5 nil (lambda () (eglot--signal-textDocument/didChange)
- (setq eglot--change-idle-timer nil)))))
+ (let ((buf (current-buffer)))
+ (setq eglot--change-idle-timer
+ (run-with-idle-timer
+ 0.5 nil (lambda () (when (buffer-live-p buf)
+ (with-current-buffer buf
+ (when eglot--managed-mode
+ (eglot--signal-textDocument/didChange)
+ (setq eglot--change-idle-timer nil)))))))))
(defun eglot--signal-textDocument/didChange ()
"Send textDocument/didChange to server."
- [elpa] externals/eglot updated (796e3c2 -> 4211e0c), João Távora, 2018/05/29
- [elpa] externals/eglot ab8bbdb 2/8: Set eglot--versioned-identifier to 0 on didOpen, João Távora, 2018/05/29
- [elpa] externals/eglot 14c7647 4/8: Be more criterious before running the idle timer,
João Távora <=
- [elpa] externals/eglot 9c5ff71 1/8: Correctly apply workspace edits in documentChanges form, João Távora, 2018/05/29
- [elpa] externals/eglot c2fd78f 3/8: Make eglot--recent-changes a simpler list, João Távora, 2018/05/29
- [elpa] externals/eglot 4416781 5/8: On reconnection, ignore errors of shutting down hung server, João Távora, 2018/05/29
- [elpa] externals/eglot 4211e0c 8/8: * eglot.el (Version): Bump to 0.7, João Távora, 2018/05/29
- [elpa] externals/eglot b97af33 7/8: More yak shaving, João Távora, 2018/05/29
- [elpa] externals/eglot 92c4bdf 6/8: New M-x eglot-stderr-buffer useful for debugging, João Távora, 2018/05/29