How can I get the selected code in Eclipse?(如何在 Eclipse 中获取选定的代码?)
问题描述
对于我的插件,我正在尝试访问 CompilationUnitEditor 中的选定代码.因此,我向上下文菜单添加了一个贡献并使用以下代码:
For my plugin I'm trying to access the selected code in a CompilationUnitEditor. Therefore I added a contribution to the context menu and use following code:
public class ContextMenuHandler implements IEditorActionDelegate {
private IEditorPart editorPart;
@Override
public void setActiveEditor(IAction action, IEditorPart editorPart) {
this.editorPart = editorPart;
}
@Override
public void run(IAction action) {
JavaUI.getEditorInputJavaElement(editorPart.getEditorInput());
}
@Override
public void selectionChanged(IAction action, ISelection selection) {
if (selection instanceof TextSelection) {
TextSelection text = (TextSelection) selection;
System.out.println("Text: " + text.getText());
} else {
System.out.println(selection);
}
}
}
现在的问题是方法 selectionChanged(...) 仅在我真正选择某些内容时才被调用,以便我可以复制/粘贴它.但我想访问像这样突出显示的代码元素(这里我想获取IEditorPart")
Now the problem is that the method selectionChanged(...) is only called when i really select something so that I could copy/paste it. But I want to access the Code elements that are highlighted like this (here I would like to get the "IEditorPart")
不幸的是,我不知道我应该寻找什么.
Unfortunately, I have no idea what I should look for.
推荐答案
使用其他答案的输入,我最终得到了以下解决方案:
Using the inputs from the other answers, I ended up with the following solution:
@Override
public void setActiveEditor(IAction action, IEditorPart editorPart) {
((CompilationUnitEditor) editorPart).getViewer().addTextListener(new ITextListener() {
@Override
public void textChanged(TextEvent event) {
selectedText = event.getText();
}
});
}
这篇关于如何在 Eclipse 中获取选定的代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 Eclipse 中获取选定的代码?
基础教程推荐
- 存储 20 位数字的数据类型 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
