@@ -261,14 +261,19 @@ export class SMTreeItem extends vscode.TreeItem {
261261
262262function allServers ( treeItem : SMTreeItem , params ?: any ) : ServerTreeItem [ ] {
263263 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 ) ;
272277 return children ;
273278}
274279
@@ -304,13 +309,15 @@ async function currentServers(element: SMTreeItem, params?: any): Promise<Server
304309 }
305310 }
306311 }
307- }
308- else if ( connServer ) {
312+ } else if ( connServer ) {
309313 const serverSummary = getServerSummary ( connServer , folder ) ;
310314 if ( serverSummary ) {
315+ const key = `${ connServer } ${ typeof vscode . workspace . getConfiguration ( "intersystems.servers" , folder ) . inspect ( connServer ) ?. workspaceFolderValue == "object"
316+ ? ` (${ folder . name } )` : ""
317+ } `;
311318 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 ) ,
314321 ) ;
315322 }
316323 }
0 commit comments