更新时间:2026-07-30 GMT+08:00
分享

代码修复

华为云码道代码智能体IDE提供了强大的自动修复问题能力,覆盖人工提交、AI审查及工具告警等多源场景。支持单条与批量处理,实现从问题发现到修复的高效闭环,显著提升代码质量与开发效率。

约束与限制

表1 约束与限制

限制类别

具体限制

执行环境要求

  • 执行代码修复命令前,需确保待修复代码与代码检查JSON文件严格一一对应。
  • /fix-review-batch命令依赖于代码审查智能体Review Agent的检测结果review.json。
  • /fix-codeartscheck-batch依赖于代码检查CodeArts Check的检测结果。

代码修复命令说明

以下为您详细介绍四大核心命令的具体用法。

/bugfix命令说明

命令功能:根据用户提交的问题单描述,自动调用修复专家智能体进行代码问题修复。

语法格式:

/bugfix <description>
表2 /bugfix命令参数说明

参数

描述

description

问题的具体描述文本,如“用户登录时出现空指针异常”。

使用示例:

/bugfix "用户登录时出现空指针异常"

/fix-review命令使用说明

命令功能:针对单条代码检视意见(来自代码审查智能体review agent),执行针对性修复。这个命令一次只处理一条意见,适合精细化调整。

语法格式

/fix-review <review_text>
表3 /fix-review命令参数说明

参数

描述

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 ...]
表4 /fix-review-batch命令参数说明

参数

描述

filter

可选参数,审查意见等级,可通过自然语言描述,如严重、致命、高等级、高风险、中风险、低风险等。

file1.json file2.json file3.json ...

待修复JSON文件路径,支持配置一个或多个,多个之间用空格分隔。

每个JSON文件对单个文件的检视意见不得超过100条。图1,在Base.cpp对应的JSON文件中,针对Base.cpp的检视意见总数不能超过100条。

图1 Base.cpp文件检视意见

使用示例

  • 基础用法:指向一个或多个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 ...
表5 /fix-codeartscheck-batch命令参数说明

参数

描述

file_name1.json file_name2.json ...

CodeArts Check扫描后通常会生成一个JSON文件,里面记录了所有发现的代码问题。此处请配置为上述JSON文件的路径。支持配置一个或多个,多个之间用空格分隔。

使用示例
/fix-codeartscheck-batch D:\TestCode\codecheck-result1.json codecheck-result2.json

代码修复示例

以使用“/fix-review-batch”命令进行代码修复为例。

  1. 参考快速启动中操作,登录华为云码道代码智能体IDE。
  2. (可选)请确认是否已存在JSON格式的检视意见文件。不存在,可通过“/review”命令获取,已存在则直接跳过本步骤。

    1. 单击输入框中的 ,选择“快捷指令”
    2. 在弹出的菜单中选择“/review”命令,单击发送图标
    3. 等待命令执行完成,系统会自动生成检视意见文件review.json。

      在资源管理器项目根目录的“.codeartsdoer/review”路径下,会生成一个以“年-月-日_时-分-秒-毫秒-随机字符串”格式命名的文件夹。在该文件夹的report目录下,即可查看到review.json。关于“/review”命令的详细介绍,请参见代码审查

  3. 通过“/fix-review-batch”命令,修复review.json文件中的检视意见。

    1. 单击输入框中的 ,选择“快捷指令”,在弹出的菜单中选择“/fix-review-batch”命令。
    2. 输入包含代码审查意见的JSON文件路径,单击发送图标
      图2 执行代码修复
    3. 等待命令执行完成,智能体告知您修改的问题数、严重度和修复内容等。

  4. 确认检视意见是否修改。

    再次执行“/review”命令,检查是否完成修复。

相关文档