KT-10974 - add import layout configuration table
This commit is contained in:
@@ -27,36 +27,12 @@ import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElementSelector
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.resolve.bindingContextUtil.getReferenceTargets
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getImportableDescriptor
|
||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
|
||||
object ImportPathComparator : Comparator<ImportPath> {
|
||||
override fun compare(import1: ImportPath, import2: ImportPath): Int {
|
||||
// alias imports placed last
|
||||
if (import1.hasAlias() != import2.hasAlias()) {
|
||||
return if (import1.hasAlias()) +1 else -1
|
||||
}
|
||||
|
||||
// standard library imports last
|
||||
val stdlib1 = isJavaOrKotlinStdlibImport(import1)
|
||||
val stdlib2 = isJavaOrKotlinStdlibImport(import2)
|
||||
if (stdlib1 != stdlib2) {
|
||||
return if (stdlib1) +1 else -1
|
||||
}
|
||||
|
||||
return import1.toString().compareTo(import2.toString())
|
||||
}
|
||||
|
||||
private fun isJavaOrKotlinStdlibImport(path: ImportPath): Boolean {
|
||||
val s = path.pathStr
|
||||
return s.startsWith("java.") || s.startsWith("javax.") || s.startsWith("kotlin.")
|
||||
}
|
||||
}
|
||||
|
||||
val DeclarationDescriptor.importableFqName: FqName?
|
||||
get() {
|
||||
if (!canBeReferencedViaImport()) return null
|
||||
|
||||
Reference in New Issue
Block a user