8

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

 3 years ago
source link: https://blog.didispace.com/github-copilot-idea-supported/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

前几天给大家介绍过一款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”,获取仓库地址!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK