Jak google tu kilka razy, kiedy rozwija IntelliJ wtyczki emacsIDEAs, ja zostawi moje rozwiązanie tutaj dla kogoś, kto tego potrzebuje. .
zwykle zmienić dokument musi być zrobione w runWriteAction, i cofanie zmian udokumentować potrzebę nazwie w CommandProcessor.getInstance() executeCommand
więc rozwiązanie to: zadzwoń executeCommand w runWriteAction, wówczas zmiany będą niemożliwe do usunięcia.
protected Runnable getRunnableWrapper(final Runnable runnable) {
return new Runnable() {
@Override
public void run() {
CommandProcessor.getInstance().executeCommand(_editor.getProject(), runnable, "cut", ActionGroup.EMPTY_GROUP);
}
};
}
final Runnable runnable = new Runnable() {
@Override
public void run() {
selectJumpArea(jumpTargetOffset);
_editor.getSelectionModel().copySelectionToClipboard();
EditorModificationUtil.deleteSelectedText(_editor);
_editor.getSelectionModel().removeSelection();
}
};
ApplicationManager.getApplication().runWriteAction(getRunnableWrapper(runnable));
kod repo: https://github.com/whunmr/emacsIDEAs
Dzięki Serge Baranov z zespołu wsparcia Intellij IDEA. Natychmiast odpowiedział na moje pytanie, gdy poprosiłem o stronę wsparcia. – kamaci
Tak, obsługa wsparcia IntelliJ jest świetna, to jeden z powodów (nie jedyny), dla którego wolę IntelliJ od Eclipse – Guillaume
Ale na wypadek, gdy chcę przywrócić zmianę, naprawdę chcę przywrócić zmianę. ale nadal pokazuje się w trakcie sprawdzania z katalogu. Przechowywanie lokalnej historii to jedno, ale utrzymywanie historii SVN to kolejna. Oczekuję, że intellij nie będzie pokazywał niczego w poleceniu SVN lub cofnie się po cofnięciu pliku. –