@@ -154,6 +154,15 @@ let connectionSocket: WebSocket;
154
154
155
155
let serverManagerApi : any ;
156
156
157
+ // Map of the intersystems.server connection specs we have resolved via the API to that extension
158
+ const resolvedConnSpecs = new Map < string , any > ( ) ;
159
+
160
+ // Accessor for the connection specs
161
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
162
+ export function getResolvedConnectionSpec ( key : string , dflt : any ) : any {
163
+ return resolvedConnSpecs . has ( key ) ? resolvedConnSpecs . get ( key ) : dflt ;
164
+ }
165
+
157
166
export function checkConnection ( clearCookies = false , uri ?: vscode . Uri ) : void {
158
167
const { apiTarget, configName } = connectionTarget ( uri ) ;
159
168
if ( clearCookies ) {
@@ -339,14 +348,14 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
339
348
reporter = new TelemetryReporter ( extensionId , extensionVersion , aiKey ) ;
340
349
}
341
350
342
- // Get api for servermanager extension, perhaps offering to install it
343
- serverManagerApi = await serverManager ( ) ;
344
-
345
351
const languages = packageJson . contributes . languages . map ( ( lang ) => lang . id ) ;
346
352
workspaceState = context . workspaceState ;
347
353
extensionContext = context ;
348
354
workspaceState . update ( "workspaceFolder" , "" ) ;
349
355
356
+ // Get api for servermanager extension, perhaps offering to install it
357
+ serverManagerApi = await serverManager ( ) ;
358
+
350
359
documentContentProvider = new DocumentContentProvider ( ) ;
351
360
xmlContentProvider = new XmlContentProvider ( ) ;
352
361
fileSystemProvider = new FileSystemProvider ( ) ;
@@ -375,7 +384,13 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
375
384
const { configName } = connectionTarget ( uri ) ;
376
385
toCheck . set ( configName , uri ) ;
377
386
} ) ;
378
- toCheck . forEach ( function ( uri ) {
387
+ toCheck . forEach ( async function ( uri , configName ) {
388
+ if ( serverManagerApi && serverManagerApi . getServerSpec ) {
389
+ const connSpec = await serverManagerApi . getServerSpec ( configName ) ;
390
+ if ( connSpec ) {
391
+ resolvedConnSpecs . set ( configName , connSpec ) ;
392
+ }
393
+ }
379
394
checkConnection ( true , uri ) ;
380
395
} ) ;
381
396
0 commit comments