Optimization to reuse BindingContext in completion

This commit is contained in:
Valentin Kipyatkov
2016-10-31 22:49:37 +03:00
parent 1174c7bdd9
commit 09dbb07fb8
30 changed files with 548 additions and 22 deletions
+4
View File
@@ -47,6 +47,10 @@
<component>
<implementation-class>org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener</implementation-class>
</component>
<component>
<interface-class>org.jetbrains.kotlin.idea.completion.CompletionBindingContextProvider</interface-class>
<implementation-class>org.jetbrains.kotlin.idea.completion.CompletionBindingContextProvider</implementation-class>
</component>
</project-components>
<application-components>
@@ -20,11 +20,12 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
import org.jetbrains.kotlin.psi.psiUtil.getTopmostParentOfType
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
class ConcatenatedStringGenerator {
fun create(element: KtBinaryExpression): String {
val binaryExpression = KtPsiUtil.getTopmostParentOfTypes(element, KtBinaryExpression::class.java) as? KtBinaryExpression ?: element
val binaryExpression = element.getTopmostParentOfType <KtBinaryExpression>() ?: element
val stringBuilder = StringBuilder()
binaryExpression.appendTo(stringBuilder)
return stringBuilder.toString()