自动化重构助手,执行安全的代码转换,包括重命名、提取方法、内联变量、移动代码等。
Version: 1.1
Features: 安全重构、批量操作、预览模式、撤销支持、C/C++ 支持 (NEW)
bash
# 重命名函数
python3 scripts/main.py rename --symbol "old_func" --to "new_func" src/
# 重命名类
python3 scripts/main.py rename --symbol "OldClass" --to "NewClass" --type class src/
bash
# 提取选中的代码为新函数
python3 scripts/main.py extract --file src/main.py --lines 10-25 --name "new_helper"
bash
# 获取重构建议
python3 scripts/main.py suggest src/main.py
bash
# 批量重命名(预览模式)
python3 scripts/main.py batch-rename --pattern "get_(\w+)" --to "fetch_\1" src/ --dry-run
# 确认后执行
python3 scripts/main.py batch-rename --pattern "get_(\w+)" --to "fetch_\1" src/
命令说明示例rename重命名符号rename --symbol X --to Y src/``extract提取方法extract --file X --lines 10-20 --name Y``inline内联变量/函数inline --symbol X src/``move移动代码move --symbol X --to file.py``suggest重构建议suggest src/``batch-rename批量重命名batch-rename --pattern X --to Y src/
所有修改默认预览,不实际执行:
bash
python3 scripts/main.py rename --symbol "foo" --to "bar" src/ --dry-run
# 显示将要修改的文件和内容
# 确认后执行(去掉 --dry-run)
python3 scripts/main.py rename --symbol "foo" --to "bar" src/
每次重构自动创建备份:
text
.refactoring/backup/2026-04-01_175930/
├── src/main.py.bak
└── src/utils.py.bak
bash
# 撤销上一次重构
python3 scripts/main.py undo
# 撤销特定备份
python3 scripts/main.py undo --backup 2026-04-01_175930
bash
# 重命名函数
python3 scripts/main.py rename --symbol "calculate_total" --to "compute_total" src/
# 重命名变量
python3 scripts/main.py rename --symbol "data" --to "user_data" --type var src/
# 重命名类
python3 scripts/main.py rename --symbol "UserManager" --to "UserService" --type class src/
支持:
bash
# 提取代码块为新方法
python3 scripts/main.py extract \
--file src/main.py \
--lines 45-67 \
--name "process_payment" \
--target-class PaymentProcessor
支持:
bash
# 内联变量
python3 scripts/main.py inline --symbol "temp_var" src/
# 内联函数
python3 scripts/main.py inline --symbol "helper_func" --type function src/
bash
# 移动函数到新文件
python3 scripts/main.py move --symbol "utility_func" --to src/utils/helpers.py
# 移动类方法到另一个类
python3 scripts/main.py move --symbol "method_name" --from-class A --to-class B
自动检测代码坏味道并提供重构建议:
bash
python3 scripts/main.py suggest src/
检测的坏味道:
输出示例:
text
🔍 Refactoring Suggestions for src/main.py
⚠️ Long Method: "process_order" (85 lines)
💡 Extract into smaller methods
📍 Line 45-130
⚠️ Duplicate Code: Similar logic in 3 places
💡 Extract common functionality
📍 src/utils.py:23, src/order.py:45, src/payment.py:78
⚠️ Large Class: "OrderManager" (650 lines, 15 methods)
💡 Split into OrderService, PaymentHandler, ShippingManager
bash
# 将所有 get_* 函数重命名为 fetch_*
python3 scripts/main.py batch-rename \
--pattern "get_(\w+)" \
--to "fetch_\1" \
--type function \
src/
bash
# 将所有工具函数移动到 utils 模块
python3 scripts/main.py batch-move \
--pattern "util_\w+" \
--to src/utils/helpers.py \
src/
.refactoring.json:
json
{
"backup": true,
"backup_dir": ".refactoring/backup",
"preview": true,
"ignore": [
"tests/**",
"vendor/**"
],
"rules": {
"max_function_lines": 30,
"max_class_lines": 300,
"max_parameters": 5
}
}
bash
# 重构前自动 stash
git stash
# 执行重构
python3 scripts/main.py rename --symbol "X" --to "Y" src/
# 查看变更
git diff
# 提交重构
git add .
git commit -m "refactor: rename X to Y"
语言重命名提取方法内联移动建议Python✅✅⚠️⚠️✅JavaScript⚠️⚠️❌❌⚠️
bash
# 1. 获取重构建议
python3 scripts/main.py suggest src/
# 2. 重命名不清晰的变量
python3 scripts/main.py rename --symbol "d" --to "user_data" src/
# 3. 提取长方法
python3 scripts/main.py extract --file src/main.py --lines 50-90 --name "validate_input"
# 4. 移除重复代码
python3 scripts/main.py suggest --detect-duplicates src/
bash
# 批量重命名旧 API
python3 scripts/main.py batch-rename \
--pattern "legacy_(\w+)" \
--to "new_\1" \
src/
text
skills/refactoring/
├── SKILL.md # 本文件
└── scripts/
├── main.py # ⭐ 统一入口
├── rename.py # 重命名引擎
├── extract.py # 提取方法
├── suggest.py # 重构建议
└── utils.py # 工具函数
⚠️ 重要提示
--dry-run 预览