From cd32cf78287d977f2f62f41692ca9cb81581141c Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Tue, 21 Jul 2020 02:24:33 +0300 Subject: [PATCH] [ULC] Add PsiElement overrides for UL elements with source --- .../kotlin/asJava/classes/ultraLightField.kt | 16 +++++++++++++++- .../asJava/classes/ultraLightParameters.kt | 13 +++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt index c1cfafe5ec8..e9a02496a74 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt @@ -6,6 +6,9 @@ package org.jetbrains.kotlin.asJava.classes import com.intellij.lang.Language +import com.intellij.navigation.ItemPresentation +import com.intellij.navigation.ItemPresentationProviders +import com.intellij.openapi.util.TextRange import com.intellij.psi.* import com.intellij.psi.impl.light.LightFieldBuilder import com.intellij.psi.util.TypeConversionUtil @@ -62,7 +65,18 @@ internal class KtUltraLightFieldForSourceDeclaration( support: KtUltraLightSupport, modifiers: Set, ) : KtUltraLightFieldImpl(declaration, name, containingClass, support, modifiers), - KtLightFieldForSourceDeclarationSupport + KtLightFieldForSourceDeclarationSupport { + + override fun getText(): String? = kotlinOrigin.text + override fun getTextRange(): TextRange = kotlinOrigin.textRange + override fun getTextOffset(): Int = kotlinOrigin.textOffset + override fun getStartOffsetInParent(): Int = kotlinOrigin.startOffsetInParent + override fun isWritable(): Boolean = kotlinOrigin.isWritable + override fun getNavigationElement(): PsiElement = kotlinOrigin.navigationElement ?: this + override fun getContainingFile(): PsiFile = parent.containingFile + override fun getPresentation(): ItemPresentation? = kotlinOrigin.let { ItemPresentationProviders.getItemPresentation(it) } + override fun findElementAt(offset: Int): PsiElement? = kotlinOrigin.findElementAt(offset) +} internal open class KtUltraLightFieldImpl protected constructor( protected val declaration: KtNamedDeclaration, diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt index 946dd2e711c..dffb024db24 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt @@ -5,6 +5,9 @@ package org.jetbrains.kotlin.asJava.classes +import com.intellij.navigation.ItemPresentation +import com.intellij.navigation.ItemPresentationProviders +import com.intellij.openapi.util.TextRange import com.intellij.psi.* import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.SearchScope @@ -176,6 +179,16 @@ internal class KtUltraLightParameterForSource( kotlinOrigin.setName(name) return this } + + override fun getText(): String? = kotlinOrigin.text + override fun getTextRange(): TextRange = kotlinOrigin.textRange + override fun getTextOffset(): Int = kotlinOrigin.textOffset + override fun getStartOffsetInParent(): Int = kotlinOrigin.startOffsetInParent + override fun isWritable(): Boolean = kotlinOrigin.isWritable + override fun getNavigationElement(): PsiElement = kotlinOrigin.navigationElement + override fun getContainingFile(): PsiFile = parent.containingFile + override fun getPresentation(): ItemPresentation? = kotlinOrigin.let { ItemPresentationProviders.getItemPresentation(it) } + override fun findElementAt(offset: Int): PsiElement? = kotlinOrigin.findElementAt(offset) } internal class KtUltraLightParameterForSetterParameter(