From 06a2b799c6185ae26be6b9ee3244761fbe999cb2 Mon Sep 17 00:00:00 2001 From: Jason Hansen Date: Sun, 12 Dec 2021 04:34:05 -0700 Subject: [PATCH] Fix for deprecated vim.lsp.diagnostic.get_all (#840) --- lua/nvim-tree/diagnostics.lua | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/lua/nvim-tree/diagnostics.lua b/lua/nvim-tree/diagnostics.lua index 2f376a8d..9a934c60 100644 --- a/lua/nvim-tree/diagnostics.lua +++ b/lua/nvim-tree/diagnostics.lua @@ -1,7 +1,6 @@ local a = vim.api local utils = require'nvim-tree.utils' local view = require'nvim-tree.view' -local get_diagnostics = vim.lsp.diagnostic.get_all local M = {} @@ -35,12 +34,29 @@ end local function from_nvim_lsp() local buffer_severity = {} - for buf, diagnostics in pairs(get_diagnostics()) do - if a.nvim_buf_is_valid(buf) then - local bufname = a.nvim_buf_get_name(buf) - if not buffer_severity[bufname] then - local severity = get_lowest_severity(diagnostics) - buffer_severity[bufname] = severity + -- vim.lsp.diagnostic.get_all was deprecated in nvim 0.7 and replaced with vim.diagnostic.get + -- This conditional can be removed when the minimum required version of nvim is changed to 0.7. + if vim.diagnostic then + -- nvim version >= 0.7 + for _, diagnostic in ipairs(vim.diagnostic.get()) do + local buf = diagnostic.bufnr + if a.nvim_buf_is_valid(buf) then + local bufname = a.nvim_buf_get_name(buf) + local lowest_severity = buffer_severity[bufname] + if not lowest_severity or diagnostic.severity < lowest_severity then + buffer_severity[bufname] = diagnostic.severity + end + end + end + else + -- nvim version < 0.7 + for buf, diagnostics in pairs(vim.lsp.diagnostic.get_all()) do + if a.nvim_buf_is_valid(buf) then + local bufname = a.nvim_buf_get_name(buf) + if not buffer_severity[bufname] then + local severity = get_lowest_severity(diagnostics) + buffer_severity[bufname] = severity + end end end end