FoxTablePRO / TOOLKIT技能仓库WINDOWS / X86

NEW / CONTEXT AWARE MCP

让 AI 看见你正在看的那一屏

以前的 MCP 只知道工程里有什么,不知道你此刻停在哪。现在它看得见你所在的设计器窗口、正在编辑的表与事件、编辑器里还没保存的代码和光标位置——改动也写回你眼前那个编辑器,由你审查、由你亲手保存。

焦点窗口与切换历史编辑器实时代码光标与选区可撤销
表A - DataColChanged未保存
05If e.DataCol.Name = "单价" Then
06    e.DataRow("金额") = e.NewValue * e.DataRow("数量")
07End If
改动只在编辑器里Ctrl+Z 可撤销
get_designer_active_windowLIVE
  • Kindcode_editor
  • TableName表A
  • EventNameDataColChanged
  • CursorLine6
  • StillOpentrue

01 / WHY

少一轮反问,多一份把握。

同样一句「这个事件加个判断」,AI 知不知道你在看什么,结果完全不同。

—没有上下文
  • 先反问一轮:哪张表?哪个事件?
  • 只能后台直写,绕过你开着的编辑器
  • 你未保存的编辑和 AI 的写入互相覆盖
  • 改完才看得见,出错只能回滚工程
✓上下文感知之后
  • 指代直接生效:「这个窗口」「我正看的这个事件」
  • 改动出现在你眼前的编辑器里,逐字可见
  • 在你的实时代码上续写,不丢未保存的改动
  • 保存与否你说了算,Ctrl+Z 一步撤销

02 / PERCEIVE

它感知到的,不止「哪个窗口」。

一次 get_designer_active_window 调用,返回你此刻在设计器里的完整处境。它是所有指代与改码路径判断的起点。

ActiveWindow

最近获得焦点的设计器窗口

Kind 分六类:code_editor / global_code / form_designer / table_properties / project_properties / main,并从窗口标题解析出 TableName、EventName、Scope、FormName。

EditorCode

编辑器里的实时代码

读的是你此刻屏幕上的内容,包含还没保存的改动——AI 在这份代码上续写,而不是在工程里那份旧的上面。

EditorCursorLine

光标停在第几行

配合 EditorSelectedText 的选区,「这一段」「这里」这类指代能落到具体行,而不是让 AI 猜。

RecentWindows

窗口切换历史

最新在前的窗口轨迹,每条一行。刚从事件编辑器切到表属性再切走,这条路径 AI 也看得到。

ActivatedAt

这个现场多久之前的

带上「9 秒前」这样的相对时间——是你刚切进去的现场,还是半小时前搁那儿的旧窗口,AI 分得清。

StillOpen

窗口是否还开着

决定能不能走前台改码。窗口已关就退回后台写入,不会往一个不存在的编辑器里写。

03 / FOREGROUND WRITE

前台改码:代码写进你的编辑器,保存权还在你手里。

不再是「AI 悄悄改完,你回头才发现」。改动整段替换进你打开的编辑器窗口,不落盘、可撤销,由你审查后亲手保存。

  1. 01

    先问「你在哪个窗口」

    AI 调用 get_designer_active_window,拿到 ActiveWindow、EditorCode 与光标位置,确认你确实开着这段代码。

  2. 02

    在你的代码上改

    以返回的 EditorCode 为底稿修改——包括你还没保存的那几行,而不是工程里那份旧的。

  3. 03

    写回你眼前的窗口

    调用 set_designer_editor_code,带上 ExpectedTitle 校验窗口标题;标题不符直接拒绝,防止改错窗口。

  4. 04

    你审查,你保存

    改动只在编辑器里,不落盘。看着满意再按保存;不满意 Ctrl+Z 撤回,或者干脆不保存。

set_designer_editor_codeMCP CALL
{
  "ExpectedTitle": "表A - DataColChanged",
  "Code": "If e.DataCol.Name = ..."
}

' 标题不符 → 拒绝写入,绝不改错窗口
对比项前台改码 set_designer_editor_code后台直写 set_*_code
改动在哪里出现你正开着的编辑器窗口里,逐字可见直接写进工程存储,屏幕上看不到
谁按下保存你审查之后亲手保存工具写入即持久化
怎么反悔Ctrl+Z 一步撤销,不保存即作废只能再写一次覆盖回去
和未保存的编辑冲突在你的实时代码上续写,不丢改动你一保存就会互相覆盖
写错窗口ExpectedTitle 与窗口标题不符则拒绝写入按名字定位,无窗口校验
适用场景你正开着对应的代码编辑器时的首选没开编辑器,或改的不是这个窗口的代码

04 / IN PRACTICE

两句话,就能验收。

下面两条是能力清单里对应的验收示例,装好之后你可以立刻自己试一遍。

感知

「我现在正看着什么?」

打开表A的 DataColChanged 事件编辑器,切到 AI 客户端提问。

答出窗口类型、表名、事件名,以及编辑器里的实时代码——包括你刚敲进去还没保存的那几行。

改码

「帮我优化当前这个事件的代码」

保持事件编辑器开着,直接提要求,不用说是哪张表、哪个事件。

修改直接出现在编辑器里,由你 Ctrl+Z 撤销或点保存生效,而不是在后台把事件悄悄改掉。

GET IT RUNNING

两项能力都已在商业版验收通过。

上下文感知与前台改码随工具箱一起提供,不需要额外配置:装好对应版本、启动本地 MCP 服务即可使用。

去下载对应版本查看完整 MCP 能力清单

对应能力:get_designer_active_window / set_designer_editor_code