Message ID | 0f74c4468dae139ae2406b8200d0ba6bdc374455.1694490271.git.maxim.cournoyer@gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#65883] .dir-locals.el: Update bug-reference configuration and document it. | expand |
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > +;;; This extends the default expression (the first complicated blob) to also > +;;; match URLs such as <https://issues.guix.gnu.org/58697> or > +;;; <https://bugs.gnu.org/58697>. It is also extended to detect "Fixes: > +;;; #NNNNN" git trailers. > +(setq bug-reference-bug-regexp > + (concat > + "\\(" > + "\\(?:\\b\\(?:[Bb]ug ?#?\\|[Pp]atch ?#\\|[Ff]ixes:? ?#\\|\ > +RFE ?#\\|PR [a-z+-]+/\\)\\([0-9]+\\(?:#[0-9]+\\)?\\)\\)" > + "\\|" > + "\\(?:<https://bugs\\.gnu\\.org/\\(?2:[0-9]+\\)>\\)" > + "\\)")) Is there any reason not to use ‘rx’, rather than, as you say, “complicated blobs’? Particularly with Emacs' requirement for ‘\\’ everywhere, regexps become even more like line noise. If I'm reading this regexp right, for example, it could be: --8<---------------cut here---------------start------------->8--- (setq bug-reference-bug-regexp2 (rx (group (or (seq word-boundary (or (seq (char "Bb") "ug" (zero-or-one " ") (zero-or-one "#")) (seq (char "Pp") "atch" (zero-or-one " ") "#") (seq (char "Ff") "ixes" (zero-or-one ":") (zero-or-one " ") "#") (seq "RFE" (zero-or-one " ") "#") (seq "PR " (one-or-more (char "a-z+-")) "/")) (group (one-or-more (char "0-9")) (zero-or-one (seq "#" (one-or-more (char "0-9")))))) (seq "<https://bugs.gnu.org/" (group-n 2 (one-or-more (char "0-9"))) ">"))))) --8<---------------cut here---------------end--------------->8--- -bjc
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > +(setq debbugs-browse-url-regexp > + "^https?://\\(debbugs\\|\\(issues\\.guix\\|bugs\\)\\)\\.gnu\\.org/\ > +\\(cgi/bugreport\\.cgi\\?bug=\\)?\\(?3:[[:digit:]]+\\)$") > +@end lisp While I'm at it, here's the ‘rx’ form of the above: --8<---------------cut here---------------start------------->8--- (setq debbugs-browse-url-regexp (rx line-start "http" (zero-or-one "s") "://" (or "debbugs" "issues.guix" "bugs") ".gnu.org" (one-or-more "/") (group (zero-or-one "cgi/bugreport.cgi?bug=")) (group-n 3 (one-or-more digit)) line-end)) --8<---------------cut here---------------end--------------->8--- -bjc
Hi, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > (nil) <bug-reference-url-format>: Update URL. Add comment. > * doc/contributing.texi (The Perfect Setup): New "Viewing bugs within Emacs" > subsection. [...] > + ;; For use with 'bug-reference-prog-mode'. Extra bug-reference > + ;; configuration should be done in your Emacs user configuration file; > + ;; refer to (info (guix) The Perfect Setup). Nitpick: (info "(guix) The Perfect Setup“), so one can C-x C-e it. :-) > (bug-reference-bug-regexp > . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)") Should we add issues.guix here? [...] > +(setq bug-reference-bug-regexp > + (concat > + "\\(" > + "\\(?:\\b\\(?:[Bb]ug ?#?\\|[Pp]atch ?#\\|[Ff]ixes:? ?#\\|\ I second Brian’s suggestion to use ‘rx’. Other than that, I think it’s wonderful, well done! Ludo’.
Hi, Ludovic Courtès <ludo@gnu.org> writes: > Hi, > > Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > >> (nil) <bug-reference-url-format>: Update URL. Add comment. >> * doc/contributing.texi (The Perfect Setup): New "Viewing bugs within Emacs" >> subsection. > > [...] > >> + ;; For use with 'bug-reference-prog-mode'. Extra bug-reference >> + ;; configuration should be done in your Emacs user configuration file; >> + ;; refer to (info (guix) The Perfect Setup). > > Nitpick: (info "(guix) The Perfect Setup“), so one can C-x C-e it. :-) Neat! I was wondering what's the trick to get them turn into links in Emacs. >> (bug-reference-bug-regexp >> . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)") > > Should we add issues.guix here? No, because issues.guix ones are already URLs, opened in a browser. For Emacs users who prefer to have them open in Debbugs, that's what the documented debbugs-browse-url-regexp is for. > > [...] > >> +(setq bug-reference-bug-regexp >> + (concat >> + "\\(" >> + "\\(?:\\b\\(?:[Bb]ug ?#?\\|[Pp]atch ?#\\|[Ff]ixes:? ?#\\|\ > > I second Brian’s suggestion to use ‘rx’. That looks nicer indeed. Will review it soon. > Other than that, I think it’s wonderful, well done! Thanks!
Hi, brian <bjc@spork.org> writes: > Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > >> +(setq debbugs-browse-url-regexp >> + "^https?://\\(debbugs\\|\\(issues\\.guix\\|bugs\\)\\)\\.gnu\\.org/\ >> +\\(cgi/bugreport\\.cgi\\?bug=\\)?\\(?3:[[:digit:]]+\\)$") >> +@end lisp > > While I'm at it, here's the ‘rx’ form of the above: > > (setq debbugs-browse-url-regexp > (rx > line-start > "http" (zero-or-one "s") "://" > (or "debbugs" "issues.guix" "bugs") > ".gnu.org" (one-or-more "/") > (group (zero-or-one "cgi/bugreport.cgi?bug=")) > (group-n 3 (one-or-more digit)) > line-end)) Installed with your changes!
Hi Maxim, Sorry to be late to the party. On Mon, 11 Sep 2023 at 23:44, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > - ;; For use with 'bug-reference-prog-mode'. > + ;; For use with 'bug-reference-prog-mode'. Extra bug-reference > + ;; configuration should be done in your Emacs user configuration file; > + ;; refer to (info (guix) The Perfect Setup). > (bug-reference-bug-regexp > . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)") > - (bug-reference-url-format . "https://bugs.gnu.org/%s") > + (bug-reference-url-format . "https://issues.guix.gnu.org/%s") Just to point that in addition, this: https://issues.guix.gnu.org/issue/12345 is also valid. > +(setq bug-reference-url-format "https://bugs.gnu.org/%s") > +;; The following allows Emacs Debbugs user to open the issue directly within > +;; Emacs. > +(setq debbugs-browse-url-regexp > + "^https?://\\(debbugs\\|\\(issues\\.guix\\|bugs\\)\\)\\.gnu\\.org/\ > +\\(cgi/bugreport\\.cgi\\?bug=\\)?\\(?3:[[:digit:]]+\\)$") > +@end lisp Idem here. Cheers, simon
Hello Simon, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi Maxim, > > Sorry to be late to the party. > > On Mon, 11 Sep 2023 at 23:44, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >> - ;; For use with 'bug-reference-prog-mode'. >> + ;; For use with 'bug-reference-prog-mode'. Extra bug-reference >> + ;; configuration should be done in your Emacs user configuration file; >> + ;; refer to (info (guix) The Perfect Setup). >> (bug-reference-bug-regexp >> . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)") >> - (bug-reference-url-format . "https://bugs.gnu.org/%s") >> + (bug-reference-url-format . "https://issues.guix.gnu.org/%s") > > Just to point that in addition, this: > > https://issues.guix.gnu.org/issue/12345 > > is also valid. > >> +(setq bug-reference-url-format "https://bugs.gnu.org/%s") >> +;; The following allows Emacs Debbugs user to open the issue directly within >> +;; Emacs. >> +(setq debbugs-browse-url-regexp >> + "^https?://\\(debbugs\\|\\(issues\\.guix\\|bugs\\)\\)\\.gnu\\.org/\ >> +\\(cgi/bugreport\\.cgi\\?bug=\\)?\\(?3:[[:digit:]]+\\)$") >> +@end lisp > > Idem here. Thanks for pointing these other possibilities. Unless they are prominently documented though, I'd maybe opt to leave them out, as their format simply uses more characters for no added value.
Hi Maxim, On Wed, 20 Sept 2023 at 17:28, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > Thanks for pointing these other possibilities. Unless they are > prominently documented though, I'd maybe opt to leave them out, as their > format simply uses more characters for no added value. What I have noticed is the way Mumi resolves from Message-ID to Debbugs-ID: https://issues.guix.gnu.org/msgid/63a33d011b9154bbb4de7ad1d183043220fec49a.1691432343.git.h.goebel@crazy-compilers.com -> https://issues.guix.gnu.org/issue/65131#msgid-4f7b841a5c1ab6ea0ee22d3bbd2bedab2ed435fa And this case could be handled, no? Cheers, simon
Hi, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi Maxim, > > On Wed, 20 Sept 2023 at 17:28, Maxim Cournoyer > <maxim.cournoyer@gmail.com> wrote: > >> Thanks for pointing these other possibilities. Unless they are >> prominently documented though, I'd maybe opt to leave them out, as their >> format simply uses more characters for no added value. > > What I have noticed is the way Mumi resolves from Message-ID to Debbugs-ID: > > https://issues.guix.gnu.org/msgid/63a33d011b9154bbb4de7ad1d183043220fec49a.1691432343.git.h.goebel@crazy-compilers.com > -> > https://issues.guix.gnu.org/issue/65131#msgid-4f7b841a5c1ab6ea0ee22d3bbd2bedab2ed435fa > > And this case could be handled, no? I'm not sure how it'd work; bug-reference understand a simple full bug URLs, not ones pointing to a particular message.
Hi, On Mon, 25 Sept 2023 at 18:13, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >> Thanks for pointing these other possibilities. Unless they are > >> prominently documented though, I'd maybe opt to leave them out, as their > >> format simply uses more characters for no added value. > > > > What I have noticed is the way Mumi resolves from Message-ID to Debbugs-ID: > > > > https://issues.guix.gnu.org/msgid/63a33d011b9154bbb4de7ad1d183043220fec49a.1691432343.git.h.goebel@crazy-compilers.com > > -> > > https://issues.guix.gnu.org/issue/65131#msgid-4f7b841a5c1ab6ea0ee22d3bbd2bedab2ed435fa > > > > And this case could be handled, no? > > I'm not sure how it'd work; bug-reference understand a simple full bug > URLs, not ones pointing to a particular message. I was answering about "Unless they are prominently documented though" by mentioning the /issue/ part is there when Mumi resolves from Message-ID to Debbugs-ID. Well, "prominently" documented when speaking about Mumi is difficult to evaluate. ;-) Instead, I notice Mumi uses it. And I was asking about the regular expression for https://issues.guix.gnu.org/issue/65131#msgid-4f7b841a5c1ab6ea0ee22d3bbd2bedab2ed435fa where bug-reference can extract 65131. Somehow, I think that the regular expression of bug-reference should handle https://issues.guix.gnu.org/issue/12345 in addition to https://issues.guix.gnu.org/12345. And bonus for https://issues.guix.gnu.org/issue/65131#msgid-[:alnum:] :-) Cheers, simon
Hi Simon, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi, > > On Mon, 25 Sept 2023 at 18:13, Maxim Cournoyer > <maxim.cournoyer@gmail.com> wrote: > >> >> Thanks for pointing these other possibilities. Unless they are >> >> prominently documented though, I'd maybe opt to leave them out, as their >> >> format simply uses more characters for no added value. >> > >> > What I have noticed is the way Mumi resolves from Message-ID to Debbugs-ID: >> > >> > https://issues.guix.gnu.org/msgid/63a33d011b9154bbb4de7ad1d183043220fec49a.1691432343.git.h.goebel@crazy-compilers.com >> > -> >> > https://issues.guix.gnu.org/issue/65131#msgid-4f7b841a5c1ab6ea0ee22d3bbd2bedab2ed435fa >> > >> > And this case could be handled, no? >> >> I'm not sure how it'd work; bug-reference understand a simple full bug >> URLs, not ones pointing to a particular message. > > I was answering about "Unless they are prominently documented though" > by mentioning the /issue/ part is there when Mumi resolves from > Message-ID to Debbugs-ID. Well, "prominently" documented when > speaking about Mumi is difficult to evaluate. ;-) Instead, I notice > Mumi uses it. > > And I was asking about the regular expression for > https://issues.guix.gnu.org/issue/65131#msgid-4f7b841a5c1ab6ea0ee22d3bbd2bedab2ed435fa > where bug-reference can extract 65131. > > Somehow, I think that the regular expression of bug-reference should > handle https://issues.guix.gnu.org/issue/12345 in addition to > https://issues.guix.gnu.org/12345. And bonus for > https://issues.guix.gnu.org/issue/65131#msgid-[:alnum:] :-) OK, thanks for explaining. I don't object to the proposed change, but I'll pass on the implementation :-).
diff --git a/.dir-locals.el b/.dir-locals.el index 36714c1aa4..c63262848c 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -5,10 +5,12 @@ (tab-width . 8) (sentence-end-double-space . t) - ;; For use with 'bug-reference-prog-mode'. + ;; For use with 'bug-reference-prog-mode'. Extra bug-reference + ;; configuration should be done in your Emacs user configuration file; + ;; refer to (info (guix) The Perfect Setup). (bug-reference-bug-regexp . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)") - (bug-reference-url-format . "https://bugs.gnu.org/%s") + (bug-reference-url-format . "https://issues.guix.gnu.org/%s") (eval . (add-to-list 'completion-ignored-extensions ".go")) diff --git a/doc/contributing.texi b/doc/contributing.texi index a0da871f1a..608da89a2c 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -379,6 +379,51 @@ The Perfect Setup save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs. +@subsection Viewing Bugs within Emacs + +Emacs has a nice minor mode called @code{bug-reference}, which, when +combined with @samp{emacs-debbugs} (the Emacs package), can be used to +open links such as @samp{<https://bugs.gnu.org/58697>} or +@samp{<https://issues.guix.gnu.org/58697>} as bug report buffers. From +there you can easily consult the email thread via the Gnus interface, +reply or modify the bug status, all without leaving the comfort of +Emacs! Below is a sample configuration to add to your @file{~/.emacs} +configuration file: + +@lisp +;;; Bug references. +(add-hook 'prog-mode-hook #'bug-reference-prog-mode) +(add-hook 'gnus-mode-hook #'bug-reference-mode) +(add-hook 'erc-mode-hook #'bug-reference-mode) +(add-hook 'bug-reference-mode-hook 'debbugs-browse-mode) +(add-hook 'bug-reference-prog-mode-hook 'debbugs-browse-mode) +(add-hook 'gnus-summary-mode-hook 'bug-reference-mode) +(add-hook 'gnus-article-mode-hook 'bug-reference-mode) + +;;; This extends the default expression (the first complicated blob) to also +;;; match URLs such as <https://issues.guix.gnu.org/58697> or +;;; <https://bugs.gnu.org/58697>. It is also extended to detect "Fixes: +;;; #NNNNN" git trailers. +(setq bug-reference-bug-regexp + (concat + "\\(" + "\\(?:\\b\\(?:[Bb]ug ?#?\\|[Pp]atch ?#\\|[Ff]ixes:? ?#\\|\ +RFE ?#\\|PR [a-z+-]+/\\)\\([0-9]+\\(?:#[0-9]+\\)?\\)\\)" + "\\|" + "\\(?:<https://bugs\\.gnu\\.org/\\(?2:[0-9]+\\)>\\)" + "\\)")) +(setq bug-reference-url-format "https://bugs.gnu.org/%s") +;; The following allows Emacs Debbugs user to open the issue directly within +;; Emacs. +(setq debbugs-browse-url-regexp + "^https?://\\(debbugs\\|\\(issues\\.guix\\|bugs\\)\\)\\.gnu\\.org/\ +\\(cgi/bugreport\\.cgi\\?bug=\\)?\\(?3:[[:digit:]]+\\)$") +@end lisp + +For more information, refer to @ref{Bug Reference,,, emacs, The GNU +Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User +Guide}. + @node Packaging Guidelines @section Packaging Guidelines