diff options
Diffstat (limited to 'lua/lsp')
| -rw-r--r-- | lua/lsp/init.lua | 27 | ||||
| -rw-r--r-- | lua/lsp/null-ls.lua | 2 | 
2 files changed, 28 insertions, 1 deletions
| diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index dab2cfe4..827753c6 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -208,6 +208,14 @@ function lsp_config.common_on_attach(client, bufnr)    lsp_highlight_document(client)  end +local function no_formatter_on_attach(client, bufnr) +  if lvim.lsp.on_attach_callback then +    lvim.lsp.on_attach_callback(client, bufnr) +  end +  lsp_highlight_document(client) +  client.resolved_capabilities.document_formatting = false +end +  function lsp_config.common_capabilities()    local capabilities = vim.lsp.protocol.make_client_capabilities()    capabilities.textDocument.completion.completionItem.snippetSupport = true @@ -310,9 +318,26 @@ function lsp_config.setup(lang)        return      end    end +  local sources = require("lsp.null-ls").setup(lang) + +  for _, source in pairs(sources) do +    local method = source.method +    local format_method = "NULL_LS_FORMATTING" + +    if is_table(method) then +      if has_value(method, format_method) then +        lang_server.setup.on_attach = no_formatter_on_attach +      end +    end + +    if is_string(method) then +      if method == format_method then +        lang_server.setup.on_attach = no_formatter_on_attach +      end +    end +  end    require("lspconfig")[provider].setup(lang_server.setup) -  require("lsp.null-ls").setup(lang)  end  return lsp_config diff --git a/lua/lsp/null-ls.lua b/lua/lsp/null-ls.lua index 15fd3628..48924be5 100644 --- a/lua/lsp/null-ls.lua +++ b/lua/lsp/null-ls.lua @@ -76,6 +76,8 @@ end  function M.setup(filetype)    setup(filetype, "formatting")    setup(filetype, "diagnostics") +  lvim.sources = sources +  return sources  end  return M | 
