我有一个插件(eclipse),它将在打开的 java 类中的当前光标位置添加一个代码片段。我使用以下代码获取光标位置:
final ITextSelection selection = (ITextSelection) editorPart.getEditorSite().getSelectionProvider().getSelection();
final ITextEditor editor = (ITextEditor) editorPart.getAdapter(ITextEditor.class);
final IDocumentProvider documentProvider = editor.getDocumentProvider();
final IDocument document = documentProvider.getDocument(editor.getEditorInput());
final String finalSnippet = snippet.trim();
document.replace(selection.getOffset(), 0, finalSnippet);
当我从保存的 java 类中调用我的插件时,我得到了光标的正确位置。但是,如果我在 java 类中进行任何更改,并在不保存 java 类的情况下调用插件,则光标位置是错误的。好像。上面的代码考虑了 java 类的保存副本并计算位置,而不是在编辑器中打开的当前副本。
我使用以下代码获取编辑器对象:
editorPart = this.window.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
有没有办法让光标的位置(行和列)与编辑器中的完全一样,即使该类是否已保存。