Skip to content
Closed
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions packages/common/src/types/TreeSitter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 Tree sitter parser throws memory errors
* https://github.com/cursorless-dev/cursorless/issues/2879
*/
disableLatexMsg?: string;
}
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@ export class LanguageDefinitionsImpl
return;
}

if (languageId === "latex" && this.treeSitter.disableLatexMsg != null) {
return undefined;
}

const definition =
(await LanguageDefinition.create(
this.ide,
Expand All @@ -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,
Expand Down
5 changes: 5 additions & 0 deletions packages/cursorless-vscode/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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",
};
}

Expand Down
Loading