如何找到 ITextViewer 内容的项目?

Str*_*kop 2 eclipse eclipse-jdt

我正在尝试为 Eclipse 插件实现 HyperlinkDetector,回调方法为我提供了一个可以使用的 ITextViewer。

如何获取查看器 IDocument 的项目、IPath 或 IFile?
显然,IDocument 的概念是只允许访问内容,无论来源如何。我能想到的就是检查工作台中的活动编辑器部分......

由于我正在处理的是 Java 代码,因此实际类型是 JavaSourceViewer(如果有帮助的话)。

Von*_*onC 5

看完文章Abstract Syntax Tree后,您可能可以通过询问来寻找正确的路径ITextFileBufferManager

ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager(); // get the buffer manager
Run Code Online (Sandbox Code Playgroud)

然后使用getTextFileBuffer()

 ITextFileBuffer getTextFileBuffer(IDocument document);
Run Code Online (Sandbox Code Playgroud)

如果你得到一个ITextFileBuffer,你可以调用它getLocation()并取回它IPath