From 3cceca5a79b66d735cbacbf05fa0bce5f8b716ca Mon Sep 17 00:00:00 2001 From: Emerson Ford Date: Tue, 23 Jul 2024 22:37:02 -0700 Subject: fix(rust-analyzer) automatically populate `init_options` from `settings["rust-analyzer"]` (#3247) * automatically populate `init_options` for rust-analyzer in accordance with the rust-analyzer docs --- lua/lspconfig/server_configurations/rust_analyzer.lua | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lua') diff --git a/lua/lspconfig/server_configurations/rust_analyzer.lua b/lua/lspconfig/server_configurations/rust_analyzer.lua index b89546a7..13a36207 100644 --- a/lua/lspconfig/server_configurations/rust_analyzer.lua +++ b/lua/lspconfig/server_configurations/rust_analyzer.lua @@ -77,6 +77,12 @@ return { serverStatusNotification = true, }, }, + before_init = function(init_params, config) + -- See https://github.com/rust-lang/rust-analyzer/blob/eb5da56d839ae0a9e9f50774fa3eb78eb0964550/docs/dev/lsp-extensions.md?plain=1#L26 + if config.settings and config.settings['rust-analyzer'] then + init_params.initializationOptions = config.settings['rust-analyzer'] + end + end, }, commands = { CargoReload = { @@ -105,6 +111,9 @@ require'lspconfig'.rust_analyzer.setup{ } } ``` + +Note: do not set `init_options` for this LS config, it will be automatically populated by the contents of settings["rust-analyzer"] per +https://github.com/rust-lang/rust-analyzer/blob/eb5da56d839ae0a9e9f50774fa3eb78eb0964550/docs/dev/lsp-extensions.md?plain=1#L26. ]], default_config = { root_dir = [[root_pattern("Cargo.toml", "rust-project.json")]], -- cgit v1.2.3-70-g09d2