Github Copilot 的补强工具Github Copilot Labs的常用功能介绍

一、什么是Github Copilot Labs

Github Copilot Labs是由GitHub推出的一款基于人工智能技术的代码协作工具,旨在协助开发者更加快速、高效地编写代码。该工具使用了机器学习技术,通过学习大量的开源代码和编写实践,提供了对于代码变量、函数、类的自动补全和提示,甚至可以自动编写代码段。
Github Copilot Labs通过提供智能建议和自动补全的方式,帮助开发者节省时间和精力,同时还可以让开发者更快、更准确地编写高质量的代码。
值得注意的是,Github Copilot Labs虽然非常智能和强大,但是仍处于实验阶段并未完全上线,目前仅针对少量的编程语言和集成开发环境开放

二、安装注册

目前这个插件还在实验阶段,上线的插件市场有限,下面介绍一下如何在vscode中安装使用
打开vscode --> 点击插件市场 --> 搜索github copilot labs --> 点击安装
在这里插入图片描述
安装完成之后,右下角会有弹框提示让你去注册,点击链接,跟着提示一步一步注册就可以了
在这里插入图片描述
成功之后,vscode中左侧会有一个机器人的logo,这个就是github copilot labs工具

三、常用功能介绍

1. EXPLAIN

(1) explain code 代码解释功能
在这里插入图片描述
如上图,EXPLAN模块,下拉框中有五个模块,默认就是Explain code代码解释功能
在这里插入图片描述
选中一部分代码,点击Ask Copilot,就会生成对当前的代码的解析。

中文解析方法:
默认是英文的,想要中文的,可以点开Advanced,里面输入‘请用中文说明’,然后再点击Ask Copilot就可以了,如图:
在这里插入图片描述
(2) show example code 举例说明
这个功能就是比如你看到一个别人封装的比较复杂的函数,不知道具体如何使用时,就可以用这个功能试试,如下:
在这里插入图片描述
可以看到copilot已经给我生成了一个axios的调用实例

(3) Code does following 代码执行步骤说明
这个功能是介绍当前代码具体的逻辑执行过程的如下:
在这里插入图片描述

中文的方式和Explian code一样,如下:

在这里插入图片描述

2. LANGUAGE TRANSLATION 语言转换

这个模块的功能是将选中的代码转换成其他语言,
如图将js语言转换为python
在这里插入图片描述
在这里插入图片描述
再试一下c语言
在这里插入图片描述
在这里插入图片描述

转java
在这里插入图片描述
如上,都能转换,至于能不能用只有实际测试一下才行。但至少是生成了对应的语言的代码。
我这个实例代码可能不太恰当,大家可以用算法试试,无论什么语言算法的逻辑是一样的。

3. BRUSHES 代码刷子

在这里插入图片描述
有十个功能,接下来我们尝试用一下,
(1) READABLE 让你的代码更具可读性
使用前:
在这里插入图片描述
使用后:
在这里插入图片描述
如上图使用前后对比,它在给我们的代码中加了一下注释,方便我们能搞好阅读代码。

(2) Add Types 添加类型
js语言是一门脚本语言,不同于java这种强类型语言,在函数传参,变量定义时都要有明确的定义。
Add Types 功能,有点类似是将js转换为Ts,为js中的变量声明,函数参数定义都加上了类型。如图:
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(3) Fix Bug 改bug
这个功能我试了下,能改掉一些语法错误,如下:
使用前:
我故意将这个变量名写错,然后点击Fix Bug
在这里插入图片描述
使用后:
在这里插入图片描述
如图:使用了确实将这个变量为我们写正确了。
(4)Debug 调试
这个功能会给我们的代码添加日志,如图:
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(5)Clean 去掉冗余代码
这个功能可以去掉代码中的冗余部分,比如多余的变量声明,不必要的变量赋值,和一些日志输出等。如图:
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
**(6)List Steps **
这个功能有点类似EXPLAIN 中的 Code does following, 他会为代码中的每一步都添加上注释
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(7) Make Robust
这个功能可以让你的代码变得更加健壮,会给代码增加一些非空校验和异常处理,可以解决部分潜在的问题。
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(8)Chunk
这个功能是可以将一个函数抽离成几个通用函数,让代码维护起来更轻松。
改造前:
在这里插入图片描述
改造后:
在这里插入图片描述
(9)Document 生成文档
这个功能可以为当前选中的代码生成说明文档
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(10)Custom 自定义
这个就是有点类似问答了,你可以要求copilot将你的代码处理成你想要的样子,如图:
在这里插入图片描述
点击custom右上会有一个弹框,输入你想要让他怎么调整,它会根据你的需求来改变代码

4. TEST GENERATION 生成测试用例

这个功能就是为你写的代码生成一个测试用例,如图:
在这里插入图片描述
这是源代码:

// 写一个深拷贝函数
function deepClone(obj) {
    let newObj = Array.isArray(obj) ? [] : {};
    if (obj && typeof obj === 'object') {
        for (let key in obj) {
            if (obj.hasOwnProperty(key)) {
                newObj[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key];
            }
        }
    }
    return newObj;
}

这是copilot生成的测试用例

describe('test demo', function() {
    it('test demo.deepClone', function(done) {
        let obj = {
            a: 1,
            b: 2,
            c: {
                d: 3,
                e: 4
            }
        };
        let obj2 = demo.deepClone(obj);
        assert.equal(obj2.a, 1);
        assert.equal(obj2.b, 2);
        assert.equal(obj2.c.d, 3);
        assert.equal(obj2.c.e, 4);
        done();
    })
})

看着有点像那么回事,哈哈哈哈狗头.jpg

总结

以上就是Github Copilot Labs的常用功能了,总的体验来讲,比较靠谱的还是Explain代码解释功能,将一坨复杂逻辑的代码生成白话文,有助于我们更好的理解他人写的代码。
可惜的是,这里面的所有功能,它都有个代码上限,就是每次选择的代码不能太多,有行数限制。

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

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

相关文章

多激光雷达手眼标定

手眼标定方法已经有很多博客进行解析,但是都是针对机器人的手(夹爪)眼睛(相机)进行标定。例如: 标定学习笔记(四)-- 手眼标定详解 手眼标定_全面细致的推导过程 本文主要描述多激光…

四、数据仓库详细介绍(规范)

大家好,这是数据仓库系列的第三个话题,排序在架构之后、建模之前。为什么会提的这么靠前呢? 因为规范约束的是数仓建设的全流程,以及后续的迭代和运维。事实上,数仓规范文档,应该随着架构设计文档&#xf…

Java 与排序算法(5):归并排序

一、归并排序 归并排序(Merge Sort)是一种基于分治思想的排序算法。它将待排序的数组分成两个长度相等的子数组,然后对这两个子数组分别进行归并排序,最后将两个排好序的子数组合并成一个有序的数组。 具体实现过程如下&#xf…

要做存储业务,我解析了一个项目的源码

最近在做存储相关的业务,更具体的来说是存储相关的研发,于是就上网查了一下相关的资料,思虑再三打算从最简单的 Json 数据交换格式开始研究。 JSON是独立于编程语言的数据交换格式,几乎所有与网络开发相关的语言都有JSON函数库&am…

基于Java+SpringMvc+vue+element实现高效学生社团平台管理

基于JavaSpringMvcvueelement实现高效学生社团平台管理 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

oracle数据库当中用户的创建,添加,授权,以及表的创建与表的简单介绍,以及在oracle数据库当中的约束以及约束条件的简单介绍

系列文章目录 (3条消息) oracle数据库简介 文章目录 系列文章目录 前言 一、用户的创建 1.1、创建命令 1.2、给予scott用户权限 1.3、以scott用户进行连接登录 二、表和表的设计原则 2.1、表的概念 2.1.1、表是从属于用户的 2.1.2、表是逻辑表(概念表),不…

gpt.4.0-gpt 国内版

gpt 使用 GPT(Generative Pre-trained Transformer)是一种预训练的语言模型,可用于多种自然语言处理任务,如情感分析、文本分类、文本生成等。下面是使用GPT的一些步骤和建议: 确定任务和数据集:首先&…

Hibernate 快速入门

Hibernate 快速入门 〇、前言一、搭建 Hibernate 项目步骤1:新建 Java 项目附录1:新建Java项目中的相关文件信息步骤2:添加 Hibernate 框架支持附录2:添加Hibernate框架支持后,Java项目中的相关文件信息步骤3:其他关键配置1、添加数据库驱动包(本文以MySQL为例)2、配置…

C++11 列表初始化initializer_list

引子 C11,是继C98后的一次有力更新,引进了很多好用的语法,STL也添加了几个新容器,也解决了很多的问题。本篇博客就学习一下C11列表初始化的新语法和 initializer_list 文章目录 引子一. 列表初始化二. initializer_list结束语 一…

计算机底层知识

汇编语言(机器语言)的执行过程 汇编语言的本质:机器语言的助记符 其实他就是机器语言 计算机通电->CPU读取内存中程序(电信号输入) ->时钟发生器不断震荡通电 ->推动CPU内部一步一步执行(执行多…

安卓开发 | 将Vue项目打包为app

知识目录 一、写在前面✨二、Hbuilder X准备💕2.1 Hbuilder X简介2.2 下载 三、打包💕3.1 获取dist目录3.2 新建5app3.3 替换文件3.4 编写manifast.json文件3.5 app云打包 四、总结撒花😊 一、写在前面✨ 大家好!我是初心&#xf…

OJ练习第107题——二叉搜索子树的最大键值和

二叉搜索子树的最大键值和 力扣链接:1373. 二叉搜索子树的最大键值和 题目描述 给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。 二叉搜索树的定义如下: 任意节点的左子树中的键值都 小于 此节点的键值。 任意…

龙蜥白皮书精选:利用 io_uring 提升数据库系统性能

文/高性能存储 SIG 01 背景介绍 传统的 IO 软件栈已经无法完全释放出高性能存储设备的性能,高性能 IO 栈是当前存储领域重点研究的课题之一,代表性的如用户态方案 SPDK,以及标准的内核态方案 io_uring。 02 关键技术 Linux 社区从零开始设…

SeaweedFs使用-通过http接口实现文件操作

通过http接口实现文件操作 SeaweedFs可通过filer的http接口/master中的http接口来进行文件上传 1.通过master的接口进行上传文件 通过各种方式进行请求接口:http://localhost:9333/submit, ip和端口号是master服务的信息。此接口通过post请求方式将文件的二进制流…

esp32CAM环境安装教程---串口驱动安装

前言 (1)本人安装好arduino 的ESP32环境之后, 发现一直下载不进去程序。一直说Cannot configure port, something went wrong. Original message: PermissionError。 (2)查阅了很多资料,用了各种办法&#…

自动生成测试用例_接口测试用例自动生成工具

前言 写用例之前,我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。 har2case 我们先来了解一下另一个项目har2case 他的工作原理就是将当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP A…

图片模块封装:Glide高级使用+使用设计模式图片框架封装+Bitmap尺寸压缩和质量压缩+Bitmap加载大图长图

图片模块封装:Glide高级使用使用设计模式图片封装Bitmap尺寸压缩和质量压缩Bitmap加载大图长图 一.如何更换图片框架二.策略模式构建者模式图片框架搭建1.ImageOptions图片参数设置2.IImageLoader接口以及实现子类3.图片加载策略4.ImageLoaderManager6.业务模块中使…

tcp/ip

这里写自定义目录标题 线程 防止阻塞 123 windows下4 https://zhuanlan.zhihu.com/p/139454200 https://www.bilibili.com/video/BV1eg411G7pW/?spm_id_from333.337.search-card.all.click&vd_sourcee7d12c9f66ab8294c87125a95510dac9 with socket.socket() as s:s.bind(…

小航编程题库2022年NOC决赛图形化(小高组)(含题库教师学生账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)_程序猿下山的博客-CSDN博客 单选题3.0分 删除编辑 答案:A 第1题运行下面的程序,最终“我的变量”的值是多少? A、5B、10C、25D、30 答案…

计及N-k安全约束的含光热电站电力系统优化调度模型【IEEE14节点、118节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…