Vue language tools now only supports vtsls

This commit is contained in:
tsukkee
2025-07-02 22:16:40 +09:00
committed by mattn
parent d43149ca4d
commit 4bcc4cfff1
3 changed files with 8 additions and 47 deletions

View File

@@ -2169,18 +2169,6 @@
"name": "leafOfTree/vim-vue-plugin"
}
},
{
"command": "typescript-language-server",
"url": "https://github.com/typescript-language-server/typescript-language-server",
"description": "TypeScript & JavaScript Language Server",
"requires": [
"npm"
],
"root_uri_patterns": [
"package.json",
"tsconfig.json"
]
},
{
"command": "vtsls",
"url": "https://github.com/yioneko/vtsls",

View File

@@ -1,37 +1,13 @@
function! Vim_lsp_settings_typescript_language_server_get_blocklist() abort
if empty(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'node_modules/'))
return ['typescript', 'javascript', 'typescriptreact', 'javascriptreact', 'vue']
return ['typescript', 'javascript', 'typescriptreact', 'javascriptreact']
endif
if !empty(lsp#utils#find_nearest_parent_file(lsp#utils#get_buffer_path(), 'deno.json'))
return lsp_settings#utils#warning('server "typescript-language-server" is disabled since "deno.json" is found', ['typescript', 'javascript', 'typescriptreact', 'javascriptreact', 'vue'])
return lsp_settings#utils#warning('server "typescript-language-server" is disabled since "deno.json" is found', ['typescript', 'javascript', 'typescriptreact', 'javascriptreact'])
endif
return []
endfunction
function! s:find_vue_plugin() abort
let plugin_location = lsp_settings#servers_dir() .. '/volar-server/node_modules/@vue/typescript-plugin'
if !isdirectory(plugin_location)
return v:null
endif
return {
\ 'name': '@vue/typescript-plugin',
\ 'location': plugin_location,
\ 'languages': ['vue'],
\ }
endfunction
function! Vim_lsp_settings_typescript_language_server_setup_plugins() abort
let plugins = []
let vue_plugin = s:find_vue_plugin()
if !empty(vue_plugin)
call add(plugins, vue_plugin)
endif
return plugins
endfunction
augroup vim_lsp_settings_typescript_language_server
au!
LspRegisterServer {
@@ -48,9 +24,8 @@ augroup vim_lsp_settings_typescript_language_server
\ 'includeInlayEnumMemberValueHints': v:true,
\ 'includeInlayFunctionLikeReturnTypeHints': v:true
\ },
\ 'plugins': Vim_lsp_settings_typescript_language_server_setup_plugins(),
\ }),
\ 'allowlist': lsp_settings#get('typescript-language-server', 'allowlist', ['javascript', 'javascriptreact', 'typescript', 'typescriptreact', 'typescript.tsx', 'vue']),
\ 'allowlist': lsp_settings#get('typescript-language-server', 'allowlist', ['javascript', 'javascriptreact', 'typescript', 'typescriptreact', 'typescript.tsx']),
\ 'blocklist': lsp_settings#get('typescript-language-server', 'blocklist', Vim_lsp_settings_typescript_language_server_get_blocklist()),
\ 'config': lsp_settings#get('typescript-language-server', 'config', lsp_settings#server_config('typescript-language-server')),
\ 'workspace_config': lsp_settings#get('typescript-language-server', 'workspace_config', {}),

View File

@@ -55,18 +55,16 @@ function! s:on_lsp_buffer_enabled() abort
" cf. https://github.com/vuejs/language-tools/wiki/Neovim
call lsp#register_notifications('volar-server', function('s:on_notification'))
" check typescript-language-server
let ts_server_dir = lsp_settings#servers_dir() .. '/typescript-language-server'
" check vtsls installation
let vtsls_server_dir = lsp_settings#servers_dir() .. '/vtsls'
if !isdirectory(ts_server_dir) && !isdirectory(vtsls_server_dir)
call lsp_settings#utils#warning('Please install typescript-language-server or vtsls to enable Vue support')
if !isdirectory(vtsls_server_dir)
call lsp_settings#utils#warning('Please install vtsls to enable Vue support')
endif
if !exists('g:lsp_settings_filetype_vue') ||
\ index(g:lsp_settings_filetype_vue, 'volar-server') == -1 ||
\ (index(g:lsp_settings_filetype_vue, 'typescript-language-server') == -1 &&
\ index(g:lsp_settings_filetype_vue, 'vtsls') == -1)
call lsp_settings#utils#warning('''volar-server'' and one of ''typescript-language-server'' and ''vtsls'' should be included in g:lsp_settings_filetype_vue to enable Vue support')
\ index(g:lsp_settings_filetype_vue, 'vtsls') == -1
call lsp_settings#utils#warning('Add both ''volar-server'' and ''vtsls'' to g:lsp_settings_filetype_vue to enable Vue support')
endif
endfunction