← 返回
未分类

OpenClaw Refactoring

Automated refactoring assistant. Performs safe code transformations including rename, extract method, inline variable, and move code. Provides refactoring su...
自动化重构助手,执行安全的代码转换,包括重命名、提取方法、内联变量和移动代码,提供重构建议
michealxie001 michealxie001 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 307
下载
💾 0
安装
1
版本
#latest

概述

Refactoring

自动化重构助手,执行安全的代码转换,包括重命名、提取方法、内联变量、移动代码等。

Version: 1.0

Features: 安全重构、批量操作、预览模式、撤销支持


Quick Start

1. 重命名符号

# 重命名函数
python3 scripts/main.py rename --symbol "old_func" --to "new_func" src/

# 重命名类
python3 scripts/main.py rename --symbol "OldClass" --to "NewClass" --type class src/

2. 提取方法

# 提取选中的代码为新函数
python3 scripts/main.py extract --file src/main.py --lines 10-25 --name "new_helper"

3. 重构建议

# 获取重构建议
python3 scripts/main.py suggest src/main.py

4. 批量重构

# 批量重命名(预览模式)
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/

Commands

命令说明示例
------------------
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/

Safety Features

预览模式 (--dry-run)

所有修改默认预览,不实际执行:

python3 scripts/main.py rename --symbol "foo" --to "bar" src/ --dry-run
# 显示将要修改的文件和内容

# 确认后执行(去掉 --dry-run)
python3 scripts/main.py rename --symbol "foo" --to "bar" src/

自动备份

每次重构自动创建备份:

.refactoring/backup/2026-04-01_175930/
├── src/main.py.bak
└── src/utils.py.bak

撤销操作

# 撤销上一次重构
python3 scripts/main.py undo

# 撤销特定备份
python3 scripts/main.py undo --backup 2026-04-01_175930

Refactoring Types

Rename(重命名)

# 重命名函数
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/

支持:

  • 智能识别符号类型
  • 处理作用域冲突
  • 更新所有引用
  • 保留原始注释

Extract Method(提取方法)

# 提取代码块为新方法
python3 scripts/main.py extract \
  --file src/main.py \
  --lines 45-67 \
  --name "process_payment" \
  --target-class PaymentProcessor

支持:

  • 自动识别参数
  • 处理返回值
  • 提取到类或模块级别

Inline(内联)

# 内联变量
python3 scripts/main.py inline --symbol "temp_var" src/

# 内联函数
python3 scripts/main.py inline --symbol "helper_func" --type function src/

Move(移动)

# 移动函数到新文件
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

Suggestions(重构建议)

自动检测代码坏味道并提供重构建议:

python3 scripts/main.py suggest src/

检测的坏味道:

  • Long Method - 方法过长
  • Large Class - 类过大
  • Duplicate Code - 重复代码
  • Long Parameter List - 参数过多
  • Feature Envy - 特性依恋
  • Switch Statements - 复杂条件

输出示例:

🔍 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

Batch Operations(批量操作)

批量重命名

# 将所有 get_* 函数重命名为 fetch_*
python3 scripts/main.py batch-rename \
  --pattern "get_(\w+)" \
  --to "fetch_\1" \
  --type function \
  src/

批量移动

# 将所有工具函数移动到 utils 模块
python3 scripts/main.py batch-move \
  --pattern "util_\w+" \
  --to src/utils/helpers.py \
  src/

Configuration

.refactoring.json:

{
  "backup": true,
  "backup_dir": ".refactoring/backup",
  "preview": true,
  "ignore": [
    "tests/**",
    "vendor/**"
  ],
  "rules": {
    "max_function_lines": 30,
    "max_class_lines": 300,
    "max_parameters": 5
  }
}

Git 集成

# 重构前自动 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"

Supported Languages

语言重命名提取方法内联移动建议
------------------------------------------
Python⚠️⚠️
JavaScript⚠️⚠️⚠️

Examples

场景 1:清理代码

# 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/

场景 2:API 迁移

# 批量重命名旧 API
python3 scripts/main.py batch-rename \
  --pattern "legacy_(\w+)" \
  --to "new_\1" \
  src/

Files

skills/refactoring/
├── SKILL.md                    # 本文件
└── scripts/
    ├── main.py                 # ⭐ 统一入口
    ├── rename.py               # 重命名引擎
    ├── extract.py              # 提取方法
    ├── suggest.py              # 重构建议
    └── utils.py                # 工具函数

Safety First

⚠️ 重要提示

  1. 始终在 Git 仓库中操作
  2. 先使用 --dry-run 预览
  3. 确保测试通过后再提交
  4. 大型重构分步执行

Roadmap

  • [x] 重命名符号(Python)
  • [ ] 提取方法(Python)
  • [ ] 内联变量(Python)
  • [ ] 移动代码
  • [ ] 重构建议
  • [ ] JavaScript 支持
  • [ ] IDE 集成

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 11:37 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

content-creation

中文学术论文写作助手

michealxie001
中文论文写作全流程助手,覆盖选题、构思、大纲、开题报告、文献综述、分章写作、引用管理、语言润色、投稿自检。专为中文、历史、哲学、文学等人文学科设计,内置《中华文哲研究集刊》等引用规范,支持脚注与参考文献自动格式化。仅基于用户提供真实资料,绝
★ 4 📥 1,591
dev-programming

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 72 📥 182,114
dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 195 📥 67,774