Updated UpdateLineBorder function

Rather than get a variable number of arguments to make it optional I now
require one argument, the line number to operate on for the function
UpdateLineBorder. Makes sense to be this way.

Also improved some conditionals for better readability.
This commit is contained in:
Dhruva Sagar
2013-03-18 17:55:01 +05:30
parent 8169303d40
commit 12700a2a3b

View File

@@ -56,24 +56,24 @@ function! s:CountSeparator(line, separator)
return s:strlen(substitute(getline(a:line), '[^' . a:separator . ']', '', 'g')) return s:strlen(substitute(getline(a:line), '[^' . a:separator . ']', '', 'g'))
endfunction endfunction
function! s:UpdateLineBorder(...) function! s:UpdateLineBorder(line)
let cline = a:0 ? a:1 : line('.') let cline = a:line
let hf = '^\s*' . g:table_mode_corner . '[' . g:table_mode_corner . ' ' . g:table_mode_fillchar . ']*' . g:table_mode_corner . '\?\s*$' let hf = '^\s*' . g:table_mode_corner . '[' . g:table_mode_corner . ' ' . g:table_mode_fillchar . ']*' . g:table_mode_corner . '\?\s*$'
let curr_line_count = s:CountSeparator(cline, g:table_mode_separator) let curr_line_count = s:CountSeparator(cline, g:table_mode_separator)
if getline(cline-1) =~# hf if getline(cline-1) =~# hf
let prev_line_count = s:CountSeparator(cline-1, g:table_mode_corner) let prev_line_count = s:CountSeparator(cline-1, g:table_mode_corner)
if prev_line_count < curr_line_count if curr_line_count > prev_line_count
exec 'normal! kA' . repeat(g:table_mode_corner, curr_line_count - prev_line_count) . "\<Esc>j" exec 'normal! kA' . repeat(g:table_mode_corner, curr_line_count - prev_line_count) . "\<Esc>j"
endif endif
else else
call append(cline-1, repeat(g:table_mode_corner, curr_line_count)) call append(cline-1, repeat(g:table_mode_corner, curr_line_count))
let cline = a:0 ? (a:1+1) : line('.') let cline = a:line + 1
endif endif
if getline(cline+1) =~# hf if getline(cline+1) =~# hf
let next_line_count = s:CountSeparator(cline+1, g:table_mode_corner) let next_line_count = s:CountSeparator(cline+1, g:table_mode_corner)
if next_line_count < curr_line_count if curr_line_count > next_line_count
exec 'normal! jA' . repeat(g:table_mode_corner, curr_line_count - next_line_count) . "\<Esc>k" exec 'normal! jA' . repeat(g:table_mode_corner, curr_line_count - next_line_count) . "\<Esc>k"
end end
else else
@@ -123,7 +123,7 @@ function! s:Tableize()
let column = s:strlen(substitute(getline('.')[0:col('.')], '[^' . g:table_mode_separator . ']', '', 'g')) let column = s:strlen(substitute(getline('.')[0:col('.')], '[^' . g:table_mode_separator . ']', '', 'g'))
let position = s:strlen(matchstr(getline('.')[0:col('.')], '.*' . g:table_mode_separator . '\s*\zs.*')) let position = s:strlen(matchstr(getline('.')[0:col('.')], '.*' . g:table_mode_separator . '\s*\zs.*'))
if g:table_mode_border if g:table_mode_border
call s:UpdateLineBorder() call s:UpdateLineBorder(line('.'))
endif endif
exec 'Tabularize/[' . g:table_mode_separator . g:table_mode_corner . ']/l1' exec 'Tabularize/[' . g:table_mode_separator . g:table_mode_corner . ']/l1'
if g:table_mode_border if g:table_mode_border