use serde::{Deserialize, Serialize}; use crate::{ DynamicRegistrationClientCapabilities, Range, StaticRegistrationOptions, TextDocumentPositionParams, TextDocumentRegistrationOptions, WorkDoneProgressOptions, WorkDoneProgressParams, }; pub type LinkedEditingRangeClientCapabilities = DynamicRegistrationClientCapabilities; #[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct LinkedEditingRangeOptions { #[serde(flatten)] pub work_done_progress_options: WorkDoneProgressOptions, } #[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct LinkedEditingRangeRegistrationOptions { #[serde(flatten)] pub text_document_registration_options: TextDocumentRegistrationOptions, #[serde(flatten)] pub linked_editing_range_options: LinkedEditingRangeOptions, #[serde(flatten)] pub static_registration_options: StaticRegistrationOptions, } #[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)] #[serde(untagged)] pub enum LinkedEditingRangeServerCapabilities { Simple(bool), Options(LinkedEditingRangeOptions), RegistrationOptions(LinkedEditingRangeRegistrationOptions), } #[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct LinkedEditingRangeParams { #[serde(flatten)] pub text_document_position_params: TextDocumentPositionParams, #[serde(flatten)] pub work_done_progress_params: WorkDoneProgressParams, } #[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct LinkedEditingRanges { /// A list of ranges that can be renamed together. The ranges must have /// identical length and contain identical text content. The ranges cannot overlap. pub ranges: Vec, /// An optional word pattern (regular expression) that describes valid contents for /// the given ranges. If no pattern is provided, the client configuration's word /// pattern will be used. #[serde(skip_serializing_if = "Option::is_none")] pub word_pattern: Option, }