Visual Studio 玩转 IntelliCode AI辅助开发

news2025/1/5 11:24:05

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀

  1. Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  2. Visual Studio 安装和管理 GitHub Copilot
  3. Visual Studio 使用 GitHub Copilot 扩展
  4. Visual Studio 使用 GitHub Copilot 聊天
  5. Visual Studio 使用 GitHub Copilot 协助调试
  6. Visual Studio 使用 IntelliCode AI 辅助代码开发
  7. Visual Studio 玩转 IntelliCode AI辅助开发

在这里插入图片描述


文章目录

  • 一、前言📋
  • 二、工作原理🧮
  • 三、两种模式🎭
    • 3.1 模式 1:键入时整行自动完成
    • 3.2 模式 2:选择 IntelliSense 项时的整行自动完成
  • 四、接受或消除整行完成🎏
  • 五、控制整行自动完成🪧
  • 六、 编辑代码时的 AI 辅助🤖
  • 七、 提供多条灯泡建议💡
  • 八、总结🎯


一、前言📋

IntelliCode 整行自动完成功能根据当前代码 预测 下一个 代码区块,并呈现为灰色文本 内联预测 。 想想在键入电子邮件时看到的灰色文本自动完成,只不过此处用于代码。

此功能支持 Visual Studio 2022 中的 C#

在这里插入图片描述

二、工作原理🧮

IntelliCode 使用大规模转换器模型,该模型在来自 GitHub 的约 50 万个公共开源存储库上进行训练。 此模型通过充分掌握至今的已编码内容来预测接下来要键入的内容,这些内容包括:

  • 变量名称和位置
  • 你使用的库
  • 附近代码中的函数
  • IntelliSense 列表
  • 该模型在本地计算机上运行,该功能可在脱机和空隙环境中使用。 此功能支持 C#。

三、两种模式🎭

IntelliCode 以两种方式提供完成 -

  • 一种是在用户键入内容时。
  • 第二种是用户在 IntelliSense 列表中选择了项时。

3.1 模式 1:键入时整行自动完成

当用户键入时,我们将显示整行自动完成,可以通过 “要接受的选项卡” 来接受。若要消除预测,可以使用 EscDelete 键。

在这里插入图片描述

3.2 模式 2:选择 IntelliSense 项时的整行自动完成

当用户选择了 IntelliSense 列表中的项时,IntelliCode 将使用用户已键入的项以及用户已选择的项作为提供预测的上下文。 在此示例中,将看到“要接受的选项卡”预测。 第一个选项卡接受 IntelliSense 列表中的选定项,第二个选项卡接受整行完成。 若要消除预测,可以使用 EscDelete 键。

在这里插入图片描述

四、接受或消除整行完成🎏

默认情况下,Tab 键用于接受整行自动完成。 要将默认接受键更改为向右箭头,请转到 工具 > 选项 > IntelliCode > 高级

启用 Apply whole line completions on right arrow 设置。

在这里插入图片描述

五、控制整行自动完成🪧

可以使用编辑器右下角显示的紫色小灯泡(缩放控件旁边)来控制整行自动完成功能。

“工具”“选项”“IntelliCode”“常规” 中,该设置 Show inline completions 允许你打开或关闭全行自动完成。

“高级” 选项卡包含更多选项。

在这里插入图片描述

  1. 本文前面讨论了第一种设置,即 Apply whole line completions on right arrow

  2. 第二个设置,Disable suggestions while debugging 可以让你在调试时尽量减少分心。

  3. 第三种设置为 Show inline completions on new lines,可以根据输入新行时是否想要查看整行自动完成来启用或关闭该设置,即按 ReturnEnter

  4. 最后一项设置 Wait for pauses in typing before showing line completions 启用后,整行自动完成仅在暂停键入时显示。 如果发现整行自动完成在默认模式下分散注意力,你可能更喜欢此选项。

六、 编辑代码时的 AI 辅助🤖

当在代码中的多个位置进行类似的编辑时,可借助 IntelliCode 建议来实施编辑。 它会在本地跟踪你的编辑过程和内容并检测 可重复 应用的内容。 然后,它会提供相关建议,使你能够在可能适用的其他位置中应用这些编辑。 例如,如果你错过了可以应用重构的位置,IntelliCode 建议将帮助你找到这些 位置 并进行 更正

IntelliCode 知道代码的 语义结构 。 该结构用于检测可应用更改的情况,即使变量名称不同也能检测到。

假设要将一个使用 硬编码 本地值的 重复性 温度换算替换为能将这些值提取出来的 helper 函数。 IntelliCode 将检测你正在进行的 重复更改 ,并 建议 你在其他位置进行此更改。

在这里插入图片描述
建议在 Visual Studio 编辑器中显示为快速操作。 IntelliCode 建议具有 “快速操作” 菜单选项:“应用建议”“忽略此类建议”。 如果你想要使用建议的更改,请选择 “应用建议”

在这里插入图片描述

Visual Studio 2019 16.9 及更高版本中,你还会在完成列表中看到你键入的建议:

在这里插入图片描述
由于 IntelliCode 建议会通过会话中的 重复编辑 进行学习,因此有时会提出 不符合 你意向的建议。 如果你不想使用建议的更改,只需选择 “忽略此类建议” 操作。 IntelliCode 不会再建议这类模式,除非你在后续编辑中 重新创建 了它。

IntelliCode 建议是会话范围内的建议 - 在关闭并重新打开 Visual Studio 后不会显示

若要查看包含所有建议的更改的列表,请转到 “视图” > “其他窗口”> “IntelliCode 建议”

七、 提供多条灯泡建议💡

当你接受完成列表建议时,如果有可应用相同更改的其他位置,你将看到具有操作的灯泡,该操作将向你显示找到的建议的列表。 此操作会打开 “IntelliCode 建议” 窗口,可在其中查找建议并执行建议的操作。

在这里插入图片描述

八、总结🎯

本系列教程就此完结,后续如有更新会持续跟进。如果对您有忆点点帮助,请点个赞关注,老规矩我全都要。

在这里插入图片描述
🎀🎀🎀【AI辅助编程系列】🎀🎀🎀

  1. Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  2. Visual Studio 安装和管理 GitHub Copilot
  3. Visual Studio 使用 GitHub Copilot 扩展
  4. Visual Studio 使用 GitHub Copilot 聊天
  5. Visual Studio 使用 GitHub Copilot 协助调试
  6. Visual Studio 使用 IntelliCode AI 辅助代码开发
  7. Visual Studio 玩转 IntelliCode AI辅助开发

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

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

相关文章

超详细!一文搞定PID!嵌入式STM32-PID位置环和速度环

本文目录 一、知识点1. PID是什么?2. 积分限幅--用于限制无限累加的积分项3. 输出值限幅--用于任何pid的输出4. PID工程 二、各类PID1. 位置式PID(用于位置环)(1)公式(2)代码使用代码 2. 增量式…

直观解读 JuiceFS 的数据和元数据设计(一)

大家读完觉得有意义和帮助记得关注和点赞!!! 1 JuiceFS 高层架构与组件2 搭建极简 JuiceFS 集群 2.1 搭建元数据集群2.2 搭建对象存储(MinIO) 2.2.1 启动 MinIO server2.2.2 创建 bucket2.3 下载 juicefs 客户端2.4 创…

数据结构漫游记:静态双向链表

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…

【Web安全】文件写入漏洞 ASP 网页病毒模拟(文件写入漏洞+FilesystemObject)

【Web安全】文件写入漏洞 ASP 网页病毒模拟(文件写入漏洞FilesystemObject) 原理 文件写入漏洞 文件写入漏洞是指攻击者通过某种方式在服务器上创建或修改文件的漏洞。攻击者可以利用此漏洞在服务器上写入恶意代码或文件,从而实现进一步的…

【Unity3d】C#浮点数丢失精度问题

一、float、double浮点数丢失精度问题 Unity3D研究院之被坑了的浮点数的精度(一百零三) | 雨松MOMO程序研究院 https://segmentfault.com/a/1190000041768195?sortnewest 浮点数丢失精度问题是由于大部分浮点数在IEEE754规范下就是无法准确以二进制…

Browser Use:AI智能体自动化操作浏览器的开源工具

Browser Use:AI智能体自动化操作浏览器的开源工具 Browser Use 简介1. 安装所需依赖2. 生成openai密钥3. 编写代码4. 运行代码5. 部署与优化5.1 部署AI代理5.2 优化与扩展总结Browser Use 简介 browser-use是一个Python库,它能够帮助我们将AI代理与浏览器自动化操作结合起来;…

tcpdump指南(1)

大家读完觉得有意义记得关注和点赞!!! tcpdump是一种在网络上转储流量的网络工具。 这篇文章服务器作为一些常用命令的指南。如需完整指南, 请参阅手册页,或在 Linux 计算机上。man tcpdump 1 基本选项 帮助摘要&#…

14. 日常算法

1. 面试题 02.04. 分割链表 题目来源 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 class Solution { public:ListNo…

termux-boot安卓开机自动启动应用

termux安装 github 蓝奏云 v119.1 termux-boot安装 github 蓝奏云 v0.8.1 安装 给权限运行加锁后台 am启动应用命令 am start -n 包名/启动项获取包名和启动入口(图中app为爱玩机工具箱) 例 简黑时钟蓝奏云 包名com.hm.jhclock 桌面启动项com.hm.jh…

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具?它究…

设计模式 创建型 建造者模式(Builder Pattern)与 常见技术框架应用 解析

单例模式(Singleton Pattern),又称生成器模式,是一种对象构建模式。它主要用于构建复杂对象,通过将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建出具有不同表示的对象。该模式的核心思想是将…

MATLAB程序转C# WPF,dll集成,混合编程

工作中遇到一个需求,有一部分算法的代码需要MATLAB来进行处理,而最后需要集成到C#中的wpf项目中去,选择灵活性更高的dll,去进行集成。(可以简单理解为:将MATLAB的函数,变为C#中类的函数成员&…

常见中间件漏洞复现

1.tomcat 1.1 CVE-2017-12615(put上传) 当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产 ⽣,(需要允许put请求) , 攻击者可以利⽤PUT方法通过精心构造的数据包…

C#Halcon深度学习预热与否的运行时间测试

在深度学习推理应用阶段,涉及到提速,绕不开一个关键词“预热”。 在其他地方的“预热”,预先加热到指定的温度。通常指预习准备做某一样事时,为此做好准备。 而在深度学习推理应用阶段涉及的预热通常是指GPU预热,GPU在…

获取 Astro Bot AI 语音来增强您的游戏体验!

有很多用户尝试过Astro Bot,却被Astro Bot可爱的声音所吸引。您是否想知道如何使用 Astro Bot 语音来拨打恶作剧电话或用他的声音说话?如果您有,那么这篇文章适合您。我们将向您展示如何为 Astro Bot 提供逼真的 AI 声音并在在线对话中使用它…

重装操作系统后 Oracle 11g 数据库数据还原

场景描述: 由于SSD系统盘损坏,更换硬盘后重装了操作系统,Oracle数据库之前安装在D盘(另一个硬盘),更换硬盘多添加一个盘符重装系统后盘符从D变成E,也就是之前的D:/app/... 变成了现在的 E:/app/...,重新安装…

IDEA+Docker一键部署项目SpringBoot项目

文章目录 1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署 7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问…

UE5材质节点Camera Vector/Reflection Vector

Camera Vector相机向量,输出像素到相机的方向,结果归一化 会随着相机移动而改变 Reflection Vector 反射向量,物体表面法线反射到相机的方向,x和y和camera vector相反 配合hdr使用

python实现自动登录12306抢票 -- selenium

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码,但是都不是最新的,我也是从网上找别人的帖子,看B站视频&…

鸿蒙1.2:第一个应用

1、create Project,选择Empty Activity 2、配置项目 project name 为项目名称,建议使用驼峰型命名 Bundle name 为项目包名 Save location 为保存位置 Module name 为模块名称,即运行时需要选择的模块名称,见下图 查看模块名称&…