diff --git a/oni-git-commit.el b/oni-git-commit.el index bcdf2b1..9aaa487 100644 --- a/oni-git-commit.el +++ b/oni-git-commit.el @@ -4,7 +4,7 @@ ;; Author: Tom Willemse ;; Keywords: local -;; Version: 2021.1130.152816 +;; Version: 2022.1207.083737 ;; Package-Requires: (git-commit) ;; This program is free software; you can redistribute it and/or modify @@ -26,9 +26,31 @@ ;;; 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-quote-local-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) ;;; oni-git-commit.el ends here