1

我正在寻找一种工具,可以让我:

  • 使用可替换的字符串定义代码模板。示例 -<NAMESPACE>可以替换:

    jclass pJNIActivityClass = pJNIEnv->FindClass("<NAMESPACE>");

  • 基于正则表达式自动插入代码片段。示例 - 将在 //## 处插入新代码:

    public void onCreate ( Bundle savedInstanceState ){
        super.onCreate  ( savedInstanceState ) ;
        //##
    

我发现的现有工具是特定于语言的。我并不真的需要该工具来理解特定语言,尽管如果它可以解析 XML 会更轻松。

对于一些背景。我在闭源应用程序导出 Eclipse 或 Visual Studio 项目(Android 或 Windows)的环境中工作。此导出的代码始终与项目名称空间的例外相同。

这里的想法是能够在这些库存导出的项目上运行一个工具,以自动执行常见的额外功能。

4

2 回答 2

1

对于 FOSS 解决方案,您应该查看 Eclipse Foundation 的Acceleo。它使用像 UML 这样的语言作为输入,并允许您为任何基于文本的语言生成输出。它在大小和功能方面可能有点重,并且需要安装 Eclipse,但它非常擅长代码生成。它还可以很好地处理大型和复杂的模板源,并提供您期望在 IDE 中具有的功能类型。我只使用过旧版本,但我的经验很好。

如果您无法找到 FOSS 解决方案并且可以接受商业解决方案,我推荐EntiPro。自从我使用它已经有一段时间了,但我对它的体验非常积极。它功能强大且灵活,似乎满足您在问题中概述的要求。单座开发人员许可证的价格也很便宜,只需 40 美元。

如果您无法找到 FOSS 解决方案或不想在 EntiPro 上花费 40 美元,您可能需要自己实施解决方案。如果结果是这样,我强烈推荐使用 Terrance Parr 的字符串模板引擎

于 2013-06-01T22:10:25.577 回答
0

Telosys是一个开源代码生成器,您应该尝试一下:http ://www.telosys.org/

它使用基于 Velocity 的模板引擎,因此非常适合“带有可替换字符串的代码模板”的需求

于 2018-10-26T16:00:47.130 回答