Skip to content

Commit 063a61d

Browse files
authored
agentHost Adopt new tree-sitter (#308352)
* agentHost Adopt new tree-sitter * Bump in web * Fix test * fix tests
1 parent 4f91a35 commit 063a61d

File tree

7 files changed

+40
-17
lines changed

7 files changed

+40
-17
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
"@vscode/spdlog": "^0.15.8",
110110
"@vscode/sqlite3": "5.1.12-vscode",
111111
"@vscode/sudo-prompt": "9.3.2",
112-
"@vscode/tree-sitter-wasm": "^0.3.0",
112+
"@vscode/tree-sitter-wasm": "^0.3.1",
113113
"@vscode/vscode-languagedetection": "1.0.23",
114114
"@vscode/windows-mutex": "^0.5.0",
115115
"@vscode/windows-process-tree": "^0.6.0",

remote/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

remote/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"@vscode/ripgrep": "^1.17.1",
1717
"@vscode/spdlog": "^0.15.8",
1818
"@vscode/sqlite3": "5.1.12-vscode",
19-
"@vscode/tree-sitter-wasm": "^0.3.0",
19+
"@vscode/tree-sitter-wasm": "^0.3.1",
2020
"@vscode/vscode-languagedetection": "1.0.23",
2121
"@vscode/windows-process-tree": "^0.6.0",
2222
"@vscode/windows-registry": "^1.2.0",

remote/web/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

remote/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"@microsoft/1ds-post-js": "^3.2.13",
88
"@vscode/codicons": "^0.0.46-1",
99
"@vscode/iconv-lite-umd": "0.7.1",
10-
"@vscode/tree-sitter-wasm": "^0.3.0",
10+
"@vscode/tree-sitter-wasm": "^0.3.1",
1111
"@vscode/vscode-languagedetection": "1.0.23",
1212
"@xterm/addon-clipboard": "^0.3.0-beta.197",
1313
"@xterm/addon-image": "^0.10.0-beta.197",

src/vs/platform/agentHost/node/commandAutoApprover.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,11 @@ export class CommandAutoApprover extends Disposable {
172172

173173
private async _initTreeSitter(): Promise<void> {
174174
try {
175-
const TreeSitter = await import('@vscode/tree-sitter-wasm');
175+
const { default: TreeSitter } = (await import('@vscode/tree-sitter-wasm'));
176+
177+
if (this._store.isDisposed) {
178+
return;
179+
}
176180

177181
// Resolve WASM files from node_modules
178182
const moduleRoot = URI.joinPath(FileAccess.asFileUri(''), '..', 'node_modules', '@vscode', 'tree-sitter-wasm', 'wasm');
@@ -184,14 +188,33 @@ export class CommandAutoApprover extends Disposable {
184188
}
185189
});
186190

191+
if (this._store.isDisposed) {
192+
return;
193+
}
194+
187195
const parser = new TreeSitter.Parser();
188-
this._register(toDisposable(() => parser.delete()));
196+
this._register(toDisposable(() => {
197+
try {
198+
parser.delete();
199+
} catch {
200+
// WASM memory may already be freed
201+
}
202+
}));
189203

190204
// Load bash grammar
191205
const bashWasmPath = URI.joinPath(moduleRoot, 'tree-sitter-bash.wasm').fsPath;
192206
const bashWasm = await fs.promises.readFile(bashWasmPath);
207+
208+
if (this._store.isDisposed) {
209+
return;
210+
}
211+
193212
const bashLanguage = await TreeSitter.Language.load(new Uint8Array(bashWasm.buffer, bashWasm.byteOffset, bashWasm.byteLength));
194213

214+
if (this._store.isDisposed) {
215+
return;
216+
}
217+
195218
this._parser = parser;
196219
this._bashLanguage = bashLanguage;
197220
this._queryClass = TreeSitter.Query;

0 commit comments

Comments
 (0)