PT 162292472 - Disable arrow completions and other LS changes
This commit is contained in:
@@ -10,13 +10,14 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.bosh;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.ide.vscode.bosh.models.BoshModels;
|
||||
import org.springframework.ide.vscode.bosh.models.CloudConfigModel;
|
||||
import org.springframework.ide.vscode.bosh.models.DynamicModelProvider;
|
||||
import org.springframework.ide.vscode.bosh.models.ReleasesModel;
|
||||
import org.springframework.ide.vscode.bosh.models.StemcellsModel;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerInitializer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.HoverInfoProvider;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.VscodeHoverEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine;
|
||||
@@ -38,17 +39,17 @@ import org.springframework.ide.vscode.commons.yaml.reconcile.YamlSchemaBasedReco
|
||||
import org.springframework.ide.vscode.commons.yaml.snippet.SchemaBasedSnippetGenerator;
|
||||
import org.springframework.ide.vscode.commons.yaml.structure.YamlStructureProvider;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@Component
|
||||
public class BoshLanguageServerInitializer implements LanguageServerInitializer {
|
||||
public class BoshLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
private BoshCliConfig cliConfig;
|
||||
private DynamicModelProvider<CloudConfigModel> cloudConfigProvider;
|
||||
private DynamicModelProvider<StemcellsModel> stemcellsProvider;
|
||||
private DynamicModelProvider<ReleasesModel> releasesProvider;
|
||||
|
||||
private SimpleLanguageServer server;
|
||||
@Autowired private SimpleLanguageServer server;
|
||||
|
||||
private BoshSchemas schema;
|
||||
private VscodeCompletionEngineAdapter completionEngine;
|
||||
|
||||
@@ -64,9 +65,7 @@ public class BoshLanguageServerInitializer implements LanguageServerInitializer
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(SimpleLanguageServer server) throws Exception {
|
||||
Assert.isNull(this.server, "This initializer should only be used once");
|
||||
this.server = server;
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
BoshModels models = new BoshModels(cloudConfigProvider, stemcellsProvider, releasesProvider);
|
||||
SimpleTextDocumentService documents = server.getTextDocumentService();
|
||||
schema = new BoshSchemas(models);
|
||||
@@ -77,7 +76,7 @@ public class BoshLanguageServerInitializer implements LanguageServerInitializer
|
||||
YamlAssistContextProvider contextProvider = new SchemaBasedYamlAssistContextProvider(schema);
|
||||
enableSnippets(true);
|
||||
YamlCompletionEngine yamlCompletionEngine = new YamlCompletionEngine(structureProvider, contextProvider, YamlCompletionEngineOptions.DEFAULT);
|
||||
completionEngine = server.createCompletionEngineAdapter(server, yamlCompletionEngine);
|
||||
completionEngine = server.createCompletionEngineAdapter(yamlCompletionEngine);
|
||||
HoverInfoProvider infoProvider = new YamlHoverInfoProvider(asts.getAstProvider(true), structureProvider, contextProvider);
|
||||
VscodeHoverEngineAdapter hoverEngine = new VscodeHoverEngineAdapter(server, infoProvider);
|
||||
YamlQuickfixes quickfixes = new YamlQuickfixes(server.getQuickfixRegistry(), server.getTextDocumentService(), structureProvider);
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
package org.springframework.ide.vscode.commons.languageserver.completion;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -37,8 +38,6 @@ import org.springframework.ide.vscode.commons.util.StringUtil;
|
||||
import org.springframework.ide.vscode.commons.util.text.IRegion;
|
||||
import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
import com.google.common.base.Suppliers;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
|
||||
@@ -100,6 +99,7 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine {
|
||||
private SimpleLanguageServer server;
|
||||
private ICompletionEngine engine;
|
||||
private final LazyCompletionResolver resolver;
|
||||
private Optional<CompletionFilter> filter;
|
||||
|
||||
/**
|
||||
* By setting a non-null {@link LazyCompletionResolver} you can enable lazy completion resolution.
|
||||
@@ -108,10 +108,11 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine {
|
||||
* The resolver is injected rather than created locally to allow sharing it between multiple
|
||||
* engines.
|
||||
*/
|
||||
public VscodeCompletionEngineAdapter(SimpleLanguageServer server, ICompletionEngine engine, LazyCompletionResolver resolver) {
|
||||
public VscodeCompletionEngineAdapter(SimpleLanguageServer server, ICompletionEngine engine, LazyCompletionResolver resolver, Optional<CompletionFilter> filter) {
|
||||
this.server = server;
|
||||
this.engine = engine;
|
||||
this.resolver = resolver;
|
||||
this.filter = filter;
|
||||
}
|
||||
|
||||
public void setMaxCompletions(int maxCompletions) {
|
||||
@@ -139,8 +140,10 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine {
|
||||
// using reactive style? If not then this is overkill could just as well use
|
||||
// only standard Java API such as Executor and CompletableFuture directly.
|
||||
int offset = doc.toOffset(params.getPosition());
|
||||
List<ICompletionProposal> completions = new ArrayList<>(engine.getCompletions(doc, offset));
|
||||
List<ICompletionProposal> completions = filter(engine.getCompletions(doc, offset));
|
||||
|
||||
Collections.sort(completions, ScoreableProposal.COMPARATOR);
|
||||
|
||||
CompletionList list = new CompletionList();
|
||||
list.setIsIncomplete(false);
|
||||
List<CompletionItem> items = new ArrayList<>(completions.size());
|
||||
@@ -185,6 +188,22 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine {
|
||||
return item;
|
||||
}
|
||||
|
||||
private List<ICompletionProposal> filter(Collection<ICompletionProposal> completions) {
|
||||
if (filter.isPresent()) {
|
||||
List<ICompletionProposal> filtered = new ArrayList<>(completions.size());
|
||||
CompletionFilter filterVal = filter.get();
|
||||
for (ICompletionProposal proposal : completions) {
|
||||
if (filterVal.include(proposal)) {
|
||||
filtered.add(proposal);
|
||||
}
|
||||
}
|
||||
return filtered;
|
||||
}
|
||||
else {
|
||||
return new ArrayList<>(completions);
|
||||
}
|
||||
}
|
||||
|
||||
private static void resolveItem(TextDocument doc, ICompletionProposal completion, CompletionItem item) throws Exception {
|
||||
MarkupContent content = new MarkupContent();
|
||||
content.setKind(MarkupKind.MARKDOWN);
|
||||
@@ -281,4 +300,17 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine {
|
||||
resolver.resolveNow(unresolved);
|
||||
return unresolved;
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface CompletionFilter {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param proposal
|
||||
* @return true if proposal should be included from completion list. False
|
||||
* otherwise
|
||||
*/
|
||||
boolean include(ICompletionProposal proposal);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.Callable;
|
||||
@@ -60,6 +61,7 @@ import org.springframework.ide.vscode.commons.languageserver.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.languageserver.Sts4LanguageServer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter.CompletionFilter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter.LazyCompletionResolver;
|
||||
import org.springframework.ide.vscode.commons.languageserver.jdt.ls.ClasspathListener;
|
||||
import org.springframework.ide.vscode.commons.languageserver.jdt.ls.ClasspathListenerManager;
|
||||
@@ -149,13 +151,15 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC
|
||||
}));
|
||||
private ClasspathListenerManager classpathListenerManager;
|
||||
|
||||
private Optional<CompletionFilter> completionFilter = Optional.empty();
|
||||
|
||||
@Override
|
||||
public void connect(LanguageClient _client) {
|
||||
this.client = (STS4LanguageClient) _client;
|
||||
}
|
||||
|
||||
public VscodeCompletionEngineAdapter createCompletionEngineAdapter(SimpleLanguageServer server, ICompletionEngine engine) {
|
||||
return new VscodeCompletionEngineAdapter(server, engine, completionResolver);
|
||||
public VscodeCompletionEngineAdapter createCompletionEngineAdapter(ICompletionEngine engine) {
|
||||
return new VscodeCompletionEngineAdapter(this, engine, completionResolver, completionFilter);
|
||||
}
|
||||
|
||||
protected LazyCompletionResolver createCompletionResolver() {
|
||||
@@ -696,4 +700,8 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC
|
||||
public void setDiagnosticSeverityProvider(DiagnosticSeverityProvider severities) {
|
||||
this.severityProvider = severities;
|
||||
}
|
||||
|
||||
public void setCompletionFilter(Optional<CompletionFilter> completionFilter) {
|
||||
this.completionFilter = completionFilter;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@ public class YamlCompletionEngine implements ICompletionEngine {
|
||||
protected final YamlStructureProvider structureProvider;
|
||||
private YamlCompletionEngineOptions options;
|
||||
|
||||
|
||||
public YamlCompletionEngine(YamlStructureProvider structureProvider, YamlAssistContextProvider contextProvider, YamlCompletionEngineOptions options) {
|
||||
this.options = options;
|
||||
Assert.isNotNull(structureProvider);
|
||||
@@ -478,5 +479,4 @@ public class YamlCompletionEngine implements ICompletionEngine {
|
||||
throw new IllegalStateException("Missing case");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter.CompletionFilter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerInitializer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerProperties;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.DiagnosticSeverityProvider;
|
||||
@@ -42,13 +43,15 @@ public class LanguageServerAutoConf {
|
||||
@ConditionalOnMissingBean
|
||||
@Bean public SimpleLanguageServer languageServer(
|
||||
LanguageServerProperties props,
|
||||
Optional<DiagnosticSeverityProvider> severities
|
||||
Optional<DiagnosticSeverityProvider> severities,
|
||||
Optional<CompletionFilter> completionFilter
|
||||
) throws Exception {
|
||||
SimpleLanguageServer server = new SimpleLanguageServer(props.getExtensionId());
|
||||
server.setCompletionFilter(completionFilter);
|
||||
severities.ifPresent(server::setDiagnosticSeverityProvider);
|
||||
return server;
|
||||
}
|
||||
|
||||
|
||||
@ConditionalOnBean({LanguageServerInitializer.class, SimpleLanguageServer.class})
|
||||
@Bean
|
||||
InitializingBean initializer(SimpleLanguageServer server, LanguageServerInitializer serverInit) {
|
||||
|
||||
@@ -31,10 +31,6 @@ public class ConcourseLanguageServerBootApp {
|
||||
return SERVER_NAME;
|
||||
}
|
||||
|
||||
@Bean ConcourseLanguageServerInitializer languageServer(GithubInfoProvider github) {
|
||||
return new ConcourseLanguageServerInitializer(github);
|
||||
}
|
||||
|
||||
@Bean GithubInfoProvider github() {
|
||||
return new DefaultGithubInfoProvider();
|
||||
}
|
||||
|
||||
@@ -13,14 +13,12 @@ package org.springframework.ide.vscode.concourse;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.lsp4j.CompletionList;
|
||||
import org.eclipse.lsp4j.DiagnosticSeverity;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerInitializer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.HoverInfoProvider;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.VscodeHoverEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemType;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.ReconcileProblem;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.DocumentSymbolHandler;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService;
|
||||
@@ -35,27 +33,23 @@ import org.springframework.ide.vscode.commons.yaml.hover.YamlHoverInfoProvider;
|
||||
import org.springframework.ide.vscode.commons.yaml.quickfix.YamlQuickfixes;
|
||||
import org.springframework.ide.vscode.commons.yaml.reconcile.TypeBasedYamlSymbolHandler;
|
||||
import org.springframework.ide.vscode.commons.yaml.reconcile.YamlSchemaBasedReconcileEngine;
|
||||
import org.springframework.ide.vscode.commons.yaml.reconcile.YamlSchemaProblems;
|
||||
import org.springframework.ide.vscode.commons.yaml.schema.YType;
|
||||
import org.springframework.ide.vscode.commons.yaml.schema.YamlSchema;
|
||||
import org.springframework.ide.vscode.commons.yaml.snippet.SchemaBasedSnippetGenerator;
|
||||
import org.springframework.ide.vscode.commons.yaml.structure.YamlStructureProvider;
|
||||
import org.springframework.ide.vscode.concourse.github.GithubInfoProvider;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
@Component
|
||||
public class ConcourseLanguageServerInitializer implements LanguageServerInitializer {
|
||||
public class ConcourseLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
private final YamlCompletionEngineOptions COMPLETION_OPTIONS = YamlCompletionEngineOptions.DEFAULT;
|
||||
private final GithubInfoProvider github;
|
||||
private final YamlStructureProvider structureProvider = YamlStructureProvider.DEFAULT;
|
||||
|
||||
private SimpleLanguageServer server;
|
||||
private ConcourseModel models;
|
||||
|
||||
private SchemaSpecificPieces forPipelines;
|
||||
@@ -63,9 +57,8 @@ public class ConcourseLanguageServerInitializer implements LanguageServerInitial
|
||||
private YamlQuickfixes yamlQuickfixes;
|
||||
private YamlASTProvider currentAsts;
|
||||
|
||||
public ConcourseLanguageServerInitializer(GithubInfoProvider github) {
|
||||
this.github = github;
|
||||
}
|
||||
@Autowired private SimpleLanguageServer server;
|
||||
@Autowired private GithubInfoProvider github;
|
||||
|
||||
private class SchemaSpecificPieces {
|
||||
|
||||
@@ -77,7 +70,7 @@ public class ConcourseLanguageServerInitializer implements LanguageServerInitial
|
||||
SchemaSpecificPieces(YamlSchema schema, List<YType> definitionTypes) {
|
||||
SchemaBasedYamlAssistContextProvider contextProvider = new SchemaBasedYamlAssistContextProvider(schema);
|
||||
YamlCompletionEngine yamlCompletionEngine = new YamlCompletionEngine(structureProvider, contextProvider, COMPLETION_OPTIONS);
|
||||
this.completionEngine = server.createCompletionEngineAdapter(server, yamlCompletionEngine);
|
||||
this.completionEngine = server.createCompletionEngineAdapter(yamlCompletionEngine);
|
||||
|
||||
HoverInfoProvider infoProvider = new YamlHoverInfoProvider(currentAsts, structureProvider, contextProvider);
|
||||
this.hoverEngine = new VscodeHoverEngineAdapter(server, infoProvider);
|
||||
@@ -104,9 +97,7 @@ public class ConcourseLanguageServerInitializer implements LanguageServerInitial
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(SimpleLanguageServer server) throws Exception {
|
||||
Assert.isNull(this.server, "This initializer should only be used once");
|
||||
this.server = server;
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
this.models = new ConcourseModel(server);
|
||||
this.currentAsts = models.getAstCache().getAstProvider(false);
|
||||
PipelineYmlSchema pipelineSchema = new PipelineYmlSchema(models, github);
|
||||
|
||||
@@ -13,7 +13,9 @@ package org.springframework.ide.vscode.manifest.yaml;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter.CompletionFilter;
|
||||
import org.springframework.ide.vscode.commons.util.LogRedirect;
|
||||
import org.springframework.ide.vscode.commons.util.Unicodes;
|
||||
|
||||
@SpringBootApplication
|
||||
public class ManifestYamlLanguageServerBootApp {
|
||||
@@ -28,4 +30,18 @@ public class ManifestYamlLanguageServerBootApp {
|
||||
@Bean public String serverName() {
|
||||
return SERVER_NAME;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public CompletionFilter completionFilter() {
|
||||
return (proposal) -> {
|
||||
// Exclude proposals that start with an arrow due to this bug:
|
||||
// PT 162292472
|
||||
if (proposal != null &&
|
||||
(proposal.getLabel().startsWith(Unicodes.RIGHT_ARROW+"") ||
|
||||
proposal.getLabel().startsWith(Unicodes.LEFT_ARROW+""))) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,9 +13,11 @@ package org.springframework.ide.vscode.manifest.yaml;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.ide.vscode.commons.cloudfoundry.client.ClientTimeouts;
|
||||
import org.springframework.ide.vscode.commons.cloudfoundry.client.CloudFoundryClientFactory;
|
||||
@@ -27,7 +29,7 @@ import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.Clien
|
||||
import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.NoTargetsException;
|
||||
import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.DefaultCloudFoundryClientFactoryV2;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerInitializer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter.CompletionFilter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.HoverInfoProvider;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.VscodeHoverEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine;
|
||||
@@ -51,14 +53,13 @@ import org.springframework.ide.vscode.commons.yaml.reconcile.YamlSchemaBasedReco
|
||||
import org.springframework.ide.vscode.commons.yaml.schema.YValueHint;
|
||||
import org.springframework.ide.vscode.commons.yaml.structure.YamlStructureProvider;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.Assert;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
@Component
|
||||
public class ManifestYamlLanguageServerInitializer implements LanguageServerInitializer {
|
||||
public class ManifestYamlLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
private Yaml yaml = new Yaml();
|
||||
private CfJson cfJson = new CfJson();
|
||||
@@ -67,12 +68,11 @@ public class ManifestYamlLanguageServerInitializer implements LanguageServerInit
|
||||
|
||||
private CloudFoundryClientFactory cfClientFactory;
|
||||
ClientParamsProvider defaultClientParamsProvider;
|
||||
private SimpleLanguageServer server;
|
||||
|
||||
@Autowired private SimpleLanguageServer server;
|
||||
|
||||
@Override
|
||||
public void initialize(SimpleLanguageServer server) throws Exception {
|
||||
Assert.isNull(this.server, "This initializer should only be called once");
|
||||
this.server = server;
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
this.cfTargetCache = new CFTargetCache(ImmutableList.of(this.defaultClientParamsProvider), cfClientFactory, new ClientTimeouts());
|
||||
|
||||
SimpleTextDocumentService documents = server.getTextDocumentService();
|
||||
@@ -85,7 +85,7 @@ public class ManifestYamlLanguageServerInitializer implements LanguageServerInit
|
||||
YamlStructureProvider structureProvider = YamlStructureProvider.DEFAULT;
|
||||
YamlAssistContextProvider contextProvider = new SchemaBasedYamlAssistContextProvider(schema);
|
||||
YamlCompletionEngine yamlCompletionEngine = new YamlCompletionEngine(structureProvider, contextProvider, YamlCompletionEngineOptions.DEFAULT);
|
||||
VscodeCompletionEngineAdapter completionEngine = server.createCompletionEngineAdapter(server, yamlCompletionEngine);
|
||||
VscodeCompletionEngineAdapter completionEngine = server.createCompletionEngineAdapter(yamlCompletionEngine);
|
||||
HoverInfoProvider infoProvider = new YamlHoverInfoProvider(parser, structureProvider, contextProvider);
|
||||
HoverHandler hoverEngine = new VscodeHoverEngineAdapter(server, infoProvider);
|
||||
YamlQuickfixes quickfixes = new YamlQuickfixes(server.getQuickfixRegistry(), server.getTextDocumentService(), structureProvider);
|
||||
|
||||
@@ -19,9 +19,7 @@ import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents
|
||||
import org.springframework.ide.vscode.boot.java.links.JavaElementLocationProvider;
|
||||
import org.springframework.ide.vscode.boot.java.links.SourceLinks;
|
||||
import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache;
|
||||
import org.springframework.ide.vscode.boot.metadata.AdHocSpringPropertyIndexProvider;
|
||||
import org.springframework.ide.vscode.boot.metadata.ProjectBasedPropertyIndexProvider;
|
||||
import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider;
|
||||
import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerComponents;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
@@ -48,6 +46,7 @@ public class BootLanguageServerInitializer implements InitializingBean {
|
||||
@Autowired YamlASTProvider parser;
|
||||
@Autowired YamlStructureProvider yamlStructureProvider;
|
||||
@Autowired YamlAssistContextProvider yamlAssistContextProvider;
|
||||
|
||||
@Qualifier("adHocProperties") @Autowired ProjectBasedPropertyIndexProvider adHocProperties;
|
||||
|
||||
private CompositeLanguageServerComponents components;
|
||||
@@ -87,7 +86,7 @@ public class BootLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
ICompletionEngine completionEngine = components.getCompletionEngine();
|
||||
if (completionEngine!=null) {
|
||||
completionEngineAdapter = server.createCompletionEngineAdapter(server, completionEngine);
|
||||
completionEngineAdapter = server.createCompletionEngineAdapter(completionEngine);
|
||||
completionEngineAdapter.setMaxCompletions(100);
|
||||
documents.onCompletion(completionEngineAdapter::getCompletions);
|
||||
documents.onCompletionResolve(completionEngineAdapter::resolveCompletion);
|
||||
|
||||
@@ -75,6 +75,7 @@ public class BootPropertiesLanguageServerComponents implements LanguageServerCom
|
||||
private final SimpleLanguageServer server;
|
||||
private YamlASTProvider parser;
|
||||
|
||||
|
||||
public BootPropertiesLanguageServerComponents(
|
||||
SimpleLanguageServer server,
|
||||
BootLanguageServerParams serverParams,
|
||||
|
||||
Reference in New Issue
Block a user