]> git.eshelyaron.com Git - emacs.git/commitdiff
New function treesit--language-git-version-tags
authorPeter Oliver <git@mavit.org.uk>
Fri, 3 Jan 2025 12:02:50 +0000 (12:02 +0000)
committerEshel Yaron <me@eshelyaron.com>
Wed, 23 Jul 2025 18:59:02 +0000 (20:59 +0200)
* lisp/treesit.el (treesit--language-git-version-tags): New function to
  list version tags for a Tree-sitter parser Git repository (bug#78848).

(cherry picked from commit 22db624c0e341035b2be7ecaba0047a2aaf3eff4)

lisp/treesit.el

index a9da0fa3a36e2ddb38e102e9f45b740a0a75c887..6cd22b2ac5e875929ae7e22912f2ae22bade6d0e 100644 (file)
@@ -5154,6 +5154,18 @@ nil."
       (string-trim (buffer-string)))
      (t nil))))
 
+(defun treesit--language-git-version-tags (repo-dir)
+  "Return a list of Git version tags in REPO-DIR, sorted latest first.
+
+Return the output of \"git tag --list --sort=-version:refname 'v*'\".
+If anything goes wrong, return nil."
+  (with-temp-buffer
+    (cond
+     ((eq 0 (call-process "git" nil t nil "-C" repo-dir "tag"
+                          "--list" "--sort=-version:refname" "v*"))
+      (split-string (buffer-string)))
+     (t nil))))
+
 (defun treesit--language-git-timestamp (repo-dir)
   "Return the commit date in REPO-DIR in UNIX epoch.