;;; Forgejo & Codeberg ;;; fj.el (require 'fj) (setopt fj-user "apteryx") ;;; Visual-fill-column. (require 'visual-fill-column) (add-hook 'visual-line-mode-hook #'visual-fill-column-for-vline) ;;; Emacs-forgejo. (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 '(("*"))) ;;; Bug-reference, Debbugs & friends. (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"))) ;; For ERC. (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)) ;; For Gnus. (add-to-list 'bug-reference-setup-from-mail-alist (list (rx "guixotic.coop") ;catch-all 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) ;for vc-chage-log (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) ;for vc-chage-log ;; The following allows Emacs Debbugs user to open the issue directly within ;; Emacs. (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)))) ;; Reduce the number of prompts with 'M-x debbugs-gnu'. (setq debbugs-gnu-default-packages '("guix" "guix-patches")) ;; Show feature requests. (setq debbugs-gnu-default-severities '("serious" "important" "normal" "minor" "wishlist"))