Skip to content

Commit 43770c3

Browse files
mattnprabirshrestha
authored andcommitted
Format (#209)
* Save/restore cursor position * Cosmetic change * selection should be inclusive Because exclusive doesn't select fisrt character with 1GvG0 * Remove last extra \n * Be graceful * Use winsaveview/winrestoreview
1 parent 018ea32 commit 43770c3

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

autoload/lsp/ui/vim.vim

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ function! s:apply_text_edits(uri, text_edits) abort
472472
" Example:
473473
" Initial text: "abcdef"
474474
" Edits:
475-
" ((0,0), (0, 1), "") - remove first character 'a'
475+
" ((0, 0), (0, 1), "") - remove first character 'a'
476476
" ((0, 4), (0, 5), "") - remove fifth character 'e'
477477
" ((0, 2), (0, 3), "") - remove third character 'c'
478478
let l:text_edits = sort(deepcopy(a:text_edits), '<SID>sort_text_edit_desc')
@@ -486,16 +486,18 @@ function! s:apply_text_edits(uri, text_edits) abort
486486
let l:was_paste = &paste
487487
let l:was_selection = &selection
488488
let l:was_virtualedit = &virtualedit
489+
let l:was_view = winsaveview()
489490

490491
set paste
491-
set selection=exclusive
492+
set selection=inclusive
492493
set virtualedit=onemore
493494

494495
execute l:cmd
495496
finally
496497
let &paste = l:was_paste
497498
let &selection = l:was_selection
498499
let &virtualedit = l:was_virtualedit
500+
call winrestview(l:was_view)
499501
endtry
500502

501503
let l:i = l:merged_text_edit['end_index']
@@ -607,7 +609,7 @@ function! s:generate_sub_cmd_replace(text_edit) abort
607609
let l:start_character = a:text_edit['range']['start']['character']
608610
let l:end_line = a:text_edit['range']['end']['line']
609611
let l:end_character = a:text_edit['range']['end']['character']
610-
let l:new_text = a:text_edit['newText']
612+
let l:new_text = substitute(a:text_edit['newText'], '\n$', '', '')
611613

612614
let l:sub_cmd = s:preprocess_cmd(a:text_edit['range'])
613615
let l:sub_cmd .= s:generate_move_cmd(l:start_line, l:start_character) " move to the first position

autoload/lsp/ui/vim/output.vim

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ function! lsp#ui#vim#output#preview(data) abort
1919
call win_gotoid(l:current_window_id)
2020
endif
2121

22+
echo ''
23+
2224
return ''
2325
endfunction
2426

@@ -30,17 +32,17 @@ function! s:append(data) abort
3032

3133
return 'markdown'
3234
elseif type(a:data) == type('')
33-
put =a:data
35+
silent put =a:data
3436

3537
return 'markdown'
3638
elseif type(a:data) == type({}) && has_key(a:data, 'language')
37-
put ='```'.a:data.language
38-
put =a:data.value
39-
put ='```'
39+
silent put ='```'.a:data.language
40+
silent put =a:data.value
41+
silent put ='```'
4042

4143
return 'markdown'
4244
elseif type(a:data) == type({}) && has_key(a:data, 'kind')
43-
put =a:data.value
45+
silent put =a:data.value
4446

4547
return a:data.kind == 'plaintext' ? 'text' : a:data.kind
4648
endif

0 commit comments

Comments
 (0)