@@ -7,9 +7,13 @@ import { Entity, Output, Parameter } from '../context/semantic/Entity';
77import { EntityType } from '../context/semantic/SemanticTypes' ;
88import { DocumentType } from '../document/Document' ;
99import { DocumentManager } from '../document/DocumentManager' ;
10- import { Closeable , Configurable , ServerComponents } from '../server/ServerComponents' ;
11- import { CompletionSettings , DefaultSettings , ISettingsSubscriber , SettingsSubscription } from '../settings/Settings' ;
10+ import { CfnExternal } from '../server/CfnExternal' ;
11+ import { CfnInfraCore } from '../server/CfnInfraCore' ;
12+ import { CfnLspProviders } from '../server/CfnLspProviders' ;
13+ import { SettingsConfigurable , ISettingsSubscriber , SettingsSubscription } from '../settings/ISettingsSubscriber' ;
14+ import { CompletionSettings , DefaultSettings } from '../settings/Settings' ;
1215import { LoggerFactory } from '../telemetry/LoggerFactory' ;
16+ import { Closeable } from '../utils/Closeable' ;
1317import { CompletionFormatter } from './CompletionFormatter' ;
1418import { CompletionProvider } from './CompletionProvider' ;
1519import { ConditionCompletionProvider } from './ConditionCompletionProvider' ;
@@ -28,7 +32,7 @@ export type CompletionProviderType =
2832 | EntityType ;
2933const Condition = 'Condition' ;
3034
31- export class CompletionRouter implements Configurable , Closeable {
35+ export class CompletionRouter implements SettingsConfigurable , Closeable {
3236 private completionSettings : CompletionSettings = DefaultSettings . completion ;
3337 private settingsSubscription ?: SettingsSubscription ;
3438 private readonly log = LoggerFactory . getLogger ( CompletionRouter ) ;
@@ -268,32 +272,34 @@ export class CompletionRouter implements Configurable, Closeable {
268272 }
269273 }
270274
271- static create ( components : ServerComponents ) {
275+ static create ( core : CfnInfraCore , external : CfnExternal , providers : CfnLspProviders ) {
272276 return new CompletionRouter (
273- components . contextManager ,
274- createCompletionProviders ( components ) ,
275- components . documentManager ,
277+ core . contextManager ,
278+ createCompletionProviders ( core , external , providers ) ,
279+ core . documentManager ,
276280 ) ;
277281 }
278282}
279283
280284export function createCompletionProviders (
281- components : ServerComponents ,
285+ core : CfnInfraCore ,
286+ external : CfnExternal ,
287+ providers : CfnLspProviders ,
282288) : Map < CompletionProviderType , CompletionProvider > {
283289 const completionProviderMap = new Map < CompletionProviderType , CompletionProvider > ( ) ;
284290 completionProviderMap . set (
285291 'TopLevelSection' ,
286- new TopLevelSectionCompletionProvider ( components . syntaxTreeManager , components . documentManager ) ,
292+ new TopLevelSectionCompletionProvider ( core . syntaxTreeManager , core . documentManager ) ,
287293 ) ;
288- completionProviderMap . set ( EntityType . Resource , new ResourceSectionCompletionProvider ( components ) ) ;
289- completionProviderMap . set ( EntityType . Condition , new ConditionCompletionProvider ( components . syntaxTreeManager ) ) ;
294+ completionProviderMap . set ( EntityType . Resource , new ResourceSectionCompletionProvider ( core , external , providers ) ) ;
295+ completionProviderMap . set ( EntityType . Condition , new ConditionCompletionProvider ( core . syntaxTreeManager ) ) ;
290296 completionProviderMap . set ( 'IntrinsicFunction' , new IntrinsicFunctionCompletionProvider ( ) ) ;
291297 completionProviderMap . set (
292298 'IntrinsicFunctionArgument' ,
293299 new IntrinsicFunctionArgumentCompletionProvider (
294- components . syntaxTreeManager ,
295- components . schemaRetriever ,
296- components . documentManager ,
300+ core . syntaxTreeManager ,
301+ external . schemaRetriever ,
302+ core . documentManager ,
297303 ) ,
298304 ) ;
299305 completionProviderMap . set ( 'ParameterTypeValue' , new ParameterTypeValueCompletionProvider ( ) ) ;
0 commit comments