1
1
import * as vscode from "vscode" ;
2
2
import { AtelierAPI } from "../api" ;
3
3
import { ClassDefinition } from "../utils/classDefinition" ;
4
+ import { DocumentContentProvider } from "./DocumentContentProvider" ;
4
5
5
6
export class WorkspaceSymbolProvider implements vscode . WorkspaceSymbolProvider {
6
7
public provideWorkspaceSymbols (
@@ -10,10 +11,9 @@ export class WorkspaceSymbolProvider implements vscode.WorkspaceSymbolProvider {
10
11
if ( query . length < 3 ) {
11
12
return null ;
12
13
}
13
- return Promise . all ( [ this . byClasses ( query ) , this . byMethods ( query ) ] ) . then ( ( [ classes , methods ] ) => [
14
- ...classes ,
15
- ...methods ,
16
- ] ) ;
14
+ return Promise . all ( [ this . byClasses ( query ) , this . byRoutines ( query ) , this . byMethods ( query ) ] ) . then (
15
+ ( [ classes , routines , methods ] ) => [ ...classes , ...routines , ...methods ]
16
+ ) ;
17
17
}
18
18
19
19
public async byClasses ( query : string ) : Promise < vscode . SymbolInformation [ ] > {
@@ -34,6 +34,27 @@ export class WorkspaceSymbolProvider implements vscode.WorkspaceSymbolProvider {
34
34
} ) ) ;
35
35
}
36
36
37
+ public async byRoutines ( query : string ) : Promise < vscode . SymbolInformation [ ] > {
38
+ query = `*${ query } *.mac,*${ query } *.int` ;
39
+ const sql = `CALL %Library.RoutineMgr_StudioOpenDialog(?,?,?,?,?,?,?)` ;
40
+ const api = new AtelierAPI ( ) ;
41
+ const direction = "1" ;
42
+ const orderBy = "1" ;
43
+ const systemFiles = "0" ;
44
+ const flat = "1" ;
45
+ const notStudio = "0" ;
46
+ const generated = "0" ;
47
+
48
+ const data = await api . actionQuery ( sql , [ query , direction , orderBy , systemFiles , flat , notStudio , generated ] ) ;
49
+ return data . result . content . map ( ( { Name } ) => ( {
50
+ kind : vscode . SymbolKind . File ,
51
+ location : {
52
+ uri : DocumentContentProvider . getUri ( Name ) ,
53
+ } ,
54
+ name : Name ,
55
+ } ) ) ;
56
+ }
57
+
37
58
public async byMethods ( query : string ) : Promise < vscode . SymbolInformation [ ] > {
38
59
query = query . toUpperCase ( ) ;
39
60
query = `*${ query } *` ;
0 commit comments