From 0b4617f23ac8f96879f340c9ffac5ce665fc4464 Mon Sep 17 00:00:00 2001 From: "Roman.Ivanov" Date: Fri, 22 Nov 2019 12:07:59 +0700 Subject: [PATCH] IDEA-227271: properly disable parameter hints and apply it on the next pass GitOrigin-RevId: 6a4a2bb4d147ace77b689d1e8f536faf76e20494 --- .../lang-impl/src/com/intellij/codeInsight/hints/HintUtils.kt | 1 + .../src/com/intellij/codeInsight/hints/InlayHintsPass.kt | 2 +- .../com/intellij/codeInsight/hints/settings/InlayHintsPanel.kt | 2 ++ .../settings/language/ParameterInlayProviderSettingsModel.kt | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/HintUtils.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/HintUtils.kt index c84c1af87e0e..5f5e37cfcd9d 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/HintUtils.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/HintUtils.kt @@ -53,6 +53,7 @@ fun getBaseLanguagesWithProviders(): List { fun isParameterHintsEnabledForLanguage(language: Language): Boolean { if (!EditorSettingsExternalizable.getInstance().isShowParameterNameHints) return false + if (!InlayHintsSettings.instance().hintsShouldBeShown(language)) return false return ParameterNameHintsSettings.getInstance().isEnabledForLanguage(getLanguageForSettingKey(language)) } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsPass.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsPass.kt index 05a4fe726463..cc192ac6a414 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsPass.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsPass.kt @@ -50,7 +50,7 @@ class InlayHintsPass( myEditor, existingHorizontalInlays, existingVerticalInlays, - settings.hintsEnabled(collector.key, collector.language) + settings.hintsShouldBeShown(collector.key, collector.language) ) } disposeOrphanInlays(existingHorizontalInlays) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlayHintsPanel.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlayHintsPanel.kt index c942b5842c75..2f5542de3a57 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlayHintsPanel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlayHintsPanel.kt @@ -3,6 +3,7 @@ package com.intellij.codeInsight.hints.settings import com.intellij.codeInsight.CodeInsightBundle import com.intellij.codeInsight.hints.InlayHintsSettings +import com.intellij.codeInsight.hints.ParameterHintsPassFactory import com.intellij.lang.Language import com.intellij.util.ui.JBUI import java.awt.BorderLayout @@ -58,6 +59,7 @@ class InlayHintsPanel(languages: Iterable, for ((index, panel) in languagePanels.withIndex()) { settings.setHintsEnabledForLanguage(panel.language, languagePanels[index].selected()) } + ParameterHintsPassFactory.forceHintsUpdateOnNextPass() } fun reset() { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt index 4b77a09c3dd6..e55ec4652f76 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt @@ -49,6 +49,7 @@ class ParameterInlayProviderSettingsModel( for (state in optionStates) { state.apply() } + ParameterHintsPassFactory.forceHintsUpdateOnNextPass() } override fun isModified(): Boolean {