vimwiki

Personal wiki for vim
git clone https://github.com/vimwiki/vimwiki.git
Log | Files | Refs | README | LICENSE

commit 5e4a89c89889c2e630cc97c620bc138c7efa5adf
parent 07ba7339f15b4c975aef83ecf79ebf9d6c656b37
Author: lyokha <alexey.radkov@gmail.com>
Date:   Fri, 15 Mar 2019 15:31:28 +0300

faster table format on InsertLeave; faster s:get_rows()

Diffstat:
Mautoload/vimwiki/tbl.vim | 14++++++++------
Mplugin/vimwiki.vim | 2+-
2 files changed, 9 insertions(+), 7 deletions(-)

diff --git 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 @@ -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$'