Visual Studio 玩转 IntelliCode AI辅助开发

🎀🎀🎀【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辅助开发

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LDAP】LDAP概念和原理介绍

目录 一、前言 二、什么是LDAP? 2.1 什么是目录服务? 2.2 LDAP的介绍 2.3 为什么要使用LDAP 三、LDAP的主要产品线 四、LDAP的基本模型 4.1 目录树概念 4.2 LDAP常用关键字列表 4.3 objectClass介绍 五、JXplorer工具使用 一、前言 对于许多的…

用ue5打开网址链接

需要用到 Launch URL 这个函数 字面意思就是打开填写的链接网页 这里填写的是百度,按下Tab键后就会打开百度的网页

在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 解释

在ESP32使用AT指令集与服务器进行TCP/IP通信时&#xff0c;<link ID> 是一个非常重要的参数。它用于标识不同的连接实例&#xff0c;特别是在多连接场景下&#xff08;如同时建立多个TCP或UDP连接&#xff09;。每个连接都有唯一的<link ID>&#xff0c;通过这个ID…

前后端跨域问题(CROS)

前端 在src中创建util文件&#xff0c;写request.js文件&#xff1a; request.js代码如下&#xff1a; import axios from axios import { ElMessage } from element-plus;const request axios.create({// baseURL: /api, // 注意&#xff01;&#xff01; 这里是全局统一加…

学习笔记071——Java中的【线程】

文章目录 1、基础2、进程和线程3、什么是多线程4、Java 中线程的使用5、Java 中创建线程的方式5.1、继承 Thread 类5.2、实现 Runnable 接口5.3、继承 Thread 和实现 Runnable 接口的区别5.4、实现 Runnable 接口的优化 6、线程的状态7、线程调度7.1、线程休眠7.2、线程合并7.3…

devops-部署Harbor实现私有Docker镜像仓库

文章目录 概述下载配置安装安装后生成的文件使用和维护Harbor参考资料 概述 Harbor是一个开源注册中心&#xff0c;它使用策略和基于角色的访问控制来保护工件&#xff0c;确保镜像被扫描并且没有漏洞&#xff0c;并将镜像签名为可信的。Harbor是CNCF的一个毕业项目&#xff0…

快速上手Neo4j图关系数据库

参考视频&#xff1a; 【IT老齐589】快速上手Neo4j网状关系图库 1 Neo4j简介 Neo4j是一个图数据库&#xff0c;是知识图谱的基础 在Neo4j中&#xff0c;数据的基本构建块包括&#xff1a; 节点(Nodes)关系(Relationships)属性(Properties)标签(Labels) 1.1 节点(Nodes) 节点…

Polkadot 11 月生态月报:3900万交易量、69%增长率,技术与社区齐头并进

原文&#xff1a;https://x.com/Polkadot/status/1865118662069490074 编译&#xff1a;OneBlock 上个月对 Polkadot 生态来说可谓是跌宕起伏&#xff0c;从创下交易记录到开创性合作&#xff0c;Polkadot 热度不断。展现出强大的技术实力和蓬勃发展的社区活力。在回顾本月亮点…

基坑表面位移沉降倾斜自动化监测 非接触式一体化解决机器视觉

基于变焦视觉位移监测仪的基坑自动化监测新方案是一种集成了光学、机械、电子、边缘计算、AI识别以及云平台软件等技术的自动化系统。该方案利用变焦机器视觉原理&#xff0c;结合特殊波段成像识别技术和无源靶标&#xff0c;实现了非接触式大空间、多断面、多测点的高精度水平…

CSS学习-第三天

css链接 链接样式&#xff0c;可以使用任何css属性 特别的样式&#xff0c;可以有不同的样式 a:link - 正常&#xff0c;未访问过的链接 a:visited - 用户已访问过的链接 a:hover - 当用户鼠标放在链接上时 a:active - 链接被点击的那一刻 a:hover必须跟在a:link和a:visited后…

电脑显示器选购指南2024

选择显示器是五花八门的显示参数&#xff0c;如何选择&#xff0c;以下给出参数说明&#xff0c;及部分参考&#xff1a; 1. 尺寸和分辨率 尺寸&#xff08;英寸&#xff09; 根据使用距离和用途选择合适的屏幕尺寸&#xff1a; 21-24 英寸&#xff1a;适合小桌面空间、日常…

快速掌握C语言——数据结构【创建顺序表】多文件编译

1.数据结构脑图&#xff08;未完&#xff09; 2.顺序表其他操作 3.功能函数封装 4 完整代码 1>头文件test.h #ifndef __TEST_H__ #define __TEST_H__#include<stdlib.h> #include<stdio.h> #include<string.h>//宏定义 线性表的最大容量 #define MAX 3…

Linux 中的 mkdir 命令:深入解析

在 Linux 系统中&#xff0c;mkdir 命令用于创建目录。它是文件系统管理中最基础的命令之一&#xff0c;广泛应用于日常操作和系统管理中。本文将深入探讨 mkdir 命令的功能、使用场景、高级技巧&#xff0c;并结合 GNU Coreutils 的源码进行详细分析。 1. mkdir 命令的基本用法…

STM32F407+LAN8720A +LWIP +FreeRTOS UDP通讯

STM32F407+LAN8720A +LWIP +FreeRTOS ping通 上一篇实现了LWIP ping 通 本篇实现UDP通讯 实现如下功能: 串口1空闲中断+DMA接收,收到数据用UDP发送UDP接收,收到数据用串口1发送STM32CUBEIDE配置和代码 1. 配置UARAT1的空闲中断+DMA接收 UART1接收到数据,释放信号量,在任…

【蓝桥杯选拔赛真题94】Scratch巡逻的直升机 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch巡逻的直升机 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 sc…

非前后端分离项目,通过拦截器,对前端发送网络访问地址

一、背景 在非前后端分离的web应用开发过程中&#xff0c;在html中不可避免的需要请求项目地址去访问接口或者静态资源&#xff0c;但是开发环境、测试环境以及生产环境不同&#xff0c;地址也不同&#xff0c;避免频繁修改代码&#xff0c;可以通过自动获取访问地址通过拦截器…

人工智能大语言模型起源篇(一),从哪里开始

序言&#xff1a;许多人最初接触人工智能都是在ChatGPT火热之际&#xff0c;并且大多停留在应用层面。对于希望了解其技术根源的人来说&#xff0c;往往难以找到方向。因此&#xff0c;我们编写了《人工智能大语言模型起源篇》&#xff0c;旨在帮助读者找到正确的学习路径&…

FFmpeg功能使用

步骤&#xff1a;1&#xff0c;安装FFmpeg Download FFmpeg 在这里点击->Windows builds from gyan.dev&#xff1b;如下图 会跳到另外的下载界面&#xff1a; 在里面下拉选择点击ffmpeg-7.1-essentials_build.zip&#xff1a; 即可下载到FFmpeg&#xff1b; 使用&#…

【Unity基础】Unity中如何实现图形倒计时

为了在Unity中实现一个图形倒计时&#xff0c;除了代码部分&#xff0c;还需要一些UI元素的创建和设置。本文以环形倒计时为例&#xff0c;以下是完整的步骤&#xff0c;涵盖了如何创建UI元素、设置它们&#xff0c;以及如何编写控制环形倒计时进度的脚本。 1. 创建UI元素 创建…

2024 中央企业数据资产化及数据资产入表场景建设白皮书

本文介绍了中央企业数据资产化的重要性及其入表场景建设。白皮书详细阐述了数据资产化的概念、实施步骤和关键挑战&#xff0c;提出了一系列解决方案。文章还强调了数据资产入表的重要性&#xff0c;以提高数据的透明度和质量&#xff0c;推动企业数字化转型。 重点内容&#…