VSCode v1.96:AI升级显著,用户体验更佳

发布于 5 个月前

大家好,我是农村程序员、独立开发者陈随易,前端之虎!

我的个人网站如下:

-

-

欢迎关注我,让我们广交朋友,共同创造美好未来。

北京时间2024年12月12日凌晨3点13分,期待已久的VSCode v1.96终于发布了。按照往常惯例,新的版本通常在每月初的3号发布,但由于国外感恩节的影响,这次发布时间推迟到了10号。

我密切关注着新版本的发布信息,在10日晚上一直等待到11日,仍然没有好消息传来。临睡前看到发版进度后,发现不少平台都已打包完成,心里终于踏实了些。第二天早上起来一看,果然新版已经发布了!

粗略浏览更新内容,这次的新特性还真不少。特别是“cursor”和“windsurf”的出现,为VSCode带来了前所未有的挑战。

它们基于VSCode的开源版本,在AI编程方面远远超过了原版功能。可以说是用子之矛攻子之盾的经典案例了,眼见用户大量流失,VSCode团队不可能无动于衷。

于是,在11月份,VSCode团队全力以赴推进自家的Copilot功能,这也是为什么v1.95版本大部分更新都集中在Copilot的原因。

那么这次的v1.96版本,依旧是Copilot为主导,但相较之前又增加了一些新的亮点。快来一起看看这次的具体更新内容吧!

提示:以下仅挑选部分亮点分享,请前往官网查看完整更新详情。

进度和编辑器控制

VSCode 现在也具备了Cursor的自动编写文件和自动生成代码的功能。这项功能与编辑器结合得更加紧密,能够直观地展示代码生成的过程,并允许用户自由选择是否接受或拒绝这些修改。

此外,可以将聊天会话移至 Copilot Edits 中。通过这个新的聊天视图,您可以探索各种更改代码的建议。现在,您可以直接应用聊天会话中所有的代码建议,而无需逐个应用单独的代码块。

快速添加文件

在 Copilot Edits 中,工作集决定了哪些文件可以接受建议的更改。为了更好地筛选相关文件,Copilot Edits 现在可以通过分析 Git 存储库中的已添加文件来推荐其他相关的文件。

例如,当一个文件被加入时,Copilot Edits 会基于其与其他文件之间的关联性提出建议。这些推荐会在工作集的 "添加文件" 按钮旁边显示出来,并且用户可以点击此按钮从列表中选择相关文件进行添加。

此外,在重启 VS Code 后,编辑会话将完全恢复,包括之前的工作集、接受状态以及所有过往编辑步骤中的文件状态信息。这为用户提供了一个无缝的代码修改体验。

要更方便地管理这些工作集,用户现在可以通过新的 "将文件添加到 Copilot Edits" 上下文菜单操作来添加文件,这一功能适用于搜索视图中的结果和资源管理器视图中的文件。此外,您还可以从编辑器上下文菜单中将文本选择附加到 Copilot Edits。

通过这些改进的功能,Copilot Edits 可以为开发者提供更加智能化的代码建议与优化体验。

使用 Copilot 进行调试

当面对一个不熟悉的编程语言时,我们可能会感到无从下手。本次更新中引入了一个名为 `copilot-debug` 的命令,可以自动开启调试,并检测推荐您需要安装的插件。

任务支持:

Copilot 的调试功能(包括 `copilot-debug` 和 `/startDebugging` 意图)现在可以在调试前生成必要的编译步骤代码 (`preLaunchTasks`)。这对于编译语言如 Rust 和 C++ 来说尤其重要。

拖动符号和文件到 Copilot:

请将符号拖放到 Copilot Chat 中。

接下来,再将其拖放到 Copilot Edits 中。

将文件拖放到Copilot Chat和Copilot Edits中。

VS Code 扩展利用 VS Code API 来构建 Copilot 功能。现在,您可以在运行时状态视图中查看这些扩展的使用情况图表。该图表展示了过去 30 天内,扩展发出的聊天请求数量。

### 提交消息生成的自定义指令

Copilot 能够根据代码更改自动生成提交信息。在最近的一次更新后,现在可以添加对自定义指令的支持了。

例如,如果你希望提交信息遵循特定格式,可以在自定义指令中详细描述这些要求。

要指定自定义指令,可以通过以下两种方式之一:

- 使用 `github.copilot.chat.commitMessageGeneration.instructions` 设置直接输入指令。

- 将包含自定义指令的文件添加到工作区,并让 Copilot 自动读取并应用这些指令。

### 内联聊天

通过以上配置,你可以更灵活地生成符合项目需求的提交信息。

在本次更新中,我们对内联聊天的用户体验进行了改进。具体来说:

- 进度报告更加详尽;

- 流式传输更改波浪线被禁用;

- 检测到的命令显示得更为美观。

此外,当一行内容主要为自然语言时,系统会提示用户继续进行在线聊天。这一功能使得在编辑器中输入伪代码变得可能,并可将其作为在线聊天的提示。也可以通过按下 `Ctrl+I` 来触发此流程。

值得一提的是,我们还新增了一个实验性设置,允许内联聊天提示出现在空行上。此项新特性可通过 `inlineChat.lineEmptyHint` 开启,默认情况下该功能处于关闭状态。

**终端 Chat**

此外,更新后的终端内联聊天界面焕然一新,外观和感觉更加贴近编辑器内的体验。

### 小部件优化

我们对小部件的布局和定位进行了改进,使得整体体验更为出色。

### 功能新增

添加了一个模型选择器,提供更多灵活性和便捷性。

### 按钮统一

底部的按钮也经过了调整,现在更加一致和易于使用。

### 扩展搜索功能

进一步增强了扩展搜索结果的功能。

现在,搜索结果会根据已经安装的插件进行排序,这些已安装的插件将出现在列表的顶端。

您可以选择下载某个插件而不立即安装它。

现在可以直接下载扩展,而不进行安装。

扩展占用磁盘空间

现在您可以在扩展详情页面的右侧,看到该扩展所占的磁盘和缓存空间。

另外,“查找文件”功能也得到了加强。

在之前的版本中,搜索文件时不会进行高亮显示。而在此次更新后,将对文件名中的搜索字符进行高亮处理。

此外,若目标文件存在于当前目录下,系统将在界面右侧展示与查询条件匹配的文件数量。

用户现在可以更加方便地通过主副面板快速切换浏览内容。

通过右击图标菜单,您可以选择将面板移至侧边栏或主侧栏。

此外,还可以隐藏标题栏中的导航箭头。

通过配置 `workbench.navigationControl.enabled` 参数,或是在标题栏上右键点击,用户可以决定是否隐藏箭头导航。

另外,系统还新增了“Overtype”模式。

根据大家的需求,本次更新增加了“改写”功能。现在用户可以在编辑器中直接修改已有内容,而不是在输入时添加新文字。

例如,在处理 Markdown 表格时,这种模式特别有用,因为它可以帮助保持单元格边界的整齐对齐。

你可以通过“View: Toggle Overtype/Insert Mode”命令来切换此模式。当改写模式启用时,状态栏会显示 "OVR" 提示。

另外,还有一个设置项叫做 editor.overtypeOnPaste,用于决定在改写模式下粘贴内容是覆盖还是插入,默认情况下粘贴的内容会被插入而不是替换。

git blame

即使不借助第三方插件,也能轻松查看当前行的修改者信息。

要启用这项功能,请设置以下选项:

- `git.blame.editorDecoration.enabled`

- `git.blame.statusBarItem.enabled`

你还可以通过自定义模板进一步调整显示格式。例如:

```json

{

"git.blame.editorDecoration.template": "${subject}, ${authorName} (${authorDateAgo})"

}

```

源码控制功能得到了增强。

你现在可以直接在源码控制面板上,使用按钮来拉取和推送代码。

此外,终端还支持连字功能。

### 启用连字效果

通过设置 `terminal.integrated.fontLigatures` 可以启用连字功能。

不过还需要安装支持连字的字体,可以通过 `terminal.integrated.fontFamily` 参数来指定字体。

### 内置 TypeScript 5.7 版本

现在 VSCode 已经内置了 TypeScript 5.7 版本,这将提供更多强大的特性和功能。

### 预安装扩展

在 VSCode 的安装目录下创建 `bootstrap/extensions` 目录。

然后把 vsix 格式的插件放到这个目录里。

VSCode 启动时会自动安装该目录下的所有扩展。

这对于需要在一个新环境或无网络连接的情况下安装扩展非常有用。

### 开发聊天扩展

可以使用 `@vscode/chat-extension-utils` 工具来开发基于 Copilot 的聊天扩展。

此包包含一组有用的高质量组件,可与 `@vscode/prompt-tsx` 结合使用。

完整的文档可以在 chat-extension-utils 存储库中查看,并且可以通过示例聊天扩展了解实际应用情况。

### GPU 加速

GPU 加速将显著提升编辑器的整体性能和滚动流畅度。目前这项功能还在计划阶段,不过可以预见未来 VSCode 的性能和用户体验将会进一步改善。

感谢阅读!本文由编程记者前端之虎陈随易撰写,请在转载时保留上述信息。