工作区编辑器
不只是 AI 终端——智码 AICoder 内置了一套轻量代码工作区:文件树、带语法高亮的编辑器、代码大纲、Git 面板、终端和预览浏览器,让你在与 AI 协作的同时直接查看和修改代码,无需来回切换到外部 IDE。
工作区视图布局
工作区把一个项目目录的常用操作集中到一个视图里:
┌──────────┬───────────────────────────┬──────────┐
│ 文件树 │ 代码编辑器 │ 大纲 │
│ │ (语法高亮 + One Dark) │(符号导航)│
│ src/ │ │ │
│ ├ App │ 1 import ... │ ▸ 类 Foo │
│ ├ lib/ │ 2 function foo() { │ · 方法 │
│ └ ... │ 3 ... │ │
├──────────┴───────────────────────────┴──────────┤
│ Git 面板 / 内置终端 / 预览浏览器(可切换) │
└─────────────────────────────────────────────────┘本地项目和远程主机上的项目都能用同一套工作区界面操作。
内嵌到主窗口右侧(v5.2.0+)
工作区早期只能弹独立窗口——想看一眼文件树或改动清单就得切窗口,切回来还得重新找会话。现在它也能嵌在主窗口右边,跟终端并排。
- 常驻活动条 — 主窗右缘一条 40px 的窄栏,上半部分是视图开关:项目文件、变更、分支、终端、远程文件;识别为 Maven 项目时多一个「构建」
- 可拖宽面板 — 拖分隔条调宽度(280–720px);双击分隔条还原该视图的默认宽度(终端和远程文件天然需要更宽,各有各的舒适值)
- 随时弹出独立窗口 — 活动条底部有按钮,需要大屏细看时一键弹出
- 用 IDEA 打开 — 活动条底部、弹出按钮上方,一键把当前项目交给本机的 JetBrains IDE。图标直接取你本机那个程序的图标(装的是 IDEA、WebStorm 还是 PyCharm,显示的就是哪个),取不到时显示文字「IDEA」;第一次没检测到 IDE 时会让你手动选一次可执行文件。远程工作区下不显示(本机 IDE 打不开远端路径)
- 点文件直接打开 — 内嵌栏没有编辑器,点文件会把路径带到工作区窗口并直接定位到那个文件
终端视图切走了也不会断
切到「变更」再切回「终端」,之前跑着的命令还在——终端视图一旦挂载就常驻,只是切换可见性,不会被卸载重开 shell。
本地工作区下「远程文件」按钮是置灰而不是隐藏,这样你能知道有这个能力、切到远程主机就能用。
另外还有一个悬浮终端窗:在项目目录拉起一个置顶小窗跑系统 shell,适合「边看终端边操作主窗口」,弹出后不受内嵌栏开合影响。
文件树
左侧文件树展示项目目录结构,支持完整的文件操作:
| 操作 | 方式 |
|---|---|
| 展开 / 折叠目录 | 点击目录行(chevron 图标居中对齐) |
| 新建文件 / 文件夹 | 右键菜单 → 新建 |
| 重命名 | 右键菜单 → 重命名 |
| 删除 | 右键菜单 → 删除 |
| 把文件作为 AI 上下文 | 右键菜单 → 加入上下文 |
| 长文件名查看 | 支持横向滚动,不截断 |
文件树针对深层目录和长文件名做了优化,配合横向滚动,再深的路径也能完整浏览。
代码编辑器
点击文件在中间区域打开,编辑器基于 CodeMirror,采用 One Dark 暗色主题:
语法高亮
覆盖常见语言:
| 类别 | 语言 |
|---|---|
| 前端 | JavaScript / TypeScript、HTML、CSS、Vue 单文件组件 |
| 后端 | Rust、Python、Java |
| 数据 / 配置 | JSON、YAML、XML |
| 文档 | Markdown |
Vue 单文件组件(v5.2.0+)
打开 .vue 文件时补全能认识你这个项目:
- 项目内组件 — 敲
<MyTa能补出项目里定义的组件 - 组件的 props — 敲
<MyTable :co能补出该组件声明过的 props - Vue 指令 —
v-if/v-for/@click/:prop这些都在补全里 <style lang="scss">— scss / less / postcss 的样式块正常高亮(此前会整块退化成纯文本)
关于缩进语法
.sass 与 stylus 这类缩进语法不接——它们和 CSS 差别太大,硬套 CSS 解析器的结果比纯文本还糟。
编辑器标签
打开的每个文件一个标签,标签上带 IDEA 风格的文件类型图标,开着十几个文件时也能凭图标一眼分出哪个是组件、哪个是配置、哪个是样式。
代码大纲
右侧大纲面板从当前文件提取符号结构(类、函数、方法等),点击可快速跳转到对应位置,适合在长文件里导航。
Git 面板
针对当前工作区目录的 Git 仓库,提供图形化操作:
| 功能 | 说明 |
|---|---|
| 状态 | 查看已修改 / 已暂存 / 未跟踪文件 |
| Diff | 逐文件查看改动内容(编辑器风格的差异视图),已删除的文件也能看 |
| 提交 | 暂存改动并填写提交信息提交 |
| 分支 | 查看 / 切换分支 |
远程工作区下,这些操作通过 SSH 作用于远端仓库。
变更导航条
几百行的文件里到底改了几处、改在哪儿,不用靠手滚。工作区的 Diff 视图、提交详情,以及推送弹窗里点开文件看到的「远端版 vs 本地版」只读对比,顶部都有一条变更导航条:
- ↑ / ↓ 按钮旁边是计数:刚打开时显示共「N 处变更」,跳过之后显示当前是「第 x/N 处」
- 点 ↑ / ↓,或按
Shift+F8/F8,逐处跳到上一处 / 下一处变更 - 点计数本身也能跳到下一处
- 两个版本完全相同时不显示这条栏
构建面板(Maven,v5.2.0+)
Java 项目在内嵌栏里多一个「构建」视图,对标 IDEA 的 Maven 工具窗:
| 分区 | 内容 |
|---|---|
| 生命周期 | clean / validate / compile / test / package / verify / install / site / deploy 九项,点一下就在隔壁终端跑 |
| 依赖 | 刷新依赖、强制更新(-U)、依赖树 |
| Profiles | 列出 pom 里定义的 profile |
| 模块 | 多模块项目的子模块清单 |
| 可启动 | 识别出的可运行入口(Spring Boot 主类、可执行 jar 等),点一下交给侧边栏任务启动 |
| 其他任务 | 项目里扫到的非 Maven 命令(npm 脚本、bat / sh / ps1 / py 等),点一下在隔壁终端跑 |
打开面板不会跑任何 Maven 命令
只读 pom、查一次 mvn 路径,都是毫秒级。dependency:tree 这类真要跑 Maven 的操作一律点了才触发——"打开项目就自动同步依赖"是 IDEA 挨骂最多的点,这里不学。
Maven wrapper(mvnw)、多模块递归、父子去重这些都已经处理好,与侧边栏的任务启动共用同一套项目扫描结果。
「可启动」项:启动、停止与状态
「可启动」里都是要一直跑着的服务,所以它们不往共享终端里塞命令,而是走任务系统:第一次点会在侧边栏该项目下登记成一条任务(之后再点复用这一条,不会越点越多),并在单独的任务标签里运行。进程清理、端口占用、停止、重启都由任务系统接管。
| 行上的元素 | 说明 |
|---|---|
| 火箭图标 / 绿色圆点 | 圆点表示该服务的端口正在监听,一眼看出哪几个已经起来了 |
| :端口号 | 服务起来后点它,直接在浏览器打开 localhost:端口 |
| 停止按钮 | 只在服务运行时出现在行尾。服务是从任务系统起的,就按任务停止;是别处起的(外部终端、IDEA、上次残留),就按端口结束占用它的进程 |
| 点整行 | 未运行时启动;已在运行时重新启动 |
纯库项目与「其他任务」
真实的 Java 仓库很少只有 Java,常常还带着前端子工程和各种脚本。这些非 Maven 的命令不会被过滤掉,而是单独归到「其他任务」一组;没扫到就不显示这一组。
纯库项目(没有可启动的入口)的「可启动」会如实显示为空,此时「其他任务」默认展开,打开面板不会只看到一句「没有可启动项」。
编译前的内存提醒
跑 package / install 这类重编译时,如果系统提交内存所剩不多,面板会先提醒一句「提交内存只剩 X GB,重编译峰值约 Y GB」,建议先点状态栏内存百分比腾一些,或等会儿再编译。只提醒、不拦截,仅 Windows 有这项提醒。内存优化见系统与更多。
认不出已经装好的 JDK 怎么办
可以联系我们获取 JDK 诊断脚本:双击即可运行,它会把检测结果保存成一个文本文件放在脚本旁边,把这个文件发回给我们即可,不用手敲任何命令。
内置终端
工作区底部内置终端,与主会话终端独立,方便在不打断 AI 会话的情况下手动跑命令:
- 路径可点击:终端输出里的文件路径会被识别为链接,点击直接在编辑器中打开
- 远端 tmux:远程工作区的终端基于 tmux,开启了鼠标支持,滚轮可向上翻阅历史输出
- 其它面板能往它发命令:构建面板的生命周期、依赖、「其他任务」等命令都会送进这个终端执行,不再另开一个;「可启动」里的长期服务则交给侧边栏任务,在单独的任务标签里跑
预览浏览器
对于跑着本地开发服务器的前端项目,工作区可内嵌一个预览浏览器窗口,边改代码边看效果,无需切到外部浏览器。
快捷键在各类标签上都可用
Git 提交(Ctrl+K)、Git 推送(Ctrl+Shift+K)、打开工作区窗口(Ctrl+Shift+O)这几个快捷键,不只在会话标签上有效:当前停在项目快捷 Tab 或任务标签上时,同样按该标签所属的项目执行,不会再提示「没有项目路径」。完整键位见快捷键。
侧边栏任务
dev server、后端服务这类要一直跑着的命令,可以登记成项目的「任务」,挂在侧边栏该项目分组的上方,一键启停,每个任务在自己的任务标签里运行。
登记与启停
- 登记 — 目录右键 →「扫描可启动命令」,从扫描结果里勾选;或在「任务」分组头上右键 →「手动添加任务」。构建面板「可启动」里点过的服务也会自动登记在这里
- 启停 — 鼠标移到任务行上出现启动 / 停止、重启、删除按钮;双击任务行等同点启动;单击只切到已打开的任务标签,不会误启动
- 状态 — 行首圆点区分运行中、启动中(声明了端口但端口还没起来)、已结束、崩溃,以及后台有未查看的新输出;悬停圆点看一句话状态(端口是否就绪、退出码、运行了多久)
- 右键菜单 — 启动 / 停止、重启、复制指令、打开产物目录、删除任务
发给 AI 排查
任务崩溃,或日志里扫到了疑似错误时,任务名旁会出现一个警告图标。点它(或右键 →「发给 AI 排查」)会新建一个 AI 会话,把命令、目录、退出码、错误行和日志末尾整理成排查提示词直接发出去,AI 马上开始排查。只想自己贴给别的 AI,用右键 →「复制排查信息」。
临时任务
编排里的 AI 子会话为验收、预览单独起的服务会登记成临时任务,收在该项目任务分组里单独的「临时」子组中(默认折叠,正在看的那条会自动展开),不挤占常驻任务的位置:
- 临时任务的停止按钮叫「停止并移除」:停止后自动从列表移除;重启智码后也会自动清掉
- 想留下来常用,右键 →「保留为常驻任务」,之后就不会再被自动移除
AI 启动任务不打扰你
AI 通过 MCP 启动或重启项目任务时(例如编排里改完后端代码要重新测),任务标签会在后台打开,不会把你从正在看的标签上拽走。
移除目录会连任务一起删
在侧边栏对目录执行「移除整个目录」时,该目录下的任务会一并删除,正在运行的先停止。详见多标签会话管理。
本地与远程一致
工作区编辑器的所有能力——文件树、编辑器、大纲、Git、终端——在本地工作区和远程 SSH 工作区下表现一致。切换到远程工作区后,操作的就是远端主机上的文件和仓库。
相关章节
- 远程 SSH 工作区 — 在远端服务器上使用工作区编辑器
- 多标签会话管理 — 工作区与 AI 会话的协作
- 代码片段 — 常用代码与提示词的快速插入
