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

2023-11-04

一、什么是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代码解释功能,将一坨复杂逻辑的代码生成白话文,有助于我们更好的理解他人写的代码。
可惜的是,这里面的所有功能,它都有个代码上限,就是每次选择的代码不能太多,有行数限制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Github Copilot 的补强工具Github Copilot Labs的常用功能介绍 的相关文章

随机推荐

  • 冒险岛 vcruntime140.dll 丢失问题的多种方法,几种解决方法都有效

    当您尝试启动冒险岛游戏时 可能会遇到一个名为 vcruntime140 dll 丢失 的错误提示 vcruntime140 dll 是冒险岛游戏所需的一个重要系统文件 如果系统无法找到或加载该文件 您将无法正常启动游戏 在本文中 我们将详细
  • 测试存储过程中中发生异常时,之前DML操作会不会rollback

    span style font family none span style font size 14px 步骤 span span span style font size 14px 1 向表中productinfo插入一条数据 span
  • vosviewer保存成PDF文件时没有文字

    1 将vosviewer中英文国家名字 手工更换为中文后 重新导入软件 2 点击Screenshot后面的三角标 并选择 Save 3 打开PDF文件 发现另存的PDF中没有文字 还在研究如何解决
  • UI/UX记——Adobe XD

    文章目录 前言 一 Adobe XD是什么 二 3D 变换 开启全新维度进行设计 实现不可能 在作品中实现三维效果 助力流程与时俱进 操作 1 选择组件 2 启用 3D 变换 3 旋转和移动 组件 使用可重复使用的设计元素进行扩展 深入令人
  • Java:详解List集合的排序功能

    概述 List集合有两大排序方式 分别为自然排序和自定义排序 使用自然排序 需要元素类达到某种要求 使用自定义排序 就是在需要排序的时候才传入排序规则 自然排序 自然排序是 Collections sort 方法 只带一个参数 参数为Lis
  • (Java)蓝桥杯_分巧克力

    题目描述 儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们 切出的巧克力需要满足
  • 判断对象为空

    一 判断对象为空的方法 1 使用Object keys 判断length是否为0 这里的0是Number类型 代码如下 2 使用JSON stringify 判断是否 代码如下 判断结果是否等于 去判断是否为空对象 3 使用for in 循
  • 使用Jquery设计列表

    1 截取文字内容实现控制列表宽度 使用的技术 1 jQuery的ready 函数 文档加载完成 2 jQuery的each 函数 遍历jQuery对象 3 jQuery的text 函数 所有匹配元素的内容 document ready fu
  • 1.react useState使用与常见问题

    文章目录 0 取消批处理合并更新 render 2次 1 合并更新 setCount 异步更新 3次相当于1次 count值为1 2 如何取消批处理合并 让值累加 改为回调函数写法 内部会依次执行函数 执行3次 count值为3 3 异步更
  • Grafana 重置 admin 密码

    Grafana 的使用越来越广泛 在使用过程中经常遇到要重置密码的需求 尤其是 admin 密码 先说常规问题 已知 admin 密码修改新密码 方法一 常规方法 使用已知密码登陆系统 在系统页面里进行修改 方法二 API 接口 接口使用方
  • React 生命周期详细解析及新旧对比

    React 生命周期 旧 react旧版生命周期包含三个过程 1 挂载过程 constructor componentWillMount componentDidMount 2 更新过程 componentWillReceiveProps
  • Linux和Windows下:Python Crypto模块安装方式区别

    欢迎关注 无量测试之道 公众号 回复 领取资源 Python编程学习资源干货 Python Appium框架APP的UI自动化 Python Selenium框架Web的UI自动化 Python Unittest框架API自动化 资源和代码
  • RTX2080ti显卡+Ubuntu+安装Tensorflow-gpu

    参考这两篇文章 https blog csdn net macunshi article details 84638675 https blog csdn net macunshi article details 83374973 结合这两
  • 【算法】排序2:三种方法实现快速排序

    快速排序是一种二叉树结构的交换排序方法 其基本思想为 任取待排序元素序列中的某元素作为基准值 按照该排序码将待排序集合分割成两子序列 左子序列中所有元素均小于基准值 右子序列中所有元素均大于基准值 然后最左右子序列重复该过程 直到所有元素都
  • fork和multiprocessing

    多任务理解 单核cpu完成多个cpu的切换 时间片轮转 优先级调度 并发看上去一起执行 并行一起执行 调度算法 什么样的情况下用什么样的规则让谁去执行 一般情况下电脑都是并发的 进程的创建 fork 进程VS程序 编写完毕的代码 在没有运行
  • SSTI模板注入

    SSTI模板注入 探测 识别 利用 Smarty Twig 1 x twig2 x 3 x jinja2 探测 使用
  • Redis最全教程—从入门到精通

    Redis 备注 个人学习笔记 是学习B站上的狂神说Java的课程摘录的笔记 视频地址 https www bilibili com video BV1S54y1R7SB B站up主 狂神说Java 笔记参考来源 微信公众号 狂神说 Nos
  • 使用fastreport4经验小谈

    1 fastreport 属性窗口如何找回来 打开报表 frxreport 查看 view gt 选项 options gt 恢复默认值 restore defaults 2 我们查看报表输出时 从第二页不能清晰的看出订单数据是那个客户的数
  • MyEclipse添加反编译插件jadClipse--通用--超好+部署文档,傻瓜版

    MyEclipse添加反编译插件jadClipse 通用 超好 部署文档 傻瓜版 下载地址 https download csdn net download u014246526 10406292 效果图如下
  • Github Copilot 的补强工具Github Copilot Labs的常用功能介绍

    一 什么是Github Copilot Labs Github Copilot Labs是由GitHub推出的一款基于人工智能技术的代码协作工具 旨在协助开发者更加快速 高效地编写代码 该工具使用了机器学习技术 通过学习大量的开源代码和编写