当前位置: 首页 > news >正文

vscode 的 AI 协助插件 Tabnine / Codeium

4.1、Tabnine

  • 描述:Tabnine 是一款基于深度学习技术的代码自动补全工具。该插件支持多种编程语言,包括 Python、JavaScript、TypeScript、Java 和 Go 等。它可以根据您输入的代码段和上下文信息,预测并推荐可能的代码补全选项,从而提高编写代码的效率。

  • 优点

l 在预测代码补全选项方面非常准确。

l 支持多种编程语言,并提供了丰富的 API 文档和样例代码。

l 可以在本地运行,不需要连接云服务

  • 缺点:

l 普通版本:代码提示功能很少。

l Pro版本:对于一些复杂的代码补全选项,也需要长时间进行预测,且每月收费$11。

l 如果是离线模式,内存占用非常高(我会经常把它禁用掉),对数据安全没有疑虑的开发者可以考虑远程服务模式

4.2、Aixcoder

  • 描述:Aixcoder 是一款基于机器学习技术的智能代码补全工具。该插件支持多种编程语言,包括 C++、Python、Java、JavaScript 和 TypeScript 等。它可以根据您的代码上下文信息,为您提供精准的代码补全建议,从而快速提高编码效率。

  • 优点:

l 支持多种编程语言。

  • 缺点:

l 识别率很低;经常识别不出来需要提示的内容。

l 对于复杂度高点的代码补全选项;需要的时间更长。

4.3、Codeium

  • 描述:Codeium 是一款能够将您的代码转换成可视化图表的插件。该插件支持多种编程语言,包括 JavaScript、Python、Java 和 C++ 等。它提供了单行或多行代码生成、内置聊天和搜索等核心功能。

  • 优点:

l 代码智能提示:Codeium能够实时智能提示代码,代码提示完全基于人工智能自动完成,生成速度快,延时较低,帮助程序员更快地编写代码。

l 代码自动完成:Codeium能够自动完成代码,减少程序员的敲击次数,提高编码效率。

l 代码重构:Codeium可以自动重构代码,帮助程序员更好地管理和维护代码。

l 代码调试:Codeium内置了调试器,能够帮助程序员快速发现和解决代码中的问题。

l 版本控制:Codeium支持多种版本控制系统,包括Git、SVN等,方便程序员管理和维护代码。

l 团队协作:Codeium支持多人协作开发,能够提高团队的工作效率。

l 代码分析:Codeium能够对代码进行分析,帮助程序员发现和解决代码中的潜在问题。

l 智能搜索:Codeium可以对程序员的搜索关键词进行智能分析和推荐,帮助程序员更快地找到他们需要的信息。

l 人工智能聊天:Codeium拥有人工智能聊天的功能,可以回答程序员的问题和提供技术支持,帮助他们更好地应对编程和计算机科学方面的挑战。

l 对于复杂的、陈旧的代码片段;它可以提供相应的代码注释和解释功能。

l 高级版本可私有化部署(收费)

l 对于个人用户完全免费。

  • 缺点:

l Search模块目前只适配了Vscode

l 可能需要科学上网;需要登陆后使用

l 高级版本收费信息还在订阅中。
Codeium在vscode中的集成使用步骤及体验详情如下:
备注:实验基于Vue2.x;Vscode V1.78.2版本
5.1、在 VSCode 上安装(推荐)步骤如下:
5.1.1、在Visual Studio Code中,点击扩展选项卡并搜索“Codeium",安装扩展。
安装完扩展后,不用重启VS Code。

5.1.2、登录
在下图左侧1号位置的图表就是Codeium扩展入口,点击即可打开,第一次使用需要登录Codeium账户。

默认装完插件在右下角2号位置处会弹窗提示登录Codeium账户,直接进入注册/登录即可。

如果没留意,弹窗几秒消失之后,可以从下图3号位置处点击个人账号最下面有个菜单【使用Codeium Auth登录】从这里打开网页登录即可。

这样整个安装步骤就完成了。

5.2、Codeium功能介绍和用法介绍
5.2.1、可以ai聊天(支持中文对话);询问编码思路之类的
5.2.2、对于老代码没有注释的;可以用它辅助添加注释
5.2.3、对方法的解释
5.2.4、代码补全;学习上下文逻辑,补全代码
5.2.5、根据注释写代码
5.2.6、其他功能(绿色背景表示比较有用的功能)
v 向代码中添加注释和文档字符串

v 给方法添加添加日志记录语句,以便轻松调试

v 可以精简代码;删除调试语句,提高代码可读性;并解释清理废弃代码原因。

v 用codeium精简后的代码,如下:

v 给出修改原因

v 大致意思:标准化变量名称;通过简化嵌套的if语句和删除不必要的缩进,提高了可读性。

v 检查诸如空指针引用、未处理的异常等错误

v 添加TODO语句

v 使此代码具有强类型;可以理解为将js转化为Ts;实例如下:

v 对方法的详细注释;有的甚至每一行一个注释;这样有点适得其反。

针对Codeium在实际编码过程中的使用体验,罗列如下:

1、个人开发中安装Codeium插件,可以辅助日常开发;在一个方法写完后,可以用Codeium检查和发现简单的错误(空指针、单词拼写等),及时改掉;如果有需要,可以用它辅助编写单元测试。

2、在日常开发中,遇到一些api不是很熟悉时,Codeium会根据上下文,给予代码提示、补全代码。

3、在维护老项目时,对于较长的方法,可以借助Codeium生成适当的注释说明,更加快速的接手和开发。

4、开发中,当遇到没思路时,可以询问Codeium的Chart,寻找灵感。

5、Codeium可以支持私有化部署(收费),保证了代码的安全性。

相关文章:

vscode 的 AI 协助插件 Tabnine / Codeium

4.1、Tabnine 描述:Tabnine 是一款基于深度学习技术的代码自动补全工具。该插件支持多种编程语言,包括 Python、JavaScript、TypeScript、Java 和 Go 等。它可以根据您输入的代码段和上下文信息,预测并推荐可能的代码补全选项,从而…...

Flutter 中的 OutlineButton 小部件:全面指南

Flutter 中的 OutlineButton 小部件:全面指南 在Flutter的Material Design组件库中,OutlineButton是一个用于创建带边框的扁平按钮的小部件。这种按钮通常用于次要操作或在需要强调其他按钮的情况下使用。本文将为您提供一个全面的指南,帮助…...

Kubernetes可视化界面之DashBoard

1.1 DashBoard Kubernetes Dashboard 是 Kubernetes 集群的一个开箱即用的 Web UI,提供了一种图形化的方式来管理和监视 Kubernetes 集群中的资源。它允许用户直接在浏览器中执行许多常见的 Kubernetes 管理任务,如部署应用、监控应用状态、执行故障排查…...

Docker学习(4):部署web项目

一、部署vue项目 在home目录下创建项目目录 将打包好的vue项目放入该目录下,dist是打包好的vue项目 在项目目录下,编辑default.conf 内容如下: server {listen 80;server_name localhost; # 修改为docker服务宿主机的iplocation / {r…...

驱动开发中引入私有数据的原因

系列文章目录 驱动开发中引入私有数据的原因 驱动开发中引入私有数据的原因 系列文章目录驱动开发中引入私有数据的原因 驱动开发中引入私有数据的原因 驱动开发中引入私有数据(Private Data)概念主要是为了解决以下几个关键问题: 1.多设备支…...

删除edge浏览器文本框储存记录值以及关闭自动填充

当我们点击输入框时总会出现许多以前输入过的信息。 一、删除edge浏览器文本框储存记录值 1、首先按下↓键选中你想删除的信息 二、关闭自动填充。 1、在地址栏输入edge://wallet/settings跳转到以下界面 2、往下滑找到 全部取消即可...

mysql事务 事务并发问题 隔离级别 以及原理

mysql事务 简介:事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务四大特性 原子性(Atomici…...

Android 性能为王时代SparseArray和HashMap一争高下

文章目录 一、SparseArray 源码分析1. **类定义和构造函数**2. **基本方法**2.1 put(int key, E value)2.2 get(int key)2.3 delete(int key)2.4 removeAt(int index)2.5 gc()2.6 size()2.7 keyAt(int index) 和 valueAt(int index) 3. **辅助方法**3.1 binarySearch() 二、使用…...

学术图表的基本配色方法

不论是商业图表还是专业图表,图表的配色都极其关键。图表配色主要有彩色和黑白两种配色方案。刘万祥老师曾提出: “在我看来,普通图表与专业图表的差别,很大程度就体现在颜色运用上。” 对于科学图表,大部分国内的期…...

【学习笔记】Webpack5(Ⅱ)

Webpack 3、高级篇 3.1、提升开发体验 —— SourceMap 3.2、提升打包速度 3.2.1 HotModuleReplacement 3.2.2 OneOf 3.2.3 Include / Exclude 3.2.4 Cache 3.2.5 Thread 3.3、减少代码体积 …...

oracle碎片整理

1、move碎片整理 1) DECLARE tmp_val VARCHAR2 (500); BEGIN FOR REC IN (SELECT TABLE_NAME FROM USER_TABLES ) LOOP tmp_val:=ALTER TABLE || REC.TABLE_NAME || MOVE; BEGIN EXECUTE IMMEDIATE tmp_val; DBMS_OUTPUT.ENABLE(buffer_size => null); DBMS_OUTPUT.put_l…...

民国漫画杂志《时代漫画》第15期.PDF

时代漫画15.PDF: https://url03.ctfile.com/f/1779803-1247458444-8befd8?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络!...

Alamofire常见GET/POST等请求方式的使用,响应直接为json

Alamofire 官方仓库地址:https://github.com/Alamofire/Alamofire xcode中安装和使用:swift网络库Alamofire的安装及简单使用,苹果开发必备-CSDN博客 Alamofire是一个基于Swift语言开发的优秀网络请求库。它封装了底层的网络请求工作&…...

三分钟一条AI小和尚视频 ,日引300+创业粉。单日变现四位数 全套工具

经过六个月的不懈努力和无数次的尝试错误,我终于找到了一个高效引流和积累粉丝的新策略,并愿意与大家无私分享。这一次,我将详尽地介绍这个方法,建议朋友们多次观看以彻底掌握其精髓。 简而言之,该策略主要依托于AI绘…...

vue3中表格中通过判断某个字段来设置对应按钮和消息提示的disabled展示

vue3中表格中通过判断某个字段来设置对应按钮和消息提示的disabled展示 一、前言1.代码案例2.效果展示 一、前言 当使用 Vue 3 和 Element UI 的 el-table 组件时,你可以通过判断字段的值来设置对应的 el-button 的 disabled 属性和消息提示。下面是一个简单的示例…...

产品经理-交互说明撰写(八)

1. 交互说明 交互说明可以看做是交互设计师或者产品经理输出的最核心的”产品“交互说明面向的”用户“是下游的同事 ⇒ UI设计师、开发工程师、测试工程师 2. 基本交互形式 2.1 页面交互 2.2 元素控件交互 3. 交互说明主要包括以下3个维度 3.1 页面流程(页面之…...

Rust:struct 与字节序列的相互转换

在 Rust 中&#xff0c;将结构体&#xff08;struct&#xff09;与字节序列&#xff08;Vec<u8>&#xff09;相互转换的常见方法是使用序列化和反序列化库。Rust 有一个流行的序列化库叫做 serde&#xff0c;它支持多种数据格式。为了将结构体转换为字节序列&#xff0c;…...

在https的系统中挂载其他http系统的画面的解决方案

目录 1.问题及说明 2.解决方案及示例 3.总结 1.问题及说明 A系统使用了https&#xff0c;在A系统中挂载B系统的http的画面&#xff0c;会报错如下&#xff1a; Mixed Content: The page at https://beef.zz.com/front/#/biz/cultivationList/cultivationDetails/5dbf836751…...

mysql存储比特位

一、介绍 二、SQL CREATE TABLE bits_table (id INT PRIMARY KEY AUTO_INCREMENT,bit_value BIGINT UNSIGNED );-- 插入一个 8 位的 BIT 值 INSERT INTO bits_table (bit_value) VALUES (B10101010);-- 查询并格式化输出 SELECT id,bit_value,CONCAT(b, LPAD(BIN(bit_value),…...

Lua中table.sort()使用方式

table.sort(tab,compare) 参数如下&#xff1a; tab:表名 compare:比较规则函数名 简略写法&#xff1a; a {1,2,3} table.sort(a,function(a,b) return a>b end) compare这个参数是一个函数&#xff0c;它有两个参数&#xff0c;你可以理解为表中的两个不同元素&…...

ai赋能开发:让快马平台智能推荐最优的openclaw启动命令方案

在开发过程中&#xff0c;我们经常会遇到需要快速生成或优化命令行工具启动参数的情况。以openclaw为例&#xff0c;作为一个功能强大的监控和调试工具&#xff0c;它的启动命令往往包含大量参数选项&#xff0c;不同场景下需要不同的配置组合。传统方式下&#xff0c;开发者要…...

AI赋能低代码开发:JeecgBoot如何用人工智能重塑企业级应用开发

AI赋能低代码开发&#xff1a;JeecgBoot如何用人工智能重塑企业级应用开发 【免费下载链接】jeecg-boot 一款 AI 驱动的低代码平台&#xff0c;提供"零代码"与"代码生成"双模式——零代码模式一句话搭建系统&#xff0c;代码生成模式自动输出前后端代码与建…...

Windows下OpenClaw安装指南:Qwen3-14b_int4_awq模型接入与飞书机器人配置

Windows下OpenClaw安装指南&#xff1a;Qwen3-14b_int4_awq模型接入与飞书机器人配置 1. 为什么选择OpenClaw作为个人自动化助手 去年年底&#xff0c;我开始寻找一款能够真正理解自然语言指令的本地自动化工具。当时市面上大多数RPA工具都需要复杂的流程设计&#xff0c;直到…...

工业五官:04 电感、电容、光电、超声波:谁才是工厂最强“探测四兄弟”?

04 电感、电容、光电、超声波:谁才是工厂最强“探测四兄弟”? 今天聊位置和接近传感器——就是专门干“有没有东西”“靠没靠近”“到了没”这仨活儿的。工厂里,传送带上零件一过,机械手一抓,门一开一关,全靠这四兄弟瞪大眼睛盯着。它们不吹牛,不睡觉,比你家看门狗靠谱…...

Vue项目本地部署神器:phpStudy+nginx配置全流程(支持多项目同时运行)

Vue项目本地部署神器&#xff1a;phpStudynginx配置全流程&#xff08;支持多项目同时运行&#xff09; 每次在本地调试Vue项目时&#xff0c;你是否也遇到过这样的困扰&#xff1f;项目打包后需要部署到服务器才能预览效果&#xff0c;但配置nginx对前端开发者来说又太过复杂。…...

Thor命令行工具包终极指南:从零构建高效CLI应用的完整教程

Thor命令行工具包终极指南&#xff1a;从零构建高效CLI应用的完整教程 【免费下载链接】thor Thor is a toolkit for building powerful command-line interfaces. 项目地址: https://gitcode.com/gh_mirrors/th/thor Thor是一个强大而简洁的Ruby命令行工具包&#xff0…...

3大突破:XXMI-Launcher如何让环境配置效率提升10倍

3大突破&#xff1a;XXMI-Launcher如何让环境配置效率提升10倍 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 在软件开发、数据科学和内容创作等领域&#xff0c;环境配置往往成…...

OpenClaw隐私保护机制:Qwen3.5-9B-AWQ-4bit处理证件照自动打码

OpenClaw隐私保护机制&#xff1a;Qwen3.5-9B-AWQ-4bit处理证件照自动打码 1. 为什么需要自动化隐私保护 去年帮家人整理电子档案时&#xff0c;我遇到了一个棘手问题&#xff1a;上百张包含身份证、银行卡的照片需要手动打码。用PS一张张处理不仅耗时&#xff0c;还容易遗漏…...

STM32智能旅行箱开发:防盗报警与语音交互实现

1. 项目概述这个基于STM32的多功能智能旅行箱项目&#xff0c;是我去年花了三个月时间从零开始设计实现的。作为一名嵌入式开发工程师&#xff0c;我经常需要出差&#xff0c;传统行李箱在机场、酒店等场景下的不便让我萌生了开发智能行李箱的想法。这个项目最大的特点是将多种…...

Calibre中文路径保护插件:如何让电子书保持原汁原味的中文命名

Calibre中文路径保护插件&#xff1a;如何让电子书保持原汁原味的中文命名 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文&#xff08;中文&#xff09;命名 项目…...