summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lua/default-config.lua1
-rw-r--r--lua/lsp/init.lua35
-rw-r--r--lua/lsp/null-ls.lua1
3 files changed, 36 insertions, 1 deletions
diff --git a/lua/default-config.lua b/lua/default-config.lua
index 0c36054c..fb3a60c6 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -42,6 +42,7 @@ lvim = {
signs = true,
underline = true,
},
+ override = {},
document_highlight = true,
popup_border = "single",
default_keybinds = true,
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