Hide inlay hints toggle if they are not supported by the current editor

This commit is contained in:
Kirill Bulatov 2023-09-26 19:20:33 +03:00
parent e9e558d8c8
commit 7e2cef98a7
2 changed files with 53 additions and 22 deletions

View file

@ -8588,6 +8588,29 @@ impl Editor {
self.handle_input(text, cx);
}
pub fn supports_inlay_hints(&self, cx: &AppContext) -> bool {
let Some(project) = self.project.as_ref() else {
return false;
};
let project = project.read(cx);
let mut supports = false;
self.buffer().read(cx).for_each_buffer(|buffer| {
if !supports {
supports = project
.language_servers_for_buffer(buffer.read(cx), cx)
.any(
|(_, server)| match server.capabilities().inlay_hint_provider {
Some(lsp::OneOf::Left(enabled)) => enabled,
Some(lsp::OneOf::Right(_)) => true,
None => false,
},
)
}
});
supports
}
}
fn inlay_hint_settings(