diff options
author | kylo252 <[email protected]> | 2021-10-04 08:12:25 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2021-10-04 08:12:25 +0200 |
commit | 2104e3864550e28513cbad5cb2f48233c2c4e79e (patch) | |
tree | 29d2834d2d37866a062f22b228e217558c560403 /lua/lsp/init.lua | |
parent | 1078f43a517d5a0056b1191aca0fa85994a38ecb (diff) |
fix: restore the ability to override formatting (#1677)
Diffstat (limited to 'lua/lsp/init.lua')
-rw-r--r-- | lua/lsp/init.lua | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index 7f20a39d..fae7ca8d 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -62,18 +62,37 @@ function M.common_capabilities() return capabilities end +local function select_default_formater(client) + local client_formatting = client.resolved_capabilities.document_formatting + or client.resolved_capabilities.document_range_formatting + if client.name == "null-ls" or not client_formatting then + return + end + Log:debug("Checking for formatter overriding for " .. client.name) + local client_filetypes = client.config.filetypes or {} + for _, filetype in ipairs(client_filetypes) do + if not vim.tbl_isempty(lvim.lang[filetype].formatters) then + Log:debug("Formatter overriding detected. Disabling formatting capabilities for " .. client.name) + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false + return + end + end +end + function M.common_on_init(client, bufnr) if lvim.lsp.on_init_callback then lvim.lsp.on_init_callback(client, bufnr) Log:debug "Called lsp.on_init_callback" return end + select_default_formater(client) end function M.common_on_attach(client, bufnr) if lvim.lsp.on_attach_callback then lvim.lsp.on_attach_callback(client, bufnr) - Log:debug "Called lsp.on_init_callback" + Log:debug "Called lsp.on_attach_callback" end lsp_highlight_document(client) add_lsp_buffer_keybindings(bufnr) |