use serde::Deserialize;
use serde_repr::Deserialize_repr;
use super::MarkupKind;
#[derive(Debug, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompletionClientCapabilities {
pub dynamic_registration: Option<bool>,
pub completion_item: Option<CompletionClientCapabilitiesCompletionItem>,
pub completion_item_kind: Option<CompletionClientCapabilitiesCompletionItemKind>,
pub context_support: Option<bool>,
pub insert_text_mode: Option<InsertTextMode>,
pub completion_list: Option<CompletionClientCapabilitiesCompletionList>,
}
#[derive(Debug, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompletionClientCapabilitiesCompletionItem {
pub snippet_support: Option<bool>,
pub commit_characters_support: Option<bool>,
pub documentation_format: Option<Vec<MarkupKind>>,
pub deprecated_support: Option<bool>,
pub preselect_support: Option<bool>,
pub tag_support: Option<CompletionItemTagSupport>,
pub insert_replace_support: Option<bool>,
pub resolve_support: Option<CompletionItemResolveSupport>,
pub insert_text_mode_support: Option<CompletionItemInsertTextModeSupport>,
pub label_details_support: Option<bool>,
}
#[derive(Debug, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItemTagSupport {
pub value_set: Vec<CompletionItemTag>,
}
#[derive(Debug, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItemResolveSupport {
pub properties: Vec<String>,
}
#[derive(Debug, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItemInsertTextModeSupport {
pub value_set: Vec<InsertTextMode>,
}
#[derive(Debug, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompletionClientCapabilitiesCompletionItemKind {
pub value_set: Option<Vec<CompletionItemKind>>,
}
#[derive(Debug, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompletionClientCapabilitiesCompletionList {
pub item_defaults: Option<Vec<String>>,
}
#[derive(Debug, Deserialize_repr, PartialEq, Clone)]
#[repr(u8)]
pub enum CompletionItemTag {
Deprecated = 1,
}
#[derive(Debug, Deserialize_repr, PartialEq, Clone)]
#[repr(u8)]
pub enum InsertTextMode {
AsIs = 1,
AdjustIndentation = 2,
}
#[derive(Debug, Deserialize_repr, PartialEq, Clone)]
#[repr(u8)]
pub enum CompletionItemKind {
Text = 1,
Method = 2,
Function = 3,
Constructor = 4,
Field = 5,
Variable = 6,
Class = 7,
Interface = 8,
Module = 9,
Property = 10,
Unit = 11,
Value = 12,
Enum = 13,
Keyword = 14,
Snippet = 15,
Color = 16,
File = 17,
Reference = 18,
Folder = 19,
EnumMember = 20,
Constant = 21,
Struct = 22,
Event = 23,
Operator = 24,
TypeParameter = 25,
}