// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // using Microsoft.SqlTools.DataProtocol.Contracts.Common; namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument { /// /// Capabilities specific to the 'textDocument/completion' request /// public class CompletionCapabilities : DynamicRegistrationCapability { /// /// Client supports these CompletionItem specific capabilities. Can be null /// public CompletionItemCapabilities CompletionItem { get; set; } /// /// Client supports these CompletionItemKinds as responses to completion requests /// public CompletionItemKindCapabiltities CompletionItemKind { get; set; } } public class CompletionItemCapabilities { /// /// Whether client supports snippet formats as completion results /// /// /// A snippet can define tab stops and placeholders with $1, $2 and /// ${3:foo}. $0 defines the final tab stop, it defaults to the end of /// the snippet. Placeholders with equal identifiers are linked, that is typing in one /// will update others, too. /// public bool? SnippetSupport { get; set; } /// /// Whether client supports commit characters on a completion item /// public bool? CommitCharactersSpport { get; set; } /// /// Client supports these content formats for the documentation property. The order /// describes the preferred format of the client. May be null /// public MarkupKind[] DocumentationFormat { get; set; } } public class CompletionItemKindCapabiltities { /// /// Completion item kind values the client supports. When this property exists, the /// client also guarantees that it will handle values outside its set gracefully and /// falls back to a default value when unknown. /// /// If this property is not present, the client only supports the completion item kinds /// from Text to Reference as defined in the initial version of the protocol. /// public CompletionItemKinds? ValueSet { get; set; } } }