diff --git a/autoload/vimwiki/tbl.vim b/autoload/vimwiki/tbl.vim index 385823d..dfa3649 100644 --- a/autoload/vimwiki/tbl.vim +++ b/autoload/vimwiki/tbl.vim @@ -226,8 +226,7 @@ function! s:get_rows(lnum, ...) return endif - let upper_rows = [] - let lower_rows = [] + let rows = [] let lnum = a:lnum - 1 let depth = a:0 > 0 ? a:1 : 0 @@ -235,20 +234,23 @@ function! s:get_rows(lnum, ...) while lnum >= 1 && (depth == 0 || ldepth < depth) let line = getline(lnum) if s:is_table(line) - call add(upper_rows, [lnum, line]) + call insert(rows, [lnum, line]) else break endif let lnum -= 1 let ldepth += 1 endwhile - call reverse(upper_rows) let lnum = a:lnum while lnum <= line('$') let line = getline(lnum) if s:is_table(line) - call add(lower_rows, [lnum, line]) + if lnum == a:lnum + let cells = vimwiki#tbl#get_cells(line) + let line = s:fmt_row(cells, repeat([0], len(cells)), 0, 0) + endif + call add(rows, [lnum, line]) else break endif @@ -258,7 +260,7 @@ function! s:get_rows(lnum, ...) let lnum += 1 endwhile - return upper_rows + lower_rows + return rows endfunction diff --git a/plugin/vimwiki.vim b/plugin/vimwiki.vim index 211e39c..17c43ac 100644 --- a/plugin/vimwiki.vim +++ b/plugin/vimwiki.vim @@ -261,7 +261,7 @@ augroup vimwiki " Format tables when exit from insert mode. Do not use textwidth to " autowrap tables. if vimwiki#vars#get_global('table_auto_fmt') - exe 'autocmd InsertLeave *'.s:ext.' call vimwiki#tbl#format(line("."))' + exe 'autocmd InsertLeave *'.s:ext.' call vimwiki#tbl#format(line("."), 2)' exe 'autocmd InsertEnter *'.s:ext.' call vimwiki#tbl#reset_tw(line("."))' endif if vimwiki#vars#get_global('folding') =~? ':quick$'