[ty] Short-circuit inlayhints request if disabled in settings (#19963)

This commit is contained in:
Micha Reiser 2025-08-18 12:35:40 +02:00 committed by GitHub
parent 4ac2b2c222
commit 67529edad6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 4 deletions

View file

@ -85,6 +85,13 @@ pub struct InlayHintSettings {
/// foo("x="1) /// foo("x="1)
/// ``` /// ```
pub call_argument_names: bool, pub call_argument_names: bool,
// Add any new setting that enables additional inlays to `any_enabled`.
}
impl InlayHintSettings {
pub fn any_enabled(&self) -> bool {
self.variable_types || self.call_argument_names
}
} }
impl Default for InlayHintSettings { impl Default for InlayHintSettings {

View file

@ -29,9 +29,9 @@ impl BackgroundDocumentRequestHandler for InlayHintRequestHandler {
_client: &Client, _client: &Client,
params: InlayHintParams, params: InlayHintParams,
) -> crate::server::Result<Option<Vec<lsp_types::InlayHint>>> { ) -> crate::server::Result<Option<Vec<lsp_types::InlayHint>>> {
if snapshot let workspace_settings = snapshot.workspace_settings();
.workspace_settings() if workspace_settings.is_language_services_disabled()
.is_language_services_disabled() || !workspace_settings.inlay_hints().any_enabled()
{ {
return Ok(None); return Ok(None);
} }
@ -47,7 +47,7 @@ impl BackgroundDocumentRequestHandler for InlayHintRequestHandler {
.range .range
.to_text_range(&source, &index, snapshot.encoding()); .to_text_range(&source, &index, snapshot.encoding());
let inlay_hints = inlay_hints(db, file, range, snapshot.workspace_settings().inlay_hints()); let inlay_hints = inlay_hints(db, file, range, workspace_settings.inlay_hints());
let inlay_hints = inlay_hints let inlay_hints = inlay_hints
.into_iter() .into_iter()