安利一款利用机器学习补全代码的编辑器插件——TabNine
TabNine是一种基于OpenAI的语言模型(GPT-2)来实现的智能代码补全技术。它支持23种编程语言、5种编辑器,使用简单,效果惊艳。不少使用过的网友说:TabNine是他们用过的最好的代码补全工具,这是属于程序员的杀手级应用。
支持我们常用的Webstrom 和 Vscode。
官网地址 https://tabnine.com/ ,在官网上有一些对代码补全的视频
下面是我录制的试用效果的gif图(gif太大了不能上传图床)
B站上用TabNine写python 的视频。https://www.bilibili.com/video/av61698027
1 https://tabnine.com/subscribe
点击Try free beta
填写自己的邮箱后,会收到一封邮件
按照邮件的操作步骤,安装对应编辑器的插件后在编辑器中输入 TabNine::config
会打开浏览器一个配置页面,在页面中填写 APIkey。
为了代码安全选择不上传代码
⚠️ 这里输入 TabNine::config
不太好用,切换英文输入法,在输入后不生效尝试删除字符,补全后回车。我配置两个编辑器的时候,这里都遇到了问题。
配置好了可以尝试使用
IDEA系列和Vscode 现在对代码提示已经支持的很好了,为什么还需要这样的插件:
传统的编辑器插件都是基于语法树提示API,在补全对象的属性或者方法上很好用。TabNine 会通过ML 来学习当前项目的源代码,会学习代码的写作习惯和常用的代码片段,在补全代码上更开放。
遇到比较方便的例子
updateCollection
当我输入 delete 的时候会自动提示 deleteCollection, 当输入 UPDATE或者DELETE 会建议 _COLLECTIONTabNine的技术就是对传统语法补全技术的一种极好的补充,因为程序员每天大部分时间都是在重复自己以前的编程思想和代码片段,为什么不让机器来辅助人从重复的代码拷贝中解脱出来呢?