From 8433b8790718471a055c63b8cca2076f2aafe4d0 Mon Sep 17 00:00:00 2001 From: BoD Date: Thu, 16 May 2024 19:13:13 +0200 Subject: [PATCH] Improve the presentation of GraphQL elements when navigating to them --- .../ijplugin/navigation/LogNavigationPsiElement.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/LogNavigationPsiElement.kt b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/LogNavigationPsiElement.kt index 8c26f9ce6b3..9c50fa63b91 100644 --- a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/LogNavigationPsiElement.kt +++ b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/LogNavigationPsiElement.kt @@ -7,6 +7,7 @@ import com.intellij.navigation.NavigationItem import com.intellij.platform.backend.navigation.NavigationRequest import com.intellij.pom.Navigatable import com.intellij.psi.PsiElement +import javax.swing.Icon private class LogNavigationPsiElement( private val wrapped: PsiElement, @@ -24,8 +25,13 @@ private class LogNavigationPsiElement( return (wrapped as? NavigationItem)?.name } - override fun getPresentation(): ItemPresentation? { - return (wrapped as? NavigationItem)?.presentation + override fun getPresentation(): ItemPresentation { + return (wrapped as? NavigationItem)?.presentation ?: object : ItemPresentation { + // We don't want the presentation to be too wide: fallback to the first line of text, truncated to 80 characters + override fun getPresentableText(): String? = wrapped.text.split('\n').firstOrNull()?.take(80) + + override fun getIcon(unused: Boolean): Icon? = null + } } @Suppress("UnstableApiUsage")