[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/elpa 4d4b85d 061/139: eglot-editing-mode becomes eglot-
From: |
João Távora |
Subject: |
[elpa] externals/elpa 4d4b85d 061/139: eglot-editing-mode becomes eglot--managed-mode |
Date: |
Mon, 14 May 2018 09:53:35 -0400 (EDT) |
branch: externals/elpa
commit 4d4b85d9a7592a745c3edb50f3cd40162561f0fe
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
eglot-editing-mode becomes eglot--managed-mode
* eglot.el (eglot--sentinel): Use eglot--managed-mode.
(eglot--managed-mode-map): Renamed from eglot-editing-mode-map.
(eglot--managed-mode): Renamed from eglot-editing-mode.
(eglot-mode): Simplify.
(eglot--buffer-managed-p): New function.
(eglot--maybe-activate-editing-mode): Simplify.
---
eglot.el | 63 +++++++++++++++++++++++++++++++++------------------------------
1 file changed, 33 insertions(+), 30 deletions(-)
diff --git a/eglot.el b/eglot.el
index ec7f3e6..0300ad3 100644
--- a/eglot.el
+++ b/eglot.el
@@ -341,12 +341,20 @@ INTERACTIVE is t if called interactively."
"(sentinel) Cancelling timer for continuation %s" id)
(cancel-timer timeout)))
(eglot--pending-continuations process))
+ ;; Turn off `eglot--managed-mode' where appropriate.
+ ;;
+ (dolist (buffer (buffer-list))
+ (with-current-buffer buffer
+ (when (eglot--buffer-managed-p process)
+ (eglot--managed-mode -1))))
+ ;; Forget about the process-project relationship
+ ;;
+ (setf (gethash (eglot--project process) eglot--processes-by-project)
+ (delq process
+ (gethash (eglot--project process)
eglot--processes-by-project)))
(cond ((eglot--moribund process)
(eglot--message "(sentinel) Moribund process exited with status %s"
- (process-exit-status process))
- (setf (gethash (eglot--project process) eglot--processes-by-project)
- (delq process
- (gethash (eglot--project process)
eglot--processes-by-project))))
+ (process-exit-status process)))
(t
(eglot--warn
"(sentinel) Reconnecting after process unexpectedly changed to %s."
@@ -641,60 +649,55 @@ identifier. ERROR is non-nil if this is an error."
;;;
(defvar eglot-mode-map (make-sparse-keymap))
-(defvar eglot-editing-mode-map (make-sparse-keymap))
+(defvar eglot--managed-mode-map (make-sparse-keymap))
-(define-minor-mode eglot-editing-mode
- "Minor mode for source buffers where EGLOT helps you edit."
+(define-minor-mode eglot--managed-mode
+ "Mode for source buffers managed by some EGLOT project."
nil
nil
eglot-mode-map
(cond
- (eglot-editing-mode
+ (eglot--managed-mode
(eglot-mode 1)
(add-hook 'after-change-functions 'eglot--after-change nil t)
(add-hook 'before-change-functions 'eglot--before-change nil t)
(add-hook 'flymake-diagnostic-functions 'eglot-flymake-backend nil t)
(add-hook 'kill-buffer-hook 'eglot--signal-textDocument/didClose nil t)
(add-hook 'before-revert-hook 'eglot--signal-textDocument/didClose nil t)
- (add-hook 'after-revert-hook 'eglot--signal-textDocument/didOpen nil t)
+ ;; (add-hook 'after-revert-hook 'eglot--signal-textDocument/didOpen nil t)
(add-hook 'before-save-hook 'eglot--signal-textDocument/willSave nil t)
(add-hook 'after-save-hook 'eglot--signal-textDocument/didSave nil t)
- (flymake-mode 1)
- (unless (eglot--current-process)
- (eglot--warn "No process, start one with `M-x eglot'")))
+ (flymake-mode 1))
(t
(remove-hook 'flymake-diagnostic-functions 'eglot-flymake-backend t)
(remove-hook 'after-change-functions 'eglot--after-change t)
(remove-hook 'before-change-functions 'eglot--before-change t)
(remove-hook 'kill-buffer-hook 'eglot--signal-textDocument/didClose t)
(remove-hook 'before-revert-hook 'eglot--signal-textDocument/didClose t)
- (remove-hook 'after-revert-hook 'eglot--signal-textDocument/didOpen t)
+ ;; (remove-hook 'after-revert-hook 'eglot--signal-textDocument/didOpen t)
(remove-hook 'before-save-hook 'eglot--signal-textDocument/willSave t)
(remove-hook 'after-save-hook 'eglot--signal-textDocument/didSave t))))
(define-minor-mode eglot-mode
"Minor mode for all buffers managed by EGLOT in some way." nil
- nil eglot-mode-map
- (cond (eglot-mode
- (when (and buffer-file-name
- (not eglot-editing-mode))
- (eglot-editing-mode 1)))
- (t
- (when eglot-editing-mode
- (eglot-editing-mode -1)))))
+ nil eglot-mode-map)
+
+(defun eglot--buffer-managed-p (&optional proc)
+ "Tell if current buffer is managed by PROC."
+ (and buffer-file-name
+ (let ((cur (eglot--current-process)))
+ (or (and (null proc) cur)
+ (and proc (eq proc cur))))))
(defun eglot--maybe-activate-editing-mode (&optional proc)
- "Maybe activate mode function `eglot-editing-mode'.
+ "Maybe activate mode function `eglot--managed-mode'.
If PROC is supplied, do it only if BUFFER is managed by it. In
that case, also signal textDocument/didOpen."
- (when buffer-file-name
- (let ((cur (eglot--current-process)))
- (when (or (and (null proc) cur)
- (and proc (eq proc cur)))
- (unless eglot-editing-mode
- (eglot-editing-mode 1))
- (eglot--signal-textDocument/didOpen)
- (flymake-start)))))
+ ;; Called even when revert-buffer-in-progress-p
+ (when (eglot--buffer-managed-p proc)
+ (eglot--managed-mode 1)
+ (eglot--signal-textDocument/didOpen)
+ (flymake-start)))
(add-hook 'find-file-hook 'eglot--maybe-activate-editing-mode)
- [elpa] externals/elpa 75495dc 033/139: Slightly more user friendly start, (continued)
- [elpa] externals/elpa 75495dc 033/139: Slightly more user friendly start, João Távora, 2018/05/14
- [elpa] externals/elpa 6f6f01d 018/139: Doc fixes, João Távora, 2018/05/14
- [elpa] externals/elpa 0ec7801 012/139: Simplify `eglot--protocol-initialize`, João Távora, 2018/05/14
- [elpa] externals/elpa 88e3655 040/139: Appease checkdoc.el, João Távora, 2018/05/14
- [elpa] externals/elpa f7f77e1 044/139: Make M-x eglot the main entry point, João Távora, 2018/05/14
- [elpa] externals/elpa 51ff863 046/139: Must re-announce didOpen after reconnect, João Távora, 2018/05/14
- [elpa] externals/elpa d2eca65 045/139: Fix another Flymake sync bug, João Távora, 2018/05/14
- [elpa] externals/elpa c95a0a4 041/139: Multiple servers per project are possible, João Távora, 2018/05/14
- [elpa] externals/elpa e60c7fc 013/139: Overhaul async mechanism safety, João Távora, 2018/05/14
- [elpa] externals/elpa a3545fb 050/139: Rename RPC methods for clarity, João Távora, 2018/05/14
- [elpa] externals/elpa 4d4b85d 061/139: eglot-editing-mode becomes eglot--managed-mode,
João Távora <=
- [elpa] externals/elpa 4f246b5 017/139: * eglot.el (eglot-mode-map): Move up before minor mode., João Távora, 2018/05/14
- [elpa] externals/elpa a4f99e0 005/139: Introduce and use `eglot--current-process-or-lose', João Távora, 2018/05/14
- [elpa] externals/elpa 8e6488f 023/139: Don't switch to possibly dead buffer in sentinel, João Távora, 2018/05/14
- [elpa] externals/elpa be52e1e 037/139: Rework connection restarting again, João Távora, 2018/05/14
- [elpa] externals/elpa cc183a6 043/139: Fix assorted bugs, João Távora, 2018/05/14
- [elpa] externals/elpa e8f859e 031/139: Rework commands for connecting and reconnecting, João Távora, 2018/05/14
- [elpa] externals/elpa b511b7d 036/139: Redesign and simplify parser, João Távora, 2018/05/14
- [elpa] externals/elpa b4dd4f8 022/139: Report server status in the mode-line, João Távora, 2018/05/14
- [elpa] externals/elpa 46bb1c0 049/139: Reorganize file, João Távora, 2018/05/14
- [elpa] externals/elpa b69302c 060/139: Make M-x eglot's interactive spec a separate function, João Távora, 2018/05/14