diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt index 6a7f6283b25..d366ff6cd42 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt @@ -151,9 +151,16 @@ class KotlinCodeFragmentFactory: CodeFragmentFactory() { val containingFile = elementAt.containingFile if (containingFile !is KtFile) return null - var result = PsiTreeUtil.findElementOfClassAtOffset(containingFile, elementAt.textOffset, javaClass(), false) + // elementAt can be PsiWhiteSpace when codeFragment is created from line start offset (in case of first opening EE window) + val lineStartOffset = if (elementAt is PsiWhiteSpace || elementAt is PsiComment) { + PsiTreeUtil.skipSiblingsForward(elementAt, PsiWhiteSpace::class.java, PsiComment::class.java)?.textOffset ?: elementAt.textOffset + } else { + elementAt.textOffset + } + + var result = PsiTreeUtil.findElementOfClassAtOffset(containingFile, lineStartOffset, javaClass(), false) if (result.check()) { - return CodeInsightUtils.getTopmostElementAtOffset(result!!, result.textOffset, KtExpression::class.java) + return CodeInsightUtils.getTopmostElementAtOffset(result!!, lineStartOffset, KtExpression::class.java) } result = KotlinEditorTextProvider.findExpressionInner(elementAt, true)