GitHub Copilot 支持 IntelliJ IDEA啦,插件裝起來!
大家好,我是TJ
一個勵志推薦10000款開源項目與工具的程序員

前幾天給大家介紹過一款I(lǐng)DEA編碼自動注釋工具,可以幫助小伙伴們的編程效率,想必很多人已經(jīng)下載使用了,還沒看過想了解下的小伙伴點這里:IDEA編碼自動注釋工具,讓你的開發(fā)更有效率
然而此時此刻TJ君腦海中有一個大膽的想法,如果有一款工具,能反過來根據(jù)注釋自動給出編程代碼,是不是程序猿們都會笑的合不攏嘴,爽歪歪?
別以為TJ君說的是天方夜譚,就在前不久的?GitHub Universe 2021開發(fā)者大會上,GitHub官方正式宣布了一款名為?Copilot工具的更新。
說起Copilot這個名字,相信一直關(guān)注GitHub的小伙伴馬上腦海中會浮現(xiàn)出今年早些時候看到的新聞。
就在今年夏天,GitHub 官方和OpenAI聯(lián)合發(fā)布了一款A(yù)I自動編程工具,其名字正是?GitHub Copilot?。就像前文TJ君想的那樣,通過Copilot,程序員只需輸入注釋,即可自動生成代碼!
當時一時間在程序猿圈子里還引起了不少的轟動,但更多的是對這個工具的疑問,還因此引發(fā)了一個快速平方根倒數(shù)算法事件。
快速平方根倒數(shù)算法,是當年紅極一時的雷神之錘3(Quake 3,也是TJ君當年的最愛之一)的開發(fā)者約翰·卡馬克用的一段代碼。

這段使用多項式逼近計算平方根的代碼,至今都沒什么人能明白卡馬克的腦子是怎么想出來的,以至于這段代碼阿注釋直接是what the f***?很貼切了

而有開發(fā)者在Copilot發(fā)布后不久就發(fā)現(xiàn),只要輸入 快速平方根倒數(shù)算法(Fast Inverse Square Root,當然是英文)作為注釋,Copilot 就會逐行逐字地重現(xiàn)了這段神奇的算法,一字不差,甚至連那個夸張地注釋都沒變。
這下子仿佛在程序猿小伙伴中間投了顆原子彈,大家都在問難道Copilot只是把別人的代碼拿來復(fù)制一下就是所謂地自動生成了?
那這之后各種版權(quán)問題咋搞,萬一用了Copilot生成一段代碼卻被人起訴了怎么辦?甚至有科技公司直接宣布禁止旗下員工使用Copilot開發(fā)公司產(chǎn)品,就是為了減少不必要的麻煩。
一時間各種針對Copilot地非議愈演愈烈,甚至傳出了自動生成內(nèi)容是某個公司大佬身份證這樣的消息,當然后來被澄清是一個笑話。
但是GitHub并沒有退縮,認為Copilot并沒有簡單的抄襲其他人的內(nèi)容,而是經(jīng)過大量訓(xùn)練的AI自動生成所需代碼,和抄襲完全是兩回事。反正這件事情后來也么了下文,當時Copilot也只支持 Visual Studio Code。
不過前幾天的這次更新之后,Copilot將全面支持Neovim 和 JetBrains IDE,包含開發(fā)者常用的 IntelliJ IDEA、PyCharm 等。同時增加了對 Java 中多行補全的支持,并計劃在未來幾個月內(nèi)支持Python、Java、Type、Ruby 和 Go之外更多的語言,似乎真的是要大干一場。
如果想用Copilot的話,需要將 IntelliJ IDEA 和 PyCharm 升級到 2021.2 或以上版本、Neovim 的版本則需要升級成 0.6 或以上版本,并且需要安裝 Node.js v12 或以上版本。
安裝重啟之后就可以在工具欄看到安裝好的Copilot

然后登陸GitHub賬號,同意相關(guān)條款

那說了那么久,這款號稱可以自動編碼的插件具體使用效果如何呢?就讓TJ君帶你領(lǐng)略一下或許是未來的編碼趨勢與潮流:
例如在項目里新建了test類,Copilot馬上就會給一個建議生成的主體

此時只需要輕按一下tab鍵,就可以接受建議自動生成,無需手打這段代碼。

同樣的如果輸入了一個函數(shù)標題,也會自動出現(xiàn)推薦的函數(shù)主體內(nèi)容,一樣是用tab鍵接受。

當然,Copilot不止會給出單一的自動編碼推薦,用戶可以使用Alt+]或者Alt+[來逐個切換不同的推薦,就像逐個挑選一件件商品一般,選中之后輕按一下tab鍵使用即可。
而通過Alt+Enter可以直接打開各種推薦的列表,便于查找。

至于TJ君之前夢想的根據(jù)注釋自動生成代碼,有一個前提就是必須輸入的注釋能讓機器看懂,也就是說,需要英文注釋。當輸入中文注釋,Copilot不一定看得懂含義,畢竟中文可是博大精深滴。。。
那如果小伙伴的英語水平不錯,Copilot還真的能節(jié)省不少時間,例如當用戶寫了如下一段關(guān)于給圖像增加邊框的注釋:
//?find?all?images?without?alternate?text
//?and?give?them?a?red?border
void?process()?{
Copilot會自動生成相應(yīng)的功能代碼,感覺比自己寫的還順暢:

除了上述Alt+]、Alt+[、Alt+Enter,最常見的操作還包括使用Esc拒絕推薦和Alt + \觸發(fā)關(guān)聯(lián)建議。這里TJ君提到的操作模式都是基于windows操作,如果使用MAC的小伙伴要注意將ALT鍵換成Option鍵就可以了。
TJ君覺得如果對于Copilot的使用熟練了并且對英文注釋的掌握沒有問題的話,Copilot真的能讓編程省時省力,省卻許多手打基礎(chǔ)代碼的功夫,讓程序猿更多的精力花在整體架構(gòu)設(shè)計或者邏輯實現(xiàn)上。不過到底怎么樣,還是要用一用才知道,所以小伙伴們趕緊來獲取倉庫地址和插件下載方法,趕緊試試吧,地址如下:
點擊下方卡片,關(guān)注公眾號“TJ君”
回復(fù)“copilot”,獲取倉庫地址
關(guān)注我,每天了解一個牛x、好用、有趣的東東
