[ULC] Add PsiElement overrides for UL elements with source

This commit is contained in:
Igor Yakovlev
2020-07-21 02:24:33 +03:00
parent 131c14626c
commit cd32cf7828
2 changed files with 28 additions and 1 deletions
@@ -6,6 +6,9 @@
package org.jetbrains.kotlin.asJava.classes package org.jetbrains.kotlin.asJava.classes
import com.intellij.lang.Language 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.*
import com.intellij.psi.impl.light.LightFieldBuilder import com.intellij.psi.impl.light.LightFieldBuilder
import com.intellij.psi.util.TypeConversionUtil import com.intellij.psi.util.TypeConversionUtil
@@ -62,7 +65,18 @@ internal class KtUltraLightFieldForSourceDeclaration(
support: KtUltraLightSupport, support: KtUltraLightSupport,
modifiers: Set<String>, modifiers: Set<String>,
) : KtUltraLightFieldImpl(declaration, name, containingClass, support, modifiers), ) : 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( internal open class KtUltraLightFieldImpl protected constructor(
protected val declaration: KtNamedDeclaration, protected val declaration: KtNamedDeclaration,
@@ -5,6 +5,9 @@
package org.jetbrains.kotlin.asJava.classes 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.*
import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.LocalSearchScope
import com.intellij.psi.search.SearchScope import com.intellij.psi.search.SearchScope
@@ -176,6 +179,16 @@ internal class KtUltraLightParameterForSource(
kotlinOrigin.setName(name) kotlinOrigin.setName(name)
return this 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( internal class KtUltraLightParameterForSetterParameter(