fix(vim): multibytes characters counting. (#345)
parent
dbc89831b1
commit
d89d5aeef2
|
|
@ -449,8 +449,7 @@ function! tabby#Accept(...)
|
||||||
let s:text_to_insert = lines[0]
|
let s:text_to_insert = lines[0]
|
||||||
let insertion = "\<C-R>\<C-O>=tabby#ConsumeInsertion()\<CR>"
|
let insertion = "\<C-R>\<C-O>=tabby#ConsumeInsertion()\<CR>"
|
||||||
else
|
else
|
||||||
let current_line = getbufline('%', line('.'), line('.'))[0]
|
let suffix_chars_to_replace = strchars(getline(line('.'))[col('.') - 1:])
|
||||||
let suffix_chars_to_replace = len(current_line) - col('.') + 1
|
|
||||||
let s:text_to_insert = join(lines, "\n")
|
let s:text_to_insert = join(lines, "\n")
|
||||||
let insertion = repeat("\<Del>", suffix_chars_to_replace) . "\<C-R>\<C-O>=tabby#ConsumeInsertion()\<CR>\<End>"
|
let insertion = repeat("\<Del>", suffix_chars_to_replace) . "\<C-R>\<C-O>=tabby#ConsumeInsertion()\<CR>\<End>"
|
||||||
endif
|
endif
|
||||||
|
|
@ -550,12 +549,22 @@ function! s:CreateCompletionRequest()
|
||||||
\ filepath: expand('%:p'),
|
\ filepath: expand('%:p'),
|
||||||
\ language: s:GetLanguage(),
|
\ language: s:GetLanguage(),
|
||||||
\ text: join(getbufline('%', 1, '$'), "\n"),
|
\ text: join(getbufline('%', 1, '$'), "\n"),
|
||||||
\ position: line2byte(line('.')) + col('.') - 2,
|
\ position: s:CountCharsToCursor(),
|
||||||
\ maxPrefixLines: g:tabby_max_prefix_lines,
|
\ maxPrefixLines: g:tabby_max_prefix_lines,
|
||||||
\ maxSuffixLines: g:tabby_max_suffix_lines,
|
\ maxSuffixLines: g:tabby_max_suffix_lines,
|
||||||
\ }
|
\ }
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:CountCharsToCursor()
|
||||||
|
let lines = getline(1, line('.') - 1)
|
||||||
|
if col('.') > 1
|
||||||
|
let lines += [getline(line('.'))[:col('.') - 2]]
|
||||||
|
else
|
||||||
|
let lines += ['']
|
||||||
|
endif
|
||||||
|
return strchars(join(lines, "\n"))
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:GetLanguage()
|
function! s:GetLanguage()
|
||||||
let filetype = getbufvar('%', '&filetype')
|
let filetype = getbufvar('%', '&filetype')
|
||||||
if has_key(g:tabby_filetype_to_languages, filetype)
|
if has_key(g:tabby_filetype_to_languages, filetype)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue