[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot 7ec0dcf 029/139: Events buffer uses eglot-mode, s
From: |
João Távora |
Subject: |
[elpa] externals/eglot 7ec0dcf 029/139: Events buffer uses eglot-mode, source buffers use eglot-editing-mode |
Date: |
Mon, 14 May 2018 09:54:48 -0400 (EDT) |
branch: externals/eglot
commit 7ec0dcfb25e225e4317a7ad97c525beadfbbf0e6
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Events buffer uses eglot-mode, source buffers use eglot-editing-mode
* eglot.el (eglot--special-buffer-process): New var.
(eglot--current-process): Consider eglot--special-buffer-process.
(eglot-events-buffer): Use eglot-mode
(eglot-editing-mode): New minor mode.
(eglot-mode): Turns on eglot-editing-mode maybe.
---
eglot.el | 35 +++++++++++++++++++++++++++--------
1 file changed, 27 insertions(+), 8 deletions(-)
diff --git a/eglot.el b/eglot.el
index 457f316..9742f88 100644
--- a/eglot.el
+++ b/eglot.el
@@ -43,11 +43,15 @@
(defvar eglot--processes-by-project (make-hash-table :test #'equal))
+(defvar eglot--special-buffer-process nil
+ "Current buffer's eglot process.")
+
(defun eglot--current-process ()
"The current logical EGLOT process."
- (let ((cur (project-current)))
- (and cur
- (gethash cur eglot--processes-by-project))))
+ (or eglot--special-buffer-process
+ (let ((cur (project-current)))
+ (and cur
+ (gethash cur eglot--processes-by-project)))))
(defun eglot--current-process-or-lose ()
(or (eglot--current-process)
@@ -270,8 +274,9 @@ INTERACTIVE is t if called interactively."
(with-current-buffer buffer
(buffer-disable-undo)
(read-only-mode t)
- (setf (eglot--events-buffer process)
- buffer))
+ (setf (eglot--events-buffer process) buffer
+ eglot--special-buffer-process process)
+ (eglot-mode))
buffer))))
(when interactive
(display-buffer buffer))
@@ -610,12 +615,15 @@ running. INTERACTIVE is t if called interactively."
(defvar eglot-mode-map (make-sparse-keymap))
-(define-minor-mode eglot-mode
- "Minor mode for buffers where EGLOT is possible"
+(defvar eglot-editing-mode-map (make-sparse-keymap))
+
+(define-minor-mode eglot-editing-mode
+ "Minor mode for source buffers where EGLOT helps you edit."
nil
nil
eglot-mode-map
- (cond (eglot-mode
+ (cond (eglot-editing-mode
+ (eglot-mode 1)
(add-hook 'after-change-functions 'eglot--after-change nil t)
(add-hook 'flymake-diagnostic-functions 'eglot-flymake-backend nil t)
(if (eglot--current-process)
@@ -625,6 +633,17 @@ running. INTERACTIVE is t if called interactively."
(remove-hook 'flymake-diagnostic-functions 'eglot-flymake-backend t)
(remove-hook 'after-change-functions 'eglot--after-change 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)))))
+
(defvar eglot-menu)
(easy-menu-define eglot-menu eglot-mode-map "EGLOT"
- [elpa] externals/eglot e60c7fc 013/139: Overhaul async mechanism safety, (continued)
- [elpa] externals/eglot e60c7fc 013/139: Overhaul async mechanism safety, João Távora, 2018/05/14
- [elpa] externals/eglot a4f99e0 005/139: Introduce and use `eglot--current-process-or-lose', João Távora, 2018/05/14
- [elpa] externals/eglot efd14d6 015/139: Fix mode line, João Távora, 2018/05/14
- [elpa] externals/eglot 63f2208 030/139: Less obstrusive flymake stuff for now, João Távora, 2018/05/14
- [elpa] externals/eglot 8bd634c 016/139: Start working on this again, João Távora, 2018/05/14
- [elpa] externals/eglot 3403f86 027/139: Correctly report what we currently are capable of, João Távora, 2018/05/14
- [elpa] externals/eglot 7c82a03 024/139: Start experimenting with python, João Távora, 2018/05/14
- [elpa] externals/eglot 8e6488f 023/139: Don't switch to possibly dead buffer in sentinel, João Távora, 2018/05/14
- [elpa] externals/eglot e1d36d2 014/139: Fix some byte-compilation warnings, João Távora, 2018/05/14
- [elpa] externals/eglot 6f6f01d 018/139: Doc fixes, João Távora, 2018/05/14
- [elpa] externals/eglot 7ec0dcf 029/139: Events buffer uses eglot-mode, source buffers use eglot-editing-mode,
João Távora <=
- [elpa] externals/eglot 22dc2f7 034/139: Ready to start fixing flymake integration, João Távora, 2018/05/14
- [elpa] externals/eglot e8f859e 031/139: Rework commands for connecting and reconnecting, João Távora, 2018/05/14
- [elpa] externals/eglot 92bf3a0 038/139: Signal textDocument/didClose, João Távora, 2018/05/14
- [elpa] externals/eglot b511b7d 036/139: Redesign and simplify parser, João Távora, 2018/05/14
- [elpa] externals/eglot 328c7ae 025/139: Auto update mode-line after setting some process properties, João Távora, 2018/05/14
- [elpa] externals/eglot 2b61a3b 048/139: Delete two useless forward declarations, João Távora, 2018/05/14
- [elpa] externals/eglot 88e3655 040/139: Appease checkdoc.el, João Távora, 2018/05/14
- [elpa] externals/eglot c948713 035/139: Auto-reconnect on unexpected connection loss, João Távora, 2018/05/14
- [elpa] externals/eglot 1dc2a9f 021/139: Implement spinners and RLS's window/progress, João Távora, 2018/05/14
- [elpa] externals/eglot 931093e 032/139: Don't clutter UI with warnings, João Távora, 2018/05/14