[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/flymake-diagnostics-buffer ed04865 1/2: Simplify F
From: |
Jo�o T�vora |
Subject: |
[Emacs-diffs] scratch/flymake-diagnostics-buffer ed04865 1/2: Simplify Flymake diagnostics buffer UX |
Date: |
Sun, 8 Oct 2017 19:16:17 -0400 (EDT) |
branch: scratch/flymake-diagnostics-buffer
commit ed0486535d6d0a3c165aa79ce43b84139ea83535
Author: Mark Oteiza <address@hidden>
Commit: João Távora <address@hidden>
Simplify Flymake diagnostics buffer UX
Don't create text-buttons unnecessarily, just bind RET and SPC in the
diagnostics buffer to a command that figures out which diagnostic it
was invoked on.
* lisp/progmodes/flymake.el
(flymake--diagnostics-buffer-mode-keymap): Renamed from
flymake--diagnostics-buffer-button-keymap.
(flymake-show-diagnostic-at-point): Don't take a button.
(flymake-goto-diagnostic-at-point): Don't pass button to
flymake-show-diagnostic-at-point.
(flymake--diagnostics-buffer-entries): Simplify.
---
lisp/progmodes/flymake.el | 35 ++++++++++++++---------------------
1 file changed, 14 insertions(+), 21 deletions(-)
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 24b1950..fb5fc7d 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -988,17 +988,19 @@ applied."
(defvar-local flymake--diagnostics-buffer-source nil)
-(defvar flymake--diagnostics-buffer-button-keymap
+(defvar flymake-diagnostics-buffer-mode-map
(let ((map (make-sparse-keymap)))
- (define-key map [mouse-1] 'push-button)
- (define-key map (kbd "RET") 'push-button)
+ (define-key map [mouse-1] 'flymake-goto-diagnostic-at-point)
+ (define-key map (kbd "RET") 'flymake-goto-diagnostic-at-point)
(define-key map (kbd "SPC") 'flymake-show-diagnostic-at-point)
map))
-(defun flymake-show-diagnostic-at-point (button)
- "Show location of diagnostic of BUTTON."
- (interactive (list (button-at (point))))
- (let* ((overlay (button-get button 'flymake-overlay)))
+(defun flymake-show-diagnostic-at-point ()
+ "Show location of diagnostic at point."
+ (interactive)
+ (let* ((id (or (tabulated-list-get-id)
+ (user-error "Nothing at point")))
+ (overlay (plist-get id :overlay)))
(with-current-buffer (overlay-buffer overlay)
(with-selected-window
(display-buffer (current-buffer))
@@ -1008,11 +1010,11 @@ applied."
'highlight))
(current-buffer))))
-(defun flymake-goto-diagnostic-at-point (button)
- "Show location of diagnostic of BUTTON."
- (interactive (list (button-at (point))))
+(defun flymake-goto-diagnostic-at-point ()
+ "Show location of diagnostic at point."
+ (interactive)
(pop-to-buffer
- (flymake-show-diagnostic-at-point button)))
+ (flymake-show-diagnostic-at-point)))
(defun flymake--diagnostics-buffer-entries ()
(with-current-buffer flymake--diagnostics-buffer-source
@@ -1032,16 +1034,7 @@ applied."
:severity (flymake--lookup-type-property
type
'severity (warning-numeric-level :error)))
- `[(,(format "%s" line)
- keymap ,flymake--diagnostics-buffer-button-keymap
- action flymake-goto-diagnostic-at-point
- mouse-action flymake-goto-diagnostic-at-point
- help-echo ,(mapconcat #'identity
- '("mouse-1, RET: goto location at
point"
- "SPC: show location at point")
- "\n")
- flymake-diagnostic ,diag
- flymake-overlay ,ov)
+ `[,(format "%s" line)
,(format "%s" col)
,(propertize (format "%s" type)
'face (flymake--lookup-type-property