我们使用Lombok,我的架构师希望我们总是使用Lombok @ToString而不是自定义实现。我希望IntelliJ将任何toString()实现标记为警告。我该怎么做呢?我使用的是IntelliJ Ultimate 2023.3
@ToString
toString()
mw3dktmi1#
你可以create your own inspections。进入设置->编辑器->检查,然后点击“+”按钮:x1c 0d1x的数据选择“添加结构搜索检验”或“添加结构替换检验”,具体取决于您是否希望“快速修复”问题。下面是一个例子,找到一个包含toString的类,用同一个类替换它,但删除了那个方法,并添加了一个@ToString注解。寻找:
toString
class $ClassName$ { public String toString() { $Statements$; } $OtherMembers$}
class $ClassName$ {
public String toString() {
$Statements$;
}
$OtherMembers$
字符串注意,$Statements$上有一个count修饰符,允许0个或多个示例(由于这是由Structural Search驱动的,public String toString()还匹配finaltoString方法等。替换为:
$Statements$
public String toString()
final
@lombok.ToStringclass $ClassName$ { $OtherMembers$}
@lombok.ToString
型
的请注意,这将突出显示整个类,因为整个类都需要替换。或者,你可以只 findtoString的示例。你只需要找到:
public String $toString$() { $Statements$;}
public String $toString$() {
型$toString$上有一个文本修饰符,确保它的文本始终是toString。这样做允许您将匹配的目标设置为$toString$,只突出显示toString部分。同样,$Statements$上有一个计数修饰符。确保“Language”选项设置为“Java - Class Member”。
$toString$
的最后,这里是从上面的检查导出的XML文件。您可以在检查设置页面中导入此文件。
<component name="InspectionProjectProfileManager"> <profile version="1.0"> <option name="myName" value="Some Name" /> <inspection_tool class="SSBasedInspection" enabled="true" level="WARNING" enabled_by_default="true"> <searchConfiguration name="No toStrings" uuid="7d07a3df-3fe8-3f60-9714-6cd79f56ae5e" text="public String $toString$() { $Statements$; }" recursive="true" caseInsensitive="true" type="JAVA" pattern_context="member"> <constraint name="__context__" within="" contains="" /> <constraint name="Statements" minCount="0" maxCount="2147483647" within="" contains="" /> <constraint name="toString" regexp="toString" target="true" within="" contains="" /> </searchConfiguration> <replaceConfiguration name="No toStrings wtih replacement" uuid="6ad09c43-eac2-3f8f-b2c3-8061201ea2ad" text="class $ClassName$ { public String toString() { $Statements$; } $OtherMembers$ }" recursive="false" caseInsensitive="true" type="JAVA" pattern_context="default" reformatAccordingToStyle="true" shortenFQN="true" replacement="@ToString class $ClassName$ { $OtherMembers$ }"> <constraint name="__context__" within="" contains="" /> <constraint name="Statements" minCount="0" maxCount="2147483647" within="" contains="" /> <constraint name="ClassName" within="" contains="" /> <constraint name="OtherMembers" within="" contains="" /> </replaceConfiguration> </inspection_tool> </profile></component>
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Some Name" />
<inspection_tool class="SSBasedInspection" enabled="true" level="WARNING" enabled_by_default="true">
<searchConfiguration name="No toStrings" uuid="7d07a3df-3fe8-3f60-9714-6cd79f56ae5e" text="public String $toString$() { $Statements$; }" recursive="true" caseInsensitive="true" type="JAVA" pattern_context="member">
<constraint name="__context__" within="" contains="" />
<constraint name="Statements" minCount="0" maxCount="2147483647" within="" contains="" />
<constraint name="toString" regexp="toString" target="true" within="" contains="" />
</searchConfiguration>
<replaceConfiguration name="No toStrings wtih replacement" uuid="6ad09c43-eac2-3f8f-b2c3-8061201ea2ad" text="class $ClassName$ { public String toString() { $Statements$; } $OtherMembers$ }" recursive="false" caseInsensitive="true" type="JAVA" pattern_context="default" reformatAccordingToStyle="true" shortenFQN="true" replacement="@ToString class $ClassName$ { $OtherMembers$ }">
<constraint name="ClassName" within="" contains="" />
<constraint name="OtherMembers" within="" contains="" />
</replaceConfiguration>
</inspection_tool>
</profile>
</component>
1条答案
按热度按时间mw3dktmi1#
你可以create your own inspections。
进入设置->编辑器->检查,然后点击“+”按钮:
x1c 0d1x的数据
选择“添加结构搜索检验”或“添加结构替换检验”,具体取决于您是否希望“快速修复”问题。
下面是一个例子,找到一个包含
toString
的类,用同一个类替换它,但删除了那个方法,并添加了一个@ToString
注解。寻找:
字符串
注意,
$Statements$
上有一个count修饰符,允许0个或多个示例(由于这是由Structural Search驱动的,
public String toString()
还匹配final
toString
方法等。替换为:
型
的
请注意,这将突出显示整个类,因为整个类都需要替换。
或者,你可以只 find
toString
的示例。你只需要找到:型
$toString$
上有一个文本修饰符,确保它的文本始终是toString
。这样做允许您将匹配的目标设置为$toString$
,只突出显示toString
部分。同样,$Statements$
上有一个计数修饰符。确保“Language”选项设置为“Java - Class Member”。的
最后,这里是从上面的检查导出的XML文件。您可以在检查设置页面中导入此文件。
型