【发布时间】:2017-04-19 09:39:11
【问题描述】:
我正在研究 checkstyle 和 eclipsecs 插件。当我创建新的“检查”(通过打开新模块)时,我注意到他们有高级选项卡,里面有一些奇怪的功能:id、cmets、令牌(自定义检查消息除外——很明显)。你可以在我的截图中看到。
我确实阅读了他们的文档,但没有看到有关这些选项的任何解释。 你能帮我解释一下吗?非常感谢。
【问题讨论】:
我正在研究 checkstyle 和 eclipsecs 插件。当我创建新的“检查”(通过打开新模块)时,我注意到他们有高级选项卡,里面有一些奇怪的功能:id、cmets、令牌(自定义检查消息除外——很明显)。你可以在我的截图中看到。
我确实阅读了他们的文档,但没有看到有关这些选项的任何解释。 你能帮我解释一下吗?非常感谢。
【问题讨论】:
这些是 Eclipse-CS 可视化编辑器正在创建的 checkstyle.xml 中可能的属性。
可以为支票分配一个 ID,以后可以使用它来引用它,例如在某些情况下压制它时。如果您多次使用具有不同属性的相同类型的检查,这将很有用。 This answer 给出了一个利用这个特性的例子。
comment 是 Eclipse-CS 特定的元数据。它实际上只是一个注释文本,保存为检查元数据(metadata 元素)。但它仅由 Eclipse checkstyle 插件解释,并在高级选项卡上再次显示。
翻译 tokens 复选框会在标记列表中添加自然语言(甚至可能是本地化)描述,如果所选检查中存在此类列表。在您的示例中,它不是,因此该复选框对此检查没有影响(但对其他人有效,因为该复选框是全局复选框!)。 以下是一些带有WhitespaceAround 检查示例的屏幕截图,它支持大量令牌。
排序还会影响令牌写入生成的配置文件的顺序。排序似乎与这些标记的数值有关。由于它们是内部的并且对我们的用户不可见,因此它似乎没有什么用处。示例:
未“排序”:
<module name="WhitespaceAround">
<property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,
BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,DO_WHILE,EQUAL,GE,GT,LAND,LCURLY,LE,LITERAL_ASSERT,
LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,
LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE,LOR,LT,MINUS,MINUS_ASSIGN,
MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,RCURLY,SL,SLIST,SL_ASSIGN,SR,
SR_ASSIGN,STAR,STAR_ASSIGN,TYPE_EXTENSION_AND,WILDCARD_TYPE,GENERIC_START,GENERIC_END"/>
</module>
“排序”:
<module name="WhitespaceAround">
<property name="tokens" value="COLON,NOT_EQUAL,QUESTION,DIV,DIV_ASSIGN,BXOR,BXOR_ASSIGN,
MINUS,LCURLY,RCURLY,STAR,STAR_ASSIGN,TYPE_EXTENSION_AND,BAND,LAND,BAND_ASSIGN,MOD,
MOD_ASSIGN,PLUS,PLUS_ASSIGN,LT,GENERIC_START,SL,SL_ASSIGN,LE,ASSIGN,MINUS_ASSIGN,
EQUAL,GENERIC_END,GT,GE,SR,SR_ASSIGN,BSR,BSR_ASSIGN,BOR,BOR_ASSIGN,LOR,LITERAL_ASSERT,
LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,DO_WHILE,
LITERAL_RETURN,SLIST,LITERAL_SYNCHRONIZED,LITERAL_TRY,WILDCARD_TYPE,LITERAL_WHILE"/>
</module>
这些示例是使用 Eclipse-CS 6.14.0 创建的。
【讨论】: