Skip to content

Commit 8a56abe

Browse files
Disable latex parser on vscode versions >= 1.98.0
1 parent 0edf34c commit 8a56abe

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

packages/common/src/types/TreeSitter.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,10 @@ export interface TreeSitter {
2828
* @returns The query if that language is already loaded
2929
*/
3030
createQuery(languageId: string, source: string): Query | undefined;
31+
32+
/**
33+
* FIXME: On newer vscode versions the latex parse throws memory errors
34+
* https://github.com/cursorless-dev/cursorless/issues/2879
35+
*/
36+
disableLatexMsg?: string;
3137
}

packages/cursorless-engine/src/languages/LanguageDefinitions.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ export class LanguageDefinitionsImpl
129129
return;
130130
}
131131

132+
if (languageId === "latex" && this.treeSitter.disableLatexMsg != null) {
133+
return undefined;
134+
}
135+
132136
const definition =
133137
(await LanguageDefinition.create(
134138
this.ide,
@@ -151,6 +155,10 @@ export class LanguageDefinitionsImpl
151155
const definition = this.languageDefinitions.get(languageId);
152156

153157
if (definition == null) {
158+
if (languageId === "latex" && this.treeSitter.disableLatexMsg != null) {
159+
throw Error(this.treeSitter.disableLatexMsg);
160+
}
161+
154162
throw new Error(
155163
"Expected language definition entry is missing for languageId " +
156164
languageId,

packages/cursorless-vscode/src/extension.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import { registerCommands } from "./registerCommands";
6262
import { revisualizeOnCustomRegexChange } from "./revisualizeOnCustomRegexChange";
6363
import { storedTargetHighlighter } from "./storedTargetHighlighter";
6464
import { vscodeApi } from "./vscodeApi";
65+
import * as semver from "semver";
6566

6667
/**
6768
* Extension entrypoint called by VSCode on Cursorless startup.
@@ -266,6 +267,10 @@ function createTreeSitter(parseTreeApi: ParseTreeApi): TreeSitter {
266267

267268
loadLanguage: parseTreeApi.loadLanguage,
268269
createQuery: parseTreeApi.createQuery,
270+
271+
disableLatexMsg: semver.lt(vscode.version, "1.98.0")
272+
? undefined
273+
: "Latex is disabled on vscode versions >= 1.98.0. issues/2879",
269274
};
270275
}
271276

0 commit comments

Comments
 (0)