Fix navigation to file from "breakpoint reached at" info
This commit is contained in:
@@ -88,7 +88,8 @@ public class JetExceptionFilter implements Filter {
|
||||
}
|
||||
|
||||
// Matches strings like "\tat test.TestPackage$foo$f$1.invoke(a.kt:3)\n"
|
||||
private static final Pattern STACK_TRACE_ELEMENT_PATTERN = Pattern.compile("^\\s*at\\s+(.+)\\.(.+)\\((.+):(\\d+)\\)\\s*$");
|
||||
// or "\tBreakpoint reached at test.TestPackage$foo$f$1.invoke(a.kt:3)\n"
|
||||
private static final Pattern STACK_TRACE_ELEMENT_PATTERN = Pattern.compile("^[\\w|\\s]*at\\s+(.+)\\.(.+)\\((.+):(\\d+)\\)\\s*$");
|
||||
|
||||
@Nullable
|
||||
private static StackTraceElement parseStackTraceLine(@NotNull String line) {
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun main(args: Array<String>) {
|
||||
println("hello")
|
||||
}
|
||||
@@ -75,7 +75,7 @@ public class JetExceptionFilterTest extends MultiFileTestCase {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String createStackTraceElementLine(@NotNull String fileName, @NotNull String className, int lineNumber) {
|
||||
private static String createStackTraceElementLine(@NotNull String prefix, @NotNull String fileName, @NotNull String className, int lineNumber) {
|
||||
// Method name doesn't matter
|
||||
String methodName = "foo";
|
||||
|
||||
@@ -83,10 +83,14 @@ public class JetExceptionFilterTest extends MultiFileTestCase {
|
||||
String fileLastName = new File(fileName).getName();
|
||||
|
||||
StackTraceElement element = new StackTraceElement(className, methodName, fileLastName, lineNumber);
|
||||
return "\tat " + element + "\n";
|
||||
return prefix + element + "\n";
|
||||
}
|
||||
|
||||
private void doTest(@NotNull String fileName, int lineNumber, @NotNull Function1<VirtualFile, String> className) {
|
||||
doTest("\tat ", fileName, lineNumber, className);
|
||||
}
|
||||
|
||||
private void doTest(@NotNull String linePrefix, @NotNull String fileName, int lineNumber, @NotNull Function1<VirtualFile, String> className) {
|
||||
if (rootDir == null) {
|
||||
configure();
|
||||
}
|
||||
@@ -97,7 +101,7 @@ public class JetExceptionFilterTest extends MultiFileTestCase {
|
||||
VirtualFile expectedFile = VfsUtilCore.findRelativeFile(fileName, rootDir);
|
||||
assertNotNull(expectedFile);
|
||||
|
||||
String line = createStackTraceElementLine(fileName, className.invoke(expectedFile), lineNumber);
|
||||
String line = createStackTraceElementLine(linePrefix, fileName, className.invoke(expectedFile), lineNumber);
|
||||
Filter.Result result = filter.applyFilter(line, 0);
|
||||
|
||||
assertNotNull(result);
|
||||
@@ -115,6 +119,15 @@ public class JetExceptionFilterTest extends MultiFileTestCase {
|
||||
assertEquals(expectedOffset, descriptor.getOffset());
|
||||
}
|
||||
|
||||
public void testBreakpointReachedAt() {
|
||||
doTest("Breakpoint reached at ", "breakpointReachedAt.kt", 2, new Function1<VirtualFile, String>() {
|
||||
@Override
|
||||
public String invoke(VirtualFile file) {
|
||||
return getPackageClassName(FqName.ROOT);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testSimple() {
|
||||
doTest("simple.kt", 2, new Function1<VirtualFile, String>() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user