Use treesitter parser libraries
Closes #1 (closed)
The latest tree-sitter update (v0.22) has made it easier to build parser libraries.
One option would be to link against them but I don't think Neovim supports that.
The alternative I went for was to generate symlinks as mentioned in #1 (closed).
Updated parsers:
-
tree-sitter-bash -
tree-sitter-c -
tree-sitter-lua -
tree-sitter-markdown -
tree-sitter-python -
tree-sitter-query -
tree-sitter-vimdoc
Sample PKGBUILD for tree-sitter-query
pkgname=tree-sitter-query
pkgver=0.2.0
pkgrel=1
pkgdesc='TS query grammar for tree-sitter'
arch=('x86_64')
url='https://github.com/tree-sitter-grammars/tree-sitter-query'
license=('Apache')
groups=('tree-sitter-grammars')
provides=('libtree-sitter-query.so=0-64')
makedepends=('tree-sitter-cli' 'nodejs')
optdepends=('tree-sitter: core library')
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('5a0ee26c4af94adb9ab850a518613f75e7040354f5b049a5b85457ebf579ae8b')
prepare() {
cd "$pkgname-$pkgver"
tree-sitter generate --no-bindings
}
build() {
cd "$pkgname-$pkgver"
make PREFIX=/usr
}
package() {
cd "$pkgname-$pkgver"
make DESTDIR="$pkgdir" PREFIX=/usr install
install -Dm644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
}
The prepare
step and makedepends
were added just in case the existing src/parser.c
is incompatible.
Edited by Ioannis Somos