GitHub Copilot支持 IntelliJ IDEA啦,插件装起来!

DD的博客全面升级,阅读体验更佳(尤其是系列教程),后续不再通过这里发布新文章,而是改到 www.didispace.com 发布啦,奔走相告!点击直达~

前几天给大家介绍过一款IDEA编码自动注释工具,可以帮助小伙伴们的编程效率,想必很多人已经下载使用了,还没看过想了解下的小伙伴点这里:IDEA编码自动注释工具,让你的开发更有效率

然而此时此刻TJ君脑海中有一个大胆的想法,如果有一款工具,能反过来根据注释自动给出编程代码,是不是程序猿们都会笑的合不拢嘴,爽歪歪?

别以为TJ君说的是天方夜谭,就在前不久的 GitHub Universe 2021开发者大会上,GitHub官方正式宣布了一款名为 Copilot工具的更新。

说起Copilot这个名字,相信一直关注GitHub的小伙伴马上脑海中会浮现出今年早些时候看到的新闻。

就在今年夏天,GitHub 官方和OpenAI联合发布了一款AI自动编程工具,其名字正是 GitHub Copilot 。就像前文TJ君想的那样,通过Copilot,程序员只需输入注释,即可自动生成代码!

当时一时间在程序猿圈子里还引起了不少的轰动,但更多的是对这个工具的疑问,还因此引发了一个快速平方根倒数算法事件

快速平方根倒数算法,是当年红极一时的雷神之锤3(Quake 3,也是TJ君当年的最爱之一)的开发者约翰·卡马克用的一段代码。

卡马克大神

这段使用多项式逼近计算平方根的代码,至今都没什么人能明白卡马克的脑子是怎么想出来的,以至于这段代码阿注释直接是what the f***?很贴切了

而有开发者在Copilot发布后不久就发现,只要输入 快速平方根倒数算法(Fast Inverse Square Root,当然是英文)作为注释,Copilot 就会逐行逐字地重现了这段神奇的算法,一字不差,甚至连那个夸张地注释都没变。

这下子仿佛在程序猿小伙伴中间投了颗原子弹,大家都在问难道Copilot只是把别人的代码拿来复制一下就是所谓地自动生成了?

那这之后各种版权问题咋搞,万一用了Copilot生成一段代码却被人起诉了怎么办?甚至有科技公司直接宣布禁止旗下员工使用Copilot开发公司产品,就是为了减少不必要的麻烦。

一时间各种针对Copilot地非议愈演愈烈,甚至传出了自动生成内容是某个公司大佬身份证这样的消息,当然后来被澄清是一个笑话。

但是GitHub并没有退缩,认为Copilot并没有简单的抄袭其他人的内容,而是经过大量训练的AI自动生成所需代码,和抄袭完全是两回事。反正这件事情后来也么了下文,当时Copilot也只支持 Visual Studio Code。

不过前几天的这次更新之后,Copilot将全面支持Neovim 和 JetBrains IDE,包含开发者常用的 IntelliJ IDEA、PyCharm 等。同时增加了对 Java 中多行补全的支持,并计划在未来几个月内支持Python、Java、Type、Ruby 和 Go之外更多的语言,似乎真的是要大干一场。

如果想用Copilot的话,需要将 IntelliJ IDEA 和 PyCharm 升级到 2021.2 或以上版本、Neovim 的版本则需要升级成 0.6 或以上版本,并且需要安装 Node.js v12 或以上版本。

安装重启之后就可以在工具栏看到安装好的Copilot

GitHub Copilot

然后登陆GitHub账号,同意相关条款

GitHub Copilot

那说了那么久,这款号称可以自动编码的插件具体使用效果如何呢?就让TJ君带你领略一下或许是未来的编码趋势与潮流:

例如在项目里新建了test类,Copilot马上就会给一个建议生成的主体

GitHub Copilot

此时只需要轻按一下tab键,就可以接受建议自动生成,无需手打这段代码。

GitHub Copilot

同样的如果输入了一个函数标题,也会自动出现推荐的函数主体内容,一样是用tab键接受。

GitHub Copilot

当然,Copilot不止会给出单一的自动编码推荐,用户可以使用Alt+]或者Alt+[来逐个切换不同的推荐,就像逐个挑选一件件商品一般,选中之后轻按一下tab键使用即可。

而通过Alt+Enter可以直接打开各种推荐的列表,便于查找。

GitHub Copilot

至于TJ君之前梦想的根据注释自动生成代码,有一个前提就是必须输入的注释能让机器看懂,也就是说,需要英文注释。当输入中文注释,Copilot不一定看得懂含义,毕竟中文可是博大精深滴。。。

那如果小伙伴的英语水平不错,Copilot还真的能节省不少时间,例如当用户写了如下一段关于给图像增加边框的注释:

// find all images without alternate text
// and give them a red border
void process() {

Copilot会自动生成相应的功能代码,感觉比自己写的还顺畅:

GitHub Copilot

除了上述Alt+]Alt+[Alt+Enter,最常见的操作还包括使用Esc拒绝推荐和Alt + \触发关联建议。这里TJ君提到的操作模式都是基于windows操作,如果使用MAC的小伙伴要注意将ALT键换成Option键就可以了。

TJ君觉得如果对于Copilot的使用熟练了并且对英文注释的掌握没有问题的话,Copilot真的能让编程省时省力,省却许多手打基础代码的功夫,让程序猿更多的精力花在整体架构设计或者逻辑实现上。不过到底怎么样,还是要用一用才知道,所以小伙伴们赶紧来获取仓库地址和插件下载方法,赶紧试试吧

扫描下方二维码,关注公众号“TJ君”,回复“copilot”,获取仓库地址!