Files
vim-lsp-mirror/autoload/lsp/utils/range.vim
hrsh7th 70234feca4 Improve code action (#663)
* Improve code action

* Add LspCodeActionSync

* Fix miss argument

* Fix for the review

* Add utils and tests

* Remove unused function
2020-01-09 08:35:39 -08:00

32 lines
950 B
VimL

"
" Returns recent visual-mode range.
"
function! lsp#utils#range#_get_recent_visual_range() abort
let l:start_pos = getpos("'<")[1 : 2]
let l:end_pos = getpos("'>")[1 : 2]
let l:end_pos[1] += 1 " To exclusive
" Fix line selection.
let l:end_line = getline(l:end_pos[0])
if l:end_pos[1] > strlen(l:end_line)
let l:end_pos[1] = strlen(l:end_line) + 1
endif
let l:range = {}
let l:range['start'] = lsp#utils#position#_vim_to_lsp('%', l:start_pos)
let l:range['end'] = lsp#utils#position#_vim_to_lsp('%', l:end_pos)
return l:range
endfunction
"
" Returns current line range.
"
function! lsp#utils#range#_get_current_line_range() abort
let l:pos = getpos('.')[1 : 2]
let l:range = {}
let l:range['start'] = lsp#utils#position#_vim_to_lsp('%', l:pos)
let l:range['end'] = lsp#utils#position#_vim_to_lsp('%', [l:pos[0], l:pos[1] + strlen(getline(l:pos[0])) + 1])
return l:range
endfunction