fix(lualine): use get_active_clients instead of deprecated function (#4136)

* fix(lualine): use `get_active_clients` instead of deprecated function

`vim.lsp.get_active_clients()` accepts a table to filter returned
clients by id, bufnr and name. In this case when want to get clients for
current buffer, if bufnr is not given then it defaults to current
buffer, so need to pass anything here.

See `help vim.lsp.buf_get_clients()`

* refactor(lualine): simplify LSP component

`vim.lsp.get_active_clients` always returns a table, if that table is
empty, there's no clients attached, hence return appropriate message. No
need to use `next()`

Remove all the complicated logic with the `msg` parameter, no argument
is passed in any of the places that component is used, no need to have it.

* fix: only get clients attached to current buffer

---------

Co-authored-by: LostNeophyte <lostneophyte@tuta.io>
This commit is contained in:
Rafael Madriz 2023-05-07 06:47:34 -03:00 committed by GitHub
parent 6d3f8b2183
commit 55f048aaae
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 4AEE18F83AFDEB23

View file

@ -92,16 +92,12 @@ return {
cond = conditions.hide_in_width,
},
lsp = {
function(msg)
msg = msg or "LS Inactive"
local buf_clients = vim.lsp.buf_get_clients()
if next(buf_clients) == nil then
-- TODO: clean up this if statement
if type(msg) == "boolean" or #msg == 0 then
return "LS Inactive"
end
return msg
function()
local buf_clients = vim.lsp.get_active_clients { bufnr = 0 }
if #buf_clients == 0 then
return "LSP Inactive"
end
local buf_ft = vim.bo.filetype
local buf_client_names = {}
local copilot_active = false