@@ -56,22 +56,19 @@ export function activate(context: vscode.ExtensionContext) {
5656 context . subscriptions . push (
5757 vscode . commands . registerCommand ( `${ extensionId } .addServer` , async ( ) => {
5858 await addServer ( ) ;
59- view . refreshTree ( ) ;
6059 } )
6160 ) ;
6261 context . subscriptions . push (
6362 vscode . commands . registerCommand ( `${ extensionId } .addToStarred` , async ( server ?: ServerTreeItem ) => {
6463 if ( server ?. contextValue ?. match ( / \. s e r v e r \. / ) && server . name ) {
6564 await view . addToFavorites ( server . name ) ;
66- view . refreshTree ( ) ;
6765 }
6866 } )
6967 ) ;
7068 context . subscriptions . push (
7169 vscode . commands . registerCommand ( `${ extensionId } .removeFromStarred` , async ( server ?: ServerTreeItem ) => {
7270 if ( server ?. contextValue ?. endsWith ( '.starred' ) && server . name ) {
7371 await view . removeFromFavorites ( server . name ) ;
74- view . refreshTree ( ) ;
7572 }
7673 } )
7774 ) ;
@@ -120,6 +117,62 @@ export function activate(context: vscode.ExtensionContext) {
120117 }
121118 } ) ;
122119 } )
120+ ) ;
121+ context . subscriptions . push (
122+ vscode . commands . registerCommand ( `${ extensionId } .setIconRed` , ( server ?: ServerTreeItem ) => {
123+ if ( server ?. name ) {
124+ view . setIconColor ( server . name , 'red' ) ;
125+ view . refreshTree ( ) ;
126+ }
127+ } )
128+ ) ;
129+ context . subscriptions . push (
130+ vscode . commands . registerCommand ( `${ extensionId } .setIconOrange` , ( server ?: ServerTreeItem ) => {
131+ if ( server ?. name ) {
132+ view . setIconColor ( server . name , 'orange' ) ;
133+ view . refreshTree ( ) ;
134+ }
135+ } )
136+ ) ;
137+ context . subscriptions . push (
138+ vscode . commands . registerCommand ( `${ extensionId } .setIconYellow` , ( server ?: ServerTreeItem ) => {
139+ if ( server ?. name ) {
140+ view . setIconColor ( server . name , 'yellow' ) ;
141+ view . refreshTree ( ) ;
142+ }
143+ } )
144+ ) ;
145+ context . subscriptions . push (
146+ vscode . commands . registerCommand ( `${ extensionId } .setIconGreen` , ( server ?: ServerTreeItem ) => {
147+ if ( server ?. name ) {
148+ view . setIconColor ( server . name , 'green' ) ;
149+ view . refreshTree ( ) ;
150+ }
151+ } )
152+ ) ;
153+ context . subscriptions . push (
154+ vscode . commands . registerCommand ( `${ extensionId } .setIconBlue` , ( server ?: ServerTreeItem ) => {
155+ if ( server ?. name ) {
156+ view . setIconColor ( server . name , 'blue' ) ;
157+ view . refreshTree ( ) ;
158+ }
159+ } )
160+ ) ;
161+ context . subscriptions . push (
162+ vscode . commands . registerCommand ( `${ extensionId } .setIconPurple` , ( server ?: ServerTreeItem ) => {
163+ if ( server ?. name ) {
164+ view . setIconColor ( server . name , 'purple' ) ;
165+ view . refreshTree ( ) ;
166+ }
167+ } )
168+ ) ;
169+ context . subscriptions . push (
170+ vscode . commands . registerCommand ( `${ extensionId } .resetIconColor` , ( server ?: ServerTreeItem ) => {
171+ if ( server ?. name ) {
172+ view . setIconColor ( server . name , undefined ) ;
173+ view . refreshTree ( ) ;
174+ }
175+ } )
123176 ) ;
124177 context . subscriptions . push (
125178 vscode . commands . registerCommand ( `${ extensionId } .importServers` , async ( ) => {
@@ -128,10 +181,25 @@ export function activate(context: vscode.ExtensionContext) {
128181 } )
129182 ) ;
130183
184+ // Listen for relevant configuration changes
185+ context . subscriptions . push ( vscode . workspace . onDidChangeConfiguration ( e => {
186+ if ( e . affectsConfiguration ( 'intersystems.servers' ) || e . affectsConfiguration ( 'objectscript.conn' ) ) {
187+ view . refreshTree ( ) ;
188+ }
189+ } ) ) ;
190+
191+ // Expose our API
131192 let api = {
132193 async pickServer ( scope ?: vscode . ConfigurationScope , options : vscode . QuickPickOptions = { } ) : Promise < string | undefined > {
133- return await pickServer ( scope , options ) ;
194+ const name = await pickServer ( scope , options ) ;
134195
196+ /*
197+ if (name) {
198+ view.addToRecents(name);
199+ }
200+ */
201+
202+ return name ;
135203 } ,
136204 getServerNames ( scope ?: vscode . ConfigurationScope ) : ServerName [ ] {
137205 return getServerNames ( scope ) ;
@@ -142,7 +210,11 @@ export function activate(context: vscode.ExtensionContext) {
142210 } ,
143211
144212 async getServerSpec ( name : string , scope ?: vscode . ConfigurationScope , flushCredentialCache : boolean = false ) : Promise < ServerSpec | undefined > {
145- return await getServerSpec ( name , scope , flushCredentialCache ) ;
213+ const spec = await getServerSpec ( name , scope , flushCredentialCache ) ;
214+ if ( spec ) {
215+ view . addToRecents ( name ) ;
216+ }
217+ return spec ;
146218 } ,
147219
148220 onDidChangePassword ( ) : vscode . Event < string > {
0 commit comments