Refactoring: introduce method for reuse file for single class logic
This commit is contained in:
@@ -35,8 +35,8 @@ import javax.swing.Icon
|
||||
class KotlinIconProvider : IconProvider(), DumbAware {
|
||||
override fun getIcon(psiElement: PsiElement, flags: Int): Icon? {
|
||||
if (psiElement is KtFile) {
|
||||
val mainClass = getMainClass(psiElement)
|
||||
return if (mainClass != null && psiElement.declarations.size == 1) getIcon(mainClass, flags) else KotlinIcons.FILE
|
||||
val mainClass = getSingleClass(psiElement)
|
||||
return if (mainClass != null) getIcon(mainClass, flags) else KotlinIcons.FILE
|
||||
}
|
||||
|
||||
val result = psiElement.getBaseIcon()
|
||||
@@ -48,9 +48,13 @@ class KotlinIconProvider : IconProvider(), DumbAware {
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
var INSTANCE = KotlinIconProvider()
|
||||
|
||||
fun getSingleClass(file: KtFile): KtClassOrObject? {
|
||||
val mainClass = getMainClass(file)
|
||||
return if (mainClass != null && file.declarations.size == 1) mainClass else null
|
||||
}
|
||||
|
||||
fun getMainClass(file: KtFile): KtClassOrObject? {
|
||||
val classes = file.declarations.filterIsInstance<KtClassOrObject>()
|
||||
if (classes.size == 1 && StringUtil.getPackageName(file.name) == classes[0].name) {
|
||||
|
||||
@@ -49,10 +49,8 @@ class KotlinExpandNodeProjectViewProvider : TreeStructureProvider, DumbAware {
|
||||
val childValue = child.value?.asKtFile()
|
||||
|
||||
if (childValue != null) {
|
||||
val declarations = childValue.declarations
|
||||
|
||||
val mainClass = KotlinIconProvider.getMainClass(childValue)
|
||||
if (mainClass != null && declarations.size == 1) {
|
||||
val mainClass = KotlinIconProvider.getSingleClass(childValue)
|
||||
if (mainClass != null) {
|
||||
result.add(KtClassOrObjectTreeNode(childValue.project, mainClass, settings))
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user