@@ -261,14 +261,19 @@ export class SMTreeItem extends vscode.TreeItem {
261
261
262
262
function allServers ( treeItem : SMTreeItem , params ?: any ) : ServerTreeItem [ ] {
263
263
const children : ServerTreeItem [ ] = [ ] ;
264
- const getAllServers = ( sorted ?: boolean ) : ServerTreeItem [ ] => {
265
- const serverNames = getServerNames ( undefined , sorted ) ;
266
- return serverNames . map ( ( serverName ) => {
267
- return new ServerTreeItem ( { label : serverName . name , id : serverName . name , parent : treeItem } , serverName ) ;
268
- } ) ;
269
- } ;
270
-
271
- getAllServers ( params . sorted ) . map ( ( server ) => children . push ( server ) ) ;
264
+ // Add children for servers defined at the user or workspace level
265
+ const wsServerNames = getServerNames ( undefined ) ;
266
+ children . push ( ...wsServerNames . map ( ( wss ) => {
267
+ return new ServerTreeItem ( { label : wss . name , id : wss . name , parent : treeItem } , wss ) ;
268
+ } ) ) ;
269
+ // Add children for servers defined at the workspace folder level
270
+ vscode . workspace . workspaceFolders ?. map ( ( wf ) => {
271
+ if ( [ "isfs" , "isfs-readonly" ] . includes ( wf . uri . scheme ) ) return ;
272
+ children . push ( ...getServerNames ( wf ) . filter ( ( wfs ) => ! wsServerNames . some ( ( wss ) => wss . name == wfs . name ) ) . map ( ( wfs ) => {
273
+ return new ServerTreeItem ( { label : `${ wfs . name } (${ wf . name } )` , id : wfs . name , parent : treeItem } , wfs ) ;
274
+ } ) ) ;
275
+ } ) ;
276
+ if ( params ?. sorted ) children . sort ( ( a , b ) => a . name < b . name ? - 1 : a . name > b . name ? 1 : 0 ) ;
272
277
return children ;
273
278
}
274
279
@@ -304,13 +309,15 @@ async function currentServers(element: SMTreeItem, params?: any): Promise<Server
304
309
}
305
310
}
306
311
}
307
- }
308
- else if ( connServer ) {
312
+ } else if ( connServer ) {
309
313
const serverSummary = getServerSummary ( connServer , folder ) ;
310
314
if ( serverSummary ) {
315
+ const key = `${ connServer } ${ typeof vscode . workspace . getConfiguration ( "intersystems.servers" , folder ) . inspect ( connServer ) ?. workspaceFolderValue == "object"
316
+ ? ` (${ folder . name } )` : ""
317
+ } `;
311
318
children . set (
312
- connServer ,
313
- new ServerTreeItem ( { parent : element , label : serverName , id : serverName } , serverSummary ) ,
319
+ key ,
320
+ new ServerTreeItem ( { parent : element , label : key , id : serverName } , serverSummary ) ,
314
321
) ;
315
322
}
316
323
}
0 commit comments