首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >VS Code 发布 AI新功能:离了大谱!

VS Code 发布 AI新功能:离了大谱!

作者头像
GoLang学习记
发布2026-03-04 18:15:12
发布2026-03-04 18:15:12
680
举报
文章被收录于专栏:vscode从0到高手vscode从0到高手

与君初相识 怎似故人归

开场白:你的 AI 助手终于治好了"近视眼"

想象一下这个场景:

你正在改代码,把函数 getUserInfo() 改名为 fetchUserProfile()。改完函数名,你心想:"好了,搞定!"

结果:编译器报错 10 处——原来文件里还有 10 个地方在调用这个函数!

这时候你只能:

  1. 疯狂 Ctrl+F 搜索
  2. 一行行翻找
  3. 祈祷别漏掉任何一个

痛点:之前的 GitHub Copilot 就像个近视眼助手,只能看到你光标附近几行代码。明明知道其他地方也要改,但它就是"视而不见"。

好消息:现在它治好了近视眼!🎉


什么是长距离 NES?

NES = Next Edit Suggestions(下一步编辑建议)

以前的 NES:

代码语言:javascript
复制
你在这里改代码 → AI 建议 nearby 的修改
                    ↓
               只能看这么远(约 50 行)

现在的长距离 NES:

代码语言:javascript
复制
你在这里改代码 → AI 预测 → 直接跳到文件底部
                    ↓
               整个文件都是我的地盘!

典型使用场景

场景 1:改参数类型,连锁反应爆炸 💥

代码语言:javascript
复制
# 第 10 行:你改了参数类型

defcalculate_price(price:str)->float:# 从 int 改成 str

returnfloat(price)*1.1



# ... 中间 200 行代码 ...



# 第 210 行:验证逻辑崩了

if price <0:# ❌ str 不能和 int 比较!

raise ValueError("价格不能为负")

以前的你:跑到第 210 行才发现报错,再回头改 现在的 AI:"兄弟,第 210 行也要改,我帮你标出来了!"


场景 2:重构函数名,调用处全挂 📛

代码语言:javascript
复制
// 你在这里改函数名

functiongetUserData(id){// 改成 fetchUserInfo

// ...

}



// 文件其他地方:

const user =getUserData(123);// ❌ 要改!

processData(getUserData(456));// ❌ 也要改!

AI 的内心 OS:"我看到你改了函数名,下面 3 个调用处都要更新,要不要我帮你跳过去?"

A far away NES edit
A far away NES edit

训练数据:从"开发者行为"中学习

数据来源:真实的代码编辑轨迹

GitHub 上有海量的代码编辑记录。团队把这些记录变成训练数据:

代码语言:javascript
复制
原始数据:开发者 A 修改文件的过程
    ↓
回放轨迹:记录每一步光标移动和编辑
    ↓
转换样本:每次光标跳转 = 一个训练样本
    ↓
过滤:确保跳转位置在提示词中出现
    ↓
训练数据集:数百万个"何时跳转"的例子

关键洞察

不是"教 AI 怎么写代码",而是"教 AI 像人类开发者一样思考下一步去哪改"。


UX 设计:如何让"隔空建议"不被忽略?

挑战:看不见的建议 = 没用的建议

标准 NES:建议出现在光标附近,你自然能看到 长距离 NES:建议在文件另一头,你怎么知道它存在?

解决方案:智能小部件

设计原则

  1. 紧凑:不占太多空间
  2. 可读:一眼看懂要改什么
  3. 不遮挡:尽量不挡住你的代码

关键设计

  • 不渲染完整 diff只给预览片段
  • 提供足够上下文让你判断"值不值得跳"
  • 自主选择有用就跳,没用就忽略
在这里插入图片描述
在这里插入图片描述

强化学习 :学会"克制"的艺术

问题:监督学习不够用

监督学习(SFT)的局限:

  • 只能学习"标注过的正确行为"
  • 难以捕捉"真实编辑场景的细微差别"

解决方案:RLVR(带验证奖励的强化学习)

核心思想

  • 不只看"标注答案"
  • 还看"实际开发者行为"

奖励机制

代码语言:javascript
复制
AI 预测跳转到第 100 行
    ↓
观察开发者实际去了哪里
    ↓
如果开发者也去了第 100 行 → 奖励 +1 ✅
如果开发者没去 → 奖励 -1 ❌
如果 AI 没建议但开发者去了 → 奖励 -0.5 😐

训练信号

  • 预测与实际行为越接近 → 奖励越高
  • 不必要的跳转 → 惩罚
  • 该跳没跳 → 轻微惩罚

成果展示:数字说明一切

关键指标对比

指标

标准 NES

长距离 NES

提升

代码生成量

基准

+23%

📈

用户接受度

基准

提升

👍

拒绝率

基准

略高

⚠️


未来规划:跨文件编辑 + 统一模型

下一步:打破文件边界

当前局限:只能在单个文件内跳转 未来方向:跨文件建议

终极目标:统一模型

当前:两个模型(位置预测 + 编辑生成) 未来:一个模型同时预测"位置和内容"

优势

  • 更好的整体相关性
  • 更简洁的架构
  • 更低的延迟

如何使用

✅ 开启以下设置:

代码语言:javascript
复制
{

"github.copilot.nextEditSuggestions.enabled":true,

"github.copilot.nextEditSuggestions.extendedRange":true

}

最佳使用场景

🎯 重命名变量/函数 🎯 更新函数签名 🎯 修改参数类型 🎯 修复连锁错误 🎯 任何"涟漪效应"的修改

总结:AI 编码的新境界

最终目标

让 AI 助手从"近视眼"进化成"千里眼":

  • 看到你当前的修改
  • 预见远处的连锁反应
  • 在合适的时间提醒你
  • 在你不需要时保持沉默

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 golang学习记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开场白:你的 AI 助手终于治好了"近视眼"
  • 什么是长距离 NES?
    • 以前的 NES:
    • 现在的长距离 NES:
  • 典型使用场景
    • 场景 1:改参数类型,连锁反应爆炸 💥
    • 场景 2:重构函数名,调用处全挂 📛
  • 训练数据:从"开发者行为"中学习
    • 数据来源:真实的代码编辑轨迹
  • UX 设计:如何让"隔空建议"不被忽略?
    • 挑战:看不见的建议 = 没用的建议
    • 解决方案:智能小部件
  • 强化学习 :学会"克制"的艺术
    • 问题:监督学习不够用
    • 解决方案:RLVR(带验证奖励的强化学习)
  • 成果展示:数字说明一切
    • 关键指标对比
  • 未来规划:跨文件编辑 + 统一模型
    • 下一步:打破文件边界
    • 终极目标:统一模型
  • 如何使用
    • 最佳使用场景
  • 总结:AI 编码的新境界
    • 最终目标
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档