Copilot Next Edit Suggestions(预览版)

作者:Brigit Murtaugh,Burke Holland
排版:Alan Wang

我们很高兴向你介绍在本次 Visual Studio Code 发布中,关于 GitHub Copilot 的三个预览功能:

  1. Next Edit Suggestions(NES)
  2. Copilot Edits 的代理模式(Agent Mode)
  3. Vision

在这篇文章中,我们将深入探讨 Next Edit Suggestions,了解 AI 驱动的代码补全在编辑器中的最新发展。

Next Edit Suggestions(NES)

GitHub Copilot 的代码补全功能(也被称为“幽灵文本”)在自动补全方面表现出色。当它在无需明确请求的情况下,直接建议出你心中所想的代码时,那种感觉非常奇妙。然而,大多数编码活动不仅涉及编写新代码,还需编辑现有代码。因此,将补全功能扩展到现有代码的编辑是自然而然的下一步动作。

我们称之为 Next Edit Suggestions,简称 NES。是的,这个缩写也让我们想起了经典的游戏机。

Copilot NES video

开始使用 NES

要开始使用 Copilot NES,首先需要启用 VS Code 设置中的 github.copilot.nextEditSuggestions.enabled

与代码补全类似,开始获取 NES 的建议,你只需开始编码即可!

当出现编辑建议时,使用 Tab 键导航到该建议,然后再次按下 Tab 键接受它。无需手动搜索相关文件或引用。Copilot NES 会跟踪你下一个相关的编辑!

代码行旁的箭头表示有可用的编辑建议。将鼠标悬停在箭头上,可以查看编辑建议菜单,其中包含键盘快捷键和设置配置:
在这里插入图片描述
如果你已经滚动过了该编辑建议,箭头会提示你下一个编辑建议的位置,在当前文件位置点击向上或向下即可:

开始使用 NES

建议的范围可以是单个符号、整行代码,甚至是多行代码,具体取决于潜在更改的范围。

注意
更新设置后,请重新加载 VS Code 以使其生效。 如果你是 Copilot Business 或 Enterprise 用户,除了在编辑器中设置 github.copilot.nextEditSuggestions.enabled 外,你所在组织的管理员还必须选择加入使用 Copilot 的“编辑器预览功能”。 你可以了解更多关于在组织中管理 Copilot 策略的信息。

示例场景

Copilot NES 是你在进行可能影响整个文件或项目的更改时的 AI 伙伴,以下是一些它表现出色的场景示例。

捕捉和纠正错误:错误是编写代码中的常见现象,Copilot NES 可以帮助捕捉它们(有时甚至在你意识到错误存在之前!)。

NES 可以帮助我们纠正小错误,如拼写错误——比如你在快速编码时,将 const 写成了 conts

NES fixing a typo

NES 也可以帮助解决更具挑战性的逻辑错误,例如倒置的三元表达式:

NES fix logic mistake

我们的开发团队一直在内部使用 NES,其中一位工程师在撰写这篇博客时回忆起他第一次使用 NES 的“顿悟”时刻。他写了一个类似 if (something !== 'a' || something !== 'b') 的条件语句。NES 发现该语句总是返回 true(感谢德摩根定律!),并建议将 || 替换为 && 以使代码有效:

NES fixi if statement mistake

更改意图:Copilot NES 会根据意图的变化提出相应的更改建议。例如,将类从 Point 更改为 Point3D,NES 会建议在类定义中添加 z 变量,并更新距离计算:

NES updating Point to Point3D

使用新添加的变量或逻辑:Copilot NES 帮助你使用刚添加的新代码。这可能是一个小的更改,例如在方法中调用新的参数。

也可能是更复杂的情况:如果你在 VS Code 扩展的 extension.ts 中添加了新命令,NES 会首先建议在 extension.ts 中清理该命令。然后,当你打开 package.json 时,NES 会建议注册该命令:

NES updat extension project

重构:如果你使用了新的名称或命名模式,Copilot NES 会建议相应地更新后续代码:

Copilot NES 会建议相应地更新后续代码

阅读我们的完整 NES 文档,了解更多信息和场景,我们将不断扩展 NES 的体验。

分享你的反馈

Copilot NES 正在快速发展,我们期待你通过在我们的仓库中提交 issue 来提供反馈——这对改进体验至关重要。

请确保使用 VS Code Insiders 和 GitHub Copilot Chat 扩展的预发布版本,以获取所有最新功能和修复。了解如何安装扩展的预发布版本的更多详细信息。

你可以阅读我们的完整 NES 文档,了解更多信息和场景,我们将不断扩展 NES 的体验。

我们对 Copilot 在 AI 领域可预见的下一步发展感到非常兴奋——最好的提示是无需编写提示。我们希望你同样感到兴奋,期待看到你构建的内容!

代理模式(Agent Mode)

从上周的 VS Code Insiders 版本开始,GitHub Copilot Edits 现在有了代理模式选项。

Copilot Edits 的代理模式能够对其自身的代码进行迭代——识别错误并自动修复它们,执行完成请求任务所需的任何终端命令,以及通过自我修复功能解决运行时错误。GitHub Copilot 现在不仅可以执行用户请求的任务,还可以推断所有未明确指定但需要完成的其他任务。

Copilot agent mode video

我们认为 GitHub Copilot 的代理模式(Agent Mode)有着巨大的潜力。它每天都在变得更好,但我们希望尽快让你体验它。在接下来的几周内,我们将不断优化用户体验,带来重大改进。请持续关注,并在尝试时分享你的反馈(今天可在 VS Code Insiders 中使用,未来也将支持 VS Code Stable)。

你可以在我们的文档中了解更多关于代理模式的信息。

Vision

本次 VS Code Insiders 版本还为 GitHub Copilot 带来了 Vision 支持。

在与 Copilot 交互时,不断重复将所见内容转换为描述可能会令人沮丧,尤其是在处理用户界面或询问如何配置编辑器时。现在,你可以直接附加截图,让 Copilot 看到你所看到的内容。

你可以通过以下方式提供图片:

  • 从剪贴板粘贴
  • 从 Explorer 视图中拖放图片
  • 附加当前 VS Code 窗口的截图(选择 Attach > Screenshot Window)

这项功能解锁了许多新场景,例如:

  • 提供 UI 设计稿,让 Copilot 生成 UI 代码
  • 提供界面截图,让 Copilot 帮助修复布局问题
  • 在 HTML 或 Markdown 中为图片生成替代文本
  • 提供错误截图,方便 Copilot 诊断问题

Vision 目前已在 VS Code Insiders 中可用,并对所有用户开放。目前仅支持 GPT-4o 模型,未来将添加对其他模型的支持。目前支持的图片格式包括 JPEG/JPG、PNG、GIF 和 WEBP。

新的一年,新的 Copilot

我们对 Copilot 作为 AI 编程助手的未来充满期待。我们的目标不仅是让它免费开放给所有人,还要不断突破 AI 的极限,极大地提升你的生产力和幸福感。

我们也在持续改进 VS Code,欢迎查看我们的最新发布说明了解所有新功能。我们致力于确保你拥有最好的代码编辑器和最智能的 AI 编程助手。

AI 领域发展迅速,想要随时掌握 Copilot 的最新动态?欢迎关注我们,第一时间了解最新功能。

祝编码愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/70024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高性能内存对象缓存Memcached详细实验操作

目录 前提准备: cache1,2: 客户端cache-api(一定得是LAMP环境) memcache实现主主复制以及高可用(基于以上完成) cache1,2: memcachekeepalived(基于以上完成) cache1,2: 前提准备: 1. 准备三台cent…

全单模矩阵及其在分支定价算法中的应用

全单模矩阵及其在分支定价算法中的应用 目录 全单模矩阵的定义与特性全单模矩阵的判定方法全单模矩阵在优化中的核心价值分支定价算法与矩阵单模性的关系非全单模问题的挑战与系统解决方案总结与工程实践建议 1. 全单模矩阵的定义与特性 关键定义 单模矩阵(Unimo…

Spring AI发布!让Java紧跟AI赛道!

1. 序言 在当今技术发展的背景下,人工智能(AI)已经成为各行各业中不可忽视的重要技术。无论是在互联网公司,还是传统行业,AI技术的应用都在大幅提升效率、降低成本、推动创新。从智能客服到个性化推荐,从语…

【kafka系列】Kafka如何保证消息不丢失?

目录 1. 生产者端:确保消息成功发送到Broker 核心机制: 关键步骤: 2. Broker端:持久化与副本同步 核心机制: 关键源码逻辑: 3. 消费者端:可靠消费与Offset提交 核心机制: 关…

利用二分法+布尔盲注、时间盲注进行sql注入

一、布尔盲注&#xff1a; import requestsdef binary_search_character(url, query, index, low32, high127):while low < high:mid (low high 1) // 2payload f"1 AND ASCII(SUBSTRING(({query}),{index},1)) > {mid} -- "res {"id": payloa…

UART(一)——UART基础

一、定义 UART(Universal Asynchronous Receiver/Transmitter)是一种广泛使用的串行通信协议,用于在设备间通过异步方式传输数据。它无需共享时钟信号,而是依赖双方预先约定的参数(如波特率)完成通信。 功能和特点 基本的 UART 系统只需三个信号即可提供稳健的中速全双工…

【PHP】php+mysql 活动信息管理系统(源码+论文+数据库+数据库文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【PHP】php 活动信息管理系统&#xff08;源码论文…

数据结构——单向循环链表、双链表、双向循环链表

目录 一、单向循环链表 1.1 单向循环链表的概念 1.2 单向循环链表的操作 1.2.1 单向循环链表的创建 1.2.2 单向循环链表的头插 1.2.3 单向循环链表的遍历 1.2.4 单向循环链表的头删 1.2.5 单向循环链表的尾插 1.2.6 单向循环链表的尾删 1.2.7 约瑟夫环 1.3 单向循环列表所有程…

Apache Iceberg 与 Apache Hudi:数据湖领域的双雄对决

在数据存储和处理不断发展的领域中&#xff0c;数据湖仓的概念已经崭露头角&#xff0c;成为了一种变革性的力量。数据湖仓结合了数据仓库和数据湖的最佳元素&#xff0c;提供了一个统一的平台&#xff0c;支持数据科学、商业智能、人工智能/机器学习以及临时报告等多种关键功能…

JavaScript数组-数组的概念

在JavaScript编程中&#xff0c;数组&#xff08;Array&#xff09;是一种非常重要的数据结构&#xff0c;它允许我们将多个值存储在一个单独的变量中。数组可以包含任意类型的元素&#xff0c;如数字、字符串、对象甚至是其他数组&#xff0c;并提供了丰富的内置方法来操作这些…

AcWing 800. 数组元素的目标和

题目来源&#xff1a; 登录 - AcWing 题目内容&#xff1a; 给定两个升序排序的有序数组 A 和 B&#xff0c;以及一个目标值 x。 数组下标从 0开始。 请你求出满足 A[i]B[j]x的数对 (i,j)。 数据保证有唯一解。 输入格式 第一行包含三个整数 n,m,x&#xff0c;分别表示 …

wordpress资讯类网站整站打包

wordpress程序&#xff0c;内置了价值499元的模板.但是有了模板没有全自动采集相信大多数人都搞不懂&#xff0c;目录那么多&#xff0c;全靠原创几乎是不可能的事情&#xff0c;除非你是大公司&#xff0c;每人控制一个板块&#xff0c; 这套源码里面最有价值的应该是这个采集…

python中的with是做什么的,有什么作用,什么时候需要用到with

&#x1f4cc; Python 中的 with 语句&#xff1a;作用 & 什么时候用 1️⃣ with 是干嘛的&#xff1f; with 主要用来 自动管理资源&#xff0c;确保资源&#xff08;文件、数据库连接等&#xff09;在使用完后能自动释放&#xff0c;避免资源泄露问题。 换句话说&…

浏览器的Cookie 过期时间存储

Cookie 是服务器发送到浏览器的小型文本数据&#xff0c;用于跟踪用户状态&#xff08;如登录信息、偏好设置&#xff09;&#xff0c;存储大小通常限制为 4KB&#xff0c;每个域名下最多允许约 20-50 个 Cookie&#xff08;不同浏览器不同&#xff09;。 属性 属性说明示例注…

hive全量迁移脚本

#!/bin/bash #场景&#xff1a;数据在同一库下&#xff0c;并且hive是内部表&#xff08;前缀的hdfs地址是相同的&#xff09;#1.读取一个文件&#xff0c;获取表名#echo "时间$dt_jian_2-------------------------" >> /home/hadoop/qianyi_zengliang/rs.txt#…

进阶——第十六届蓝桥杯嵌入式熟练度练习(开发板捕获频率和占空比)

单通道捕获频率 HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1); void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {if(htim->InstanceTIM2) {cap1HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_1);TIM2-&…

Python中如何进行数据库连接?

在 Python 中进行数据库连接&#xff0c;不同的数据库需要使用不同的库。下面分别介绍几种常见数据库&#xff08;SQLite、MySQL、PostgreSQL&#xff09;的连接方法。 1. 连接 SQLite 数据库 SQLite 是一种轻量级的嵌入式数据库&#xff0c;Python 标准库中自带了sqlite3模块…

用C语言实现通用排序函数:深入理解指针与函数指针的魅力

在C语言的学习与应用中&#xff0c;排序是一个非常基础且重要的算法。今天&#xff0c;我们就来深入探讨如何使用C语言实现一个通用的排序函数&#xff0c;通过这个过程&#xff0c;我们将对指针和函数指针有更深刻的理解。 #define _CRT_SECURE_NO_WARNINGS #include<std…

Deepseek R1模型本地化部署与API实战指南:释放企业级AI生产力

摘要 本文深入解析Deepseek R1开源大模型的本地化部署流程与API集成方案&#xff0c;涵盖从硬件选型、Docker环境搭建到模型微调及RESTful接口封装的完整企业级解决方案。通过电商评论分析和智能客服搭建等案例&#xff0c;展示如何将前沿AI技术转化为实际生产力。教程支持Lin…

使用verilog 实现 cordic 算法 ----- 旋转模式

1-设计流程 ● 了解cordic 算法原理&#xff0c;公式&#xff0c;模式&#xff0c;伸缩因子&#xff0c;旋转方向等&#xff0c;推荐以下链接视频了解 cordic 算法。哔哩哔哩-cordic算法原理讲解 ● 用matlab 或者 c 实现一遍算法 ● 在FPGA中用 verilog 实现&#xff0c;注意…