代码修复
华为云码道代码智能体IDE提供了强大的自动修复问题能力,覆盖人工提交、AI审查及工具告警等多源场景。支持单条与批量处理,实现从问题发现到修复的高效闭环,显著提升代码质量与开发效率。
约束与限制
| 限制类别 | 具体限制 |
|---|---|
| 执行环境要求 |
|
代码修复命令说明
以下为您详细介绍四大核心命令的具体用法。
/bugfix命令说明
命令功能:根据用户提交的问题单描述,自动调用修复专家智能体进行代码问题修复。
语法格式:
/bugfix <description>
| 参数 | 描述 |
|---|---|
| description | 问题的具体描述文本,如“用户登录时出现空指针异常”。 |
使用示例:
/bugfix "用户登录时出现空指针异常"
/fix-review命令使用说明
命令功能:针对单条代码检视意见(来自代码审查智能体review agent),执行针对性修复。这个命令一次只处理一条意见,适合精细化调整。
语法格式:
/fix-review <review_text>
| 参数 | 描述 |
|---|---|
| review_text | JSON文件中其中一个问题的整体结果 |
/fix-review " {
"severity": "High",
"ruleId": "G.CLS.06-CPP",
"ruleDescription": "禁止在构造函数和析构函数中调用虚函数",
"file": "src/Base.cpp",
"line": "4",
"issueDetails": "Base类的构造函数中调用了虚函数Initialize()。当构造Derived对象时,会先调用Base构造函数,此时对象尚未完成Derived部分的构造,虚函数表仍指向Base类,因此Initialize()调用的是Base::Initialize()而非Derived::Initialize(),导致未实现多态行为。此外,Derived构造函数中又再次调用了Initialize()(第28行),导致Initialize()被调用了两次(第一次调用Base版本,第二次调用Derived版本),行为非预期。",
"fixSuggestion": "将构造函数中需要的初始化逻辑提取为非虚函数(如private的InitImpl),或在Base构造函数中直接执行基类所需的初始化操作,而非调用虚函数。例如:\n\n// 方案1:将初始化逻辑提取为非虚私有函数\nBase::Base(const std::string& n) : name(n) {\n DoBaseInit(); // 非虚函数\n}\n\nvoid Base::DoBaseInit() {\n std::cout << \"Base Initialize for \" << name << \"\\n\";\n}\n\n// 方案2:在各自构造函数中直接执行初始化,不通过虚函数间接调用\nBase::Base(const std::string& n) : name(n) {\n std::cout << \"Base Initialize for \" << name << \"\\n\";\n}\n\nDerived::Derived(const std::string& n, int v) : Base(n), value(v) {\n std::cout << \"Derived Initialize for \" << name << \" with value \" << value << \"\\n\";\n}"
}" /fix-review-batch命令使用说明
命令功能:批量处理并修复由代码审查智能体review agent生成的多条代码检视意见。这个命令适合在批量提交代码后,一次性解决所有审查意见,提高效率。
语法格式:
/fix-review-batch [filter] [file1.json file2.json file3.json ...]
| 参数 | 描述 |
|---|---|
| filter | 可选参数,审查意见等级,可通过自然语言描述,如严重、致命、高等级、高风险、中风险、低风险等。 |
| file1.json file2.json file3.json ... | 待修复JSON文件路径,支持配置一个或多个,多个之间用空格分隔。 每个JSON文件对单个文件的检视意见不得超过100条。如图1,在Base.cpp对应的JSON文件中,针对Base.cpp的检视意见总数不能超过100条。 |
使用示例:
- 基础用法:指向一个或多个JSON文件
/fix-review-batch /path/to/review.json /fix-review-batch /path/to/review1.json /path/to/review2.json
- 按严重程度筛选:只修复标记为“高严重性”的问题
/fix-review-batch 高严重性 /path/to/review.json
/fix-codeartscheck-batch命令使用说明
命令功能:专门用于修复由代码检查CodeArts Check工具产生的告警。
语法格式:
/fix-codeartscheck-batch file_name1.json file_name2.json ...
| 参数 | 描述 |
|---|---|
| file_name1.json file_name2.json ... | CodeArts Check扫描后通常会生成一个JSON文件,里面记录了所有发现的代码问题。此处请配置为上述JSON文件的路径。支持配置一个或多个,多个之间用空格分隔。 |
/fix-codeartscheck-batch D:\TestCode\codecheck-result1.json codecheck-result2.json
代码修复示例
以使用“/fix-review-batch”命令进行代码修复为例。
- 参考快速启动中操作,登录华为云码道代码智能体IDE。
- (可选)请确认是否已存在JSON格式的检视意见文件。不存在,可通过“/review”命令获取,已存在则直接跳过本步骤。
- 单击输入框中的
,选择“快捷指令”。 - 在弹出的菜单中选择“/review”命令,单击发送图标
。 - 等待命令执行完成,系统会自动生成检视意见文件review.json。
在资源管理器项目根目录的“.codeartsdoer/review”路径下,会生成一个以“年-月-日_时-分-秒-毫秒-随机字符串”格式命名的文件夹。在该文件夹的report目录下,即可查看到review.json。关于“/review”命令的详细介绍,请参见代码审查。
- 单击输入框中的
- 通过“/fix-review-batch”命令,修复review.json文件中的检视意见。
- 单击输入框中的
,选择“快捷指令”,在弹出的菜单中选择“/fix-review-batch”命令。 - 输入包含代码审查意见的JSON文件路径,单击发送图标
。 图2 执行代码修复
- 等待命令执行完成,智能体告知您修改的问题数、严重度和修复内容等。
- 单击输入框中的
- 确认检视意见是否修改。
再次执行“/review”命令,检查是否完成修复。
