[Highlight] Fix for coloring annotation attributes in Kotlin
#KT-36156 Fixed
This commit is contained in:
@@ -59,7 +59,8 @@ livetemplate.description.exfun=Extension function
|
||||
livetemplate.description.exval=Extension read-only property
|
||||
livetemplate.description.exvar=Extension read-write property
|
||||
|
||||
options.kotlin.attribute.descriptor.annotation=Annotation
|
||||
options.kotlin.attribute.descriptor.annotation=Annotation//Annotation name
|
||||
options.kotlin.attribute.descriptor.annotation.attribute.name=Annotation//Annotation attribute name
|
||||
options.kotlin.attribute.descriptor.builtin.annotation=Keywords//Modifier
|
||||
options.kotlin.attribute.descriptor.builtin.keyword.val=Keywords//'val'
|
||||
options.kotlin.attribute.descriptor.builtin.keyword.var=Keywords//'var'
|
||||
|
||||
+5
-1
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag
|
||||
import org.jetbrains.kotlin.kdoc.psi.impl.KDocLink
|
||||
import org.jetbrains.kotlin.kdoc.psi.impl.KDocTag
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.KtAnnotationEntry
|
||||
import org.jetbrains.kotlin.psi.KtExpressionWithLabel
|
||||
import org.jetbrains.kotlin.psi.KtLambdaExpression
|
||||
import org.jetbrains.kotlin.psi.KtValueArgument
|
||||
@@ -72,7 +73,10 @@ internal class BeforeResolveHighlightingVisitor(holder: AnnotationHolder) : High
|
||||
val argumentName = argument.getArgumentName() ?: return
|
||||
val eq = argument.equalsToken ?: return
|
||||
createInfoAnnotation(TextRange(argumentName.startOffset, eq.endOffset), null).textAttributes =
|
||||
KotlinHighlightingColors.NAMED_ARGUMENT
|
||||
if(argument.parent.parent is KtAnnotationEntry)
|
||||
KotlinHighlightingColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES
|
||||
else
|
||||
KotlinHighlightingColors.NAMED_ARGUMENT
|
||||
}
|
||||
|
||||
override fun visitExpressionWithLabel(expression: KtExpressionWithLabel) {
|
||||
|
||||
+1
@@ -99,6 +99,7 @@ public class KotlinHighlightingColors {
|
||||
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");
|
||||
public static final TextAttributesKey ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES = createTextAttributesKey("KOTLIN_ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES", JavaHighlightingColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES);
|
||||
|
||||
private KotlinHighlightingColors() {
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.highlighter
|
||||
|
||||
import com.intellij.ide.highlighter.JavaHighlightingColors
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey
|
||||
import com.intellij.openapi.fileTypes.SyntaxHighlighter
|
||||
import com.intellij.openapi.options.OptionsBundle
|
||||
@@ -44,7 +45,7 @@ class KotlinColorSettingsPage : ColorSettingsPage, RainbowColorSettingsPage {
|
||||
* Doc comment here for `SomeClass`
|
||||
* @see <KDOC_LINK>Iterator#next()</KDOC_LINK>
|
||||
*/
|
||||
<ANNOTATION>@Deprecated</ANNOTATION>("Deprecated class")
|
||||
<ANNOTATION>@Deprecated</ANNOTATION>(<ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES>message</ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES> = "Deprecated class")
|
||||
<BUILTIN_ANNOTATION>private</BUILTIN_ANNOTATION> class <CLASS>MyClass</CLASS><<BUILTIN_ANNOTATION>out</BUILTIN_ANNOTATION> <TYPE_PARAMETER>T</TYPE_PARAMETER> : <TRAIT>Iterable</TRAIT><<TYPE_PARAMETER>T</TYPE_PARAMETER>>>(var <PARAMETER><MUTABLE_VARIABLE><INSTANCE_PROPERTY>prop1</INSTANCE_PROPERTY></MUTABLE_VARIABLE></PARAMETER> : Int) {
|
||||
fun <FUNCTION_DECLARATION>foo</FUNCTION_DECLARATION>(<PARAMETER>nullable</PARAMETER> : String<QUEST>?</QUEST>, <PARAMETER>r</PARAMETER> : <TRAIT>Runnable</TRAIT>, <PARAMETER>f</PARAMETER> : () -> Int, <PARAMETER>fl</PARAMETER> : <TRAIT>FunctionLike</TRAIT>, dyn: <KEYWORD>dynamic</KEYWORD>) {
|
||||
<PACKAGE_FUNCTION_CALL>println</PACKAGE_FUNCTION_CALL>("length\nis ${"$"}{<PARAMETER>nullable</PARAMETER><SAFE_ACCESS>?.</SAFE_ACCESS><INSTANCE_PROPERTY>length</INSTANCE_PROPERTY>} <STRING_ESCAPE><INVALID_STRING_ESCAPE>\e</INVALID_STRING_ESCAPE></STRING_ESCAPE>")
|
||||
@@ -161,6 +162,7 @@ var <PACKAGE_PROPERTY_CUSTOM_PROPERTY_DECLARATION><MUTABLE_VARIABLE>globalCounte
|
||||
OptionsBundle.message("options.java.attribute.descriptor.abstract.class") to KotlinHighlightingColors.ABSTRACT_CLASS,
|
||||
OptionsBundle.message("options.java.attribute.descriptor.interface") to KotlinHighlightingColors.TRAIT,
|
||||
KotlinBundle.message("options.kotlin.attribute.descriptor.annotation") to KotlinHighlightingColors.ANNOTATION,
|
||||
KotlinBundle.message("options.kotlin.attribute.descriptor.annotation.attribute.name") to KotlinHighlightingColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES,
|
||||
KotlinBundle.message("options.kotlin.attribute.descriptor.object") to KotlinHighlightingColors.OBJECT,
|
||||
KotlinBundle.message("options.kotlin.attribute.descriptor.enumEntry") to KotlinHighlightingColors.ENUM_ENTRY,
|
||||
KotlinBundle.message("options.kotlin.attribute.descriptor.typeAlias") to KotlinHighlightingColors.TYPE_ALIAS,
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
<info textAttributesKey="KOTLIN_ANNOTATION">@Suppress</info>(<info textAttributesKey="KOTLIN_ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES">names =</info> ["foo"])
|
||||
fun <info textAttributesKey="KOTLIN_FUNCTION_DECLARATION">foo</info>(<info textAttributesKey="KOTLIN_PARAMETER">p1</info>: <info textAttributesKey="KOTLIN_CLASS">Int</info>, <info textAttributesKey="KOTLIN_PARAMETER">p2</info>: <info textAttributesKey="KOTLIN_CLASS">String</info>): <info textAttributesKey="KOTLIN_CLASS">String</info> {
|
||||
return <info textAttributesKey="KOTLIN_PARAMETER">p2</info> + <info textAttributesKey="KOTLIN_PARAMETER">p1</info>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user