From 98e44d9d83ab3e73851ebed8dfcee24854f0ffcf Mon Sep 17 00:00:00 2001 From: Andreas Louv Date: Thu, 9 Mar 2023 22:08:08 +0100 Subject: [PATCH] Don't use textEdit.newText, as textEdit.range isn't respected --- autoload/lsp/completion.vim | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/autoload/lsp/completion.vim b/autoload/lsp/completion.vim index 03c29ab..1e55bba 100644 --- a/autoload/lsp/completion.vim +++ b/autoload/lsp/completion.vim @@ -88,9 +88,9 @@ export def CompletionReply(lspserver: dict, cItems: any) var completeItems: list> = [] for item in items var d: dict = {} - if item->has_key('textEdit') && item.textEdit->has_key('newText') - d.word = item.textEdit.newText - elseif item->has_key('insertText') + # TODO: Add proper support for item.textEdit.newText and item.textEdit.range + # Keep in mind that item.textEdit.range can start be way before the typed keyword. + if item->has_key('insertText') d.word = item.insertText else d.word = item.label @@ -149,19 +149,6 @@ export def CompletionReply(lspserver: dict, cItems: any) var start_col: number = 0 - # FIXME: The following doesn't work with typescript as one of the - # completion item has a start column that is before the special character. - # For example, when completing the methods for "str.", the dot is removed. - # - # # Find the start column for the completion. If any of the entries - # # returned by the LSP server has a starting position, then use that. - # for item in items - # if item->has_key('textEdit') - # start_col = item.textEdit.range.start.character + 1 - # break - # endif - # endfor - # LSP server didn't return a starting position for completion, search # backwards from the current cursor position for a non-keyword character. if start_col == 0 -- 2.48.1