3

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

<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 标签很丑陋)

4

1 回答 1

3

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

<$name$ $id$>

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

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

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

于 2017-08-22T09:55:54.820 回答