Path passed to the language server

I’m working on a Rust extension based on Rust.novaextension, but an error occurs when I open a toy rust cargo project called hello_cargo and modified src/main.rs.

The error said:

[2021-04-12T14:35:37Z ERROR rls::build::cargo_plan] Modified file /Volumes/Macintosh HD/Users/cjw/Downloads/hello_cargo/src/main.rs didn't correspond to any buildable unit!

Then I recompiled the rust language server (rls), and debugged the relevant code, and found that the rls tried to compare the modified file (/Volumes/Macintosh HD/Users/cjw/Downloads/hello_cargo/src/main.rs) path with the project source path (/Users/cjw/Downloads/hello_cargo/src), but found they don’t have the same path prefix.

Obviously, it’s caused by the prefix /Volumes/Macintosh HD. I think this might be caused by RPC argument between the language server and the language client. A path argument might contain the prefix /Volumes/Macintosh HD.
Are there any method I can get around of it, or @Nova_team can fix it?

This has cropped up before: see this thread for a discussion, including code for a workaround by yours truly.

Thanks for your reply.

But I don’t think this thread can solve my problem, since when the language client send a request, in which the paramaters contains the path /Volumes/Macintosh HD/Users/XXX, to the language server, I have no way to interference in and change the path to /Users/XXX.

This problem really should be fixed by Nova app, I don’t see any reason that the Nova app needs to append the prefix /Volumes/Macintosh HD to the path /Users/XXX. @logan