From 3ef51159b8d4abb1fac619a511c21ade17091396 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Tue, 5 Apr 2016 18:17:35 +0300 Subject: [PATCH] Debugger: remove unnecessary whitespaces in presentation of line breakpoint variants --- ChangeLog.md | 1 + .../debugger/breakpoints/KotlinLineBreakpointType.java | 6 ++++++ .../idea/debugger/breakpoints/breakpointTypeUtils.kt | 7 +++++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index b8ced29c2f5..4c5440aea0a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -190,6 +190,7 @@ Issues fixed: - Show error message when debug info for some local variable is corrupted - Avoid 1s delay in completion in debugger fields if session is not stopped on a breakpoint - Avoid cast to runtime type unavailable in current scope +- Fix text with line breaks in popup with line breakpoint variants ### Java to Kotlin converter diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java index fcec300c81e..c612cfc0d38 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java @@ -30,6 +30,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.xdebugger.XSourcePosition; import com.intellij.xdebugger.breakpoints.XBreakpoint; import com.intellij.xdebugger.breakpoints.XLineBreakpoint; +import kotlin.text.StringsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.java.debugger.breakpoints.properties.JavaBreakpointProperties; @@ -155,6 +156,11 @@ public class KotlinLineBreakpointType extends JavaLineBreakpointType { super(position, element, -1); } + @Override + public String getText() { + return StringsKt.replace(super.getText(), " ", "", true); + } + @Override public Icon getIcon() { return KotlinIcons.FUNCTION; diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt index f2120479fc0..fcc3f137002 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt @@ -36,7 +36,9 @@ import org.jetbrains.kotlin.idea.refactoring.getLineNumber import org.jetbrains.kotlin.idea.refactoring.getLineStartOffset import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.endOffset +import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf import org.jetbrains.kotlin.psi.psiUtil.startOffset +import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance import java.util.* fun canPutAt(file: VirtualFile, line: Int, project: Project, breakpointTypeClass: Class<*>): Boolean { @@ -96,11 +98,12 @@ fun computeVariants( val result = LinkedList() - val mainMethod = KotlinLineBreakpointType.getContainingMethod(pos.elementAt) + val elementAt = pos.elementAt.parentsWithSelf.firstIsInstance() + val mainMethod = KotlinLineBreakpointType.getContainingMethod(elementAt) if (mainMethod != null) { result.add(kotlinBreakpointType.KotlinLineBreakpointVariant( XSourcePositionImpl.createByElement(mainMethod), - CodeInsightUtils.getTopmostElementAtOffset(pos.elementAt, pos.offset) ?: mainMethod)) + CodeInsightUtils.getTopmostElementAtOffset(elementAt, pos.offset) ?: mainMethod)) } lambdas.forEachIndexed { ordinal, lambda ->