Zed
Open Zed project
用户 4 位
开发者 Artemiss
版本 0.1.0
大小 73.26 KB 离线下载
详情介绍
# uTools 插件:快速打开 Zed 项目
在 uTools 里搜索项目,回车直接用 [Zed](https://zed.dev) 打开。项目来源有两个:设置里配置的项目目录,以及 Zed 自己记录过的最近打开项目。
## 功能
- 输入 `zed`(或「打开项目」)列出所有项目,最近的排在最前面,右侧显示「5 分钟前」这类时间
- 输入即过滤:字符按顺序出现就算命中,不必连续(`vsn` 能匹配 `vscode-next`),空格分隔的多个关键词需同时命中
- 回车打开,`Ctrl/⌘ + Enter` 在新窗口打开(`zed -n`)
- 把文件夹拖进 uTools 搜索框,选「用 Zed 打开」,直接打开该目录
- `zed设置`:增删项目目录(支持多选)、填写/自动检测 Zed 可执行文件、设置扫描深度(1–3 层)
## 安装
```bash
pnpm install
pnpm build
```
然后在 uTools 开发者工具里把插件项目目录指向本仓库的 `dist/`(构建产物),重新加载插件即可。`dist/` 就是可发布的插件目录。
不要用浏览器直接打开 `dist/index.html`:`file://` 下 ES module 会被 CORS 拦掉,而且页面依赖 `window.utools`,在浏览器里一定是白屏。
## 最近项目是怎么来的
Zed 把打开过的工作区记在 SQLite 数据库里:`%LOCALAPPDATA%\Zed\db\\db.sqlite` 的 `workspaces` 表(`paths` + `timestamp`)。该库工作在 WAL 模式,最新提交常常只在 `db.sqlite-wal` 里,所以插件自带一个不依赖任何三方库的只读读取器(`public/lib/sqlite.cjs`),会合并 WAL 中已提交的页。
因此:不需要任何额外配置,Zed 里打开过的项目就会出现在列表中,即使它不在你配置的项目目录里。
## 平台
Windows 实测可用(含 scoop 安装:会绕过 `shims\zed.exe` 控制台壳子、以 `CREATE_NO_WINDOW` 启动 CLI,避免弹出 Windows Terminal)。
macOS / Linux 的路径与启动方式(`~/Library/Application Support/Zed/db`、`~/.local/share/zed/db`、`zed` 命令)在代码里已经处理,但**没有实际验证过**——可以运行,出问题欢迎反馈。
## 开发
```bash
pnpm check # 目录扫描 / 模糊匹配 / SQLite 读取的自检(SQLite 部分会和 node:sqlite 对照,需要 Node 22.5+)
pnpm build # 输出到 dist/
```
改完代码需要 `pnpm build` 后在开发者工具里重新加载插件(没有接入 Vite dev server)。
## 已知限制
- 只做了子串/子序列模糊匹配,**不支持拼音和首字母**:`xm` 匹配不到「项目」。
- 最近项目里**只保留目录**:在 Zed 里单独打开某个文件不会出现在列表中。
- 最近项目的读取依赖 Zed 的内部数据库结构,Zed 若改动 schema,最近列表会退化为空(目录扫描不受影响)。
- 自带的 SQLite 读取器只实现了本插件用到的部分:不解析溢出页内容、`INTEGER PRIMARY KEY`(rowid 别名)列读出为 null,且 WAL 帧没有校验 checksum;不要把它当通用 SQLite 客户端使用。
- 扫描深度设成 3 并指向很大的根目录(例如盘符根)会比较慢,插件没有做结果条数上限。
- 界面为中文,无 i18n。
## 许可
代码以 [MIT](LICENSE) 许可发布。插件图标取自 Zed 官方仓库(`crates/zed/resources/app-icon@2x.png`),Zed 名称与图标归 Zed Industries 所有,此处仅用于表示与 Zed 的集成,不代表官方关联或背书。
在 uTools 里搜索项目,回车直接用 [Zed](https://zed.dev) 打开。项目来源有两个:设置里配置的项目目录,以及 Zed 自己记录过的最近打开项目。
## 功能
- 输入 `zed`(或「打开项目」)列出所有项目,最近的排在最前面,右侧显示「5 分钟前」这类时间
- 输入即过滤:字符按顺序出现就算命中,不必连续(`vsn` 能匹配 `vscode-next`),空格分隔的多个关键词需同时命中
- 回车打开,`Ctrl/⌘ + Enter` 在新窗口打开(`zed -n`)
- 把文件夹拖进 uTools 搜索框,选「用 Zed 打开」,直接打开该目录
- `zed设置`:增删项目目录(支持多选)、填写/自动检测 Zed 可执行文件、设置扫描深度(1–3 层)
## 安装
```bash
pnpm install
pnpm build
```
然后在 uTools 开发者工具里把插件项目目录指向本仓库的 `dist/`(构建产物),重新加载插件即可。`dist/` 就是可发布的插件目录。
不要用浏览器直接打开 `dist/index.html`:`file://` 下 ES module 会被 CORS 拦掉,而且页面依赖 `window.utools`,在浏览器里一定是白屏。
## 最近项目是怎么来的
Zed 把打开过的工作区记在 SQLite 数据库里:`%LOCALAPPDATA%\Zed\db\\db.sqlite` 的 `workspaces` 表(`paths` + `timestamp`)。该库工作在 WAL 模式,最新提交常常只在 `db.sqlite-wal` 里,所以插件自带一个不依赖任何三方库的只读读取器(`public/lib/sqlite.cjs`),会合并 WAL 中已提交的页。
因此:不需要任何额外配置,Zed 里打开过的项目就会出现在列表中,即使它不在你配置的项目目录里。
## 平台
Windows 实测可用(含 scoop 安装:会绕过 `shims\zed.exe` 控制台壳子、以 `CREATE_NO_WINDOW` 启动 CLI,避免弹出 Windows Terminal)。
macOS / Linux 的路径与启动方式(`~/Library/Application Support/Zed/db`、`~/.local/share/zed/db`、`zed` 命令)在代码里已经处理,但**没有实际验证过**——可以运行,出问题欢迎反馈。
## 开发
```bash
pnpm check # 目录扫描 / 模糊匹配 / SQLite 读取的自检(SQLite 部分会和 node:sqlite 对照,需要 Node 22.5+)
pnpm build # 输出到 dist/
```
改完代码需要 `pnpm build` 后在开发者工具里重新加载插件(没有接入 Vite dev server)。
## 已知限制
- 只做了子串/子序列模糊匹配,**不支持拼音和首字母**:`xm` 匹配不到「项目」。
- 最近项目里**只保留目录**:在 Zed 里单独打开某个文件不会出现在列表中。
- 最近项目的读取依赖 Zed 的内部数据库结构,Zed 若改动 schema,最近列表会退化为空(目录扫描不受影响)。
- 自带的 SQLite 读取器只实现了本插件用到的部分:不解析溢出页内容、`INTEGER PRIMARY KEY`(rowid 别名)列读出为 null,且 WAL 帧没有校验 checksum;不要把它当通用 SQLite 客户端使用。
- 扫描深度设成 3 并指向很大的根目录(例如盘符根)会比较慢,插件没有做结果条数上限。
- 界面为中文,无 i18n。
## 许可
代码以 [MIT](LICENSE) 许可发布。插件图标取自 Zed 官方仓库(`crates/zed/resources/app-icon@2x.png`),Zed 名称与图标归 Zed Industries 所有,此处仅用于表示与 Zed 的集成,不代表官方关联或背书。