Я пишу библиотеку, которая анализирует текстовые файлы, которые не написаны на Java.Когда я сталкиваюсь с синтаксической ошибкой в этих текстовых файлах, я хотел бы создать кликабельную трассировку стека с соответствующим именем файла и номером строки этих файлов.У меня уже есть исключение с этой информацией в имени исключения, но не в трассировке стека.
В идеале мой код должен выглядеть примерно так:
try {
// Try to parse the file
} catch (MySyntaxException e) {
StackTraceElement[] stackTrace = e.getStackTrace();
StackTraceElement[] newStackTrace = new StackTraceElement[stackTrace.length+1];
newStackTrace[0] = new StackTraceElement(e.getClassNameEquivalent(), "", e.getFile(), e.getLineNumber());
System.arraycopy(stackTrace, 0, newStackTrace, 1, stackTrace.length);
e.setStackTrace(newStackTrace);
throw e;
}
Когда я это делаю, яполучить трассировку стека, которая выглядит примерно так:
org.example.MySyntaxException: Something went wrong
at Filename.yaml.(config/files/Filename.yaml:21)
at org.example.MyParser.parse(MyParser.java:41)
// ...
Однако IntelliJ не рассматривает строку Filename.yaml.(config/files/Filename.yaml:21)
как кликабельную.Есть ли способ убедить IDE, что я могу щелкнуть эту строку?