diff --git a/.config/nvim/lua/user/lsp/handlers.lua b/.config/nvim/lua/user/lsp/handlers.lua index ee0fca2..53cac8c 100644 --- a/.config/nvim/lua/user/lsp/handlers.lua +++ b/.config/nvim/lua/user/lsp/handlers.lua @@ -73,6 +73,7 @@ M.on_attach = function(client, bufnr) end local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities.textDocument.completion.completionItem.snippetSupport = true local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") diff --git a/.config/nvim/lua/user/lsp/init.lua b/.config/nvim/lua/user/lsp/init.lua index 9610eff..32bb1c7 100644 --- a/.config/nvim/lua/user/lsp/init.lua +++ b/.config/nvim/lua/user/lsp/init.lua @@ -1,9 +1,26 @@ -local status_ok, _ = pcall(require, "lspconfig") +local status_ok, lspconfig = pcall(require, "lspconfig") if not status_ok then return end -require("user.lsp.installer") -require("user.lsp.nlsp") -require("user.lsp.nullls") +local schemastore_status_ok, schemastore = pcall(require, "schemastore") +if not schemastore_status_ok then + return +end + +lspconfig.jsonls.setup({ + on_attach = require("user.lsp.handlers").on_attach, + capabilities = require("user.lsp.handlers").capabilities, + settings = { + json = { + schemas = require("schemastore").json.schemas(), + validate = { enable = true }, + }, + }, +}) + require("user.lsp.handlers").setup() +require("user.lsp.installer") +require("user.lsp.nullls") +require("user.lsp.nlsp") +require("user.lsp.signature") diff --git a/.config/nvim/lua/user/lsp/nlsp.lua b/.config/nvim/lua/user/lsp/nlsp.lua index 19a49ac..78aa50b 100644 --- a/.config/nvim/lua/user/lsp/nlsp.lua +++ b/.config/nvim/lua/user/lsp/nlsp.lua @@ -5,6 +5,7 @@ end nlspsettings.setup({ config_home = vim.fn.stdpath("config") .. "/lua/user/lsp/settings", + local_settings_dir = ".nlsp-settings", local_settings_root_markers = { ".git" }, append_default_schemas = true, loader = "json", diff --git a/.config/nvim/lua/user/lsp/settings/volar.json b/.config/nvim/lua/user/lsp/settings/volar.json index f8afa7a..dc08669 100644 --- a/.config/nvim/lua/user/lsp/settings/volar.json +++ b/.config/nvim/lua/user/lsp/settings/volar.json @@ -1,5 +1,3 @@ { - "volar.preview.script.nuxi": "node {NUXI_BIN} dev --port {PORT}", - "volar.takeOverMode.enabled": true, - "volar.codeLens.pugTools": true + "volar.takeOverMode.enabled": true } diff --git a/.config/nvim/lua/user/lsp/signature.lua b/.config/nvim/lua/user/lsp/signature.lua new file mode 100644 index 0000000..fc01c76 --- /dev/null +++ b/.config/nvim/lua/user/lsp/signature.lua @@ -0,0 +1,11 @@ +local status_ok, signature = pcall(require, "lsp_signature") +if not status_ok then + return +end + +local cfg = { + floating_window = false, -- show hint in a floating window, set to false for virtual text only mode +} + +signature.setup(cfg) -- no need to specify bufnr if you don't use toggle_key +signature.on_attach(cfg) -- no need to specify bufnr if you don't use toggle_key diff --git a/.config/nvim/lua/user/plugins.lua b/.config/nvim/lua/user/plugins.lua index c98c8e1..7bf878a 100644 --- a/.config/nvim/lua/user/plugins.lua +++ b/.config/nvim/lua/user/plugins.lua @@ -66,6 +66,10 @@ return packer.startup(function(use) use("williamboman/nvim-lsp-installer") use("tamago324/nlsp-settings.nvim") use("jose-elias-alvarez/null-ls.nvim") + use("b0o/SchemaStore.nvim") + use("ray-x/lsp_signature.nvim") + + -- Trouble use("folke/trouble.nvim") -- Telescope diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua index f185f90..a22e66b 100644 --- a/.config/nvim/plugin/packer_compiled.lua +++ b/.config/nvim/plugin/packer_compiled.lua @@ -79,6 +79,11 @@ _G.packer_plugins = { path = "/home/relms/.local/share/nvim/site/pack/packer/start/LuaSnip", url = "https://github.com/L3MON4D3/LuaSnip" }, + ["SchemaStore.nvim"] = { + loaded = true, + path = "/home/relms/.local/share/nvim/site/pack/packer/start/SchemaStore.nvim", + url = "https://github.com/b0o/SchemaStore.nvim" + }, ["alpha-nvim"] = { loaded = true, path = "/home/relms/.local/share/nvim/site/pack/packer/start/alpha-nvim", @@ -149,6 +154,11 @@ _G.packer_plugins = { path = "/home/relms/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim", url = "https://github.com/lukas-reineke/indent-blankline.nvim" }, + ["lsp_signature.nvim"] = { + loaded = true, + path = "/home/relms/.local/share/nvim/site/pack/packer/start/lsp_signature.nvim", + url = "https://github.com/ray-x/lsp_signature.nvim" + }, ["lualine.nvim"] = { loaded = true, path = "/home/relms/.local/share/nvim/site/pack/packer/start/lualine.nvim",