# 发生了什么 pi-lens 内置「安全格式化」:它会自动安装 biome 并对**编辑过的文件**跑 `biome format --write`。本机原先没有任何 biome 配置,于是 biome 用它自己的 默认值 —— tab 缩进 + 双引号 —— 把文件整体重写。 我在19a3161那次提交里用了 `git add -A`,把这批与功能无关的重排一起扫了进去: 约 7000 行改动散落在 20 个文件上,使那次提交无法审查,还掩盖了 server/internal/handler/permission.go 的一处删行(实为文件末尾空行,无代码丢失)。 # 为什么是「关掉」而不是「配置成我们的风格」 试过把缩进/引号/lineWidth 全部对齐本仓库习惯(biome.json + space/2/single/ lineWidth 120):`biome format --write` 仍然改动 17 个文件。原因是本仓库从未按 biome 的规则排版过 —— 注释按语义换行、数组与调用按可读性手工折行, 这些无法由格式化器还原。也就是说只要格式化器开着,每次编辑都会产生与内容无关的 大面积 diff,把真正的改动埋掉。 因此 biome.jsonc 里 formatter 与 linter 都关闭:本仓库的静态检查由 tsc / go vet / tree-sitter / ast-grep 与各自测试套件承担,不引入会改动无关行的 自动修复。 (pi-lens 这一版把 format 服务的 enabled 硬编码为 true,没有配置开关, 所以只能在仓库侧用 biome 配置让它不动文件;已验证 `biome format --write` 对这些文件零改动。) # 本提交内容 把19a3161里除「有意改动」外的 20 个文件还原到重排前的样子。19a3161中真正有意的改动是 deploy/install.sh 的扩展注册与 plugins/pi-mail-bridge/extension/index.ts 新文件,两者原样保留。 验证:Go 全量、三桥插件(320/362/409)、前端 196 全绿; `biome format --write` 对还原后的文件零改动。
38 lines
1.6 KiB
JSON
38 lines
1.6 KiB
JSON
{
|
||
// 本仓库**不使用** biome 的格式化器,只借它做诊断(且由 pi-lens 统一调度)。
|
||
//
|
||
// # 为什么显式关闭
|
||
//
|
||
// pi-lens 内置「安全格式化」,会对编辑过的文件跑
|
||
// `biome format --write`(沿 biome 标准向上查找配置)。本机没有任何
|
||
// biome 配置时,biome 用它自己的默认值:**tab 缩进 + 双引号**。
|
||
//
|
||
// 本仓库的手工排版与那套默认不兼容:注释按语义换行、数组与调用按可读性
|
||
// 手工折行,长注释常超过 100 列。实测把缩进/引号/lineWidth 全部对齐到本仓库
|
||
// 习惯之后,`biome format --write` 仍然改动 17 个文件 —— 也就是说只要格式化器
|
||
// 开着,每次编辑都会产生与内容无关的大面积 diff,把真正的改动埋掉。
|
||
//
|
||
// 曾经发生过:一次 `git add -A` 把约 7000 行纯重排扫进了功能提交
|
||
// (19a3161),使那次提交无法审查 —— 还掩盖了一处 Go 文件的删行。
|
||
//
|
||
// # 因此
|
||
//
|
||
// - formatter 关闭:保持本仓库既有排版,不再产生重排噪声
|
||
// - linter 关闭:`biome lint --write` 会做自动修复,同样会改到与本次改动
|
||
// 无关的行;本仓库的静态检查由 pi-lens 的其它 runner(tsc / tree-sitter /
|
||
// ast-grep / go vet)与各自的测试套件承担
|
||
//
|
||
// 新文件仍应遵守本仓库的既有风格(2 空格缩进、单引号)。
|
||
"vcs": {
|
||
"enabled": true,
|
||
"clientKind": "git",
|
||
"useIgnoreFile": true
|
||
},
|
||
"formatter": {
|
||
"enabled": false
|
||
},
|
||
"linter": {
|
||
"enabled": false
|
||
}
|
||
}
|