当 AI 建议对代码进行修改时,系统不会立即应用这些变更,而是以Diff View的形式展示所有变更,供开发者审查,确保开发者在应用任何修改前,能完全理解变更内容,并保留最终控制权。本文介绍如何使用Diff View审查、管理和应用这些变更,包括在单个或多个文件中进行块级别的接收与拒绝操作。
Diff 预览格式
Diff View通过颜色区分新增、删除和未修改的代码行:
-
新增内容:新增的代码行以绿色高亮显示。
-
删除内容:删除的代码行以红色高亮显示。
-
上下文代码:未变更的上下文代码以中性颜色显示,以帮助定位变更在代码库中的具体位置。
这种内联差异格式使您能够:
-
看看究竟会发生什么变化
-
了解做出改变的原因
-
评估它如何适应现有的代码库
然后,您可以选择接受、编辑或拒绝每个更改。
在单个文件中Diff View
当智能体完成任务后,系统会进入Diff View模式,您可以逐一审查文件中的变更,按照变更块或整个文件为单位进行应用。
变更块级别操作
能用于对单个、独立的变更块进行精细化控制。在每个更改块的右上角:
-
接受:应用当前变更块的修改。
-
拒绝:放弃当前变更块的修改。
文件级别操作
用于对当前文件内的所有变更建议执行批量操作,在文件的底部:
-
全部接受:应用当前文件中的所有建议修改。
-
全部拒绝:放弃当前文件中的所有建议修改。
-
文件导航:切换到其他包含待处理变更的文件。
在多个文件中Diff View
当一次任务的变更涉及多个文件时,您可以集中管理这些跨文件的修改,所有受影响的文件名会显示在AI Chat面板的上方。针对多文件场景,提供以下操作:
-
全局操作:对所有文件进行批量处理
-
接受:应用所有文件中列出的所有变更。
-
拒绝:放弃所有文件中列出的所有变更。
-
-
文件级操作
-
单击文件名:跳转到该文件的Diff View。
package com.macro.mall.demo.config; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; /** * MyBatis related configuration * MyBatis相关配置 * * This configuration class is mainly used for: * 1. Configuring MyBatis mapper scanning paths * 2. Enabling MyBatis auto-configuration features * 3. Integrating with Spring Boot to provide data access layer support * * 该配置类主要用于: * 1. 配置MyBatis映射器扫描路径 * 2. 启用MyBatis的自动配置功能 * 3. 与Spring Boot集成,提供数据访问层支持 * * Created by macro on 2018/4/26. */ // Spring configuration class for MyBatis related settings // Spring配置类,用于MyBatis相关设置 // MyBatis configuration class responsible for data access layer configu... // MyBatis配置类,负责数据访问层配置 @Configuration // Scan MyBatis mapper interfaces in the specified package and automatic... // 扫描指定包下的MyBatis映射接口,自动注册为Spring Bean // This allows direct injection of Mapper interfaces in the Service laye... // 这样可以在Service层直接注入Mapper接口进行数据库操作 @MapperScan("com.macro.mall.mapper") public class MyBatisConfig { // This configuration class currently only needs the @MapperScan ann... // 该配置目前只需要@MapperScan注解即可完成基本配置 // Spring Boot's auto-configuration will handle other MyBatis-relate... // Spring Boot的自动配置会处理其他MyBatis相关的配置 // If you need to customize SqlSessionFactory or TransactionManager,... // 如需自定义SqlSessionFactory或TransactionManager可在此类中添加相应的@B... } -
将鼠标悬停在文件名上即可仅查看该文件的拒绝或接受选项
-
这种多文件导航可以轻松管理复杂的跨文件重构。
该文章对您有帮助吗?