History

Resolve proto hints with empty resolve data (#19274)

Fixed ssh remoting not showing a lot of hints Release Notes: - N/A

Kirill Bulatov committed 2 years ago

Commit 02f63e41 parent 3dcc6382 files · +10 −10Browse files

Unified · Split

2 files
  1. crates/project/src/lsp_command.rs +9 −9
  2. crates/proto/proto/zed.proto +1 −1
crates/project/src/lsp_command.rs+9−9
@@ -2439,15 +2439,13 @@ impl InlayHints { · 2438 unmodified lines
2439 ResolveState::Resolved => (0, None),2439 ResolveState::Resolved => (0, None),
2440 ResolveState::CanResolve(server_id, resolve_data) => (2440 ResolveState::CanResolve(server_id, resolve_data) => (
2441 1,2441 1,
2442 resolve_data2442 Some(proto::resolve_state::LspResolveState {
2443 .map(|json_data| {2443 server_id: server_id.0 as u64,
2444 value: resolve_data.map(|json_data| {
2444 serde_json::to_string(&json_data)2445 serde_json::to_string(&json_data)
2445 .expect("failed to serialize resolve json data")2446 .expect("failed to serialize resolve json data")
2446 })
2447 .map(|value| proto::resolve_state::LspResolveState {
2448 server_id: server_id.0 as u64,
2449 value,
2450 }),2447 }),
2448 }),
2451 ),2449 ),
2452 ResolveState::Resolving => (2, None),2450 ResolveState::Resolving => (2, None),
2453 };2451 };
@@ -2515,9 +2513,11 @@ impl InlayHints { · 61 unmodified lines
2515 let resolve_state_data = resolve_state2513 let resolve_state_data = resolve_state
2516 .lsp_resolve_state.as_ref()2514 .lsp_resolve_state.as_ref()
2517 .map(|lsp_resolve_state| {2515 .map(|lsp_resolve_state| {
2518 serde_json::from_str::<Option<lsp::LSPAny>>(&lsp_resolve_state.value)2516 let value = lsp_resolve_state.value.as_deref().map(|value| {
2519 .with_context(|| format!("incorrect proto inlay hint message: non-json resolve state {lsp_resolve_state:?}"))2517 serde_json::from_str::<Option<lsp::LSPAny>>(value)
2520 .map(|state| (LanguageServerId(lsp_resolve_state.server_id as usize), state))2518 .with_context(|| format!("incorrect proto inlay hint message: non-json resolve state {lsp_resolve_state:?}"))
2519 }).transpose()?.flatten();
2520 anyhow::Ok((LanguageServerId(lsp_resolve_state.server_id as usize), value))
2521 })2521 })
2522 .transpose()?;2522 .transpose()?;
2523 let resolve_state = match resolve_state.state {2523 let resolve_state = match resolve_state.state {
crates/proto/proto/zed.proto+1−1
@@ -1207,7 +1207,7 @@ message ResolveState { · 1206 unmodified lines
1207 }1207 }
1208 1208
1209 message LspResolveState {1209 message LspResolveState {
1210 string value = 1;1210 optional string value = 1;
1211 uint64 server_id = 2;1211 uint64 server_id = 2;
1212 }1212 }
1213}1213}