(require 'fj)
(setopt fj-user "apteryx")
(require 'visual-fill-column)
(add-hook 'visual-line-mode-hook #'visual-fill-column-for-vline)
(require 'forgejo)
(add-hook 'forgejo-watch-hooks #'forgejo-alert-notify)
(setopt forgejo-buffer-setup-functions
(list (lambda (buffer)
(unless (derived-mode-p 'tabulated-list-mode)
(visual-line-mode t))))
forgejo-watch-rules '(("*")))
(require 'bug-reference)
(add-hook 'erc-mode-hook #'bug-reference-mode)
(add-hook 'gnus-mode-hook #'bug-reference-mode)
(add-hook 'gnus-summary-mode-hook #'bug-reference-mode)
(add-hook 'gnus-article-mode-hook #'bug-reference-mode)
(add-hook 'magit-revision-mode #'bug-reference-mode)
(add-hook 'prog-mode-hook #'bug-reference-prog-mode)
(let* ((bug-regexp (rx (seq (?? "bug")
(group (seq (? "guix/guix") (or "#" "!"))
(group (one-or-more digit))))))
(make-url-format (lambda (org repo)
(lambda ()
(let ((matched-text (match-string 0))
(number (match-string 2)))
(if (string-search "bug#" matched-text)
(concat "https://issues.guix.gnu.org/" number)
(format "https://codeberg.org/%s/%s/issues/%s"
org repo number))))))
(guix-url-format (funcall make-url-format "guix" "guix"))
(guile-url-format (funcall make-url-format "guile" "guile")))
(add-to-list 'bug-reference-setup-from-irc-alist
(list "#guix" "Libera.Chat" bug-regexp guix-url-format)
(list "#guile" "Libera.Chat" bug-regexp guile-url-format))
(add-to-list 'bug-reference-setup-from-mail-alist
(list (rx "guixotic.coop") nil bug-regexp guix-url-format))
(add-to-list 'bug-reference-setup-from-mail-alist
(list (rx (seq "lists." (* anything) "guile"))
nil bug-regexp guile-url-format)))
(require 'debbugs)
(require 'debbugs-browse)
(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode)
(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode)
(add-hook 'log-view-mode-hook #'debbugs-browse-mode) (add-hook 'bug-reference-mode-hook #'forgejo-browse-mode)
(add-hook 'bug-reference-prog-mode-hook #'forgejo-browse-mode)
(add-hook 'log-view-mode-hook #'forgejo-browse-mode)
(setq debbugs-browse-url-regexp
(rx "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))))
(setq debbugs-gnu-default-packages '("guix" "guix-patches"))
(setq debbugs-gnu-default-severities
'("serious" "important" "normal" "minor" "wishlist"))