From 1c3b80d0411e9a2a3594bde92ccecb8908402bf7 Mon Sep 17 00:00:00 2001 From: Christian Chiarulli Date: Sun, 25 Jul 2021 00:13:35 -0400 Subject: implement language overrides (#1081) Co-authored-by: Chris --- lua/lsp/init.lua | 35 ++++++++++++++++++++++++++++++++++- lua/lsp/null-ls.lua | 1 + 2 files changed, 35 insertions(+), 1 deletion(-) (limited to 'lua/lsp') 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 -- cgit v1.2.3