Trae:AI 集成开发工具,智能问答与代码补全的完美结合

529 阅读5分钟

我正在参加Trae「超级体验官」创意实践征文

在软件开发领域,提升效率一直是开发者追求的目标。最近,字节推出了一款新产品 Trae,它与 AI 深度集成,为开发者提供了智能问答、代码自动补全以及基于 Agent 的 AI 自动编程能力。本文将通过实际案例,详细介绍 Trae 的功能和使用体验。

一、Trae 的功能概述

Trae IDE 最显著的特点是与 AI 的深度结合,提供了以下四个核心功能:

  • 智能问答 :开发者可以通过自然语言向 Trae 提问,获取相关的技术解答和建议。
  • 实时代码建议 :在编写代码过程中,Trae 会根据上下文提供实时的代码建议,帮助开发者快速完成代码编写。
  • 代码片段生成 :根据开发者的需求,Trae 可以生成特定功能的代码片段,节省开发时间。
  • 从 0 到 1 开发项目 :Trae 能够协助开发者从项目初始化到完成整个开发流程,提供全方位的支持。

从 0 到 1 开发项目

二、实际应用案例:自动提交代码脚本

(一)需求描述

作者有一个需求,希望实现一个脚本,当当前文件夹内的内容有变更时,每半小时自动提交一次代码。具体要求如下:

  • 适用于 Mac 系统。
  • 提交命令包括:git add .git commit -s -m "i"git pull origin maingit push origin main
  • 如果没有变更,则不执行提交。
  • 提交信息根据当前的变更内容自动添加。
  • 仅在早上 8 点到晚上 12 点之间执行。
  • 如果发现有冲突,需要自动解决冲突。

(二)Trae 的解决方案

作者向 Trae 提出了上述需求,Trae 很快生成了满足需求的脚本代码

#!/bin/bash# 解决冲突的函数
resolve_conflicts() {
    if [[ $(git status --porcelain | grep "^UU") ]]; then
        echo "检测到冲突文件,尝试解决..."
        
        # 使用我们的更改解决冲突
        git status --porcelain | grep "^UU" | awk '{print $2}' | while read file; do
            echo "自动解决文件冲突: $file"
            git checkout --ours "$file"
            git add "$file"
        done
        
        # 提交解决的冲突
        git commit -s -m "Resolve conflicts: Auto-merged using our changes"
        return 0
    fi
    return 1
}
​
while true
do
    # 获取当前小时
    current_hour=$(date +%H)
    
    # 检查是否在工作时间内(8点到24点)
    if [ $current_hour -ge 8 ] && [ $current_hour -lt 24 ]; then
        # 检查是否有文件变更
        if [[ $(git status --porcelain) ]]; then
            echo "检测到文件变更,开始提交 - $(date)"
            
            # 先进行pull操作
            echo "拉取远程更新..."
            if ! git pull origin main; then
                # 如果pull失败,可能是有冲突
                if resolve_conflicts; then
                    echo "冲突已自动解决"
                else
                    echo "Pull 失败,但没有检测到冲突,跳过本次提交"
                    sleep 1800
                    continue
                fi
            fi
            
            # 获取变更摘要
            changes=$(git status --porcelain | awk '{print $2}' | xargs echo)
            commit_msg="Auto commit: Changed files - ${changes}"
            
            if git add .; then
                if git commit -s -m "$commit_msg"; then
                    # 再次pull确保没有新的更改
                    git pull origin main
                    if git push origin main; then
                        echo "提交成功!提交信息:$commit_msg"
                    else
                        echo "Push 失败!"
                    fi
                else
                    echo "Commit 失败!"
                fi
            else
                echo "Add 失败!"
            fi
        else
            echo "没有检测到文件变更 - $(date)"
        fi
    else
        echo "当前不在工作时间范围内 - $(date)"
    fi
    
    echo "等待 30 分钟后进行下一次检查..."
    sleep 1800
done

(三)主要改进

Trae 生成的脚本具有以下优点:

  • 添加了 git pull 操作 :在提交前先更新本地代码,确保与远程仓库保持同步。
  • 增加了自动解决冲突的功能 :当检测到冲突时,能够自动解决冲突并提交。
  • 使用 --ours 策略自动解决冲突 :保留本地更改,避免因冲突导致的提交失败。
  • 在 push 前再次 pull :确保在推送代码时没有新的更改,避免冲突。
  • 添加了更多的错误处理和状态提示 :让开发者能够清晰了解脚本的执行情况。

(四)使用方法

  • 赋予脚本执行权限
chmod +x smart_commit.sh
  • 运行脚本
./smart_commit.sh
  • 后台运行
nohup ./smart_commit.sh > commit_log.txt 2>&1 &

(五)注意事项

  • 脚本会自动使用本地更改来解决冲突,这可能不适用于所有情况,开发者需要根据实际情况进行调整。
  • 建议在使用前先手动测试 git 操作是否正常,确保脚本能够顺利执行。
  • 确保已配置好 git 的用户名、邮箱和认证信息,否则会导致提交失败。

三、Trae 的其他实用功能

(一)Chat 模式下的代码管理

image-20250220084048458

在 Chat 模式下,根据开发者的需求,AI 助手会自动创建新文件或编辑已有文件并自动保存生成的代码。开发者可以接受或拒绝变更,操作方式如下:

  • 复制代码 :点击 “复制” 按钮,复制代码块中的全部内容。
  • 插入到光标处 :在编辑器内的文件中,点击目标区域,然后点击 “插入到光标处” 按钮,将代码块中的内容插入到文件内的光标处。
  • 添加到新文件 :点击 “添加到新文件” 按钮,新建一个文件,并将代码块中的内容添加至该文件。
  • 应用代码变更 :若为代码变更,则可以点击 “应用” 按钮,将变更后的代码应用至相应的文件。提示:不支持应用和当前工作空间项目无关的代码。

(二)生成并运行命令

image-20250220084119031

Chat 模式下,AI 助手会提供可一键运行的 Shell 命令,开发者可以按需进行以下操作:

  • 复制命令 :点击 “复制” 按钮,复制该命令。
  • 添加到终端 :点击 “添加到终端” 按钮,将命令添加至未被占用的终端。
  • 运行命令 :点击 “运行” 按钮,在未被占用的终端中运行该命令。

(三)管理历史对话

image-20250218075459585

点击 “Chat” 窗口右上角的 “历史会话” 按钮后,左侧会显示 “历史记录” 窗口,展示 Chat 模式和 Builder 模式的所有对话记录,方便开发者随时查看和回顾。

四、总结

Trae 作为一款与 AI 深度集成的智能开发助手,为开发者提供了强大的功能支持。通过实际应用案例,我们看到了 Trae 在提升开发效率方面的显著优势。无论是自动提交代码脚本的生成,还是 Chat 模式下的代码管理和命令运行,Trae 都展现出了其智能、便捷的特点。对于开发者来说,Trae 是一个值得尝试的工具,能够帮助他们在日常开发工作中更加高效地完成任务。

五、链接

官网文档

六、致谢

感谢 Trae 团队的辛勤工作,为开发者带来了这样一款优秀的工具。同时,也感谢所有为 Trae 提供反馈和支持的开发者,共同推动这款产品的不断进步。