Skip to content

Commit 76016fd

Browse files
Use new createQuery Api
1 parent 2659aa3 commit 76016fd

File tree

5 files changed

+21
-20
lines changed

5 files changed

+21
-20
lines changed
Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Range, TextDocument } from "@cursorless/common";
2-
import type { Language, Node, Tree } from "web-tree-sitter";
2+
import type { Node, Query, Tree } from "web-tree-sitter";
33

44
export interface TreeSitter {
55
/**
@@ -12,19 +12,20 @@ export interface TreeSitter {
1212
*/
1313
getTree(document: TextDocument): Tree;
1414

15-
/**
16-
* Gets a language if it is loaded
17-
*
18-
* @param languageId The language id of the language to get
19-
* @returns The language if it is already loaded
20-
*/
21-
getLanguage(languageId: string): Language | undefined;
22-
2315
/**
2416
* Loads a language, returning true if it was successfully loaded
2517
*
2618
* @param languageId The language id of the language to load
2719
* @returns `true` if the language was successfully loaded
2820
*/
2921
loadLanguage(languageId: string): Promise<boolean>;
22+
23+
/**
24+
* Create a query if the language is loaded.
25+
*
26+
* @param languageId The language id of the language to get
27+
* @param source The query source
28+
* @returns The query if that language is already loaded
29+
*/
30+
createQuery(languageId: string, source: string): Query | undefined;
3031
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Range, TextDocument, TreeSitter } from "@cursorless/common";
2-
import type { Language, Node, Tree } from "web-tree-sitter";
2+
import type { Node, Query, Tree } from "web-tree-sitter";
33

44
export class DisabledTreeSitter implements TreeSitter {
55
getTree(_document: TextDocument): Tree {
@@ -10,11 +10,11 @@ export class DisabledTreeSitter implements TreeSitter {
1010
return Promise.resolve(false);
1111
}
1212

13-
getLanguage(_languageId: string): Language | undefined {
13+
getNodeAtLocation(_document: TextDocument, _range: Range): Node {
1414
throw new Error("Tree sitter not provided");
1515
}
1616

17-
getNodeAtLocation(_document: TextDocument, _range: Range): Node {
17+
createQuery(_languageId: string, _source: string): Query | undefined {
1818
throw new Error("Tree sitter not provided");
1919
}
2020
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@ export class LanguageDefinition {
6060
return undefined;
6161
}
6262

63-
const language = treeSitter.getLanguage(languageId);
63+
const rawQuery = treeSitter.createQuery(languageId, rawLanguageQueryString);
6464

65-
if (language == null) {
66-
throw Error(`Could not get Tree sitter language for ${languageId}`);
65+
if (rawQuery == null) {
66+
throw Error(
67+
`Could not create Tree sitter query for language ${languageId}`,
68+
);
6769
}
6870

69-
const rawQuery = new Query(language, rawLanguageQueryString);
70-
7171
const query = TreeSitterQuery.create(languageId, treeSitter, rawQuery);
7272

7373
return new LanguageDefinition(query);

packages/cursorless-vscode/src/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ function createTreeSitter(parseTreeApi: ParseTreeApi): TreeSitter {
265265
},
266266

267267
loadLanguage: parseTreeApi.loadLanguage,
268-
getLanguage: parseTreeApi.getLanguage,
268+
createQuery: parseTreeApi.createQuery,
269269
};
270270
}
271271

packages/vscode-common/src/getExtensionApi.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { CommandServerApi } from "@cursorless/common";
22
import * as vscode from "vscode";
3-
import type { Language, Node, Tree } from "web-tree-sitter";
3+
import type { Node, Query, Tree } from "web-tree-sitter";
44
import type { VscodeTestHelpers } from "./TestHelpers";
55

66
export interface CursorlessApi {
@@ -11,7 +11,7 @@ export interface ParseTreeApi {
1111
getNodeAtLocation(location: vscode.Location): Node;
1212
getTreeForUri(uri: vscode.Uri): Tree;
1313
loadLanguage: (languageId: string) => Promise<boolean>;
14-
getLanguage(languageId: string): Language | undefined;
14+
createQuery(languageId: string, source: string): Query | undefined;
1515
}
1616

1717
export async function getExtensionApi<T>(extensionId: string) {

0 commit comments

Comments
 (0)