1
0
mirror of synced 2026-05-22 14:43:15 +00:00
Files
Sa-Token/.cursor/skills/remove-redundancy-import/SKILL.md
T

77 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: remove-redundancy-import
description: 检查 Java 类中未被引用的冗余 import 并移除。先输出待审阅计划,用户确认后执行。适用于用户要求清理冗余导包、优化 import、或执行 remove-redundancy-import 时使用。
---
# 移除冗余 import
检查项目中所有 Java 类的未使用 import,生成清理计划供用户审阅,确认后执行移除。
## 使用时机
- 用户要求清理冗余导包
- 用户要求优化 Java import
- 用户明确执行 `remove-redundancy-import` 或提及本 Skill 名称
## 强制流程
**必须先输出计划,用户确认后再执行移除。** 不得在未审阅的情况下直接修改文件。
## 工作流程
### 第一步:扫描与解析
**优先使用内置脚本**:在 Skill 目录下的 [scan_redundant_imports.py](scan_redundant_imports.py) 已实现完整扫描逻辑,可直接复用。
```bash
# 在项目根目录执行
python .cursor/skills/remove-redundancy-import/scan_redundant_imports.py
# 或指定扫描根路径
python .cursor/skills/remove-redundancy-import/scan_redundant_imports.py .
```
脚本输出格式:`文件路径 | 冗余import1; import2 | 数量`,末尾两行为 `TOTAL_FILES:N``TOTAL_IMPORTS:M`
**若无 Python 环境**,可手动执行:
1. 使用 `Glob` 查找项目内所有 `**/*.java` 文件
2. 对每个文件:提取 `package``import`,按 [reference.md](reference.md) 判定是否被使用
3. 汇总存在冗余 import 的文件及列表
### 第二步:输出计划
使用下方模板生成计划报告,等待用户确认:
```markdown
## 冗余 import 清理计划
| 文件 | 待移除 import | 数量 |
|------|---------------|------|
| path/to/Foo.java | `java.util.Date`, `java.sql.Timestamp` | 2 |
| ... | ... | ... |
**共 N 个文件,M 处冗余 import。确认后执行移除。**
```
### 第三步:执行移除
用户确认后,对计划中的每个文件使用 `StrReplace` 移除对应 import 行:
- 逐行移除,每行格式为 `import ...;``import static ...;`
- 若某 import 后紧跟空行,可一并移除空行以保持格式整洁
- 移除后确认文件无语法错误
## 检测规则概要
- **普通 import**:取最后一段类名(如 `java.util.List``List`),在类体中搜索 `\bList\b`
- **static import**:取方法/字段名,在类体中搜索
- **同包冗余**:import 的包与当前文件 `package` 相同则视为冗余
- **通配符**`import pkg.*` 跳过,不自动处理
详见 [reference.md](reference.md)。
## 注意事项
- 通配符 import 无法可靠判断,一律跳过
- 注解中的类型引用采用保守策略,宁可漏检不误删
- 移除后建议用户运行 `mvn compile` 验证