@@ -316,21 +316,22 @@ function! lsp#omni#get_vim_completion_items(options) abort
316
316
if has_key (l: completion_item , ' filterText' ) && ! empty (l: completion_item [' filterText' ]) && matchstr (l: text_edit_new_text , ' ^' . l: refresh_pattern ) == # ' '
317
317
" Use filterText as word.
318
318
let l: vim_complete_item [' word' ] = l: completion_item [' filterText' ]
319
- let l: start_characters += [l: default_start_character ]
320
319
else
321
320
" Use textEdit.newText as word.
322
- let l: item_start_character = l: range [' start' ][' character' ]
323
321
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' ]
330
331
endif
331
- let l: start_character = min ([l: item_start_character , l: start_character ])
332
- let l: start_characters += [l: item_start_character ]
333
332
endif
333
+ let l: start_character = min ([l: item_start_character , l: start_character ])
334
+ let l: start_characters += [l: item_start_character ]
334
335
elseif has_key (l: completion_item , ' insertText' ) && ! empty (l: completion_item [' insertText' ])
335
336
let l: vim_complete_item [' word' ] = l: completion_item [' insertText' ]
336
337
let l: start_characters += [l: default_start_character ]
0 commit comments