Ok, so you are asking about the configuration options listed in the rust-analyzer documentation.
I wasn’t able to find out much about the subject in the
lsp-mode documentation, so instead I took a quick peek in the
lsp-rust source code. I soon found that there is a function called
lsp-rust-analyzer--make-init-options that returns the data structure that will be encoded as JSON and sent to the server. You can view the source inside Emacs (type
C-h f and enter the function name; it opens a help buffer for the function which includes a link to its source code), but it is also viewable on GitHub.
If you look through this giant thing, you’ll eventually see
:procMacro sections. Specifically, you’ll see this:
:procMacro (:enable ,(lsp-json-bool lsp-rust-analyzer-proc-macro-enable))
which uses the variable
lsp-rust-analyzer-proc-macro-enable to enable or disable support for procedural macros. Similarly:
:loadOutDirsFromCheck ,(lsp-json-bool lsp-rust-analyzer-cargo-run-build-scripts)
does the same thing with the
Both of these variables refer to customizable settings. To edit them, you can just run
M-x customize-group, and then type
lsp-rust-analyzer at the prompt. This lists all of the settings for the
lsp-rust-analyzer module, and gives you a nice interface for editing them.
It also turns out that these variables are both documented in the
lsp-mode documentation; I had simply failed to notice them.