为我的自动生成代码实施重构系统

Implementing a refactoring system for my autogenerated code

我有一个用于生成 FSM 的小视觉系统,用户可以在其中使用框(状态)绘制图形并 link 使用线条(转换)绘制图形。这最终会在用户按下在运行时定义 FSM 的 "Generate code" 按钮时生成 c# 代码。

我希望我的用户能够在第一次保存后更改图形名称、转换名称、状态名称、删除节点、删除转换等内容,因此,我需要一种处理重构的方法。

我正在努力寻找一种非侵入性的方式来完成此任务。曾尝试应用我前段时间所做的 do/redo 算法的修改,但无法获得好的结果。

谁能解释一下如何创建这样一个系统,使其尽可能减少对现有代码的干扰?

干杯。

我建议将状态保留在图形数据结构中,并根据 FSM 的更改重新生成 C# 代码,这是一个简单的解决方案,允许任意修改 FSM 数据结构,而不必担心应用上述修改生成的代码。

为了实现 'refactorings' 基本 FSM 数据结构,您可以使用类似 Command Pattern 的东西来封装重构和 undo/redo 操作。