@@ -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