summaryrefslogtreecommitdiffstats
path: root/vendor/lsp-types/src/type_hierarchy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/lsp-types/src/type_hierarchy.rs')
-rw-r--r--vendor/lsp-types/src/type_hierarchy.rs90
1 files changed, 90 insertions, 0 deletions
diff --git a/vendor/lsp-types/src/type_hierarchy.rs b/vendor/lsp-types/src/type_hierarchy.rs
new file mode 100644
index 000000000..6cc9812ba
--- /dev/null
+++ b/vendor/lsp-types/src/type_hierarchy.rs
@@ -0,0 +1,90 @@
+use crate::{
+ DynamicRegistrationClientCapabilities, LSPAny, PartialResultParams, Range,
+ StaticRegistrationOptions, SymbolKind, SymbolTag, TextDocumentPositionParams,
+ TextDocumentRegistrationOptions, Url, WorkDoneProgressOptions, WorkDoneProgressParams,
+};
+
+use serde::{Deserialize, Serialize};
+
+pub type TypeHierarchyClientCapabilities = DynamicRegistrationClientCapabilities;
+
+#[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)]
+pub struct TypeHierarchyOptions {
+ #[serde(flatten)]
+ pub work_done_progress_options: WorkDoneProgressOptions,
+}
+
+#[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)]
+pub struct TypeHierarchyRegistrationOptions {
+ #[serde(flatten)]
+ pub text_document_registration_options: TextDocumentRegistrationOptions,
+ #[serde(flatten)]
+ pub type_hierarchy_options: TypeHierarchyOptions,
+ #[serde(flatten)]
+ pub static_registration_options: StaticRegistrationOptions,
+}
+
+#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
+pub struct TypeHierarchyPrepareParams {
+ #[serde(flatten)]
+ pub text_document_position_params: TextDocumentPositionParams,
+ #[serde(flatten)]
+ pub work_done_progress_params: WorkDoneProgressParams,
+}
+
+#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
+pub struct TypeHierarchySupertypesParams {
+ pub item: TypeHierarchyItem,
+
+ #[serde(flatten)]
+ pub work_done_progress_params: WorkDoneProgressParams,
+ #[serde(flatten)]
+ pub partial_result_params: PartialResultParams,
+}
+
+#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
+pub struct TypeHierarchySubtypesParams {
+ pub item: TypeHierarchyItem,
+
+ #[serde(flatten)]
+ pub work_done_progress_params: WorkDoneProgressParams,
+ #[serde(flatten)]
+ pub partial_result_params: PartialResultParams,
+}
+
+#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
+#[serde(rename_all = "camelCase")]
+pub struct TypeHierarchyItem {
+ /// The name of this item.
+ pub name: String,
+
+ /// The kind of this item.
+ pub kind: SymbolKind,
+
+ /// Tags for this item.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub tags: Option<SymbolTag>,
+
+ /// More detail for this item, e.g. the signature of a function.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub detail: Option<String>,
+
+ /// The resource identifier of this item.
+ pub uri: Url,
+
+ /// The range enclosing this symbol not including leading/trailing whitespace
+ /// but everything else, e.g. comments and code.
+ pub range: Range,
+
+ /// The range that should be selected and revealed when this symbol is being
+ /// picked, e.g. the name of a function. Must be contained by the
+ /// [`range`](#TypeHierarchyItem.range).
+ pub selection_range: Range,
+
+ /// A data entry field that is preserved between a type hierarchy prepare and
+ /// supertypes or subtypes requests. It could also be used to identify the
+ /// type hierarchy in the server, helping improve the performance on
+ /// resolving supertypes and subtypes.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub data: Option<LSPAny>,
+}