[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot 29d4103 056/139: Fix mode-line mouse-clicks from
From: |
João Távora |
Subject: |
[elpa] externals/eglot 29d4103 056/139: Fix mode-line mouse-clicks from outside selected window |
Date: |
Mon, 14 May 2018 09:54:53 -0400 (EDT) |
branch: externals/eglot
commit 29d4103a947c255361c600f9ed74381ad3f2ec6a
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Fix mode-line mouse-clicks from outside selected window
* eglot.el (eglot--mode-line-call): New helper.
(eglot--mode-line-format): Use it.
---
eglot.el | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/eglot.el b/eglot.el
index 693535a..bdd339d 100644
--- a/eglot.el
+++ b/eglot.el
@@ -695,6 +695,13 @@ that case, also signal textDocument/didOpen."
(put 'eglot--mode-line-format 'risky-local-variable t)
+(defun eglot--mode-line-call (what)
+ "Make an interactive lambda for calling WHAT from mode-line."
+ (lambda (event)
+ (interactive "e")
+ (with-selected-window (posn-window (event-start event))
+ (call-interactively what))))
+
(defun eglot--mode-line-format ()
"Compose the mode-line format spec."
(pcase-let* ((proc (eglot--current-process))
@@ -715,7 +722,7 @@ that case, also signal textDocument/didOpen."
face eglot-mode-line
keymap ,(let ((map (make-sparse-keymap)))
(define-key map [mode-line down-mouse-1]
- eglot-menu)
+ (eglot--mode-line-call 'eglot-menu))
map)
mouse-face mode-line-highlight
help-echo "mouse-1: pop-up EGLOT menu"
@@ -726,9 +733,12 @@ that case, also signal textDocument/didOpen."
,name
face eglot-mode-line
keymap ,(let ((map (make-sparse-keymap)))
- (define-key map [mode-line mouse-1] 'eglot-events-buffer)
- (define-key map [mode-line mouse-2] 'eglot-shutdown)
- (define-key map [mode-line mouse-3] 'eglot-reconnect)
+ (define-key map [mode-line mouse-1]
+ (eglot--mode-line-call 'eglot-events-buffer))
+ (define-key map [mode-line mouse-2]
+ (eglot--mode-line-call 'eglot-shutdown))
+ (define-key map [mode-line mouse-3]
+ (eglot--mode-line-call 'eglot-reconnect))
map)
mouse-face mode-line-highlight
help-echo ,(concat "mouse-1: go to events buffer\n"
@@ -744,9 +754,9 @@ that case, also signal textDocument/didOpen."
face compilation-mode-line-fail
keymap ,(let ((map (make-sparse-keymap)))
(define-key map [mode-line mouse-1]
- 'eglot-events-buffer)
+ (eglot--mode-line-call 'eglot-events-buffer))
(define-key map [mode-line mouse-3]
- 'eglot-clear-status)
+ (eglot--mode-line-call 'eglot-clear-status))
map))))
,@(when (and doing (not done-p))
`("/"
@@ -757,7 +767,7 @@ that case, also signal textDocument/didOpen."
face compilation-mode-line-run
keymap ,(let ((map (make-sparse-keymap)))
(define-key map [mode-line mouse-1]
- 'eglot-events-buffer)
+ (eglot--mode-line-call 'eglot-events-buffer))
map))))
,@(when (cl-plusp pending)
`("/"
@@ -775,9 +785,9 @@ that case, also signal textDocument/didOpen."
'eglot-mode-line))
keymap ,(let ((map (make-sparse-keymap)))
(define-key map [mode-line mouse-1]
- 'eglot-events-buffer)
+ (eglot--mode-line-call 'eglot-events-buffer))
(define-key map [mode-line mouse-3]
- 'eglot-forget-pending-continuations)
+ (eglot--mode-line-call
'eglot-forget-pending-continuations))
map)))))))))
(add-to-list 'mode-line-misc-info
- [elpa] externals/eglot f7f77e1 044/139: Make M-x eglot the main entry point, (continued)
- [elpa] externals/eglot f7f77e1 044/139: Make M-x eglot the main entry point, João Távora, 2018/05/14
- [elpa] externals/eglot d90efdf 001/139: Initial commit, João Távora, 2018/05/14
- [elpa] externals/eglot 1514e0f 052/139: Fix a couple of Rust-related edge cases, João Távora, 2018/05/14
- [elpa] externals/eglot b4dd4f8 022/139: Report server status in the mode-line, João Távora, 2018/05/14
- [elpa] externals/eglot 6689a15 026/139: Add eglot-clear-status interactive command, João Távora, 2018/05/14
- [elpa] externals/eglot a3545fb 050/139: Rename RPC methods for clarity, João Távora, 2018/05/14
- [elpa] externals/eglot 9665a3e 051/139: Fix textDocument/didChange, João Távora, 2018/05/14
- [elpa] externals/eglot eebd32b 059/139: When user declines to reconnect, first quit existing server, João Távora, 2018/05/14
- [elpa] externals/eglot 17e0ca4 047/139: Fix Flymake diagnostic positions, João Távora, 2018/05/14
- [elpa] externals/eglot 9d404c9 054/139: Update README.md, João Távora, 2018/05/14
- [elpa] externals/eglot 29d4103 056/139: Fix mode-line mouse-clicks from outside selected window,
João Távora <=
- [elpa] externals/eglot b1554fc 055/139: * eglot.el (eglot--process-receive): Skip null method notifs., João Távora, 2018/05/14
- [elpa] externals/eglot 51ff863 046/139: Must re-announce didOpen after reconnect, João Távora, 2018/05/14
- [elpa] externals/eglot c95a0a4 041/139: Multiple servers per project are possible, João Távora, 2018/05/14
- [elpa] externals/eglot f8bfb7e 064/139: Handle requests from server correctly, João Távora, 2018/05/14
- [elpa] externals/eglot b69302c 060/139: Make M-x eglot's interactive spec a separate function, João Távora, 2018/05/14
- [elpa] externals/eglot b657b32 068/139: Use rootUri instead of rootPath, João Távora, 2018/05/14
- [elpa] externals/eglot 7d0bf64 062/139: Workaround RLS's regusal to treat nil as empty json object, João Távora, 2018/05/14
- [elpa] externals/eglot 75495dc 033/139: Slightly more user friendly start, João Távora, 2018/05/14
- [elpa] externals/eglot fdb4de1 039/139: Simplify flymake integration, João Távora, 2018/05/14
- [elpa] externals/eglot cc183a6 043/139: Fix assorted bugs, João Távora, 2018/05/14