如何在 Jetbrains MPS 的节点上 运行 撤消操作?

How to run an undo action on a node in Jetbrains MPS?

我正在创建一个插件,它将有两个按钮用于在特定节点上执行撤消和重做操作。 我想知道是否可以执行 IDE 撤消和重做操作有问题?

我发现下面的代码在 Jetbrain 的 MPS 中执行撤消和重做操作。

foreach editor in FileEditorManager.getInstance(project).getAllEditors() { 
  if (editor.getName() != null && editor.getName().equals("EDITER_TO_UPDATE")) { 
    SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
        if (operations.equals(Operations.UNDO)) { 
          UndoManagerImpl.getInstance(project).undo(editor); 
        } else if (operations.equals(Operations.REDO)) { 
          UndoManagerImpl.getInstance(project).redo(editor); 
        } 
      } 
    }); 
  } 
}