1
0
Fork 0

feat(oni-git-commit): Refrain from refilling default commit comment

When I write a commit message there is always the default comment that lists
which files are to be committed, which files aren't staged for commit, and which
files are just entirely unknown to git at the moment. By default with
‘refill-mode’ turned on (which I have to make it easier to modify paragraphs
after I've written them) this comment usually gets all garbled by the refill
command.

This bit of code prevents the comment from being filled initially.
This commit is contained in:
Tom Willemse 2023-02-24 23:34:20 -08:00
parent 6dd72d5323
commit d8ff9915ba

View file

@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org> ;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local ;; Keywords: local
;; Version: 2021.1130.152816 ;; Version: 2022.1207.083737
;; Package-Requires: (git-commit) ;; Package-Requires: (git-commit)
;; This program is free software; you can redistribute it and/or modify ;; This program is free software; you can redistribute it and/or modify
@ -26,9 +26,31 @@
;;; Code: ;;; Code:
(require 'git-commit)
(eval-when-compile
(require 'refill))
(defun oni-git-commit-disable-comment-refill (_ _ _)
"Clear refill-doit if auto-fill-inhibit-regexp matches."
(when (and git-commit-mode
refill-doit
(save-excursion
(goto-char refill-doit)
(looking-at auto-fill-inhibit-regexp)))
(setq refill-doit nil)))
(defun oni-git-commit-set-auto-fill-inhibit-regexp ()
"Set the auto-fill-inhibit-regexp to match git commit comments."
(setq-local auto-fill-inhibit-regexp (rx (minimal-match (zero-or-more "\n")) "#")))
(add-hook 'git-commit-mode-hook #'oni-git-commit-set-auto-fill-inhibit-regexp)
(add-hook 'git-commit-mode-hook 'electric-pair-local-mode) (add-hook 'git-commit-mode-hook 'electric-pair-local-mode)
(add-hook 'git-commit-mode-hook 'electric-quote-local-mode) (add-hook 'git-commit-mode-hook 'electric-quote-local-mode)
(add-hook 'git-commit-mode-hook 'refill-mode) (add-hook 'git-commit-mode-hook 'refill-mode)
(add-function :after (symbol-function 'refill-after-change-function)
#'oni-git-commit-disable-comment-refill)
(provide 'oni-git-commit) (provide 'oni-git-commit)
;;; oni-git-commit.el ends here ;;; oni-git-commit.el ends here