Files
2026Technology-Competition/jars/pmd/pmd-java-ruleset.xml
T
范智鹏 9c676e46e6 feat: AI 修复预生成 + 审查面板 diff 预览两步确认 + SQLFluff 行号修复 + PMD 内置规则精简
- AI 修复预生成:静态/custom/AI 条目审查时预生成修复片段(originalText/newText),展开问题即显示行级 diff,无预生成时展示占位提示,匹配失败回退实时 LLM 生成

- 修复前 diff 预览:侧边新建编辑器组打开内置 diff,确认后写入(两步确认),不覆盖当前文件

- fix: sqlfluff 在 jinja 标签位于注释内时 JJ01 JSON 缺失 end_line_no/end_line_pos,适配器 Range 构造产生 NaN 被 VSCode 交换 start/end 导致行号 LNaN;新增 resolveSqlFluffRange 兜底 + 面板/report 行号 Number.isFinite 防御

- fix: 从 PMD 内置 ruleset 移除 5 条实际不可触发规则(AvoidAssertAsIdentifier、AvoidEnumAsIdentifier、AccessorClassGeneration、AccessorMethodGeneration、LoosePackageCoupling),内置配置 274→269 条全部可触发,同步 static-rules.json 与翻译脚本

- docs: README/DESIGN 更新
2026-08-25 21:58:14 +08:00

69 lines
2.8 KiB
XML

<?xml version="1.0"?>
<ruleset name="Java Rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>Java Code Review Rules (269 active rules, 7 categories)</description>
<rule ref="category/java/bestpractices.xml">
<exclude name="DefaultLabelNotLastInSwitchStmt"/>
<exclude name="JUnit4TestShouldUseAfterAnnotation"/>
<exclude name="JUnit4TestShouldUseBeforeAnnotation"/>
<exclude name="JUnit4TestShouldUseTestAnnotation"/>
<exclude name="JUnit5TestShouldBePackagePrivate"/>
<exclude name="JUnitAssertionsShouldIncludeMessage"/>
<exclude name="JUnitTestContainsTooManyAsserts"/>
<exclude name="JUnitTestsShouldIncludeAssert"/>
<exclude name="SwitchStmtsShouldHaveDefault"/>
<exclude name="AccessorClassGeneration"/>
<exclude name="AccessorMethodGeneration"/>
</rule>
<rule ref="category/java/codestyle.xml">
<exclude name="GenericsNaming"/>
<exclude name="UnnecessaryLocalBeforeReturn"/>
<exclude name="LongVariable"/>
<exclude name="ShortVariable"/>
<exclude name="ShortMethodName"/>
<exclude name="ShortClassName"/>
</rule>
<rule ref="category/java/design.xml">
<exclude name="AvoidCatchingGenericException"/>
<exclude name="UseObjectForClearerAPI"/>
<exclude name="TooManyMethods"/>
<exclude name="CyclomaticComplexity"/>
<exclude name="NPathComplexity"/>
<exclude name="CognitiveComplexity"/>
<exclude name="NcssCount"/>
<exclude name="TooManyFields"/>
<exclude name="ExcessiveParameterList"/>
<exclude name="ExcessivePublicCount"/>
<exclude name="ExcessiveImports"/>
<exclude name="CouplingBetweenObjects"/>
<exclude name="LoosePackageCoupling"/>
</rule>
<rule ref="category/java/errorprone.xml">
<exclude name="AvoidCatchingNPE"/>
<exclude name="AvoidCatchingThrowable"/>
<exclude name="AvoidLosingExceptionInformation"/>
<exclude name="DontImportSun"/>
<exclude name="NonCaseLabelInSwitchStatement"/>
<exclude name="UselessOperationOnImmutable"/>
<exclude name="AvoidAssertAsIdentifier"/>
<exclude name="AvoidEnumAsIdentifier"/>
</rule>
<rule ref="category/java/multithreading.xml">
<exclude name="AvoidUsingVolatile"/>
<exclude name="DoNotUseThreads"/>
<exclude name="AvoidSynchronizedStatement"/>
</rule>
<rule ref="category/java/performance.xml">
<exclude name="TooFewBranchesForASwitchStatement"/>
</rule>
<rule ref="category/java/security.xml"/>
</ruleset>