当前位置:   article > 正文

TabNine可以使JavaScript自动完成更好

tabnine javascript

几个月前,一位同事向我推荐了一个名为TabNine的自动完成工具。 他说,它是封闭源代码,但是尽管是开源技术的拥护者,但他一点也不害羞。 Parcel是他的另一个推荐,给我留下了深刻的印象,因此我决定最终选择TabNine来兜一圈。

TabNine是任何编程语言的自动完成器。 它内置于Rust中,由机器学习和特定于语言的语义完成工具驱动。 您可以将其与Visual Studio Code,Sublime Text,Atom,Emacs和Vim一起使用。

在幕后,TabNine使用了多层完成引擎和项目源代码的索引。 通过使用存储库中的代码来帮助建议完成情况,TabNine将考虑您的编码样式和通用模式。 此外,TabNine识别可参数化的模式并根据这些参数提出建议。 那是一个大嘴巴,所以我将在下面显示一些实际含义的示例。

作为背景,在过去的七年中,我一直选择使用Vim作为编辑器,并根据自己的喜好进行调整。 对于自动完成,我一直在使用YouCompleteMe ,尽管安装起来非常棘手,但它是一个出色的工具。 因此,本周我在.vimrc文件中注释了一行,并添加了TabNine插件。

TabNine插件是从YouCompleteMe派生的,但是安装说明中有一句话让人耳目一新:“如果TabNine在安装后无法立即运行,则是一个错误,应该提出问题。” 显然,我不仅希望即插即用,而且该项目的维护者对用户体验非常重视。 轻松安装的承诺得以实现,不到一分钟,我就在使用新的自动完成器。

我做的第一件事是打开过去几周一直在工作的snippets dapp存储库,并开始导入新组件。 我立即看到一个改进自动完成引擎的选项:

塔博宁01 IDG

有点困惑,我认为这可能是我必须作为冒号命令运行的特定于Vim的设置(如果您不熟悉vim中的冒号命令, :q是其中最臭名昭著的)。 但是我很快意识到这实际上只是我需要在编辑器窗口中键入的一些文本。 我的短毛猫讨厌它,但是却成功了:

塔博宁02 IDG

将语义完成添加到机器学习完成中后,我就可以开始了。 我完成了import声明,然后继续从React材质UI库中导入Icon组件。 前几个建议与文件前面的重复行有关,但是第三个建议为我添加了以下几个单词:

塔博宁03 IDG

这是一个很好的示例,说明正在完成的模式具有更多上下文。 导入语句后跟标识符通常在后跟引号。 到目前为止,一切都很好。 即使我期望如此,下一部分还是让我震惊。 从列表中选择第三个完成后,我键入一个@以开始引用Icon组件所在的库包。 TabNine为我完成了整个过程:

塔宾宁04 IDG

我应该注意,我项目中的其他地方都没有使用Icon组件。 这是我之前引用的参数化完成的一个很好的例子。 这些import语句中有一个模式可以引入重要的UI组件,即: import <something> from '@material-ui/core/<something>' 。 TabNine从我的源代码派生了该模式,并自动提出正确的建议。

我认为我应该尝试编写一些新代码,所以我打开了一个空文件并输入了一个字母:

塔博宁05 IDG

接受,输入逗号和空格,然后:

塔博宁06 IDG

好的,这样只花了三个字符。 是时候创建我的组件类了。

塔伯宁07 IDG

哪个TabNine为我完成了。 然后是render方法,典型的return值,道具分解和默认export ,所有这些工作对我来说都是完整的。 这是我开始咯咯笑的时候。

塔巴宁08 IDG
塔巴宁09 IDG
Tabnine 10 IDG

TabNine自动完成器是一个很好的体验,我希望将来会使用它很多。 如果您使用受支持的编辑器之一,则绝对建议您试用TabNine for JavaScript或您可能在编辑器中编写的任何其他语言。 想分享您的经验吗? 继续在Twitter上进行对话: @freethejazz

From: https://www.infoworld.com/article/3386878/javascript-autocomplete-is-better-with-tabnine.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/128206
推荐阅读
相关标签
  

闽ICP备14008679号