我想使用Spotless强制使用'this'关键字。例如:getTowerData().recordMap
是this.getTowerData().recordMap
。
我正在使用Gradle运行Spotless,当前配置如下:
spotless {
java {
importOrder('emu.grasscutter', '', 'java', 'javax', '\\#java', '\\#')
googleJavaFormat('1.15.0')
formatAnnotations()
endWithNewline()
indentWithTabs(2); indentWithSpaces(4)
toggleOffOn()
}
}
目前,我已经尝试使用:
custom('this', {
// Force use of 'this.' keyword
it.replaceAll('^\\s*(?!public|private|protected)(?!class|interface|enum|@interface)\\b(?!return)\\w+\\b', 'this.$0')
})
但这导致:
Step 'google-java-format' found problem in 'src\main\java\emu\grasscutter\auth\AuthenticationSystem.java':
null
java.lang.reflect.InvocationTargetException
Caused by: com.google.googlejavaformat.java.FormatterException: 1:2: error: class, interface, enum, or record expected
1条答案
按热度按时间x8diyxa71#
在devatherock的评论中,提到了Gradle的checkstyle插件,并解决了这个问题。虽然它不是专门的Spotless,但它是解决这个问题的最佳方案。