use lua locals

Co-authored-by: DianQK <dianqk@dianqk.net>
This commit is contained in:
jyn 2025-02-24 00:12:55 -05:00 committed by GitHub
parent a55bd19ca7
commit c5b75dc7bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 5 additions and 5 deletions

View File

@ -125,11 +125,11 @@ configuration. The following code will work for any checkout of rust-lang/rust (
```lua ```lua
lspconfig.rust_analyzer.setup { lspconfig.rust_analyzer.setup {
root_dir = function() root_dir = function()
default = lspconfig.rust_analyzer.config_def.default_config.root_dir() local default = lspconfig.rust_analyzer.config_def.default_config.root_dir()
-- the default root detection uses the cargo workspace root. -- the default root detection uses the cargo workspace root.
-- but for rust-lang/rust, the standard library is in its own workspace. -- but for rust-lang/rust, the standard library is in its own workspace.
-- use the git root instead. -- use the git root instead.
compiler_config = vim.fs.joinpath(default, "../src/bootstrap/defaults/config.compiler.toml") local compiler_config = vim.fs.joinpath(default, "../src/bootstrap/defaults/config.compiler.toml")
if vim.fs.basename(default) == "library" and vim.uv.fs_stat(compiler_config) then if vim.fs.basename(default) == "library" and vim.uv.fs_stat(compiler_config) then
return vim.fs.dirname(default) return vim.fs.dirname(default)
end end
@ -137,11 +137,11 @@ lspconfig.rust_analyzer.setup {
end, end,
on_init = function(client) on_init = function(client)
local path = client.workspace_folders[1].name local path = client.workspace_folders[1].name
config = vim.fs.joinpath(path, "src/etc/rust_analyzer_zed.json") local config = vim.fs.joinpath(path, "src/etc/rust_analyzer_zed.json")
if vim.uv.fs_stat(config) then if vim.uv.fs_stat(config) then
-- load rust-lang/rust settings -- load rust-lang/rust settings
file = io.open(config) local file = io.open(config)
json = vim.json.decode(file:read("*a")) local json = vim.json.decode(file:read("*a"))
client.config.settings["rust-analyzer"] = json.lsp["rust-analyzer"].initialization_options client.config.settings["rust-analyzer"] = json.lsp["rust-analyzer"].initialization_options
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings }) client.notify("workspace/didChangeConfiguration", { settings = client.config.settings })
end end