From de7b4dc68169c6713ed5a5e5ead9f7935d70cba5 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 6 Mar 2015 16:12:12 +0300 Subject: [PATCH] Surround with braces when completing backing field in string template --- .../kotlin/idea/completion/LookupElementsCollector.kt | 7 +++++-- .../handlers/basic/stringTemplate/BackingField.kt | 10 ++++++++++ .../basic/stringTemplate/BackingField.kt.after | 10 ++++++++++ .../handlers/BasicCompletionHandlerTestGenerated.java | 6 ++++++ 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt create mode 100644 idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt b/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt index bded790d292..45fdeaea35b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt +++ b/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt @@ -118,9 +118,12 @@ class LookupElementsCollector( } if (descriptor is PropertyDescriptor) { - val lookupElement = lookupElementFactory.createBackingFieldLookupElement(descriptor, inDescriptor, resolutionFacade) + var lookupElement = lookupElementFactory.createBackingFieldLookupElement(descriptor, inDescriptor, resolutionFacade) if (lookupElement != null) { - addElement(lookupElement) + if (surroundCallsWithBraces) { + lookupElement = lookupElement!!.withBracesSurrounding() + } + addElement(lookupElement!!) } } } diff --git a/idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt b/idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt new file mode 100644 index 00000000000..5c5e6e9ffba --- /dev/null +++ b/idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt @@ -0,0 +1,10 @@ +class C { + var property = "abc" + get() = $property + 1 + + fun foo(){ + "$" + } +} + +// ELEMENT: $property diff --git a/idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt.after b/idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt.after new file mode 100644 index 00000000000..226c8a821b3 --- /dev/null +++ b/idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt.after @@ -0,0 +1,10 @@ +class C { + var property = "abc" + get() = $property + 1 + + fun foo(){ + "${$property}" + } +} + +// ELEMENT: $property diff --git a/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java index 010ec4ebf70..11b1367ec9e 100644 --- a/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java @@ -113,6 +113,12 @@ public class BasicCompletionHandlerTestGenerated extends AbstractBasicCompletion JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/completion/handlers/basic/stringTemplate"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("BackingField.kt") + public void testBackingField() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/basic/stringTemplate/BackingField.kt"); + doTest(fileName); + } + @TestMetadata("NotEmptyPrefix.kt") public void testNotEmptyPrefix() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/basic/stringTemplate/NotEmptyPrefix.kt");