这只是我之前在编辑器中所做的那些小事之一,这让我在Eclipse中完全疯了。我希望能够将光标跳到窗口的最中心线。我这样做 not 意味着“Recnter”命令,它将光标留在原处,并使其所在的中心居中。我想将光标本身移动到一个新行,即当前位于窗口中间的行。可以吗?
答案 0 :(得分:0)
这是执行此操作的处理程序execute()方法的代码。它可以很容易地通过plugin.xml文件连接到命令和绑定。
public Object execute(ExecutionEvent event) throws ExecutionException {
IEditorPart editorPart = HandlerUtil.getActiveEditorChecked(event);
ITextOperationTarget target = (ITextOperationTarget) editorPart
.getAdapter(ITextOperationTarget.class);
if (!(target instanceof ITextViewer)) return null;
ITextViewer textViewer = (ITextViewer) target;
int topIndex = textViewer.getTopIndex();
int bottomIndex = textViewer.getBottomIndex();
int middle = (topIndex + bottomIndex) / 2;
IDocument doc = textViewer.getDocument();
try {
IRegion widgetLineInformation = doc.getLineInformation(middle);
int widgetOffset = widgetLineInformation.getOffset();
textViewer.getTextWidget().setSelection(widgetOffset);
} catch (BadLocationException e) {
return null;
}
return null;
}