From 3dd811e73e44d92cfa4f3801863957aeb7bb702a Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 26 Jun 2015 18:57:34 +0300 Subject: [PATCH] Reordered methods --- .../kotlin/idea/core/KotlinNameSuggester.kt | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt index a2a3c998b4b..df680120377 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt @@ -34,13 +34,6 @@ import java.util.regex.Pattern public object KotlinNameSuggester { - private fun addName(result: ArrayList, name: String?, validator: (String) -> Boolean) { - var name = name ?: return - if ("class" == name) name = "clazz" - if (!isIdentifier(name)) return - result.add(suggestNameByName(name, validator)) - } - /** * Name suggestion types: * 1. According to type: @@ -108,6 +101,38 @@ public object KotlinNameSuggester { return ArrayUtil.toStringArray(result) } + /** + * Validates name, and slightly improves it by adding number to name in case of conflicts + * @param name to check it in scope + * @return name or nameI, where I is number + */ + public fun suggestNameByName(name: String, validator: (String) -> Boolean): String { + if (validator(name)) return name + var i = 1 + while (!validator(name + i)) { + ++i + } + + return name + i + } + + /** + * Validates name using set of variants which are tried in succession (and extended with suffixes if necessary) + * For example, when given sequence of a, b, c possible names are tried out in the following order: a, b, c, a1, b1, c1, a2, b2, c2, ... + * @param names to check it in scope + * @return name or nameI, where name is one of variants and I is a number + */ + public fun suggestNameByMultipleNames(names: Collection, validator: (String) -> Boolean): String { + var i = 0 + while (true) { + for (name in names) { + val candidate = if (i > 0) name + i else name + if (validator(candidate)) return candidate + } + i++ + } + } + private fun addNamesByType(result: ArrayList, type: JetType, validator: (String) -> Boolean) { var type = TypeUtils.makeNotNullable(type) // wipe out '?' val builtIns = KotlinBuiltIns.getInstance() @@ -286,6 +311,13 @@ public object KotlinNameSuggester { }) } + private fun addName(result: ArrayList, name: String?, validator: (String) -> Boolean) { + var name = name ?: return + if ("class" == name) name = "clazz" + if (!isIdentifier(name)) return + result.add(suggestNameByName(name, validator)) + } + public fun isIdentifier(name: String?): Boolean { ApplicationManager.getApplication().assertReadAccessAllowed() if (name == null || name.isEmpty()) return false @@ -296,38 +328,6 @@ public object KotlinNameSuggester { lexer.advance() return lexer.getTokenType() == null } - - /** - * Validates name, and slightly improves it by adding number to name in case of conflicts - * @param name to check it in scope - * @return name or nameI, where I is number - */ - public fun suggestNameByName(name: String, validator: (String) -> Boolean): String { - if (validator(name)) return name - var i = 1 - while (!validator(name + i)) { - ++i - } - - return name + i - } - - /** - * Validates name using set of variants which are tried in succession (and extended with suffixes if necessary) - * For example, when given sequence of a, b, c possible names are tried out in the following order: a, b, c, a1, b1, c1, a2, b2, c2, ... - * @param names to check it in scope - * @return name or nameI, where name is one of variants and I is a number - */ - public fun suggestNameByMultipleNames(names: Collection, validator: (String) -> Boolean): String { - var i = 0 - while (true) { - for (name in names) { - val candidate = if (i > 0) name + i else name - if (validator(candidate)) return candidate - } - i++ - } - } } public class CollectingNameValidator @jvmOverloads constructor(