summaryrefslogtreecommitdiffstats
path: root/vendor/lsp-types/src/document_highlight.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /vendor/lsp-types/src/document_highlight.rs
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/lsp-types/src/document_highlight.rs')
-rw-r--r--vendor/lsp-types/src/document_highlight.rs51
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);
+}
+}