AI 编程助手打造(三):告别复制粘贴,一键注入与沉浸式 UI !

0 阅读4分钟

AI 编程助手打造(三):告别复制粘贴,一键 Diff 注入与沉浸式 UI !

在上回,我们彻底抛弃了“玄学”的 RAG,设计了一套“骨架扫描 -> 目标锁定 -> 精准注入”的硬核上下文投喂机制。现在,网页版 AI 已经接收到了最纯净、最精准的上下文,并哗啦啦地吐出了极其优质的代码修改方案。

但真正的挑战才刚刚开始:作为一款成熟的 IDE 插件,难道要让用户像原始人一样,从浏览器里把代码 Ctrl+C,再回到 IDE 里苦哈哈地找位置 Ctrl+V 替换吗? 如果体验如此割裂,那这个工具就彻底失去了“心流”。今天,我们就来揭秘如何打造一个沉浸式的对话 UI,以及如何实现魔法般的代码一键 Diff 注入!

🎨 界面设计:大道至简,向主流看齐

为了降低学习成本,我们没有去造那些反人类的奇葩 UI,而是选择了与目前市面上最优秀的 AI 编辑器(如 Cursor)保持一致的经典沉浸式布局。

正如截图所示,我们的工具栏面板核心只由两部分构成:清晰的会话历史(Conversation)全能的输入框

  • 会话历史流 (Conversation History): 采用直观的对话气泡形式(绿色的 ME 代表用户,紫色的 AI 代表助手)。这里不仅仅是纯文本的聊天记录,它是一个富文本的指令集散地。你可以清晰地看到每一次对话中,究竟附带了哪些上下文(比如截图中黄色的 Context File: UnifiedContentComponent.kt 等卡片),以及触发了哪些协议指令(如 `[PROMPT] CODE EDIT PROTOCOL`)。
  • 全局响应输入框: 位于底部的输入框不仅仅用来打字。你可以通过输入 @ 快速检索并插入项目内的特定文件、目录作为独立上下文(如截图二中高亮的 <CONTEXT_FILE path="..."/>),右下角闪烁的星星图标随时准备将你的灵感转化为结构化 Prompt 投喂出去。

核心魔法:一个输入框的“双重人格”

接下来是本文最硬核、也是解决 Web AI 白嫖流体验割裂的最关键设计——输入框内容的自动路由与指令嗅探

我们在第一篇强调过,我们的核心原理是利用网页版 AI 免 API 费用。这就带来一个数据回传的问题:网页端生成的代码,怎么自然地回到 IDE 里?

我们的解法是:赋予底部输入框自动判别身份的能力!

通过预设严格的 Prompt 协议(Protocol),我们要求网页版 AI 在输出修改后的代码时,必须包裹在特定的标签或格式中(例如带有特定的 [EDIT_FILE] 声明和文件路径标识)。

当你在输入框中粘贴一段内容并按下回车时,插件内部的解析引擎会瞬间进行正则与语义判定:

  1. 判定为用户意图 (User Input): 如果只是普通的自然语言描述、提问,或者手动添加的 @ 文件,插件会将其识别为你的需求,渲染为绿色的 ME 气泡,并自动抓取上下文组装成完整的 Prompt 等待发送给网页端。
  2. 判定为 AI 响应 (AI Input): 如果你将网页版 AI 生成的那一坨带有特定结构(如协议头、代码差异块)的文本直接粘贴进输入框,奇迹就发生了。插件会瞬间“嗅探”到预设的指令标识,它不会把它当成你的提问,而是自动将其转换为紫色的 AI 气泡!

这就完美闭环了!你只需要在 IDE 和浏览器之间做一个极其简单的粘贴动作,插件就能聪明地识别出这是 AI 返回的“圣旨”。


通过这套 “骨架提纯投喂 -> Web 端高速生成 -> 智能解析识别 -> SEARCH/REPLACE 注入” 的闭环,我们终于在零 API 费用的前提下,实现了不输给任何付费 AI 编辑器的丝滑体验。


至此,我们的 AI 编程助手核心架构与 UI 交互已经基本成型。