From 58cfa7d6e09ec86bb8f0911e19b362394f36e51e Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 4 Feb 2016 17:09:14 +0300 Subject: [PATCH] fixed incorrect first lambda statement on the line --- .../com/intellij/debugger/impl/DebuggerUtilsEx.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java index 0f062bf231cf..753e7f478639 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java @@ -894,9 +894,18 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils { if (body == null || !intersects(lineRange, body)) return null; if (body instanceof PsiCodeBlock) { for (PsiStatement statement : ((PsiCodeBlock)body).getStatements()) { - if (intersects(lineRange, statement)) { + // return first statement starting on the line + if (lineRange.contains(statement.getTextOffset())) { return statement; } + // otherwise check all children + else if (intersects(lineRange, statement)) { + for (PsiElement element : SyntaxTraverser.psiTraverser(statement)) { + if (lineRange.contains(element.getTextOffset())) { + return element; + } + } + } } return null; }