Is it possible to get the current editor pane and edit the contents from an IntelliJ (IDEA) plugin?

I'd like to for example, select some text in the current editor and overwrite it with my own.

I've got this far;

Editor editor = FileEditorManager.getInstance(event.getProject()).getSelectedTextEditor();
VisualPosition position = editor.getCaretModel().getVisualPosition();
Document document = editor.getDocument();
document.insertString(position.column, Character.toString(text.charAt(offset)));

where event is AnActionEvent coming in from the AnAction class.

but it doesn't update the editor panel.

Any pointers much appreciated.

有帮助吗?

解决方案 2

Please see http://confluence.jetbrains.com/display/IDEADEV/IntelliJ+IDEA+Architectural+Overview for some general guidance.

It would be easier to answer your question if you specify your exact usecase.

其他提示

Use document.replaceString(start,end,replaceSting) to replace text in editor.

For more information, see Working with Text:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top