packageUtils: cleanup code
This commit is contained in:
@@ -38,17 +38,17 @@ import java.nio.file.Paths
|
||||
|
||||
fun PsiDirectory.getPackage(): PsiPackage? = JavaDirectoryService.getInstance()!!.getPackage(this)
|
||||
|
||||
fun PsiFile.getFqNameByDirectory(): FqName {
|
||||
val qualifiedNameByDirectory = parent?.getPackage()?.qualifiedName
|
||||
return qualifiedNameByDirectory?.let(::FqName) ?: FqName.ROOT
|
||||
}
|
||||
private fun PsiDirectory.getNonRootFqNameOrNull(): FqName? = getPackage()?.qualifiedName?.let(::FqName)
|
||||
|
||||
fun PsiFile.getFqNameByDirectory(): FqName = parent?.getNonRootFqNameOrNull() ?: FqName.ROOT
|
||||
|
||||
fun PsiDirectory.getFqNameWithImplicitPrefix(): FqName? {
|
||||
val packageFqName = getPackage()?.qualifiedName?.let(::FqName) ?: return null
|
||||
val packageFqName = getNonRootFqNameOrNull() ?: return null
|
||||
sourceRoot?.takeIf { !it.hasExplicitPackagePrefix(project) }?.let { sourceRoot ->
|
||||
val implicitPrefix = PerModulePackageCacheService.getInstance(project).getImplicitPackagePrefix(sourceRoot)
|
||||
return FqName.fromSegments((implicitPrefix.pathSegments() + packageFqName.pathSegments()).map { it.asString() })
|
||||
}
|
||||
|
||||
return packageFqName
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -19,7 +19,6 @@ import org.jetbrains.annotations.NonNls
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefix
|
||||
import org.jetbrains.kotlin.idea.core.quoteIfNeeded
|
||||
import org.jetbrains.kotlin.idea.core.util.CodeInsightUtils
|
||||
import org.jetbrains.kotlin.idea.quickfix.IntentionActionPriority
|
||||
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.CreateFromUsageFixBase
|
||||
@@ -198,7 +197,7 @@ open class CreateClassFromUsageFix<E : KtElement> protected constructor(
|
||||
|
||||
val targetDirectory = dialog.targetDirectory ?: return
|
||||
val fileName = "$className.${KotlinFileType.EXTENSION}"
|
||||
val packageFqName = targetDirectory.getFqNameWithImplicitPrefix()?.quoteIfNeeded()
|
||||
val packageFqName = targetDirectory.getFqNameWithImplicitPrefix()
|
||||
|
||||
file.project.executeWriteCommand(text) {
|
||||
val targetFile = getOrCreateKotlinFile(fileName, targetDirectory, (packageFqName ?: defaultPackageFqName).asString())
|
||||
|
||||
Reference in New Issue
Block a user