diff options
Diffstat (limited to 'lua/lsp')
| -rw-r--r-- | lua/lsp/init.lua | 35 | ||||
| -rw-r--r-- | lua/lsp/null-ls.lua | 1 | 
2 files changed, 35 insertions, 1 deletions
| diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index b0511f0e..3f61a1e0 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -272,13 +272,46 @@ require("lv-utils").define_augroups {    },  } +local function is_table(t) +  return type(t) == "table" +end + +local function is_string(t) +  return type(t) == "string" +end + +local function has_value(tab, val) +  for index, value in ipairs(tab) do +    if value == val then +      return true +    end +  end + +  return false +end +  function lsp_config.setup(lang) -  lang_server = lvim.lang[lang].lsp +  local lang_server = lvim.lang[lang].lsp    require("lsp.null-ls").setup "python"    local provider = lang_server.provider    if require("lv-utils").check_lsp_client_active(provider) then      return    end + +  local overrides = lvim.lsp.override + +  if is_table(overrides) then +    if has_value(overrides, lang) then +      return +    end +  end + +  if is_string(overrides) then +    if overrides == lang then +      return +    end +  end +    require("lspconfig")[provider].setup(lang_server.setup)    require("lsp.null-ls").setup(lang)  end diff --git a/lua/lsp/null-ls.lua b/lua/lsp/null-ls.lua index 43d4400a..099a6dc1 100644 --- a/lua/lsp/null-ls.lua +++ b/lua/lsp/null-ls.lua @@ -45,6 +45,7 @@ local function setup_ls(exe, type)  end  local function setup(filetype, type) +  local executables = nil    if type == "diagnostics" then      executables = lvim.lang[filetype].linters    end | 
