diff options
Diffstat (limited to '')
-rw-r--r-- | lsp/lua-language-server.lua | 2 | ||||
-rw-r--r-- | lsp/qmlls.lua | 5 | ||||
-rw-r--r-- | lsp/rust-analyzer.lua | 25 |
3 files changed, 31 insertions, 1 deletions
diff --git a/lsp/lua-language-server.lua b/lsp/lua-language-server.lua index a77fcd9..ce0d902 100644 --- a/lsp/lua-language-server.lua +++ b/lsp/lua-language-server.lua @@ -1,6 +1,6 @@ return { cmd = { "lua-language-server" }, - root_markers = { ".luarc.json" }, + root_markers = { ".luarc.json", ".git" }, filetypes = { "lua" }, settings = { diff --git a/lsp/qmlls.lua b/lsp/qmlls.lua new file mode 100644 index 0000000..92dc83b --- /dev/null +++ b/lsp/qmlls.lua @@ -0,0 +1,5 @@ +return { + cmd = { "qmlls", "-E" }, + root_markers = { ".qmlls.ini", ".git" }, + filetypes = { "qml", "qmljs" }, +} diff --git a/lsp/rust-analyzer.lua b/lsp/rust-analyzer.lua index 51f5037..78ed2c5 100644 --- a/lsp/rust-analyzer.lua +++ b/lsp/rust-analyzer.lua @@ -1,8 +1,33 @@ +local serverReady = {} + return { cmd = { "rust-analyzer" }, root_markers = { "Cargo.toml" }, filetypes = { "rust" }, + capabilities = { + experimental = { + serverStatusNotification = true, + }, + }, + + handlers = { + ["experimental/serverStatus"] = function(_, result, ctx) + -- Try to fix inlay hints not being shown on start of + if result.quiescent and not serverReady[ctx.client_id] then + for _, bufnr in ipairs(vim.lsp.get_buffers_by_client_id(ctx.client_id)) do + -- Re-enable inlay hints so they are refreshed + if vim.lsp.inlay_hint.is_enabled() then + vim.lsp.inlay_hint.enable(false, { bufnr = bufnr }) + vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) + end + + serverReady[ctx.client_id] = true + end + end + end, + }, + settings = { ["rust-analyzer"] = { checkOnSave = { command = "clippy" }, |