// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // namespace Microsoft.SqlTools.DataProtocol.Contracts.ServerCapabilities { public class ServerCapabilities { /// /// Defines how text documents are synced. Is either a detailed structure defining each /// notification or for backwards compatibility the TextDocumentSyncKind number. /// /// TODO: Use the Union type public TextDocumentSyncKind TextDocumentSync { get; set; } /// /// Whether the server provides code actions. Can be null /// public bool? CodeActionProvider { get; set; } /// /// Options that the server provides for code lens. Can be null to indicate code /// lens is not supported. /// public CodeLensOptions CodeLensProvider { get; set; } /// /// Options that the server supports for completion. Can be null to indicate /// completion is not supported. /// public CompletionOptions CompletionProvider { get; set; } /// /// Whether the server provides goto definition support. Can be null /// public bool? DefinitionProvider { get; set; } /// /// Whether the server provides document formatting. Can be null /// public bool? DocumentFormattingProvider { get; set; } /// /// Whether the server provides document highlight support. Can be null /// public bool? DocumentHighlightProvider { get; set; } /// /// Options the server supports for document linking. Can be null to indicate the /// feature is not supported /// public DocumentLinkOptions DocumentLinkProvider { get; set; } /// /// Options that the server supports for document formatting on type. Can be null to /// indicate the feature is not supported /// public DocumentOnTypeFormattingOptions DocumentOnTypeFormattingProvider { get; set; } /// /// Whether the server provides document symbol support. Can be null /// public bool? DocumentSymbolProvider { get; set; } /// /// Options the server supports for executing commands. Can be null to indicate the /// feature is not supported. /// public ExecuteCommandOptions ExecuteCommandProvider { get; set; } /// /// Any experimental features the server supports /// /// TODO: Should this be a parameterized type? public object Experimental { get; set; } /// /// Whether or not the server supports goto implementation requests. Can be null /// /// TODO: Union type public bool? ImplementationProvider { get; set; } /// /// Whether the server provides hover support. Can be null /// public bool? HoverProvider { get; set; } /// /// Whether the server provides find references support. Can be null /// public bool? ReferencesProvider { get; set; } /// /// Whether the server provides support for renaming. Can be null /// public bool? RenameProvider { get; set; } /// /// Options that the server supports for signature help. Can be null to indicate /// completion is not supported /// public SignatureHelpOptions SignatureHelpProvider { get; set; } /// /// Whether the server provides goto type definition support. Can be null /// /// TODO: Union type public bool? TypeDefinitionProvider { get; set; } /// /// Options specific to workspaces the server supoorts. Can be null to indicate the /// server does not support workspace requests. /// public WorkspaceCapabilities Workspace { get; set; } /// /// Whether the server provides workpace symbol support. Can be null /// public bool? WorkspaceSymbolProvider { get; set; } } }