aboutsummaryrefslogtreecommitdiffstats
path: root/lsp/ts_ls.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lsp/ts_ls.lua')
-rw-r--r--lsp/ts_ls.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/lsp/ts_ls.lua b/lsp/ts_ls.lua
index 40a1a6bb..0d6127cd 100644
--- a/lsp/ts_ls.lua
+++ b/lsp/ts_ls.lua
@@ -78,4 +78,19 @@ return {
'typescript.tsx',
},
root_markers = { 'tsconfig.json', 'jsconfig.json', 'package.json', '.git' },
+ handlers = {
+ -- handle rename request for certain code actions like extracting functions / types
+ ['_typescript.rename'] = function(_, result, ctx)
+ local client = vim.lsp.get_client_by_id(ctx.client_id)
+ vim.lsp.util.show_document({
+ uri = result.textDocument.uri,
+ range = {
+ start = result.position,
+ ['end'] = result.position,
+ },
+ }, client.offset_encoding)
+ vim.lsp.buf.rename()
+ return vim.NIL
+ end,
+ },
}