vimwiki

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

commit ba84981b5ae54af32e320cd04b583dd7e9fe1c6c
parent 0ce3c87a2e194e5d07f91f373923a181961736b8
Author: Rane Brown <rane.brown@gmail.com>
Date:   Wed, 28 Aug 2019 03:50:47 -0600

Merge branch 'abhinav-dev' into dev

This commit changes the autocmd registration in vimwiki so that
registration happens once rather than once per extension. PR #742

Diffstat:
Mdoc/vimwiki.txt | 3++-
Mplugin/vimwiki.vim | 55++++++++++++++++++++++++++++---------------------------
2 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt @@ -3463,6 +3463,7 @@ Contributors and their Github usernames in roughly chronological order: - Jonny Bylsma (@jbylsma) - Shaedil (@Shaedil) - Robin Lowe (@defau1t) + - Abhinav Gupta (@abhinav) ============================================================================== @@ -3478,7 +3479,6 @@ https://github.com/vimwiki-backup/vimwiki/issues. 2.5 (in progress)~ New:~ - * PR #744: Fix typo in vimwiki_list_manipulation * PR #711: Allow forcing VimwikiAll2HTML with ! * PR #702: Make remapping documentation more accessible to newer vim users * PR #673: Add :VimwikiGoto key mapping. @@ -3544,6 +3544,7 @@ Removed:~ point. Fixed:~ + * PR #744: Fix typo in vimwiki_list_manipulation * Issue #715: s:clean_url is compatible with vim pre 7.4.1546 (sticky type checking) * Issue #729: Normalize links uses relative paths in diary pages for diff --git a/plugin/vimwiki.vim b/plugin/vimwiki.vim @@ -308,33 +308,34 @@ endif augroup vimwiki autocmd! autocmd ColorScheme * call s:setup_cleared_syntax() - for s:ext in s:known_extensions - exe 'autocmd BufNewFile,BufRead *'.s:ext.' call s:setup_new_wiki_buffer()' - exe 'autocmd BufEnter *'.s:ext.' call s:setup_buffer_enter()' - exe 'autocmd BufLeave *'.s:ext.' call s:setup_buffer_leave()' - exe 'autocmd BufWinEnter *'.s:ext.' call s:setup_buffer_win_enter()' - if exists('##DiffUpdated') - exe 'autocmd DiffUpdated *'.s:ext.' call s:setup_buffer_win_enter()' - endif - " automatically generate a level 1 header for new files - exe 'autocmd BufNewFile *'.s:ext.' call s:create_h1(expand("%:p"))' - " 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("."), 2)' - exe 'autocmd InsertEnter *'.s:ext.' call vimwiki#tbl#reset_tw(line("."))' - endif - if vimwiki#vars#get_global('folding') =~? ':quick$' - " from http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text - " Don't screw up folds when inserting text that might affect them, until - " leaving insert mode. Foldmethod is local to the window. Protect against - " screwing up folding when switching between windows. - exe 'autocmd InsertEnter *'.s:ext.' if !exists("w:last_fdm") | let w:last_fdm=&foldmethod'. - \ ' | setlocal foldmethod=manual | endif' - exe 'autocmd InsertLeave,WinLeave *'.s:ext.' if exists("w:last_fdm") |'. - \ 'let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif' - endif - endfor + + " ['.md', '.mdown'] => *.md,*.mdown + let pat = join(map(s:known_extensions, '"*" . v:val'), ',') + exe 'autocmd BufNewFile,BufRead '.pat.' call s:setup_new_wiki_buffer()' + exe 'autocmd BufEnter '.pat.' call s:setup_buffer_enter()' + exe 'autocmd BufLeave '.pat.' call s:setup_buffer_leave()' + exe 'autocmd BufWinEnter '.pat.' call s:setup_buffer_win_enter()' + if exists('##DiffUpdated') + exe 'autocmd DiffUpdated '.pat.' call s:setup_buffer_win_enter()' + endif + " automatically generate a level 1 header for new files + exe 'autocmd BufNewFile '.pat.' call s:create_h1(expand("%:p"))' + " 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 '.pat.' call vimwiki#tbl#format(line("."), 2)' + exe 'autocmd InsertEnter '.pat.' call vimwiki#tbl#reset_tw(line("."))' + endif + if vimwiki#vars#get_global('folding') =~? ':quick$' + " from http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text + " Don't screw up folds when inserting text that might affect them, until + " leaving insert mode. Foldmethod is local to the window. Protect against + " screwing up folding when switching between windows. + exe 'autocmd InsertEnter '.pat.' if !exists("w:last_fdm") | let w:last_fdm=&foldmethod'. + \ ' | setlocal foldmethod=manual | endif' + exe 'autocmd InsertLeave,WinLeave '.pat.' if exists("w:last_fdm") |'. + \ 'let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif' + endif augroup END