Refactor: Move 'isIdentifier' and 'quoteIfNeeded' functions to frontend
This commit is contained in:
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.lexer.KotlinLexer
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getOutermostParenthesizerOrThis
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isIdentifier
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getParentResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ArgumentMatch
|
||||
@@ -313,20 +314,10 @@ object KotlinNameSuggester {
|
||||
private fun MutableCollection<String>.addName(name: String?, validator: (String) -> Boolean) {
|
||||
if (name == null) return
|
||||
val correctedName = when {
|
||||
isIdentifier(name) -> name
|
||||
name.isIdentifier() -> name
|
||||
name == "class" -> "clazz"
|
||||
else -> return
|
||||
}
|
||||
add(suggestNameByName(correctedName, validator))
|
||||
}
|
||||
|
||||
fun isIdentifier(name: String?): Boolean {
|
||||
if (name == null || name.isEmpty()) return false
|
||||
|
||||
val lexer = KotlinLexer()
|
||||
lexer.start(name, 0, name.length)
|
||||
if (lexer.tokenType !== KtTokens.IDENTIFIER) return false
|
||||
lexer.advance()
|
||||
return lexer.tokenType == null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,9 +30,7 @@ import org.jetbrains.kotlin.idea.util.getImplicitReceiversWithInstanceToExpressi
|
||||
import org.jetbrains.kotlin.idea.util.getResolutionScope
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElementSelector
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedExpressionForSelectorOrThis
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.DelegatingBindingTrace
|
||||
import org.jetbrains.kotlin.resolve.bindingContextUtil.getDataFlowInfoBefore
|
||||
@@ -163,8 +161,6 @@ fun KtCallableDeclaration.canOmitDeclaredType(initializerOrBodyExpression: KtExp
|
||||
return canChangeTypeToSubtype && expressionType.isSubtypeOf(declaredType)
|
||||
}
|
||||
|
||||
fun String.quoteIfNeeded(): String = if (KotlinNameSuggester.isIdentifier(this)) this else "`$this`"
|
||||
|
||||
fun String.unquote(): String = KtPsiUtil.unquoteIdentifier(this)
|
||||
|
||||
fun FqName.quoteSegmentsIfNeeded(): String {
|
||||
|
||||
Reference in New Issue
Block a user