1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use crate::{
5 Command, DynamicRegistrationClientCapabilities, PartialResultParams, Range,
6 TextDocumentIdentifier, WorkDoneProgressParams,
7};
8
9pub type CodeLensClientCapabilities = DynamicRegistrationClientCapabilities;
10
11#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize, Copy)]
13#[serde(rename_all = "camelCase")]
14pub struct CodeLensOptions {
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub resolve_provider: Option<bool>,
18}
19
20#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
21#[serde(rename_all = "camelCase")]
22pub struct CodeLensParams {
23 pub text_document: TextDocumentIdentifier,
25
26 #[serde(flatten)]
27 pub work_done_progress_params: WorkDoneProgressParams,
28
29 #[serde(flatten)]
30 pub partial_result_params: PartialResultParams,
31}
32
33#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
39#[serde(rename_all = "camelCase")]
40pub struct CodeLens {
41 pub range: Range,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
46 pub command: Option<Command>,
47
48 #[serde(skip_serializing_if = "Option::is_none")]
51 pub data: Option<Value>,
52}
53
54#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
55#[serde(rename_all = "camelCase")]
56pub struct CodeLensWorkspaceClientCapabilities {
57 #[serde(skip_serializing_if = "Option::is_none")]
65 pub refresh_support: Option<bool>,
66}