refactor: address emmylua diagnostics
This commit is contained in:
+10
-23
@@ -7,23 +7,13 @@ local log = require("log")
|
||||
|
||||
local GROUP = vim.api.nvim_create_augroup("ow.lsp.codelens", { clear = true })
|
||||
|
||||
---@type table<integer, ow.lsp.codelens.Session>
|
||||
local session_by_buf = {}
|
||||
|
||||
local M = {}
|
||||
|
||||
---@param buf integer
|
||||
---@return ow.lsp.codelens.Session
|
||||
local function get_session(buf)
|
||||
session_by_buf[buf] = session_by_buf[buf] or Session.new(buf)
|
||||
return session_by_buf[buf]
|
||||
end
|
||||
|
||||
---@param buf? integer
|
||||
---@return boolean
|
||||
function M.is_enabled(buf)
|
||||
buf = buf or vim.api.nvim_get_current_buf()
|
||||
local session = session_by_buf[buf]
|
||||
local session = Session.find(buf)
|
||||
return session ~= nil and session.enabled
|
||||
end
|
||||
|
||||
@@ -34,13 +24,13 @@ function M.enable(value, buf)
|
||||
value = true
|
||||
end
|
||||
buf = buf or vim.api.nvim_get_current_buf()
|
||||
get_session(buf):enable(value)
|
||||
Session.get(buf):enable(value)
|
||||
end
|
||||
|
||||
---@param buf? integer
|
||||
function M.toggle(buf)
|
||||
buf = buf or vim.api.nvim_get_current_buf()
|
||||
get_session(buf):toggle()
|
||||
Session.get(buf):toggle()
|
||||
end
|
||||
|
||||
---@class ow.lsp.codelens.SetupOpts : ow.lsp.codelens.row.ConfigureOpts
|
||||
@@ -49,17 +39,18 @@ end
|
||||
function M.setup(opts)
|
||||
Row.configure(opts or {})
|
||||
|
||||
local method = vim.lsp.protocol.Methods.workspace_codeLens_refresh
|
||||
vim.lsp.handlers[method] = function(err, _, ctx)
|
||||
---@param err lsp.ResponseError?
|
||||
---@param ctx lsp.HandlerContext
|
||||
vim.lsp.handlers["workspace/codeLens/refresh"] = function(err, _, ctx)
|
||||
if err then
|
||||
log.warning(
|
||||
"client %d: error on %s: %s",
|
||||
ctx.client_id,
|
||||
method,
|
||||
ctx.method,
|
||||
err.message
|
||||
)
|
||||
end
|
||||
for buf, session in pairs(session_by_buf) do
|
||||
for buf, session in pairs(Session.all()) do
|
||||
if
|
||||
session.enabled
|
||||
and #vim.lsp.get_clients({ bufnr = buf, id = ctx.client_id })
|
||||
@@ -74,7 +65,7 @@ function M.setup(opts)
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "LspAttach" }, {
|
||||
group = GROUP,
|
||||
callback = function(ev)
|
||||
local session = session_by_buf[ev.buf]
|
||||
local session = Session.find(ev.buf)
|
||||
if session and session.enabled then
|
||||
session:refresh()
|
||||
end
|
||||
@@ -84,11 +75,7 @@ function M.setup(opts)
|
||||
vim.api.nvim_create_autocmd({ "BufDelete", "BufWipeout" }, {
|
||||
group = GROUP,
|
||||
callback = function(ev)
|
||||
local session = session_by_buf[ev.buf]
|
||||
if session then
|
||||
session:abort()
|
||||
end
|
||||
session_by_buf[ev.buf] = nil
|
||||
Session.remove(ev.buf)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user