Skip to content
Ryan Olson edited this page May 10, 2018 · 16 revisions

Installing server

Note: tsserver is searched in workspace node_modules followed by global install. Use -g to install globally.

npm install -g typescript typescript-language-server

Using vim-lsp-typescript plugin

You can either register the typescript-language-server in your .vimrc yourself (as described below) or you can simply install the vim-lsp-typescript plugin, which will handle all of that for you.

Registering in .vimrc

if executable('typescript-language-server')
    au User lsp_setup call lsp#register_server({
        \ 'name': 'typescript-language-server',
        \ 'cmd': {server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']},
        \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'tsconfig.json'))},
        \ 'whitelist': ['typescript'],
        \ })
endif

Registering for JavaScript

JavaScript is TypeScript, so the language server would provide you with some utility for JavaScript projects as well. Since the .tsconfig.json file is missing you can set it up the following way:

if executable('typescript-language-server')
    au User lsp_setup call lsp#register_server({
      \ 'name': 'typescript-language-server',
      \ 'cmd': { server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']},
      \ 'root_uri': { server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_directory(lsp#utils#get_buffer_path(), '.git/..'))},
      \ 'whitelist': ['typescript', 'javascript', 'javascript.jsx']
      \ })
endif