mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-354490 Fixes
GitOrigin-RevId: 9df9d602e6108746d291f5a2d3d04e3f52d20347
This commit is contained in:
committed by
intellij-monorepo-bot
parent
245479dba8
commit
882595690b
+20
-3
@@ -1,13 +1,30 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.lang.java.logical
|
||||
|
||||
import com.intellij.ide.structureView.logical.ConvertElementsProvider
|
||||
import com.intellij.ide.structureView.logical.LogicalStructureElementsProvider
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiClassOwner
|
||||
|
||||
class ClassOwnerLogicalStructureElementsProvider: LogicalStructureElementsProvider<PsiClassOwner, PsiClass> {
|
||||
override fun getElements(parent: PsiClassOwner): List<PsiClass> {
|
||||
return parent.classes.toList()
|
||||
class ClassOwnerLogicalStructureElementsProvider: LogicalStructureElementsProvider<PsiClassOwner, Any> {
|
||||
override fun getElements(parent: PsiClassOwner): List<Any> {
|
||||
val result = mutableListOf<Any>()
|
||||
var convertedAtLeastOne = false
|
||||
for (psiClass in parent.classes) {
|
||||
val convertedModels = LogicalStructureElementsProvider.getProviders(psiClass)
|
||||
.filterIsInstance<ConvertElementsProvider<PsiClass, Any>>()
|
||||
.map { it.convert(psiClass) }
|
||||
.filterNotNull()
|
||||
if (convertedModels.count() > 0) {
|
||||
convertedModels.forEach { result.add(it) }
|
||||
convertedAtLeastOne = true
|
||||
}
|
||||
else {
|
||||
result.add(psiClass)
|
||||
}
|
||||
}
|
||||
if (convertedAtLeastOne) return result
|
||||
return emptyList()
|
||||
}
|
||||
override fun forLogicalModelClass(): Class<PsiClassOwner> = PsiClassOwner::class.java
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user