Skip to content

Commit 61bb7e5

Browse files
authored
Reinstate local web-tree-sitter build (#69)
* Reinstate local web-tree-sitter build * Get tarball instead of git cloning * Fixed tarball
1 parent 7edcf53 commit 61bb7e5

File tree

5 files changed

+39
-5
lines changed

5 files changed

+39
-5
lines changed

Makefile

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,27 @@ parsers/tree-sitter-c-sharp.wasm: node_modules/tree-sitter-c-sharp/package.json
3636
mkdir -p $(dir $@)
3737
npx tree-sitter build-wasm $(dir $^)
3838
mv tree-sitter-c_sharp.wasm $@
39+
40+
41+
# Build web-tree-sitter
42+
43+
WEB_TREE_SITTER_FILES := README.md package.json tree-sitter-web.d.ts tree-sitter.js tree-sitter.wasm
44+
WEB_TREE_SITTER_DIR := vendor/web-tree-sitter
45+
46+
MAKE_CACHE_DIR := .make-work
47+
48+
.PHONY: web-tree-sitter
49+
web-tree-sitter: $(addprefix $(WEB_TREE_SITTER_DIR)/,$(WEB_TREE_SITTER_FILES))
50+
51+
$(addprefix $(WEB_TREE_SITTER_DIR)/,$(WEB_TREE_SITTER_FILES)): tree-sitter-version
52+
@rm -rf $(MAKE_CACHE_DIR)/tree-sitter
53+
@TREE_SITTER_VERSION=$(shell cat tree-sitter-version) ;\
54+
mkdir -p $(MAKE_CACHE_DIR)/tree-sitter && \
55+
curl -L https://api.github.com/repos/tree-sitter/tree-sitter/tarball/$$TREE_SITTER_VERSION | \
56+
tar -xz -C $(MAKE_CACHE_DIR)/tree-sitter --strip-components=1
57+
@cd $(MAKE_CACHE_DIR)/tree-sitter && \
58+
./script/build-wasm
59+
@mkdir -p $(WEB_TREE_SITTER_DIR)
60+
@cp $(MAKE_CACHE_DIR)/tree-sitter/LICENSE $(WEB_TREE_SITTER_DIR)
61+
@cp $(addprefix $(MAKE_CACHE_DIR)/tree-sitter/lib/binding_web/,$(WEB_TREE_SITTER_FILES)) $(WEB_TREE_SITTER_DIR)
62+
@rm -rf $(MAKE_CACHE_DIR)/tree-sitter

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@ When working with WSL, the host vscode instance connects to a vscode server on t
5959
- If you're adding language support to `vscode-parse-tree`, you need to clone that as well, build it, and link it into the `vscode-server` extension folder: `ln -s ~/your/code/vscode-parse-tree ~/.vscode-server/extensions/parse-tree` for instance.
6060
- If you get errors about needing to install the `Remote-WSL` extension, you might need to manually delete the extension from the host side and try again.
6161

62+
### Updating `web-tree-sitter`
63+
64+
We build a custom version of `web-tree-sitter` to ensure that we can always use the latest version and fix any problems as they come up.
65+
To update `web-tree-sitter` update the contents of [./tree-sitter-version](./tree-sitter-version) to the latest commit sha of [tree-sitter](https://github.com/tree-sitter/tree-sitter/commits/master).
66+
67+
The script which builds our custom version is at the end of our [`Makefile`](./Makefile).
68+
6269
## Change Log
6370

6471
See [CHANGELOG.md](CHANGELOG.md).

package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"vscode:prepublish": "npm run compile",
7272
"compile": "tsc -p ./ && make parsers",
7373
"watch": "tsc -watch -p ./",
74+
"preinstall": "make web-tree-sitter",
7475
"test": "npm run compile && node ./out/test",
7576
"benchmark": "npm run compile && node ./out/benchmark",
7677
"debug": "npm run compile && node --nolazy --inspect-brk=9229 ./out/test",
@@ -127,6 +128,9 @@
127128
"dependencies": {
128129
"jsonc-parser": "^2.1.0",
129130
"tar": ">=4.4.2",
130-
"web-tree-sitter": "^0.20.8"
131-
}
131+
"web-tree-sitter": "file:vendor/web-tree-sitter"
132+
},
133+
"bundledDependencies": [
134+
"web-tree-sitter"
135+
]
132136
}

tree-sitter-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
6bbb50bef8249e6460e7d69e42cc8146622fa4fd

yarn.lock

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2722,10 +2722,8 @@ wcwidth@^1.0.1:
27222722
dependencies:
27232723
defaults "^1.0.3"
27242724

2725-
web-tree-sitter@^0.20.8:
2725+
"web-tree-sitter@file:vendor/web-tree-sitter":
27262726
version "0.20.8"
2727-
resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz#1e371cb577584789cadd75cb49c7ddfbc99d04c8"
2728-
integrity sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==
27292727

27302728
webidl-conversions@^3.0.0:
27312729
version "3.0.1"

0 commit comments

Comments
 (0)