-
Notifications
You must be signed in to change notification settings - Fork 306
Servers TypeScript
Ryan Olson edited this page Jan 7, 2019
·
16 revisions
The typescript-language-server is capable of giving intelligent LSP functionality for both TypeScript and JavaScript.
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:
- Install vim-lsp-typescript (which automatically registers the language server for TypeScript and JavaScript) OR
- 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'
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
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