//
// 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; }
}
}