Add rust-project.json + cargo check info to docs
Add information about how to configure compilation errors/checks when using rust-project.json.
@@ -616,6 +616,27 @@ See https://github.com/rust-analyzer/rust-project.json-example for a small examp
You can set `RA_LOG` environmental variable to `rust_analyzer=info` to inspect how rust-analyzer handles config and project loading.
+Note that calls to `cargo check` are disabled when using `rust-project.json` by default, so compilation errors and warnings will no longer be sent to your LSP client. To enable these compilation errors you will need to specify explicitly what command rust-analyzer should run to perform the checks using the `checkOnSave.overrideCommand` configuration. The following example, explicitly enables calls to `cargo check` in neovim's configuration:
+
+[source,vim]
+----
+lua << EOF
+nvim_lsp['rust_analyzer'].setup {
+ on_attach = on_attach,
+ settings = {
+ ["rust-analyzer"] = {
+ checkOnSave = {
+ overrideCommand = {"cargo", "check", "--message-format=json"},
+ enable = true,
+ }
+ }
+ }
+}
+EOF
+----
+
+The `checkOnSave.overrideCommand` requires the command specified to output json error messages for rust-analyzer to consume. The `--message-format=json` flag does this for `cargo check` so whichever command you use must also output errors in this format. See the <<Configuration>> section for more information.
+
== Security
At the moment, rust-analyzer assumes that all code is trusted.
