如何让Eclipse Console将文本超链接到源代码文件?

sal*_*emi 13 eclipse console hyperlink

在Code:System.out.println("myPackage.MyClass");

在Eclipse控制台中:myPackage.MyClass.myMethod

我想在Console中单击输出(myPackage.MyClass.myMethod)并直接显示相应的方法,类似于异常堆栈跟踪所发生的情况.任何的想法?

vik*_*ing 14

也许这对其他人来说很清楚,但我发现其他答案令人困惑,尽管这是正确的.eclipse控制台解析模式(FileName.java:lineNumber)是该文件中该行的链接:

(MyFile.java:2)
Run Code Online (Sandbox Code Playgroud)

正如其他答案所指出的,有很多方法可以将其输出到控制台.在线的位置无关紧要,它只是一种模式匹配.正如Colin Smith所示,log4j PatternLayout可以(%F:%L)用来获取文件名和行号.要以编程方式获取文件名和行号,请​​查看此问题.

问题是关于链接到一个方法,我相信你可以使用Tonny Madsen推荐的consolePatternMatchListeners方法,并在这个问题中有更详细的描述.


Ton*_*sen 9

异常堆栈跟踪的超链接基于该行末尾给出的文件名和行号.例如

Stack trace:

org.eclipse.jface.internal.databinding.provisional.BindingException: string property does not have a read method.
at org.eclipse.jface.internal.databinding.internal.beans.JavaBeanObservableValue.doGetValue(JavaBeanObservableValue.java:102)
at org.eclipse.jface.internal.databinding.internal.beans.JavaBeanObservableValue.setValue(JavaBeanObservableValue.java:83)
Run Code Online (Sandbox Code Playgroud)

对于第一个堆栈跟踪,它位于文件的第102行JavaBeanObservableValue.java.在当前类路径中搜索文件,因此如果您有多个具有相同名称的类,则始终找到第一个...

换句话说,如果要根据示例添加扩展超链接,则需要稍微扩展控制台视图...

...可以使用org.eclipse.ui.console.consolePatternMatchListeners扩展点完成.使用这个扩展点非常容易,通过查看JDT中的示例,您应该能够让您的示例在没有太多工作的情况下工作......


Pet*_*ott 7

一种更简单的方法是欺骗控制台为您创建链接.格式很简单:

System.out.println("(" + new TestBed().getClass().getSimpleName() + ".java:" + 18 + ")");
Run Code Online (Sandbox Code Playgroud)

显然,您可以根据需要在代码中提供类类型和行号.