代码自动补全这个功能还是比较需要的,尤其是大项目。在其他模块内定义的数据类型,如果没有代码自动补全写起来太麻烦了。比如django的model中定义的属性,写查询filter的时候,没有代码自动完成,就需要去找各个属性,更恶心的是外键的关联查询直接没有__补全的功能,就得去找对应关系。数据结构复杂了之后这个工作就变成了灾难。
目前使用过的主要有下面几个:
1.kite
Kite 是一家成立于 2014 年的创业公司,主要从事于开发同名的人工智能编程助手,就类似于大家熟悉的 GitHub Copilot。Kite 最初仅支持 Python 和 JavaScript 这两种编程语言,在 2020 年年底,Kite 额外支持了 TypeScript、Java、Go、C、C#、Kotlin 等编程语言,支持的编程语言一下上升到 13 种。Kite 还支持 16 种编辑器 / IDE,其中包括 VS Code、IntelliJ、Vim、Sublime Text 等,在这一点上支持的范围要高于 GitHub Copilot。
目前已经停止开发了,因为这个我还写了一篇文章:https://h4ck.org.cn/2022/10/kite-for-pycharm2022/
如今 Kite 的大部分代码已经在 Github 开源,其中包括数据驱动的 Python 类型推理引擎、Python 公共包分析器、桌面软件、适配各种编辑器的插件、Github 爬虫和分析器等。
项目地址:https://github.com/kiteco
但是在实际的使用过程中有时候会出现一直在warming up状态。所以我又尝试了其他的代码自动补全插件。
2.AiXcoder
aiXcoder致力于将人工智能技术应用于软件开发领域,帮助开发者快速、高效地完成软件开发任务。aiXcoder智能编程工具,能够在开发者编写代码时,自动推荐后续的代码片段,以提高编码效率和代码质量。
aiXcoder代码生成与补全提供以下服务:
- Token级代码生成与补全:基于本地服务,支持自动推荐单个或多个Token的代码
- 行级代码生成与补全:基于云端服务,支持自动生成或补全整行代码
- 方法级代码生成与补全:基于云端服务,支持根据自然语言功能描述以及上下文,生成或补全方法级代码
当前aiXcoder支持Java、Python、C#、C/C++、Go、JavaScript等语言,并支持IntelliJ IDE、PyCharm、Eclipse、VS Code等多种IDE。
实际测试下来,代码补全功能还ok,也确实能自动学习一些新的方法,但是对django的支持一般,也有可能是我使用的方式不对?
3.Tabnine
Tabnine is an AI code assistant that makes you a better developer. Tabnine will increase your development velocity with real-time code completions in all the most popular coding languages and IDEs.
Whether you call it IntelliSense, intelliCode, autocomplete, AI-assisted code completion, AI-powered code completion, AI copilot, AI code snippets, code suggestion, code prediction, code hinting, or content assist, using Tabnine can massively impact your coding velocity, significantly cutting down your coding time.
这几个整体用来下对django的支持性都不怎么好,不知道大家都用什么插件,欢迎推荐。
5 comments
这篇文章是不是发过,因为我记得这张图。
哈哈哈,并没有啊,其实是两张很相似的图。既然你看过,那我就直接换上两张吧~~
哈哈
有一说一,就是来看图的!
嗯嗯,就喜欢这么直白的。