发布于 2026-01-06 7 阅读
0

TabNine——让你的编码速度更上一层楼!深度学习助你一臂之力!👨‍💻👩‍💻 什么是 TabNine?它是如何工作的?安装示例

TabNine——让你的编码速度更上一层楼

深度学习来帮忙啦!👨‍💻👩‍💻

TabNine是什么?

它是如何运作的?

安装

示例

深度学习来帮忙啦!👨‍💻👩‍💻

在本文中,我将讨论TabNine,这是一个适用于所有语言的 AI 代码补全系统,重点是 JavaScript。

TabNine是Codota拥有和运营的插件,Codota 还提供 Java 代码补全插件。


TabNine是什么?

TabNine通过一些神奇的技巧帮助开发者编写代码。它基于深度学习系统,旨在帮助您编写代码:

  • 快点
  • 更轻松
  • 清洁工

这是一个免费(没错,免费)的插件,适用于主流的IDE,例如:

  • IntelliJ PyCharm
  • VS Code
  • 升华
  • IntelliJ PhpStorm
  • 维姆
  • 原子

以及其他许多人:

TabNine支持的IDE


它是如何运作的?

TabNine 会对您的代码进行索引,并查找统计模式,从而根据您编写代码的方式创建个性化建议

举例来说:

自动变量声明

如图所示,TabNine 会在我编写代码时自动学习我的变量声明模式,并为我接下来要编写的代码推荐最佳匹配的声明方式。这样,如果您使用定义良好的命名约定,就可以加快变量声明的速度。

TabNine 在写作过程中提供不同的解决方案,并根据找到的最佳匹配结果显示百分比值:

建议百分比

这是一个简单的示例,展示了 TabNine 如何帮助您编写代码,接下来的示例将展示这款神奇工具更复杂、更常见的用例!

注:本文使用 Markdown 编写,TabNine 帮助我完成了写作!真是太棒了!😎

使用 TabNine 编辑 Markdown


安装

TabNine 是一个 IDE 插件,因此安装过程取决于您使用的 IDE。我将展示一些最常用 IDE 的安装过程:

Visual Studio Code

  1. CTRL + P打开命令提示符。
  2. 运行以下命令:
  ext install TabNine.tabnine-vscode
Enter fullscreen mode Exit fullscreen mode
  1. 手动或通过安装后提示重新加载 VS Code。

IntelliJ Idea

  1. CTRL + Alt + S打开设置弹出窗口
  2. 前往“插件/市场”
  3. 搜索TabNine并安装
  4. 手动重新加载IDE

原子

  1. 在软件包管理器中,您可以直接搜索并安装TabNine。

您可以在这里查看其他IDE的安装过程


示例

让我们深入探讨一下如何使用 TabNine 以及为什么要使用它。我可以举很多例子,但我会重点介绍一些具体的使用场景。

示例 1. 注释驱动的代码补全

借助 TabNine,我们可以使用jsdoc动态生成函数和复杂对象。这在先定义接口再定义实现时非常有用。

以这个例子为例,我们要定义一个求和函数:

/**
 * @description return a sum between a and b
 * @name        sumBy
 * @param       {number} a
 * @param       {number} b
 * @return      {number} the sum between a and b
 */
Enter fullscreen mode Exit fullscreen mode

TabNine会读取 jsdoc 参数并建议正确的代码定义。
我只需按下 Alt + 空格键(或 Tab 键)即可编写函数:

评论驱动完成

课程开发与扩展

您也可以将此工具用于类定义。例如:


/**
 * @description Animal class
 */
class Animal {
  /**
   * @constructor
   * @param {string} name - name of the animal
   * @param {boolean} quadruped
   */
  constructor(name, quadruped) {
    this.name = name;
    this.quadruped = quadruped;
  }

  /**
   * @description returns the name of the animal
   * @returns {string} - name of the animal
   */
  get name() {
    return this.name;
  }

  /**
   * @description sets the name of the animal
   * @param {string} name - name of the animal
   */
  set name(name) {
    this.name = name;
  }
}
Enter fullscreen mode Exit fullscreen mode

我们希望在这个基础类中添加一个 Cat 类,TabNine 将学习Animal类,并提出方法实现建议和注释:

以评论驱动的方式完成课程

示例 2. 函数参数自动补全

在 JavaScript 中,如果没有类型定义,通常很难完成函数参数的赋值。TabNine 在这方面很有用,因为它能够学习你的代码并给出方法实现的建议:

函数参数自动补全

TabNine 会自动显示sumBydiffBy方法的参数,因此您不必直接查看方法实现来查看方法接受哪些类型的参数。


TabNine 和 Typescript

TabNine 在 JavaScript 和 TypeScript 之间的行为差​​异并不大。由于类型定义 (Typings) 的存在,TabNine 会提供更精确的代码建议,因此您可以充分利用类型定义为代码带来的所有优势:

使用 TypeScript 完成函数参数补全

如您所见,我定义的param1param2param3 的顺序和类型与foo函数中的定义不同。TabNine
能够识别变量类型,并为您推荐正确的顺序。


由于:

  • 感谢Codota让我有机会撰写这篇文章,并参与到他们这个了不起的项目中。
  • clideo.com,一款超棒的在线视频编辑工具(你还可以用它制作表情包😎)
  • onlineconverter.com,可将视频转换为 GIF,以及更多功能!
文章来源:https://dev.to/nicolalc/tabnine-put-your-coding-speed-to-the-next-level-4e6a