Skip to content
Ryan Olson edited this page Jan 11, 2019 · 16 revisions

TypeScript

The typescript-language-server is capable of giving intelligent LSP functionality for both TypeScript and JavaScript. This will show you how to set things up for TypeScript. See (JavaScript)[Servers JavaScript] for details on how to set up the typescript-language-server for JavaScript.

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 (which automatically registers the language server for 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

Here's an example that shows how to manually setup a language server for TypeScript.

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