IntelliJ检查找到没有' id'元件

时间:2017-08-21 15:13:20

标签: jsf intellij-idea structural-search

我需要在IntelliJ中设置检查,找到xhtml / html / jsf页面元素而没有' id'属性。

<h:outputText value="myOutputValue"
                        styleClass="someStyle"/>
<h:outputText value="myOtherOutputValue" />

我尝试在结构搜索下在intelliJ中设置代码检查。使用以下正则表达式但我无法正确配置它。任何帮助,将不胜感激。

<(?:h:inputText|h:outputText)(?:\s+(?!id\b)[\w\-.:]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[\w\-.:]+))?)*\s*/?>

我知道正则表达式有效,因为它会在输入到查找框时在我的文件中找到它。

最后一件事,最后我想扩展(?:h:inputText|h:outputText)以包含众多标签,因此如果在检查中使用变量或者使用intelliJ中的其他内容,那么该解决方案将是最佳的。我们希望确保所有开发人员都将id属性放在所有适用的页面元素上,以便于测试。 (JSF标签很可怕)

1 个答案:

答案 0 :(得分:1)

您可以使用结构搜索模式,如下所示:

<$name$ $id$>

请记住设置正确的文件类型。点击Edit Variables...并为 $ name $ 提供以下限制:
文字/正则表达式:h:inputText|h:outputText

$ id $ 以下约束:
文字/正则表达式:id
出现次数:0,0

这将找到没有<h:inputText>属性的所有<h:outputText>id代码。