@@ -9,35 +9,40 @@ export class ObjectScriptExplorerProvider implements vscode.TreeDataProvider<Nod
9
9
public onDidChange ?: vscode . Event < vscode . Uri > ;
10
10
public onDidChangeTreeData : vscode . Event < NodeBase > ;
11
11
private _onDidChangeTreeData : vscode . EventEmitter < NodeBase > ;
12
- private _showExtra4Workspace : string [ ] = [ ] ;
12
+ private _showExtra4Workspace : { [ key : string ] : string [ ] } [ ] = [ ] ;
13
13
14
14
public constructor ( ) {
15
15
this . _onDidChangeTreeData = new vscode . EventEmitter < NodeBase > ( ) ;
16
16
this . onDidChangeTreeData = this . _onDidChangeTreeData . event ;
17
17
}
18
18
19
19
public async selectNamespace ( workspaceFolder : string ) : Promise < any > {
20
+ const extra4Workspace = this . _showExtra4Workspace [ workspaceFolder ] || [ ] ;
20
21
const api = new AtelierAPI ( workspaceFolder ) ;
21
22
return api
22
23
. serverInfo ( )
23
24
. then ( ( data ) => data . result . content . namespaces )
24
- . then ( ( data ) => data . filter ( ( ns ) => ns !== api . ns && ! this . _showExtra4Workspace . includes ( ns ) ) )
25
+ . then ( ( data ) => data . filter ( ( ns ) => ns !== api . ns && ! extra4Workspace . includes ( ns ) ) )
25
26
. then ( ( data ) => data . map ( ( ns ) => ( { label : ns } ) ) )
26
27
. then ( vscode . window . showQuickPick )
27
28
. then ( ( ns ) => this . showExtra4Workspace ( workspaceFolder , ns . label ) ) ;
28
29
}
29
30
30
- public showExtra4Workspace ( workspaceFolder : string , ns : string ) {
31
- if ( ! this . _showExtra4Workspace . includes ( ns ) ) {
32
- this . _showExtra4Workspace . push ( ns ) ;
31
+ public showExtra4Workspace ( workspaceFolder : string , ns : string ) : void {
32
+ const extra4Workspace = this . _showExtra4Workspace [ workspaceFolder ] || [ ] ;
33
+ if ( ! extra4Workspace . includes ( ns ) ) {
34
+ extra4Workspace . push ( ns ) ;
35
+ this . _showExtra4Workspace [ workspaceFolder ] = extra4Workspace ;
33
36
this . _onDidChangeTreeData . fire ( null ) ;
34
37
}
35
38
}
36
39
37
- public closeExtra4Workspace ( workspaceFolder : string , ns : string ) {
38
- const pos = this . _showExtra4Workspace . indexOf ( ns ) ;
40
+ public closeExtra4Workspace ( workspaceFolder : string , ns : string ) : void {
41
+ const extra4Workspace = this . _showExtra4Workspace [ workspaceFolder ] || [ ] ;
42
+ const pos = extra4Workspace . indexOf ( ns ) ;
39
43
if ( pos >= 0 ) {
40
- this . _showExtra4Workspace . splice ( pos , 1 ) ;
44
+ extra4Workspace . splice ( pos , 1 ) ;
45
+ this . _showExtra4Workspace [ workspaceFolder ] = extra4Workspace ;
41
46
this . _onDidChangeTreeData . fire ( null ) ;
42
47
}
43
48
}
@@ -67,10 +72,11 @@ export class ObjectScriptExplorerProvider implements vscode.TreeDataProvider<Nod
67
72
. forEach ( ( workspaceFolder ) => {
68
73
const conn : any = config ( "conn" , workspaceFolder . name ) ;
69
74
if ( conn . active && conn . ns ) {
75
+ const extra4Workspace = this . _showExtra4Workspace [ workspaceFolder . name ] || [ ] ;
70
76
node = new WorkspaceNode ( workspaceFolder . name , this . _onDidChangeTreeData , { } ) ;
71
77
rootNodes . push ( node ) ;
72
78
73
- this . _showExtra4Workspace . forEach ( ( ns ) => {
79
+ extra4Workspace . forEach ( ( ns ) => {
74
80
node = new WorkspaceNode ( workspaceFolder . name , this . _onDidChangeTreeData , {
75
81
namespace : ns ,
76
82
extraNode : true ,
0 commit comments