diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java b/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java index a6e84447bdf..25577f783f3 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java @@ -34,6 +34,7 @@ import com.intellij.openapi.project.DumbService; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.CommonClassNames; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; @@ -255,15 +256,12 @@ public class JetLineMarkerProvider implements LineMarkerProvider { builder.append(DescriptorRenderer.HTML.render(descriptor)); int overrideCount = overriddenMembers.size(); if (overrideCount >= 1) { - builder.append("\n").append(implementsOrOverrides).append("\n"); + builder.append("
").append(implementsOrOverrides).append("
"); builder.append(DescriptorRenderer.HTML.render(overriddenMembers.iterator().next())); } if (overrideCount > 1) { - int count = overrideCount - 1; - builder.append("\nand ").append(count).append(" other ").append(memberKind); - if (count > 1) { - builder.append("s"); - } + int otherCount = overrideCount - 1; + builder.append("
and ").append(otherCount).append(" other ").append(StringUtil.pluralize(memberKind, otherCount)); } return builder.toString(); @@ -318,6 +316,7 @@ public class JetLineMarkerProvider implements LineMarkerProvider { // Not all open or abstract declarations are actually overridable, but this is heuristic return declaration.hasModifier(JetTokens.ABSTRACT_KEYWORD) || declaration.hasModifier(JetTokens.OPEN_KEYWORD) || + declaration.hasModifier(JetTokens.OVERRIDE_KEYWORD) || ((JetClass) parent.getParent()).isTrait(); } diff --git a/idea/testData/codeInsight/lineMarker/OverrideFunction.kt b/idea/testData/codeInsight/lineMarker/OverrideFunction.kt new file mode 100644 index 00000000000..ee4a54cac32 --- /dev/null +++ b/idea/testData/codeInsight/lineMarker/OverrideFunction.kt @@ -0,0 +1,16 @@ +open class A { + open fun a(){ + } +} + +open class B:A(){ + override fun a(){ + } +} + +class C:B(){ + override fun a(){ + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementLineMarkerTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementLineMarkerTest.java index 2b52ed5f21d..1d5c0fe2bde 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementLineMarkerTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementLineMarkerTest.java @@ -42,6 +42,10 @@ public class OverrideImplementLineMarkerTest extends LightCodeInsightFixtureTest doTest(); } + public void testOverrideFunction() throws Throwable { + doTest(); + } + private void doTest() { try { myFixture.configureByFile(getTestName(false) + ".kt");