Fix compilation problem in bosh language server

This commit is contained in:
Kris De Volder
2019-02-12 14:34:51 -08:00
parent bc86170ae0
commit c3d5c19f0c
7 changed files with 71 additions and 9 deletions

View File

@@ -18,6 +18,7 @@ import org.springframework.ide.vscode.bosh.models.BoshCommandCloudConfigProvider
import org.springframework.ide.vscode.bosh.models.BoshCommandReleasesProvider;
import org.springframework.ide.vscode.bosh.models.BoshCommandStemcellsProvider;
import org.springframework.ide.vscode.commons.util.LogRedirect;
import org.springframework.ide.vscode.commons.yaml.reconcile.ASTTypeCache;
@SpringBootApplication
public class BoshLanguageServerBootApp {
@@ -29,6 +30,10 @@ public class BoshLanguageServerBootApp {
SpringApplication.run(BoshLanguageServerBootApp.class, args);
}
@Bean public ASTTypeCache astTypeCache() {
return new ASTTypeCache();
}
@Bean public String serverName() {
return SERVER_NAME;
}

View File

@@ -12,6 +12,7 @@ package org.springframework.ide.vscode.bosh;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.ide.vscode.bosh.models.BoshModels;
import org.springframework.ide.vscode.bosh.models.CloudConfigModel;
import org.springframework.ide.vscode.bosh.models.DynamicModelProvider;
@@ -49,6 +50,8 @@ public class BoshLanguageServerInitializer implements InitializingBean {
private DynamicModelProvider<ReleasesModel> releasesProvider;
@Autowired private SimpleLanguageServer server;
@Autowired private ApplicationContext appContext;
@Autowired private ASTTypeCache astTypeCache;
private BoshSchemas schema;
private VscodeCompletionEngineAdapter completionEngine;
@@ -66,11 +69,10 @@ public class BoshLanguageServerInitializer implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
BoshModels models = new BoshModels(cloudConfigProvider, stemcellsProvider, releasesProvider);
BoshModels models = new BoshModels(cloudConfigProvider, stemcellsProvider, releasesProvider, astTypeCache);
SimpleTextDocumentService documents = server.getTextDocumentService();
schema = new BoshSchemas(models);
YamlAstCache asts = models.asts;
ASTTypeCache astTypeCache = models.astTypes;
YamlStructureProvider structureProvider = YamlStructureProvider.DEFAULT;
YamlAssistContextProvider contextProvider = new SchemaBasedYamlAssistContextProvider(schema);
@@ -80,8 +82,7 @@ public class BoshLanguageServerInitializer implements InitializingBean {
HoverInfoProvider infoProvider = new YamlHoverInfoProvider(asts.getAstProvider(true), structureProvider, contextProvider);
VscodeHoverEngineAdapter hoverEngine = new VscodeHoverEngineAdapter(server, infoProvider);
YamlQuickfixes quickfixes = new YamlQuickfixes(server.getQuickfixRegistry(), server.getTextDocumentService(), structureProvider);
YamlSchemaBasedReconcileEngine engine = new YamlSchemaBasedReconcileEngine(asts.getAstProvider(false), schema, quickfixes);
engine.setTypeCollector(astTypeCache);
YamlSchemaBasedReconcileEngine engine = new YamlSchemaBasedReconcileEngine(asts.getAstProvider(false), schema, quickfixes, appContext);
documents.onDocumentSymbol(new TypeBasedYamlSymbolHandler(documents, astTypeCache, schema.getDefinitionTypes()));
documents.onDidChangeContent(params -> {

View File

@@ -18,17 +18,20 @@ import org.springframework.ide.vscode.commons.yaml.schema.DynamicSchemaContext;
public class BoshModels {
public final YamlAstCache asts = new YamlAstCache();
public final ASTTypeCache astTypes = new ASTTypeCache();
public final ASTTypeCache astTypes;
public final DynamicModelProvider<CloudConfigModel> cloudConfigProvider;
public final DynamicModelProvider<StemcellsModel> stemcellsProvider;
public final DynamicModelProvider<ReleasesModel> releasesProvider;
public BoshModels(DynamicModelProvider<CloudConfigModel> cloudConfigProvider,
DynamicModelProvider<StemcellsModel> stemcellsProvider,
DynamicModelProvider<ReleasesModel> releasesProvider) {
DynamicModelProvider<ReleasesModel> releasesProvider,
ASTTypeCache astTypes
) {
this.cloudConfigProvider = cloudConfigProvider;
this.stemcellsProvider = stemcellsProvider;
this.releasesProvider = releasesProvider;
this.astTypes = astTypes;
}
public String getTypeTag(DynamicSchemaContext dc) {

View File

@@ -15,6 +15,7 @@ import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.springframework.ide.vscode.bosh.models.BoshModels;
import org.springframework.ide.vscode.commons.languageserver.util.SnippetBuilder;
import org.springframework.ide.vscode.commons.yaml.reconcile.ASTTypeCache;
import org.springframework.ide.vscode.commons.yaml.schema.DynamicSchemaContext;
import org.springframework.ide.vscode.commons.yaml.schema.YType;
import org.springframework.ide.vscode.commons.yaml.schema.YTypeUtil;
@@ -22,7 +23,7 @@ import org.springframework.ide.vscode.commons.yaml.snippet.SchemaBasedSnippetGen
public class SchemaBasedSnippetGeneratorTest {
private BoshDeploymentManifestSchema schema = new BoshSchemas(new BoshModels((dc) -> null, (dc) -> null, (dc) -> null)).getDeploymentSchema();
private BoshDeploymentManifestSchema schema = new BoshSchemas(new BoshModels((dc) -> null, (dc) -> null, (dc) -> null, new ASTTypeCache())).getDeploymentSchema();
private YTypeUtil typeUtil = schema.getTypeUtil();
private SchemaBasedSnippetGenerator generator = new SchemaBasedSnippetGenerator(typeUtil, SnippetBuilder::new);