summaryrefslogtreecommitdiff
path: root/lua/lsp/init.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-10-04 08:12:25 +0200
committerGitHub <[email protected]>2021-10-04 08:12:25 +0200
commit2104e3864550e28513cbad5cb2f48233c2c4e79e (patch)
tree29d2834d2d37866a062f22b228e217558c560403 /lua/lsp/init.lua
parent1078f43a517d5a0056b1191aca0fa85994a38ecb (diff)
fix: restore the ability to override formatting (#1677)
Diffstat (limited to 'lua/lsp/init.lua')
-rw-r--r--lua/lsp/init.lua21
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)