From db15ba99866a6bd25c2ed94851f859db54c3db43 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Fri, 3 Jan 2025 12:02:50 +0000 Subject: [PATCH] New function treesit--language-git-version-tags * 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 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lisp/treesit.el b/lisp/treesit.el index a9da0fa3a36..6cd22b2ac5e 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -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. -- 2.39.5