我正在做一个项目,本质上是用户为非常长/重复的代码创建宏的一种方式,这样他们就可以将这些宏放入他们的代码中,以提高可读性并鼓励可重用性。
该项目分为两个区域:一个 RCP 应用程序,用户可以在其中构建宏并将它们保存到文件中,以及 eclipse 中的插件,用户可以在其中插入宏。
RCP 应用程序运行良好,但现在我要实现真正的一点,即我希望 java 查看一段代码并在编译时说“哦,那段代码就是这个意思”。
例如,用户可以创建一个带有macro1
代表代码的标识符的宏System.out.println("Hello World");
。他们想在他们的班级中使用它,foo
如下所示:
class foo{
//lots of java....
macro1
//lots more java
}
我希望用户运行他们的类,并在 Java 编译时将其替换macro1
为它的值。
我已经对此进行了一段时间的研究,并在 JavaCC 上阅读了一些内容并查看了 Ants Replace Task 但我觉得我想继续创建自定义注释以通知 Java 注释下方的这个字符串应该被转换插入/替换为位于特定文本文件中的一段 java 代码。希望以类似的方式结束:
@ExpandMacro
macro1
对我来说,这似乎是可能的,但我不知道我是不是太乐观了!:)
我还担心的一个问题是它作为插件的可部署性如何?如果我创建自定义注释,我将如何使其可供用户使用?
任何建议/见解都会非常有帮助!
编辑:我还研究了看起来非常有趣的Project Lombok 。但是由于 lombok 项目所需的设置量,我再次担心可部署性。