From efa83000a2035ae5c0eea19cc430b4106bfe9429 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 4 Mar 2015 18:49:42 +0300 Subject: [PATCH] Use of substringBefore/After --- .../kotlin/idea/completion/CompletionSession.kt | 3 +-- .../kotlin/idea/completion/LookupElementFactory.kt | 3 +-- .../j2k/AbstractJavaToKotlinConverterSingleFileTest.kt | 10 ++-------- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt b/idea/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt index 4b266109375..66b888a24f2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt +++ b/idea/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt @@ -286,8 +286,7 @@ class BasicCompletionSession(configuration: CompletionSessionConfiguration, addReferenceVariants(kindFilter, runtimeReceiverType = false) } - val ampIndex = prefix.indexOf("@") - val keywordsPrefix = if (ampIndex < 0) prefix else prefix.substring(0, ampIndex) // if there is '@' in the prefix - use shorter prefix to not loose 'this' etc + val keywordsPrefix = prefix.substringBefore('@') // if there is '@' in the prefix - use shorter prefix to not loose 'this' etc KeywordCompletion.complete(expression ?: parameters.getPosition(), keywordsPrefix) { lookupElement -> val keyword = lookupElement.getLookupString() when (keyword) { diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt b/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt index 68d5dd886fe..9d9da8d25f6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt +++ b/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt @@ -110,8 +110,7 @@ public class LookupElementFactory( } val qualifiedName = psiClass.getQualifiedName()!! - val dotIndex = qualifiedName.lastIndexOf('.') - val packageName = if (dotIndex <= 0) "" else qualifiedName.substring(0, dotIndex) + val packageName = qualifiedName.substringBeforeLast('.', "") element = element.appendTailText(" ($packageName)", true) if (psiClass.isDeprecated()) { diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt b/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt index 1e71ced1ad6..6a4043ad5a3 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt +++ b/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt @@ -136,15 +136,9 @@ public abstract class AbstractJavaToKotlinConverterSingleFileTest : AbstractJava override fun getProjectDescriptor() = JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE - private fun String.removeFirstLine(): String { - val lastNewLine = indexOf('\n') - return if (lastNewLine == -1) "" else substring(lastNewLine) - } + private fun String.removeFirstLine() = substringAfter('\n', "") - private fun String.removeLastLine(): String { - val lastNewLine = lastIndexOf('\n') - return if (lastNewLine == -1) "" else substring(0, lastNewLine) - } + private fun String.removeLastLine() = substringBeforeLast('\n', "") private fun createJavaFile(text: String): PsiJavaFile { return myFixture.configureByText("converterTestFile.java", text) as PsiJavaFile