From 20ec600e2dd7bd1a67b82b263772442d9b61a2c2 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Fri, 21 Feb 2020 13:49:26 +0700 Subject: [PATCH] i18n: add bundle for idea/highlighter --- .../kotlin/idea/KotlinBundle.properties | 2 +- .../KotlinHighlighterBundle.properties | 88 +++++++++++++++++ .../highlighter/KotlinColorSettingsPage.kt | 97 +++++++++---------- .../highlighter/KotlinHighlighterBundle.kt | 18 ++++ .../KotlinRecursiveCallLineMarkerProvider.kt | 2 +- .../KotlinSuspendCallLineMarkerProvider.kt | 7 +- .../KotlinTestRunLineMarkerContributor.kt | 2 +- .../dsl/DslHighlighterExtension.kt | 5 +- .../markers/DslHighlightingMarker.kt | 3 +- .../highlighter/markers/HasActualMarker.kt | 11 ++- .../highlighter/markers/HasExpectedMarker.kt | 7 +- .../markers/KotlinLineMarkerOptions.kt | 35 +++++-- .../markers/KotlinLineMarkerProvider.kt | 19 ++-- .../markers/OverridenFunctionMarker.kt | 26 +++-- .../markers/OverridenPropertyMarker.kt | 3 +- .../markers/SuperDeclarationMarker.kt | 17 +++- 16 files changed, 252 insertions(+), 90 deletions(-) create mode 100644 idea/resources/messages/KotlinHighlighterBundle.properties create mode 100644 idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighterBundle.kt diff --git a/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties b/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties index 6b39bcc2c49..0439efe028a 100644 --- a/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties +++ b/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties @@ -181,7 +181,7 @@ inspection.migration.title=Code Migration inspection.migration.profile.name=Migration options.color.attribute.descriptor.annotation=Annotation//Annotation name -options.color.attribute.descriptor.annotation.attribute.name=Annotation//Annotation attribute name +description.text.annotation.attribute.name=Annotation//Annotation attribute name options.color.attribute.descriptor.builtin.annotation=Keywords//Modifier options.color.attribute.descriptor.builtin.keyword.val=Keywords//'val' options.color.attribute.descriptor.builtin.keyword.var=Keywords//'var' diff --git a/idea/resources/messages/KotlinHighlighterBundle.properties b/idea/resources/messages/KotlinHighlighterBundle.properties new file mode 100644 index 00000000000..c2ebf98f0e0 --- /dev/null +++ b/idea/resources/messages/KotlinHighlighterBundle.properties @@ -0,0 +1,88 @@ +action.text.go.to.actual.declarations=Go to actual declarations +action.text.go.to.expected.declaration=Go to expected declaration +action.text.go.to.implementations=Go to implementations +action.text.go.to.overridden.methods=Go to overridden methods +action.text.go.to.overridden.properties=Go to overridden properties +action.text.go.to.subclasses=Go to subclasses +action.text.go.to.super.method=Go to super method +action.text.go.to.super.property=Go to super property +description.text.android.extensions.property=Properties and Variables//Android Extensions synthetic properties +description.text.annotation=Annotation +description.text.arrow=Braces and Operators//Arrow +description.text.builtin.annotation=Keywords//Modifier +description.text.builtin.keyword.val=Keywords//'val' +description.text.builtin.keyword.var=Keywords//'var' +description.text.builtin.keyword=Keywords//Keyword +description.text.captured.variable=Properties and Variables//Variables and values captured in a closure +description.text.closure.braces=Braces and Operators//Lambda expression braces and arrow +description.text.colon=Braces and Operators//Colon +description.text.constructor.call=Functions//Constructor call +description.text.double.colon=Braces and Operators//Double colon +description.text.dynamic.fun.call=Functions//Dynamic function call +description.text.dynamic.property=Properties and Variables//Dynamic property +description.text.enumEntry=Classes and Interfaces//Enum entry +description.text.exclexcl=Braces and Operators//Non-null assertion +description.text.extension.fun.call=Functions//Extension function call +description.text.extension.property=Properties and Variables//Extension property +description.text.field=Properties and Variables//Backing field variable +description.text.fun.call=Functions//Function call +description.text.fun=Functions//Function declaration +description.text.instance.property.custom.property.declaration=Properties and Variables//Instance property with custom property declarations +description.text.instance.property=Properties and Variables//Instance property +description.text.it=Parameters//Lambda expression default parameter +description.text.kdoc.comment=Comments//KDoc//KDoc comment +description.text.kdoc.tag=Comments//KDoc//KDoc tag +description.text.kdoc.value=Comments//KDoc//Link in KDoc tag +description.text.label=Label +description.text.local.variable=Properties and Variables//Local variable or value +description.text.named.argument=Named argument +description.text.object=Classes and Interfaces//Object +description.text.package.fun.call=Functions//Package-level function call +description.text.package.property.custom.property.declaration=Properties and Variables//Package-level property with custom property declarations +description.text.package.property=Properties and Variables//Package-level property +description.text.quest=Braces and Operators//Type nullability marker +description.text.safe.access=Braces and Operators//Safe access dot +description.text.smart.cast.receiver=Smart-casts//Smart-cast implicit receiver +description.text.smart.cast=Smart-casts//Smart-cast value +description.text.smart.constant=Smart-casts//Smart constant +description.text.string.escape=String//Escape in string and template braces +description.text.suspend.fun.call=Functions//Suspend function call +description.text.synthetic.extension.property=Properties and Variables//Synthetic extension property +description.text.typeAlias=Classes and Interfaces//Type alias +description.text.var=Properties and Variables//Var (mutable variable, parameter or property) +description.text.variable.as.function.call=Properties and Variables//Variable as function call +description.text.variable.as.function.like.call=Properties and Variables//Variable as function-like call +message.suspend.function.call=Suspend function call +message.suspending.iteration=Suspending iteration +name.dsl.markers=DSL markers +name.dsl=Dsl// +name.implemented.declaration=Implemented declaration +name.implementing.declaration=Implementing declaration +name.kotlin.line.markers=Kotlin line markers +name.multiplatform.actual.declaration=Multiplatform actual declaration +name.multiplatform.expect.declaration=Multiplatform expect declaration +name.overridden.declaration=Overridden declaration +name.overriding.declaration=Overriding declaration +name.style=Style +notification.text.navigation.to.overriding.classes.is.not.possible.during.index.update=Navigation to overriding classes is not possible during index update +prefix.text.has.actuals.in=Has actuals in +text.click.for.navigate=Click {0}to navigate +text.has.functional.implementations=Has functional implementations +text.implements=Implements +text.in={0} in '{1}' +text.modules=\ ({0} modules) +text.or.press=\ or press {0} +text.overrides=Overrides +title.actuals.for=Actuals for {0} +title.choose.actual.for=Choose actual for {0} +title.choose.expected.for=Choose expected for {0} +title.expected.for=Expected for {0} +title.overriding.declarations.of=Overriding declarations of {0} +title.searching.for.overriding.declarations=Searching for overriding declarations +title.searching.for.overriding.methods=Searching for overriding methods +tool.tip.has.declaration.in.common.module=Has declaration in common module +tool.tip.marker.annotation.for.dsl=Marker annotation for DSL +tool.tip.text.function=function +tool.tip.text.property=property +tool.tip.text.recursive.call=Recursive call +tool.tip.text.run.test=Run Test \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt index 5bb97281fac..9347dcfc82e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt @@ -130,72 +130,71 @@ var globalCounte infix fun String.to(key: TextAttributesKey) = AttributesDescriptor(this, key) return arrayOf( - KotlinBundle.message("options.color.attribute.descriptor.builtin.keyword") to KotlinHighlightingColors.KEYWORD, - KotlinBundle.message("options.color.attribute.descriptor.builtin.keyword.val") to KotlinHighlightingColors.VAL_KEYWORD, - KotlinBundle.message("options.color.attribute.descriptor.builtin.keyword.var") to KotlinHighlightingColors.VAR_KEYWORD, - KotlinBundle.message("options.color.attribute.descriptor.builtin.annotation") to KotlinHighlightingColors.BUILTIN_ANNOTATION, + KotlinHighlighterBundle.message("description.text.builtin.keyword") to KotlinHighlightingColors.KEYWORD, + KotlinHighlighterBundle.message("description.text.builtin.keyword.val") to KotlinHighlightingColors.VAL_KEYWORD, + KotlinHighlighterBundle.message("description.text.builtin.keyword.var") to KotlinHighlightingColors.VAR_KEYWORD, + KotlinHighlighterBundle.message("description.text.builtin.annotation") to KotlinHighlightingColors.BUILTIN_ANNOTATION, OptionsBundle.message("options.java.attribute.descriptor.number") to KotlinHighlightingColors.NUMBER, OptionsBundle.message("options.java.attribute.descriptor.string") to KotlinHighlightingColors.STRING, - KotlinBundle.message("options.color.attribute.descriptor.string.escape") to KotlinHighlightingColors.STRING_ESCAPE, + KotlinHighlighterBundle.message("description.text.string.escape") to KotlinHighlightingColors.STRING_ESCAPE, OptionsBundle.message("options.java.attribute.descriptor.invalid.escape.in.string") to KotlinHighlightingColors.INVALID_STRING_ESCAPE, OptionsBundle.message("options.java.attribute.descriptor.operator.sign") to KotlinHighlightingColors.OPERATOR_SIGN, OptionsBundle.message("options.java.attribute.descriptor.parentheses") to KotlinHighlightingColors.PARENTHESIS, OptionsBundle.message("options.java.attribute.descriptor.braces") to KotlinHighlightingColors.BRACES, - KotlinBundle.message("options.color.attribute.descriptor.closure.braces") to KotlinHighlightingColors.FUNCTION_LITERAL_BRACES_AND_ARROW, - KotlinBundle.message("options.color.attribute.descriptor.arrow") to KotlinHighlightingColors.ARROW, + KotlinHighlighterBundle.message("description.text.closure.braces") to KotlinHighlightingColors.FUNCTION_LITERAL_BRACES_AND_ARROW, + KotlinHighlighterBundle.message("description.text.arrow") to KotlinHighlightingColors.ARROW, OptionsBundle.message("options.java.attribute.descriptor.brackets") to KotlinHighlightingColors.BRACKETS, OptionsBundle.message("options.java.attribute.descriptor.comma") to KotlinHighlightingColors.COMMA, OptionsBundle.message("options.java.attribute.descriptor.semicolon") to KotlinHighlightingColors.SEMICOLON, - KotlinBundle.message("options.color.attribute.descriptor.colon") to KotlinHighlightingColors.COLON, - KotlinBundle.message("options.color.attribute.descriptor.double.colon") to KotlinHighlightingColors.DOUBLE_COLON, + KotlinHighlighterBundle.message("description.text.colon") to KotlinHighlightingColors.COLON, + KotlinHighlighterBundle.message("description.text.double.colon") to KotlinHighlightingColors.DOUBLE_COLON, OptionsBundle.message("options.java.attribute.descriptor.dot") to KotlinHighlightingColors.DOT, - KotlinBundle.message("options.color.attribute.descriptor.safe.access") to KotlinHighlightingColors.SAFE_ACCESS, - KotlinBundle.message("options.color.attribute.descriptor.quest") to KotlinHighlightingColors.QUEST, - KotlinBundle.message("options.color.attribute.descriptor.exclexcl") to KotlinHighlightingColors.EXCLEXCL, + KotlinHighlighterBundle.message("description.text.safe.access") to KotlinHighlightingColors.SAFE_ACCESS, + KotlinHighlighterBundle.message("description.text.quest") to KotlinHighlightingColors.QUEST, + KotlinHighlighterBundle.message("description.text.exclexcl") to KotlinHighlightingColors.EXCLEXCL, OptionsBundle.message("options.java.attribute.descriptor.line.comment") to KotlinHighlightingColors.LINE_COMMENT, OptionsBundle.message("options.java.attribute.descriptor.block.comment") to KotlinHighlightingColors.BLOCK_COMMENT, - KotlinBundle.message("options.color.attribute.descriptor.kdoc.comment") to KotlinHighlightingColors.DOC_COMMENT, - KotlinBundle.message("options.color.attribute.descriptor.kdoc.tag") to KotlinHighlightingColors.KDOC_TAG, - KotlinBundle.message("options.color.attribute.descriptor.kdoc.value") to KotlinHighlightingColors.KDOC_LINK, + KotlinHighlighterBundle.message("description.text.kdoc.comment") to KotlinHighlightingColors.DOC_COMMENT, + KotlinHighlighterBundle.message("description.text.kdoc.tag") to KotlinHighlightingColors.KDOC_TAG, + KotlinHighlighterBundle.message("description.text.kdoc.value") to KotlinHighlightingColors.KDOC_LINK, OptionsBundle.message("options.java.attribute.descriptor.class") to KotlinHighlightingColors.CLASS, OptionsBundle.message("options.java.attribute.descriptor.type.parameter") to KotlinHighlightingColors.TYPE_PARAMETER, 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.color.attribute.descriptor.annotation") to KotlinHighlightingColors.ANNOTATION, - KotlinBundle.message("options.color.attribute.descriptor.annotation.attribute.name") to KotlinHighlightingColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES, - KotlinBundle.message("options.color.attribute.descriptor.object") to KotlinHighlightingColors.OBJECT, - KotlinBundle.message("options.color.attribute.descriptor.enumEntry") to KotlinHighlightingColors.ENUM_ENTRY, - KotlinBundle.message("options.color.attribute.descriptor.typeAlias") to KotlinHighlightingColors.TYPE_ALIAS, - KotlinBundle.message("options.color.attribute.descriptor.var") to KotlinHighlightingColors.MUTABLE_VARIABLE, - KotlinBundle.message("options.color.attribute.descriptor.local.variable") to KotlinHighlightingColors.LOCAL_VARIABLE, + KotlinHighlighterBundle.message("description.text.annotation") to KotlinHighlightingColors.ANNOTATION, + KotlinBundle.message("description.text.annotation.attribute.name") to KotlinHighlightingColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES, + KotlinHighlighterBundle.message("description.text.object") to KotlinHighlightingColors.OBJECT, + KotlinHighlighterBundle.message("description.text.enumEntry") to KotlinHighlightingColors.ENUM_ENTRY, + KotlinHighlighterBundle.message("description.text.typeAlias") to KotlinHighlightingColors.TYPE_ALIAS, + KotlinHighlighterBundle.message("description.text.var") to KotlinHighlightingColors.MUTABLE_VARIABLE, + KotlinHighlighterBundle.message("description.text.local.variable") to KotlinHighlightingColors.LOCAL_VARIABLE, OptionsBundle.message("options.java.attribute.descriptor.parameter") to KotlinHighlightingColors.PARAMETER, - KotlinBundle.message("options.color.attribute.descriptor.captured.variable") to KotlinHighlightingColors.WRAPPED_INTO_REF, - KotlinBundle.message("options.color.attribute.descriptor.instance.property") to KotlinHighlightingColors.INSTANCE_PROPERTY, - KotlinBundle.message("options.color.attribute.descriptor.instance.property.custom.property.declaration") to KotlinHighlightingColors.INSTANCE_PROPERTY_CUSTOM_PROPERTY_DECLARATION, - KotlinBundle.message("options.color.attribute.descriptor.package.property.custom.property.declaration") to KotlinHighlightingColors.PACKAGE_PROPERTY_CUSTOM_PROPERTY_DECLARATION, - KotlinBundle.message("options.color.attribute.descriptor.package.property") to KotlinHighlightingColors.PACKAGE_PROPERTY, - KotlinBundle.message("options.color.attribute.descriptor.field") to KotlinHighlightingColors.BACKING_FIELD_VARIABLE, - KotlinBundle.message("options.color.attribute.descriptor.extension.property") to KotlinHighlightingColors.EXTENSION_PROPERTY, - KotlinBundle.message("options.color.attribute.descriptor.synthetic.extension.property") to KotlinHighlightingColors.SYNTHETIC_EXTENSION_PROPERTY, - KotlinBundle.message("options.color.attribute.descriptor.dynamic.property") to KotlinHighlightingColors.DYNAMIC_PROPERTY_CALL, - KotlinBundle.message("options.color.attribute.descriptor.android.extensions.property") to KotlinHighlightingColors.ANDROID_EXTENSIONS_PROPERTY_CALL, - KotlinBundle.message("options.color.attribute.descriptor.it") to KotlinHighlightingColors.FUNCTION_LITERAL_DEFAULT_PARAMETER, - KotlinBundle.message("options.color.attribute.descriptor.fun") to KotlinHighlightingColors.FUNCTION_DECLARATION, - KotlinBundle.message("options.color.attribute.descriptor.fun.call") to KotlinHighlightingColors.FUNCTION_CALL, - KotlinBundle.message("options.color.attribute.descriptor.dynamic.fun.call") to KotlinHighlightingColors.DYNAMIC_FUNCTION_CALL, - KotlinBundle.message("options.color.attribute.descriptor.suspend.fun.call") to KotlinHighlightingColors.SUSPEND_FUNCTION_CALL, - KotlinBundle.message("options.color.attribute.descriptor.package.fun.call") to KotlinHighlightingColors.PACKAGE_FUNCTION_CALL, - KotlinBundle.message("options.color.attribute.descriptor.extension.fun.call") to KotlinHighlightingColors.EXTENSION_FUNCTION_CALL, - KotlinBundle.message("options.color.attribute.descriptor.constructor.call") to KotlinHighlightingColors.CONSTRUCTOR_CALL, - KotlinBundle.message("options.color.attribute.descriptor.variable.as.function.call") to KotlinHighlightingColors.VARIABLE_AS_FUNCTION_CALL, - KotlinBundle.message("options.color.attribute.descriptor.variable.as.function.like.call") to KotlinHighlightingColors.VARIABLE_AS_FUNCTION_LIKE_CALL, - KotlinBundle.message("options.color.attribute.descriptor.smart.cast") to KotlinHighlightingColors.SMART_CAST_VALUE, - KotlinBundle.message("options.color.attribute.descriptor.smart.constant") to KotlinHighlightingColors.SMART_CONSTANT, - KotlinBundle.message("options.color.attribute.descriptor.smart.cast.receiver") to KotlinHighlightingColors.SMART_CAST_RECEIVER, - KotlinBundle.message("options.color.attribute.descriptor.label") to KotlinHighlightingColors.LABEL, - "Named argument" to KotlinHighlightingColors.NAMED_ARGUMENT - ) + - DslHighlighterExtension.descriptionsToStyles.map { (description, key) -> description to key }.toTypedArray() + KotlinHighlighterBundle.message("description.text.captured.variable") to KotlinHighlightingColors.WRAPPED_INTO_REF, + KotlinHighlighterBundle.message("description.text.instance.property") to KotlinHighlightingColors.INSTANCE_PROPERTY, + KotlinHighlighterBundle.message("description.text.instance.property.custom.property.declaration") to KotlinHighlightingColors.INSTANCE_PROPERTY_CUSTOM_PROPERTY_DECLARATION, + KotlinHighlighterBundle.message("description.text.package.property.custom.property.declaration") to KotlinHighlightingColors.PACKAGE_PROPERTY_CUSTOM_PROPERTY_DECLARATION, + KotlinHighlighterBundle.message("description.text.package.property") to KotlinHighlightingColors.PACKAGE_PROPERTY, + KotlinHighlighterBundle.message("description.text.field") to KotlinHighlightingColors.BACKING_FIELD_VARIABLE, + KotlinHighlighterBundle.message("description.text.extension.property") to KotlinHighlightingColors.EXTENSION_PROPERTY, + KotlinHighlighterBundle.message("description.text.synthetic.extension.property") to KotlinHighlightingColors.SYNTHETIC_EXTENSION_PROPERTY, + KotlinHighlighterBundle.message("description.text.dynamic.property") to KotlinHighlightingColors.DYNAMIC_PROPERTY_CALL, + KotlinHighlighterBundle.message("description.text.android.extensions.property") to KotlinHighlightingColors.ANDROID_EXTENSIONS_PROPERTY_CALL, + KotlinHighlighterBundle.message("description.text.it") to KotlinHighlightingColors.FUNCTION_LITERAL_DEFAULT_PARAMETER, + KotlinHighlighterBundle.message("description.text.fun") to KotlinHighlightingColors.FUNCTION_DECLARATION, + KotlinHighlighterBundle.message("description.text.fun.call") to KotlinHighlightingColors.FUNCTION_CALL, + KotlinHighlighterBundle.message("description.text.dynamic.fun.call") to KotlinHighlightingColors.DYNAMIC_FUNCTION_CALL, + KotlinHighlighterBundle.message("description.text.suspend.fun.call") to KotlinHighlightingColors.SUSPEND_FUNCTION_CALL, + KotlinHighlighterBundle.message("description.text.package.fun.call") to KotlinHighlightingColors.PACKAGE_FUNCTION_CALL, + KotlinHighlighterBundle.message("description.text.extension.fun.call") to KotlinHighlightingColors.EXTENSION_FUNCTION_CALL, + KotlinHighlighterBundle.message("description.text.constructor.call") to KotlinHighlightingColors.CONSTRUCTOR_CALL, + KotlinHighlighterBundle.message("description.text.variable.as.function.call") to KotlinHighlightingColors.VARIABLE_AS_FUNCTION_CALL, + KotlinHighlighterBundle.message("description.text.variable.as.function.like.call") to KotlinHighlightingColors.VARIABLE_AS_FUNCTION_LIKE_CALL, + KotlinHighlighterBundle.message("description.text.smart.cast") to KotlinHighlightingColors.SMART_CAST_VALUE, + KotlinHighlighterBundle.message("description.text.smart.constant") to KotlinHighlightingColors.SMART_CONSTANT, + KotlinHighlighterBundle.message("description.text.smart.cast.receiver") to KotlinHighlightingColors.SMART_CAST_RECEIVER, + KotlinHighlighterBundle.message("description.text.label") to KotlinHighlightingColors.LABEL, + KotlinHighlighterBundle.message("description.text.named.argument") to KotlinHighlightingColors.NAMED_ARGUMENT + ) + DslHighlighterExtension.descriptionsToStyles.map { (description, key) -> description to key }.toTypedArray() } override fun getColorDescriptors(): Array = ColorDescriptor.EMPTY_ARRAY diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighterBundle.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighterBundle.kt new file mode 100644 index 00000000000..8d5878685c4 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighterBundle.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.highlighter + +import org.jetbrains.annotations.NonNls +import org.jetbrains.annotations.PropertyKey +import org.jetbrains.kotlin.util.AbstractKotlinBundle + +@NonNls +private const val BUNDLE = "messages.KotlinHighlighterBundle" + +object KotlinHighlighterBundle : AbstractKotlinBundle(BUNDLE) { + @JvmStatic + fun message(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any): String = getMessage(key, *params) +} diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt index 7e553048473..8b9bc7bc124 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt @@ -124,7 +124,7 @@ class KotlinRecursiveCallLineMarkerProvider : LineMarkerProvider { callElement.textRange, AllIcons.Gutter.RecursiveMethod, Pass.LINE_MARKERS, - { "Recursive call" }, + { KotlinHighlighterBundle.message("tool.tip.text.recursive.call") }, null, GutterIconRenderer.Alignment.RIGHT ) { diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuspendCallLineMarkerProvider.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuspendCallLineMarkerProvider.kt index 65b3e48038e..ccfcc54da9e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuspendCallLineMarkerProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuspendCallLineMarkerProvider.kt @@ -67,9 +67,12 @@ class KotlinSuspendCallLineMarkerProvider : LineMarkerProvider { markedLineNumbers += lineNumber result += if (element is KtForExpression) { - SuspendCallMarkerInfo(getElementForLineMark(element.loopRange!!), "Suspending iteration") + SuspendCallMarkerInfo( + getElementForLineMark(element.loopRange!!), + KotlinHighlighterBundle.message("message.suspending.iteration") + ) } else { - SuspendCallMarkerInfo(getElementForLineMark(element), "Suspend function call") + SuspendCallMarkerInfo(getElementForLineMark(element), KotlinHighlighterBundle.message("message.suspend.function.call")) } } } diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinTestRunLineMarkerContributor.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinTestRunLineMarkerContributor.kt index 29ffcbd7c26..c89ca9c9b63 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinTestRunLineMarkerContributor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinTestRunLineMarkerContributor.kt @@ -67,6 +67,6 @@ class KotlinTestRunLineMarkerContributor : RunLineMarkerContributor() { val targetPlatform = declaration.module?.platform ?: return null val icon = targetPlatform.idePlatformKind.tooling.getTestIcon(declaration, descriptor) ?: return null - return Info(icon, Function { "Run Test" }, *ExecutorAction.getActions()) + return Info(icon, Function { KotlinHighlighterBundle.message("tool.tip.text.run.test") }, *ExecutorAction.getActions()) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/dsl/DslHighlighterExtension.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/dsl/DslHighlighterExtension.kt index c4026e8686d..7db7e3ac5d9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/dsl/DslHighlighterExtension.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/dsl/DslHighlighterExtension.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.idea.highlighter.HighlighterExtension +import org.jetbrains.kotlin.idea.highlighter.KotlinHighlighterBundle import org.jetbrains.kotlin.resolve.calls.DslMarkerUtils import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass @@ -44,10 +45,10 @@ class DslHighlighterExtension : HighlighterExtension() { fun externalKeyName(index: Int) = "KOTLIN_DSL_STYLE$index" val descriptionsToStyles = (1..numStyles).associate { index -> - "Dsl//${styleOptionDisplayName(index)}" to styleById(index) + KotlinHighlighterBundle.message("name.dsl") + styleOptionDisplayName(index) to styleById(index) } - fun styleOptionDisplayName(index: Int) = "Style$index" + fun styleOptionDisplayName(index: Int) = KotlinHighlighterBundle.message("name.style") + index fun styleIdByMarkerAnnotation(markerAnnotation: ClassDescriptor): Int? { val markerAnnotationFqName = markerAnnotation.fqNameSafe diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt index a958c5fa11d..5fbc534ce2f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.core.toDescriptor +import org.jetbrains.kotlin.idea.highlighter.KotlinHighlighterBundle import org.jetbrains.kotlin.idea.highlighter.dsl.DslHighlighterExtension import org.jetbrains.kotlin.idea.highlighter.dsl.isDslHighlightingMarker import org.jetbrains.kotlin.psi.KtClass @@ -31,7 +32,7 @@ private val navHandler = GutterIconNavigationHandler { event, elemen } private val toolTipHandler = Function { - "Marker annotation for DSL" + KotlinHighlighterBundle.message("tool.tip.marker.annotation.for.dsl") } fun collectHighlightingColorsMarkers( diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasActualMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasActualMarker.kt index 126541c6578..525a80ae3a0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasActualMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasActualMarker.kt @@ -23,10 +23,11 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo import org.jetbrains.kotlin.idea.core.isAndroidModule import org.jetbrains.kotlin.idea.core.toDescriptor +import org.jetbrains.kotlin.idea.highlighter.KotlinHighlighterBundle import org.jetbrains.kotlin.idea.util.actualsForExpected +import org.jetbrains.kotlin.platform.isCommon import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.resolve.descriptorUtil.module -import org.jetbrains.kotlin.platform.isCommon private fun ModuleDescriptor?.getPlatformName(): String? { if (this == null) return null @@ -52,8 +53,8 @@ fun getPlatformActualTooltip(declaration: KtDeclaration): String? { .groupBy { it.getPlatformName() } .filter { (platform, _) -> platform != null } .entries - .joinToString(prefix = "Has actuals in ") { (platform, modules) -> - val modulesSuffix = if (modules.size <= 1) "" else " (${modules.size} modules)" + .joinToString(prefix = KotlinHighlighterBundle.message("prefix.text.has.actuals.in") + " ") { (platform, modules) -> + val modulesSuffix = if (modules.size <= 1) "" else KotlinHighlighterBundle.message("text.modules", modules.size) if (platform == null) { throw AssertionError("Platform should not be null") } @@ -68,9 +69,9 @@ class ActualExpectedPsiElementCellRenderer : DefaultPsiElementCellRenderer() { override fun getContainerText(element: PsiElement?, name: String?) = "" } -fun KtDeclaration.navigateToActualTitle() = "Choose actual for $name" +fun KtDeclaration.navigateToActualTitle() = KotlinHighlighterBundle.message("title.choose.actual.for", name.toString()) -fun KtDeclaration.navigateToActualUsagesTitle() = "Actuals for $name" +fun KtDeclaration.navigateToActualUsagesTitle() = KotlinHighlighterBundle.message("title.actuals.for", name.toString()) fun buildNavigateToActualDeclarationsPopup(element: PsiElement?): NavigationPopupDescriptor? { return element?.markerDeclaration?.let { diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasExpectedMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasExpectedMarker.kt index 0eb8ee87c1a..3586823ee30 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasExpectedMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/HasExpectedMarker.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.descriptors.MemberDescriptor import org.jetbrains.kotlin.idea.caches.project.implementedDescriptors import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor import org.jetbrains.kotlin.idea.core.toDescriptor +import org.jetbrains.kotlin.idea.highlighter.KotlinHighlighterBundle import org.jetbrains.kotlin.idea.util.expectedDeclarationIfAny import org.jetbrains.kotlin.idea.util.hasDeclarationOf import org.jetbrains.kotlin.psi.KtDeclaration @@ -32,15 +33,15 @@ fun getExpectedDeclarationTooltip(declaration: KtDeclaration): String? { val commonModuleDescriptors = platformModuleDescriptor.implementedDescriptors if (!commonModuleDescriptors.any { it.hasDeclarationOf(descriptor) }) return null - return "Has declaration in common module" + return KotlinHighlighterBundle.message("tool.tip.has.declaration.in.common.module") } fun KtDeclaration.allNavigatableExpectedDeclarations(): List = listOfNotNull(expectedDeclarationIfAny()) + findMarkerBoundDeclarations().mapNotNull { it.expectedDeclarationIfAny() } -fun KtDeclaration.navigateToExpectedTitle() = "Choose expected for $name" +fun KtDeclaration.navigateToExpectedTitle() = KotlinHighlighterBundle.message("title.choose.expected.for", name.toString()) -fun KtDeclaration.navigateToExpectedUsagesTitle() = "Expected for $name" +fun KtDeclaration.navigateToExpectedUsagesTitle() = KotlinHighlighterBundle.message("title.expected.for", name.toString()) fun buildNavigateToExpectedDeclarationsPopup(element: PsiElement?): NavigationPopupDescriptor? { return element?.markerDeclaration?.let { diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerOptions.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerOptions.kt index f6f7884ee47..6f2aaf1992f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerOptions.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerOptions.kt @@ -8,22 +8,43 @@ package org.jetbrains.kotlin.idea.highlighter.markers import com.intellij.codeInsight.daemon.GutterIconDescriptor import com.intellij.icons.AllIcons import org.jetbrains.kotlin.idea.KotlinIcons +import org.jetbrains.kotlin.idea.highlighter.KotlinHighlighterBundle internal object KotlinLineMarkerOptions { - val overriddenOption = GutterIconDescriptor.Option("kotlin.overridden", "Overridden declaration", AllIcons.Gutter.OverridenMethod) + val overriddenOption = GutterIconDescriptor.Option( + "kotlin.overridden", + KotlinHighlighterBundle.message("name.overridden.declaration"), AllIcons.Gutter.OverridenMethod + ) - val implementedOption = GutterIconDescriptor.Option("kotlin.implemented", "Implemented declaration", AllIcons.Gutter.ImplementedMethod) + val implementedOption = GutterIconDescriptor.Option( + "kotlin.implemented", + KotlinHighlighterBundle.message("name.implemented.declaration"), AllIcons.Gutter.ImplementedMethod + ) - val overridingOption = GutterIconDescriptor.Option("kotlin.overriding", "Overriding declaration", AllIcons.Gutter.OverridingMethod) + val overridingOption = GutterIconDescriptor.Option( + "kotlin.overriding", + KotlinHighlighterBundle.message("name.overriding.declaration"), AllIcons.Gutter.OverridingMethod + ) val implementingOption = - GutterIconDescriptor.Option("kotlin.implementing", "Implementing declaration", AllIcons.Gutter.ImplementingMethod) + GutterIconDescriptor.Option( + "kotlin.implementing", + KotlinHighlighterBundle.message("name.implementing.declaration"), + AllIcons.Gutter.ImplementingMethod + ) - val actualOption = GutterIconDescriptor.Option("kotlin.actual", "Multiplatform actual declaration", KotlinIcons.ACTUAL) + val actualOption = GutterIconDescriptor.Option( + "kotlin.actual", + KotlinHighlighterBundle.message("name.multiplatform.actual.declaration"), KotlinIcons.ACTUAL + ) - val expectOption = GutterIconDescriptor.Option("kotlin.expect", "Multiplatform expect declaration", KotlinIcons.EXPECT) + val expectOption = GutterIconDescriptor.Option( + "kotlin.expect", + KotlinHighlighterBundle.message("name.multiplatform.expect.declaration"), KotlinIcons.EXPECT + ) - val dslOption = GutterIconDescriptor.Option("kotlin.dsl", "DSL markers", KotlinIcons.DSL_MARKER_ANNOTATION) + val dslOption = + GutterIconDescriptor.Option("kotlin.dsl", KotlinHighlighterBundle.message("name.dsl.markers"), KotlinIcons.DSL_MARKER_ANNOTATION) val options = arrayOf( overriddenOption, implementedOption, diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt index 52a0c18a1f3..1acdccc8a59 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt @@ -37,6 +37,7 @@ import org.jetbrains.kotlin.idea.core.isInheritable import org.jetbrains.kotlin.idea.core.isOverridable import org.jetbrains.kotlin.idea.core.toDescriptor import org.jetbrains.kotlin.idea.editor.fixers.startLine +import org.jetbrains.kotlin.idea.highlighter.KotlinHighlighterBundle import org.jetbrains.kotlin.idea.presentation.DeclarationByModuleRenderer import org.jetbrains.kotlin.idea.search.declarationsSearch.toPossiblyFakeLightMethods import org.jetbrains.kotlin.idea.util.* @@ -49,7 +50,7 @@ import java.util.* import javax.swing.ListCellRenderer class KotlinLineMarkerProvider : LineMarkerProviderDescriptor() { - override fun getName() = "Kotlin line markers" + override fun getName() = KotlinHighlighterBundle.message("name.kotlin.line.markers") override fun getOptions(): Array