@@ -50,12 +50,12 @@ function! s:on_complete_done() abort
50
50
51
51
let s: context [' done_line' ] = getline (' .' )
52
52
let s: context [' done_line_nr' ] = line (' .' )
53
- let s: context [' completed_item' ] = copy (v: completed_item )
54
53
let s: context [' done_position' ] = lsp#utils#position#vim_to_lsp (' %' , getpos (' .' )[1 : 2 ])
55
54
let s: context [' complete_position' ] = l: managed_user_data [' complete_position' ]
56
55
let s: context [' server_name' ] = l: managed_user_data [' server_name' ]
57
56
let s: context [' completion_item' ] = l: managed_user_data [' completion_item' ]
58
57
let s: context [' start_character' ] = l: managed_user_data [' start_character' ]
58
+ let s: context [' complete_word' ] = l: managed_user_data [' complete_word' ]
59
59
call feedkeys (printf (" \<C-r> =<SNR>%d_on_complete_done_after()\<CR> " , s: SID ()), ' n' )
60
60
endfunction
61
61
@@ -73,12 +73,12 @@ function! s:on_complete_done_after() abort
73
73
74
74
let l: done_line = s: context [' done_line' ]
75
75
let l: done_line_nr = s: context [' done_line_nr' ]
76
- let l: completed_item = s: context [' completed_item' ]
77
76
let l: done_position = s: context [' done_position' ]
78
77
let l: complete_position = s: context [' complete_position' ]
79
78
let l: server_name = s: context [' server_name' ]
80
79
let l: completion_item = s: context [' completion_item' ]
81
80
let l: start_character = s: context [' start_character' ]
81
+ let l: complete_word = s: context [' complete_word' ]
82
82
83
83
" check the commit characters are <BS> or <C-w>.
84
84
if line (' .' ) == # l: done_line_nr && strlen (getline (' .' )) < strlen (l: done_line )
@@ -95,7 +95,7 @@ function! s:on_complete_done_after() abort
95
95
let l: completion_item = s: resolve_completion_item (l: completion_item , l: server_name )
96
96
97
97
" clear completed string if need.
98
- let l: is_expandable = s: is_expandable (l: done_line , l: done_position , l: complete_position , l: completion_item , l: completed_item )
98
+ let l: is_expandable = s: is_expandable (l: done_line , l: done_position , l: complete_position , l: completion_item , l: complete_word )
99
99
if l: is_expandable
100
100
call s: clear_auto_inserted_text (l: done_line , l: done_position , l: complete_position )
101
101
endif
@@ -162,7 +162,7 @@ endfunction
162
162
"
163
163
" is_expandable
164
164
"
165
- function ! s: is_expandable (done_line, done_position, complete_position, completion_item, completed_item ) abort
165
+ function ! s: is_expandable (done_line, done_position, complete_position, completion_item, complete_word ) abort
166
166
if get (a: completion_item , ' textEdit' , v: null ) isnot # v: null
167
167
let l: range = lsp#utils#text_edit#get_range (a: completion_item [' textEdit' ])
168
168
if l: range [' start' ][' line' ] != l: range [' end' ][' line' ]
@@ -177,7 +177,7 @@ function! s:is_expandable(done_line, done_position, complete_position, completio
177
177
let l: text_edit_after = strcharpart (l: completed_line , l: range [' end' ][' character' ], strchars (l: completed_line ) - l: range [' end' ][' character' ])
178
178
return a: done_line !=# l: text_edit_before . s: trim_unmeaning_tabstop (a: completion_item [' textEdit' ][' newText' ]) . l: text_edit_after
179
179
endif
180
- return s: get_completion_text (a: completion_item ) !=# s: trim_unmeaning_tabstop (a: completed_item [ ' word ' ] )
180
+ return s: get_completion_text (a: completion_item ) !=# s: trim_unmeaning_tabstop (a: complete_word )
181
181
endfunction
182
182
183
183
"
@@ -246,7 +246,7 @@ endfunction
246
246
function ! s: clear_auto_inserted_text (done_line, done_position, complete_position) abort
247
247
let l: before = strcharpart (a: done_line , 0 , a: complete_position [' character' ])
248
248
let l: after = strcharpart (a: done_line , a: done_position [' character' ], (strchars (a: done_line ) - a: done_position [' character' ]))
249
- call setline (' . ' , l: before . l: after )
249
+ call setline (a: done_position [ ' line ' ] + 1 , l: before . l: after )
250
250
call cursor ([a: done_position [' line' ] + 1 , strlen (l: before ) + 1 ])
251
251
endfunction
252
252
0 commit comments