ra-multiplex: Cannot pass the settings of rust-analyer on Neovim over Neovim LSP

Hi, @pr2502 , I really appreciate your work on ra-multiplex. It seems that neovim cannot pass the settings into the rust-analyzer while using ra-multiplex. Let me give you an example. You can run luafile ./config.lua in neovimn to check it.

./config.lua

require('lspconfig').rust_analyzer.setup {
    cmd = { "ra-multiplex" },
    settings = {
        ["rust-analyzer"] = {
            check = {
                overrideCommand = {
                    "cargo",
                    "clippy",
                    "--message-format=json-diagnostic-rendered-ansi",
                    "--fix",
                    "--allow-dirty"
                }
            }
        }
    }
}

If I comment out the line cmd = { "ra-multiplex" }, then neovim would run cargo clippy, which is exactly what I want. Do you have any thoughts about addressing this issue? Thanks.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 8
  • Comments: 15 (6 by maintainers)

Most upvoted comments

Hi @pr2502! Thanks for your update. The following configuration works for me. Saying, we can either change the check behavior or modify the feature flags now. Hooray! šŸ˜„

require'lspconfig'.rust_analyzer.setup {
  cmd = vim.lsp.rpc.connect("127.0.0.1", 27631),
  init_options = {
    lspMux = {
      version = "1",
      method = "connect",
      server = "rust-analyzer",
    },
  },
  settings = {
    ["rust-analyzer"] = {
      check = {
        overrideCommand = {
            "cargo",
            "clippy",
            "--message-format=json",
        }
      },
      cargo = {
        features = "all",
      }
    }
  }
}

BTW, I notice that if I need to revert the modification or change the overrideCommand back to the default ā€œcargo checkā€, we need to specify the value explicitly to override the previous status of ra-multiplex (if we don’t shutdown the server).