2014-04-05 41 views
0

我现在正在编写一个小型Eclipse插件。
在插件中,程序会在这个.java文件中获取.java和行号
我的问题是如何使用文件名和行号来突出显示整行并跳转到该行?
如何在eclipse中突出显示或添加注释?(java)

例如,程序获取template.java和第38行,如何突出显示template.java中的第38行并跳转到第38行?

我是新来的eclipse插件。
请帮助
感谢很多

+0

欢迎来到SO!你有没有尝试过特别的东西?如果包含迄今为止获得的代码,获得帮助可能会更容易。 – ATG

回答

0

这是改编自标准Goto Line动作代码:

private void gotoLine(int line) { 

    ITextEditor editor = getTextEditor(); 
    // TODO check for null editor 

    IDocumentProvider provider = editor.getDocumentProvider(); 
    IDocument document = provider.getDocument(editor.getEditorInput()); 

    try { 
    int start = document.getLineOffset(line); 

    int length = document.getLineLength(line); 

    editor.selectAndReveal(start, length); 

    // Ensure editor is active - you may not need this 
    IWorkbenchPage page = editor.getSite().getPage(); 
    page.activate(editor); 
    } catch (BadLocationException x) { 
    // ignore 
    } 
} 

这需要getTextEditor()方法,这可能是像

ITextEditor getTextEditor() 
{ 
    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 

    IEditorPart editor = page.getActiveEditor(); 

    if (editor instanceof ITextEditor) { 
    return (ITextEditor)editor; 
    } 

    return null; 
} 

取决于你的插件如何运行,可能有更好的方法来确定文本编辑器。

+0

感谢您的回复。 Platform.getworkbench()有一个错误,“方法getWorkbench()未定义类型的平台”。我应该导入一些东西?或添加任何依赖关系? – Ivan

+0

对不起我的错,应该是PlatformUI –

+0

谢谢!我可以再问一个问题吗?如何切换到目标TextEditor?我的意思是我们在项目中有多个.java。我可以指定哪个编辑器突出显示该行吗? – Ivan

相关问题