diff options
| author | William Boman <william@redwill.se> | 2021-04-04 18:37:59 +0200 |
|---|---|---|
| committer | William Boman <william@redwill.se> | 2021-04-04 18:37:59 +0200 |
| commit | 4fbf2d0b0595f6de4e1debde67bbeeec280b3e89 (patch) | |
| tree | 4a7ae6493876a458024b65005d222182cb1b9f94 /lua/nvim-lsp-installer/installers/tsserver.lua | |
| parent | update README and change get_installed_servers() return value (#1) (diff) | |
| download | mason-4fbf2d0b0595f6de4e1debde67bbeeec280b3e89.tar mason-4fbf2d0b0595f6de4e1debde67bbeeec280b3e89.tar.gz mason-4fbf2d0b0595f6de4e1debde67bbeeec280b3e89.tar.bz2 mason-4fbf2d0b0595f6de4e1debde67bbeeec280b3e89.tar.lz mason-4fbf2d0b0595f6de4e1debde67bbeeec280b3e89.tar.xz mason-4fbf2d0b0595f6de4e1debde67bbeeec280b3e89.tar.zst mason-4fbf2d0b0595f6de4e1debde67bbeeec280b3e89.zip | |
use same lsp server names as lspconfig
Diffstat (limited to 'lua/nvim-lsp-installer/installers/tsserver.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/installers/tsserver.lua | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/installers/tsserver.lua b/lua/nvim-lsp-installer/installers/tsserver.lua new file mode 100644 index 00000000..eef82503 --- /dev/null +++ b/lua/nvim-lsp-installer/installers/tsserver.lua @@ -0,0 +1,50 @@ +local installer = require('nvim-lsp-installer.installer') +local capabilities = require('nvim-lsp-installer.capabilities') + +local root_dir = installer.get_server_root_path('tsserver') + +return installer.create_lsp_config_installer { + name = "tsserver", + root_dir = root_dir, + install_cmd = [[npm install typescript-language-server]], + default_options = { + cmd = { root_dir .. '/node_modules/.bin/typescript-language-server', '--stdio' }, + capabilities = capabilities.create(), + }, + extras = { + rename_file = function(old, new) + local old_uri = vim.uri_from_fname(old) + local new_uri = vim.uri_from_fname(new) + + -- TODO: send only to tsserver + for _, client in pairs(vim.lsp.get_active_clients()) do + client.request( + 'workspace/executeCommand', + { + command = '_typescript.applyRenameFile', + arguments = { + { + sourceUri = old_uri, + targetUri = new_uri, + }, + }, + } + ) + end + end, + organize_imports = function(bufname) + bufname = bufname or vim.api.nvim_buf_get_name(0) + + -- TODO: send only to tsserver + for _, client in pairs(vim.lsp.get_active_clients()) do + client.request( + 'workspace/executeCommand', + { + command = '_typescript.organizeImports', + arguments = {bufname}, + } + ) + end + end, + } +} |
