IntelliJ 检查以查找没有 'id' 属性的标签

IntelliJ inspection to find tags without 'id' attribute

我需要在 IntelliJ 中设置检查,以查找 xhtml/html/jsf 个没有 `id 属性的页面元素。

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

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

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

我知道正则表达式可以工作,因为在查找框中输入时它会在我的文件中找到匹配项。

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

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

<$name$ $id$>

记得设置正确的文件类型。单击 Edit Variables... 并为 $name$ 提供以下约束:
Text/regexp: h:inputText|h:outputText

$id$以下约束:
Text/regexp: id
出现次数:0,0

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