mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[kotlin] Render minimum required info from KtClassOrObject
To avoid overloading with comments, annotations etc #KTIJ-26385 GitOrigin-RevId: 224465c5e92f302a8ad1f92354d0443311448b63
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bf8fe44b11
commit
f74684c869
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.PsiNamedElement
|
||||
import com.intellij.psi.PsiWhiteSpace
|
||||
import com.intellij.psi.SmartPsiElementPointer
|
||||
import com.intellij.psi.impl.file.PsiPackageBase
|
||||
import com.intellij.psi.impl.light.LightElement
|
||||
@@ -32,6 +33,7 @@ import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.base.util.collapseSpaces
|
||||
import org.jetbrains.kotlin.idea.util.application.isUnitTestMode
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.allChildren
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
||||
import java.util.*
|
||||
import javax.swing.Icon
|
||||
@@ -145,7 +147,7 @@ private fun <T : PsiElement> getPsiElementPopup(
|
||||
.presentationProvider(presentationProvider)
|
||||
.builderConsumer { builder ->
|
||||
builder
|
||||
.setItemSelectedCallback() { presentation ->
|
||||
.setItemSelectedCallback { presentation ->
|
||||
highlighter?.dropHighlight()
|
||||
val psiElement = (presentation?.item as? SmartPsiElementPointer<*>)?.element ?: return@setItemSelectedCallback
|
||||
highlighter?.highlight(psiElement)
|
||||
@@ -202,6 +204,18 @@ private fun popupPresentationProvider() = object : PsiTargetPresentationRenderer
|
||||
is SeparateFileWrapper -> KotlinBundle.message("refactoring.extract.to.separate.file.text")
|
||||
is PsiPackageBase -> qualifiedName
|
||||
is PsiFile -> name
|
||||
is KtClassOrObject -> {
|
||||
val list = mutableListOf<String>()
|
||||
modifierList?.let {
|
||||
for (child in it.allChildren) {
|
||||
if (child is KtAnnotationEntry || child is KtAnnotation || child is PsiWhiteSpace) continue
|
||||
list.add(child.text)
|
||||
}
|
||||
}
|
||||
getDeclarationKeyword()?.text?.let(list::add)
|
||||
name?.let(list::add)
|
||||
StringUtil.shortenTextWithEllipsis(list.joinToString(separator = " "), 53, 0)
|
||||
}
|
||||
else -> {
|
||||
val text = text ?: "<invalid text>"
|
||||
StringUtil.shortenTextWithEllipsis(text.collapseSpaces(), 53, 0)
|
||||
|
||||
Reference in New Issue
Block a user