Search in sources :

Example 1 with SignatureHelpOptions

use of org.eclipse.lsp4j.SignatureHelpOptions in project vscode-nextgenas by BowlerHatLLC.

the class ActionScriptLanguageServer method initialize.

/**
     * Tells Visual Studio Code about the language server's capabilities.
     */
@Override
public CompletableFuture<InitializeResult> initialize(InitializeParams params) {
    Path workspaceRoot = Paths.get(params.getRootPath()).toAbsolutePath().normalize();
    projectConfigStrategy.setASConfigPath(workspaceRoot.resolve(ASCONFIG_JSON));
    textDocumentService.setWorkspaceRoot(workspaceRoot);
    InitializeResult result = new InitializeResult();
    ServerCapabilities serverCapabilities = new ServerCapabilities();
    serverCapabilities.setTextDocumentSync(TextDocumentSyncKind.Incremental);
    serverCapabilities.setCodeActionProvider(true);
    CompletionOptions completionOptions = new CompletionOptions();
    completionOptions.setTriggerCharacters(Arrays.asList(".", ":", " ", "<"));
    serverCapabilities.setCompletionProvider(completionOptions);
    serverCapabilities.setDefinitionProvider(true);
    serverCapabilities.setDocumentSymbolProvider(true);
    serverCapabilities.setDocumentHighlightProvider(false);
    serverCapabilities.setDocumentRangeFormattingProvider(false);
    serverCapabilities.setHoverProvider(true);
    serverCapabilities.setReferencesProvider(true);
    serverCapabilities.setRenameProvider(true);
    SignatureHelpOptions signatureHelpOptions = new SignatureHelpOptions();
    signatureHelpOptions.setTriggerCharacters(Arrays.asList("(", ","));
    serverCapabilities.setSignatureHelpProvider(signatureHelpOptions);
    serverCapabilities.setWorkspaceSymbolProvider(true);
    result.setCapabilities(serverCapabilities);
    return CompletableFuture.completedFuture(result);
}
Also used : Path(java.nio.file.Path) CompletionOptions(org.eclipse.lsp4j.CompletionOptions) SignatureHelpOptions(org.eclipse.lsp4j.SignatureHelpOptions) InitializeResult(org.eclipse.lsp4j.InitializeResult) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities)

Example 2 with SignatureHelpOptions

use of org.eclipse.lsp4j.SignatureHelpOptions in project ballerina by ballerina-lang.

the class BallerinaLanguageServer method initialize.

public CompletableFuture<InitializeResult> initialize(InitializeParams params) {
    final InitializeResult res = new InitializeResult(new ServerCapabilities());
    final SignatureHelpOptions signatureHelpOptions = new SignatureHelpOptions(Arrays.asList("(", ","));
    final List<String> commandList = new ArrayList<>(Arrays.asList(CommandConstants.CMD_IMPORT_PACKAGE, CommandConstants.CMD_ADD_DOCUMENTATION, CommandConstants.CMD_ADD_ALL_DOC));
    final ExecuteCommandOptions executeCommandOptions = new ExecuteCommandOptions(commandList);
    final CompletionOptions completionOptions = new CompletionOptions();
    completionOptions.setTriggerCharacters(Arrays.asList(":", ".", ">"));
    res.getCapabilities().setCompletionProvider(completionOptions);
    res.getCapabilities().setTextDocumentSync(TextDocumentSyncKind.Full);
    res.getCapabilities().setSignatureHelpProvider(signatureHelpOptions);
    res.getCapabilities().setHoverProvider(true);
    res.getCapabilities().setDocumentSymbolProvider(true);
    res.getCapabilities().setDefinitionProvider(true);
    res.getCapabilities().setReferencesProvider(true);
    res.getCapabilities().setCodeActionProvider(true);
    res.getCapabilities().setExecuteCommandProvider(executeCommandOptions);
    res.getCapabilities().setDocumentFormattingProvider(true);
    res.getCapabilities().setRenameProvider(true);
    return CompletableFuture.supplyAsync(() -> res);
}
Also used : CompletionOptions(org.eclipse.lsp4j.CompletionOptions) SignatureHelpOptions(org.eclipse.lsp4j.SignatureHelpOptions) InitializeResult(org.eclipse.lsp4j.InitializeResult) ArrayList(java.util.ArrayList) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities) ExecuteCommandOptions(org.eclipse.lsp4j.ExecuteCommandOptions)

Example 3 with SignatureHelpOptions

use of org.eclipse.lsp4j.SignatureHelpOptions in project xtext-core by eclipse.

the class LanguageServerImpl method createServerCapabilities.

/**
 * Configure the server capabilities for this instance.
 *
 * @param params
 *            the initialization parametrs
 * @return the server capabilities
 * @since 2.20
 */
protected ServerCapabilities createServerCapabilities(InitializeParams params) {
    ServerCapabilities serverCapabilities = new ServerCapabilities();
    serverCapabilities.setHoverProvider(true);
    serverCapabilities.setDefinitionProvider(true);
    serverCapabilities.setReferencesProvider(true);
    serverCapabilities.setDocumentSymbolProvider(true);
    serverCapabilities.setWorkspaceSymbolProvider(true);
    Set<? extends IResourceServiceProvider> allLanguages = getAllLanguages();
    if (allLanguages.stream().anyMatch((serviceProvider) -> serviceProvider.get(ICodeLensService.class) != null)) {
        CodeLensOptions codeLensOptions = new CodeLensOptions();
        codeLensOptions.setResolveProvider(allLanguages.stream().anyMatch((serviceProvider) -> serviceProvider.get(ICodeLensResolver.class) != null));
        serverCapabilities.setCodeLensProvider(codeLensOptions);
    }
    serverCapabilities.setCodeActionProvider(allLanguages.stream().anyMatch((serviceProvider) -> serviceProvider.get(ICodeActionService2.class) != null));
    serverCapabilities.setSignatureHelpProvider(new SignatureHelpOptions(ImmutableList.of("(", ",")));
    serverCapabilities.setTextDocumentSync(TextDocumentSyncKind.Incremental);
    CompletionOptions completionOptions = new CompletionOptions();
    completionOptions.setResolveProvider(false);
    completionOptions.setTriggerCharacters(ImmutableList.of("."));
    serverCapabilities.setCompletionProvider(completionOptions);
    serverCapabilities.setDocumentFormattingProvider(true);
    serverCapabilities.setDocumentRangeFormattingProvider(true);
    serverCapabilities.setDocumentHighlightProvider(true);
    ClientCapabilities clientCapabilities = null;
    if (params != null) {
        clientCapabilities = params.getCapabilities();
    }
    TextDocumentClientCapabilities textDocument = null;
    if (clientCapabilities != null) {
        textDocument = clientCapabilities.getTextDocument();
    }
    RenameCapabilities rename = null;
    FoldingRangeCapabilities folding = null;
    if (textDocument != null) {
        rename = textDocument.getRename();
        folding = textDocument.getFoldingRange();
    }
    if (folding != null) {
        serverCapabilities.setFoldingRangeProvider(allLanguages.stream().anyMatch(serviceProvider -> serviceProvider.get(FoldingRangeService.class) != null));
    }
    Boolean prepareSupport = null;
    if (rename != null) {
        prepareSupport = rename.getPrepareSupport();
    }
    boolean clientPrepareSupport = Objects.equal(Boolean.TRUE, prepareSupport);
    if (clientPrepareSupport && allLanguages.stream().anyMatch(serviceProvider -> serviceProvider.get(IRenameService2.class) != null)) {
        RenameOptions renameOptions = new RenameOptions();
        renameOptions.setPrepareProvider(true);
        serverCapabilities.setRenameProvider(Either.<Boolean, RenameOptions>forRight(renameOptions));
    } else {
        serverCapabilities.setRenameProvider(Either.forLeft(allLanguages.stream().anyMatch((serviceProvider) -> serviceProvider.get(IRenameService2.class) != null)));
    }
    WorkspaceClientCapabilities workspace = null;
    if (clientCapabilities != null) {
        workspace = clientCapabilities.getWorkspace();
    }
    ExecuteCommandCapabilities executeCommand = null;
    if (workspace != null) {
        executeCommand = workspace.getExecuteCommand();
        if (workspace.getWorkspaceFolders() == Boolean.TRUE && workspaceManager.isSupportsWorkspaceFolders()) {
            WorkspaceFoldersOptions workspaceFoldersOptions = new WorkspaceFoldersOptions();
            workspaceFoldersOptions.setSupported(true);
            workspaceFoldersOptions.setChangeNotifications(true);
            serverCapabilities.setWorkspace(new WorkspaceServerCapabilities(workspaceFoldersOptions));
        }
    }
    if (executeCommand != null) {
        commandRegistry.initialize(allLanguages, clientCapabilities, client);
        ExecuteCommandOptions executeCommandOptions = new ExecuteCommandOptions();
        executeCommandOptions.setCommands(commandRegistry.getCommands());
        serverCapabilities.setExecuteCommandProvider(executeCommandOptions);
    }
    for (IResourceServiceProvider language : allLanguages) {
        ICapabilitiesContributor capabilitiesContributor = language.get(ICapabilitiesContributor.class);
        if (capabilitiesContributor != null) {
            capabilitiesContributor.contribute(serverCapabilities, params);
        }
    }
    return serverCapabilities;
}
Also used : Arrays(java.util.Arrays) CodeLensOptions(org.eclipse.lsp4j.CodeLensOptions) DidChangeTextDocumentParams(org.eclipse.lsp4j.DidChangeTextDocumentParams) WorkspaceSymbolParams(org.eclipse.lsp4j.WorkspaceSymbolParams) LanguageServer(org.eclipse.lsp4j.services.LanguageServer) DidSaveTextDocumentParams(org.eclipse.lsp4j.DidSaveTextDocumentParams) PublishDiagnosticsParams(org.eclipse.lsp4j.PublishDiagnosticsParams) Map(java.util.Map) RenameParams(org.eclipse.lsp4j.RenameParams) Endpoint(org.eclipse.lsp4j.jsonrpc.Endpoint) IRenameService2(org.eclipse.xtext.ide.server.rename.IRenameService2) TextDocumentService(org.eclipse.lsp4j.services.TextDocumentService) DiagnosticSeverity(org.eclipse.lsp4j.DiagnosticSeverity) SignatureHelpOptions(org.eclipse.lsp4j.SignatureHelpOptions) ISignatureHelpService(org.eclipse.xtext.ide.server.signatureHelp.ISignatureHelpService) Set(java.util.Set) DocumentOnTypeFormattingParams(org.eclipse.lsp4j.DocumentOnTypeFormattingParams) WorkspaceService(org.eclipse.lsp4j.services.WorkspaceService) LocationLink(org.eclipse.lsp4j.LocationLink) FormattingService(org.eclipse.xtext.ide.server.formatting.FormattingService) ExecuteCommandOptions(org.eclipse.lsp4j.ExecuteCommandOptions) ResourceDescriptionsProvider(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider) JsonRpcMethod(org.eclipse.lsp4j.jsonrpc.json.JsonRpcMethod) WorkspaceFolder(org.eclipse.lsp4j.WorkspaceFolder) FoldingRange(org.eclipse.lsp4j.FoldingRange) ContentAssistService(org.eclipse.xtext.ide.server.contentassist.ContentAssistService) Pair(org.eclipse.xtext.xbase.lib.Pair) LanguageClientAware(org.eclipse.lsp4j.services.LanguageClientAware) URI(org.eclipse.emf.common.util.URI) IResourceServiceProvider(org.eclipse.xtext.resource.IResourceServiceProvider) HierarchicalDocumentSymbolService(org.eclipse.xtext.ide.server.symbol.HierarchicalDocumentSymbolService) HoverParams(org.eclipse.lsp4j.HoverParams) Diagnostic(org.eclipse.lsp4j.Diagnostic) Supplier(java.util.function.Supplier) DocumentRangeFormattingParams(org.eclipse.lsp4j.DocumentRangeFormattingParams) Hover(org.eclipse.lsp4j.Hover) ResourceSet(org.eclipse.emf.ecore.resource.ResourceSet) ArrayList(java.util.ArrayList) IHoverService(org.eclipse.xtext.ide.server.hover.IHoverService) LinkedHashMap(java.util.LinkedHashMap) FileChangeType(org.eclipse.lsp4j.FileChangeType) TextDocumentItem(org.eclipse.lsp4j.TextDocumentItem) TextEdit(org.eclipse.lsp4j.TextEdit) Lists(com.google.common.collect.Lists) DocumentFormattingParams(org.eclipse.lsp4j.DocumentFormattingParams) VersionedTextDocumentIdentifier(org.eclipse.lsp4j.VersionedTextDocumentIdentifier) ImmutableMultimap(com.google.common.collect.ImmutableMultimap) InitializeResult(org.eclipse.lsp4j.InitializeResult) DocumentHighlight(org.eclipse.lsp4j.DocumentHighlight) ServiceEndpoints(org.eclipse.lsp4j.jsonrpc.services.ServiceEndpoints) DidChangeWatchedFilesParams(org.eclipse.lsp4j.DidChangeWatchedFilesParams) DocumentHighlightParams(org.eclipse.lsp4j.DocumentHighlightParams) PrepareRenameResult(org.eclipse.lsp4j.PrepareRenameResult) ICodeActionService2(org.eclipse.xtext.ide.server.codeActions.ICodeActionService2) SignatureHelp(org.eclipse.lsp4j.SignatureHelp) TreeMap(java.util.TreeMap) WorkspaceEdit(org.eclipse.lsp4j.WorkspaceEdit) Issue(org.eclipse.xtext.validation.Issue) RenameOptions(org.eclipse.lsp4j.RenameOptions) DocumentSymbolService(org.eclipse.xtext.ide.server.symbol.DocumentSymbolService) CompletionOptions(org.eclipse.lsp4j.CompletionOptions) IBuildListener(org.eclipse.xtext.ide.server.ILanguageServerAccess.IBuildListener) SignatureHelpParams(org.eclipse.lsp4j.SignatureHelpParams) ClientCapabilities(org.eclipse.lsp4j.ClientCapabilities) BufferedCancelIndicator(org.eclipse.xtext.util.BufferedCancelIndicator) LanguageClient(org.eclipse.lsp4j.services.LanguageClient) Inject(com.google.inject.Inject) WorkspaceClientCapabilities(org.eclipse.lsp4j.WorkspaceClientCapabilities) TextDocumentIdentifier(org.eclipse.lsp4j.TextDocumentIdentifier) ICodeLensService(org.eclipse.xtext.ide.server.codelens.ICodeLensService) IResourceDescription(org.eclipse.xtext.resource.IResourceDescription) FoldingRangeRequestParams(org.eclipse.lsp4j.FoldingRangeRequestParams) Logger(org.apache.log4j.Logger) CodeLens(org.eclipse.lsp4j.CodeLens) DidChangeWorkspaceFoldersParams(org.eclipse.lsp4j.DidChangeWorkspaceFoldersParams) IReferenceFinder(org.eclipse.xtext.findReferences.IReferenceFinder) Location(org.eclipse.lsp4j.Location) Either(org.eclipse.lsp4j.jsonrpc.messages.Either) TextDocumentClientCapabilities(org.eclipse.lsp4j.TextDocumentClientCapabilities) DidCloseTextDocumentParams(org.eclipse.lsp4j.DidCloseTextDocumentParams) Objects(com.google.common.base.Objects) CodeAction(org.eclipse.lsp4j.CodeAction) LinkedListMultimap(com.google.common.collect.LinkedListMultimap) TextDocumentPositionParams(org.eclipse.lsp4j.TextDocumentPositionParams) ImmutableSet(com.google.common.collect.ImmutableSet) ImmutableMap(com.google.common.collect.ImmutableMap) IDocumentSymbolService(org.eclipse.xtext.ide.server.symbol.IDocumentSymbolService) PrepareRenameParams(org.eclipse.lsp4j.PrepareRenameParams) ICodeLensResolver(org.eclipse.xtext.ide.server.codelens.ICodeLensResolver) FoldingRangeService(org.eclipse.xtext.ide.server.folding.FoldingRangeService) DefinitionParams(org.eclipse.lsp4j.DefinitionParams) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities) CompletionItem(org.eclipse.lsp4j.CompletionItem) RenameCapabilities(org.eclipse.lsp4j.RenameCapabilities) List(java.util.List) Command(org.eclipse.lsp4j.Command) IDocumentHighlightService(org.eclipse.xtext.ide.server.occurrences.IDocumentHighlightService) WorkspaceSymbolService(org.eclipse.xtext.ide.server.symbol.WorkspaceSymbolService) DidOpenTextDocumentParams(org.eclipse.lsp4j.DidOpenTextDocumentParams) InitializeParams(org.eclipse.lsp4j.InitializeParams) WorkspaceFoldersOptions(org.eclipse.lsp4j.WorkspaceFoldersOptions) Buildable(org.eclipse.xtext.ide.server.BuildManager.Buildable) CompletionParams(org.eclipse.lsp4j.CompletionParams) DocumentSymbolParams(org.eclipse.lsp4j.DocumentSymbolParams) CompletableFuture(java.util.concurrent.CompletableFuture) Range(org.eclipse.lsp4j.Range) DocumentSymbolCapabilities(org.eclipse.lsp4j.DocumentSymbolCapabilities) Multimap(com.google.common.collect.Multimap) Function(java.util.function.Function) SymbolInformation(org.eclipse.lsp4j.SymbolInformation) CodeActionParams(org.eclipse.lsp4j.CodeActionParams) ExecuteCommandCapabilities(org.eclipse.lsp4j.ExecuteCommandCapabilities) ImmutableList(com.google.common.collect.ImmutableList) ExecuteCommandParams(org.eclipse.lsp4j.ExecuteCommandParams) CancelIndicator(org.eclipse.xtext.util.CancelIndicator) Position(org.eclipse.lsp4j.Position) CodeLensParams(org.eclipse.lsp4j.CodeLensParams) CompletionList(org.eclipse.lsp4j.CompletionList) DidChangeConfigurationParams(org.eclipse.lsp4j.DidChangeConfigurationParams) TextDocumentSyncKind(org.eclipse.lsp4j.TextDocumentSyncKind) InitializedParams(org.eclipse.lsp4j.InitializedParams) Severity(org.eclipse.xtext.diagnostics.Severity) FoldingRangeCapabilities(org.eclipse.lsp4j.FoldingRangeCapabilities) WorkspaceServerCapabilities(org.eclipse.lsp4j.WorkspaceServerCapabilities) ExecutableCommandRegistry(org.eclipse.xtext.ide.server.commands.ExecutableCommandRegistry) JsonRpcMethodProvider(org.eclipse.lsp4j.jsonrpc.json.JsonRpcMethodProvider) RequestManager(org.eclipse.xtext.ide.server.concurrent.RequestManager) WorkspaceResourceAccess(org.eclipse.xtext.ide.server.findReferences.WorkspaceResourceAccess) Collections(java.util.Collections) DocumentSymbol(org.eclipse.lsp4j.DocumentSymbol) XtextResourceSet(org.eclipse.xtext.resource.XtextResourceSet) ReferenceParams(org.eclipse.lsp4j.ReferenceParams) ICodeLensResolver(org.eclipse.xtext.ide.server.codelens.ICodeLensResolver) RenameOptions(org.eclipse.lsp4j.RenameOptions) RenameCapabilities(org.eclipse.lsp4j.RenameCapabilities) ICodeActionService2(org.eclipse.xtext.ide.server.codeActions.ICodeActionService2) ClientCapabilities(org.eclipse.lsp4j.ClientCapabilities) WorkspaceClientCapabilities(org.eclipse.lsp4j.WorkspaceClientCapabilities) TextDocumentClientCapabilities(org.eclipse.lsp4j.TextDocumentClientCapabilities) TextDocumentClientCapabilities(org.eclipse.lsp4j.TextDocumentClientCapabilities) WorkspaceFoldersOptions(org.eclipse.lsp4j.WorkspaceFoldersOptions) FoldingRangeService(org.eclipse.xtext.ide.server.folding.FoldingRangeService) WorkspaceServerCapabilities(org.eclipse.lsp4j.WorkspaceServerCapabilities) CompletionOptions(org.eclipse.lsp4j.CompletionOptions) WorkspaceClientCapabilities(org.eclipse.lsp4j.WorkspaceClientCapabilities) SignatureHelpOptions(org.eclipse.lsp4j.SignatureHelpOptions) IResourceServiceProvider(org.eclipse.xtext.resource.IResourceServiceProvider) FoldingRangeCapabilities(org.eclipse.lsp4j.FoldingRangeCapabilities) IRenameService2(org.eclipse.xtext.ide.server.rename.IRenameService2) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities) WorkspaceServerCapabilities(org.eclipse.lsp4j.WorkspaceServerCapabilities) CodeLensOptions(org.eclipse.lsp4j.CodeLensOptions) ExecuteCommandCapabilities(org.eclipse.lsp4j.ExecuteCommandCapabilities) ExecuteCommandOptions(org.eclipse.lsp4j.ExecuteCommandOptions)

Aggregations

CompletionOptions (org.eclipse.lsp4j.CompletionOptions)3 InitializeResult (org.eclipse.lsp4j.InitializeResult)3 ServerCapabilities (org.eclipse.lsp4j.ServerCapabilities)3 SignatureHelpOptions (org.eclipse.lsp4j.SignatureHelpOptions)3 ArrayList (java.util.ArrayList)2 ExecuteCommandOptions (org.eclipse.lsp4j.ExecuteCommandOptions)2 Objects (com.google.common.base.Objects)1 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 ImmutableMultimap (com.google.common.collect.ImmutableMultimap)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 LinkedListMultimap (com.google.common.collect.LinkedListMultimap)1 Lists (com.google.common.collect.Lists)1 Multimap (com.google.common.collect.Multimap)1 Inject (com.google.inject.Inject)1 Path (java.nio.file.Path)1 Arrays (java.util.Arrays)1 Collections (java.util.Collections)1 LinkedHashMap (java.util.LinkedHashMap)1 List (java.util.List)1