mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 06:18:07 -05:00
988a49c78e
* etc/snippets/text-mode/guix-commit-message-update-package: Since git commit mode is not derived from any Lisp mode, so-called sexp or symbols do not include the period character. As a consequence, names including versions are not properly extracted. Also use more idiomatic (goto-char (point-min)) instead of (beginning-of-buffer).
26 lines
No EOL
1 KiB
Text
26 lines
No EOL
1 KiB
Text
# -*- mode: snippet -*-
|
|
# name: guix-commit-message-update-package
|
|
# key: update
|
|
# condition: git-commit-mode
|
|
# --
|
|
|
|
gnu: ${1:`(with-temp-buffer
|
|
(magit-git-wash #'magit-diff-wash-diffs
|
|
"diff" "--staged")
|
|
(goto-char (point-min))
|
|
(when (re-search-forward "(define-public \\(\\S-+\\)" nil 'noerror)
|
|
(match-string-no-properties 1)))`}: Update to ${2:`(with-temp-buffer
|
|
(magit-git-wash #'magit-diff-wash-diffs
|
|
"diff" "--staged")
|
|
(goto-char (point-min))
|
|
(search-forward "name" nil 'noerror)
|
|
(search-forward "+" nil 'noerror) ; first change
|
|
(when (and (search-forward "version " nil 'noerror)
|
|
(looking-at-p "\""))
|
|
(let ((end (save-excursion (search-forward "\")" nil 'noerror))))
|
|
(when end
|
|
(forward-char)
|
|
(buffer-substring-no-properties (point) (- end 2))))))`}.
|
|
|
|
* `(car (magit-staged-files))` ($1): Update to $2.$0
|
|
`(mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files)) "\n")` |