これを行うためのハンドラ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;
}
Eclipseではこれをデフォルトで実行できません。しかし、それを行うためのプラグインがあるかどうかを調べることができます。それを達成する最も近い方法は、Ctrl + Lを使用してダイアログを開き、ジャンプする行の番号を入力することです。 –
いいえ、Eclipseのようなものは何もありません。しかし、私は非常に興味があります(パワーユーザーと、プログラマーのためのツールを開発する時に私の生活を支えた人)、エディタウィンドウの中央に「地理的に」ある行にジャンプしたときにあなたが実際にやっていることは何ですか?おそらく、あなたが失ってしまったと感じるあらゆる効率を取り戻すのに役立つEclipseの他の機能があります。 –
たとえばvimエディタでは、これはMコマンドで実現します。 「画面の真ん中付近にあるものを編集したい」以外の嫌な動機はありません。画面の上部と下部の同様のコマンドも良いでしょう(vimではそれぞれHとL)。 –