Set completionTriggerCharacters for spring boot language server.

Signed-off-by: Kris De Volder <kdevolder@pivotal.io>
This commit is contained in:
Kris De Volder
2019-01-16 15:19:45 -08:00
parent f893da12f5
commit d1a96a1569
4 changed files with 34 additions and 1 deletions

View File

@@ -25,6 +25,11 @@ public class LanguageServerProperties {
*/
private String extensionId;
/**
* List of characters that trigger completions.
*/
private String completionTriggerCharacters;
public boolean isStandalone() {
return standalone;
}
@@ -49,4 +54,12 @@ public class LanguageServerProperties {
this.extensionId = extensionId;
}
public String getCompletionTriggerCharacters() {
return completionTriggerCharacters;
}
public void setCompletionTriggerCharacters(String completionTriggerCharacters) {
this.completionTriggerCharacters = completionTriggerCharacters;
}
}

View File

@@ -14,6 +14,7 @@ import java.lang.management.ManagementFactory;
import java.net.URI;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -154,6 +155,8 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC
private Optional<CompletionFilter> completionFilter = Optional.empty();
private String completionTriggerCharacters = null;
@Override
public void connect(LanguageClient _client) {
this.client = (STS4LanguageClient) _client;
@@ -369,6 +372,13 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC
CompletionOptions completionProvider = new CompletionOptions();
completionProvider.setResolveProvider(hasLazyCompletionResolver());
if (this.completionTriggerCharacters!=null) {
String[] chars = new String[this.completionTriggerCharacters.length()];
for (int i = 0; i < chars.length; i++) {
chars[i] = this.completionTriggerCharacters.substring(i, i+1);
}
completionProvider.setTriggerCharacters(ImmutableList.copyOf(chars));
}
c.setCompletionProvider(completionProvider);
if (hasQuickFixes()) {
@@ -710,4 +720,12 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC
public void setCompletionFilter(Optional<CompletionFilter> completionFilter) {
this.completionFilter = completionFilter;
}
public String getCompletionTriggerCharacters() {
return completionTriggerCharacters;
}
public void setCompletionTriggerCharacters(String completionTriggerCharacters) {
this.completionTriggerCharacters = completionTriggerCharacters;
}
}

View File

@@ -47,6 +47,7 @@ public class LanguageServerAutoConf {
Optional<CompletionFilter> completionFilter
) throws Exception {
SimpleLanguageServer server = new SimpleLanguageServer(props.getExtensionId());
server.setCompletionTriggerCharacters(props.getCompletionTriggerCharacters());
server.setCompletionFilter(completionFilter);
severities.ifPresent(server::setDiagnosticSeverityProvider);
return server;

View File

@@ -1,2 +1,3 @@
languageserver:
extension-id: vscode-spring-boot
extension-id: vscode-spring-boot
completion-trigger-characters: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.