是否有支持C预处理器的java的IDE?

时间:2012-09-23 08:35:43

标签: java macros editor c-preprocessor

我想找一个java IDE,或者任何方式来配置一个流行的代码编辑器,它可以理解纯 C 预处理器(比如'#if'但不是athenna注释预处理器就像'//# if')在java代码中,如下所示:

class Person
{
#if USE_SHORT_ID
  short m_Id;
#elif
  int m_Id;
#endif
#define DEFAULT_ID 0
#include "some_functions.h"

}

原因:我参与了java项目,该项目在java代码中定义了 C 的宏,然后在编译java代码之前运行预处理器。 这些代码正在成长为一个我迷失的范围:没有代码完成时类,成员,函数名称太多。

1 个答案:

答案 0 :(得分:1)

看起来就像那种“当时看起来像个好主意”的东西......

如果所有宏用途都与您复制的宏用途相似,那么您可以执行以下操作:

types.hj :( java头文件的常用扩展名是什么?!)

#if USE_SHORT_ID
    #define short id_t
#elif
    #define int id_t
#endif

然后在*.java文件中,您只需执行以下操作:

class Person
{
    id_t m_Id;
}

然后,当您调用预处理器时,强制包含types.hj文件。例如,使用GNU cpp,您可以:

$ cpp -include types.hj PersonP.java -o Person.java

这应该足以让您无法禁用IDE自动完成功能。

如果还有其他更有创意的宏用途......那么,这可能无效。