Skip to content
Josh edited this page Dec 29, 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

Once the typescript-language-server is installed, you can either:

  1. Install vim-lsp-typescript OR
  2. Register the typescript-language-server yourself in your .vimrc

Installing vim-lsp-typescript

If you'd like the vim-lsp-typescript plugin to register the typescript-language-server for you, install the vim-lsp-typescript plugin:

" After vim-lsp, etc
Plug 'ryanolsonx/vim-lsp-typescript'

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', 'typescript.tsx'],
        \ })
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