JavaFX:如何在 codeArea 上创建撤消点

JavaFX: How to create an undo point on a codeArea

我有一个代码区 (org.fxmisc.richtext.CodeArea)。它支持用于撤消的热键 CTRL-Z 和用于重做的 CTRL-Y。

我正在以编程方式在插入符号位置插入文本。 现在当我点击撤消时,这个撤消比撤消文本插入更进一步,它撤消了文件的创建,因此代码区域再次为空。

我想在插入文本之前创建一个撤消保存点。 一定有办法做到这一点(我希望!)。

public void insertText(String text) 
{
    //TODO insert code here to create an undo point
    int index = codeArea.getCaretPosition();
    codeArea.insertText(index, text);
}

使用UndoManager:

public void insertText(String text) 
{
    codeArea.getUndoManager().mark();
    int index = codeArea.getCaretPosition();
    codeArea.insertText(index, text);
}