AI加持,Kite增加智能代碼補(bǔ)全功能:減少一半操作,實(shí)時(shí)補(bǔ)全
代碼補(bǔ)全工具 Kite 近日更新了最新的版本,增加了名為「Intelligent Snippets」的新功能。這一功能可以幫助開發(fā)者更為智能和高效的補(bǔ)全 Python 代碼中的函數(shù)命令了。
Kite 是一個(gè)著名的 Python 代碼補(bǔ)全工具,支持在一些 IDE 上作為插件,幫助開發(fā)者提升代碼效率。近日,Kite 官方宣布將會(huì)增加「Intelligent Snippets」功能。據(jù)官方表示,這一工具可以幫助開發(fā)者補(bǔ)全復(fù)雜的、多字符的代碼,而且代碼的生成幾乎是實(shí)時(shí)的。
Intelligent Snippets 有什么特性
Kite 本身就是一種代碼補(bǔ)全工具。在版本更新前,它只能按照規(guī)則或檢索的方式,幫助用戶補(bǔ)全忘記了名稱的函數(shù)。官方認(rèn)為,這不是最優(yōu)的解決方案。
在 9 月 5 日發(fā)布了新版本后,新加入的 Intelligent Snippets 能幫助代碼補(bǔ)全最初更合理的預(yù)測(cè)。簡(jiǎn)單總結(jié)一番,Kite 最新構(gòu)建的 Intelligent Snippets 主要有以下特性:
支持大部分的編輯器:Atom、PyCharm/IntelliJ、Sublime Text、VS Code 和 Vim;
支持全局和局部函數(shù)補(bǔ)全;
通過 Intelligent Snippets 調(diào)用函數(shù),用戶只需要一半的擊鍵操作。
如果讀者想要試試這種免費(fèi)的代碼補(bǔ)全工具,可以直接下載插件:https://kite.com/download/。
Intelligent Snippets 可以解決什么問題
傳統(tǒng)上,我們可以創(chuàng)建一些代碼塊,然后在需要的時(shí)候直接調(diào)用并修改這個(gè)片段。一般而言,這種代碼塊都是開發(fā)者事前手動(dòng)定義的,它們都是靜態(tài)的,并不會(huì)隨著開發(fā)者的編寫過程而改變。因此,模板式的代碼塊限制了代碼模式的多樣性。
例如在下面動(dòng)圖中,開發(fā)者使用代碼塊來插入定義函數(shù)的主要結(jié)構(gòu),然后再修改參數(shù)與子語句完成特定的函數(shù)。
Kite 的 Intelligent Snippets 引擎能根據(jù)我們正在使用的代碼動(dòng)態(tài)地生成代碼片段,它能自動(dòng)地檢查我們代碼庫中最一般的模式,并建議我們?cè)趯懘a時(shí)使用這些模式。下面的動(dòng)圖展示了這一新特性,它會(huì)預(yù)測(cè)一些常用的編程模式。
如何構(gòu)建 Intelligent Snippets
Intelligent Snippets 建立在 Kite 代碼補(bǔ)全核心代碼引擎之上。首先,kite 會(huì)索引你的代碼庫,學(xué)習(xí)函數(shù)常用方式。然后,在你調(diào)用函數(shù)時(shí),Kite 建議該函數(shù)的代碼段從而輕松補(bǔ)全。Kite 的自動(dòng)補(bǔ)全依然為每個(gè)參數(shù)建議補(bǔ)充代碼。
Intelligent Snippets 不只是節(jié)省了敲代碼的時(shí)間,也能減少你查閱文檔的次數(shù)。
支持全局與局部函數(shù)
下面的動(dòng)圖展示了開發(fā)者使用 Intelligent Snippets 快速調(diào)用 requests.post:
Intelligent Snippets 也支持自己定義的函數(shù),如以下動(dòng)圖所示:
官方表示,他們希望 Kite 能夠在未來成為開發(fā)者和 AI 加持的代碼工具的交互基石。他們希望 intelligent snippets 可以在補(bǔ)全函數(shù)命令之外有更多應(yīng)用,比如補(bǔ)全 try/except 的代碼塊或者單元測(cè)試樣例。