Correct context element for watches

This commit is contained in:
Natalia Ukhorskaya
2014-06-04 18:07:27 +04:00
parent a593738ca6
commit f4b01b5f47
@@ -50,7 +50,7 @@ class KotlinCodeFragmentFactory: CodeFragmentFactory() {
override fun isContextAccepted(contextElement: PsiElement?): Boolean {
if (contextElement is PsiCodeBlock) {
return contextElement.getContext()?.getContext()?.getLanguage() == JetFileType.INSTANCE.getLanguage()
return isContextAccepted(contextElement.getContext())
}
return contextElement?.getLanguage() == JetFileType.INSTANCE.getLanguage()
}
@@ -63,6 +63,10 @@ class KotlinCodeFragmentFactory: CodeFragmentFactory() {
fun getContextElement(elementAt: PsiElement?): PsiElement? {
if (elementAt == null) return null
if (elementAt is PsiCodeBlock) {
return getContextElement(elementAt.getContext())
}
val expressionAtOffset = PsiTreeUtil.findElementOfClassAtOffset(elementAt.getContainingFile()!!, elementAt.getTextOffset(), javaClass<JetExpression>(), false)
if (expressionAtOffset != null) {
return expressionAtOffset