From 0578a4652679490c4bbf780b9dae5b895050143d Mon Sep 17 00:00:00 2001 From: bivashy Date: Sun, 8 Jun 2025 17:42:03 +0500 Subject: [PATCH] Add Vue.js support --- lazy-lock.json | 8 ++++---- lua/configs/lspconfig.lua | 42 ++++++++++++++++++++++++++++++++++++-- lua/configs/treesitter.lua | 2 +- lua/plugins/init.lua | 12 +++++++++++ 4 files changed, 57 insertions(+), 7 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 3ca2df2..b01bc14 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,5 +1,5 @@ { - "LuaSnip": { "branch": "master", "commit": "776a29c3e1ac61029ac3f57ac6b5937df2340162" }, + "LuaSnip": { "branch": "master", "commit": "5271933f7cea9f6b1c7de953379469010ed4553a" }, "NvChad": { "branch": "v2.5", "commit": "478299d3455e22e375df468bba7cf9e2cadcc189" }, "base46": { "branch": "v3.0", "commit": "2dbb72f4ae6f78cb3adc60c2c3b69524f97c9cd6" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, @@ -7,7 +7,7 @@ "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "conform.nvim": { "branch": "master", "commit": "b529dd4897c85c3188cc787084089a9d55843093" }, + "conform.nvim": { "branch": "master", "commit": "0e93e0d12d2f7ebdea9e3e444dfaff0050cefbe6" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "gitsigns.nvim": { "branch": "main", "commit": "d0f90ef51d4be86b824b012ec52ed715b5622e51" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, @@ -19,13 +19,13 @@ "nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" }, "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-dap": { "branch": "master", "commit": "e771e86a69a8ba60cffb16609773522eafb9f41a" }, + "nvim-dap": { "branch": "master", "commit": "ea82027c3447dc1a022be9a9884de276c05cd33a" }, "nvim-java": { "branch": "main", "commit": "7c2e81caa301b0d1bc7992b88981af883b3b5d6b" }, "nvim-java-core": { "branch": "main", "commit": "401bf7683012a25929a359deec418f36beb876e2" }, "nvim-java-dap": { "branch": "main", "commit": "55f239532f7a3789d21ea68d1e795abc77484974" }, "nvim-java-refactor": { "branch": "main", "commit": "b51a57d862338999059e1d1717df3bc80a3a15c0" }, "nvim-java-test": { "branch": "main", "commit": "7f0f40e9c5b7eab5096d8bec6ac04251c6e81468" }, - "nvim-lspconfig": { "branch": "master", "commit": "8adb3b5938f6074a1bcc36d3c3916f497d2e8ec4" }, + "nvim-lspconfig": { "branch": "master", "commit": "a182334ba933e58240c2c45e6ae2d9c7ae313e00" }, "nvim-tree.lua": { "branch": "master", "commit": "1c733e8c1957dc67f47580fe9c458a13b5612d5b" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, diff --git a/lua/configs/lspconfig.lua b/lua/configs/lspconfig.lua index 6ddbe3b..ab80de7 100644 --- a/lua/configs/lspconfig.lua +++ b/lua/configs/lspconfig.lua @@ -1,4 +1,42 @@ require("nvchad.configs.lspconfig").defaults() -local servers = { "html", "cssls", "jdtls", "clangd", "clangd", "gopls" } -vim.lsp.enable(servers) +local lspconfig = require "lspconfig" +local nvlsp = require "nvchad.configs.lspconfig" + +local servers = { "html", "cssls", "jdtls", "clangd", "gopls", "eslint" } + +for _, lsp in ipairs(servers) do + lspconfig[lsp].setup { + on_attach = nvlsp.on_attach, + on_init = nvlsp.on_init, + capabilities = nvlsp.capabilities, + } +end + +lspconfig.ts_ls.setup { + on_attach = nvlsp.on_attach, + on_init = nvlsp.on_init, + capabilities = nvlsp.capabilities, + init_options = { + plugins = { + { + name = "@vue/typescript-plugin", + location = "", + languages = { "vue" }, + }, + }, + }, + filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" }, +} + +lspconfig.volar.setup { + on_attach = nvlsp.on_attach, + on_init = nvlsp.on_init, + capabilities = nvlsp.capabilities, + init_options = { + vue = { + hybridMode = true, + }, + }, + filetypes = { "vue" }, +} diff --git a/lua/configs/treesitter.lua b/lua/configs/treesitter.lua index d1f0b36..329e782 100644 --- a/lua/configs/treesitter.lua +++ b/lua/configs/treesitter.lua @@ -1,5 +1,5 @@ local options = { - ensure_installed = { "lua", "luadoc", "printf", "vim", "vimdoc", "java", "go" }, + ensure_installed = { "lua", "luadoc", "printf", "vim", "vimdoc", "java", "go", "vue", "typescript", "javascript" }, highlight = { enable = true, diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index b88f639..e164398 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -37,6 +37,18 @@ return { }, }, + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + -- your existing tools + "vue-language-server", + "typescript-language-server", + "eslint-lsp", + }, + }, + }, + { require "plugins.java.init", },