From 263e094bb6a0f7606391e4980cc91fff9829dea8 Mon Sep 17 00:00:00 2001 From: Andrew Ferrier Date: Sun, 13 Sep 2020 15:33:57 +0100 Subject: [PATCH] Support buffer-specific variables. * b:diagnostic_show_sign * b:diagnostic_enable_virtual_text --- lua/diagnostic.lua | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/lua/diagnostic.lua b/lua/diagnostic.lua index 2ff67af..3ef13ed 100644 --- a/lua/diagnostic.lua +++ b/lua/diagnostic.lua @@ -79,18 +79,37 @@ function M.publish_diagnostics(bufnr) if vim.api.nvim_get_var('diagnostic_enable_underline') == 1 then vim.lsp.util.buf_diagnostics_underline(bufnr, diagnostics) end - if vim.api.nvim_get_var('diagnostic_show_sign') == 1 then + + local show_sign + + if vim.b.diagnostic_show_sign ~= nil then + show_sign = vim.b.diagnostic_show_sign + else + show_sign = vim.api.nvim_get_var('diagnostic_show_sign') + end + + if show_sign == 1 then util.buf_diagnostics_signs(bufnr, diagnostics) end - if vim.api.nvim_get_var('diagnostic_enable_virtual_text') == 1 then + + local virtual_text + + if vim.b.diagnostic_enable_virtual_text ~= nil then + virtual_text = vim.b.diagnostic_enable_virtual_text + else + virtual_text = vim.api.nvim_get_var('diagnostic_enable_virtual_text') + end + + if virtual_text == 1 then util.buf_diagnostics_virtual_text(bufnr, diagnostics) end + M.diagnostics_loclist(diagnostics) M.trigger_diagnostics_changed() end M.trigger_diagnostics_changed = vim.schedule_wrap(function() - vim.api.nvim_command("doautocmd User LspDiagnosticsChanged") + vim.api.nvim_command("doautocmd User LspDiagnosticsChanged") end) function M.refresh_diagnostics() @@ -114,14 +133,14 @@ M.on_attach = function(_, _) -- Setup autocmd M.modifyCallback() vim.api.nvim_command [[augroup DiagnosticRefresh]] - vim.api.nvim_command("autocmd! * ") - vim.api.nvim_command [[autocmd BufEnter,BufWinEnter,TabEnter lua require'diagnostic'.refresh_diagnostics()]] + vim.api.nvim_command("autocmd! * ") + vim.api.nvim_command [[autocmd BufEnter,BufWinEnter,TabEnter lua require'diagnostic'.refresh_diagnostics()]] vim.api.nvim_command [[augroup end]] if vim.api.nvim_get_var('diagnostic_insert_delay') == 1 then vim.api.nvim_command [[augroup DiagnosticInsertDelay]] - vim.api.nvim_command("autocmd! * ") - vim.api.nvim_command [[autocmd InsertLeave lua require'diagnostic'.on_InsertLeave()]] + vim.api.nvim_command("autocmd! * ") + vim.api.nvim_command [[autocmd InsertLeave lua require'diagnostic'.on_InsertLeave()]] vim.api.nvim_command [[augroup end]] end end