Skip to content

Commit 4ee0799

Browse files
committed
Fix textEdit
1 parent 90d568d commit 4ee0799

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

autoload/lsp/utils/text_edit.vim

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,12 @@ function! s:generate_sub_cmd_insert(text_edit) abort
165165

166166
let l:sub_cmd = s:preprocess_cmd(a:text_edit['range'])
167167
let l:sub_cmd .= s:generate_move_start_cmd(l:start_line, l:start_character)
168-
let l:sub_cmd .= "i\<C-R>=l:merged_text_edit['merged']['newText']\<CR>"
168+
169+
if l:start_character >= strchars(getline(l:start_line))
170+
let l:sub_cmd .= "\"=l:merged_text_edit['merged']['newText']\<CR>p"
171+
else
172+
let l:sub_cmd .= "\"=l:merged_text_edit['merged']['newText'].'?'\<CR>gPh\"_x"
173+
endif
169174

170175
return l:sub_cmd
171176
endfunction
@@ -193,10 +198,10 @@ function! s:generate_sub_cmd_replace(text_edit) abort
193198

194199
if len(l:new_text) == 0
195200
let l:sub_cmd .= 'x'
196-
elseif l:end_character == 0
197-
let l:sub_cmd .= "c\<C-R>=substitute(l:merged_text_edit['merged']['newText'], '\\n$', '', '')\<CR>"
201+
elseif l:start_character == 0 && l:end_character == 0
202+
let l:sub_cmd .= "\"=l:merged_text_edit['merged']['newText']\<CR>p"
198203
else
199-
let l:sub_cmd .= "c\<C-R>=l:merged_text_edit['merged']['newText']\<CR>"
204+
let l:sub_cmd .= "\"=l:merged_text_edit['merged']['newText'].'?'\<CR>gph\"_x"
200205
endif
201206

202207
return l:sub_cmd

0 commit comments

Comments
 (0)