summary refs log tree commit diff
path: root/etc/snippets/yas/text-mode/guix-commit-message-update-package
diff options
context:
space:
mode:
authorNicolas Graves <ngraves@ngraves.fr>2022-08-12 10:58:48 +0200
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2022-08-30 11:50:14 +0200
commitc4acaf412064568a546034871a9e0d3888aa7937 (patch)
tree5e7bded5fd11b96dc65627b54942f6da5792abf8 /etc/snippets/yas/text-mode/guix-commit-message-update-package
parent6beadc82df204f315d06ea35f2e232bb32f8e440 (diff)
downloadguix-c4acaf412064568a546034871a9e0d3888aa7937.tar.gz
etc: Add tempel snippets.
* etc/snippets/tempel/scheme-mode: New file.
* etc/snippets/tempel/text-mode: New file.
* etc/snippets/scheme-mode: Moved from here...
* etc/snippets/yas/scheme-mode: ... to here.
* etc/snippets/text-mode: Moved from here...
* etc/snippets/yas/text-mode: ... to here.
* doc/contributing.texi ("The Perfect Setup"): Adjust yasnippet setup
accordingly.  Add tempel setup.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Diffstat (limited to 'etc/snippets/yas/text-mode/guix-commit-message-update-package')
-rw-r--r--etc/snippets/yas/text-mode/guix-commit-message-update-package26
1 files changed, 26 insertions, 0 deletions
diff --git a/etc/snippets/yas/text-mode/guix-commit-message-update-package b/etc/snippets/yas/text-mode/guix-commit-message-update-package
new file mode 100644
index 0000000000..b08df74a0b
--- /dev/null
+++ b/etc/snippets/yas/text-mode/guix-commit-message-update-package
@@ -0,0 +1,26 @@
+# -*- 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")`
\ No newline at end of file