React on message-less LSP requests properly

Co-Authored-By: Julia Risley <julia@zed.dev>
This commit is contained in:
Kirill Bulatov 2023-06-02 18:23:37 +03:00
parent 7a268b1cf6
commit f83cfda9bc
4 changed files with 5 additions and 12 deletions

View file

@ -1339,8 +1339,7 @@ impl Editor {
})); }));
project_subscriptions.push(cx.subscribe(project, |editor, _, event, cx| { project_subscriptions.push(cx.subscribe(project, |editor, _, event, cx| {
match event { match event {
project::Event::LanguageServerReady(_) => { project::Event::ReloadInlayHints => {
dbg!("@@@@@@@@@@@@@ ReceiveD event");
editor.update_inlay_hints(cx); editor.update_inlay_hints(cx);
} }
_ => {} _ => {}

View file

@ -1821,7 +1821,6 @@ impl LineWithInvisibles {
// TODO kb bad: syscalls + cloning happen very frequently, check the timestamp first // TODO kb bad: syscalls + cloning happen very frequently, check the timestamp first
let new_hints = editor.inlay_hints.read(); let new_hints = editor.inlay_hints.read();
dbg!(new_hints.last());
self.draw_invisibles( self.draw_invisibles(
&selection_ranges, &selection_ranges,

View file

@ -615,6 +615,7 @@ impl LanguageServer {
}) })
.detach(); .detach();
} }
Err(error) => { Err(error) => {
log::error!( log::error!(
"error deserializing {} request: {:?}, message: {:?}", "error deserializing {} request: {:?}, message: {:?}",

View file

@ -254,7 +254,6 @@ pub enum Event {
LanguageServerAdded(LanguageServerId), LanguageServerAdded(LanguageServerId),
LanguageServerRemoved(LanguageServerId), LanguageServerRemoved(LanguageServerId),
LanguageServerLog(LanguageServerId, String), LanguageServerLog(LanguageServerId, String),
LanguageServerReady(LanguageServerId),
Notification(String), Notification(String),
ActiveEntryChanged(Option<ProjectEntryId>), ActiveEntryChanged(Option<ProjectEntryId>),
WorktreeAdded, WorktreeAdded,
@ -278,6 +277,7 @@ pub enum Event {
new_peer_id: proto::PeerId, new_peer_id: proto::PeerId,
}, },
CollaboratorLeft(proto::PeerId), CollaboratorLeft(proto::PeerId),
ReloadInlayHints,
} }
pub enum LanguageServerState { pub enum LanguageServerState {
@ -2813,19 +2813,13 @@ impl Project {
language_server language_server
.on_request::<lsp::request::InlayHintRefreshRequest, _, _>({ .on_request::<lsp::request::InlayHintRefreshRequest, _, _>({
dbg!("!!!!!!!!!!!!!!");
let this = this.downgrade(); let this = this.downgrade();
move |params, mut cx| async move { move |(), mut cx| async move {
// TODO kb does not get called now, why?
dbg!("#########################");
let this = this let this = this
.upgrade(&cx) .upgrade(&cx)
.ok_or_else(|| anyhow!("project dropped"))?; .ok_or_else(|| anyhow!("project dropped"))?;
dbg!(params);
this.update(&mut cx, |_, cx| { this.update(&mut cx, |_, cx| {
dbg!("@@@@@@@@@@@@@ SENT event"); cx.emit(Event::ReloadInlayHints);
cx.emit(Event::LanguageServerReady(server_id));
}); });
Ok(()) Ok(())
} }