diff --git a/lua/user/lsp/handlers.lua b/lua/user/lsp/handlers.lua index 18450a1..a9b440c 100644 --- a/lua/user/lsp/handlers.lua +++ b/lua/user/lsp/handlers.lua @@ -71,13 +71,14 @@ local function lsp_keymaps(bufnr) vim.api.nvim_buf_set_keymap(bufnr, "n", "gca", ":Lspsaga code_action", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", ":Lspsaga diagnostic_jump_next", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", ":Lspsaga diagnostic_jump_prev", opts) - vim.cmd([[ command! Format execute 'lua vim.lsp.buf.formatting()' ]]) end M.on_attach = function(client, bufnr) lsp_keymaps(bufnr) lsp_highlight_document(client) attach_navic(client, bufnr) + + vim.cmd([[autocmd BufWritePre * lua vim.lsp.buf.format()]]) end -- Define Capabilities @@ -85,7 +86,7 @@ local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true capabilities.textDocument.foldingRange = { dynamicRegistration = false, - lineFoldingOnly = true + lineFoldingOnly = true, } local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") diff --git a/lua/user/lsp/init.lua b/lua/user/lsp/init.lua index f3ad549..882a13f 100644 --- a/lua/user/lsp/init.lua +++ b/lua/user/lsp/init.lua @@ -1,4 +1,5 @@ require("user.lsp.handlers").setup() +require("user.lsp.nlspsettings") require("user.lsp.mason") require("user.lsp.nullls") require("user.lsp.signature") diff --git a/lua/user/lsp/mason.lua b/lua/user/lsp/mason.lua index 0dcedfe..a37a7d3 100644 --- a/lua/user/lsp/mason.lua +++ b/lua/user/lsp/mason.lua @@ -15,12 +15,12 @@ lspconfig.util.default_config = vim.tbl_extend("force", lspconfig.util.default_c capabilities = require("user.lsp.handlers").capabilities, }) -require("user.lsp.settings.sumneko_lua") -require("user.lsp.settings.jsonls") -require("user.lsp.settings.tsserver") -require("user.lsp.settings.yamlls") -require("user.lsp.settings.volar") -require("user.lsp.settings.dockerls") -require("user.lsp.settings.rnix") -require("user.lsp.settings.taplo") -require("user.lsp.settings.omnisharp") +require("user.lsp.settings.lua.sumneko_lua") +require("user.lsp.settings.lua.jsonls") +require("user.lsp.settings.lua.tsserver") +require("user.lsp.settings.lua.yamlls") +require("user.lsp.settings.lua.volar") +require("user.lsp.settings.lua.dockerls") +require("user.lsp.settings.lua.rnix") +require("user.lsp.settings.lua.taplo") +require("user.lsp.settings.lua.omnisharp") diff --git a/lua/user/lsp/nlspsettings.lua b/lua/user/lsp/nlspsettings.lua new file mode 100644 index 0000000..4e74f3e --- /dev/null +++ b/lua/user/lsp/nlspsettings.lua @@ -0,0 +1,9 @@ +local nlspsettings = require("nlspsettings") + +nlspsettings.setup({ + config_home = vim.fn.stdpath("config") .. "/lua/user/lsp/settings/json", + local_settings_dir = ".nlsp-settings", + local_settings_root_markers = { ".git" }, + append_default_schemas = true, + loader = "json", +}) diff --git a/lua/user/lsp/nullls.lua b/lua/user/lsp/nullls.lua index b7f496e..5283848 100644 --- a/lua/user/lsp/nullls.lua +++ b/lua/user/lsp/nullls.lua @@ -18,15 +18,6 @@ null_ls.setup({ formatting.markdownlint, diagnostics.yamllint, formatting.rustfmt, + diagnostics.editorconfig_checker, }, - on_attach = function(client) - if client.server_capabilities.documentFormattingProvider then - vim.cmd([[ - augroup LspFormatting - autocmd! * - autocmd BufWritePre lua vim.lsp.buf.format() - augroup END - ]]) - end - end, }) diff --git a/lua/user/lsp/settings/json/sumneko_lua.json b/lua/user/lsp/settings/json/sumneko_lua.json new file mode 100644 index 0000000..68be2cb --- /dev/null +++ b/lua/user/lsp/settings/json/sumneko_lua.json @@ -0,0 +1,3 @@ +{ + "Lua.diagnostics.globals": ["vim"] +} diff --git a/lua/user/lsp/settings/dockerls.lua b/lua/user/lsp/settings/lua/dockerls.lua similarity index 100% rename from lua/user/lsp/settings/dockerls.lua rename to lua/user/lsp/settings/lua/dockerls.lua diff --git a/lua/user/lsp/settings/jsonls.lua b/lua/user/lsp/settings/lua/jsonls.lua similarity index 100% rename from lua/user/lsp/settings/jsonls.lua rename to lua/user/lsp/settings/lua/jsonls.lua diff --git a/lua/user/lsp/settings/lua/omnisharp.lua b/lua/user/lsp/settings/lua/omnisharp.lua new file mode 100644 index 0000000..4231e9e --- /dev/null +++ b/lua/user/lsp/settings/lua/omnisharp.lua @@ -0,0 +1,9 @@ +local status_ok, lspconfig = pcall(require, "lspconfig") +if not status_ok then + return +end + +lspconfig.omnisharp.setup({ + organize_imports_on_format = true, + enable_import_completion = true, +}) diff --git a/lua/user/lsp/settings/rnix.lua b/lua/user/lsp/settings/lua/rnix.lua similarity index 100% rename from lua/user/lsp/settings/rnix.lua rename to lua/user/lsp/settings/lua/rnix.lua diff --git a/lua/user/lsp/settings/lua/sumneko_lua.lua b/lua/user/lsp/settings/lua/sumneko_lua.lua new file mode 100644 index 0000000..a9719ee --- /dev/null +++ b/lua/user/lsp/settings/lua/sumneko_lua.lua @@ -0,0 +1,3 @@ +local lspconfig = require("lspconfig") + +lspconfig.sumneko_lua.setup({}) diff --git a/lua/user/lsp/settings/taplo.lua b/lua/user/lsp/settings/lua/taplo.lua similarity index 100% rename from lua/user/lsp/settings/taplo.lua rename to lua/user/lsp/settings/lua/taplo.lua diff --git a/lua/user/lsp/settings/tsserver.lua b/lua/user/lsp/settings/lua/tsserver.lua similarity index 100% rename from lua/user/lsp/settings/tsserver.lua rename to lua/user/lsp/settings/lua/tsserver.lua diff --git a/lua/user/lsp/settings/omnisharp.lua b/lua/user/lsp/settings/lua/volar.lua similarity index 75% rename from lua/user/lsp/settings/omnisharp.lua rename to lua/user/lsp/settings/lua/volar.lua index 9c6e95d..92a4d61 100644 --- a/lua/user/lsp/settings/omnisharp.lua +++ b/lua/user/lsp/settings/lua/volar.lua @@ -3,4 +3,4 @@ if not status_ok then return end -lspconfig.omnisharp.setup({}) +lspconfig.volar.setup({}) diff --git a/lua/user/lsp/settings/yamlls.lua b/lua/user/lsp/settings/lua/yamlls.lua similarity index 100% rename from lua/user/lsp/settings/yamlls.lua rename to lua/user/lsp/settings/lua/yamlls.lua diff --git a/lua/user/lsp/settings/sumneko_lua.lua b/lua/user/lsp/settings/sumneko_lua.lua deleted file mode 100644 index 67eccf6..0000000 --- a/lua/user/lsp/settings/sumneko_lua.lua +++ /dev/null @@ -1,11 +0,0 @@ -local lspconfig = require("lspconfig") - -lspconfig.sumneko_lua.setup({ - settings = { - Lua = { - diagnostics = { - globals = { "vim" }, - }, - }, - }, -}) diff --git a/lua/user/lsp/settings/volar.lua b/lua/user/lsp/settings/volar.lua deleted file mode 100644 index 2d7707b..0000000 --- a/lua/user/lsp/settings/volar.lua +++ /dev/null @@ -1,8 +0,0 @@ -local status_ok, lspconfig = pcall(require, "lspconfig") -if not status_ok then - return -end - -lspconfig.volar.setup({ - filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue", "json" }, -}) diff --git a/lua/user/plugins.lua b/lua/user/plugins.lua index 8f45902..5031c97 100644 --- a/lua/user/plugins.lua +++ b/lua/user/plugins.lua @@ -90,6 +90,8 @@ return packer.startup(function(use) use("https://git.sr.ht/~whynothugo/lsp_lines.nvim") use("SmiteshP/nvim-navic") use("kevinhwang91/nvim-ufo") + use("tamago324/nlsp-settings.nvim") + use("gpanders/editorconfig.nvim") -- Rust Dev use({