AI编码工具
Github Copilot
Copilot介绍
GitHub Copilot是GitHub和OpenAI共同开发的人工智能代码助手。它使用AI技术,可以在编写代码时自动生成建议的代码,从而提高编写代码的效率和准确性。
GitHub Copilot可以通过提供自然语言描述以及给定的上下文来自动生成代码,帮助开发者更快速、更准确地编写代码。它可以学习用户的编码习惯,根据上下文和代码库中的数据来生成更加智能的代码建议。它还可以生成函数签名、注释和文档,从而使代码更易于理解和维护。
GitHub Copilot可以与多个常见的编程语言(如Python、JavaScript、java、gp等)和开发环境(如VS Code、Visual Studio、IDEA等)集成使用。同时,它还提供了基于GitHub的团队协作功能,可以与团队成员一起使用。
安装IDEA插件
-
首先进入 idea 插件市场,然后搜索 github copilot 并进行安装:
注意:idea 版本必须是 2021.2 或者更高,否则是无法搜索到 copilot 插件。
-
安装后根据提示重启 IDE,接下来还需要关联 github 账号才可使用该插件。点击 Tools -> GitHub Copilot -> Login to GitHub:
-
可以看到你的设备code,点击
Copy and Open
进行授权 -
粘贴输入我们的设备码并点击 Continue 按钮
-
在接下来的授权页中点击 Authorize GitHub Copilot 即可激活成功。
-
连接成功
-
然后 idea 中会出现同意使用的弹窗
基础功能
Tabnine
Tabnine介绍
TabNine是一个人工智能代码自动补全工具,它可以使用机器学习算法为程序员自动生成代码补全建议。TabNine可以在多种编辑器和IDE中使用,如VS Code、Atom、Sublime Text、PyCharm、Android Studio等,支持多种编程语言,如Python、Java、C++、JavaScript、Go等。
TabNine的主要优势是其强大的机器学习算法。它使用深度学习技术预测程序员可能想要编写的代码,然后在编辑器中自动生成建议。这种算法的主要优点是其能够学习和适应不同的编码风格和习惯,从而提供更准确和个性化的代码建议。
TabNine还可以自动完成代码片段、函数签名、文档注释等。它还支持语言特定的功能,如Python中的self提示、JavaScript中的属性和方法提示等。此外,TabNine还支持多行代码补全、模板补全等高级功能,以提高程序员的生产力和效率。
安装IDEA插件
-
首先进入 idea 插件市场,然后搜索 github copilot 并进行安装:
-
安装后根据提示重启 IDE,编码函数Tabnine进行自动补全
与Github Copilot功能对比
下面是Tabnine自己发的一个功能对比图(很明显有抬高自己的味道)
其实最核心的是Tabnine存在免费版,可以做一些代码补全等
Cursor
cursor介绍
Cursor ( https://www.cursor.so/ )是和OpenAI合作基于GPT3的一个IDE,有点类似VScode,但是它可以帮你写代码,并且质量还可以的那种。
可加入到Discard中群聊中,了解Cursor能力(类似:midjourney)
基础功能
Generate(⌘+K)
在输入框里面输入你需要让它帮助你写什么代码,回车后它就开始自动帮助你写代码了。
Edit Selection(⌘+K)
可以选择一段代码,然后针对这段代码提出一些修改要求,比如要求 Cursor 修改其中的逻辑、添加注释等:
Cursor 会帮助你做一些改变,生成 diff 对比,然后提出 2 个选项问你接受 (Accept) 还是拒绝 (Reject),选择接受就会应用改变否则就恢复原状。
Chat(⌘+L)
类似于集成了 chatGPT,你可以在 Cursor 里面使用 chatGPT 去问任何问题,相当于不需要专门去 官网 了或者搜索引擎就可以找到答案。
上面的例子里,我想要给程序添加类型注解,直接用 Chat 就可以获取解决方案。这可以让开发者不需要在 Google、StackOverFlow 等网站来回切换,编程过程完整的在 Cursor 里进行,无论是查看报错信息原因、查找代码如何写、学习编程知识等等方面。
Chat Selection(⌘+L)
可以选择一段代码,然后针对这段代码提出一些问题。例如让 IDE 解释一下这段代码的原理、代码结构、找 Bug 等等
这个模式下,对于理解别人写的代码是非常有帮助的,如果你接手了别人的项目,现在有 Cursor 帮助你理解。
隐藏技能
接着再分享一些 Cursor 隐藏技能。
添加注释 / 测试
当你选择函数或者类,会提示添加文档字符串 (Add Docstring) 和测试代码 (Add Test)
不过现阶段这个反应时间比较长,需要稍微耐心一点,另外看上图可以看到当有装饰器时生成的文档注释的位置不对需要手动挪挪,不过未来肯定会修复的。文档字符串时非常爽的,尤其是对于英语不好的同学,想怎么表达非常烧脑,现在好了,直接生成。测试代码是在 Chat 里面给你范例,可以直接参考使用。
Lint
不同语言已经自带了相关的 Lint,例如 Python 使用了 pyflakes,如果你的代码写的有相关的问题,左边会有提示,鼠标悬停会提示错误原因: