From e573b3020c032400eed60b649a2cbf55266e6bb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Thu, 30 Jun 2016 16:03:25 +0200 Subject: Add current configurations from old repository --- .../vim-table-mode/autoload/tablemode/utils.vim | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 vim/bundle/vim-table-mode/autoload/tablemode/utils.vim (limited to 'vim/bundle/vim-table-mode/autoload/tablemode/utils.vim') diff --git a/vim/bundle/vim-table-mode/autoload/tablemode/utils.vim b/vim/bundle/vim-table-mode/autoload/tablemode/utils.vim new file mode 100644 index 0000000..215da6c --- /dev/null +++ b/vim/bundle/vim-table-mode/autoload/tablemode/utils.vim @@ -0,0 +1,49 @@ +" Private Functions {{{1 + +" Public Functions {{{1 +function! tablemode#utils#throw(string) abort "{{{2 + let v:errmsg = 'table-mode: ' . a:string + throw v:errmsg +endfunction + +function! tablemode#utils#line(row) "{{{2 + if type(a:row) == type('') + return line(a:row) + else + return a:row + endif +endfunction + +function! tablemode#utils#strip(string) "{{{2 + return matchstr(a:string, '^\s*\zs.\{-}\ze\s*$') +endfunction + +" function! tablemode#utils#strlen {{{2 +" To count multibyte characters accurately +function! tablemode#utils#strlen(text) + return strlen(substitute(a:text, '.', 'x', 'g')) +endfunction + +function! tablemode#utils#StrDisplayWidth(string) "{{{2 + if exists('*strdisplaywidth') + return strdisplaywidth(a:string) + else + " Implement the tab handling part of strdisplaywidth for vim 7.2 and + " earlier - not much that can be done about handling doublewidth + " characters. + let rv = 0 + let i = 0 + + for char in split(a:string, '\zs') + if char == "\t" + let rv += &ts - i + let i = 0 + else + let rv += 1 + let i = (i + 1) % &ts + endif + endfor + + return rv + endif +endfunction -- cgit v1.2.3