From ffe588870d3325bf1e7d6a7d33009de0d2bee6e6 Mon Sep 17 00:00:00 2001 From: jdhao Date: Sat, 6 Nov 2021 12:52:45 +0800 Subject: [PATCH] [breaking change] make it work for nvim 0.5.1 In nvim 0.5.1, the lsp handler signature has changed, see https://github.com/neovim/neovim/pull/15504 and LunarVim/LunarVim#1484. --- README.md | 2 +- lua/config/lsp.lua | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5576b27..c424ea5 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ add it to your own Nvim config. See [doc here](docs/README.md) on how to install Nvim's dependencies, Nvim itself, and how to set up on different platforms (Linux, macOS and Windows). -**This config is tested against Nvim 0.5.0 release. No backward compatibility +**This config is tested against Nvim 0.5.1 release. No backward compatibility is guaranteed.** # Features # diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index 7cc8062..7c92df4 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -166,10 +166,14 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagn }) -- Refs: https://github.com/neovim/nvim-lspconfig/wiki/UI-customization#show-source-in-diagnostics -vim.lsp.handlers["textDocument/publishDiagnostics"] = function(_, _, params, client_id, _) - local uri = params.uri - local bufnr = vim.uri_to_bufnr(uri) +vim.lsp.handlers["textDocument/publishDiagnostics"] = function(_, result, context, _) + -- result contains diagnostics and uri + -- context contains client_id and method, but not always buf_nr + local client_id = context.client_id + local diagnostics = result.diagnostics + local uri = result.uri + local bufnr = vim.uri_to_bufnr(uri) if not bufnr then return end @@ -178,7 +182,7 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = function(_, _, params, cli return end - local diagnostics = params.diagnostics + -- change diagnostics format for i, v in ipairs(diagnostics) do diagnostics[i].message = string.format("%s: %s", v.source, v.message) end