From 93e170325e3a14ca2d31f65e77bc020f7f943f9e Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 28 Mar 2016 14:51:48 +0300 Subject: [PATCH] KT-11612 Highlight named arguments in the editor somehow #KT-11612 Fixed --- .../idea/highlighter/KotlinHighlightingColors.java | 1 + .../highlighter/SoftKeywordsHighlightingVisitor.kt | 12 ++++++++++++ .../highlighter/VariablesHighlightingVisitor.java | 5 ++++- idea/resources/colorScheme/Darcula_Kotlin.xml | 5 +++++ idea/resources/colorScheme/Default_Kotlin.xml | 5 +++++ .../idea/highlighter/KotlinColorSettingsPage.kt | 5 +++-- .../checker/infos/CapturedInInlinedClosure.kt | 2 +- idea/testData/highlighter/NamedArguments.kt | 7 +++++++ .../idea/highlighter/HighlightingTestGenerated.java | 6 ++++++ 9 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 idea/testData/highlighter/NamedArguments.kt diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java index 4682c41aeda..7d686ed9d55 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java @@ -87,6 +87,7 @@ public class KotlinHighlightingColors { public static final TextAttributesKey LABEL = createTextAttributesKey("KOTLIN_LABEL"); public static final TextAttributesKey DEBUG_INFO = createTextAttributesKey("KOTLIN_DEBUG_INFO"); public static final TextAttributesKey RESOLVED_TO_ERROR = createTextAttributesKey("KOTLIN_RESOLVED_TO_ERROR"); + public static final TextAttributesKey NAMED_ARGUMENT = createTextAttributesKey("KOTLIN_NAMED_ARGUMENT"); private KotlinHighlightingColors() { } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/SoftKeywordsHighlightingVisitor.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/SoftKeywordsHighlightingVisitor.kt index 24cffb8934b..fb7253861ad 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/SoftKeywordsHighlightingVisitor.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/SoftKeywordsHighlightingVisitor.kt @@ -18,10 +18,14 @@ package org.jetbrains.kotlin.idea.highlighter import com.intellij.lang.annotation.AnnotationHolder import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.util.TextRange import com.intellij.psi.PsiElement import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.KtLambdaExpression +import org.jetbrains.kotlin.psi.KtValueArgument import org.jetbrains.kotlin.psi.KtVisitorVoid +import org.jetbrains.kotlin.psi.psiUtil.endOffset +import org.jetbrains.kotlin.psi.psiUtil.startOffset internal class SoftKeywordsHighlightingVisitor(private val holder: AnnotationHolder) : KtVisitorVoid() { @@ -59,4 +63,12 @@ internal class SoftKeywordsHighlightingVisitor(private val holder: AnnotationHol holder.createInfoAnnotation(arrow, null).textAttributes = KotlinHighlightingColors.FUNCTION_LITERAL_BRACES_AND_ARROW } } + + override fun visitArgument(argument: KtValueArgument) { + super.visitArgument(argument) + + val argumentName = argument.getArgumentName() ?: return + val eq = argument.equalsToken ?: return + holder.createInfoAnnotation(TextRange(argumentName.startOffset, eq.endOffset), null).textAttributes = KotlinHighlightingColors.NAMED_ARGUMENT + } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.java index d59ce1a88bb..567e0da7ce7 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.java @@ -51,7 +51,10 @@ class VariablesHighlightingVisitor extends AfterAnalysisHighlightingVisitor { } } - highlightVariable(expression, target); + if (!(expression.getParent() instanceof KtValueArgumentName)) { // highlighted separately + highlightVariable(expression, target); + } + super.visitSimpleNameExpression(expression); } diff --git a/idea/resources/colorScheme/Darcula_Kotlin.xml b/idea/resources/colorScheme/Darcula_Kotlin.xml index ffd40aadcb0..5bbc682b4eb 100644 --- a/idea/resources/colorScheme/Darcula_Kotlin.xml +++ b/idea/resources/colorScheme/Darcula_Kotlin.xml @@ -45,6 +45,11 @@ + +