diff --git a/crates/ty_ide/src/inlay_hints.rs b/crates/ty_ide/src/inlay_hints.rs index f9f109aa1d..1004f5b4d5 100644 --- a/crates/ty_ide/src/inlay_hints.rs +++ b/crates/ty_ide/src/inlay_hints.rs @@ -85,6 +85,13 @@ pub struct InlayHintSettings { /// foo("x="1) /// ``` 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 { diff --git a/crates/ty_server/src/server/api/requests/inlay_hints.rs b/crates/ty_server/src/server/api/requests/inlay_hints.rs index 2d903d1a88..3c5e44d264 100644 --- a/crates/ty_server/src/server/api/requests/inlay_hints.rs +++ b/crates/ty_server/src/server/api/requests/inlay_hints.rs @@ -29,9 +29,9 @@ impl BackgroundDocumentRequestHandler for InlayHintRequestHandler { _client: &Client, params: InlayHintParams, ) -> crate::server::Result>> { - if snapshot - .workspace_settings() - .is_language_services_disabled() + let workspace_settings = snapshot.workspace_settings(); + if workspace_settings.is_language_services_disabled() + || !workspace_settings.inlay_hints().any_enabled() { return Ok(None); } @@ -47,7 +47,7 @@ impl BackgroundDocumentRequestHandler for InlayHintRequestHandler { .range .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 .into_iter()