IDEA-354490 Customise Structure tool window for Spring elements

GitOrigin-RevId: b0ba9385fc2f8421b3f334aec25431d1a8e985c7
This commit is contained in:
Anton Kozub
2024-08-26 12:56:58 +00:00
committed by intellij-monorepo-bot
parent 90f2e26354
commit f8acffcc57
17 changed files with 388 additions and 0 deletions
@@ -0,0 +1,13 @@
// 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.ide.structureView.logical
import com.intellij.ide.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()
}
override fun forLogicalModelClass(): Class<PsiClassOwner> = PsiClassOwner::class.java
}
@@ -0,0 +1,17 @@
// 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.ide.structureView.logical
import com.intellij.ide.logical.LogicalStructureTreeElementProvider
import com.intellij.ide.structureView.StructureViewTreeElement
import com.intellij.ide.structureView.impl.java.JavaClassTreeElement
import com.intellij.psi.PsiClass
class JavaPsiClassLogicalStructureTreeElementProvider: LogicalStructureTreeElementProvider<PsiClass> {
override fun getModelClass(): Class<PsiClass> = PsiClass::class.java
override fun getTreeElement(model: PsiClass): StructureViewTreeElement {
return JavaClassTreeElement(model, false)
}
}
@@ -0,0 +1,11 @@
// 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.ide.structureView.logical
import com.intellij.ide.logical.ConvertElementsProvider
import com.intellij.psi.PsiClass
abstract class PsiClassLogicalElementProvider<T> : ConvertElementsProvider<PsiClass, T>() {
override fun forLogicalModelClass(): Class<PsiClass> {
return PsiClass::class.java
}
}