一般来说,如果vscode打开的是rust项目的根目录(即目录下有Cargo.toml和src/文件),rust-analyzer插件可以识别到项目。
而如果rust项目只是vscode资源管理器打开的子目录,则有时会出现failed to find any projects in [AbsPathBuf xxx或者FetchWorkspaceError的报错,rust-analyzer也无法正常运行,如下图所示:
vscode侧边栏打开rust-analyzer插件,进入扩展设置
也可以ctrl+shift+P进入“首选项:工作区设置”,在上面的输入栏里输入@ext:rust-lang.rust-analyzer link。
然后在"rust-analyzer.linkedProjects"里面写上项目根目录的Cargo.toml的绝对地址即可
{ "rust-analyzer.linkedProjects": [ "/xxx/xxx/xxx/Cargo.toml" ] }
之后可能会自动下载一些文件,最后解决问题:
如果没有自动更新,可以重启下vscode。