[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
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<String>,
) : 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,
@@ -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(