aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/installers/tsserver.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-04-04 18:37:59 +0200
committerWilliam Boman <william@redwill.se>2021-04-04 18:37:59 +0200
commit4fbf2d0b0595f6de4e1debde67bbeeec280b3e89 (patch)
tree4a7ae6493876a458024b65005d222182cb1b9f94 /lua/nvim-lsp-installer/installers/tsserver.lua
parentupdate README and change get_installed_servers() return value (#1) (diff)
downloadmason-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.lua50
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,
+ }
+}