vim-lspを使用してtsxファイルに対してtypescript-language-serverを動かす
環境
方法
前提:vim-lspはインストール済み
wikiの手順と同じだが、whitelistの設定が異なる。
- LSPをインストール
$ npm install -g typescript typescript-language-server
- 下記を.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', 'typescriptreact'], \ }) endif
デフォルトだとファイルタイプtypescriptのみが有効なので
.tsx
ファイルを開いてもLSPが動作しない.tsx
ファイルを開いて:LspStatus
するtypescript-language-server: running
と表示されればOK
vim-lsp-settings
(上記のvimrcを書かなくて済むので)vim-lsp-settingsを使いたかったが現状ではうまく動作しなかった
- ファイルタイプtypescriptreactに対して
:LspInstallServer
はサポートされていない(README.mdの表にない) - しかしtypescript-language-serverを使うことは変わりないので、
.ts
ファイルを開いて:LspInstallServer
してLSPをインストール let g:lsp_settings = {'typescript-language-server':{'whitelist': ['typescript', 'typescriptreact']}}
として上書きしたが、.ts
ファイルを開いた後に.tsx
ファイルを開くと動作する.tsx
ファイルを始めに開くと動作しない
動作することはするけど不完全だったので一応issueを作成してみた(英文難しい...)