packageUtils: cleanup code

This commit is contained in:
Dmitry Gridin
2020-04-24 14:18:53 +07:00
parent ac9ad30681
commit b058dc12df
2 changed files with 6 additions and 7 deletions
@@ -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
}