
# 代码修复
华为云码道代码智能体IDE提供了强大的自动修复问题能力，覆盖人工提交、AI审查及工具告警等多源场景。支持单条与批量处理，实现从问题发现到修复的高效闭环，显著提升代码质量与开发效率。
#### 约束与限制
表1约束与限制 
| 限制类别   | 具体限制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|
| 执行环境要求 | - 执行代码修复命令前，需确保待修复代码与代码检查JSON文件严格一一对应。    - /fix-review-batch命令依赖于代码审查智能体Review Agent的检测结果review.json。  - /fix-codeartscheck-batch依赖于[代码检查CodeArts Check](https://support.huaweicloud.com/codecheck/index.html)的检测结果。   |
   
#### 代码修复命令说明
以下为您详细介绍四大核心命令的具体用法。
 #### /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条。 |
   
图1Base.cpp文件检视意见   
![](https://support.huaweicloud.com/usermanual-codeartsagent/zh-cn_image_0000002643001680.png "点击放大")
**使用示例**：
- 基础用法：指向一个或多个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](https://support.huaweicloud.com/codecheck/index.html)工具产生的告警。
**语法格式**：
```
/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. 参考[快速启动](https://support.huaweicloud.com/usermanual-codeartsagent/codeartsagent_ug_0002.html)中操作，登录华为云码道代码智能体IDE。
2. （可选）请确认是否已存在JSON格式的检视意见文件。如果不存在，可通过"/review"命令获取，已存在则直接跳过本步骤。 
   1. 单击输入框中的 ![](https://support.huaweicloud.com/usermanual-codeartsagent/zh-cn_image_0000002673098065.png)，选择"快捷指令"。
   
   2. 在弹出的菜单中选择"/review"命令，单击发送图标 ![](https://support.huaweicloud.com/usermanual-codeartsagent/zh-cn_image_0000002643218130.png)。
   
   3. 等待命令执行完成，系统会自动生成检视意见文件review.json。 在资源管理器项目根目录的".codeartsdoer/review"路径下，会生成一个以"年-月-日_时-分-秒-毫秒-随机字符串"格式命名的文件夹。在该文件夹的report目录下，即可查看到review.json。关于"/review"命令的详细介绍，请参见[代码审查](https://support.huaweicloud.com/usermanual-codeartsagent/codeartsagent_ug_0047.html)。
      
   
   
   
   
3. 通过"/fix-review-batch"命令，修复review.json文件中的检视意见。 
   1. 单击输入框中的 ![](https://support.huaweicloud.com/usermanual-codeartsagent/zh-cn_image_0000002641204526.png)，选择"快捷指令"，在弹出的菜单中选择"/fix-review-batch"命令。
   
   2. 输入包含代码审查意见的JSON文件路径，单击发送图标 ![](https://support.huaweicloud.com/usermanual-codeartsagent/zh-cn_image_0000002641364494.png)。
      图2执行代码修复   
      ![](https://support.huaweicloud.com/usermanual-codeartsagent/zh-cn_image_0000002672527119.png "点击放大") 
   
   3. 等待命令执行完成，智能体告知您修改的问题数、严重度和修复内容等。
   
   
   
   
4. 确认检视意见是否修复。 
   再次执行"/review"命令，检查是否完成修复。
   
   
 
