Search in sources :

Example 1 with ServerCapabilities

use of org.eclipse.lsp4j.ServerCapabilities in project freemarker-languageserver by angelozerr.

the class FreemarkerLanguageServer method initialize.

@Override
public CompletableFuture<InitializeResult> initialize(InitializeParams params) {
    ServerCapabilities capabilities = new ServerCapabilities();
    capabilities.setTextDocumentSync(TextDocumentSyncKind.Full);
    capabilities.setDocumentSymbolProvider(true);
    InitializeResult result = new InitializeResult(capabilities);
    return CompletableFuture.completedFuture(result);
}
Also used : InitializeResult(org.eclipse.lsp4j.InitializeResult) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities)

Example 2 with ServerCapabilities

use of org.eclipse.lsp4j.ServerCapabilities in project sts4 by spring-projects.

the class SimpleLanguageServer method getServerCapabilities.

protected final ServerCapabilities getServerCapabilities() {
    ServerCapabilities c = new ServerCapabilities();
    c.setTextDocumentSync(TextDocumentSyncKind.Incremental);
    c.setHoverProvider(true);
    CompletionOptions completionProvider = new CompletionOptions();
    completionProvider.setResolveProvider(hasLazyCompletionResolver());
    c.setCompletionProvider(completionProvider);
    if (hasQuickFixes()) {
        c.setCodeActionProvider(true);
    }
    if (hasDefinitionHandler()) {
        c.setDefinitionProvider(true);
    }
    if (hasReferencesHandler()) {
        c.setReferencesProvider(true);
    }
    if (hasDocumentSymbolHandler()) {
        c.setDocumentSymbolProvider(true);
    }
    if (hasDocumentHighlightHandler()) {
        c.setDocumentHighlightProvider(true);
    }
    if (hasCodeLensHandler()) {
        CodeLensOptions codeLensOptions = new CodeLensOptions();
        codeLensOptions.setResolveProvider(hasCodeLensResolveProvider());
        c.setCodeLensProvider(codeLensOptions);
    }
    if (hasExecuteCommandSupport && hasQuickFixes()) {
        c.setExecuteCommandProvider(new ExecuteCommandOptions(ImmutableList.of(CODE_ACTION_COMMAND_ID)));
    }
    if (hasWorkspaceSymbolHandler()) {
        c.setWorkspaceSymbolProvider(true);
    }
    WorkspaceFoldersOptions workspaceFoldersOptions = new WorkspaceFoldersOptions();
    workspaceFoldersOptions.setSupported(true);
    workspaceFoldersOptions.setChangeNotifications(WORKSPACE_FOLDERS_CAPABILITY_ID);
    WorkspaceServerCapabilities workspaceServerCapabilities = new WorkspaceServerCapabilities();
    workspaceServerCapabilities.setWorkspaceFolders(workspaceFoldersOptions);
    c.setWorkspace(workspaceServerCapabilities);
    return c;
}
Also used : CompletionOptions(org.eclipse.lsp4j.CompletionOptions) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities) WorkspaceServerCapabilities(org.eclipse.lsp4j.WorkspaceServerCapabilities) CodeLensOptions(org.eclipse.lsp4j.CodeLensOptions) ExecuteCommandOptions(org.eclipse.lsp4j.ExecuteCommandOptions) WorkspaceFoldersOptions(org.eclipse.lsp4j.WorkspaceFoldersOptions) WorkspaceServerCapabilities(org.eclipse.lsp4j.WorkspaceServerCapabilities)

Example 3 with ServerCapabilities

use of org.eclipse.lsp4j.ServerCapabilities 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 4 with ServerCapabilities

use of org.eclipse.lsp4j.ServerCapabilities in project sonarlint-core by SonarSource.

the class SonarLintLanguageServer method initialize.

@Override
public CompletableFuture<InitializeResult> initialize(InitializeParams params) {
    String rootUri = params.getRootUri();
    // rootURI is null when no folder is open (like opening a single file in VSCode)
    if (rootUri != null) {
        try {
            workspaceRoot = new URI(rootUri);
        } catch (URISyntaxException e) {
            throw new IllegalStateException(e);
        }
    }
    Map<String, Object> options = (Map<String, Object>) params.getInitializationOptions();
    userSettings = new UserSettings(options);
    String productKey = (String) options.get("productKey");
    // deprecated, will be ignored when productKey present
    String telemetryStorage = (String) options.get("telemetryStorage");
    String productName = (String) options.get("productName");
    String productVersion = (String) options.get("productVersion");
    telemetry.init(getStoragePath(productKey, telemetryStorage), productName, productVersion);
    telemetry.optOut(userSettings.disableTelemetry);
    info("Starting SonarLint engine...");
    info("Using " + analyzers.size() + " analyzers");
    try {
        Map<String, String> extraProperties = new HashMap<>();
        extraProperties.put("sonar.typescript.internal.typescriptLocation", (String) options.get(TYPESCRIPT_LOCATION));
        Builder builder = StandaloneGlobalConfiguration.builder().setLogOutput(logOutput).setExtraProperties(extraProperties).addPlugins(analyzers.toArray(new URL[0]));
        this.engine = new StandaloneSonarLintEngineImpl(builder.build());
    } catch (Exception e) {
        error("Error starting SonarLint engine", e);
        throw new IllegalStateException(e);
    }
    info("SonarLint engine started");
    InitializeResult result = new InitializeResult();
    ServerCapabilities c = new ServerCapabilities();
    TextDocumentSyncOptions textDocumentSyncOptions = new TextDocumentSyncOptions();
    textDocumentSyncOptions.setOpenClose(true);
    textDocumentSyncOptions.setChange(TextDocumentSyncKind.Full);
    textDocumentSyncOptions.setSave(new SaveOptions(true));
    c.setTextDocumentSync(textDocumentSyncOptions);
    c.setCodeActionProvider(true);
    c.setExecuteCommandProvider(new ExecuteCommandOptions(asList(SONARLINT_OPEN_RULE_DESCRIPTION_COMMAND)));
    result.setCapabilities(c);
    return CompletableFuture.completedFuture(result);
}
Also used : TextDocumentSyncOptions(org.eclipse.lsp4j.TextDocumentSyncOptions) HashMap(java.util.HashMap) Builder(org.sonarsource.sonarlint.core.client.api.standalone.StandaloneGlobalConfiguration.Builder) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI) URL(java.net.URL) URISyntaxException(java.net.URISyntaxException) IOException(java.io.IOException) StandaloneSonarLintEngineImpl(org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl) InitializeResult(org.eclipse.lsp4j.InitializeResult) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities) SaveOptions(org.eclipse.lsp4j.SaveOptions) ExecuteCommandOptions(org.eclipse.lsp4j.ExecuteCommandOptions) Map(java.util.Map) HashMap(java.util.HashMap)

Example 5 with ServerCapabilities

use of org.eclipse.lsp4j.ServerCapabilities in project eclipse.jdt.ls by eclipse.

the class InitHandler method initialize.

@SuppressWarnings("unchecked")
InitializeResult initialize(InitializeParams param) {
    logInfo("Initializing Java Language Server " + JavaLanguageServerPlugin.getVersion());
    Map<?, ?> initializationOptions = this.getInitializationOptions(param);
    Map<String, Object> extendedClientCapabilities = getInitializationOption(initializationOptions, "extendedClientCapabilities", Map.class);
    if (param.getCapabilities() == null) {
        preferenceManager.updateClientPrefences(new ClientCapabilities(), extendedClientCapabilities);
    } else {
        preferenceManager.updateClientPrefences(param.getCapabilities(), extendedClientCapabilities);
    }
    Collection<IPath> rootPaths = new ArrayList<>();
    Collection<String> workspaceFolders = getInitializationOption(initializationOptions, "workspaceFolders", Collection.class);
    if (workspaceFolders != null && !workspaceFolders.isEmpty()) {
        for (String uri : workspaceFolders) {
            IPath filePath = ResourceUtils.filePathFromURI(uri);
            if (filePath != null) {
                rootPaths.add(filePath);
            }
        }
    } else {
        String rootPath = param.getRootUri();
        if (rootPath == null) {
            rootPath = param.getRootPath();
            if (rootPath != null) {
                logInfo("In LSP 3.0, InitializeParams.rootPath is deprecated in favour of InitializeParams.rootUri!");
            }
        }
        if (rootPath != null) {
            IPath filePath = ResourceUtils.filePathFromURI(rootPath);
            if (filePath != null) {
                rootPaths.add(filePath);
            }
        }
    }
    if (rootPaths.isEmpty()) {
        IPath workspaceLocation = ResourcesPlugin.getWorkspace().getRoot().getLocation();
        logInfo("No workspace folders or root uri was defined. Falling back on " + workspaceLocation);
        rootPaths.add(workspaceLocation);
    }
    if (initializationOptions.get(SETTINGS_KEY) instanceof Map) {
        Object settings = initializationOptions.get(SETTINGS_KEY);
        @SuppressWarnings("unchecked") Preferences prefs = Preferences.createFrom((Map<String, Object>) settings);
        preferenceManager.update(prefs);
    }
    triggerInitialization(rootPaths);
    addWorkspaceDiagnosticsHandler();
    Integer processId = param.getProcessId();
    if (processId != null) {
        JavaLanguageServerPlugin.getLanguageServer().setParentProcessId(processId.longValue());
    }
    try {
        Collection<String> bundleList = getInitializationOption(initializationOptions, BUNDLES_KEY, Collection.class);
        BundleUtils.loadBundles(bundleList);
    } catch (CoreException e) {
        // The additional plug-ins should not affect the main language server loading.
        JavaLanguageServerPlugin.logException("Failed to load extension bundles ", e);
    }
    InitializeResult result = new InitializeResult();
    ServerCapabilities capabilities = new ServerCapabilities();
    capabilities.setCompletionProvider(new CompletionOptions(Boolean.TRUE, Arrays.asList(".", "@", "#")));
    if (!preferenceManager.getClientPreferences().isFormattingDynamicRegistrationSupported()) {
        capabilities.setDocumentFormattingProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isRangeFormattingDynamicRegistrationSupported()) {
        capabilities.setDocumentRangeFormattingProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isCodeLensDynamicRegistrationSupported()) {
        capabilities.setCodeLensProvider(new CodeLensOptions(true));
    }
    if (!preferenceManager.getClientPreferences().isSignatureHelpDynamicRegistrationSupported()) {
        capabilities.setSignatureHelpProvider(SignatureHelpHandler.createOptions());
    }
    if (!preferenceManager.getClientPreferences().isRenameDynamicRegistrationSupported()) {
        capabilities.setRenameProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isCodeActionDynamicRegistered()) {
        capabilities.setCodeActionProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isExecuteCommandDynamicRegistrationSupported()) {
        Set<String> commands = WorkspaceExecuteCommandHandler.getCommands();
        capabilities.setExecuteCommandProvider(new ExecuteCommandOptions(new ArrayList<>(commands)));
    }
    if (!preferenceManager.getClientPreferences().isWorkspaceSymbolDynamicRegistered()) {
        capabilities.setWorkspaceSymbolProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isDocumentSymbolDynamicRegistered()) {
        capabilities.setDocumentSymbolProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isDefinitionDynamicRegistered()) {
        capabilities.setDefinitionProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isHoverDynamicRegistered()) {
        capabilities.setHoverProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isReferencesDynamicRegistered()) {
        capabilities.setReferencesProvider(Boolean.TRUE);
    }
    if (!preferenceManager.getClientPreferences().isDocumentHighlightDynamicRegistered()) {
        capabilities.setDocumentHighlightProvider(Boolean.TRUE);
    }
    TextDocumentSyncOptions textDocumentSyncOptions = new TextDocumentSyncOptions();
    textDocumentSyncOptions.setOpenClose(Boolean.TRUE);
    textDocumentSyncOptions.setSave(new SaveOptions(Boolean.TRUE));
    textDocumentSyncOptions.setChange(TextDocumentSyncKind.Incremental);
    if (preferenceManager.getClientPreferences().isWillSaveRegistered()) {
        textDocumentSyncOptions.setWillSave(Boolean.TRUE);
    }
    if (preferenceManager.getClientPreferences().isWillSaveWaitUntilRegistered()) {
        textDocumentSyncOptions.setWillSaveWaitUntil(Boolean.TRUE);
    }
    capabilities.setTextDocumentSync(textDocumentSyncOptions);
    WorkspaceServerCapabilities wsCapabilities = new WorkspaceServerCapabilities();
    WorkspaceFoldersOptions wsFoldersOptions = new WorkspaceFoldersOptions();
    wsFoldersOptions.setSupported(Boolean.TRUE);
    wsFoldersOptions.setChangeNotifications(Boolean.TRUE);
    wsCapabilities.setWorkspaceFolders(wsFoldersOptions);
    capabilities.setWorkspace(wsCapabilities);
    result.setCapabilities(capabilities);
    return result;
}
Also used : IPath(org.eclipse.core.runtime.IPath) TextDocumentSyncOptions(org.eclipse.lsp4j.TextDocumentSyncOptions) ArrayList(java.util.ArrayList) ClientCapabilities(org.eclipse.lsp4j.ClientCapabilities) WorkspaceFoldersOptions(org.eclipse.lsp4j.WorkspaceFoldersOptions) WorkspaceServerCapabilities(org.eclipse.lsp4j.WorkspaceServerCapabilities) CompletionOptions(org.eclipse.lsp4j.CompletionOptions) InitializeResult(org.eclipse.lsp4j.InitializeResult) CoreException(org.eclipse.core.runtime.CoreException) ServerCapabilities(org.eclipse.lsp4j.ServerCapabilities) WorkspaceServerCapabilities(org.eclipse.lsp4j.WorkspaceServerCapabilities) CodeLensOptions(org.eclipse.lsp4j.CodeLensOptions) SaveOptions(org.eclipse.lsp4j.SaveOptions) Preferences(org.eclipse.jdt.ls.core.internal.preferences.Preferences) ExecuteCommandOptions(org.eclipse.lsp4j.ExecuteCommandOptions) Map(java.util.Map)

Aggregations

ServerCapabilities (org.eclipse.lsp4j.ServerCapabilities)8 InitializeResult (org.eclipse.lsp4j.InitializeResult)7 CompletionOptions (org.eclipse.lsp4j.CompletionOptions)5 ExecuteCommandOptions (org.eclipse.lsp4j.ExecuteCommandOptions)5 ArrayList (java.util.ArrayList)4 WorkspaceServerCapabilities (org.eclipse.lsp4j.WorkspaceServerCapabilities)4 Map (java.util.Map)3 CodeLensOptions (org.eclipse.lsp4j.CodeLensOptions)3 SignatureHelpOptions (org.eclipse.lsp4j.SignatureHelpOptions)3 WorkspaceFoldersOptions (org.eclipse.lsp4j.WorkspaceFoldersOptions)3 URI (java.net.URI)2 ClientCapabilities (org.eclipse.lsp4j.ClientCapabilities)2 InitializeParams (org.eclipse.lsp4j.InitializeParams)2 SaveOptions (org.eclipse.lsp4j.SaveOptions)2 TextDocumentSyncOptions (org.eclipse.lsp4j.TextDocumentSyncOptions)2 WorkspaceFolder (org.eclipse.lsp4j.WorkspaceFolder)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