51 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| return {
 | |
|   {
 | |
|     "nvim-treesitter/nvim-treesitter",
 | |
|     opts = function(_, opts)
 | |
|       if type(opts.ensure_installed) == "table" then
 | |
|         vim.list_extend(opts.ensure_installed, { "vue" })
 | |
|       end
 | |
|     end,
 | |
|   },
 | |
|   {
 | |
|     "neovim/nvim-lspconfig",
 | |
|     opts = {
 | |
|       servers = {
 | |
|         volar = {},
 | |
|         tsserver = {},
 | |
|       },
 | |
|       setup = {
 | |
|         tsserver = function(_, opts)
 | |
|           local mason_registry = require("mason-registry")
 | |
|           local vue_language_server_path = mason_registry.get_package("vue-language-server"):get_install_path()
 | |
|             .. "/node_modules/@vue/language-server"
 | |
| 
 | |
|           opts.init_options = {
 | |
|             plugins = {
 | |
|               {
 | |
|                 name = "@vue/typescript-plugin",
 | |
|                 location = vue_language_server_path,
 | |
|                 languages = { "vue" },
 | |
|               },
 | |
|             },
 | |
|           }
 | |
|           opts.filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" }
 | |
|         end,
 | |
|       },
 | |
|     },
 | |
|   },
 | |
|   {
 | |
|     "williamboman/mason.nvim",
 | |
|     opts = function(_, opts)
 | |
|       opts.ensure_installed = opts.ensure_installed or {}
 | |
|       vim.list_extend(opts.ensure_installed, { "vue-language-server" })
 | |
|     end,
 | |
|   },
 | |
|   {
 | |
|     "luckasRanarison/nvim-devdocs",
 | |
|     optional = true,
 | |
|     ensure_installed = {
 | |
|       "vue-3",
 | |
|     },
 | |
|   },
 | |
| }
 | 
