diff options
Diffstat (limited to '.config/nvim/lsp/vue_ls.lua')
-rw-r--r-- | .config/nvim/lsp/vue_ls.lua | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/.config/nvim/lsp/vue_ls.lua b/.config/nvim/lsp/vue_ls.lua deleted file mode 100644 index 95e09e2..0000000 --- a/.config/nvim/lsp/vue_ls.lua +++ /dev/null @@ -1,71 +0,0 @@ ----@brief ---- ---- https://github.com/vuejs/language-tools/tree/master/packages/language-server ---- ---- The official language server for Vue ---- ---- It can be installed via npm: ---- ```sh ---- npm install -g @vue/language-server ---- ``` ---- ---- The language server only supports Vue 3 projects by default. ---- For Vue 2 projects, [additional configuration](https://github.com/vuejs/language-tools/blob/master/extensions/vscode/README.md?plain=1#L19) are required. ---- ---- The Vue language server works in "hybrid mode" that exclusively manages the CSS/HTML sections. ---- You need the `vtsls` server with the `@vue/typescript-plugin` plugin to support TypeScript in `.vue` files. ---- See `vtsls` section and https://github.com/vuejs/language-tools/wiki/Neovim for more information. ---- ---- NOTE: Since v3.0.0, the Vue Language Server [no longer supports takeover mode](https://github.com/vuejs/language-tools/pull/5248). - ----@type vim.lsp.Config -return { - cmd = { 'vue-language-server', '--stdio' }, - filetypes = { 'vue' }, - root_markers = { 'package.json' }, - on_init = function(client) - local retries = 0 - - ---@param _ lsp.ResponseError - ---@param result any - ---@param context lsp.HandlerContext - local function typescriptHandler(_, result, context) - local ts_client = vim.lsp.get_clients({ bufnr = context.bufnr, name = 'ts_ls' })[1] - or vim.lsp.get_clients({ bufnr = context.bufnr, name = 'vtsls' })[1] - or vim.lsp.get_clients({ bufnr = context.bufnr, name = 'typescript-tools' })[1] - - if not ts_client then - -- there can sometimes be a short delay until `ts_ls`/`vtsls` are attached so we retry for a few times until it is ready - if retries <= 10 then - retries = retries + 1 - vim.defer_fn(function() - typescriptHandler(_, result, context) - end, 100) - else - vim.notify( - 'Could not find `ts_ls`, `vtsls`, or `typescript-tools` lsp client required by `vue_ls`.', - vim.log.levels.ERROR - ) - end - return - end - - local param = unpack(result) - local id, command, payload = unpack(param) - ts_client:exec_cmd({ - title = 'vue_request_forward', -- You can give title anything as it's used to represent a command in the UI, `:h Client:exec_cmd` - command = 'typescript.tsserverRequest', - arguments = { - command, - payload, - }, - }, { bufnr = context.bufnr }, function(_, r) - local response_data = { { id, r and r.body } } - ---@diagnostic disable-next-line: param-type-mismatch - client:notify('tsserver/response', response_data) - end) - end - - client.handlers['tsserver/request'] = typescriptHandler - end, -} |