;*- lexical-binding: t; -*- (defun my-ts-install () (interactive) (let* ((langs '("c" "cpp" "java" "lua" "powershell")) (ext (car dynamic-library-suffixes)) (ts-dir (expand-file-name "tree-sitter" user-emacs-directory))) (make-directory ts-dir t) (dolist (lang langs) (let ((url (format "https://dist.ihorzash.com/treesitter/%d-%s%s" (treesit-library-abi-version) lang ext)) (dest (expand-file-name (format "libtree-sitter-%s%s" lang ext) ts-dir))) (when (and (eq system-type 'windows-nt) (file-exists-p dest)) (let ((temp-dest (concat dest ".old"))) (ignore-errors (rename-file dest temp-dest t)))) (url-copy-file url dest t) (message "Grammar for %s is installed!" lang))))) (provide 'my-treesitter)