mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
* admin/notes/tree-sitter/build-module/build.sh: Update org for toml/yaml. * admin/tree-sitter/treesit-admin.el (treesit-admin--builtin-language-sources): Add verified versions. * lisp/progmodes/c-ts-mode.el: Append language source to treesit-language-source-alist. (c-ts-mode, c++-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/cmake-ts-mode.el: Append language source to treesit-language-source-alist. (cmake-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/csharp-mode.el: Append language source to treesit-language-source-alist. (csharp-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/dockerfile-ts-mode.el: Append language source to treesit-language-source-alist. (dockerfile-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/elixir-ts-mode.el: Append language source to treesit-language-source-alist. (elixir-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/go-ts-mode.el: Append language source to treesit-language-source-alist. (go-ts-mode, go-mod-ts-mode, go-work-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/heex-ts-mode.el: Append language source to treesit-language-source-alist. (heex-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/java-ts-mode.el: Append language source to treesit-language-source-alist. (java-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/js.el: Append language source to treesit-language-source-alist. (js-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/json-ts-mode.el: Append language source to treesit-language-source-alist. (json-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/lua-ts-mode.el: Append language source to treesit-language-source-alist. (lua-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist): Update versions from comments in ts-modes. Append to treesit-language-source-alist. (php-ts-mode-install-parsers): Use treesit-language-source-alist directly. (php-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/ruby-ts-mode.el: Append language source to treesit-language-source-alist. (ruby-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/rust-ts-mode.el: Append language source to treesit-language-source-alist. (rust-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/sh-script.el: Append language source to treesit-language-source-alist. (bash-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/typescript-ts-mode.el: Append language source to treesit-language-source-alist. (typescript-ts-mode, tsx-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/css-mode.el: Append language source to treesit-language-source-alist. (css-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/html-ts-mode.el: Append language source to treesit-language-source-alist. (html-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/markdown-ts-mode.el: Append language source to treesit-language-source-alist. (markdown-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--language-source-alist): Append to treesit-language-source-alist. (mhtml-ts-mode-install-parsers): Use treesit-language-source-alist directly. (mhtml-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/toml-ts-mode.el: Append language source to treesit-language-source-alist. (toml-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/yaml-ts-mode.el: Append language source to treesit-language-source-alist. (yaml-ts-mode): Use treesit-ensure-installed. * test/infra/Dockerfile.emba: Add verified versions to treesit-language-source-alist.
103 lines
2 KiB
Bash
Executable file
103 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
lang=$1
|
|
topdir="$PWD"
|
|
|
|
case $(uname) in
|
|
"Darwin")
|
|
soext="dylib"
|
|
;;
|
|
*"MINGW"*)
|
|
soext="dll"
|
|
;;
|
|
*)
|
|
soext="so"
|
|
;;
|
|
esac
|
|
|
|
echo "Building ${lang}"
|
|
|
|
### Retrieve sources
|
|
|
|
org="tree-sitter"
|
|
repo="tree-sitter-${lang}"
|
|
sourcedir="tree-sitter-${lang}/src"
|
|
grammardir="tree-sitter-${lang}"
|
|
|
|
case "${lang}" in
|
|
"dockerfile")
|
|
org="camdencheek"
|
|
;;
|
|
"cmake")
|
|
org="uyha"
|
|
;;
|
|
"elixir")
|
|
org="elixir-lang"
|
|
;;
|
|
"go-mod")
|
|
# The parser is called "gomod".
|
|
lang="gomod"
|
|
org="camdencheek"
|
|
;;
|
|
"go-work")
|
|
# The parser is called "gowork".
|
|
lang="gowork"
|
|
org="omertuc"
|
|
;;
|
|
"heex")
|
|
org="phoenixframework"
|
|
;;
|
|
"lua")
|
|
org="tree-sitter-grammars"
|
|
;;
|
|
"typescript")
|
|
sourcedir="tree-sitter-typescript/typescript/src"
|
|
grammardir="tree-sitter-typescript/typescript"
|
|
;;
|
|
"tsx")
|
|
repo="tree-sitter-typescript"
|
|
sourcedir="tree-sitter-typescript/tsx/src"
|
|
grammardir="tree-sitter-typescript/tsx"
|
|
;;
|
|
"toml")
|
|
org="tree-sitter-grammars"
|
|
;;
|
|
"yaml")
|
|
org="tree-sitter-grammars"
|
|
;;
|
|
esac
|
|
|
|
git clone "https://github.com/${org}/${repo}.git" \
|
|
--depth 1 --quiet
|
|
cp "${grammardir}"/grammar.js "${sourcedir}"
|
|
# We have to go into the source directory to compile, because some
|
|
# C files refer to files like "../../common/scanner.h".
|
|
cd "${sourcedir}"
|
|
|
|
### Build
|
|
|
|
cc -fPIC -c -I. parser.c
|
|
# Compile scanner.c.
|
|
if test -f scanner.c
|
|
then
|
|
cc -fPIC -c -I. scanner.c
|
|
fi
|
|
# Compile scanner.cc.
|
|
if test -f scanner.cc
|
|
then
|
|
c++ -fPIC -I. -c scanner.cc
|
|
fi
|
|
# Link.
|
|
if test -f scanner.cc
|
|
then
|
|
c++ -fPIC -shared *.o -o "libtree-sitter-${lang}.${soext}"
|
|
else
|
|
cc -fPIC -shared *.o -o "libtree-sitter-${lang}.${soext}"
|
|
fi
|
|
|
|
### Copy out
|
|
|
|
mkdir -p "${topdir}/dist"
|
|
cp "libtree-sitter-${lang}.${soext}" "${topdir}/dist"
|
|
cd "${topdir}"
|
|
rm -rf "${repo}"
|