From 8a56abe30d33e7d94799ad34d8d9c98737ee3db6 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Thu, 29 May 2025 04:00:16 +0200 Subject: [PATCH 1/3] Disable latex parser on vscode versions >= 1.98.0 --- packages/common/src/types/TreeSitter.ts | 6 ++++++ .../src/languages/LanguageDefinitions.ts | 8 ++++++++ packages/cursorless-vscode/src/extension.ts | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/packages/common/src/types/TreeSitter.ts b/packages/common/src/types/TreeSitter.ts index 5127df6a9e..ca3dfb5a5a 100644 --- a/packages/common/src/types/TreeSitter.ts +++ b/packages/common/src/types/TreeSitter.ts @@ -28,4 +28,10 @@ export interface TreeSitter { * @returns The query if that language is already loaded */ createQuery(languageId: string, source: string): Query | undefined; + + /** + * FIXME: On newer vscode versions the latex parse throws memory errors + * https://github.com/cursorless-dev/cursorless/issues/2879 + */ + disableLatexMsg?: string; } diff --git a/packages/cursorless-engine/src/languages/LanguageDefinitions.ts b/packages/cursorless-engine/src/languages/LanguageDefinitions.ts index a0c255816a..a9bc151f8e 100644 --- a/packages/cursorless-engine/src/languages/LanguageDefinitions.ts +++ b/packages/cursorless-engine/src/languages/LanguageDefinitions.ts @@ -129,6 +129,10 @@ export class LanguageDefinitionsImpl return; } + if (languageId === "latex" && this.treeSitter.disableLatexMsg != null) { + return undefined; + } + const definition = (await LanguageDefinition.create( this.ide, @@ -151,6 +155,10 @@ export class LanguageDefinitionsImpl const definition = this.languageDefinitions.get(languageId); if (definition == null) { + if (languageId === "latex" && this.treeSitter.disableLatexMsg != null) { + throw Error(this.treeSitter.disableLatexMsg); + } + throw new Error( "Expected language definition entry is missing for languageId " + languageId, diff --git a/packages/cursorless-vscode/src/extension.ts b/packages/cursorless-vscode/src/extension.ts index 9293574f1b..8182ca722f 100644 --- a/packages/cursorless-vscode/src/extension.ts +++ b/packages/cursorless-vscode/src/extension.ts @@ -62,6 +62,7 @@ import { registerCommands } from "./registerCommands"; import { revisualizeOnCustomRegexChange } from "./revisualizeOnCustomRegexChange"; import { storedTargetHighlighter } from "./storedTargetHighlighter"; import { vscodeApi } from "./vscodeApi"; +import * as semver from "semver"; /** * Extension entrypoint called by VSCode on Cursorless startup. @@ -266,6 +267,10 @@ function createTreeSitter(parseTreeApi: ParseTreeApi): TreeSitter { loadLanguage: parseTreeApi.loadLanguage, createQuery: parseTreeApi.createQuery, + + disableLatexMsg: semver.lt(vscode.version, "1.98.0") + ? undefined + : "Latex is disabled on vscode versions >= 1.98.0. issues/2879", }; } From 1418bec60e73f6652061d16e4a974c795c59cbd2 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Thu, 29 May 2025 04:01:54 +0200 Subject: [PATCH 2/3] update comment --- packages/common/src/types/TreeSitter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/common/src/types/TreeSitter.ts b/packages/common/src/types/TreeSitter.ts index ca3dfb5a5a..04fadef98e 100644 --- a/packages/common/src/types/TreeSitter.ts +++ b/packages/common/src/types/TreeSitter.ts @@ -30,7 +30,7 @@ export interface TreeSitter { createQuery(languageId: string, source: string): Query | undefined; /** - * FIXME: On newer vscode versions the latex parse throws memory errors + * FIXME: On newer vscode versions the latex Tree sitter parser throws memory errors * https://github.com/cursorless-dev/cursorless/issues/2879 */ disableLatexMsg?: string; From 2f1c57e85a76d78116acbabebf75947d56241a4b Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Thu, 29 May 2025 14:41:46 +0200 Subject: [PATCH 3/3] Update packages/cursorless-vscode/src/extension.ts Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com> --- packages/cursorless-vscode/src/extension.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-vscode/src/extension.ts b/packages/cursorless-vscode/src/extension.ts index 8182ca722f..c550b48bc2 100644 --- a/packages/cursorless-vscode/src/extension.ts +++ b/packages/cursorless-vscode/src/extension.ts @@ -270,7 +270,7 @@ function createTreeSitter(parseTreeApi: ParseTreeApi): TreeSitter { disableLatexMsg: semver.lt(vscode.version, "1.98.0") ? undefined - : "Latex is disabled on vscode versions >= 1.98.0. issues/2879", + : "Latex is disabled on vscode versions >= 1.98.0. See https://github.com/cursorless-dev/cursorless/issues/2879", }; }