From c41c5f19164c82bc6e145d39c3a8e9377371b1ac Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 25 Jul 2017 19:50:54 +0300 Subject: [PATCH] KT-19145: Enable type completion for extension properties #KT-19145 fixed --- .../kotlin/idea/completion/BasicCompletionSession.kt | 2 +- .../testData/basic/common/autoPopup/InValExtType.kt | 6 ++++++ .../completion/test/JSBasicCompletionTestGenerated.java | 6 ++++++ .../completion/test/JvmBasicCompletionTestGenerated.java | 6 ++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 idea/idea-completion/testData/basic/common/autoPopup/InValExtType.kt diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicCompletionSession.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicCompletionSession.kt index ca3cdbc2039..48d037f2ae1 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicCompletionSession.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicCompletionSession.kt @@ -198,7 +198,7 @@ class BasicCompletionSession( // no auto-popup on typing after "val", "var" and "fun" because it's likely the name of the declaration which is being typed by user if (parameters.invocationCount == 0) { val suppressOtherCompletion = when (declaration) { - is KtNamedFunction -> prefixMatcher.prefix.let { it.isEmpty() || it[0].isLowerCase() /* function name usually starts with lower case letter */ } + is KtNamedFunction, is KtProperty -> prefixMatcher.prefix.let { it.isEmpty() || it[0].isLowerCase() /* function name usually starts with lower case letter */ } else -> true } if (suppressOtherCompletion) return diff --git a/idea/idea-completion/testData/basic/common/autoPopup/InValExtType.kt b/idea/idea-completion/testData/basic/common/autoPopup/InValExtType.kt new file mode 100644 index 00000000000..2ccb8786800 --- /dev/null +++ b/idea/idea-completion/testData/basic/common/autoPopup/InValExtType.kt @@ -0,0 +1,6 @@ +class Some + +val S + +// INVOCATION_COUNT: 0 +// EXIST: Some \ No newline at end of file diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java index acfe68566b6..e1e27db5686 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java @@ -1075,6 +1075,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes doTest(fileName); } + @TestMetadata("InValExtType.kt") + public void testInValExtType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/autoPopup/InValExtType.kt"); + doTest(fileName); + } + @TestMetadata("NoAutoPopupAfterNumberLiteral.kt") public void testNoAutoPopupAfterNumberLiteral() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/autoPopup/NoAutoPopupAfterNumberLiteral.kt"); diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java index f0519f8ba7b..a19184fd524 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java @@ -1075,6 +1075,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT doTest(fileName); } + @TestMetadata("InValExtType.kt") + public void testInValExtType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/autoPopup/InValExtType.kt"); + doTest(fileName); + } + @TestMetadata("NoAutoPopupAfterNumberLiteral.kt") public void testNoAutoPopupAfterNumberLiteral() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/autoPopup/NoAutoPopupAfterNumberLiteral.kt");