本地应用细节功能完善
功能细节
GitHub Copilot:
- 自动代码补全能力强,能够准确定位。
- 并且拥有多文件操作能力
- chat聊天流畅。
- github copliot提供了review的能力,为团队管理,其中提供了submit for review功能,GitHub 网页。
- 具有代码安全分析能力
Tabnine:
- 生成的代码可 insert 放入对应文件,以及创建新文件并放入其中.
- 选中文件进行test code,其中有较为详细的测试方法,以及测试方案,以及可通过chat 进行下一步测试方案或者结果,对应指令insert,copy等,可直接生成测试代码。
- 提供了tabnine protected。
- 能根据当前项目语法语义编写当前代码,如小程序。
- tabnine claude,以及gpt4有条数限制,可使用tabnine protect
- 测试方案为条例,可逐条查看
- 提供团队能力
- tabnine更多的功能在pro版本,需要付费。
- 提供Atlassian Jira接入能力,概述的需求生成代码
- codeReview能力,需要体验feed your coding standards ,支持平台GitHub。
Codeium:
- 当前代码可直接看到其对应指令 refactor explain,generate function comment ,可操作性高。
- 存在着不稳定性,初始化加载插件一直未出来。
- 对多文件情况,适合查询,insert,update不适用。
- 另外的几个ai工具无法使用,需要付费。
DeepSeek R1:
- 有对应语言系统,提供简体中文
- 在使用过程流畅度存疑,出现过403未知错误之类的,loading时间较长。
- 可增加预定义的词条生成对应代码
Fitten Code
- 在使用过程流畅度存疑,出现过403未知错误之类的,loading时间较长。
- 该工具基于deepseek r1 建议和deepseek R1二选一。
- 可添加常用语能够根据自身习惯添加。
- 生成的测试代码直接生成对应测试文件以及对应代码。
- 有预览功能
- 能够根据图片编写代码,但该能力较弱
TONGYI Lingma
- 其不止集成了deepseek,还有阿里的qwen,该qwen使用性较差,在对问题的判断上定位不够准确
- 在使用过程流畅度存疑,出现过403未知错误之类的,loading时间较长。
- 当前代码可直接看到其对应指令。
- 其中提供了AI developer功能,可以解析项目上下文,对选中文件操作,并且根据文件语法自动处理,并反馈调整内容,但整体速度较慢。
Cursor
- 本身可基于vscode 进行开发,vscode所有能力均可在该工具使用,包括插件。
- 提供了3种模式,ask,edit,agent,这三种对应不同场景
- 加入内置system prompt,根据具体需求增加内置的系统提示。
- 可以和git联动。
- 可以和第三方工具联动。
- notepad应用。
- 根据图片生成的代码准确度较高,目前能够定位swiper,根据当前场景生成小程序代码,以及定义当前数据方法,包括常用的代码习惯。
- 并且能根据当前图片分析功能,将功能描述通过chat进行调整。
- notepad 目前可作为需求文档,加入图片,进行代码生成。
- 提供了linter error能力,校验代码规范,代码优化建议。
目前推荐Cursor
Cursor交互细节功能展示
- 代码补全能力(能够根据上下文,以及自身代码习惯推荐对应代码,按tab键即可获取)
- 自然语言生成能力(能够根据注释内容生成对应函数方法)
- 根据图片以及notepad描述生成对应代码(能够根据输入的描述以及图片,较为准确的输出代码以及功能,并贴合当前项目代码)
1,输入chat内容:根据notepad描述以及图片生成该功能
2,描述以及应用的图片
3,功能反馈描述(可以通过聊天的方式去校正我们的需求)
4,输出代码
<template>
<view class``=``"floating-service" :``class``=``"{ 'is-hidden': isHidden }"``>
<!-- 电话按钮 -->
<view class``=``"service-item" @tap``=``"handlePhone"``>
<view class``=``"service-icon"``>
<image src=``"/static/images/icons/phone.png" mode=``"aspectFit" />
</view>
<text class``=``"service-text"``>``400 616 1698``</text>
</view>
<!-- 在线客服按钮 -->
<view class``=``"service-item" @tap``=``"handleCustomerService"``>
<view class``=``"service-icon"``>
<image src=``"/static/images/icons/customer-service.png" mode=``"aspectFit" />
</view>
<text class``=``"service-text"``>在线客服</text>
</view>
<!-- 发送邮件按钮 -->
<view class``=``"service-item" @tap``=``"handleEmail"``>
<view class``=``"service-icon"``>
<image src=``"/static/images/icons/email.png" mode=``"aspectFit" />
</view>
<text class``=``"service-text"``>发送邮件</text>
</view>
<!-- 问卷按钮 -->
<view class``=``"service-item" @tap``=``"handleSurvey"``>
<view class``=``"service-icon"``>
<image src=``"/static/images/icons/survey.png" mode=``"aspectFit" />
</view>
<text class``=``"service-text"``>问卷</text>
</view>
<!-- 关闭按钮 -->
<view class``=``"close-button" @tap``=``"handleClose"``>
<text class``=``"close-icon"``>×</text>
</view>
</view>
</template>
<script>
export default {
name: 'FloatingService'``,
data() {
return {
isHidden: false``,
phoneNumber: '400 616 1698'
}
},
methods: {
handlePhone() {
// 拨打电话
uni.makePhoneCall({
phoneNumber: this``.phoneNumber,
success: () => {
console.log(``'拨打电话成功'``)
},
fail: () => {
uni.showToast({
title: '拨打电话失败'``,
icon: 'none'
})
}
})
},
handleCustomerService() {
// 打开客服聊天框
this``.$emit(``'open-customer-service'``)
},
handleEmail() {
// 跳转到联系客服页面
uni.navigateTo({
url: '/pages/contact/customer-service'
})
},
handleSurvey() {
// 打开问卷反馈页面
uni.navigateTo({
url: '/pages/feedback/survey'
})
},
handleClose() {
this``.isHidden = true
this``.$emit(``'close'``)
}
}
}
</script>
<style lang=``"scss" scoped>
.floating-service {
position: fixed;
left: 30rpx;
bottom: 120rpx;
z-index: 100``;
display: flex;
flex-direction: column;
gap: 20rpx;
transition: transform 0``.3s ease;
&.is-hidden {
transform: translateX(-``200``%);
}
.service-item {
display: flex;
align-items: center;
padding: 16rpx 30rpx;
background: #``000``;
border-radius: 100rpx;
box-shadow: 0 4rpx 12rpx rgba(``0``, 0``, 0``, 0.1``);
.service-icon {
width: 40rpx;
height: 40rpx;
margin-right: 16rpx;
image {
width: 100``%;
height: 100``%;
}
}
.service-text {
color: #fff;
font-size: 28rpx;
white-space: nowrap;
}
}
.close-button {
position: absolute;
bottom: -80rpx;
left: 50``%;
transform: translateX(-``50``%);
width: 60rpx;
height: 60rpx;
background: #``000``;
border-radius: 50``%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4rpx 12rpx rgba(``0``, 0``, 0``, 0.1``);
.close-icon {
color: #fff;
font-size: 40rpx;
line-height: 1``;
}
}
}
</style>
5,结果呈现: