File tree Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change
1
+ import { commands , Uri , window , workspace } from "vscode" ;
1
2
import { completionProvider } from "./providers/completionProvider" ;
2
3
import { formatProvider } from "./providers/formatProvider" ;
3
4
import { signatureProvider } from "./providers/parameterProvider" ;
4
5
import { problemProvider } from "./providers/problemProvider" ;
6
+ import { getSqlDocument } from "./providers/logic/parse" ;
7
+ import { StatementType } from "./sql/types" ;
5
8
6
9
export function languageInit ( ) {
7
10
let functionality = [ ] ;
@@ -12,6 +15,29 @@ export function languageInit() {
12
15
signatureProvider ,
13
16
problemProvider
14
17
) ;
15
-
18
+
19
+ functionality . push ( ...registerLanguageCommands ( ) ) ;
20
+
16
21
return functionality ;
17
22
}
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
+ }
You can’t perform that action at this time.
0 commit comments