我们有一个工具可以从给定的模型生成源代码(用于C#,Java,IOS等)。针对代码生成器缺少的任何功能手动编辑代码。每当对模型进行任何更改并需要从中生成源代码时,对先前版本执行的手动更改都将丢失。
为了最大限度地减少损失,用户编辑的代码块(方法,类,属性等)标有自定义属性(比如CUSTCODE
)。在为新版本生成源时,如果提到了(通过用户)前一版本的路径,系统将比较两个源代码并合并内容如下(在这种情况下,先前版本被视为基础):
为此,我们正在使用Microsoft Roslyn
并正在按预期为C#工作(当然还会执行其他检查,例如使用)
[注意:我可以将Java / C#用于合并应用程序。系统将通过传递params来调用任何应用程序。使用ASTRewriter
for Java]
现在面临的挑战是JS和HTML。目前我们专注于JS。 我们已经检查了几个AST JavaScript解析器,如Rhino,IronJS,astify等。但是我在某些时候被阻止使用它们。
所以我想建立一个自定义合并。由于JavaScript是如此动态,我们(将)设置JS代码的指南。
我们的目的是遵循以下方法:
合并过程的工作原理如下:
我想知道我还需要考虑什么。