From b4e7554b761cebdba4221d5357eb7d14b38b1847 Mon Sep 17 00:00:00 2001 From: worksofliam Date: Wed, 20 Aug 2025 14:00:02 -0400 Subject: [PATCH 1/3] Implement command to retrieve statement groups Signed-off-by: worksofliam --- src/language/index.ts | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/language/index.ts b/src/language/index.ts index fac8010e..77e1cbc0 100644 --- a/src/language/index.ts +++ b/src/language/index.ts @@ -1,7 +1,10 @@ +import { commands, Uri, window, workspace } from "vscode"; import { completionProvider } from "./providers/completionProvider"; import { formatProvider } from "./providers/formatProvider"; import { signatureProvider } from "./providers/parameterProvider"; import { problemProvider } from "./providers/problemProvider"; +import { getSqlDocument } from "./providers/logic/parse"; +import { StatementType } from "./sql/types"; export function languageInit() { let functionality = []; @@ -12,6 +15,29 @@ export function languageInit() { signatureProvider, problemProvider ); - + + functionality.push(...registerLanguageCommands()); + return functionality; } + +function registerLanguageCommands() { + return [ + // Programmable API that is not callable through the UI. + // Solely for the use for other extensions. + commands.registerCommand(`vscode-db2i.language.getStatements`, async (uri?: Uri) => { + const document = await workspace.openTextDocument(uri); + + if (document) { + const doc = getSqlDocument(document); + if (doc) { + const groups = doc.getStatementGroups(); + return groups.map(g => ({ + range: g.range, + type: g.statements[0] ? g.statements[0].type : StatementType.Unknown + })); + } + } + }) + ] +} \ No newline at end of file From 5a25ac424360017d3e7c62bb52e9de4422d5af7a Mon Sep 17 00:00:00 2001 From: worksofliam Date: Thu, 21 Aug 2025 11:43:32 -0400 Subject: [PATCH 2/3] Change version for build Signed-off-by: worksofliam --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6acf73f2..761eb706 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vscode-db2i", "displayName": "Db2 for IBM i", "description": "Db2 for IBM i tools in VS Code", - "version": "1.14.0", + "version": "1.14.0-dev1", "engines": { "vscode": "^1.95.0" }, From b57bfb9bbb8425c48d059656aa8a94475d4f58c9 Mon Sep 17 00:00:00 2001 From: worksofliam Date: Thu, 21 Aug 2025 11:52:25 -0400 Subject: [PATCH 3/3] Update to package.json for new command Signed-off-by: worksofliam --- package.json | 9 +++++++++ src/contributes.json | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/package.json b/package.json index 761eb706..709eaa33 100644 --- a/package.json +++ b/package.json @@ -365,6 +365,11 @@ ] }, "commands": [ + { + "command": "vscode-db2i.language.getStatements", + "title": "Get statements", + "category": "Db2 for i" + }, { "command": "vscode-db2i.json.pasteGenerator", "title": "Paste JSON as SQL", @@ -794,6 +799,10 @@ ], "menus": { "commandPalette": [ + { + "command": "vscode-db2i.language.getStatements", + "when": "never" + }, { "command": "vscode-db2i.getStatementUri", "when": "editorLangId == sql" diff --git a/src/contributes.json b/src/contributes.json index 7368a32f..605e7f90 100644 --- a/src/contributes.json +++ b/src/contributes.json @@ -96,6 +96,11 @@ ] }, "commands": [ + { + "command": "vscode-db2i.language.getStatements", + "title": "Get statements", + "category": "Db2 for i" + }, { "command": "vscode-db2i.json.pasteGenerator", "title": "Paste JSON as SQL", @@ -114,6 +119,10 @@ ], "menus": { "commandPalette": [ + { + "command": "vscode-db2i.language.getStatements", + "when": "never" + }, { "command": "vscode-db2i.getStatementUri", "when": "editorLangId == sql"