# 2026-06-01 文件编辑器 Monaco 适配修复

## 日期
2026-06-01

## 变更摘要
修复文件管理页 Monaco 全屏编辑器空白/高亮失效、切换文件内容不刷新、保存失败等问题。

## 动机
- Vite 打包未配置 `MonacoEnvironment` Worker → 语法高亮与语言服务异常
- 仅监听 `visible`，打开另一文件时仍显示旧内容
- 后端 `write-file` 使用 `echo|base64` 受命令行长度限制，大文件或保存易失败

## 涉及文件
- `frontend/src/monaco/setupMonacoEnv.ts` — Vite Worker 配置（新建）
- `frontend/src/components/MonacoEditor.vue` — 布局、换行归一化、Esc/Ctrl+S、ResizeObserver
- `frontend/src/pages/FilesPage.vue` — `editorSessionKey` 强制按路径重建编辑器
- `server/api/sync_v2.py` — `write-file` 改为 SFTP 写入

## 迁移 / 重启
- 前端构建部署 `web/app/`
- 后端需 `supervisorctl restart nexus`

## 验证方式
1. 双击 `.php` / `.js` 文件，编辑器有语法高亮、可编辑
2. 修改后 Ctrl+S 保存，刷新目录内容已更新
3. 连续打开两个不同文件，内容互不串台
4. 关闭时未保存会提示确认
