|
@@ -132,18 +132,20 @@ end
|
|
|
---filter passed to vim.lsp.buf.format
|
|
|
---always selects null-ls if it's available and caches the value per buffer
|
|
|
---@param client table client attached to a buffer
|
|
|
----@return table chosen clients
|
|
|
+---@return boolean if client matches
|
|
|
function M.format_filter(client)
|
|
|
local filetype = vim.bo.filetype
|
|
|
local n = require "null-ls"
|
|
|
local s = require "null-ls.sources"
|
|
|
local method = n.methods.FORMATTING
|
|
|
- local avalable_sources = s.get_available(filetype, method)
|
|
|
+ local avalable_formatters = s.get_available(filetype, method)
|
|
|
|
|
|
- if #avalable_sources > 0 then
|
|
|
+ if #avalable_formatters > 0 then
|
|
|
return client.name == "null-ls"
|
|
|
- else
|
|
|
+ elseif client.supports_method "textDocument/formatting" then
|
|
|
return true
|
|
|
+ else
|
|
|
+ return false
|
|
|
end
|
|
|
end
|
|
|
|
|
@@ -159,6 +161,7 @@ function M.format(opts)
|
|
|
|
|
|
local bufnr = opts.bufnr or vim.api.nvim_get_current_buf()
|
|
|
|
|
|
+ ---@type table|nil
|
|
|
local clients = vim.lsp.get_active_clients {
|
|
|
id = opts.id,
|
|
|
bufnr = bufnr,
|