[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/debbugs ad9c74d 096/311: * debbugs.el (debbugs-get-user
From: |
Stefan Monnier |
Subject: |
[elpa] externals/debbugs ad9c74d 096/311: * debbugs.el (debbugs-get-usertag): Fix comments. |
Date: |
Sun, 29 Nov 2020 18:41:48 -0500 (EST) |
branch: externals/debbugs
commit ad9c74d98e92d6d9e6fdee024904426df9f749f6
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>
* debbugs.el (debbugs-get-usertag): Fix comments.
* debbugs-gnu.el: New command `debbugs-gnu-usertags' and helper functions.
---
debbugs-gnu.el | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
debbugs.el | 4 +--
2 files changed, 95 insertions(+), 2 deletions(-)
diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 753ac16..6eab007 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -34,6 +34,7 @@
;;
;; (autoload 'debbugs-gnu "debbugs-gnu" "" 'interactive)
;; (autoload 'debbugs-gnu-search "debbugs-gnu" "" 'interactive)
+;; (autoload 'debbugs-gnu-usertags "debbugs-gnu" "" 'interactive)
;; The bug tracker is called interactively by
;;
@@ -108,6 +109,22 @@
;; happens as expected for the respective column; sorting in the Title
;; column is depending on whether you are the owner of a bug.
+;; Another approach for listing bugs is calling the command
+;;
+;; M-x debbugs-gnu-usertags
+
+;; This command shows you all existing user tags for the packages
+;; defined in `debbugs-gnu-default-packages'. A prefix for the
+;; command allows you to use other packe names, or an arbitrary string
+;; for a user who has tagged bugs. The command returns the list of
+;; existing user tags for the given user(s) or package name(s),
+;; respectively. Applying RET on a user tag, all bugs tagged with
+;; this user tag are shown.
+
+;; Unfortunately, it is not possible with the SOAP interface to show
+;; all users who have tagged bugs. This list can be retrieved via
+;; <http://debbugs.gnu.org/cgi/pkgindex.cgi?indexon=users>.
+
;;; Code:
(require 'debbugs)
@@ -1113,6 +1130,82 @@ removed instead."
message))))
(funcall send-mail-function))))
+(defvar debbugs-gnu-usertags-mode-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map tabulated-list-mode-map)
+ (define-key map "\r" 'debbugs-gnu-select-usertag)
+ (define-key map [mouse-1] 'debbugs-gnu-select-usertag)
+ (define-key map [mouse-2] 'debbugs-gnu-select-usertag)
+ map))
+
+(define-derived-mode debbugs-gnu-usertags-mode tabulated-list-mode "Usertags"
+ "Major mode for listing user tags.
+
+All normal editing commands are switched off.
+\\<debbugs-gnu-usertags-mode-map>
+
+The following commands are available:
+
+\\{debbugs-gnu-usertags-mode-map}"
+ (buffer-disable-undo)
+ (setq truncate-lines t)
+ (setq buffer-read-only t))
+
+;;;###autoload
+(defun debbugs-gnu-usertags (&optional packages)
+ "List all outstanding Emacs bugs."
+ (interactive
+ (list
+ (if current-prefix-arg
+ (completing-read-multiple
+ "Package name(s) or email address: "
+ (append debbugs-gnu-all-packages (list user-mail-address)) nil nil
+ (mapconcat 'identity debbugs-gnu-default-packages ","))
+ debbugs-gnu-default-packages)))
+
+ (unwind-protect
+ (let ((inhibit-read-only t)
+ (debbugs-port "gnu.org")
+ (buffer-name "*Emacs User Tags*")
+ (user-tab-length
+ (1+ (apply 'max (length "User") (mapcar 'length packages)))))
+
+ ;; Create buffer.
+ (when (get-buffer buffer-name)
+ (kill-buffer buffer-name))
+ (pop-to-buffer (get-buffer-create buffer-name))
+ (debbugs-gnu-usertags-mode)
+ (setq tabulated-list-format `[("User" ,user-tab-length t)
+ ("Tag" 10 t)])
+ (setq tabulated-list-sort-key (cons "User" nil))
+ ;(setq tabulated-list-printer 'debbugs-gnu-print-entry)
+ (erase-buffer)
+
+ ;; Retrieve user tags.
+ (dolist (package packages)
+ (dolist (tag (debbugs-get-usertag :package package))
+ (add-to-list
+ 'tabulated-list-entries
+ ;; `tabulated-list-id' is the parameter list for `debbugs-gnu'.
+ `((("tagged") (,package) nil nil (,tag))
+ ,(vector (propertize package 'mouse-face widget-mouse-face)
+ (propertize tag 'mouse-face widget-mouse-face)))
+ 'append)))
+
+ ;; Show them.
+ (tabulated-list-init-header)
+ (tabulated-list-print)
+
+ (set-buffer-modified-p nil)
+ (goto-char (point-min)))))
+
+(defun debbugs-gnu-select-usertag ()
+ "Select the user tag on the current line."
+ (interactive)
+ ;; We open the bug reports.
+ (let ((args (get-text-property (line-beginning-position)
'tabulated-list-id)))
+ (when args (apply 'debbugs-gnu args))))
+
(provide 'debbugs-gnu)
;;; TODO:
diff --git a/debbugs.el b/debbugs.el
index b3f7fe7..c070bb1 100644
--- a/debbugs.el
+++ b/debbugs.el
@@ -362,7 +362,7 @@ Example:
(setq key (substring (symbol-name kw) 1))
(case kw
((:package)
- ;; Value shall be one word.
+ ;; Value shall be one word. Extract email address, if existing.
(if (string-match "\\`\\S-+\\'" val)
(progn
(when (string-equal "me" val)
@@ -372,7 +372,7 @@ Example:
(add-to-list 'user val))
(error "Wrong %s: %s" key val)))
((:tag)
- ;; Value shall be one word. Extract email address, if existing.
+ ;; Value shall be one word.
(if (string-match "\\`\\S-+\\'" val)
(add-to-list 'tags val)
(error "Wrong %s: %s" key val)))
- [elpa] externals/debbugs 6b87b3b 126/311: Update the debbugs tag face when switching it off, too, (continued)
- [elpa] externals/debbugs 6b87b3b 126/311: Update the debbugs tag face when switching it off, too, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 9136369 130/311: Add a lot of Emacs maintainer DWIM, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs da6a351 132/311: Handle blocked bugs in debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs f50bf5d 137/311: New file debbugs-reference.el, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs b021f3b 138/311: * debbugs-ug.texi (Minor Modes): New node., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 1883e24 053/311: * debbugs.el (debbugs-get-bugs): Extend syntax for packages (and, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs a40dc43 076/311: * debbugs-gnu.el (debbugs-gnu-phrase-prompt): New defconst., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 6f5d15b 078/311: (debbugs-gnu-show-reports): Increase the stale time to two weeks., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 220e57b 077/311: * debbugs-gnu.el (debbugs-gnu-show-reports): Only list merged bugs once., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs f919ced 094/311: Fix typo., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs ad9c74d 096/311: * debbugs.el (debbugs-get-usertag): Fix comments.,
Stefan Monnier <=
- [elpa] externals/debbugs 3371e00 097/311: * debbugs-gnu.el (debbugs-gnu-usertags): Show also local tags., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 46fd25b 100/311: * debbugs.texi: Add 2012 to copyright years., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs d559351 107/311: * README: Add command `debbugs-gnu-bugs'., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 0306e62 108/311: Fix GPL. debbugs is NOT part of Emacs., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs aed4c19 120/311: * debbugs.el:, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 5647a71 125/311: Make the `t' "tag" command persist over reordering, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs c3826d1 134/311: Add *.info and dir to debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 9d44129 136/311: Grammar fixes in debbugs manuals, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 4e3b14c 152/311: Update branch directory, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 5447e7b 158/311: * debbugs-gnu.el (debbugs-gnu-fix-patch): Further patch path fixups., Stefan Monnier, 2020/11/29