diff options
Diffstat (limited to 'vendor/lsp-types/src/document_highlight.rs')
-rw-r--r-- | vendor/lsp-types/src/document_highlight.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/vendor/lsp-types/src/document_highlight.rs b/vendor/lsp-types/src/document_highlight.rs new file mode 100644 index 000000000..9a97c104b --- /dev/null +++ b/vendor/lsp-types/src/document_highlight.rs @@ -0,0 +1,51 @@ +use serde::{Deserialize, Serialize}; + +use crate::{ + DynamicRegistrationClientCapabilities, PartialResultParams, Range, TextDocumentPositionParams, + WorkDoneProgressParams, +}; + +pub type DocumentHighlightClientCapabilities = DynamicRegistrationClientCapabilities; + +#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct DocumentHighlightParams { + #[serde(flatten)] + pub text_document_position_params: TextDocumentPositionParams, + + #[serde(flatten)] + pub work_done_progress_params: WorkDoneProgressParams, + + #[serde(flatten)] + pub partial_result_params: PartialResultParams, +} + +/// A document highlight is a range inside a text document which deserves +/// special attention. Usually a document highlight is visualized by changing +/// the background color of its range. +#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)] +pub struct DocumentHighlight { + /// The range this highlight applies to. + pub range: Range, + + /// The highlight kind, default is DocumentHighlightKind.Text. + #[serde(skip_serializing_if = "Option::is_none")] + pub kind: Option<DocumentHighlightKind>, +} + +/// A document highlight kind. +#[derive(Eq, PartialEq, Copy, Clone, Deserialize, Serialize)] +#[serde(transparent)] +pub struct DocumentHighlightKind(i32); +lsp_enum! { +impl DocumentHighlightKind { + /// A textual occurrance. + pub const TEXT: DocumentHighlightKind = DocumentHighlightKind(1); + + /// Read-access of a symbol, like reading a variable. + pub const READ: DocumentHighlightKind = DocumentHighlightKind(2); + + /// Write-access of a symbol, like writing to a variable. + pub const WRITE: DocumentHighlightKind = DocumentHighlightKind(3); +} +} |