* etc/snippets/tempel/text-mode: Simplify git-commit-mode detection. Signed-off-by: Andrew Tropin <andrew@trop.in>
		
			
				
	
	
		
			158 lines
		
	
	
	
		
			6.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
	
		
			6.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| -*- mode: lisp-data -*-
 | |
| 
 | |
| text-mode :when (bound-and-true-p git-commit-mode)
 | |
| 
 | |
| (add\ "gnu: Add "
 | |
|       (p (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)))
 | |
|          var)
 | |
|       "." n n
 | |
|       "* " (p (or (car (magit-staged-files)) ""))
 | |
|       " (" (s var ) "): New variable.")
 | |
| 
 | |
| (remove\ "gnu: Remove "
 | |
|          (p (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)))
 | |
|             var)
 | |
|          "." n n
 | |
|          "* " (p (or (car (magit-staged-files)) ""))
 | |
|          " (" (s var) "): Delete variable.")
 | |
| 
 | |
| (rename\ "gnu: "
 | |
|          (p (with-temp-buffer
 | |
|               (magit-git-wash #'magit-diff-wash-diffs
 | |
|                 "diff" "--staged")
 | |
|               (beginning-of-buffer)
 | |
|               (when (search-forward "-(define-public " nil 'noerror)
 | |
|                 (thing-at-point 'sexp 'no-properties)))
 | |
|             prev-var)
 | |
|          ": Rename package to "
 | |
|          (p (with-temp-buffer
 | |
|               (magit-git-wash #'magit-diff-wash-diffs
 | |
|                 "diff" "--staged")
 | |
|               (beginning-of-buffer)
 | |
|               (when (search-forward "+(define-public " nil 'noerror)
 | |
|                 (thing-at-point 'sexp 'no-properties)))
 | |
|             new-var)
 | |
|          "." n n
 | |
|          "* " (p (or (car (magit-staged-files)) "")) " (" (s prev-var) "): "
 | |
|          "Define in terms of" n
 | |
|          "'deprecated-package'." n
 | |
|          "(" (s new-var) "): New variable, formerly known as \""
 | |
|          (s prev-var) "\".")
 | |
| 
 | |
| (update\ "gnu: "
 | |
|          (p (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)))
 | |
|             var)
 | |
|          ": Update to "
 | |
|          (p (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))))))
 | |
|             version)
 | |
|          "." n n
 | |
|          "* " (p (or (car (magit-staged-files)) "")) " (" (s var) "): "
 | |
|          "Update to " (s version) "." n
 | |
|          (mapconcat (lambda (file) (concat "* " file))
 | |
|                     (cdr (magit-staged-files))
 | |
|                     "\n"))
 | |
| 
 | |
| (addcl\ "gnu: Add cl-"
 | |
|         (p (replace-regexp-in-string
 | |
|             "^cl-" "" (with-temp-buffer
 | |
|                         (magit-git-wash #'magit-diff-wash-diffs
 | |
|                           "diff" "--staged")
 | |
|                         (beginning-of-buffer)
 | |
|                         (when (search-forward "+(define-public " nil 'noerror)
 | |
|                           (replace-regexp-in-string
 | |
|                            "^sbcl-" ""
 | |
|                            (thing-at-point 'sexp 'no-properties)))))
 | |
|            var)
 | |
|         "." n n
 | |
|         "* " (p (or (car (magit-staged-files)) ""))
 | |
|         " (cl-" (s var)
 | |
|         ", ecl-" (s var)
 | |
|         ", sbcl-" (s var) "): New variables.")
 | |
| 
 | |
| (https\ "gnu: "
 | |
|         (p (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)))
 | |
|            var)
 | |
|         ": Use HTTPS home page." n n
 | |
|         "* " (p (or (car (magit-staged-files)) ""))
 | |
|         " (" (s var) ")[home-page]: Use HTTPS."
 | |
|         n
 | |
|         (mapconcat (lambda (file) (concat "* " file))
 | |
|                    (cdr (magit-staged-files))
 | |
|                    "\n"))
 | |
| 
 | |
| (move\ "gnu: "
 | |
|        (p (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)))
 | |
|           var)
 | |
|        ": Move to ("
 | |
|        (p (with-temp-buffer
 | |
|             (magit-git-wash #'magit-diff-wash-diffs
 | |
|               "diff" "--staged")
 | |
|             (goto-char (point-min))
 | |
|             (when (and
 | |
|                    (re-search-forward "\\+(define-public \\(\\S-+\\)"
 | |
|                                       nil 'noerror)
 | |
|                    (re-search-backward "modified[ ]*\\(\\S-+\\)"
 | |
|                                        nil 'noerror))
 | |
|               (string-replace
 | |
|                "\.scm" ""
 | |
|                (string-replace "/" " "
 | |
|                                (match-string-no-properties 1)))))
 | |
|           new-module)
 | |
|        ")." n
 | |
|        n
 | |
|        "* " (p (with-temp-buffer
 | |
|                   (magit-git-wash #'magit-diff-wash-diffs
 | |
|                     "diff" "--staged")
 | |
|                   (goto-char (point-min))
 | |
|                   (when (and
 | |
|                          (re-search-forward "\\-(define-public \\(\\S-+\\)"
 | |
|                                             nil 'noerror)
 | |
|                          (re-search-backward "modified[ ]*\\(\\S-+\\)"
 | |
|                                              nil 'noerror))
 | |
|                     (match-string-no-properties 1)))
 | |
|                 source)
 | |
|        " (" (s var) "): Move from here…" n
 | |
|        "* " (concat (string-replace " " "/" new-module) ".scm")
 | |
|        " (" (s var) "): …to here.")
 |