TabNine 利用机器学习补全代码的编辑器插件

安利一款利用机器学习补全代码的编辑器插件——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 来学习当前项目的源代码,会学习代码的写作习惯和常用的代码片段,在补全代码上更开放。

遇到比较方便的例子

  1. 单词补全,TabNine会根据项目常用的单词补全你想要写的变量名,比如项目中有updateCollection 当我输入 delete 的时候会自动提示 deleteCollection, 当输入 UPDATE或者DELETE 会建议 _COLLECTION
  2. 会基于常用的代码片段推荐,命中率很高,会节约很多敲代码的时间
  3. 会推荐常用的语法糖
  4. 通过对GitHub代码的学习会建议一些固有模式的代码比如React 类的写法 和 生命周期的一些写法

TabNine的技术就是对传统语法补全技术的一种极好的补充,因为程序员每天大部分时间都是在重复自己以前的编程思想和代码片段,为什么不让机器来辅助人从重复的代码拷贝中解脱出来呢?

问题

  1. 内存损耗大
  2. 会在本地创建比较大的token索引占用磁盘空间
  3. 对GPU有要求
  4. 看个人喜好,有人觉得烦,干扰自己对于代码闭合的习惯,会扰乱自己输入
  5. 对小众语言的支持不友好,比如Dart

原文发布于微信公众号 - 子曰五溪(fed-talk)

原文发表时间:2019-10-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券