Skip to content

Commit b4e7554

Browse files
committed
Implement command to retrieve statement groups
Signed-off-by: worksofliam <[email protected]>
1 parent 7a84ed2 commit b4e7554

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/language/index.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
import { commands, Uri, window, workspace } from "vscode";
12
import { completionProvider } from "./providers/completionProvider";
23
import { formatProvider } from "./providers/formatProvider";
34
import { signatureProvider } from "./providers/parameterProvider";
45
import { problemProvider } from "./providers/problemProvider";
6+
import { getSqlDocument } from "./providers/logic/parse";
7+
import { StatementType } from "./sql/types";
58

69
export function languageInit() {
710
let functionality = [];
@@ -12,6 +15,29 @@ export function languageInit() {
1215
signatureProvider,
1316
problemProvider
1417
);
15-
18+
19+
functionality.push(...registerLanguageCommands());
20+
1621
return functionality;
1722
}
23+
24+
function registerLanguageCommands() {
25+
return [
26+
// Programmable API that is not callable through the UI.
27+
// Solely for the use for other extensions.
28+
commands.registerCommand(`vscode-db2i.language.getStatements`, async (uri?: Uri) => {
29+
const document = await workspace.openTextDocument(uri);
30+
31+
if (document) {
32+
const doc = getSqlDocument(document);
33+
if (doc) {
34+
const groups = doc.getStatementGroups();
35+
return groups.map(g => ({
36+
range: g.range,
37+
type: g.statements[0] ? g.statements[0].type : StatementType.Unknown
38+
}));
39+
}
40+
}
41+
})
42+
]
43+
}

0 commit comments

Comments
 (0)