diff --git a/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt b/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt
index 389823ead5f4..2ee5bafae803 100644
--- a/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt
+++ b/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.hints
-import com.intellij.codeInsight.hints.settings.ParameterNameHintsSettings
import com.intellij.psi.*
import com.intellij.psi.impl.source.resolve.graphInference.PsiPolyExpressionUtil
import com.intellij.psi.impl.source.tree.java.PsiMethodCallExpressionImpl
@@ -67,7 +66,8 @@ object JavaInlayHintsProvider {
with(resultSet) {
getVarArgInlay(info)?.let { add(it) }
- if (ParameterNameHintsSettings.getInstance().isShowForParamsWithSameType) {
+ val hintsProvider = JavaInlayParameterHintsProvider.getInstance()
+ if (hintsProvider.isShowForParamsWithSameType.get()) {
addAll(createSameTypeInlays(args))
}
@@ -82,7 +82,8 @@ object JavaInlayHintsProvider {
if (params.isEmpty()) return false
if (params.size == 1) {
if (isBuilderLike(callExpression, method) || isSetterNamed(method)) return false
- if (ParameterNameHintsSettings.getInstance().isDoNotShowIfMethodNameContainsParameterName
+ val hintsProvider = JavaInlayParameterHintsProvider.getInstance()
+ if (hintsProvider.isDoNotShowIfMethodNameContainsParameterName.get()
&& isParamNameContainedInMethodName(params[0], method)) return false
}
return true
diff --git a/java/java-impl/src/com/intellij/codeInsight/hints/JavaInlayParameterHintsProvider.kt b/java/java-impl/src/com/intellij/codeInsight/hints/JavaInlayParameterHintsProvider.kt
index f4d670ddc0c8..d82c0ccee1ea 100644
--- a/java/java-impl/src/com/intellij/codeInsight/hints/JavaInlayParameterHintsProvider.kt
+++ b/java/java-impl/src/com/intellij/codeInsight/hints/JavaInlayParameterHintsProvider.kt
@@ -15,13 +15,18 @@
*/
package com.intellij.codeInsight.hints
+import com.intellij.lang.java.JavaLanguage
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiCallExpression
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod
class JavaInlayParameterHintsProvider : InlayParameterHintsProvider {
-
+
+ companion object {
+ fun getInstance() = InlayParameterHintsExtension.forLanguage(JavaLanguage.INSTANCE) as JavaInlayParameterHintsProvider
+ }
+
override fun getMethodInfo(element: PsiElement): MethodInfo? {
if (element is PsiCallExpression) {
val resolvedElement = element.resolveMethodGenerics().element
@@ -82,4 +87,18 @@ class JavaInlayParameterHintsProvider : InlayParameterHintsProvider {
"org.slf4j.Logger.*"
)
+ val isDoNotShowIfMethodNameContainsParameterName = Option("java.method.name.contains.parameter.name",
+ "Do not show if method name contains parameter name",
+ true)
+
+ val isShowForParamsWithSameType = Option("java.multiple.params.same.type",
+ "Show for non-literals in case of multiple params with the same type",
+ false)
+
+ override fun getSupportedOptions(): List