Skip to content

Commit 19e1c14

Browse files
comment
1 parent 892c44a commit 19e1c14

6 files changed

Lines changed: 649 additions & 493 deletions

File tree

‎pyrefly/lib/lsp/non_wasm/server.rs‎

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
mod event_loop;
98
mod code_lens;
9+
mod event_loop;
1010

1111
use std::cmp::min;
1212
use std::collections::HashMap;
@@ -53,6 +53,7 @@ use lsp_types::CodeActionResponse;
5353
use lsp_types::CodeActionTriggerKind;
5454
use lsp_types::CodeLensOptions;
5555
use lsp_types::CodeLensRequest;
56+
use lsp_types::CodeLensResolveRequest;
5657
use lsp_types::CompletionItem;
5758
use lsp_types::CompletionList;
5859
use lsp_types::CompletionOptions;
@@ -1672,7 +1673,7 @@ pub fn capabilities(
16721673
..Default::default()
16731674
})),
16741675
code_lens_provider: Some(CodeLensOptions {
1675-
resolve_provider: Some(false),
1676+
resolve_provider: Some(true),
16761677
work_done_progress_options: Default::default(),
16771678
}),
16781679
completion_provider: Some(CompletionOptions {
@@ -2373,6 +2374,7 @@ impl Server {
23732374
DefinitionRequest::METHOD.as_str(),
23742375
ProvideType::METHOD.as_str(),
23752376
TypeErrorDisplayStatusRequest::METHOD.as_str(),
2377+
CodeLensResolveRequest::METHOD.as_str(),
23762378
];
23772379

23782380
let in_cancelled_requests = canceled_requests.remove(&x.id);
@@ -2771,15 +2773,29 @@ impl Server {
27712773
)
27722774
{
27732775
self.set_file_stats(params.text_document.uri.clone(), telemetry_event);
2774-
if let Err(reason) = self.code_lens(
2776+
let response = match self.code_lens(&transaction, params) {
2777+
Ok(response) => response,
2778+
Err(reason) => {
2779+
telemetry_event.set_empty_response_reason(reason);
2780+
None
2781+
}
2782+
};
2783+
self.send_response(new_response(x.id, Ok(response)));
2784+
}
2785+
} else if let Some(params) = as_request::<CodeLensResolveRequest>(&x) {
2786+
if let Some(params) = self
2787+
.extract_request_params_or_send_err_response::<CodeLensResolveRequest>(
2788+
params, &x.id,
2789+
)
2790+
&& let Err(reason) = self.resolve_code_lens(
27752791
x.id.clone(),
27762792
&transaction,
2777-
params,
2793+
&params,
27782794
telemetry_event.activity_key.clone(),
2779-
) {
2780-
self.send_response(new_response(x.id, Ok(None::<()>)));
2781-
telemetry_event.set_empty_response_reason(reason);
2782-
}
2795+
)
2796+
{
2797+
telemetry_event.set_empty_response_reason(reason);
2798+
self.send_response(new_response(x.id, Ok(params)));
27832799
}
27842800
} else if let Some(params) = as_request::<WorkspaceSymbolRequest>(&x) {
27852801
if let Some(params) = self

0 commit comments

Comments
 (0)