Workaround for vscode 1.12 completion sorting issue.
This commit is contained in:
@@ -16,6 +16,7 @@ import java.util.concurrent.CompletableFuture;
|
||||
import org.eclipse.lsp4j.CompletionList;
|
||||
import org.eclipse.lsp4j.DiagnosticSeverity;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter.LazyCompletionResolver;
|
||||
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,6 +52,7 @@ public class ConcourseLanguageServer extends SimpleLanguageServer {
|
||||
private SchemaSpecificPieces forPipelines;
|
||||
private SchemaSpecificPieces forTasks;
|
||||
private final YamlQuickfixes yamlQuickfixes;
|
||||
private final LazyCompletionResolver completionResolver = new LazyCompletionResolver(); //Set this to null to disable lazy completion resolving
|
||||
|
||||
private class SchemaSpecificPieces {
|
||||
|
||||
@@ -63,6 +65,7 @@ public class ConcourseLanguageServer extends SimpleLanguageServer {
|
||||
SchemaBasedYamlAssistContextProvider contextProvider = new SchemaBasedYamlAssistContextProvider(schema);
|
||||
YamlCompletionEngine yamlCompletionEngine = new YamlCompletionEngine(structureProvider, contextProvider, COMPLETION_OPTIONS);
|
||||
this.completionEngine = new VscodeCompletionEngineAdapter(ConcourseLanguageServer.this, yamlCompletionEngine);
|
||||
this.completionEngine.setLazyCompletionResolver(completionResolver);
|
||||
|
||||
HoverInfoProvider infoProvider = new YamlHoverInfoProvider(currentAsts, structureProvider, contextProvider);
|
||||
this.hoverEngine = new VscodeHoverEngineAdapter(ConcourseLanguageServer.this, infoProvider);
|
||||
@@ -80,6 +83,11 @@ public class ConcourseLanguageServer extends SimpleLanguageServer {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasLazyCompletionResolver() {
|
||||
return completionResolver!=null;
|
||||
}
|
||||
|
||||
public ConcourseLanguageServer(YamlCompletionEngineOptions completionOptions) {
|
||||
super("vscode-concourse");
|
||||
this.COMPLETION_OPTIONS = completionOptions;
|
||||
@@ -124,10 +132,9 @@ public class ConcourseLanguageServer extends SimpleLanguageServer {
|
||||
}
|
||||
return CompletableFuture.completedFuture(new CompletionList(false, ImmutableList.of()));
|
||||
});
|
||||
documents.onCompletionResolve(params -> {
|
||||
//this is a bogus implementation. But its not currently used.
|
||||
throw new IllegalStateException("Not implemented");
|
||||
|
||||
documents.onCompletionResolve(item -> {
|
||||
completionResolver.resolveNow(item);
|
||||
return CompletableFuture.completedFuture(item);
|
||||
});
|
||||
documents.onHover(params -> {
|
||||
TextDocument doc = documents.get(params);
|
||||
|
||||
@@ -45,7 +45,7 @@ public class ConcourseLanguageServerTest {
|
||||
}
|
||||
|
||||
private void assertExpectedInitResult(InitializeResult initResult) {
|
||||
assertThat(initResult.getCapabilities().getCompletionProvider().getResolveProvider()).isFalse();
|
||||
assertThat(initResult.getCapabilities().getCompletionProvider().getResolveProvider()).isTrue();
|
||||
assertThat(initResult.getCapabilities().getTextDocumentSync().getLeft()).isEqualTo(TextDocumentSyncKind.Incremental);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user