Skip to content

Commit d5afd91

Browse files
Disable swift parser on vscode version >= 1.98.0 (#111)
1 parent 8f7289b commit d5afd91

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "parse-tree",
33
"displayName": "Parse tree",
44
"description": "Access document syntax using tree-sitter",
5-
"version": "0.37.2",
5+
"version": "0.38.0",
66
"publisher": "pokey",
77
"repository": {
88
"type": "git",

src/extension.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,18 @@ export async function activate(context: vscode.ExtensionContext) {
7070
const trees: { [uri: string]: treeSitter.Tree } = {};
7171

7272
/**
73-
* FIXME: On newer vscode versions the latex Tree sitter parser throws memory errors
73+
* FIXME: On newer vscode versions some Tree sitter parser throws memory errors
7474
* https://github.com/cursorless-dev/cursorless/issues/2879
75+
* https://github.com/cursorless-dev/vscode-parse-tree/issues/110
7576
*/
76-
const disableLatex = semver.gte(vscode.version, "1.98.0");
77+
const disabledLanguages = semver.gte(vscode.version, "1.98.0")
78+
? new Set(["latex", "swift"])
79+
: null;
7780

78-
const validateGetLatex = (languageId: string) => {
79-
if (languageId === "latex" && disableLatex) {
81+
const validateGetLanguage = (languageId: string) => {
82+
if (disabledLanguages?.has(languageId)) {
8083
throw new Error(
81-
"Latex is disabled on vscode versions >= 1.98.0. See https://github.com/cursorless-dev/cursorless/issues/2879"
84+
`${languageId} is disabled on vscode versions >= 1.98.0. See https://github.com/cursorless-dev/cursorless/issues/2879`
8285
);
8386
}
8487
};
@@ -97,7 +100,7 @@ export async function activate(context: vscode.ExtensionContext) {
97100
return true;
98101
}
99102

100-
if (languageId === "latex" && disableLatex) {
103+
if (disabledLanguages?.has(languageId)) {
101104
return false;
102105
}
103106

@@ -263,7 +266,7 @@ export async function activate(context: vscode.ExtensionContext) {
263266
const languageId = document.languageId;
264267

265268
if (languageId in languages) {
266-
validateGetLatex(document.languageId);
269+
validateGetLanguage(document.languageId);
267270
throw new LanguageStillLoadingError(languageId);
268271
} else {
269272
throw new UnsupportedLanguageError(languageId);
@@ -283,7 +286,7 @@ export async function activate(context: vscode.ExtensionContext) {
283286
console.warn(
284287
"vscode-parse-tree: getLanguage is deprecated, use createQuery(languageId, source) instead."
285288
);
286-
validateGetLatex(languageId);
289+
validateGetLanguage(languageId);
287290
return languages[languageId]?.parser?.language ?? undefined;
288291
},
289292

@@ -293,7 +296,7 @@ export async function activate(context: vscode.ExtensionContext) {
293296
): treeSitter.Query | undefined {
294297
const language = languages[languageId]?.parser?.language;
295298
if (language == null) {
296-
validateGetLatex(languageId);
299+
validateGetLanguage(languageId);
297300
return undefined;
298301
}
299302
return new treeSitter.Query(language, source);

0 commit comments

Comments
 (0)