emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/debbugs 840ef57 023/311: (debbugs-display-status): New


From: Stefan Monnier
Subject: [elpa] externals/debbugs 840ef57 023/311: (debbugs-display-status): New command and keystroke.
Date: Sun, 29 Nov 2020 18:41:32 -0500 (EST)

branch: externals/debbugs
commit 840ef573e7ab7af845009968ae8cbcc36c33abcb
Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
Commit: Lars Magne Ingebrigtsen <larsi@gnus.org>

    (debbugs-display-status): New command and keystroke.
    (debbugs-widget-map): New keymap.
    (debbugs-emacs): Use it.
---
 ChangeLog      |  3 +++
 debbugs-gnu.el | 39 +++++++++++++++++++++++++++------------
 2 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f2b1ba3..35cd683 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,9 @@
        clickable links, since that requires you to select certain parts
        of the line, which is annoying.
        (debbugs-show-reports): Store the status in the buffer.
+       (debbugs-display-status): New command and keystroke.
+       (debbugs-widget-map): New keymap.
+       (debbugs-emacs): Use it.
 
 2011-07-03  Michael Albinus  <michael.albinus@gmx.de>
 
diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 004560f..095b70d 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -47,6 +47,11 @@
 (defface debbugs-done '((t (:foreground "DarkGrey")))
   "Face for closed bug reports.")
 
+(defvar debbugs-widget-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map "\r" 'widget-button-press)
+    map))
+
 (defun debbugs-emacs (severities &optional package suppress-done archivedp)
   "List all outstanding Emacs bugs."
   (interactive
@@ -96,6 +101,7 @@
                                        (widget-get widget :suppress-done)
                                        widget
                                        (widget-get widget :widgets)))
+                            :keymap debbugs-widget-map
                             :suppress-done suppress-done
                             :buffer-name (format "*Emacs Bugs*<%d>" i)
                             :bug-ids (butlast ids (- (length ids) default))
@@ -213,6 +219,7 @@
     (define-key map "\r" 'debbugs-select-report)
     (define-key map "q" 'kill-buffer)
     (define-key map "s" 'debbugs-toggle-sort)
+    (define-key map "d" 'debbugs-display-status)
     map))
 
 (defvar debbugs-sort-state 'number)
@@ -271,22 +278,30 @@ The following commands are available:
 (defvar debbugs-bug-number nil)
 
 (defun debbugs-current-id ()
-  (cdr (assq 'id (get-text-property (line-beginning-position)
-                                   'debbugs-status))))
+  (or (cdr (assq 'id (get-text-property (line-beginning-position)
+                                       'debbugs-status)))
+      (error "No bug on the current line")))
+
+(defun debbugs-display-status (id)
+  "Display the status of the report on the current line."
+  (interactive (list (debbugs-current-id)))
+  (let ((status (get-text-property (line-beginning-position)
+                                  'debbugs-status)))
+    (pop-to-buffer "*Bug Status*")
+    (erase-buffer)
+    (pp status (current-buffer))
+    (goto-char (point-min))))
 
 (defun debbugs-select-report (id)
   "Select the report on the current line."
   (interactive (list (debbugs-current-id)))
-  (if (null id)
-      ;; We go to another buffer.
-      (widget-button-press (point))
-    ;; We open the report messages.
-    (gnus-read-ephemeral-emacs-bug-group
-     id (cons (current-buffer)
-             (current-window-configuration)))
-    (with-current-buffer (window-buffer (selected-window))
-      (debbugs-summary-mode 1)
-      (set (make-local-variable 'debbugs-bug-number) id))))
+  ;; We open the report messages.
+  (gnus-read-ephemeral-emacs-bug-group
+   id (cons (current-buffer)
+           (current-window-configuration)))
+  (with-current-buffer (window-buffer (selected-window))
+    (debbugs-summary-mode 1)
+    (set (make-local-variable 'debbugs-bug-number) id)))))
 
 (defvar debbugs-summary-mode-map
   (let ((map (make-sparse-keymap)))



reply via email to

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