Trigger characters per language

This commit is contained in:
Kris De Volder
2019-05-22 10:36:48 -07:00
parent 7fe67c90c6
commit 5c5d535556
8 changed files with 163 additions and 30 deletions

View File

@@ -19,17 +19,17 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
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;
import org.springframework.ide.vscode.commons.languageserver.util.CompletionServerCapabilityRegistration;
import org.springframework.ide.vscode.commons.languageserver.util.DefinitionHandler;
import org.springframework.ide.vscode.commons.languageserver.util.DocumentSymbolHandler;
import org.springframework.ide.vscode.commons.languageserver.util.LanguageSpecific;
import org.springframework.ide.vscode.commons.languageserver.util.LspClient;
import org.springframework.ide.vscode.commons.languageserver.util.LspClient.Client;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
@@ -46,13 +46,10 @@ public class LanguageServerAutoConf {
@Bean public SimpleLanguageServer languageServer(
LanguageServerProperties props,
Optional<DiagnosticSeverityProvider> severities,
Optional<CompletionFilter> completionFilter
Optional<CompletionFilter> completionFilter,
ApplicationContext appContext
) throws Exception {
SimpleLanguageServer server = new SimpleLanguageServer(props.getExtensionId());
if (LspClient.currentClient()!=Client.VSCODE) {
//Vscode excluded. See https://github.com/spring-projects/sts4/issues/193
server.setCompletionTriggerCharacters(props.getCompletionTriggerCharacters());
}
SimpleLanguageServer server = new SimpleLanguageServer(props.getExtensionId(), appContext);
server.setCompletionFilter(completionFilter);
severities.ifPresent(server::setDiagnosticSeverityProvider);
return server;
@@ -65,6 +62,10 @@ public class LanguageServerAutoConf {
serverInit.initialize(server);
};
}
@Bean CompletionServerCapabilityRegistration completionCapabilities(SimpleLanguageServer server, LanguageServerProperties props) {
return new CompletionServerCapabilityRegistration(server, props);
}
@Bean SimpleTextDocumentService documents(SimpleLanguageServer ls) {
return ls.getTextDocumentService();