在vscode里遇到了一个奇怪的文件重命名bug

最近我在Mac下使用vscode开发一个rust项目。

一开始,我创建了一个Function.rs,后来又重命名为了function.rs(首字母改为小写)。奇怪的是,rust-analyzer并没有更新提示,跟我说:
This file is not included anywhere in the module tree, so rust-analyzer can’t offer IDE services.

它的修复建议是让我在lib.rs下加一行pub mod Function。我寻思不对啊,我已经重命名为function.rs了啊,lib.rs也添加了pub mod function,这不科学!

直觉告诉我,可能是Mac文件系统的原因(不分大小写),但还是不知道怎么解决。尝试了重启vscode、卸载重装rust-analyzer、删除function.rs后创建Function.rs再删除再创建回function.rs……各种方式尝试过了,全都未果。询问AI,AI的回答也基本是这几种方法,没用。

最后,我想到,可能跟vscode的缓存有关。于是我尝试着在~/Library/Application Support/Code/路径下搜索内容带有“Function.rs”的文件,发现一个~/Library/Application Support/Code/User/workspaceStorage/aeee45fd3da52a3d9a0b3d84f6f19edb/state.vscdb。

删除之,再重启vscode。居然好了!泪目……

当然,删除这个文件的后果就是,打开的文件标签页全都没了,得重新打开。不过与前面的问题相比,这都是小事。

本来用rust开发项目就已经够浪费时间的了,vscode还给我来这一出,白费我一晚上时间,无语……

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注