vimwiki

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

commit 6cafc97c9c39227deec13bb877f02e7105e31704
parent 2d0616343dfe03ef130a0df11fbf446b0fe6b03b
Author: Ivan Tishchenko <ivan.tishchenko@dsr-company.con>
Date:   Sun,  4 Jan 2015 00:24:32 +0300

Implement saving metadata to file

Diffstat:
Mautoload/vimwiki/base.vim | 19++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/autoload/vimwiki/base.vim b/autoload/vimwiki/base.vim @@ -1930,10 +1930,16 @@ endfunction "}}} " TAGS functions {{{ +let s:TAGS_METADATA_FILE_NAME = '.tags' + " Tags metadata in-memory format: " metadata := [ entry, ... ] " entry := { 'tagname':..., 'pagename':..., 'lineno':..., 'link':... } +" Tags metadata in-file format: +" * entry per line, +" * entry fields go in the same order as defined above, separated with TAB (\t) + " vimwiki#base#update_tags " Update tags metadata. " a:full_rebuild == 1: re-scan entire wiki @@ -2046,12 +2052,23 @@ endfunction " }}} " vimwiki#base#merge_tags " Merges two tags metadata objects into (new) one. function! vimwiki#base#merge_tags(metadata1, metadata2) "{{{ - return [] + return a:metadata1 + a:metadata2 endfunction " }}} " vimwiki#base#write_tags_metadata " Saves metadata object into a file. Throws exceptions in case of problems. function! vimwiki#base#write_tags_metadata(metadata) "{{{ + let metadata_path = VimwikiGet('path') . '/' . s:TAGS_METADATA_FILE_NAME + let entries = [] + for entry in a:metadata + call add(entries, + \ entry.tagname . "\t" + \ . entry.pagename . "\t" + \ . entry.lineno . "\t" + \ . entry.link + \) + endfor + call writefile(entries, metadata_path) endfunction " }}} " }}}