大家好,我是农村程序员,独立开发者,行业观察员,前端之虎陈随易。
- 关注公众号:
陈随易
,获取最新观察、思考和文章推送。 - 个人网站 1️⃣:chensuiyi.me
- 个人网站 2️⃣:me.yicode.tech
如果本文能给你提供启发或帮助,欢迎动动小手指,一键三连 (点赞
、评论
、转发
),给我一些支持和鼓励,谢谢。
娱乐圈有追星,技术圈也不例外,但追的行业内的软件、技术、名人等。
笔者自称 行业观察员
,目前比较关注的软件是 Bun
和 VSCode
,所以,它们第一时间发版,我也会第一时间阅读它们的更新内容,分享新的变化。如果你也对技术圈的更新,变化,趋势有兴趣,欢迎关注,可以第一时间收到我的文章推送。
北京时间2024年4月4日,VSCode v1.99
版本正式发布了,与前几次更新的主要内容一致,还是在 AI 的方向上一路狂奔。
其实话说起来,往前数 7 个版本,笔者对 AI 的兴趣基本等于 0,直到 v1.97
版本,我也终于成为了尊贵的付费玩家,由此可见,对于新技术,我是不狂热的,也是不排斥的。
本次 v1.99
版本的更新内容非常多,我们一一来了解下。
前言:本文为作者阅读更新内容后用自己的语言重新整理后的更新概要,详细更新内容,还需要前往官网了解。
接入第三方模型
目前除了官方提供的几个模型,Copilot 还支持使用自己的大模型。
不过,根据我的测试,这并不是真正意义上的自定义,比如我想设置模型为 deepseek,却始终没有成功。
如果有朋友成功了,欢迎留言。
Agent 模式正式可用
在 v1.98
版本,Agent 只能在 VSCode预览版
可用,那么这次呢,我们只要把 VSCode
更新到 v1.99
版本,就能开始体验了。
不过,默认还是关闭的,要将 chat.agent.enabled
设置打开即可。
模式 | 功能描述 | 适用场景 | 交互方式 |
---|---|---|---|
Ask | 提问并获取即时答案或建议 | 快速解决问题、获取代码片段 | 用户提问,Copilot 返回答案 |
Edit | 修改或优化现有代码 | 重构代码、修复错误 | 用户选择代码并提出需求 |
Agent | 智能助手,协助完成复杂任务 | 多步骤任务、复杂功能实现 | 用户描述任务,Copilot 提供方案 |
以上就是三者的区别和场景,追赶 Cursor 的脚步,又被大大拉近了。
同时呢,由以上截图可以看到,现在 3 个模式可以非常方便地切换,而在上一个版本,Ask
和 Edit
是分开在 2 个面板使用的。而在我使用的过程中就时常疑惑,为啥要把 Ask
和 Edit
分成 2 个面板,体验非常割裂,这次更新,能把面板统一,真是一个小惊喜。
MCP 协议支持
MCP 全称 Model Context Protocol(模型上下文协议)
,是目前 AI 领域炙手可热的技术,可以让我们只需要跟 AI 聊聊天,就能操控诸如数据库、检索 Web 数据、让游戏开发工具自动开发游戏等等。
比如上图,就是通过 GiteeMCP 与大模型交互,通过自然语言来获取通知,自动创建仓库,写一个贪吃蛇,创建处理问题的 PR 等等。
按照笔者的浅见,我认为 MCP 颇有一种物联网,万物互联的味道。
MCP 的具体使用方式,请读者朋友们前往官网查看,本文仅给大家提供一些信息概要,否则文章就太长太乏味了。
Agent 模式下创建新的工作区
现在可以在代理模式下搭建新的 VS Code 工作区。无论要设置 VS Code 扩展、MCP 服务器还是其他开发环境,代理模式都可以帮助我们使用必要的依赖项和设置初始化、配置和启动这些项目。
也就是说,我们要搭建一个新的编程语言环境,一句话就搞定了,还记得 Java 开发者刚入门时被 JAVA_HOME
支配的恐惧吗?
Agent 模式下的 VS Code 扩展工具
这部分内容有点晦涩,简而言之,你可以创建一个扩展,并提供一些功能。
比如设置 toolReferenceName
名称为 #chensuiyi
,也就是类似 #fetch
、#codebase
、#workspace
之类的引用关键词。
将扩展属性 canBeReferencedInPrompt
设置为 true
,那么在 Agent 模式下,就能通过选择 #chensuiyi
标签,来调用我们扩展提供的一些功能。
Agent 模式工具批准
自动完成任务,有时候确认操作比较麻烦,可以通过勾选一个范围来自动确认。
增强提示文件配置
.prompt.md
扩展结尾的文件是提示文件,可以非常方便地管理我们的提示词。
那么本次更新,可以 chat.promptFilesLocations
设置增加了 glob
模式,可以通过来试试 { "**": true }
这样的设置,来使用所有的提示词文件。
使用 Create User Prompt
命令创建的提示词文件,现在可以被同步到不同的机器了。
拖动图片到 Chat 窗口
现在,可以从浏览器拖动任何图片文件到 Chat 聊天窗口了。
通过即时索引加快工作区搜索速度
针对托管在 github 上的项目,VSCode 目前支持从远程拉取索引,加快索引速度。
点击状态栏的 Copilot 图标,即可看到当前项目的索引类型,如果该图标有一个关闭的锁图标,表示该文件索引未完成,或者自动补全为关闭状态。
开箱即用的 Copilot 设置
这是一项实验性功能,以展示开箱即用的聊天体验。包括聊天视图、编辑器/终端内联聊天和快速聊天。
首次发送聊天请求时,将指导登录并注册 Copilot Free,如果要体验此功能,将 chat.setupFromDialog
设置打开即可。
预发布的 Copilot 扩展在稳定版中不可用
随着 Copilot 扩展的快速更新,现在已经不需要在稳定版中使用预览版了。
如果要体验 Copilot 扩展的新功能,直接安装 VSCode 的预览版。
语义文本搜索改进
现在,搜索视图中默认启用了 AI 支持的语义文本搜索。
使用 Ctrl+I
键盘快捷键可触发语义搜索,该搜索会在常规搜索结果之上显示基于查询的最相关结果。
此为实验功能,需开启 github.copilot.chat.search.semanticTextResults
设置。
设置编辑器搜索更新
搜索设置参数时,不仅仅只显示精确匹配的设置,模糊匹配和功能相近的设置参数也会显示。
窗口控件的新设置
如果设置为 hidden
。
则控制按钮会隐藏。
下一步建议正式发布
也就是 Cursor 中的 Tab 功能,现在作为稳定功能发布。
基于工具的 Edit 模式
目前,Edit
和 Agent
模式都采用调用工具来编辑文件,这种调整的好处是,它能够在所有三种模式之间无缝切换,同时大大简化了这些模式的底层工作方式,坏处就是暂时只能使用以上 3 中模型。
如果你想要禁止此模式,可以将 chat.edits2.enabled
参数关闭。
内联建议语法突出显示
开启前。
开启后。
设置参数为 editor.inlineSuggest.syntaxHighlightingEnabled
。
基于 Tree-Sitter 的语法高亮
在之前使用 Tree-Sitter 进行语法高亮的基础上,我们现在支持基于 Tree-Sitter 的实验性 CSS 文件和 TypeScript 中的正则表达式语法高亮。
设置参数分别为 editor.experimental.preferTreeSitter.css
和 editor.experimental.preferTreeSitter.regex
。
VSCode 改用 Tree-Sitter 进行语法高亮的原因主要包括以下几个方面:
- 性能提升:Tree-Sitter 提供了增量解析能力,可以更快速地更新语法高亮,特别是在大文件或频繁编辑的情况下表现更佳。
- 准确性:Tree-Sitter 通过解析树可以更准确地理解代码结构,从而提供更精确的语法高亮和错误检测。
- 跨语言支持:Tree-Sitter 支持多种编程语言,并且可以方便地扩展和定制,满足 VSCode 用户的多样化需求。
Notebooks 相关增强
这一部分笔者完全没有接触过,无法提供信息摘要,感兴趣的可以前往官网查看。
github 摘要显示增强
我自己已经很久没使用 gitlens
扩展了,因为内置的 git 已经进一步增强,基本够用了。
当前仓库状态栏显示
如果你打开的目录有多个 github 仓库,那么当你编辑某个文件时,状态栏会显示当前文件所在的仓库。
Git Blame 编辑器装饰改进
我们收到反馈称,在输入时,尚未提交
编辑器装饰没有提供太多价值,而且更令人分心。
从这个版本开始,尚未提交
编辑器装饰仅在使用键盘或鼠标浏览代码库时显示。
这体验细节,真不愧其全球最流行的代码编辑器之名。
提交输入光标自定义
如图,现在可以控制提交输入的光标风格和光标宽度。
命令行提示补全增强
现在有更多的命令和提示可以提供自动补全。
自动刷新全局命令
现在,当检测到系统 bin 目录中的更改时,终端会自动刷新其全局命令列表。
这意味着新安装的 CLI 工具 (例如,运行 npm install -g pnpm
后) 将立即显示在补全中,而无需重新加载窗口。
以前,由于缓存,新工具的补全不会出现,直到手动重新加载窗口。
建议中的文件类型图标
终端中的建议现在包括不同文件类型的特定图标,可以更容易地区分脚本和二进制文件。
新的简化和详细的选项卡悬停
默认情况下,终端选项卡现在显示的细节少得多。
要查看所有内容,悬停底部有一个 显示详细信息
按钮。
签名的 PowerShell 集成
shell 集成 PowerShell 脚本现已签名,这意味着在 Windows 上使用 RemoteSigned 的默认 PowerShell 执行策略时,shell 集成现在应该自动开始工作。
终端 Shell 类型
这次更新,完成了终端 shell API 的开发,允许扩展程序查看用户在其终端中的当前 shell 类型。
订阅 onDidChangeTerminalState
事件允许您查看终端中用户 shell 类型的变化。
例如,shell 可以从 zsh 更改为 bash。
Linux 旧版服务器支持已结束
从 1.99 版开始,您无法再连接到这些服务器。
正如我们在 1.97 版中所述,需要更多时间才能完成迁移到受支持的 Linux 发行版的用户可以提供自定义版本的 glibc 和 libstdc++ 作为解决方法。
macOS 设备管理
VS Code 现在除了支持 Windows 之外,还支持 macOS 上的设备管理。
这允许系统管理员从集中管理系统 (如 Microsoft Intune) 推送策略。
感谢阅读,本文由编程记者 前端之虎陈随易
撰稿,转载请保留顶部信息。