aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/lspconfig/server_configurations/rust_analyzer.lua8
1 files changed, 7 insertions, 1 deletions
diff --git a/lua/lspconfig/server_configurations/rust_analyzer.lua b/lua/lspconfig/server_configurations/rust_analyzer.lua
index cfa61200..6d2ab33d 100644
--- a/lua/lspconfig/server_configurations/rust_analyzer.lua
+++ b/lua/lspconfig/server_configurations/rust_analyzer.lua
@@ -17,7 +17,10 @@ local function get_workspace_dir(cmd)
local stderr = {}
local jobid = vim.fn.jobstart(cmd, {
on_stdout = function(_, data, _)
- stdout[#stdout + 1] = table.concat(data, '\n')
+ data = table.concat(data, '\n')
+ if #data > 0 then
+ stdout[#stdout + 1] = data
+ end
end,
on_stderr = function(_, data, _)
stderr[#stderr + 1] = table.concat(data, '\n')
@@ -38,6 +41,9 @@ local function get_workspace_dir(cmd)
end
coroutine.yield()
+ if next(stdout) == nil then
+ return nil
+ end
stdout = vim.json.decode(table.concat(stdout, ''))
return stdout and stdout['workspace_root'] or nil
end