emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 0e83f5f 2/5: Simplify Flymake diagnostics buffer


From: João Távora
Subject: [Emacs-diffs] emacs-26 0e83f5f 2/5: Simplify Flymake diagnostics buffer UX
Date: Tue, 10 Oct 2017 12:21:46 -0400 (EDT)

branch: emacs-26
commit 0e83f5f279b1b2c42dc214c512c0fa0a9b27af35
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 5581fd4..bdf784c 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -1077,17 +1077,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))
@@ -1097,11 +1099,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
@@ -1121,16 +1123,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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]