#![allow(
deprecated,
clippy::doc_lazy_continuation,
unreachable_patterns,
clippy::large_enum_variant,
rustdoc::invalid_codeblock_attributes
)]
#![cfg_attr(any(), rustfmt::skip)]
use derive_more::From;
use serde::{de::DeserializeOwned, Deserialize, Deserializer, Serialize};
use std::{borrow::Cow, collections::HashMap, fmt};
fn deserialize_some<'de, T, D>(deserializer: D) -> Result<Option<T>, D::Error>
where
T: Deserialize<'de>,
D: Deserializer<'de>,
{
T::deserialize(deserializer).map(Some)
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
pub enum MessageDirection {
ClientToServer,
ServerToClient,
Both,
}
pub trait Notification {
type Params: DeserializeOwned + Serialize + Send + Sync;
const METHOD: LspNotificationMethods;
const MESSAGE_DIRECTION: MessageDirection;
}
pub trait Request {
type Params: DeserializeOwned + Serialize + Send + Sync;
type Result: DeserializeOwned + Serialize + Send + Sync;
const METHOD: LspRequestMethods;
const MESSAGE_DIRECTION: MessageDirection;
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, From)]
#[from(String, &str)]
pub struct Uri(pub String);
impl AsRef<str> for Uri {
fn as_ref(&self) -> &str {
&self.0
}
}
impl fmt::Display for Uri {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.0)
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct ImplementationParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct Location {
pub uri: Uri,
pub range: Range,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ImplementationRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub implementation_options: ImplementationOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TypeDefinitionParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TypeDefinitionRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub type_definition_options: TypeDefinitionOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceFolder {
pub uri: Uri,
pub name: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeWorkspaceFoldersParams {
pub event: WorkspaceFoldersChangeEvent,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ConfigurationParams {
pub items: Vec<ConfigurationItem>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentColorParams {
pub text_document: TextDocumentIdentifier,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ColorInformation {
pub range: Range,
pub color: Color,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentColorRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub document_color_options: DocumentColorOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct ColorPresentationParams {
pub text_document: TextDocumentIdentifier,
pub color: Color,
pub range: Range,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ColorPresentation {
pub label: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_edit: Option<TextEdit>,
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_text_edits: Option<Vec<TextEdit>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct WorkDoneProgressOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub work_done_progress: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentRegistrationOptions {
pub document_selector: Option<DocumentSelector>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct FoldingRangeParams {
pub text_document: TextDocumentIdentifier,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FoldingRange {
pub start_line: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_character: Option<u32>,
pub end_line: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub end_character: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<FoldingRangeKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub collapsed_text: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FoldingRangeRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub folding_range_options: FoldingRangeOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DeclarationParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DeclarationRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub declaration_options: DeclarationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct SelectionRangeParams {
pub text_document: TextDocumentIdentifier,
pub positions: Vec<Position>,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SelectionRange {
pub range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub parent: Option<Box<SelectionRange>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SelectionRangeRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub selection_range_options: SelectionRangeOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct WorkDoneProgressCreateParams {
pub token: ProgressToken,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct WorkDoneProgressCancelParams {
pub token: ProgressToken,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyPrepareParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyItem {
pub name: String,
pub kind: SymbolKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<SymbolTag>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
pub uri: Uri,
pub range: Range,
pub selection_range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub call_hierarchy_options: CallHierarchyOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyIncomingCallsParams {
pub item: CallHierarchyItem,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyIncomingCall {
pub from: CallHierarchyItem,
pub from_ranges: Vec<Range>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyOutgoingCallsParams {
pub item: CallHierarchyItem,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyOutgoingCall {
pub to: CallHierarchyItem,
pub from_ranges: Vec<Range>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensParams {
pub text_document: TextDocumentIdentifier,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokens {
#[serde(skip_serializing_if = "Option::is_none")]
pub result_id: Option<String>,
pub data: Vec<u32>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensPartialResult {
pub data: Vec<u32>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub semantic_tokens_options: SemanticTokensOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensDeltaParams {
pub text_document: TextDocumentIdentifier,
pub previous_result_id: String,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensDelta {
#[serde(skip_serializing_if = "Option::is_none")]
pub result_id: Option<String>,
pub edits: Vec<SemanticTokensEdit>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensDeltaPartialResult {
pub edits: Vec<SemanticTokensEdit>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensRangeParams {
pub text_document: TextDocumentIdentifier,
pub range: Range,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct ShowDocumentParams {
pub uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub external: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub take_focus: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub selection: Option<Range>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ShowDocumentResult {
pub success: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct LinkedEditingRangeParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct LinkedEditingRanges {
pub ranges: Vec<Range>,
#[serde(skip_serializing_if = "Option::is_none")]
pub word_pattern: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct LinkedEditingRangeRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub linked_editing_range_options: LinkedEditingRangeOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateFilesParams {
pub files: Vec<FileCreate>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceEdit {
#[serde(skip_serializing_if = "Option::is_none")]
pub changes: Option<HashMap<Uri, Vec<TextEdit>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_changes: Option<Vec<DocumentChange>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub change_annotations: Option<
HashMap<ChangeAnnotationIdentifier, ChangeAnnotation>,
>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileOperationRegistrationOptions {
pub filters: Vec<FileOperationFilter>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct RenameFilesParams {
pub files: Vec<FileRename>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DeleteFilesParams {
pub files: Vec<FileDelete>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct MonikerParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct Moniker {
pub scheme: String,
pub identifier: String,
pub unique: UniquenessLevel,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<MonikerKind>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct MonikerRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub moniker_options: MonikerOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TypeHierarchyPrepareParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct TypeHierarchyItem {
pub name: String,
pub kind: SymbolKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<SymbolTag>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
pub uri: Uri,
pub range: Range,
pub selection_range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TypeHierarchyRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub type_hierarchy_options: TypeHierarchyOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct TypeHierarchySupertypesParams {
pub item: TypeHierarchyItem,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct TypeHierarchySubtypesParams {
pub item: TypeHierarchyItem,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueParams {
pub text_document: TextDocumentIdentifier,
pub range: Range,
pub context: InlineValueContext,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub inline_value_options: InlineValueOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct InlayHintParams {
pub text_document: TextDocumentIdentifier,
pub range: Range,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct InlayHint {
pub position: Position,
pub label: Label,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<InlayHintKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_edits: Option<Vec<TextEdit>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tooltip: Option<Tooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
pub padding_left: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub padding_right: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlayHintRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub inlay_hint_options: InlayHintOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentDiagnosticParams {
pub text_document: TextDocumentIdentifier,
#[serde(skip_serializing_if = "Option::is_none")]
pub identifier: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub previous_result_id: Option<String>,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentDiagnosticReportPartialResult {
pub related_documents: HashMap<Uri, RelatedDocument>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DiagnosticServerCancellationData {
pub retrigger_request: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DiagnosticRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub diagnostic_options: DiagnosticOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceDiagnosticParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub identifier: Option<String>,
pub previous_result_ids: Vec<PreviousResultId>,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceDiagnosticReport {
pub items: Vec<WorkspaceDocumentDiagnosticReport>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceDiagnosticReportPartialResult {
pub items: Vec<WorkspaceDocumentDiagnosticReport>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DidOpenNotebookDocumentParams {
pub notebook_document: NotebookDocument,
pub cell_text_documents: Vec<TextDocumentItem>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentSyncRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub notebook_document_sync_options: NotebookDocumentSyncOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeNotebookDocumentParams {
pub notebook_document: VersionedNotebookDocumentIdentifier,
pub change: NotebookDocumentChangeEvent,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DidSaveNotebookDocumentParams {
pub notebook_document: NotebookDocumentIdentifier,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DidCloseNotebookDocumentParams {
pub notebook_document: NotebookDocumentIdentifier,
pub cell_text_documents: Vec<TextDocumentIdentifier>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct InlineCompletionParams {
pub context: InlineCompletionContext,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlineCompletionList {
pub items: Vec<InlineCompletionItem>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct InlineCompletionItem {
pub insert_text: InsertText,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub range: Option<Range>,
#[serde(skip_serializing_if = "Option::is_none")]
pub command: Option<Command>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlineCompletionRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub inline_completion_options: InlineCompletionOptions,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentParams {
pub uri: Uri,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentResult {
pub text: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentRegistrationOptions {
#[serde(flatten)]
pub static_registration_options: StaticRegistrationOptions,
#[serde(flatten)]
pub text_document_content_options: TextDocumentContentOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentRefreshParams {
pub uri: Uri,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct RegistrationParams {
pub registrations: Vec<Registration>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct UnregistrationParams {
pub unregisterations: Vec<Unregistration>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct InitializeParams {
pub process_id: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub client_info: Option<ClientInfo>,
#[serde(skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[deprecated(note = "in favour of rootUri.")]
#[serde(default, deserialize_with = "deserialize_some")]
#[serde(skip_serializing_if = "Option::is_none")]
pub root_path: Option<RootPath>,
#[deprecated(note = "in favour of workspaceFolders.")]
pub root_uri: Option<Uri>,
pub capabilities: ClientCapabilities,
#[serde(skip_serializing_if = "Option::is_none")]
pub initialization_options: Option<LspAny>,
#[serde(skip_serializing_if = "Option::is_none")]
pub trace: Option<TraceValue>,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub workspace_folders_initialize_params: WorkspaceFoldersInitializeParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct InitializeResult {
pub capabilities: ServerCapabilities,
#[serde(skip_serializing_if = "Option::is_none")]
pub server_info: Option<ServerInfo>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InitializeError {
pub retry: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InitializedParams {}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeConfigurationParams {
pub settings: LspAny,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeConfigurationRegistrationOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub section: Option<Section>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct ShowMessageParams {
#[serde(rename = "type")]
pub kind: MessageType,
pub message: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct ShowMessageRequestParams {
#[serde(rename = "type")]
pub kind: MessageType,
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub actions: Option<Vec<MessageActionItem>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct MessageActionItem {
pub title: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct LogMessageParams {
#[serde(rename = "type")]
pub kind: MessageType,
pub message: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DidOpenTextDocumentParams {
pub text_document: TextDocumentItem,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeTextDocumentParams {
pub text_document: VersionedTextDocumentIdentifier,
pub content_changes: Vec<TextDocumentContentChangeEvent>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentChangeRegistrationOptions {
pub sync_kind: TextDocumentSyncKind,
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DidCloseTextDocumentParams {
pub text_document: TextDocumentIdentifier,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DidSaveTextDocumentParams {
pub text_document: TextDocumentIdentifier,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentSaveRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub save_options: SaveOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct WillSaveTextDocumentParams {
pub text_document: TextDocumentIdentifier,
pub reason: TextDocumentSaveReason,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextEdit {
pub range: Range,
pub new_text: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeWatchedFilesParams {
pub changes: Vec<FileEvent>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeWatchedFilesRegistrationOptions {
pub watchers: Vec<FileSystemWatcher>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct PublishDiagnosticsParams {
pub uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i32>,
pub diagnostics: Vec<Diagnostic>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct CompletionParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub context: Option<CompletionContext>,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItem {
pub label: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_details: Option<CompletionItemLabelDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<CompletionItemKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<CompletionItemTag>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation: Option<Documentation>,
#[deprecated(note = "Use `tags` instead.")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preselect: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text_format: Option<InsertTextFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text_mode: Option<InsertTextMode>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_edit: Option<CompletionItemTextEdit>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_edit_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_text_edits: Option<Vec<TextEdit>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub commit_characters: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub command: Option<Command>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionList {
pub is_incomplete: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub item_defaults: Option<CompletionItemDefaults>,
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_kind: Option<CompletionItemApplyKinds>,
pub items: Vec<CompletionItem>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub completion_options: CompletionOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct HoverParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct Hover {
pub contents: Contents,
#[serde(skip_serializing_if = "Option::is_none")]
pub range: Option<Range>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct HoverRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub hover_options: HoverOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct SignatureHelpParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub context: Option<SignatureHelpContext>,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SignatureHelp {
pub signatures: Vec<SignatureInformation>,
#[serde(skip_serializing_if = "Option::is_none")]
pub active_signature: Option<u32>,
#[serde(default, deserialize_with = "deserialize_some")]
#[serde(skip_serializing_if = "Option::is_none")]
pub active_parameter: Option<ActiveParameter>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SignatureHelpRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub signature_help_options: SignatureHelpOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DefinitionParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DefinitionRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub definition_options: DefinitionOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct ReferenceParams {
pub context: ReferenceContext,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ReferenceRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub reference_options: ReferenceOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentHighlightParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentHighlight {
pub range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<DocumentHighlightKind>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentHighlightRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub document_highlight_options: DocumentHighlightOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentSymbolParams {
pub text_document: TextDocumentIdentifier,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct SymbolInformation {
#[deprecated(note = "Use tags instead")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated: Option<bool>,
pub location: Location,
#[serde(flatten)]
pub base_symbol_information: BaseSymbolInformation,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentSymbol {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
pub kind: SymbolKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<SymbolTag>>,
#[deprecated(note = "Use tags instead")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated: Option<bool>,
pub range: Range,
pub selection_range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub children: Option<Vec<DocumentSymbol>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentSymbolRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub document_symbol_options: DocumentSymbolOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionParams {
pub text_document: TextDocumentIdentifier,
pub range: Range,
pub context: CodeActionContext,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct Command {
pub title: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub tooltip: Option<String>,
pub command: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub arguments: Option<Vec<LspAny>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeAction {
pub title: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<CodeActionKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub diagnostics: Option<Vec<Diagnostic>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_preferred: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled: Option<CodeActionDisabled>,
#[serde(skip_serializing_if = "Option::is_none")]
pub edit: Option<WorkspaceEdit>,
#[serde(skip_serializing_if = "Option::is_none")]
pub command: Option<Command>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<CodeActionTag>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub code_action_options: CodeActionOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceSymbolParams {
pub query: String,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceSymbol {
pub location: WorkspaceSymbolLocation,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
#[serde(flatten)]
pub base_symbol_information: BaseSymbolInformation,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceSymbolRegistrationOptions {
#[serde(flatten)]
pub workspace_symbol_options: WorkspaceSymbolOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct CodeLensParams {
pub text_document: TextDocumentIdentifier,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeLens {
pub range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub command: Option<Command>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeLensRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub code_lens_options: CodeLensOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentLinkParams {
pub text_document: TextDocumentIdentifier,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub partial_result_params: PartialResultParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentLink {
pub range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<Uri>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tooltip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentLinkRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub document_link_options: DocumentLinkOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentFormattingParams {
pub text_document: TextDocumentIdentifier,
pub options: FormattingOptions,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentFormattingRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub document_formatting_options: DocumentFormattingOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentRangeFormattingParams {
pub text_document: TextDocumentIdentifier,
pub range: Range,
pub options: FormattingOptions,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentRangeFormattingRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub document_range_formatting_options: DocumentRangeFormattingOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentRangesFormattingParams {
pub text_document: TextDocumentIdentifier,
pub ranges: Vec<Range>,
pub options: FormattingOptions,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DocumentOnTypeFormattingParams {
pub text_document: TextDocumentIdentifier,
pub position: Position,
pub ch: String,
pub options: FormattingOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentOnTypeFormattingRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub document_on_type_formatting_options: DocumentOnTypeFormattingOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct RenameParams {
pub new_name: String,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct RenameRegistrationOptions {
#[serde(flatten)]
pub text_document_registration_options: TextDocumentRegistrationOptions,
#[serde(flatten)]
pub rename_options: RenameOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct PrepareRenameParams {
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
#[serde(flatten)]
pub text_document_position_params: TextDocumentPositionParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExecuteCommandParams {
pub command: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub arguments: Option<Vec<LspAny>>,
#[serde(flatten)]
pub work_done_progress_params: WorkDoneProgressParams,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExecuteCommandRegistrationOptions {
#[serde(flatten)]
pub execute_command_options: ExecuteCommandOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct ApplyWorkspaceEditParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
pub edit: WorkspaceEdit,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<WorkspaceEditMetadata>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ApplyWorkspaceEditResult {
pub applied: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_reason: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_change: Option<u32>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
#[serde(try_from = "ShadowWorkDoneProgressBegin", into = "ShadowWorkDoneProgressBegin")]
pub struct WorkDoneProgressBegin {
pub title: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub cancellable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentage: Option<u32>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
struct ShadowWorkDoneProgressBegin {
pub title: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub cancellable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentage: Option<u32>,
pub kind: String,
}
impl TryFrom<ShadowWorkDoneProgressBegin> for WorkDoneProgressBegin {
type Error = String;
fn try_from(shadow: ShadowWorkDoneProgressBegin) -> Result<Self, Self::Error> {
if shadow.kind != "begin" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(WorkDoneProgressBegin {
title: shadow.title,
cancellable: shadow.cancellable,
message: shadow.message,
percentage: shadow.percentage,
})
}
}
impl From<WorkDoneProgressBegin> for ShadowWorkDoneProgressBegin {
fn from(original: WorkDoneProgressBegin) -> Self {
ShadowWorkDoneProgressBegin {
title: original.title,
cancellable: original.cancellable,
message: original.message,
percentage: original.percentage,
kind: "begin".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
#[serde(
try_from = "ShadowWorkDoneProgressReport",
into = "ShadowWorkDoneProgressReport"
)]
pub struct WorkDoneProgressReport {
#[serde(skip_serializing_if = "Option::is_none")]
pub cancellable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentage: Option<u32>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
struct ShadowWorkDoneProgressReport {
#[serde(skip_serializing_if = "Option::is_none")]
pub cancellable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentage: Option<u32>,
pub kind: String,
}
impl TryFrom<ShadowWorkDoneProgressReport> for WorkDoneProgressReport {
type Error = String;
fn try_from(shadow: ShadowWorkDoneProgressReport) -> Result<Self, Self::Error> {
if shadow.kind != "report" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(WorkDoneProgressReport {
cancellable: shadow.cancellable,
message: shadow.message,
percentage: shadow.percentage,
})
}
}
impl From<WorkDoneProgressReport> for ShadowWorkDoneProgressReport {
fn from(original: WorkDoneProgressReport) -> Self {
ShadowWorkDoneProgressReport {
cancellable: original.cancellable,
message: original.message,
percentage: original.percentage,
kind: "report".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
#[serde(try_from = "ShadowWorkDoneProgressEnd", into = "ShadowWorkDoneProgressEnd")]
pub struct WorkDoneProgressEnd {
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
struct ShadowWorkDoneProgressEnd {
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub kind: String,
}
impl TryFrom<ShadowWorkDoneProgressEnd> for WorkDoneProgressEnd {
type Error = String;
fn try_from(shadow: ShadowWorkDoneProgressEnd) -> Result<Self, Self::Error> {
if shadow.kind != "end" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(WorkDoneProgressEnd {
message: shadow.message,
})
}
}
impl From<WorkDoneProgressEnd> for ShadowWorkDoneProgressEnd {
fn from(original: WorkDoneProgressEnd) -> Self {
ShadowWorkDoneProgressEnd {
message: original.message,
kind: "end".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Copy)]
#[serde(rename_all = "camelCase")]
pub struct SetTraceParams {
pub value: TraceValue,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct LogTraceParams {
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub verbose: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct CancelParams {
pub id: Id,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ProgressParams {
pub token: ProgressToken,
pub value: LspAny,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentPositionParams {
pub text_document: TextDocumentIdentifier,
pub position: Position,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkDoneProgressParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub work_done_token: Option<ProgressToken>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct PartialResultParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub partial_result_token: Option<ProgressToken>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct LocationLink {
#[serde(skip_serializing_if = "Option::is_none")]
pub origin_selection_range: Option<Range>,
pub target_uri: Uri,
pub target_range: Range,
pub target_selection_range: Range,
}
#[derive(
Serialize,
Deserialize,
PartialEq,
Debug,
Clone,
Eq,
Hash,
Default,
Copy,
PartialOrd,
Ord
)]
#[serde(rename_all = "camelCase")]
pub struct Range {
pub start: Position,
pub end: Position,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ImplementationOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct StaticRegistrationOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TypeDefinitionOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceFoldersChangeEvent {
pub added: Vec<WorkspaceFolder>,
pub removed: Vec<WorkspaceFolder>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ConfigurationItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub scope_uri: Option<Uri>,
#[serde(skip_serializing_if = "Option::is_none")]
pub section: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentIdentifier {
pub uri: Uri,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct Color {
pub red: f32,
pub green: f32,
pub blue: f32,
pub alpha: f32,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentColorOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct FoldingRangeOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DeclarationOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(
Serialize,
Deserialize,
PartialEq,
Debug,
Clone,
Eq,
Hash,
Default,
Copy,
PartialOrd,
Ord
)]
#[serde(rename_all = "camelCase")]
pub struct Position {
pub line: u32,
pub character: u32,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct SelectionRangeOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensOptions {
pub legend: SemanticTokensLegend,
#[serde(skip_serializing_if = "Option::is_none")]
pub range: Option<SemanticTokensOptionsRange>,
#[serde(skip_serializing_if = "Option::is_none")]
pub full: Option<Full>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensEdit {
pub start: u32,
pub delete_count: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<Vec<u32>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct LinkedEditingRangeOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileCreate {
pub uri: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentEdit {
pub text_document: OptionalVersionedTextDocumentIdentifier,
pub edits: Vec<Edit>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
#[serde(try_from = "ShadowCreateFile", into = "ShadowCreateFile")]
pub struct CreateFile {
pub uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<CreateFileOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
struct ShadowCreateFile {
pub uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<CreateFileOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
pub kind: String,
}
impl TryFrom<ShadowCreateFile> for CreateFile {
type Error = String;
fn try_from(shadow: ShadowCreateFile) -> Result<Self, Self::Error> {
if shadow.kind != "create" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(CreateFile {
uri: shadow.uri,
options: shadow.options,
annotation_id: shadow.annotation_id,
})
}
}
impl From<CreateFile> for ShadowCreateFile {
fn from(original: CreateFile) -> Self {
ShadowCreateFile {
uri: original.uri,
options: original.options,
annotation_id: original.annotation_id,
kind: "create".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
#[serde(try_from = "ShadowRenameFile", into = "ShadowRenameFile")]
pub struct RenameFile {
pub old_uri: Uri,
pub new_uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<RenameFileOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
struct ShadowRenameFile {
pub old_uri: Uri,
pub new_uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<RenameFileOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
pub kind: String,
}
impl TryFrom<ShadowRenameFile> for RenameFile {
type Error = String;
fn try_from(shadow: ShadowRenameFile) -> Result<Self, Self::Error> {
if shadow.kind != "rename" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(RenameFile {
old_uri: shadow.old_uri,
new_uri: shadow.new_uri,
options: shadow.options,
annotation_id: shadow.annotation_id,
})
}
}
impl From<RenameFile> for ShadowRenameFile {
fn from(original: RenameFile) -> Self {
ShadowRenameFile {
old_uri: original.old_uri,
new_uri: original.new_uri,
options: original.options,
annotation_id: original.annotation_id,
kind: "rename".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
#[serde(try_from = "ShadowDeleteFile", into = "ShadowDeleteFile")]
pub struct DeleteFile {
pub uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<DeleteFileOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
struct ShadowDeleteFile {
pub uri: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<DeleteFileOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
pub kind: String,
}
impl TryFrom<ShadowDeleteFile> for DeleteFile {
type Error = String;
fn try_from(shadow: ShadowDeleteFile) -> Result<Self, Self::Error> {
if shadow.kind != "delete" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(DeleteFile {
uri: shadow.uri,
options: shadow.options,
annotation_id: shadow.annotation_id,
})
}
}
impl From<DeleteFile> for ShadowDeleteFile {
fn from(original: DeleteFile) -> Self {
ShadowDeleteFile {
uri: original.uri,
options: original.options,
annotation_id: original.annotation_id,
kind: "delete".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ChangeAnnotation {
pub label: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub needs_confirmation: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileOperationFilter {
#[serde(skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
pub pattern: FileOperationPattern,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileRename {
pub old_uri: String,
pub new_uri: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileDelete {
pub uri: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct MonikerOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TypeHierarchyOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueContext {
pub frame_id: i32,
pub stopped_location: Range,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueText {
pub range: Range,
pub text: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueVariableLookup {
pub range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub variable_name: Option<String>,
pub case_sensitive_lookup: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueEvaluatableExpression {
pub range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub expression: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlayHintLabelPart {
pub value: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub tooltip: Option<Tooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<Location>,
#[serde(skip_serializing_if = "Option::is_none")]
pub command: Option<Command>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct MarkupContent {
pub kind: MarkupKind,
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlayHintOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_provider: Option<bool>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct RelatedFullDocumentDiagnosticReport {
#[serde(skip_serializing_if = "Option::is_none")]
pub related_documents: Option<HashMap<Uri, RelatedDocument>>,
#[serde(flatten)]
pub full_document_diagnostic_report: FullDocumentDiagnosticReport,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct RelatedUnchangedDocumentDiagnosticReport {
#[serde(skip_serializing_if = "Option::is_none")]
pub related_documents: Option<HashMap<Uri, RelatedDocument>>,
#[serde(flatten)]
pub unchanged_document_diagnostic_report: UnchangedDocumentDiagnosticReport,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
#[serde(
try_from = "ShadowFullDocumentDiagnosticReport",
into = "ShadowFullDocumentDiagnosticReport"
)]
pub struct FullDocumentDiagnosticReport {
#[serde(skip_serializing_if = "Option::is_none")]
pub result_id: Option<String>,
pub items: Vec<Diagnostic>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
struct ShadowFullDocumentDiagnosticReport {
#[serde(skip_serializing_if = "Option::is_none")]
pub result_id: Option<String>,
pub items: Vec<Diagnostic>,
pub kind: String,
}
impl TryFrom<ShadowFullDocumentDiagnosticReport> for FullDocumentDiagnosticReport {
type Error = String;
fn try_from(
shadow: ShadowFullDocumentDiagnosticReport,
) -> Result<Self, Self::Error> {
if shadow.kind != "full" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(FullDocumentDiagnosticReport {
result_id: shadow.result_id,
items: shadow.items,
})
}
}
impl From<FullDocumentDiagnosticReport> for ShadowFullDocumentDiagnosticReport {
fn from(original: FullDocumentDiagnosticReport) -> Self {
ShadowFullDocumentDiagnosticReport {
result_id: original.result_id,
items: original.items,
kind: "full".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
#[serde(
try_from = "ShadowUnchangedDocumentDiagnosticReport",
into = "ShadowUnchangedDocumentDiagnosticReport"
)]
pub struct UnchangedDocumentDiagnosticReport {
pub result_id: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
struct ShadowUnchangedDocumentDiagnosticReport {
pub result_id: String,
pub kind: String,
}
impl TryFrom<ShadowUnchangedDocumentDiagnosticReport>
for UnchangedDocumentDiagnosticReport {
type Error = String;
fn try_from(
shadow: ShadowUnchangedDocumentDiagnosticReport,
) -> Result<Self, Self::Error> {
if shadow.kind != "unchanged" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(UnchangedDocumentDiagnosticReport {
result_id: shadow.result_id,
})
}
}
impl From<UnchangedDocumentDiagnosticReport>
for ShadowUnchangedDocumentDiagnosticReport {
fn from(original: UnchangedDocumentDiagnosticReport) -> Self {
ShadowUnchangedDocumentDiagnosticReport {
result_id: original.result_id,
kind: "unchanged".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DiagnosticOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub identifier: Option<String>,
pub inter_file_dependencies: bool,
pub workspace_diagnostics: bool,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct PreviousResultId {
pub uri: Uri,
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocument {
pub uri: Uri,
pub notebook_type: String,
pub version: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<LspObject>,
pub cells: Vec<NotebookCell>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentItem {
pub uri: Uri,
pub language_id: LanguageKind,
pub version: i32,
pub text: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentSyncOptions {
pub notebook_selector: Vec<NotebookSelector>,
#[serde(skip_serializing_if = "Option::is_none")]
pub save: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct VersionedNotebookDocumentIdentifier {
pub version: i32,
pub uri: Uri,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentChangeEvent {
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<LspObject>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cells: Option<NotebookDocumentCellChanges>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentIdentifier {
pub uri: Uri,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct InlineCompletionContext {
pub trigger_kind: InlineCompletionTriggerKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub selected_completion_info: Option<SelectedCompletionInfo>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
#[serde(try_from = "ShadowStringValue", into = "ShadowStringValue")]
pub struct StringValue {
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
struct ShadowStringValue {
pub value: String,
pub kind: String,
}
impl TryFrom<ShadowStringValue> for StringValue {
type Error = String;
fn try_from(shadow: ShadowStringValue) -> Result<Self, Self::Error> {
if shadow.kind != "snippet" {
return Err(format!("Invalid value for prop kind: {}", shadow.kind));
}
Ok(StringValue { value: shadow.value })
}
}
impl From<StringValue> for ShadowStringValue {
fn from(original: StringValue) -> Self {
ShadowStringValue {
value: original.value,
kind: "snippet".to_string(),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlineCompletionOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentOptions {
pub schemes: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct Registration {
pub id: String,
pub method: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub register_options: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct Unregistration {
pub id: String,
pub method: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceFoldersInitializeParams {
#[serde(default, deserialize_with = "deserialize_some")]
#[serde(skip_serializing_if = "Option::is_none")]
pub workspace_folders: Option<WorkspaceFolders>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct ServerCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub position_encoding: Option<PositionEncodingKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_document_sync: Option<TextDocumentSync>,
#[serde(skip_serializing_if = "Option::is_none")]
pub notebook_document_sync: Option<NotebookDocumentSync>,
#[serde(skip_serializing_if = "Option::is_none")]
pub completion_provider: Option<CompletionOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hover_provider: Option<HoverProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub signature_help_provider: Option<SignatureHelpOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub declaration_provider: Option<DeclarationProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub definition_provider: Option<DefinitionProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub type_definition_provider: Option<TypeDefinitionProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub implementation_provider: Option<ImplementationProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub references_provider: Option<ReferencesProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_highlight_provider: Option<DocumentHighlightProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_symbol_provider: Option<DocumentSymbolProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_action_provider: Option<CodeActionProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_lens_provider: Option<CodeLensOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_link_provider: Option<DocumentLinkOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub color_provider: Option<ColorProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workspace_symbol_provider: Option<WorkspaceSymbolProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_formatting_provider: Option<DocumentFormattingProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_range_formatting_provider: Option<DocumentRangeFormattingProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_on_type_formatting_provider: Option<DocumentOnTypeFormattingOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rename_provider: Option<RenameProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub folding_range_provider: Option<FoldingRangeProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub selection_range_provider: Option<SelectionRangeProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_command_provider: Option<ExecuteCommandOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub call_hierarchy_provider: Option<CallHierarchyProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub linked_editing_range_provider: Option<LinkedEditingRangeProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub semantic_tokens_provider: Option<SemanticTokensProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub moniker_provider: Option<MonikerProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub type_hierarchy_provider: Option<TypeHierarchyProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inline_value_provider: Option<InlineValueProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inlay_hint_provider: Option<InlayHintProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub diagnostic_provider: Option<DiagnosticProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inline_completion_provider: Option<InlineCompletionProvider>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workspace: Option<WorkspaceOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub experimental: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ServerInfo {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct VersionedTextDocumentIdentifier {
pub version: i32,
#[serde(flatten)]
pub text_document_identifier: TextDocumentIdentifier,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct SaveOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub include_text: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct FileEvent {
pub uri: Uri,
#[serde(rename = "type")]
pub kind: FileChangeType,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct FileSystemWatcher {
pub glob_pattern: GlobPattern,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<WatchKind>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct Diagnostic {
pub range: Range,
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<DiagnosticSeverity>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<Code>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_description: Option<CodeDescription>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<DiagnosticTag>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub related_information: Option<Vec<DiagnosticRelatedInformation>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct CompletionContext {
pub trigger_kind: CompletionTriggerKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_character: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItemLabelDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InsertReplaceEdit {
pub new_text: String,
pub insert: Range,
pub replace: Range,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItemDefaults {
#[serde(skip_serializing_if = "Option::is_none")]
pub commit_characters: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub edit_range: Option<EditRange>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text_format: Option<InsertTextFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text_mode: Option<InsertTextMode>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItemApplyKinds {
#[serde(skip_serializing_if = "Option::is_none")]
pub commit_characters: Option<ApplyKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<ApplyKind>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_characters: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub all_commit_characters: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_provider: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub completion_item: Option<ServerCompletionItemOptions>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct HoverOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct SignatureHelpContext {
pub trigger_kind: SignatureHelpTriggerKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_character: Option<String>,
pub is_retrigger: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub active_signature_help: Option<SignatureHelp>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SignatureInformation {
pub label: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation: Option<Documentation>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<ParameterInformation>>,
#[serde(default, deserialize_with = "deserialize_some")]
#[serde(skip_serializing_if = "Option::is_none")]
pub active_parameter: Option<ActiveParameter>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SignatureHelpOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_characters: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub retrigger_characters: Option<Vec<String>>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DefinitionOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ReferenceContext {
pub include_declaration: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ReferenceOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentHighlightOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct BaseSymbolInformation {
pub name: String,
pub kind: SymbolKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<SymbolTag>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub container_name: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentSymbolOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionContext {
pub diagnostics: Vec<Diagnostic>,
#[serde(skip_serializing_if = "Option::is_none")]
pub only: Option<Vec<CodeActionKind>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_kind: Option<CodeActionTriggerKind>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionDisabled {
pub reason: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub code_action_kinds: Option<Vec<CodeActionKind>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation: Option<Vec<CodeActionKindDocumentation>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_provider: Option<bool>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct LocationUriOnly {
pub uri: Uri,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceSymbolOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_provider: Option<bool>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct CodeLensOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_provider: Option<bool>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentLinkOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_provider: Option<bool>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct FormattingOptions {
pub tab_size: u32,
pub insert_spaces: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub trim_trailing_whitespace: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_final_newline: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub trim_final_newlines: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentFormattingOptions {
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentRangeFormattingOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub ranges_support: Option<bool>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentOnTypeFormattingOptions {
pub first_trigger_character: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub more_trigger_character: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct RenameOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub prepare_provider: Option<bool>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct PrepareRenamePlaceholder {
pub range: Range,
pub placeholder: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct PrepareRenameDefaultBehavior {
pub default_behavior: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExecuteCommandOptions {
pub commands: Vec<String>,
#[serde(flatten)]
pub work_done_progress_options: WorkDoneProgressOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceEditMetadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_refactoring: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensLegend {
pub token_types: Vec<String>,
pub token_modifiers: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensFullDelta {
#[serde(skip_serializing_if = "Option::is_none")]
pub delta: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct OptionalVersionedTextDocumentIdentifier {
pub version: Option<i32>,
#[serde(flatten)]
pub text_document_identifier: TextDocumentIdentifier,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct AnnotatedTextEdit {
pub annotation_id: ChangeAnnotationIdentifier,
#[serde(flatten)]
pub text_edit: TextEdit,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SnippetTextEdit {
pub range: Range,
pub snippet: StringValue,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ResourceOperation {
pub kind: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation_id: Option<ChangeAnnotationIdentifier>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct CreateFileOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub overwrite: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ignore_if_exists: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct RenameFileOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub overwrite: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ignore_if_exists: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DeleteFileOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub recursive: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ignore_if_not_exists: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileOperationPattern {
pub glob: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub matches: Option<FileOperationPatternKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<FileOperationPatternOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceFullDocumentDiagnosticReport {
pub uri: Uri,
pub version: Option<i32>,
#[serde(flatten)]
pub full_document_diagnostic_report: FullDocumentDiagnosticReport,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceUnchangedDocumentDiagnosticReport {
pub uri: Uri,
pub version: Option<i32>,
#[serde(flatten)]
pub unchanged_document_diagnostic_report: UnchangedDocumentDiagnosticReport,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct NotebookCell {
pub kind: NotebookCellKind,
pub document: Uri,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<LspObject>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_summary: Option<ExecutionSummary>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentFilterWithNotebook {
pub notebook: Notebook,
#[serde(skip_serializing_if = "Option::is_none")]
pub cells: Option<Vec<NotebookCellLanguage>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentFilterWithCells {
#[serde(skip_serializing_if = "Option::is_none")]
pub notebook: Option<Notebook>,
pub cells: Vec<NotebookCellLanguage>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentCellChanges {
#[serde(skip_serializing_if = "Option::is_none")]
pub structure: Option<NotebookDocumentCellChangeStructure>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<Vec<NotebookCell>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_content: Option<Vec<NotebookDocumentCellContentChanges>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SelectedCompletionInfo {
pub range: Range,
pub text: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientInfo {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub workspace: Option<WorkspaceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_document: Option<TextDocumentClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub notebook_document: Option<NotebookDocumentClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub window: Option<WindowClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub general: Option<GeneralClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub experimental: Option<LspAny>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentSyncOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub open_close: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub change: Option<TextDocumentSyncKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_save: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_save_wait_until: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub save: Option<Save>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub workspace_folders: Option<WorkspaceFoldersServerCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_operations: Option<FileOperationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_document_content: Option<TextDocumentContent>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentChangePartial {
pub range: Range,
#[deprecated(note = "use range instead.")]
#[serde(skip_serializing_if = "Option::is_none")]
pub range_length: Option<u32>,
pub text: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentChangeWholeDocument {
pub text: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct CodeDescription {
pub href: Uri,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct DiagnosticRelatedInformation {
pub location: Location,
pub message: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct EditRangeWithInsertReplace {
pub insert: Range,
pub replace: Range,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ServerCompletionItemOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub label_details_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
#[deprecated(note = "use MarkupContent instead.")]
pub struct MarkedStringWithLanguage {
pub language: String,
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct ParameterInformation {
pub label: ParameterInformationLabel,
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation: Option<Documentation>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionKindDocumentation {
pub kind: CodeActionKind,
pub command: Command,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct NotebookCellTextDocumentFilter {
pub notebook: Notebook,
#[serde(skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct FileOperationPatternOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub ignore_case: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ExecutionSummary {
pub execution_order: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookCellLanguage {
pub language: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentCellChangeStructure {
pub array: NotebookCellArrayChange,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_open: Option<Vec<TextDocumentItem>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_close: Option<Vec<TextDocumentIdentifier>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentCellContentChanges {
pub document: VersionedTextDocumentIdentifier,
pub changes: Vec<TextDocumentContentChangeEvent>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_edit: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workspace_edit: Option<WorkspaceEditClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_change_configuration: Option<DidChangeConfigurationClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_change_watched_files: Option<DidChangeWatchedFilesClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub symbol: Option<WorkspaceSymbolClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_command: Option<ExecuteCommandClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workspace_folders: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub semantic_tokens: Option<SemanticTokensWorkspaceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_lens: Option<CodeLensWorkspaceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_operations: Option<FileOperationClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inline_value: Option<InlineValueWorkspaceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inlay_hint: Option<InlayHintWorkspaceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub diagnostics: Option<DiagnosticWorkspaceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub folding_range: Option<FoldingRangeWorkspaceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_document_content: Option<TextDocumentContentClientCapabilities>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub synchronization: Option<TextDocumentSyncClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<TextDocumentFilterClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub completion: Option<CompletionClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hover: Option<HoverClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub signature_help: Option<SignatureHelpClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub declaration: Option<DeclarationClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub definition: Option<DefinitionClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub type_definition: Option<TypeDefinitionClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub implementation: Option<ImplementationClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub references: Option<ReferenceClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_highlight: Option<DocumentHighlightClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_symbol: Option<DocumentSymbolClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_action: Option<CodeActionClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_lens: Option<CodeLensClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_link: Option<DocumentLinkClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub color_provider: Option<DocumentColorClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub formatting: Option<DocumentFormattingClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub range_formatting: Option<DocumentRangeFormattingClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub on_type_formatting: Option<DocumentOnTypeFormattingClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rename: Option<RenameClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub folding_range: Option<FoldingRangeClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub selection_range: Option<SelectionRangeClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub publish_diagnostics: Option<PublishDiagnosticsClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub call_hierarchy: Option<CallHierarchyClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub semantic_tokens: Option<SemanticTokensClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub linked_editing_range: Option<LinkedEditingRangeClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub moniker: Option<MonikerClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub type_hierarchy: Option<TypeHierarchyClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inline_value: Option<InlineValueClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inlay_hint: Option<InlayHintClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub diagnostic: Option<DiagnosticClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inline_completion: Option<InlineCompletionClientCapabilities>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentClientCapabilities {
pub synchronization: NotebookDocumentSyncClientCapabilities,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct WindowClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub work_done_progress: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_message: Option<ShowMessageRequestClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_document: Option<ShowDocumentClientCapabilities>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct GeneralClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub stale_request_support: Option<StaleRequestSupportOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub regular_expressions: Option<RegularExpressionsClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub markdown: Option<MarkdownClientCapabilities>,
#[serde(skip_serializing_if = "Option::is_none")]
pub position_encodings: Option<Vec<PositionEncodingKind>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceFoldersServerCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub supported: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub change_notifications: Option<ChangeNotifications>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileOperationOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub did_create: Option<FileOperationRegistrationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_create: Option<FileOperationRegistrationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_rename: Option<FileOperationRegistrationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_rename: Option<FileOperationRegistrationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_delete: Option<FileOperationRegistrationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_delete: Option<FileOperationRegistrationOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct RelativePattern {
pub base_uri: BaseUri,
pub pattern: Pattern,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentFilterLanguage {
pub language: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pattern: Option<GlobPattern>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentFilterScheme {
#[serde(skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
pub scheme: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub pattern: Option<GlobPattern>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentFilterPattern {
#[serde(skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
pub pattern: GlobPattern,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentFilterNotebookType {
pub notebook_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pattern: Option<GlobPattern>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentFilterScheme {
#[serde(skip_serializing_if = "Option::is_none")]
pub notebook_type: Option<String>,
pub scheme: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub pattern: Option<GlobPattern>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentFilterPattern {
#[serde(skip_serializing_if = "Option::is_none")]
pub notebook_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
pub pattern: GlobPattern,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct NotebookCellArrayChange {
pub start: u32,
pub delete_count: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub cells: Option<Vec<NotebookCell>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceEditClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub document_changes: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_operations: Option<Vec<ResourceOperationKind>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_handling: Option<FailureHandlingKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub normalizes_line_endings: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub change_annotation_support: Option<ChangeAnnotationsSupportOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub snippet_edit_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeConfigurationClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DidChangeWatchedFilesClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub relative_pattern_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceSymbolClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub symbol_kind: Option<ClientSymbolKindOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_support: Option<ClientSymbolTagOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_support: Option<ClientSymbolResolveOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ExecuteCommandClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensWorkspaceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub refresh_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct CodeLensWorkspaceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub refresh_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct FileOperationClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_create: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_create: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_rename: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_rename: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_delete: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_delete: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueWorkspaceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub refresh_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlayHintWorkspaceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub refresh_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DiagnosticWorkspaceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub refresh_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct FoldingRangeWorkspaceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub refresh_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentContentClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentSyncClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_save: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub will_save_wait_until: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub did_save: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TextDocumentFilterClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub relative_pattern_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub completion_item: Option<ClientCompletionItemOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub completion_item_kind: Option<ClientCompletionItemOptionsKind>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text_mode: Option<InsertTextMode>,
#[serde(skip_serializing_if = "Option::is_none")]
pub context_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub completion_list: Option<CompletionListCapabilities>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct HoverClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content_format: Option<Vec<MarkupKind>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct SignatureHelpClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub signature_information: Option<ClientSignatureInformationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub context_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DeclarationClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub link_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DefinitionClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub link_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TypeDefinitionClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub link_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ImplementationClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub link_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ReferenceClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentHighlightClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DocumentSymbolClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub symbol_kind: Option<ClientSymbolKindOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hierarchical_document_symbol_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_support: Option<ClientSymbolTagOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_action_literal_support: Option<ClientCodeActionLiteralOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_preferred_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_support: Option<ClientCodeActionResolveOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub honors_change_annotations: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_support: Option<CodeActionTagOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeLensClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_support: Option<ClientCodeLensResolveOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentLinkClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tooltip_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentColorClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentFormattingClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentRangeFormattingClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ranges_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct DocumentOnTypeFormattingClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct RenameClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prepare_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prepare_support_default_behavior: Option<PrepareSupportDefaultBehavior>,
#[serde(skip_serializing_if = "Option::is_none")]
pub honors_change_annotations: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct FoldingRangeClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub range_limit: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line_folding_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub folding_range_kind: Option<ClientFoldingRangeKindOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub folding_range: Option<ClientFoldingRangeOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct SelectionRangeClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct PublishDiagnosticsClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub version_support: Option<bool>,
#[serde(flatten)]
pub diagnostics_capabilities: DiagnosticsCapabilities,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct CallHierarchyClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct SemanticTokensClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
pub requests: ClientSemanticTokensRequestOptions,
pub token_types: Vec<String>,
pub token_modifiers: Vec<String>,
pub formats: Vec<TokenFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub overlapping_token_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub multiline_token_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub server_cancel_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub augments_syntax_tokens: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct LinkedEditingRangeClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct MonikerClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct TypeHierarchyClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlineValueClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlayHintClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_support: Option<ClientInlayHintResolveOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DiagnosticClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub related_document_support: Option<bool>,
#[serde(flatten)]
pub diagnostics_capabilities: DiagnosticsCapabilities,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct InlineCompletionClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct NotebookDocumentSyncClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub dynamic_registration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_summary_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ShowMessageRequestClientCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub message_action_item: Option<ClientShowMessageActionItemOptions>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ShowDocumentClientCapabilities {
pub support: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct StaleRequestSupportOptions {
pub cancel: bool,
pub retry_on_content_modified: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct RegularExpressionsClientCapabilities {
pub engine: RegularExpressionEngineKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct MarkdownClientCapabilities {
pub parser: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_tags: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ChangeAnnotationsSupportOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub groups_on_label: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientSymbolKindOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub value_set: Option<Vec<SymbolKind>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientSymbolTagOptions {
pub value_set: Vec<SymbolTag>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientSymbolResolveOptions {
pub properties: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCompletionItemOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub snippet_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub commit_characters_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation_format: Option<Vec<MarkupKind>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preselect_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_support: Option<CompletionItemTagOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_replace_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_support: Option<ClientCompletionItemResolveOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text_mode_support: Option<ClientCompletionItemInsertTextModeOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_details_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCompletionItemOptionsKind {
#[serde(skip_serializing_if = "Option::is_none")]
pub value_set: Option<Vec<CompletionItemKind>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionListCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub item_defaults: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_kind_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientSignatureInformationOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation_format: Option<Vec<MarkupKind>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_information: Option<ClientSignatureParameterInformationOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub active_parameter_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub no_active_parameter_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCodeActionLiteralOptions {
pub code_action_kind: ClientCodeActionKindOptions,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCodeActionResolveOptions {
pub properties: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CodeActionTagOptions {
pub value_set: Vec<CodeActionTag>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCodeLensResolveOptions {
pub properties: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientFoldingRangeKindOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub value_set: Option<Vec<FoldingRangeKind>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ClientFoldingRangeOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub collapsed_text: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct DiagnosticsCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub related_information: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_support: Option<ClientDiagnosticsTagOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_description_support: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientSemanticTokensRequestOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub range: Option<ClientSemanticTokensRequestOptionsRange>,
#[serde(skip_serializing_if = "Option::is_none")]
pub full: Option<ClientSemanticTokensRequestOptionsFull>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientInlayHintResolveOptions {
pub properties: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ClientShowMessageActionItemOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_properties_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItemTagOptions {
pub value_set: Vec<CompletionItemTag>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCompletionItemResolveOptions {
pub properties: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCompletionItemInsertTextModeOptions {
pub value_set: Vec<InsertTextMode>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ClientSignatureParameterInformationOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub label_offset_support: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientCodeActionKindOptions {
pub value_set: Vec<CodeActionKind>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientDiagnosticsTagOptions {
pub value_set: Vec<DiagnosticTag>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Eq, Hash, Default, Copy)]
#[serde(rename_all = "camelCase")]
pub struct ClientSemanticTokensRequestFullDelta {
#[serde(skip_serializing_if = "Option::is_none")]
pub delta: Option<bool>,
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum SemanticTokenTypes {
Namespace,
Type,
Class,
Enum,
Interface,
Struct,
TypeParameter,
Parameter,
Variable,
Property,
EnumMember,
Event,
Function,
Method,
Macro,
Keyword,
Modifier,
Comment,
String,
Number,
Regexp,
Operator,
Decorator,
Label,
#[serde(untagged)]
Custom(String),
}
impl From<SemanticTokenTypes> for String {
fn from(e: SemanticTokenTypes) -> Self {
match e {
SemanticTokenTypes::Namespace => "namespace".to_string(),
SemanticTokenTypes::Type => "type".to_string(),
SemanticTokenTypes::Class => "class".to_string(),
SemanticTokenTypes::Enum => "enum".to_string(),
SemanticTokenTypes::Interface => "interface".to_string(),
SemanticTokenTypes::Struct => "struct".to_string(),
SemanticTokenTypes::TypeParameter => "typeParameter".to_string(),
SemanticTokenTypes::Parameter => "parameter".to_string(),
SemanticTokenTypes::Variable => "variable".to_string(),
SemanticTokenTypes::Property => "property".to_string(),
SemanticTokenTypes::EnumMember => "enumMember".to_string(),
SemanticTokenTypes::Event => "event".to_string(),
SemanticTokenTypes::Function => "function".to_string(),
SemanticTokenTypes::Method => "method".to_string(),
SemanticTokenTypes::Macro => "macro".to_string(),
SemanticTokenTypes::Keyword => "keyword".to_string(),
SemanticTokenTypes::Modifier => "modifier".to_string(),
SemanticTokenTypes::Comment => "comment".to_string(),
SemanticTokenTypes::String => "string".to_string(),
SemanticTokenTypes::Number => "number".to_string(),
SemanticTokenTypes::Regexp => "regexp".to_string(),
SemanticTokenTypes::Operator => "operator".to_string(),
SemanticTokenTypes::Decorator => "decorator".to_string(),
SemanticTokenTypes::Label => "label".to_string(),
SemanticTokenTypes::Custom(any) => any,
}
}
}
impl From<String> for SemanticTokenTypes {
fn from(v: String) -> Self {
match v.as_str() {
"namespace" => SemanticTokenTypes::Namespace,
"type" => SemanticTokenTypes::Type,
"class" => SemanticTokenTypes::Class,
"enum" => SemanticTokenTypes::Enum,
"interface" => SemanticTokenTypes::Interface,
"struct" => SemanticTokenTypes::Struct,
"typeParameter" => SemanticTokenTypes::TypeParameter,
"parameter" => SemanticTokenTypes::Parameter,
"variable" => SemanticTokenTypes::Variable,
"property" => SemanticTokenTypes::Property,
"enumMember" => SemanticTokenTypes::EnumMember,
"event" => SemanticTokenTypes::Event,
"function" => SemanticTokenTypes::Function,
"method" => SemanticTokenTypes::Method,
"macro" => SemanticTokenTypes::Macro,
"keyword" => SemanticTokenTypes::Keyword,
"modifier" => SemanticTokenTypes::Modifier,
"comment" => SemanticTokenTypes::Comment,
"string" => SemanticTokenTypes::String,
"number" => SemanticTokenTypes::Number,
"regexp" => SemanticTokenTypes::Regexp,
"operator" => SemanticTokenTypes::Operator,
"decorator" => SemanticTokenTypes::Decorator,
"label" => SemanticTokenTypes::Label,
_ => SemanticTokenTypes::Custom(v),
}
}
}
impl fmt::Display for SemanticTokenTypes {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum SemanticTokenModifiers {
Declaration,
Definition,
Readonly,
Static,
Deprecated,
Abstract,
Async,
Modification,
Documentation,
DefaultLibrary,
#[serde(untagged)]
Custom(String),
}
impl From<SemanticTokenModifiers> for String {
fn from(e: SemanticTokenModifiers) -> Self {
match e {
SemanticTokenModifiers::Declaration => "declaration".to_string(),
SemanticTokenModifiers::Definition => "definition".to_string(),
SemanticTokenModifiers::Readonly => "readonly".to_string(),
SemanticTokenModifiers::Static => "static".to_string(),
SemanticTokenModifiers::Deprecated => "deprecated".to_string(),
SemanticTokenModifiers::Abstract => "abstract".to_string(),
SemanticTokenModifiers::Async => "async".to_string(),
SemanticTokenModifiers::Modification => "modification".to_string(),
SemanticTokenModifiers::Documentation => "documentation".to_string(),
SemanticTokenModifiers::DefaultLibrary => "defaultLibrary".to_string(),
SemanticTokenModifiers::Custom(any) => any,
}
}
}
impl From<String> for SemanticTokenModifiers {
fn from(v: String) -> Self {
match v.as_str() {
"declaration" => SemanticTokenModifiers::Declaration,
"definition" => SemanticTokenModifiers::Definition,
"readonly" => SemanticTokenModifiers::Readonly,
"static" => SemanticTokenModifiers::Static,
"deprecated" => SemanticTokenModifiers::Deprecated,
"abstract" => SemanticTokenModifiers::Abstract,
"async" => SemanticTokenModifiers::Async,
"modification" => SemanticTokenModifiers::Modification,
"documentation" => SemanticTokenModifiers::Documentation,
"defaultLibrary" => SemanticTokenModifiers::DefaultLibrary,
_ => SemanticTokenModifiers::Custom(v),
}
}
}
impl fmt::Display for SemanticTokenModifiers {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum DocumentDiagnosticReportKind {
Full,
Unchanged,
}
impl From<DocumentDiagnosticReportKind> for String {
fn from(e: DocumentDiagnosticReportKind) -> Self {
match e {
DocumentDiagnosticReportKind::Full => "full".to_string(),
DocumentDiagnosticReportKind::Unchanged => "unchanged".to_string(),
}
}
}
impl TryFrom<String> for DocumentDiagnosticReportKind {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"full" => Ok(DocumentDiagnosticReportKind::Full),
"unchanged" => Ok(DocumentDiagnosticReportKind::Unchanged),
_ => Err(format!("Invalid DocumentDiagnosticReportKind: {v}")),
}
}
}
impl fmt::Display for DocumentDiagnosticReportKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "i32", from = "i32")]
pub enum ErrorCodes {
ParseError,
InvalidRequest,
MethodNotFound,
InvalidParams,
InternalError,
ServerNotInitialized,
UnknownErrorCode,
#[serde(untagged)]
Custom(i32),
}
impl From<ErrorCodes> for i32 {
fn from(e: ErrorCodes) -> Self {
match e {
ErrorCodes::ParseError => -32700i32,
ErrorCodes::InvalidRequest => -32600i32,
ErrorCodes::MethodNotFound => -32601i32,
ErrorCodes::InvalidParams => -32602i32,
ErrorCodes::InternalError => -32603i32,
ErrorCodes::ServerNotInitialized => -32002i32,
ErrorCodes::UnknownErrorCode => -32001i32,
ErrorCodes::Custom(any) => any,
}
}
}
impl From<i32> for ErrorCodes {
fn from(v: i32) -> Self {
match v {
-32700i32 => ErrorCodes::ParseError,
-32600i32 => ErrorCodes::InvalidRequest,
-32601i32 => ErrorCodes::MethodNotFound,
-32602i32 => ErrorCodes::InvalidParams,
-32603i32 => ErrorCodes::InternalError,
-32002i32 => ErrorCodes::ServerNotInitialized,
-32001i32 => ErrorCodes::UnknownErrorCode,
_ => ErrorCodes::Custom(v),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "i32", from = "i32")]
pub enum LspErrorCodes {
RequestFailed,
ServerCancelled,
ContentModified,
RequestCancelled,
#[serde(untagged)]
Custom(i32),
}
impl From<LspErrorCodes> for i32 {
fn from(e: LspErrorCodes) -> Self {
match e {
LspErrorCodes::RequestFailed => -32803i32,
LspErrorCodes::ServerCancelled => -32802i32,
LspErrorCodes::ContentModified => -32801i32,
LspErrorCodes::RequestCancelled => -32800i32,
LspErrorCodes::Custom(any) => any,
}
}
}
impl From<i32> for LspErrorCodes {
fn from(v: i32) -> Self {
match v {
-32803i32 => LspErrorCodes::RequestFailed,
-32802i32 => LspErrorCodes::ServerCancelled,
-32801i32 => LspErrorCodes::ContentModified,
-32800i32 => LspErrorCodes::RequestCancelled,
_ => LspErrorCodes::Custom(v),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum FoldingRangeKind {
Comment,
Imports,
Region,
#[serde(untagged)]
Custom(String),
}
impl From<FoldingRangeKind> for String {
fn from(e: FoldingRangeKind) -> Self {
match e {
FoldingRangeKind::Comment => "comment".to_string(),
FoldingRangeKind::Imports => "imports".to_string(),
FoldingRangeKind::Region => "region".to_string(),
FoldingRangeKind::Custom(any) => any,
}
}
}
impl From<String> for FoldingRangeKind {
fn from(v: String) -> Self {
match v.as_str() {
"comment" => FoldingRangeKind::Comment,
"imports" => FoldingRangeKind::Imports,
"region" => FoldingRangeKind::Region,
_ => FoldingRangeKind::Custom(v),
}
}
}
impl fmt::Display for FoldingRangeKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum SymbolKind {
File,
Module,
Namespace,
Package,
Class,
Method,
Property,
Field,
Constructor,
Enum,
Interface,
Function,
Variable,
Constant,
String,
Number,
Boolean,
Array,
Object,
Key,
Null,
EnumMember,
Struct,
Event,
Operator,
TypeParameter,
}
impl From<SymbolKind> for u32 {
fn from(e: SymbolKind) -> Self {
match e {
SymbolKind::File => 1u32,
SymbolKind::Module => 2u32,
SymbolKind::Namespace => 3u32,
SymbolKind::Package => 4u32,
SymbolKind::Class => 5u32,
SymbolKind::Method => 6u32,
SymbolKind::Property => 7u32,
SymbolKind::Field => 8u32,
SymbolKind::Constructor => 9u32,
SymbolKind::Enum => 10u32,
SymbolKind::Interface => 11u32,
SymbolKind::Function => 12u32,
SymbolKind::Variable => 13u32,
SymbolKind::Constant => 14u32,
SymbolKind::String => 15u32,
SymbolKind::Number => 16u32,
SymbolKind::Boolean => 17u32,
SymbolKind::Array => 18u32,
SymbolKind::Object => 19u32,
SymbolKind::Key => 20u32,
SymbolKind::Null => 21u32,
SymbolKind::EnumMember => 22u32,
SymbolKind::Struct => 23u32,
SymbolKind::Event => 24u32,
SymbolKind::Operator => 25u32,
SymbolKind::TypeParameter => 26u32,
}
}
}
impl TryFrom<u32> for SymbolKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(SymbolKind::File),
2u32 => Ok(SymbolKind::Module),
3u32 => Ok(SymbolKind::Namespace),
4u32 => Ok(SymbolKind::Package),
5u32 => Ok(SymbolKind::Class),
6u32 => Ok(SymbolKind::Method),
7u32 => Ok(SymbolKind::Property),
8u32 => Ok(SymbolKind::Field),
9u32 => Ok(SymbolKind::Constructor),
10u32 => Ok(SymbolKind::Enum),
11u32 => Ok(SymbolKind::Interface),
12u32 => Ok(SymbolKind::Function),
13u32 => Ok(SymbolKind::Variable),
14u32 => Ok(SymbolKind::Constant),
15u32 => Ok(SymbolKind::String),
16u32 => Ok(SymbolKind::Number),
17u32 => Ok(SymbolKind::Boolean),
18u32 => Ok(SymbolKind::Array),
19u32 => Ok(SymbolKind::Object),
20u32 => Ok(SymbolKind::Key),
21u32 => Ok(SymbolKind::Null),
22u32 => Ok(SymbolKind::EnumMember),
23u32 => Ok(SymbolKind::Struct),
24u32 => Ok(SymbolKind::Event),
25u32 => Ok(SymbolKind::Operator),
26u32 => Ok(SymbolKind::TypeParameter),
_ => Err(format!("Invalid SymbolKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum SymbolTag {
Deprecated,
}
impl From<SymbolTag> for u32 {
fn from(e: SymbolTag) -> Self {
match e {
SymbolTag::Deprecated => 1u32,
}
}
}
impl TryFrom<u32> for SymbolTag {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(SymbolTag::Deprecated),
_ => Err(format!("Invalid SymbolTag: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum UniquenessLevel {
Document,
Project,
Group,
Scheme,
Global,
}
impl From<UniquenessLevel> for String {
fn from(e: UniquenessLevel) -> Self {
match e {
UniquenessLevel::Document => "document".to_string(),
UniquenessLevel::Project => "project".to_string(),
UniquenessLevel::Group => "group".to_string(),
UniquenessLevel::Scheme => "scheme".to_string(),
UniquenessLevel::Global => "global".to_string(),
}
}
}
impl TryFrom<String> for UniquenessLevel {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"document" => Ok(UniquenessLevel::Document),
"project" => Ok(UniquenessLevel::Project),
"group" => Ok(UniquenessLevel::Group),
"scheme" => Ok(UniquenessLevel::Scheme),
"global" => Ok(UniquenessLevel::Global),
_ => Err(format!("Invalid UniquenessLevel: {v}")),
}
}
}
impl fmt::Display for UniquenessLevel {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum MonikerKind {
Import,
Export,
Local,
}
impl From<MonikerKind> for String {
fn from(e: MonikerKind) -> Self {
match e {
MonikerKind::Import => "import".to_string(),
MonikerKind::Export => "export".to_string(),
MonikerKind::Local => "local".to_string(),
}
}
}
impl TryFrom<String> for MonikerKind {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"import" => Ok(MonikerKind::Import),
"export" => Ok(MonikerKind::Export),
"local" => Ok(MonikerKind::Local),
_ => Err(format!("Invalid MonikerKind: {v}")),
}
}
}
impl fmt::Display for MonikerKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum InlayHintKind {
Type,
Parameter,
}
impl From<InlayHintKind> for u32 {
fn from(e: InlayHintKind) -> Self {
match e {
InlayHintKind::Type => 1u32,
InlayHintKind::Parameter => 2u32,
}
}
}
impl TryFrom<u32> for InlayHintKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(InlayHintKind::Type),
2u32 => Ok(InlayHintKind::Parameter),
_ => Err(format!("Invalid InlayHintKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum MessageType {
Error,
Warning,
Info,
Log,
Debug,
}
impl From<MessageType> for u32 {
fn from(e: MessageType) -> Self {
match e {
MessageType::Error => 1u32,
MessageType::Warning => 2u32,
MessageType::Info => 3u32,
MessageType::Log => 4u32,
MessageType::Debug => 5u32,
}
}
}
impl TryFrom<u32> for MessageType {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(MessageType::Error),
2u32 => Ok(MessageType::Warning),
3u32 => Ok(MessageType::Info),
4u32 => Ok(MessageType::Log),
5u32 => Ok(MessageType::Debug),
_ => Err(format!("Invalid MessageType: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum TextDocumentSyncKind {
None,
Full,
Incremental,
}
impl From<TextDocumentSyncKind> for u32 {
fn from(e: TextDocumentSyncKind) -> Self {
match e {
TextDocumentSyncKind::None => 0u32,
TextDocumentSyncKind::Full => 1u32,
TextDocumentSyncKind::Incremental => 2u32,
}
}
}
impl TryFrom<u32> for TextDocumentSyncKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
0u32 => Ok(TextDocumentSyncKind::None),
1u32 => Ok(TextDocumentSyncKind::Full),
2u32 => Ok(TextDocumentSyncKind::Incremental),
_ => Err(format!("Invalid TextDocumentSyncKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum TextDocumentSaveReason {
Manual,
AfterDelay,
FocusOut,
}
impl From<TextDocumentSaveReason> for u32 {
fn from(e: TextDocumentSaveReason) -> Self {
match e {
TextDocumentSaveReason::Manual => 1u32,
TextDocumentSaveReason::AfterDelay => 2u32,
TextDocumentSaveReason::FocusOut => 3u32,
}
}
}
impl TryFrom<u32> for TextDocumentSaveReason {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(TextDocumentSaveReason::Manual),
2u32 => Ok(TextDocumentSaveReason::AfterDelay),
3u32 => Ok(TextDocumentSaveReason::FocusOut),
_ => Err(format!("Invalid TextDocumentSaveReason: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum CompletionItemKind {
Text,
Method,
Function,
Constructor,
Field,
Variable,
Class,
Interface,
Module,
Property,
Unit,
Value,
Enum,
Keyword,
Snippet,
Color,
File,
Reference,
Folder,
EnumMember,
Constant,
Struct,
Event,
Operator,
TypeParameter,
}
impl From<CompletionItemKind> for u32 {
fn from(e: CompletionItemKind) -> Self {
match e {
CompletionItemKind::Text => 1u32,
CompletionItemKind::Method => 2u32,
CompletionItemKind::Function => 3u32,
CompletionItemKind::Constructor => 4u32,
CompletionItemKind::Field => 5u32,
CompletionItemKind::Variable => 6u32,
CompletionItemKind::Class => 7u32,
CompletionItemKind::Interface => 8u32,
CompletionItemKind::Module => 9u32,
CompletionItemKind::Property => 10u32,
CompletionItemKind::Unit => 11u32,
CompletionItemKind::Value => 12u32,
CompletionItemKind::Enum => 13u32,
CompletionItemKind::Keyword => 14u32,
CompletionItemKind::Snippet => 15u32,
CompletionItemKind::Color => 16u32,
CompletionItemKind::File => 17u32,
CompletionItemKind::Reference => 18u32,
CompletionItemKind::Folder => 19u32,
CompletionItemKind::EnumMember => 20u32,
CompletionItemKind::Constant => 21u32,
CompletionItemKind::Struct => 22u32,
CompletionItemKind::Event => 23u32,
CompletionItemKind::Operator => 24u32,
CompletionItemKind::TypeParameter => 25u32,
}
}
}
impl TryFrom<u32> for CompletionItemKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(CompletionItemKind::Text),
2u32 => Ok(CompletionItemKind::Method),
3u32 => Ok(CompletionItemKind::Function),
4u32 => Ok(CompletionItemKind::Constructor),
5u32 => Ok(CompletionItemKind::Field),
6u32 => Ok(CompletionItemKind::Variable),
7u32 => Ok(CompletionItemKind::Class),
8u32 => Ok(CompletionItemKind::Interface),
9u32 => Ok(CompletionItemKind::Module),
10u32 => Ok(CompletionItemKind::Property),
11u32 => Ok(CompletionItemKind::Unit),
12u32 => Ok(CompletionItemKind::Value),
13u32 => Ok(CompletionItemKind::Enum),
14u32 => Ok(CompletionItemKind::Keyword),
15u32 => Ok(CompletionItemKind::Snippet),
16u32 => Ok(CompletionItemKind::Color),
17u32 => Ok(CompletionItemKind::File),
18u32 => Ok(CompletionItemKind::Reference),
19u32 => Ok(CompletionItemKind::Folder),
20u32 => Ok(CompletionItemKind::EnumMember),
21u32 => Ok(CompletionItemKind::Constant),
22u32 => Ok(CompletionItemKind::Struct),
23u32 => Ok(CompletionItemKind::Event),
24u32 => Ok(CompletionItemKind::Operator),
25u32 => Ok(CompletionItemKind::TypeParameter),
_ => Err(format!("Invalid CompletionItemKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum CompletionItemTag {
Deprecated,
}
impl From<CompletionItemTag> for u32 {
fn from(e: CompletionItemTag) -> Self {
match e {
CompletionItemTag::Deprecated => 1u32,
}
}
}
impl TryFrom<u32> for CompletionItemTag {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(CompletionItemTag::Deprecated),
_ => Err(format!("Invalid CompletionItemTag: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum InsertTextFormat {
PlainText,
Snippet,
}
impl From<InsertTextFormat> for u32 {
fn from(e: InsertTextFormat) -> Self {
match e {
InsertTextFormat::PlainText => 1u32,
InsertTextFormat::Snippet => 2u32,
}
}
}
impl TryFrom<u32> for InsertTextFormat {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(InsertTextFormat::PlainText),
2u32 => Ok(InsertTextFormat::Snippet),
_ => Err(format!("Invalid InsertTextFormat: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum InsertTextMode {
AsIs,
AdjustIndentation,
}
impl From<InsertTextMode> for u32 {
fn from(e: InsertTextMode) -> Self {
match e {
InsertTextMode::AsIs => 1u32,
InsertTextMode::AdjustIndentation => 2u32,
}
}
}
impl TryFrom<u32> for InsertTextMode {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(InsertTextMode::AsIs),
2u32 => Ok(InsertTextMode::AdjustIndentation),
_ => Err(format!("Invalid InsertTextMode: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum DocumentHighlightKind {
Text,
Read,
Write,
}
impl From<DocumentHighlightKind> for u32 {
fn from(e: DocumentHighlightKind) -> Self {
match e {
DocumentHighlightKind::Text => 1u32,
DocumentHighlightKind::Read => 2u32,
DocumentHighlightKind::Write => 3u32,
}
}
}
impl TryFrom<u32> for DocumentHighlightKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(DocumentHighlightKind::Text),
2u32 => Ok(DocumentHighlightKind::Read),
3u32 => Ok(DocumentHighlightKind::Write),
_ => Err(format!("Invalid DocumentHighlightKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum CodeActionKind {
Empty,
QuickFix,
Refactor,
RefactorExtract,
RefactorInline,
RefactorMove,
RefactorRewrite,
Source,
SourceOrganizeImports,
SourceFixAll,
Notebook,
#[serde(untagged)]
Custom(String),
}
impl From<CodeActionKind> for String {
fn from(e: CodeActionKind) -> Self {
match e {
CodeActionKind::Empty => "".to_string(),
CodeActionKind::QuickFix => "quickfix".to_string(),
CodeActionKind::Refactor => "refactor".to_string(),
CodeActionKind::RefactorExtract => "refactor.extract".to_string(),
CodeActionKind::RefactorInline => "refactor.inline".to_string(),
CodeActionKind::RefactorMove => "refactor.move".to_string(),
CodeActionKind::RefactorRewrite => "refactor.rewrite".to_string(),
CodeActionKind::Source => "source".to_string(),
CodeActionKind::SourceOrganizeImports => "source.organizeImports".to_string(),
CodeActionKind::SourceFixAll => "source.fixAll".to_string(),
CodeActionKind::Notebook => "notebook".to_string(),
CodeActionKind::Custom(any) => any,
}
}
}
impl From<String> for CodeActionKind {
fn from(v: String) -> Self {
match v.as_str() {
"" => CodeActionKind::Empty,
"quickfix" => CodeActionKind::QuickFix,
"refactor" => CodeActionKind::Refactor,
"refactor.extract" => CodeActionKind::RefactorExtract,
"refactor.inline" => CodeActionKind::RefactorInline,
"refactor.move" => CodeActionKind::RefactorMove,
"refactor.rewrite" => CodeActionKind::RefactorRewrite,
"source" => CodeActionKind::Source,
"source.organizeImports" => CodeActionKind::SourceOrganizeImports,
"source.fixAll" => CodeActionKind::SourceFixAll,
"notebook" => CodeActionKind::Notebook,
_ => CodeActionKind::Custom(v),
}
}
}
impl fmt::Display for CodeActionKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum CodeActionTag {
LLMGenerated,
}
impl From<CodeActionTag> for u32 {
fn from(e: CodeActionTag) -> Self {
match e {
CodeActionTag::LLMGenerated => 1u32,
}
}
}
impl TryFrom<u32> for CodeActionTag {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(CodeActionTag::LLMGenerated),
_ => Err(format!("Invalid CodeActionTag: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum TraceValue {
Off,
Messages,
Verbose,
}
impl From<TraceValue> for String {
fn from(e: TraceValue) -> Self {
match e {
TraceValue::Off => "off".to_string(),
TraceValue::Messages => "messages".to_string(),
TraceValue::Verbose => "verbose".to_string(),
}
}
}
impl TryFrom<String> for TraceValue {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"off" => Ok(TraceValue::Off),
"messages" => Ok(TraceValue::Messages),
"verbose" => Ok(TraceValue::Verbose),
_ => Err(format!("Invalid TraceValue: {v}")),
}
}
}
impl fmt::Display for TraceValue {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum MarkupKind {
PlainText,
Markdown,
}
impl From<MarkupKind> for String {
fn from(e: MarkupKind) -> Self {
match e {
MarkupKind::PlainText => "plaintext".to_string(),
MarkupKind::Markdown => "markdown".to_string(),
}
}
}
impl TryFrom<String> for MarkupKind {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"plaintext" => Ok(MarkupKind::PlainText),
"markdown" => Ok(MarkupKind::Markdown),
_ => Err(format!("Invalid MarkupKind: {v}")),
}
}
}
impl fmt::Display for MarkupKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum LanguageKind {
ABAP,
WindowsBat,
BibTeX,
Clojure,
Coffeescript,
C,
CPP,
CSharp,
CSS,
D,
Delphi,
Diff,
Dart,
Dockerfile,
Elixir,
Erlang,
FSharp,
GitCommit,
GitRebase,
Go,
Groovy,
Handlebars,
Haskell,
HTML,
Ini,
Java,
JavaScript,
JavaScriptReact,
JSON,
LaTeX,
Less,
Lua,
Makefile,
Markdown,
ObjectiveC,
ObjectiveCPP,
Pascal,
Perl,
Perl6,
PHP,
Powershell,
Pug,
Python,
R,
Razor,
Ruby,
Rust,
SCSS,
SASS,
Scala,
ShaderLab,
ShellScript,
SQL,
Swift,
TypeScript,
TypeScriptReact,
TeX,
VisualBasic,
XML,
XSL,
YAML,
#[serde(untagged)]
Custom(String),
}
impl From<LanguageKind> for String {
fn from(e: LanguageKind) -> Self {
match e {
LanguageKind::ABAP => "abap".to_string(),
LanguageKind::WindowsBat => "bat".to_string(),
LanguageKind::BibTeX => "bibtex".to_string(),
LanguageKind::Clojure => "clojure".to_string(),
LanguageKind::Coffeescript => "coffeescript".to_string(),
LanguageKind::C => "c".to_string(),
LanguageKind::CPP => "cpp".to_string(),
LanguageKind::CSharp => "csharp".to_string(),
LanguageKind::CSS => "css".to_string(),
LanguageKind::D => "d".to_string(),
LanguageKind::Delphi => "pascal".to_string(),
LanguageKind::Diff => "diff".to_string(),
LanguageKind::Dart => "dart".to_string(),
LanguageKind::Dockerfile => "dockerfile".to_string(),
LanguageKind::Elixir => "elixir".to_string(),
LanguageKind::Erlang => "erlang".to_string(),
LanguageKind::FSharp => "fsharp".to_string(),
LanguageKind::GitCommit => "git-commit".to_string(),
LanguageKind::GitRebase => "rebase".to_string(),
LanguageKind::Go => "go".to_string(),
LanguageKind::Groovy => "groovy".to_string(),
LanguageKind::Handlebars => "handlebars".to_string(),
LanguageKind::Haskell => "haskell".to_string(),
LanguageKind::HTML => "html".to_string(),
LanguageKind::Ini => "ini".to_string(),
LanguageKind::Java => "java".to_string(),
LanguageKind::JavaScript => "javascript".to_string(),
LanguageKind::JavaScriptReact => "javascriptreact".to_string(),
LanguageKind::JSON => "json".to_string(),
LanguageKind::LaTeX => "latex".to_string(),
LanguageKind::Less => "less".to_string(),
LanguageKind::Lua => "lua".to_string(),
LanguageKind::Makefile => "makefile".to_string(),
LanguageKind::Markdown => "markdown".to_string(),
LanguageKind::ObjectiveC => "objective-c".to_string(),
LanguageKind::ObjectiveCPP => "objective-cpp".to_string(),
LanguageKind::Pascal => "pascal".to_string(),
LanguageKind::Perl => "perl".to_string(),
LanguageKind::Perl6 => "perl6".to_string(),
LanguageKind::PHP => "php".to_string(),
LanguageKind::Powershell => "powershell".to_string(),
LanguageKind::Pug => "jade".to_string(),
LanguageKind::Python => "python".to_string(),
LanguageKind::R => "r".to_string(),
LanguageKind::Razor => "razor".to_string(),
LanguageKind::Ruby => "ruby".to_string(),
LanguageKind::Rust => "rust".to_string(),
LanguageKind::SCSS => "scss".to_string(),
LanguageKind::SASS => "sass".to_string(),
LanguageKind::Scala => "scala".to_string(),
LanguageKind::ShaderLab => "shaderlab".to_string(),
LanguageKind::ShellScript => "shellscript".to_string(),
LanguageKind::SQL => "sql".to_string(),
LanguageKind::Swift => "swift".to_string(),
LanguageKind::TypeScript => "typescript".to_string(),
LanguageKind::TypeScriptReact => "typescriptreact".to_string(),
LanguageKind::TeX => "tex".to_string(),
LanguageKind::VisualBasic => "vb".to_string(),
LanguageKind::XML => "xml".to_string(),
LanguageKind::XSL => "xsl".to_string(),
LanguageKind::YAML => "yaml".to_string(),
LanguageKind::Custom(any) => any,
}
}
}
impl From<String> for LanguageKind {
fn from(v: String) -> Self {
match v.as_str() {
"abap" => LanguageKind::ABAP,
"bat" => LanguageKind::WindowsBat,
"bibtex" => LanguageKind::BibTeX,
"clojure" => LanguageKind::Clojure,
"coffeescript" => LanguageKind::Coffeescript,
"c" => LanguageKind::C,
"cpp" => LanguageKind::CPP,
"csharp" => LanguageKind::CSharp,
"css" => LanguageKind::CSS,
"d" => LanguageKind::D,
"pascal" => LanguageKind::Delphi,
"diff" => LanguageKind::Diff,
"dart" => LanguageKind::Dart,
"dockerfile" => LanguageKind::Dockerfile,
"elixir" => LanguageKind::Elixir,
"erlang" => LanguageKind::Erlang,
"fsharp" => LanguageKind::FSharp,
"git-commit" => LanguageKind::GitCommit,
"rebase" => LanguageKind::GitRebase,
"go" => LanguageKind::Go,
"groovy" => LanguageKind::Groovy,
"handlebars" => LanguageKind::Handlebars,
"haskell" => LanguageKind::Haskell,
"html" => LanguageKind::HTML,
"ini" => LanguageKind::Ini,
"java" => LanguageKind::Java,
"javascript" => LanguageKind::JavaScript,
"javascriptreact" => LanguageKind::JavaScriptReact,
"json" => LanguageKind::JSON,
"latex" => LanguageKind::LaTeX,
"less" => LanguageKind::Less,
"lua" => LanguageKind::Lua,
"makefile" => LanguageKind::Makefile,
"markdown" => LanguageKind::Markdown,
"objective-c" => LanguageKind::ObjectiveC,
"objective-cpp" => LanguageKind::ObjectiveCPP,
"pascal" => LanguageKind::Pascal,
"perl" => LanguageKind::Perl,
"perl6" => LanguageKind::Perl6,
"php" => LanguageKind::PHP,
"powershell" => LanguageKind::Powershell,
"jade" => LanguageKind::Pug,
"python" => LanguageKind::Python,
"r" => LanguageKind::R,
"razor" => LanguageKind::Razor,
"ruby" => LanguageKind::Ruby,
"rust" => LanguageKind::Rust,
"scss" => LanguageKind::SCSS,
"sass" => LanguageKind::SASS,
"scala" => LanguageKind::Scala,
"shaderlab" => LanguageKind::ShaderLab,
"shellscript" => LanguageKind::ShellScript,
"sql" => LanguageKind::SQL,
"swift" => LanguageKind::Swift,
"typescript" => LanguageKind::TypeScript,
"typescriptreact" => LanguageKind::TypeScriptReact,
"tex" => LanguageKind::TeX,
"vb" => LanguageKind::VisualBasic,
"xml" => LanguageKind::XML,
"xsl" => LanguageKind::XSL,
"yaml" => LanguageKind::YAML,
_ => LanguageKind::Custom(v),
}
}
}
impl fmt::Display for LanguageKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum InlineCompletionTriggerKind {
Invoked,
Automatic,
}
impl From<InlineCompletionTriggerKind> for u32 {
fn from(e: InlineCompletionTriggerKind) -> Self {
match e {
InlineCompletionTriggerKind::Invoked => 1u32,
InlineCompletionTriggerKind::Automatic => 2u32,
}
}
}
impl TryFrom<u32> for InlineCompletionTriggerKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(InlineCompletionTriggerKind::Invoked),
2u32 => Ok(InlineCompletionTriggerKind::Automatic),
_ => Err(format!("Invalid InlineCompletionTriggerKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum PositionEncodingKind {
UTF8,
UTF16,
UTF32,
#[serde(untagged)]
Custom(String),
}
impl From<PositionEncodingKind> for String {
fn from(e: PositionEncodingKind) -> Self {
match e {
PositionEncodingKind::UTF8 => "utf-8".to_string(),
PositionEncodingKind::UTF16 => "utf-16".to_string(),
PositionEncodingKind::UTF32 => "utf-32".to_string(),
PositionEncodingKind::Custom(any) => any,
}
}
}
impl From<String> for PositionEncodingKind {
fn from(v: String) -> Self {
match v.as_str() {
"utf-8" => PositionEncodingKind::UTF8,
"utf-16" => PositionEncodingKind::UTF16,
"utf-32" => PositionEncodingKind::UTF32,
_ => PositionEncodingKind::Custom(v),
}
}
}
impl fmt::Display for PositionEncodingKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum FileChangeType {
Created,
Changed,
Deleted,
}
impl From<FileChangeType> for u32 {
fn from(e: FileChangeType) -> Self {
match e {
FileChangeType::Created => 1u32,
FileChangeType::Changed => 2u32,
FileChangeType::Deleted => 3u32,
}
}
}
impl TryFrom<u32> for FileChangeType {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(FileChangeType::Created),
2u32 => Ok(FileChangeType::Changed),
3u32 => Ok(FileChangeType::Deleted),
_ => Err(format!("Invalid FileChangeType: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", from = "u32")]
pub enum WatchKind {
Create,
Change,
Delete,
#[serde(untagged)]
Custom(u32),
}
impl From<WatchKind> for u32 {
fn from(e: WatchKind) -> Self {
match e {
WatchKind::Create => 1u32,
WatchKind::Change => 2u32,
WatchKind::Delete => 4u32,
WatchKind::Custom(any) => any,
}
}
}
impl From<u32> for WatchKind {
fn from(v: u32) -> Self {
match v {
1u32 => WatchKind::Create,
2u32 => WatchKind::Change,
4u32 => WatchKind::Delete,
_ => WatchKind::Custom(v),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum DiagnosticSeverity {
Error,
Warning,
Information,
Hint,
}
impl From<DiagnosticSeverity> for u32 {
fn from(e: DiagnosticSeverity) -> Self {
match e {
DiagnosticSeverity::Error => 1u32,
DiagnosticSeverity::Warning => 2u32,
DiagnosticSeverity::Information => 3u32,
DiagnosticSeverity::Hint => 4u32,
}
}
}
impl TryFrom<u32> for DiagnosticSeverity {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(DiagnosticSeverity::Error),
2u32 => Ok(DiagnosticSeverity::Warning),
3u32 => Ok(DiagnosticSeverity::Information),
4u32 => Ok(DiagnosticSeverity::Hint),
_ => Err(format!("Invalid DiagnosticSeverity: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum DiagnosticTag {
Unnecessary,
Deprecated,
}
impl From<DiagnosticTag> for u32 {
fn from(e: DiagnosticTag) -> Self {
match e {
DiagnosticTag::Unnecessary => 1u32,
DiagnosticTag::Deprecated => 2u32,
}
}
}
impl TryFrom<u32> for DiagnosticTag {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(DiagnosticTag::Unnecessary),
2u32 => Ok(DiagnosticTag::Deprecated),
_ => Err(format!("Invalid DiagnosticTag: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum CompletionTriggerKind {
Invoked,
TriggerCharacter,
TriggerForIncompleteCompletions,
}
impl From<CompletionTriggerKind> for u32 {
fn from(e: CompletionTriggerKind) -> Self {
match e {
CompletionTriggerKind::Invoked => 1u32,
CompletionTriggerKind::TriggerCharacter => 2u32,
CompletionTriggerKind::TriggerForIncompleteCompletions => 3u32,
}
}
}
impl TryFrom<u32> for CompletionTriggerKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(CompletionTriggerKind::Invoked),
2u32 => Ok(CompletionTriggerKind::TriggerCharacter),
3u32 => Ok(CompletionTriggerKind::TriggerForIncompleteCompletions),
_ => Err(format!("Invalid CompletionTriggerKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum ApplyKind {
Replace,
Merge,
}
impl From<ApplyKind> for u32 {
fn from(e: ApplyKind) -> Self {
match e {
ApplyKind::Replace => 1u32,
ApplyKind::Merge => 2u32,
}
}
}
impl TryFrom<u32> for ApplyKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(ApplyKind::Replace),
2u32 => Ok(ApplyKind::Merge),
_ => Err(format!("Invalid ApplyKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum SignatureHelpTriggerKind {
Invoked,
TriggerCharacter,
ContentChange,
}
impl From<SignatureHelpTriggerKind> for u32 {
fn from(e: SignatureHelpTriggerKind) -> Self {
match e {
SignatureHelpTriggerKind::Invoked => 1u32,
SignatureHelpTriggerKind::TriggerCharacter => 2u32,
SignatureHelpTriggerKind::ContentChange => 3u32,
}
}
}
impl TryFrom<u32> for SignatureHelpTriggerKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(SignatureHelpTriggerKind::Invoked),
2u32 => Ok(SignatureHelpTriggerKind::TriggerCharacter),
3u32 => Ok(SignatureHelpTriggerKind::ContentChange),
_ => Err(format!("Invalid SignatureHelpTriggerKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum CodeActionTriggerKind {
Invoked,
Automatic,
}
impl From<CodeActionTriggerKind> for u32 {
fn from(e: CodeActionTriggerKind) -> Self {
match e {
CodeActionTriggerKind::Invoked => 1u32,
CodeActionTriggerKind::Automatic => 2u32,
}
}
}
impl TryFrom<u32> for CodeActionTriggerKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(CodeActionTriggerKind::Invoked),
2u32 => Ok(CodeActionTriggerKind::Automatic),
_ => Err(format!("Invalid CodeActionTriggerKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum FileOperationPatternKind {
File,
Folder,
}
impl From<FileOperationPatternKind> for String {
fn from(e: FileOperationPatternKind) -> Self {
match e {
FileOperationPatternKind::File => "file".to_string(),
FileOperationPatternKind::Folder => "folder".to_string(),
}
}
}
impl TryFrom<String> for FileOperationPatternKind {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"file" => Ok(FileOperationPatternKind::File),
"folder" => Ok(FileOperationPatternKind::Folder),
_ => Err(format!("Invalid FileOperationPatternKind: {v}")),
}
}
}
impl fmt::Display for FileOperationPatternKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum NotebookCellKind {
Markup,
Code,
}
impl From<NotebookCellKind> for u32 {
fn from(e: NotebookCellKind) -> Self {
match e {
NotebookCellKind::Markup => 1u32,
NotebookCellKind::Code => 2u32,
}
}
}
impl TryFrom<u32> for NotebookCellKind {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(NotebookCellKind::Markup),
2u32 => Ok(NotebookCellKind::Code),
_ => Err(format!("Invalid NotebookCellKind: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum ResourceOperationKind {
Create,
Rename,
Delete,
}
impl From<ResourceOperationKind> for String {
fn from(e: ResourceOperationKind) -> Self {
match e {
ResourceOperationKind::Create => "create".to_string(),
ResourceOperationKind::Rename => "rename".to_string(),
ResourceOperationKind::Delete => "delete".to_string(),
}
}
}
impl TryFrom<String> for ResourceOperationKind {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"create" => Ok(ResourceOperationKind::Create),
"rename" => Ok(ResourceOperationKind::Rename),
"delete" => Ok(ResourceOperationKind::Delete),
_ => Err(format!("Invalid ResourceOperationKind: {v}")),
}
}
}
impl fmt::Display for ResourceOperationKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum FailureHandlingKind {
Abort,
Transactional,
TextOnlyTransactional,
Undo,
}
impl From<FailureHandlingKind> for String {
fn from(e: FailureHandlingKind) -> Self {
match e {
FailureHandlingKind::Abort => "abort".to_string(),
FailureHandlingKind::Transactional => "transactional".to_string(),
FailureHandlingKind::TextOnlyTransactional => {
"textOnlyTransactional".to_string()
}
FailureHandlingKind::Undo => "undo".to_string(),
}
}
}
impl TryFrom<String> for FailureHandlingKind {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"abort" => Ok(FailureHandlingKind::Abort),
"transactional" => Ok(FailureHandlingKind::Transactional),
"textOnlyTransactional" => Ok(FailureHandlingKind::TextOnlyTransactional),
"undo" => Ok(FailureHandlingKind::Undo),
_ => Err(format!("Invalid FailureHandlingKind: {v}")),
}
}
}
impl fmt::Display for FailureHandlingKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "u32", try_from = "u32")]
pub enum PrepareSupportDefaultBehavior {
Identifier,
}
impl From<PrepareSupportDefaultBehavior> for u32 {
fn from(e: PrepareSupportDefaultBehavior) -> Self {
match e {
PrepareSupportDefaultBehavior::Identifier => 1u32,
}
}
}
impl TryFrom<u32> for PrepareSupportDefaultBehavior {
type Error = String;
fn try_from(v: u32) -> Result<Self, <Self as TryFrom<u32>>::Error> {
match v {
1u32 => Ok(PrepareSupportDefaultBehavior::Identifier),
_ => Err(format!("Invalid PrepareSupportDefaultBehavior: {v}")),
}
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize, Copy)]
#[serde(into = "String", try_from = "String")]
pub enum TokenFormat {
Relative,
}
impl From<TokenFormat> for String {
fn from(e: TokenFormat) -> Self {
match e {
TokenFormat::Relative => "relative".to_string(),
}
}
}
impl TryFrom<String> for TokenFormat {
type Error = String;
fn try_from(v: String) -> Result<Self, <Self as TryFrom<String>>::Error> {
match v.as_str() {
"relative" => Ok(TokenFormat::Relative),
_ => Err(format!("Invalid TokenFormat: {v}")),
}
}
}
impl fmt::Display for TokenFormat {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = (*self).into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum LspRequestMethods {
TextDocumentImplementation,
TextDocumentTypeDefinition,
WorkspaceWorkspaceFolders,
WorkspaceConfiguration,
TextDocumentDocumentColor,
TextDocumentColorPresentation,
TextDocumentFoldingRange,
WorkspaceFoldingRangeRefresh,
TextDocumentDeclaration,
TextDocumentSelectionRange,
WindowWorkDoneProgressCreate,
TextDocumentPrepareCallHierarchy,
CallHierarchyIncomingCalls,
CallHierarchyOutgoingCalls,
TextDocumentSemanticTokensFull,
TextDocumentSemanticTokensFullDelta,
TextDocumentSemanticTokensRange,
WorkspaceSemanticTokensRefresh,
WindowShowDocument,
TextDocumentLinkedEditingRange,
WorkspaceWillCreateFiles,
WorkspaceWillRenameFiles,
WorkspaceWillDeleteFiles,
TextDocumentMoniker,
TextDocumentPrepareTypeHierarchy,
TypeHierarchySupertypes,
TypeHierarchySubtypes,
TextDocumentInlineValue,
WorkspaceInlineValueRefresh,
TextDocumentInlayHint,
InlayHintResolve,
WorkspaceInlayHintRefresh,
TextDocumentDiagnostic,
WorkspaceDiagnostic,
WorkspaceDiagnosticRefresh,
TextDocumentInlineCompletion,
WorkspaceTextDocumentContent,
WorkspaceTextDocumentContentRefresh,
ClientRegisterCapability,
ClientUnregisterCapability,
Initialize,
Shutdown,
WindowShowMessageRequest,
TextDocumentWillSaveWaitUntil,
TextDocumentCompletion,
CompletionItemResolve,
TextDocumentHover,
TextDocumentSignatureHelp,
TextDocumentDefinition,
TextDocumentReferences,
TextDocumentDocumentHighlight,
TextDocumentDocumentSymbol,
TextDocumentCodeAction,
CodeActionResolve,
WorkspaceSymbol,
WorkspaceSymbolResolve,
TextDocumentCodeLens,
CodeLensResolve,
WorkspaceCodeLensRefresh,
TextDocumentDocumentLink,
DocumentLinkResolve,
TextDocumentFormatting,
TextDocumentRangeFormatting,
TextDocumentRangesFormatting,
TextDocumentOnTypeFormatting,
TextDocumentRename,
TextDocumentPrepareRename,
WorkspaceExecuteCommand,
WorkspaceApplyEdit,
#[serde(untagged)]
Custom(String),
}
impl From<LspRequestMethods> for String {
fn from(e: LspRequestMethods) -> Self {
match e {
LspRequestMethods::TextDocumentImplementation => {
"textDocument/implementation".to_string()
}
LspRequestMethods::TextDocumentTypeDefinition => {
"textDocument/typeDefinition".to_string()
}
LspRequestMethods::WorkspaceWorkspaceFolders => {
"workspace/workspaceFolders".to_string()
}
LspRequestMethods::WorkspaceConfiguration => {
"workspace/configuration".to_string()
}
LspRequestMethods::TextDocumentDocumentColor => {
"textDocument/documentColor".to_string()
}
LspRequestMethods::TextDocumentColorPresentation => {
"textDocument/colorPresentation".to_string()
}
LspRequestMethods::TextDocumentFoldingRange => {
"textDocument/foldingRange".to_string()
}
LspRequestMethods::WorkspaceFoldingRangeRefresh => {
"workspace/foldingRange/refresh".to_string()
}
LspRequestMethods::TextDocumentDeclaration => {
"textDocument/declaration".to_string()
}
LspRequestMethods::TextDocumentSelectionRange => {
"textDocument/selectionRange".to_string()
}
LspRequestMethods::WindowWorkDoneProgressCreate => {
"window/workDoneProgress/create".to_string()
}
LspRequestMethods::TextDocumentPrepareCallHierarchy => {
"textDocument/prepareCallHierarchy".to_string()
}
LspRequestMethods::CallHierarchyIncomingCalls => {
"callHierarchy/incomingCalls".to_string()
}
LspRequestMethods::CallHierarchyOutgoingCalls => {
"callHierarchy/outgoingCalls".to_string()
}
LspRequestMethods::TextDocumentSemanticTokensFull => {
"textDocument/semanticTokens/full".to_string()
}
LspRequestMethods::TextDocumentSemanticTokensFullDelta => {
"textDocument/semanticTokens/full/delta".to_string()
}
LspRequestMethods::TextDocumentSemanticTokensRange => {
"textDocument/semanticTokens/range".to_string()
}
LspRequestMethods::WorkspaceSemanticTokensRefresh => {
"workspace/semanticTokens/refresh".to_string()
}
LspRequestMethods::WindowShowDocument => "window/showDocument".to_string(),
LspRequestMethods::TextDocumentLinkedEditingRange => {
"textDocument/linkedEditingRange".to_string()
}
LspRequestMethods::WorkspaceWillCreateFiles => {
"workspace/willCreateFiles".to_string()
}
LspRequestMethods::WorkspaceWillRenameFiles => {
"workspace/willRenameFiles".to_string()
}
LspRequestMethods::WorkspaceWillDeleteFiles => {
"workspace/willDeleteFiles".to_string()
}
LspRequestMethods::TextDocumentMoniker => "textDocument/moniker".to_string(),
LspRequestMethods::TextDocumentPrepareTypeHierarchy => {
"textDocument/prepareTypeHierarchy".to_string()
}
LspRequestMethods::TypeHierarchySupertypes => {
"typeHierarchy/supertypes".to_string()
}
LspRequestMethods::TypeHierarchySubtypes => {
"typeHierarchy/subtypes".to_string()
}
LspRequestMethods::TextDocumentInlineValue => {
"textDocument/inlineValue".to_string()
}
LspRequestMethods::WorkspaceInlineValueRefresh => {
"workspace/inlineValue/refresh".to_string()
}
LspRequestMethods::TextDocumentInlayHint => {
"textDocument/inlayHint".to_string()
}
LspRequestMethods::InlayHintResolve => "inlayHint/resolve".to_string(),
LspRequestMethods::WorkspaceInlayHintRefresh => {
"workspace/inlayHint/refresh".to_string()
}
LspRequestMethods::TextDocumentDiagnostic => {
"textDocument/diagnostic".to_string()
}
LspRequestMethods::WorkspaceDiagnostic => "workspace/diagnostic".to_string(),
LspRequestMethods::WorkspaceDiagnosticRefresh => {
"workspace/diagnostic/refresh".to_string()
}
LspRequestMethods::TextDocumentInlineCompletion => {
"textDocument/inlineCompletion".to_string()
}
LspRequestMethods::WorkspaceTextDocumentContent => {
"workspace/textDocumentContent".to_string()
}
LspRequestMethods::WorkspaceTextDocumentContentRefresh => {
"workspace/textDocumentContent/refresh".to_string()
}
LspRequestMethods::ClientRegisterCapability => {
"client/registerCapability".to_string()
}
LspRequestMethods::ClientUnregisterCapability => {
"client/unregisterCapability".to_string()
}
LspRequestMethods::Initialize => "initialize".to_string(),
LspRequestMethods::Shutdown => "shutdown".to_string(),
LspRequestMethods::WindowShowMessageRequest => {
"window/showMessageRequest".to_string()
}
LspRequestMethods::TextDocumentWillSaveWaitUntil => {
"textDocument/willSaveWaitUntil".to_string()
}
LspRequestMethods::TextDocumentCompletion => {
"textDocument/completion".to_string()
}
LspRequestMethods::CompletionItemResolve => {
"completionItem/resolve".to_string()
}
LspRequestMethods::TextDocumentHover => "textDocument/hover".to_string(),
LspRequestMethods::TextDocumentSignatureHelp => {
"textDocument/signatureHelp".to_string()
}
LspRequestMethods::TextDocumentDefinition => {
"textDocument/definition".to_string()
}
LspRequestMethods::TextDocumentReferences => {
"textDocument/references".to_string()
}
LspRequestMethods::TextDocumentDocumentHighlight => {
"textDocument/documentHighlight".to_string()
}
LspRequestMethods::TextDocumentDocumentSymbol => {
"textDocument/documentSymbol".to_string()
}
LspRequestMethods::TextDocumentCodeAction => {
"textDocument/codeAction".to_string()
}
LspRequestMethods::CodeActionResolve => "codeAction/resolve".to_string(),
LspRequestMethods::WorkspaceSymbol => "workspace/symbol".to_string(),
LspRequestMethods::WorkspaceSymbolResolve => {
"workspaceSymbol/resolve".to_string()
}
LspRequestMethods::TextDocumentCodeLens => {
"textDocument/codeLens".to_string()
}
LspRequestMethods::CodeLensResolve => "codeLens/resolve".to_string(),
LspRequestMethods::WorkspaceCodeLensRefresh => {
"workspace/codeLens/refresh".to_string()
}
LspRequestMethods::TextDocumentDocumentLink => {
"textDocument/documentLink".to_string()
}
LspRequestMethods::DocumentLinkResolve => "documentLink/resolve".to_string(),
LspRequestMethods::TextDocumentFormatting => {
"textDocument/formatting".to_string()
}
LspRequestMethods::TextDocumentRangeFormatting => {
"textDocument/rangeFormatting".to_string()
}
LspRequestMethods::TextDocumentRangesFormatting => {
"textDocument/rangesFormatting".to_string()
}
LspRequestMethods::TextDocumentOnTypeFormatting => {
"textDocument/onTypeFormatting".to_string()
}
LspRequestMethods::TextDocumentRename => "textDocument/rename".to_string(),
LspRequestMethods::TextDocumentPrepareRename => {
"textDocument/prepareRename".to_string()
}
LspRequestMethods::WorkspaceExecuteCommand => {
"workspace/executeCommand".to_string()
}
LspRequestMethods::WorkspaceApplyEdit => "workspace/applyEdit".to_string(),
LspRequestMethods::Custom(any) => any,
}
}
}
impl From<String> for LspRequestMethods {
fn from(v: String) -> Self {
match v.as_str() {
"textDocument/implementation" => {
LspRequestMethods::TextDocumentImplementation
}
"textDocument/typeDefinition" => {
LspRequestMethods::TextDocumentTypeDefinition
}
"workspace/workspaceFolders" => LspRequestMethods::WorkspaceWorkspaceFolders,
"workspace/configuration" => LspRequestMethods::WorkspaceConfiguration,
"textDocument/documentColor" => LspRequestMethods::TextDocumentDocumentColor,
"textDocument/colorPresentation" => {
LspRequestMethods::TextDocumentColorPresentation
}
"textDocument/foldingRange" => LspRequestMethods::TextDocumentFoldingRange,
"workspace/foldingRange/refresh" => {
LspRequestMethods::WorkspaceFoldingRangeRefresh
}
"textDocument/declaration" => LspRequestMethods::TextDocumentDeclaration,
"textDocument/selectionRange" => {
LspRequestMethods::TextDocumentSelectionRange
}
"window/workDoneProgress/create" => {
LspRequestMethods::WindowWorkDoneProgressCreate
}
"textDocument/prepareCallHierarchy" => {
LspRequestMethods::TextDocumentPrepareCallHierarchy
}
"callHierarchy/incomingCalls" => {
LspRequestMethods::CallHierarchyIncomingCalls
}
"callHierarchy/outgoingCalls" => {
LspRequestMethods::CallHierarchyOutgoingCalls
}
"textDocument/semanticTokens/full" => {
LspRequestMethods::TextDocumentSemanticTokensFull
}
"textDocument/semanticTokens/full/delta" => {
LspRequestMethods::TextDocumentSemanticTokensFullDelta
}
"textDocument/semanticTokens/range" => {
LspRequestMethods::TextDocumentSemanticTokensRange
}
"workspace/semanticTokens/refresh" => {
LspRequestMethods::WorkspaceSemanticTokensRefresh
}
"window/showDocument" => LspRequestMethods::WindowShowDocument,
"textDocument/linkedEditingRange" => {
LspRequestMethods::TextDocumentLinkedEditingRange
}
"workspace/willCreateFiles" => LspRequestMethods::WorkspaceWillCreateFiles,
"workspace/willRenameFiles" => LspRequestMethods::WorkspaceWillRenameFiles,
"workspace/willDeleteFiles" => LspRequestMethods::WorkspaceWillDeleteFiles,
"textDocument/moniker" => LspRequestMethods::TextDocumentMoniker,
"textDocument/prepareTypeHierarchy" => {
LspRequestMethods::TextDocumentPrepareTypeHierarchy
}
"typeHierarchy/supertypes" => LspRequestMethods::TypeHierarchySupertypes,
"typeHierarchy/subtypes" => LspRequestMethods::TypeHierarchySubtypes,
"textDocument/inlineValue" => LspRequestMethods::TextDocumentInlineValue,
"workspace/inlineValue/refresh" => {
LspRequestMethods::WorkspaceInlineValueRefresh
}
"textDocument/inlayHint" => LspRequestMethods::TextDocumentInlayHint,
"inlayHint/resolve" => LspRequestMethods::InlayHintResolve,
"workspace/inlayHint/refresh" => LspRequestMethods::WorkspaceInlayHintRefresh,
"textDocument/diagnostic" => LspRequestMethods::TextDocumentDiagnostic,
"workspace/diagnostic" => LspRequestMethods::WorkspaceDiagnostic,
"workspace/diagnostic/refresh" => {
LspRequestMethods::WorkspaceDiagnosticRefresh
}
"textDocument/inlineCompletion" => {
LspRequestMethods::TextDocumentInlineCompletion
}
"workspace/textDocumentContent" => {
LspRequestMethods::WorkspaceTextDocumentContent
}
"workspace/textDocumentContent/refresh" => {
LspRequestMethods::WorkspaceTextDocumentContentRefresh
}
"client/registerCapability" => LspRequestMethods::ClientRegisterCapability,
"client/unregisterCapability" => {
LspRequestMethods::ClientUnregisterCapability
}
"initialize" => LspRequestMethods::Initialize,
"shutdown" => LspRequestMethods::Shutdown,
"window/showMessageRequest" => LspRequestMethods::WindowShowMessageRequest,
"textDocument/willSaveWaitUntil" => {
LspRequestMethods::TextDocumentWillSaveWaitUntil
}
"textDocument/completion" => LspRequestMethods::TextDocumentCompletion,
"completionItem/resolve" => LspRequestMethods::CompletionItemResolve,
"textDocument/hover" => LspRequestMethods::TextDocumentHover,
"textDocument/signatureHelp" => LspRequestMethods::TextDocumentSignatureHelp,
"textDocument/definition" => LspRequestMethods::TextDocumentDefinition,
"textDocument/references" => LspRequestMethods::TextDocumentReferences,
"textDocument/documentHighlight" => {
LspRequestMethods::TextDocumentDocumentHighlight
}
"textDocument/documentSymbol" => {
LspRequestMethods::TextDocumentDocumentSymbol
}
"textDocument/codeAction" => LspRequestMethods::TextDocumentCodeAction,
"codeAction/resolve" => LspRequestMethods::CodeActionResolve,
"workspace/symbol" => LspRequestMethods::WorkspaceSymbol,
"workspaceSymbol/resolve" => LspRequestMethods::WorkspaceSymbolResolve,
"textDocument/codeLens" => LspRequestMethods::TextDocumentCodeLens,
"codeLens/resolve" => LspRequestMethods::CodeLensResolve,
"workspace/codeLens/refresh" => LspRequestMethods::WorkspaceCodeLensRefresh,
"textDocument/documentLink" => LspRequestMethods::TextDocumentDocumentLink,
"documentLink/resolve" => LspRequestMethods::DocumentLinkResolve,
"textDocument/formatting" => LspRequestMethods::TextDocumentFormatting,
"textDocument/rangeFormatting" => {
LspRequestMethods::TextDocumentRangeFormatting
}
"textDocument/rangesFormatting" => {
LspRequestMethods::TextDocumentRangesFormatting
}
"textDocument/onTypeFormatting" => {
LspRequestMethods::TextDocumentOnTypeFormatting
}
"textDocument/rename" => LspRequestMethods::TextDocumentRename,
"textDocument/prepareRename" => LspRequestMethods::TextDocumentPrepareRename,
"workspace/executeCommand" => LspRequestMethods::WorkspaceExecuteCommand,
"workspace/applyEdit" => LspRequestMethods::WorkspaceApplyEdit,
_ => LspRequestMethods::Custom(v),
}
}
}
impl fmt::Display for LspRequestMethods {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
#[derive(PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
#[serde(into = "String", from = "String")]
pub enum LspNotificationMethods {
WorkspaceDidChangeWorkspaceFolders,
WindowWorkDoneProgressCancel,
WorkspaceDidCreateFiles,
WorkspaceDidRenameFiles,
WorkspaceDidDeleteFiles,
NotebookDocumentDidOpen,
NotebookDocumentDidChange,
NotebookDocumentDidSave,
NotebookDocumentDidClose,
Initialized,
Exit,
WorkspaceDidChangeConfiguration,
WindowShowMessage,
WindowLogMessage,
TelemetryEvent,
TextDocumentDidOpen,
TextDocumentDidChange,
TextDocumentDidClose,
TextDocumentDidSave,
TextDocumentWillSave,
WorkspaceDidChangeWatchedFiles,
TextDocumentPublishDiagnostics,
SetTrace,
LogTrace,
CancelRequest,
Progress,
#[serde(untagged)]
Custom(String),
}
impl From<LspNotificationMethods> for String {
fn from(e: LspNotificationMethods) -> Self {
match e {
LspNotificationMethods::WorkspaceDidChangeWorkspaceFolders => {
"workspace/didChangeWorkspaceFolders".to_string()
}
LspNotificationMethods::WindowWorkDoneProgressCancel => {
"window/workDoneProgress/cancel".to_string()
}
LspNotificationMethods::WorkspaceDidCreateFiles => {
"workspace/didCreateFiles".to_string()
}
LspNotificationMethods::WorkspaceDidRenameFiles => {
"workspace/didRenameFiles".to_string()
}
LspNotificationMethods::WorkspaceDidDeleteFiles => {
"workspace/didDeleteFiles".to_string()
}
LspNotificationMethods::NotebookDocumentDidOpen => {
"notebookDocument/didOpen".to_string()
}
LspNotificationMethods::NotebookDocumentDidChange => {
"notebookDocument/didChange".to_string()
}
LspNotificationMethods::NotebookDocumentDidSave => {
"notebookDocument/didSave".to_string()
}
LspNotificationMethods::NotebookDocumentDidClose => {
"notebookDocument/didClose".to_string()
}
LspNotificationMethods::Initialized => "initialized".to_string(),
LspNotificationMethods::Exit => "exit".to_string(),
LspNotificationMethods::WorkspaceDidChangeConfiguration => {
"workspace/didChangeConfiguration".to_string()
}
LspNotificationMethods::WindowShowMessage => "window/showMessage".to_string(),
LspNotificationMethods::WindowLogMessage => "window/logMessage".to_string(),
LspNotificationMethods::TelemetryEvent => "telemetry/event".to_string(),
LspNotificationMethods::TextDocumentDidOpen => {
"textDocument/didOpen".to_string()
}
LspNotificationMethods::TextDocumentDidChange => {
"textDocument/didChange".to_string()
}
LspNotificationMethods::TextDocumentDidClose => {
"textDocument/didClose".to_string()
}
LspNotificationMethods::TextDocumentDidSave => {
"textDocument/didSave".to_string()
}
LspNotificationMethods::TextDocumentWillSave => {
"textDocument/willSave".to_string()
}
LspNotificationMethods::WorkspaceDidChangeWatchedFiles => {
"workspace/didChangeWatchedFiles".to_string()
}
LspNotificationMethods::TextDocumentPublishDiagnostics => {
"textDocument/publishDiagnostics".to_string()
}
LspNotificationMethods::SetTrace => "$/setTrace".to_string(),
LspNotificationMethods::LogTrace => "$/logTrace".to_string(),
LspNotificationMethods::CancelRequest => "$/cancelRequest".to_string(),
LspNotificationMethods::Progress => "$/progress".to_string(),
LspNotificationMethods::Custom(any) => any,
}
}
}
impl From<String> for LspNotificationMethods {
fn from(v: String) -> Self {
match v.as_str() {
"workspace/didChangeWorkspaceFolders" => {
LspNotificationMethods::WorkspaceDidChangeWorkspaceFolders
}
"window/workDoneProgress/cancel" => {
LspNotificationMethods::WindowWorkDoneProgressCancel
}
"workspace/didCreateFiles" => LspNotificationMethods::WorkspaceDidCreateFiles,
"workspace/didRenameFiles" => LspNotificationMethods::WorkspaceDidRenameFiles,
"workspace/didDeleteFiles" => LspNotificationMethods::WorkspaceDidDeleteFiles,
"notebookDocument/didOpen" => LspNotificationMethods::NotebookDocumentDidOpen,
"notebookDocument/didChange" => {
LspNotificationMethods::NotebookDocumentDidChange
}
"notebookDocument/didSave" => LspNotificationMethods::NotebookDocumentDidSave,
"notebookDocument/didClose" => {
LspNotificationMethods::NotebookDocumentDidClose
}
"initialized" => LspNotificationMethods::Initialized,
"exit" => LspNotificationMethods::Exit,
"workspace/didChangeConfiguration" => {
LspNotificationMethods::WorkspaceDidChangeConfiguration
}
"window/showMessage" => LspNotificationMethods::WindowShowMessage,
"window/logMessage" => LspNotificationMethods::WindowLogMessage,
"telemetry/event" => LspNotificationMethods::TelemetryEvent,
"textDocument/didOpen" => LspNotificationMethods::TextDocumentDidOpen,
"textDocument/didChange" => LspNotificationMethods::TextDocumentDidChange,
"textDocument/didClose" => LspNotificationMethods::TextDocumentDidClose,
"textDocument/didSave" => LspNotificationMethods::TextDocumentDidSave,
"textDocument/willSave" => LspNotificationMethods::TextDocumentWillSave,
"workspace/didChangeWatchedFiles" => {
LspNotificationMethods::WorkspaceDidChangeWatchedFiles
}
"textDocument/publishDiagnostics" => {
LspNotificationMethods::TextDocumentPublishDiagnostics
}
"$/setTrace" => LspNotificationMethods::SetTrace,
"$/logTrace" => LspNotificationMethods::LogTrace,
"$/cancelRequest" => LspNotificationMethods::CancelRequest,
"$/progress" => LspNotificationMethods::Progress,
_ => LspNotificationMethods::Custom(v),
}
}
}
impl fmt::Display for LspNotificationMethods {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s: String = self.clone().into();
write!(f, "{s}")
}
}
pub type DefinitionLink = LocationLink;
pub type LspArray = Vec<LspAny>;
pub type LspAny = serde_json::Value;
pub type DeclarationLink = LocationLink;
pub type DocumentSelector = Vec<DocumentFilter>;
pub type ChangeAnnotationIdentifier = String;
pub type LspObject = HashMap<String, LspAny>;
pub type Pattern = String;
pub type RegularExpressionEngineKind = String;
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum ActiveParameter {
#[from]
Int(u32),
#[serde(rename = "null")]
#[from(())]
Null,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum BaseUri {
#[from]
WorkspaceFolder(WorkspaceFolder),
#[from]
Uri(Uri),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum CallHierarchyProvider {
#[from]
Bool(bool),
#[from]
CallHierarchyOptions(CallHierarchyOptions),
#[from]
CallHierarchyRegistrationOptions(CallHierarchyRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum ChangeNotifications {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
Bool(bool),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum ClientSemanticTokensRequestOptionsFull {
#[from]
Bool(bool),
#[from]
ClientSemanticTokensRequestFullDelta(ClientSemanticTokensRequestFullDelta),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum ClientSemanticTokensRequestOptionsRange {
#[from]
Bool(bool),
#[from]
Object(LspObject),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Code {
#[from]
Int(i32),
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum CodeActionProvider {
#[from]
Bool(bool),
#[from]
CodeActionOptions(CodeActionOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum CodeActionRequestResponse {
#[from]
Command(Command),
#[from]
CodeAction(CodeAction),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum ColorProvider {
#[from]
Bool(bool),
#[from]
DocumentColorOptions(DocumentColorOptions),
#[from]
DocumentColorRegistrationOptions(DocumentColorRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum CompletionItemTextEdit {
#[from]
TextEdit(TextEdit),
#[from]
InsertReplaceEdit(InsertReplaceEdit),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum CompletionRequestResponse {
#[from]
CompletionItemList(Vec<CompletionItem>),
#[from]
CompletionList(CompletionList),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Contents {
#[from]
MarkupContent(MarkupContent),
#[from]
MarkedString(MarkedString),
#[from]
MarkedStringList(Vec<MarkedString>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Declaration {
#[from]
Location(Location),
#[from]
LocationList(Vec<Location>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DeclarationProvider {
#[from]
Bool(bool),
#[from]
DeclarationOptions(DeclarationOptions),
#[from]
DeclarationRegistrationOptions(DeclarationRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DeclarationRequestResponse {
#[from]
Declaration(Declaration),
#[from]
DeclarationLinkList(Vec<DeclarationLink>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Definition {
#[from]
Location(Location),
#[from]
LocationList(Vec<Location>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum DefinitionProvider {
#[from]
Bool(bool),
#[from]
DefinitionOptions(DefinitionOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DefinitionRequestResponse {
#[from]
Definition(Definition),
#[from]
DefinitionLinkList(Vec<DefinitionLink>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DiagnosticProvider {
#[from]
DiagnosticOptions(DiagnosticOptions),
#[from]
DiagnosticRegistrationOptions(DiagnosticRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DocumentChange {
#[from]
TextDocumentEdit(TextDocumentEdit),
#[from]
CreateFile(CreateFile),
#[from]
RenameFile(RenameFile),
#[from]
DeleteFile(DeleteFile),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum DocumentDiagnosticReport {
#[from]
RelatedFullDocumentDiagnosticReport(RelatedFullDocumentDiagnosticReport),
#[from]
RelatedUnchangedDocumentDiagnosticReport(RelatedUnchangedDocumentDiagnosticReport),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DocumentFilter {
#[from]
TextDocumentFilter(TextDocumentFilter),
#[from]
NotebookCellTextDocumentFilter(NotebookCellTextDocumentFilter),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum DocumentFormattingProvider {
#[from]
Bool(bool),
#[from]
DocumentFormattingOptions(DocumentFormattingOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum DocumentHighlightProvider {
#[from]
Bool(bool),
#[from]
DocumentHighlightOptions(DocumentHighlightOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum DocumentRangeFormattingProvider {
#[from]
Bool(bool),
#[from]
DocumentRangeFormattingOptions(DocumentRangeFormattingOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DocumentSymbolProvider {
#[from]
Bool(bool),
#[from]
DocumentSymbolOptions(DocumentSymbolOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum DocumentSymbolRequestResponse {
#[from]
SymbolInformationList(Vec<SymbolInformation>),
#[from]
DocumentSymbolList(Vec<DocumentSymbol>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Documentation {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
MarkupContent(MarkupContent),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Edit {
#[from]
TextEdit(TextEdit),
#[from]
AnnotatedTextEdit(AnnotatedTextEdit),
#[from]
SnippetTextEdit(SnippetTextEdit),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum EditRange {
#[from]
Range(Range),
#[from]
EditRangeWithInsertReplace(EditRangeWithInsertReplace),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum FoldingRangeProvider {
#[from]
Bool(bool),
#[from]
FoldingRangeOptions(FoldingRangeOptions),
#[from]
FoldingRangeRegistrationOptions(FoldingRangeRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum Full {
#[from]
Bool(bool),
#[from]
SemanticTokensFullDelta(SemanticTokensFullDelta),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum GlobPattern {
#[from]
Pattern(Pattern),
#[from]
RelativePattern(RelativePattern),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum HoverProvider {
#[from]
Bool(bool),
#[from]
HoverOptions(HoverOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Id {
#[from]
Int(i32),
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum ImplementationProvider {
#[from]
Bool(bool),
#[from]
ImplementationOptions(ImplementationOptions),
#[from]
ImplementationRegistrationOptions(ImplementationRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum ImplementationRequestResponse {
#[from]
Definition(Definition),
#[from]
DefinitionLinkList(Vec<DefinitionLink>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum InlayHintProvider {
#[from]
Bool(bool),
#[from]
InlayHintOptions(InlayHintOptions),
#[from]
InlayHintRegistrationOptions(InlayHintRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum InlineCompletionProvider {
#[from]
Bool(bool),
#[from]
InlineCompletionOptions(InlineCompletionOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum InlineCompletionRequestResponse {
#[from]
InlineCompletionList(InlineCompletionList),
#[from]
InlineCompletionItemList(Vec<InlineCompletionItem>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum InlineValue {
#[from]
Text(InlineValueText),
#[from]
VariableLookup(InlineValueVariableLookup),
#[from]
EvaluatableExpression(InlineValueEvaluatableExpression),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum InlineValueProvider {
#[from]
Bool(bool),
#[from]
InlineValueOptions(InlineValueOptions),
#[from]
InlineValueRegistrationOptions(InlineValueRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum InsertText {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
StringValue(StringValue),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum Label {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
InlayHintLabelPartList(Vec<InlayHintLabelPart>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum LinkedEditingRangeProvider {
#[from]
Bool(bool),
#[from]
LinkedEditingRangeOptions(LinkedEditingRangeOptions),
#[from]
LinkedEditingRangeRegistrationOptions(LinkedEditingRangeRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum MarkedString {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
MarkedStringWithLanguage(MarkedStringWithLanguage),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum MonikerProvider {
#[from]
Bool(bool),
#[from]
MonikerOptions(MonikerOptions),
#[from]
MonikerRegistrationOptions(MonikerRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Notebook {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
NotebookDocumentFilter(NotebookDocumentFilter),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum NotebookDocumentFilter {
#[from]
NotebookType(NotebookDocumentFilterNotebookType),
#[from]
Scheme(NotebookDocumentFilterScheme),
#[from]
Pattern(NotebookDocumentFilterPattern),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum NotebookDocumentSync {
#[from]
Options(NotebookDocumentSyncOptions),
#[from]
RegistrationOptions(NotebookDocumentSyncRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum NotebookSelector {
#[from]
NotebookDocumentFilterWithNotebook(NotebookDocumentFilterWithNotebook),
#[from]
NotebookDocumentFilterWithCells(NotebookDocumentFilterWithCells),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum ParameterInformationLabel {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
Tuple((u32, u32)),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum PrepareRenameResult {
#[from]
Range(Range),
#[from]
PrepareRenamePlaceholder(PrepareRenamePlaceholder),
#[from]
PrepareRenameDefaultBehavior(PrepareRenameDefaultBehavior),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum ProgressToken {
#[from]
Int(i32),
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum ReferencesProvider {
#[from]
Bool(bool),
#[from]
ReferenceOptions(ReferenceOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum RelatedDocument {
#[from]
FullDocumentDiagnosticReport(FullDocumentDiagnosticReport),
#[from]
UnchangedDocumentDiagnosticReport(UnchangedDocumentDiagnosticReport),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum RenameProvider {
#[from]
Bool(bool),
#[from]
RenameOptions(RenameOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum RootPath {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[serde(rename = "null")]
#[from(())]
Null,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum Save {
#[from]
Bool(bool),
#[from]
SaveOptions(SaveOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Section {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
StringList(Vec<String>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum SelectionRangeProvider {
#[from]
Bool(bool),
#[from]
SelectionRangeOptions(SelectionRangeOptions),
#[from]
SelectionRangeRegistrationOptions(SelectionRangeRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum SemanticTokensDeltaRequestResponse {
#[from]
SemanticTokens(SemanticTokens),
#[from]
SemanticTokensDelta(SemanticTokensDelta),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum SemanticTokensOptionsRange {
#[from]
Bool(bool),
#[from]
Object(LspObject),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum SemanticTokensProvider {
#[from]
SemanticTokensOptions(SemanticTokensOptions),
#[from]
SemanticTokensRegistrationOptions(SemanticTokensRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum TextDocumentContent {
#[from]
Options(TextDocumentContentOptions),
#[from]
RegistrationOptions(TextDocumentContentRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum TextDocumentContentChangeEvent {
#[from]
TextDocumentContentChangePartial(TextDocumentContentChangePartial),
#[from]
TextDocumentContentChangeWholeDocument(TextDocumentContentChangeWholeDocument),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum TextDocumentFilter {
#[from]
Language(TextDocumentFilterLanguage),
#[from]
Scheme(TextDocumentFilterScheme),
#[from]
Pattern(TextDocumentFilterPattern),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum TextDocumentSync {
#[from]
Options(TextDocumentSyncOptions),
#[from]
Kind(TextDocumentSyncKind),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum Tooltip {
#[from(String, &str, Box<str>, Cow<'_, str>, char)]
String(String),
#[from]
MarkupContent(MarkupContent),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum TypeDefinitionProvider {
#[from]
Bool(bool),
#[from]
TypeDefinitionOptions(TypeDefinitionOptions),
#[from]
TypeDefinitionRegistrationOptions(TypeDefinitionRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum TypeDefinitionRequestResponse {
#[from]
Definition(Definition),
#[from]
DefinitionLinkList(Vec<DefinitionLink>),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum TypeHierarchyProvider {
#[from]
Bool(bool),
#[from]
TypeHierarchyOptions(TypeHierarchyOptions),
#[from]
TypeHierarchyRegistrationOptions(TypeHierarchyRegistrationOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum WorkspaceDocumentDiagnosticReport {
#[from]
WorkspaceFullDocumentDiagnosticReport(WorkspaceFullDocumentDiagnosticReport),
#[from]
WorkspaceUnchangedDocumentDiagnosticReport(
WorkspaceUnchangedDocumentDiagnosticReport,
),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum WorkspaceFolders {
#[from]
WorkspaceFolderList(Vec<WorkspaceFolder>),
#[serde(rename = "null")]
#[from(())]
Null,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash)]
#[serde(untagged)]
pub enum WorkspaceSymbolLocation {
#[from]
Location(Location),
#[from]
LocationUriOnly(LocationUriOnly),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq, Hash, Copy)]
#[serde(untagged)]
pub enum WorkspaceSymbolProvider {
#[from]
Bool(bool),
#[from]
WorkspaceSymbolOptions(WorkspaceSymbolOptions),
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, From, Eq)]
#[serde(untagged)]
pub enum WorkspaceSymbolRequestResponse {
#[from]
SymbolInformationList(Vec<SymbolInformation>),
#[from]
WorkspaceSymbolList(Vec<WorkspaceSymbol>),
}
#[derive(Debug)]
pub struct ImplementationRequest;
impl Request for ImplementationRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentImplementation;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = ImplementationParams;
type Result = Option<ImplementationRequestResponse>;
}
#[derive(Debug)]
pub struct TypeDefinitionRequest;
impl Request for TypeDefinitionRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentTypeDefinition;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = TypeDefinitionParams;
type Result = Option<TypeDefinitionRequestResponse>;
}
#[derive(Debug)]
pub struct WorkspaceFoldersRequest;
impl Request for WorkspaceFoldersRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceWorkspaceFolders;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ();
type Result = Option<Vec<WorkspaceFolder>>;
}
#[derive(Debug)]
pub struct ConfigurationRequest;
impl Request for ConfigurationRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceConfiguration;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ConfigurationParams;
type Result = Vec<LspAny>;
}
#[derive(Debug)]
pub struct DocumentColorRequest;
impl Request for DocumentColorRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentDocumentColor;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentColorParams;
type Result = Option<Vec<ColorInformation>>;
}
#[derive(Debug)]
pub struct ColorPresentationRequest;
impl Request for ColorPresentationRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentColorPresentation;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = ColorPresentationParams;
type Result = Option<Vec<ColorPresentation>>;
}
#[derive(Debug)]
pub struct FoldingRangeRequest;
impl Request for FoldingRangeRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentFoldingRange;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = FoldingRangeParams;
type Result = Option<Vec<FoldingRange>>;
}
#[derive(Debug)]
pub struct FoldingRangeRefreshRequest;
impl Request for FoldingRangeRefreshRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceFoldingRangeRefresh;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ();
type Result = ();
}
#[derive(Debug)]
pub struct DeclarationRequest;
impl Request for DeclarationRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentDeclaration;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DeclarationParams;
type Result = Option<DeclarationRequestResponse>;
}
#[derive(Debug)]
pub struct SelectionRangeRequest;
impl Request for SelectionRangeRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentSelectionRange;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = SelectionRangeParams;
type Result = Option<Vec<SelectionRange>>;
}
#[derive(Debug)]
pub struct WorkDoneProgressCreateRequest;
impl Request for WorkDoneProgressCreateRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WindowWorkDoneProgressCreate;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = WorkDoneProgressCreateParams;
type Result = ();
}
#[derive(Debug)]
pub struct CallHierarchyPrepareRequest;
impl Request for CallHierarchyPrepareRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentPrepareCallHierarchy;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CallHierarchyPrepareParams;
type Result = Option<Vec<CallHierarchyItem>>;
}
#[derive(Debug)]
pub struct CallHierarchyIncomingCallsRequest;
impl Request for CallHierarchyIncomingCallsRequest {
const METHOD: LspRequestMethods = LspRequestMethods::CallHierarchyIncomingCalls;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CallHierarchyIncomingCallsParams;
type Result = Option<Vec<CallHierarchyIncomingCall>>;
}
#[derive(Debug)]
pub struct CallHierarchyOutgoingCallsRequest;
impl Request for CallHierarchyOutgoingCallsRequest {
const METHOD: LspRequestMethods = LspRequestMethods::CallHierarchyOutgoingCalls;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CallHierarchyOutgoingCallsParams;
type Result = Option<Vec<CallHierarchyOutgoingCall>>;
}
#[derive(Debug)]
pub struct SemanticTokensRequest;
impl Request for SemanticTokensRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentSemanticTokensFull;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = SemanticTokensParams;
type Result = Option<SemanticTokens>;
}
#[derive(Debug)]
pub struct SemanticTokensDeltaRequest;
impl Request for SemanticTokensDeltaRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentSemanticTokensFullDelta;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = SemanticTokensDeltaParams;
type Result = Option<SemanticTokensDeltaRequestResponse>;
}
#[derive(Debug)]
pub struct SemanticTokensRangeRequest;
impl Request for SemanticTokensRangeRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentSemanticTokensRange;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = SemanticTokensRangeParams;
type Result = Option<SemanticTokens>;
}
#[derive(Debug)]
pub struct SemanticTokensRefreshRequest;
impl Request for SemanticTokensRefreshRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceSemanticTokensRefresh;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ();
type Result = ();
}
#[derive(Debug)]
pub struct ShowDocumentRequest;
impl Request for ShowDocumentRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WindowShowDocument;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ShowDocumentParams;
type Result = ShowDocumentResult;
}
#[derive(Debug)]
pub struct LinkedEditingRangeRequest;
impl Request for LinkedEditingRangeRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentLinkedEditingRange;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = LinkedEditingRangeParams;
type Result = Option<LinkedEditingRanges>;
}
#[derive(Debug)]
pub struct WillCreateFilesRequest;
impl Request for WillCreateFilesRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceWillCreateFiles;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CreateFilesParams;
type Result = Option<WorkspaceEdit>;
}
#[derive(Debug)]
pub struct WillRenameFilesRequest;
impl Request for WillRenameFilesRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceWillRenameFiles;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = RenameFilesParams;
type Result = Option<WorkspaceEdit>;
}
#[derive(Debug)]
pub struct WillDeleteFilesRequest;
impl Request for WillDeleteFilesRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceWillDeleteFiles;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DeleteFilesParams;
type Result = Option<WorkspaceEdit>;
}
#[derive(Debug)]
pub struct MonikerRequest;
impl Request for MonikerRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentMoniker;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = MonikerParams;
type Result = Option<Vec<Moniker>>;
}
#[derive(Debug)]
pub struct TypeHierarchyPrepareRequest;
impl Request for TypeHierarchyPrepareRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentPrepareTypeHierarchy;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = TypeHierarchyPrepareParams;
type Result = Option<Vec<TypeHierarchyItem>>;
}
#[derive(Debug)]
pub struct TypeHierarchySupertypesRequest;
impl Request for TypeHierarchySupertypesRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TypeHierarchySupertypes;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = TypeHierarchySupertypesParams;
type Result = Option<Vec<TypeHierarchyItem>>;
}
#[derive(Debug)]
pub struct TypeHierarchySubtypesRequest;
impl Request for TypeHierarchySubtypesRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TypeHierarchySubtypes;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = TypeHierarchySubtypesParams;
type Result = Option<Vec<TypeHierarchyItem>>;
}
#[derive(Debug)]
pub struct InlineValueRequest;
impl Request for InlineValueRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentInlineValue;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = InlineValueParams;
type Result = Option<Vec<InlineValue>>;
}
#[derive(Debug)]
pub struct InlineValueRefreshRequest;
impl Request for InlineValueRefreshRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceInlineValueRefresh;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ();
type Result = ();
}
#[derive(Debug)]
pub struct InlayHintRequest;
impl Request for InlayHintRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentInlayHint;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = InlayHintParams;
type Result = Option<Vec<InlayHint>>;
}
#[derive(Debug)]
pub struct InlayHintResolveRequest;
impl Request for InlayHintResolveRequest {
const METHOD: LspRequestMethods = LspRequestMethods::InlayHintResolve;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = InlayHint;
type Result = InlayHint;
}
#[derive(Debug)]
pub struct InlayHintRefreshRequest;
impl Request for InlayHintRefreshRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceInlayHintRefresh;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ();
type Result = ();
}
#[derive(Debug)]
pub struct DocumentDiagnosticRequest;
impl Request for DocumentDiagnosticRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentDiagnostic;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentDiagnosticParams;
type Result = DocumentDiagnosticReport;
}
#[derive(Debug)]
pub struct WorkspaceDiagnosticRequest;
impl Request for WorkspaceDiagnosticRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceDiagnostic;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = WorkspaceDiagnosticParams;
type Result = WorkspaceDiagnosticReport;
}
#[derive(Debug)]
pub struct DiagnosticRefreshRequest;
impl Request for DiagnosticRefreshRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceDiagnosticRefresh;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ();
type Result = ();
}
#[derive(Debug)]
pub struct InlineCompletionRequest;
impl Request for InlineCompletionRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentInlineCompletion;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = InlineCompletionParams;
type Result = Option<InlineCompletionRequestResponse>;
}
#[derive(Debug)]
pub struct TextDocumentContentRequest;
impl Request for TextDocumentContentRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceTextDocumentContent;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = TextDocumentContentParams;
type Result = TextDocumentContentResult;
}
#[derive(Debug)]
pub struct TextDocumentContentRefreshRequest;
impl Request for TextDocumentContentRefreshRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceTextDocumentContentRefresh;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = TextDocumentContentRefreshParams;
type Result = ();
}
#[derive(Debug)]
pub struct RegistrationRequest;
impl Request for RegistrationRequest {
const METHOD: LspRequestMethods = LspRequestMethods::ClientRegisterCapability;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = RegistrationParams;
type Result = ();
}
#[derive(Debug)]
pub struct UnregistrationRequest;
impl Request for UnregistrationRequest {
const METHOD: LspRequestMethods = LspRequestMethods::ClientUnregisterCapability;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = UnregistrationParams;
type Result = ();
}
#[derive(Debug)]
pub struct InitializeRequest;
impl Request for InitializeRequest {
const METHOD: LspRequestMethods = LspRequestMethods::Initialize;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = InitializeParams;
type Result = InitializeResult;
}
#[derive(Debug)]
pub struct ShutdownRequest;
impl Request for ShutdownRequest {
const METHOD: LspRequestMethods = LspRequestMethods::Shutdown;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = ();
type Result = ();
}
#[derive(Debug)]
pub struct ShowMessageRequest;
impl Request for ShowMessageRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WindowShowMessageRequest;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ShowMessageRequestParams;
type Result = Option<MessageActionItem>;
}
#[derive(Debug)]
pub struct WillSaveTextDocumentWaitUntilRequest;
impl Request for WillSaveTextDocumentWaitUntilRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentWillSaveWaitUntil;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = WillSaveTextDocumentParams;
type Result = Option<Vec<TextEdit>>;
}
#[derive(Debug)]
pub struct CompletionRequest;
impl Request for CompletionRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentCompletion;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CompletionParams;
type Result = Option<CompletionRequestResponse>;
}
#[derive(Debug)]
pub struct CompletionResolveRequest;
impl Request for CompletionResolveRequest {
const METHOD: LspRequestMethods = LspRequestMethods::CompletionItemResolve;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CompletionItem;
type Result = CompletionItem;
}
#[derive(Debug)]
pub struct HoverRequest;
impl Request for HoverRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentHover;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = HoverParams;
type Result = Option<Hover>;
}
#[derive(Debug)]
pub struct SignatureHelpRequest;
impl Request for SignatureHelpRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentSignatureHelp;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = SignatureHelpParams;
type Result = Option<SignatureHelp>;
}
#[derive(Debug)]
pub struct DefinitionRequest;
impl Request for DefinitionRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentDefinition;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DefinitionParams;
type Result = Option<DefinitionRequestResponse>;
}
#[derive(Debug)]
pub struct ReferencesRequest;
impl Request for ReferencesRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentReferences;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = ReferenceParams;
type Result = Option<Vec<Location>>;
}
#[derive(Debug)]
pub struct DocumentHighlightRequest;
impl Request for DocumentHighlightRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentDocumentHighlight;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentHighlightParams;
type Result = Option<Vec<DocumentHighlight>>;
}
#[derive(Debug)]
pub struct DocumentSymbolRequest;
impl Request for DocumentSymbolRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentDocumentSymbol;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentSymbolParams;
type Result = Option<DocumentSymbolRequestResponse>;
}
#[derive(Debug)]
pub struct CodeActionRequest;
impl Request for CodeActionRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentCodeAction;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CodeActionParams;
type Result = Option<Vec<CodeActionRequestResponse>>;
}
#[derive(Debug)]
pub struct CodeActionResolveRequest;
impl Request for CodeActionResolveRequest {
const METHOD: LspRequestMethods = LspRequestMethods::CodeActionResolve;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CodeAction;
type Result = CodeAction;
}
#[derive(Debug)]
pub struct WorkspaceSymbolRequest;
impl Request for WorkspaceSymbolRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceSymbol;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = WorkspaceSymbolParams;
type Result = Option<WorkspaceSymbolRequestResponse>;
}
#[derive(Debug)]
pub struct WorkspaceSymbolResolveRequest;
impl Request for WorkspaceSymbolResolveRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceSymbolResolve;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = WorkspaceSymbol;
type Result = WorkspaceSymbol;
}
#[derive(Debug)]
pub struct CodeLensRequest;
impl Request for CodeLensRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentCodeLens;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CodeLensParams;
type Result = Option<Vec<CodeLens>>;
}
#[derive(Debug)]
pub struct CodeLensResolveRequest;
impl Request for CodeLensResolveRequest {
const METHOD: LspRequestMethods = LspRequestMethods::CodeLensResolve;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CodeLens;
type Result = CodeLens;
}
#[derive(Debug)]
pub struct CodeLensRefreshRequest;
impl Request for CodeLensRefreshRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceCodeLensRefresh;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ();
type Result = ();
}
#[derive(Debug)]
pub struct DocumentLinkRequest;
impl Request for DocumentLinkRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentDocumentLink;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentLinkParams;
type Result = Option<Vec<DocumentLink>>;
}
#[derive(Debug)]
pub struct DocumentLinkResolveRequest;
impl Request for DocumentLinkResolveRequest {
const METHOD: LspRequestMethods = LspRequestMethods::DocumentLinkResolve;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentLink;
type Result = DocumentLink;
}
#[derive(Debug)]
pub struct DocumentFormattingRequest;
impl Request for DocumentFormattingRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentFormatting;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentFormattingParams;
type Result = Option<Vec<TextEdit>>;
}
#[derive(Debug)]
pub struct DocumentRangeFormattingRequest;
impl Request for DocumentRangeFormattingRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentRangeFormatting;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentRangeFormattingParams;
type Result = Option<Vec<TextEdit>>;
}
#[derive(Debug)]
pub struct DocumentRangesFormattingRequest;
impl Request for DocumentRangesFormattingRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentRangesFormatting;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentRangesFormattingParams;
type Result = Option<Vec<TextEdit>>;
}
#[derive(Debug)]
pub struct DocumentOnTypeFormattingRequest;
impl Request for DocumentOnTypeFormattingRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentOnTypeFormatting;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DocumentOnTypeFormattingParams;
type Result = Option<Vec<TextEdit>>;
}
#[derive(Debug)]
pub struct RenameRequest;
impl Request for RenameRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentRename;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = RenameParams;
type Result = Option<WorkspaceEdit>;
}
#[derive(Debug)]
pub struct PrepareRenameRequest;
impl Request for PrepareRenameRequest {
const METHOD: LspRequestMethods = LspRequestMethods::TextDocumentPrepareRename;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = PrepareRenameParams;
type Result = Option<PrepareRenameResult>;
}
#[derive(Debug)]
pub struct ExecuteCommandRequest;
impl Request for ExecuteCommandRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceExecuteCommand;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = ExecuteCommandParams;
type Result = Option<LspAny>;
}
#[derive(Debug)]
pub struct ApplyWorkspaceEditRequest;
impl Request for ApplyWorkspaceEditRequest {
const METHOD: LspRequestMethods = LspRequestMethods::WorkspaceApplyEdit;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ApplyWorkspaceEditParams;
type Result = ApplyWorkspaceEditResult;
}
#[derive(Debug)]
pub struct DidChangeWorkspaceFoldersNotification;
impl Notification for DidChangeWorkspaceFoldersNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WorkspaceDidChangeWorkspaceFolders;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidChangeWorkspaceFoldersParams;
}
#[derive(Debug)]
pub struct WorkDoneProgressCancelNotification;
impl Notification for WorkDoneProgressCancelNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WindowWorkDoneProgressCancel;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = WorkDoneProgressCancelParams;
}
#[derive(Debug)]
pub struct DidCreateFilesNotification;
impl Notification for DidCreateFilesNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WorkspaceDidCreateFiles;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = CreateFilesParams;
}
#[derive(Debug)]
pub struct DidRenameFilesNotification;
impl Notification for DidRenameFilesNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WorkspaceDidRenameFiles;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = RenameFilesParams;
}
#[derive(Debug)]
pub struct DidDeleteFilesNotification;
impl Notification for DidDeleteFilesNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WorkspaceDidDeleteFiles;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DeleteFilesParams;
}
#[derive(Debug)]
pub struct DidOpenNotebookDocumentNotification;
impl Notification for DidOpenNotebookDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::NotebookDocumentDidOpen;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidOpenNotebookDocumentParams;
}
#[derive(Debug)]
pub struct DidChangeNotebookDocumentNotification;
impl Notification for DidChangeNotebookDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::NotebookDocumentDidChange;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidChangeNotebookDocumentParams;
}
#[derive(Debug)]
pub struct DidSaveNotebookDocumentNotification;
impl Notification for DidSaveNotebookDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::NotebookDocumentDidSave;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidSaveNotebookDocumentParams;
}
#[derive(Debug)]
pub struct DidCloseNotebookDocumentNotification;
impl Notification for DidCloseNotebookDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::NotebookDocumentDidClose;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidCloseNotebookDocumentParams;
}
#[derive(Debug)]
pub struct InitializedNotification;
impl Notification for InitializedNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::Initialized;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = InitializedParams;
}
#[derive(Debug)]
pub struct ExitNotification;
impl Notification for ExitNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::Exit;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = ();
}
#[derive(Debug)]
pub struct DidChangeConfigurationNotification;
impl Notification for DidChangeConfigurationNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WorkspaceDidChangeConfiguration;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidChangeConfigurationParams;
}
#[derive(Debug)]
pub struct ShowMessageNotification;
impl Notification for ShowMessageNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WindowShowMessage;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = ShowMessageParams;
}
#[derive(Debug)]
pub struct LogMessageNotification;
impl Notification for LogMessageNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WindowLogMessage;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = LogMessageParams;
}
#[derive(Debug)]
pub struct TelemetryEventNotification;
impl Notification for TelemetryEventNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::TelemetryEvent;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = LspAny;
}
#[derive(Debug)]
pub struct DidOpenTextDocumentNotification;
impl Notification for DidOpenTextDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::TextDocumentDidOpen;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidOpenTextDocumentParams;
}
#[derive(Debug)]
pub struct DidChangeTextDocumentNotification;
impl Notification for DidChangeTextDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::TextDocumentDidChange;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidChangeTextDocumentParams;
}
#[derive(Debug)]
pub struct DidCloseTextDocumentNotification;
impl Notification for DidCloseTextDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::TextDocumentDidClose;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidCloseTextDocumentParams;
}
#[derive(Debug)]
pub struct DidSaveTextDocumentNotification;
impl Notification for DidSaveTextDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::TextDocumentDidSave;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidSaveTextDocumentParams;
}
#[derive(Debug)]
pub struct WillSaveTextDocumentNotification;
impl Notification for WillSaveTextDocumentNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::TextDocumentWillSave;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = WillSaveTextDocumentParams;
}
#[derive(Debug)]
pub struct DidChangeWatchedFilesNotification;
impl Notification for DidChangeWatchedFilesNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::WorkspaceDidChangeWatchedFiles;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = DidChangeWatchedFilesParams;
}
#[derive(Debug)]
pub struct PublishDiagnosticsNotification;
impl Notification for PublishDiagnosticsNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::TextDocumentPublishDiagnostics;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = PublishDiagnosticsParams;
}
#[derive(Debug)]
pub struct SetTraceNotification;
impl Notification for SetTraceNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::SetTrace;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer;
type Params = SetTraceParams;
}
#[derive(Debug)]
pub struct LogTraceNotification;
impl Notification for LogTraceNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::LogTrace;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ServerToClient;
type Params = LogTraceParams;
}
#[derive(Debug)]
pub struct CancelNotification;
impl Notification for CancelNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::CancelRequest;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::Both;
type Params = CancelParams;
}
#[derive(Debug)]
pub struct ProgressNotification;
impl Notification for ProgressNotification {
const METHOD: LspNotificationMethods = LspNotificationMethods::Progress;
const MESSAGE_DIRECTION: MessageDirection = MessageDirection::Both;
type Params = ProgressParams;
}