pretender-server
VSCode 扩展,运行本地 HTTP 服务器以通知 VSCode 工作区中的文件变更。
功能
pretender-server 是 pretender 伪装编辑系统的一部分。它在 VSCode 扩展激活时启动一个本地 HTTP 服务器,用于接收 pretender 程序的文件变更通知并刷新 VSCode 编辑器界面。
- 启动时自动分配可用端口并保存到
.vscode/settings.json 中的 pretenderServer.port 设置
- 启动后自动启动 pretender 程序,使其监听文件更改
- 监听
/notify-file-change 端点的文件变更通知
- 收到通知时强制刷新 VSCode 中打开的对应文件
- 智能识别文件是否在当前编辑器中打开,并使用适当的刷新策略
- 对未在编辑器中打开的文件执行后台刷新
- 提供操作通知,显示请求结果和处理状态
工作流程
- 启动 VSCode 时,扩展自动激活并启动 HTTP 服务器
- 服务器端口自动保存到
.vscode/settings.json 中
- 启动 pretender 程序(位于
bin/ 目录),监控文件变更
- 当 pretender 检测到 A 文件变更时,它会:
- 更新对应的 C 文件
- 重新生成 A 文件的 B 内容映射
- 向 pretender-server 发送文件变更通知
- pretender-server 收到通知后,刷新 VSCode 编辑器中的对应文件
使用方法
VSCode 启动时自动激活扩展。扩展将启动本地服务器并自动启动 pretender 程序。
如需手动测试通知功能,可发送 HTTP GET 请求:
http://localhost:<port>/notify-file-change?file=<绝对文件路径>
例如:
http://localhost:12345/notify-file-change?file=/path/to/workspace/file.txt
pretender 系统说明
pretender 是一套文件伪装编辑系统,包含三个部分:
- A 文件:用户看到和编辑的文件(如
input/ 目录中的文件)
- B 文件:作为内容源的文件(如
node_modules/ 中的文件)
- C 文件:实际保存用户编辑内容的文件(在
output/ 目录中的日志文件)
pretender 程序监视 A 文件的更改,将实际内容变化记录到 C 文件中,但显示给用户的是根据相同长度从 B 文件中获取的内容,从而达到伪装编辑目的。pretender-server 负责在 A 文件更改后刷新 VSCode 编辑器界面。
配置
系统通过以下方式配置:
- 端口设置:
pretenderServer.port - 自动分配和保存在 .vscode/settings.json 中
- 文件路径:根据工作区路径自动处理文件变更通知
| |