我以为做完了。功能跑通了,UI看着顺眼,扩展加载也没报错。
然后我开始真正用它。
![]()
这是DevFlow Suite公开开发的第五天。这个系列记录从想法到上架VS Code Marketplace的完整过程。今天聊的是:那些藏在"能跑"和"能用的"之间的坑。
幽灵评论:删了,但没完全删
DevFlow Suite会在每次保存时自动扫描工作区的行内//注释。问题是:当你删掉一条注释再保存,扫描器有时候会把它重新捞回来。
根因很直白——删除事件和扫描都被同一个保存动作触发。删除还没刷进状态,扫描就跑完了。
修复:让扫描排队,等删除完再执行。代码就一行。找到它:3小时。
行号陷阱:静态引用的崩溃
删除一条注释时,下面所有注释都会上移一行。但扩展存的是固定行号。
删掉第42行。原来43行的注释现在到了42行,但存储的引用还写着43。渲染时显示"缺失"。
修复:用文本匹配代替行号匹配来确定身份。逻辑一行。困惑两天。
Windows路径:绝对与相对的暗雷
fs.copyFileSync和vscode.diff在Windows上处理绝对路径和相对路径混用时表现不一致。差异视图会静默失败。
我主力机不是Windows。这个bug是别人测出来的。
教训:如果扩展涉及文件系统操作,必须在Windows上测试路径处理。
回收站的僵尸数据
从回收站恢复的项目,下次渲染有时会重新出现在垃圾桶里。isInTrash检查用了过期的行号——和上面那个位移bug同根同源,只是换个地方冒头。
修复:同样切到文本匹配。同一套模式,不同位置。
VS Code环境的特殊性
VS Code扩展跑在一个奇怪的环境里。文件事件、webview持久化、命令注册——这些和标准Node.js都不完全一样。
"我测的时候能跑"和"它能稳定跑"之间的缝隙,就是上面这些bug的藏身之处。
唯一的发现方法:把自己当成没写过这个扩展的用户去用。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.