Moved enum to top level
This commit is contained in:
@@ -31,12 +31,6 @@ abstract class ImportInsertHelper {
|
|||||||
|
|
||||||
abstract val importSortComparator: Comparator<ImportPath>
|
abstract val importSortComparator: Comparator<ImportPath>
|
||||||
|
|
||||||
enum class ImportDescriptorResult {
|
|
||||||
FAIL,
|
|
||||||
IMPORT_ADDED,
|
|
||||||
ALREADY_IMPORTED
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract fun importDescriptor(file: KtFile, descriptor: DeclarationDescriptor, forceAllUnderImport: Boolean = false): ImportDescriptorResult
|
abstract fun importDescriptor(file: KtFile, descriptor: DeclarationDescriptor, forceAllUnderImport: Boolean = false): ImportDescriptorResult
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@@ -45,3 +39,10 @@ abstract class ImportInsertHelper {
|
|||||||
= ServiceManager.getService<ImportInsertHelper>(project, javaClass<ImportInsertHelper>())
|
= ServiceManager.getService<ImportInsertHelper>(project, javaClass<ImportInsertHelper>())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class ImportDescriptorResult {
|
||||||
|
FAIL,
|
||||||
|
IMPORT_ADDED,
|
||||||
|
ALREADY_IMPORTED
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -160,10 +160,10 @@ public class ShortenReferences(val options: (KtElement) -> Options = { Options.D
|
|||||||
assert(descriptor !in failedToImportDescriptors)
|
assert(descriptor !in failedToImportDescriptors)
|
||||||
|
|
||||||
val result = helper.importDescriptor(file, descriptor)
|
val result = helper.importDescriptor(file, descriptor)
|
||||||
if (result != ImportInsertHelper.ImportDescriptorResult.ALREADY_IMPORTED) {
|
if (result != ImportDescriptorResult.ALREADY_IMPORTED) {
|
||||||
anyChange = true
|
anyChange = true
|
||||||
}
|
}
|
||||||
if (result == ImportInsertHelper.ImportDescriptorResult.FAIL) {
|
if (result == ImportDescriptorResult.FAIL) {
|
||||||
failedToImportDescriptors.add(descriptor)
|
failedToImportDescriptors.add(descriptor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -399,7 +399,7 @@ fun LookupElement.decorateAsStaticMember(
|
|||||||
var insertQualifier = true
|
var insertQualifier = true
|
||||||
if (useImport) {
|
if (useImport) {
|
||||||
psiDocumentManager.commitAllDocuments()
|
psiDocumentManager.commitAllDocuments()
|
||||||
if (ImportInsertHelper.getInstance(context.project).importDescriptor(file, memberDescriptor) != ImportInsertHelper.ImportDescriptorResult.FAIL) {
|
if (ImportInsertHelper.getInstance(context.project).importDescriptor(file, memberDescriptor) != ImportDescriptorResult.FAIL) {
|
||||||
insertQualifier = false
|
insertQualifier = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
|||||||
import org.jetbrains.kotlin.idea.conversion.copy.range
|
import org.jetbrains.kotlin.idea.conversion.copy.range
|
||||||
import org.jetbrains.kotlin.idea.imports.importableFqName
|
import org.jetbrains.kotlin.idea.imports.importableFqName
|
||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
|
import org.jetbrains.kotlin.idea.util.ImportDescriptorResult
|
||||||
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
||||||
import org.jetbrains.kotlin.idea.util.ShortenReferences
|
import org.jetbrains.kotlin.idea.util.ShortenReferences
|
||||||
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
|
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
|
||||||
@@ -49,7 +50,7 @@ class ImportAllMembersIntention : SelfTargetingIntention<KtDotQualifiedExpressio
|
|||||||
val dummyFileText = (file.packageDirective?.text ?: "") + "\n" + (file.importList?.text ?: "")
|
val dummyFileText = (file.packageDirective?.text ?: "") + "\n" + (file.importList?.text ?: "")
|
||||||
val dummyFile = KtPsiFactory(project).createAnalyzableFile("Dummy.kt", dummyFileText, file)
|
val dummyFile = KtPsiFactory(project).createAnalyzableFile("Dummy.kt", dummyFileText, file)
|
||||||
val helper = ImportInsertHelper.getInstance(project)
|
val helper = ImportInsertHelper.getInstance(project)
|
||||||
if (helper.importDescriptor(dummyFile, target, forceAllUnderImport = true) == ImportInsertHelper.ImportDescriptorResult.FAIL) return false
|
if (helper.importDescriptor(dummyFile, target, forceAllUnderImport = true) == ImportDescriptorResult.FAIL) return false
|
||||||
|
|
||||||
text = "Import members from '${targetFqName.parent().asString()}'"
|
text = "Import members from '${targetFqName.parent().asString()}'"
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
|||||||
import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport
|
import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport
|
||||||
import org.jetbrains.kotlin.idea.imports.importableFqName
|
import org.jetbrains.kotlin.idea.imports.importableFqName
|
||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
|
import org.jetbrains.kotlin.idea.util.ImportDescriptorResult
|
||||||
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
||||||
import org.jetbrains.kotlin.idea.util.ShortenReferences
|
import org.jetbrains.kotlin.idea.util.ShortenReferences
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -52,7 +53,7 @@ class ImportMemberIntention : SelfTargetingOffsetIndependentIntention<KtNameRefe
|
|||||||
|
|
||||||
val file = element.getContainingKtFile()
|
val file = element.getContainingKtFile()
|
||||||
val helper = ImportInsertHelper.getInstance(element.project)
|
val helper = ImportInsertHelper.getInstance(element.project)
|
||||||
if (helper.importDescriptor(file, targets.first()) == ImportInsertHelper.ImportDescriptorResult.FAIL) return
|
if (helper.importDescriptor(file, targets.first()) == ImportDescriptorResult.FAIL) return
|
||||||
|
|
||||||
val qualifiedExpressions = file.collectDescendantsOfType<KtDotQualifiedExpression> { qualifiedExpression ->
|
val qualifiedExpressions = file.collectDescendantsOfType<KtDotQualifiedExpression> { qualifiedExpression ->
|
||||||
val selector = qualifiedExpression.getQualifiedElementSelector() as? KtNameReferenceExpression
|
val selector = qualifiedExpression.getQualifiedElementSelector() as? KtNameReferenceExpression
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.idea.imports.getImportableTargets
|
|||||||
import org.jetbrains.kotlin.idea.imports.importableFqName
|
import org.jetbrains.kotlin.idea.imports.importableFqName
|
||||||
import org.jetbrains.kotlin.idea.project.platform
|
import org.jetbrains.kotlin.idea.project.platform
|
||||||
import org.jetbrains.kotlin.idea.refactoring.fqName.isImported
|
import org.jetbrains.kotlin.idea.refactoring.fqName.isImported
|
||||||
|
import org.jetbrains.kotlin.idea.util.ImportDescriptorResult
|
||||||
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
||||||
import org.jetbrains.kotlin.idea.util.getFileResolutionScope
|
import org.jetbrains.kotlin.idea.util.getFileResolutionScope
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.AbstractImportsTest
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
||||||
|
import org.jetbrains.kotlin.idea.util.ImportDescriptorResult
|
||||||
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -48,7 +49,7 @@ public abstract class AbstractAddImportTest : AbstractImportsTest() {
|
|||||||
error("Multiple descriptors found:\n " + descriptors.map { DescriptorRenderer.FQ_NAMES_IN_TYPES.render(it) }.joinToString("\n "))
|
error("Multiple descriptors found:\n " + descriptors.map { DescriptorRenderer.FQ_NAMES_IN_TYPES.render(it) }.joinToString("\n "))
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
val success = ImportInsertHelper.getInstance(getProject()).importDescriptor(file, descriptors.single()) != ImportInsertHelper.ImportDescriptorResult.FAIL
|
val success = ImportInsertHelper.getInstance(getProject()).importDescriptor(file, descriptors.single()) != ImportDescriptorResult.FAIL
|
||||||
if (!success) {
|
if (!success) {
|
||||||
val document = PsiDocumentManager.getInstance(getProject()).getDocument(file)!!
|
val document = PsiDocumentManager.getInstance(getProject()).getDocument(file)!!
|
||||||
document.replaceString(0, document.getTextLength(), "Failed to add import")
|
document.replaceString(0, document.getTextLength(), "Failed to add import")
|
||||||
|
|||||||
Reference in New Issue
Block a user