Resolve codeFragments with context of JetClass

This commit is contained in:
Natalia Ukhorskaya
2014-11-12 15:13:37 +03:00
parent a86e0336c9
commit 12b4fc7ad9
9 changed files with 82 additions and 25 deletions
@@ -31,6 +31,7 @@ import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.jet.lang.psi.JetExpression
import org.jetbrains.jet.lang.psi.JetBlockExpression
import org.jetbrains.jet.lang.psi.JetBlockCodeFragment
import org.jetbrains.jet.asJava.KotlinLightClass
class KotlinCodeFragmentFactory: CodeFragmentFactory() {
override fun createCodeFragment(item: TextWithImports, context: PsiElement?, project: Project): JavaCodeFragment {
@@ -68,6 +69,10 @@ class KotlinCodeFragmentFactory: CodeFragmentFactory() {
return getContextElement(elementAt.getContext()?.getContext())
}
if (elementAt is KotlinLightClass) {
return getContextElement(elementAt.origin)
}
val expressionAtOffset = PsiTreeUtil.findElementOfClassAtOffset(elementAt.getContainingFile()!!, elementAt.getTextOffset(), javaClass<JetExpression>(), false)
if (expressionAtOffset != null) {
return expressionAtOffset