@@ -37,14 +37,35 @@ checking time. For example, if you are working on the compiler, you can override
3737the command to ` x check compiler --json-output ` to only check the compiler part.
3838You can run ` x check --help --verbose ` to see the available parts.
3939
40- If you have enough free disk space and you would like to be able to run ` x `
41- commands while rust-analyzer runs in the background, you can also add
42- ` --build-dir build-rust-analyzer ` to the ` overrideCommand ` to avoid x locking.
43-
4440Running ` ./x setup editor ` will prompt you to create a project-local LSP config
4541file for one of the supported editors. You can also create the config file as a
4642step of running ` ./x setup ` .
4743
44+ ### Using a separate build directory for rust-analyzer
45+
46+ By default, when rust-analyzer runs a check or format command, it will share
47+ the same build directory as manual command-line builds. This can be inconvenient
48+ for two reasons:
49+ - Each build will lock the build directory and force the other to wait, so it
50+ becomes impossible to run command-line builds while rust-analyzer is running
51+ commands in the background.
52+ - There is an increased risk of one of the builds deleting previously-built
53+ artifacts due to conflicting compiler flags or other settings, forcing
54+ additional rebuilds in some cases.
55+
56+ To avoid these problems:
57+ - Add ` --build-dir=build-rust-analyzer ` to all of the custom ` x ` commands in
58+ your editor's rust-analyzer configuration.
59+ (Feel free to choose a different directory name if desired.)
60+ - Modify the ` rust-analyzer.procMacro.server ` setting so that it points to the
61+ copy of ` rust-analyzer-proc-macro-srv ` in that other build directory.
62+
63+ Using separate build directories for command-line builds and rust-analyzer
64+ requires extra disk space, and also means that running ` ./x clean ` on the
65+ command-line will not clean out the separate build directory. To clean the
66+ separate build directory, run ` ./x clean --build-dir=build-rust-analyzer `
67+ instead.
68+
4869### Visual Studio Code
4970
5071Selecting ` vscode ` in ` ./x setup editor ` will prompt you to create a
0 commit comments