Skip to content

Commit eb542a3

Browse files
authored
Correct overlapped text even if using filterText (#1341)
1 parent 7717553 commit eb542a3

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

autoload/lsp/omni.vim

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -316,21 +316,22 @@ function! lsp#omni#get_vim_completion_items(options) abort
316316
if has_key(l:completion_item, 'filterText') && !empty(l:completion_item['filterText']) && matchstr(l:text_edit_new_text, '^' . l:refresh_pattern) ==# ''
317317
" Use filterText as word.
318318
let l:vim_complete_item['word'] = l:completion_item['filterText']
319-
let l:start_characters += [l:default_start_character]
320319
else
321320
" Use textEdit.newText as word.
322-
let l:item_start_character = l:range['start']['character']
323321
let l:vim_complete_item['word'] = l:text_edit_new_text
324-
if l:item_start_character < l:default_start_character
325-
" Add already typed word. The typescript-language-server returns `[Symbol]` item for the line of `Hoo.|`. So we should add `.` (`.[Symbol]`) .
326-
let l:overlap_text = strcharpart(l:current_line, l:item_start_character, l:default_start_character - l:item_start_character)
327-
if stridx(l:vim_complete_item['word'], l:overlap_text) != 0
328-
let l:vim_complete_item['word'] = l:overlap_text . l:vim_complete_item['word']
329-
endif
322+
endif
323+
324+
" Fix overlapped text if needed.
325+
let l:item_start_character = l:range['start']['character']
326+
if l:item_start_character < l:default_start_character
327+
" Add already typed word. The typescript-language-server returns `[Symbol]` item for the line of `Hoo.|`. So we should add `.` (`.[Symbol]`) .
328+
let l:overlap_text = strcharpart(l:current_line, l:item_start_character, l:default_start_character - l:item_start_character)
329+
if stridx(l:vim_complete_item['word'], l:overlap_text) != 0
330+
let l:vim_complete_item['word'] = l:overlap_text . l:vim_complete_item['word']
330331
endif
331-
let l:start_character = min([l:item_start_character, l:start_character])
332-
let l:start_characters += [l:item_start_character]
333332
endif
333+
let l:start_character = min([l:item_start_character, l:start_character])
334+
let l:start_characters += [l:item_start_character]
334335
elseif has_key(l:completion_item, 'insertText') && !empty(l:completion_item['insertText'])
335336
let l:vim_complete_item['word'] = l:completion_item['insertText']
336337
let l:start_characters += [l:default_start_character]

0 commit comments

Comments
 (0)