diff --git a/lua/config/lsp/server/cssls.lua b/lua/config/lsp/server/cssls.lua new file mode 100644 index 00000000..3981f67b --- /dev/null +++ b/lua/config/lsp/server/cssls.lua @@ -0,0 +1,15 @@ +local util = require("config.util") + +local M = {} + +function M.setup(opts) + --Enable (broadcasting) snippet capability for completion + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities.textDocument.completion.completionItem.snippetSupport = true + + opts.capabilities = util.tbl_extend_force(opts.capabilities or {}, capabilities) + + require("lspconfig").cssls.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/denols.lua b/lua/config/lsp/server/denols.lua new file mode 100644 index 00000000..5c07946b --- /dev/null +++ b/lua/config/lsp/server/denols.lua @@ -0,0 +1,13 @@ +local util = require("config.lsp.util") + +local M = {} + +local config_files = { "deno.json", "deno.jsonc" } + +function M.setup(opts) + opts.root_dir = util.get_root_pattern(config_files) + + require("lspconfig").denols.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/graphql.lua b/lua/config/lsp/server/graphql.lua new file mode 100644 index 00000000..25067650 --- /dev/null +++ b/lua/config/lsp/server/graphql.lua @@ -0,0 +1,11 @@ +local util = require("config.lsp.util") + +local M = {} + +function M.setup(opts) + opts.root_dir = util.get_graphql_root_pattern() + + require("lspconfig").graphql.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/html.lua b/lua/config/lsp/server/html.lua new file mode 100644 index 00000000..c60a92ad --- /dev/null +++ b/lua/config/lsp/server/html.lua @@ -0,0 +1,10 @@ +local util = require("config.lsp.util") +local M = {} + +function M.setup(opts) + opts.root_dir = util.get_root_pattern({ "*.html" }) + + require("lspconfig").html.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/jsonls.lua b/lua/config/lsp/server/jsonls.lua new file mode 100644 index 00000000..4ca2be28 --- /dev/null +++ b/lua/config/lsp/server/jsonls.lua @@ -0,0 +1,14 @@ +local M = {} + +local settings = { json = { schemas = require("schemastore").json.schemas(), validate = { enable = true } } } +local util = require("config.lsp.util") + +function M.setup(opts) + opts = util.enable_broadcasting(opts) + + opts.settings = settings + + require("lspconfig").jsonls.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/relay_lsp.lua b/lua/config/lsp/server/relay_lsp.lua new file mode 100644 index 00000000..076f00a0 --- /dev/null +++ b/lua/config/lsp/server/relay_lsp.lua @@ -0,0 +1,11 @@ +local util = require("config.lsp.util") + +local M = {} + +function M.setup(opts) + opts.root_dir = util.get_graphql_root_pattern() + + require("lspconfig").relay_lsp.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/taplo.lua b/lua/config/lsp/server/taplo.lua new file mode 100644 index 00000000..dfb0e661 --- /dev/null +++ b/lua/config/lsp/server/taplo.lua @@ -0,0 +1,15 @@ +local lspconfig = require("lspconfig") + +local settings = { evenBetterToml = { schema = { repositoryEnabled = true } } } + +local M = {} + +function M.setup(opts) + opts.root_dir = lspconfig.util.root_pattern("*.toml") + + opts.settings = settings + + lspconfig.taplo.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/vimls.lua b/lua/config/lsp/server/vimls.lua new file mode 100644 index 00000000..6b169a4a --- /dev/null +++ b/lua/config/lsp/server/vimls.lua @@ -0,0 +1,10 @@ +local util = require("config.lsp.util") +local M = {} + +function M.setup(opts) + opts.init_options = { isNeovim = util.get_root_pattern({ "init.vim", "init.lua" }) } + + require("lspconfig").vimls.setup(opts) +end + +return M diff --git a/lua/config/lsp/server/yamlls.lua b/lua/config/lsp/server/yamlls.lua new file mode 100644 index 00000000..3b52dac4 --- /dev/null +++ b/lua/config/lsp/server/yamlls.lua @@ -0,0 +1,15 @@ +local settings = { + yaml = { + schemas = require("schemastore").yaml.schemas(), + }, +} + +local M = {} + +function M.setup(opts) + opts.settings = settings + + require("lspconfig").yamlls.setup(opts) +end + +return M