From 057fa3930394506fae8eca1bd993859602918f0c Mon Sep 17 00:00:00 2001 From: EinfachToll Date: Thu, 17 May 2018 20:06:27 +0200 Subject: [PATCH] :VimwikiMakeDiaryNote makes a new note in the current wiki ... like the doc says, instead of always using the first wiki. Also, fix the menu entry, which always led to the wrong diary. Fix #482 --- autoload/vimwiki/diary.vim | 27 +++++++++++++++------------ plugin/vimwiki.vim | 10 +++++----- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/autoload/vimwiki/diary.vim b/autoload/vimwiki/diary.vim index 278da34..c55b3eb 100644 --- a/autoload/vimwiki/diary.vim +++ b/autoload/vimwiki/diary.vim @@ -170,21 +170,25 @@ function! s:format_diary() endfunction +" The given wiki number a:wnum is 1 for the first wiki, 2 for the second and so on. This is in +" contrast to most other places, where counting starts with 0. When a:wnum is 0, the current wiki +" is used. function! vimwiki#diary#make_note(wnum, ...) - if a:wnum > vimwiki#vars#number_of_wikis() - echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in g:vimwiki_list!' + if a:wnum == 0 + let wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr') + else + let wiki_nr = a:wnum - 1 + endif + + if wiki_nr >= vimwiki#vars#number_of_wikis() + echomsg 'Vimwiki Error: Wiki '.wiki_nr.' is not registered in g:vimwiki_list!' return endif " TODO: refactor it. base#goto_index uses the same - if a:wnum > 0 - let idx = a:wnum - 1 - else - let idx = 0 - endif - call vimwiki#path#mkdir(vimwiki#vars#get_wikilocal('path', idx). - \ vimwiki#vars#get_wikilocal('diary_rel_path', idx)) + call vimwiki#path#mkdir(vimwiki#vars#get_wikilocal('path', wiki_nr). + \ vimwiki#vars#get_wikilocal('diary_rel_path', wiki_nr)) let cmd = 'edit' if a:0 @@ -202,7 +206,7 @@ function! vimwiki#diary#make_note(wnum, ...) let link = 'diary:'.vimwiki#diary#diary_date_link() endif - call vimwiki#base#open_link(cmd, link, s:diary_index(idx)) + call vimwiki#base#open_link(cmd, link, s:diary_index(wiki_nr)) endfunction @@ -297,8 +301,7 @@ function! vimwiki#diary#calendar_action(day, month, year, week, dir) endif endif - " XXX: Well, +1 is for inconsistent index basing... - call vimwiki#diary#make_note(vimwiki#vars#get_bufferlocal('wiki_nr')+1, 0, link) + call vimwiki#diary#make_note(0, 0, link) endfunction diff --git a/plugin/vimwiki.vim b/plugin/vimwiki.vim index 3f876db..50405de 100644 --- a/plugin/vimwiki.vim +++ b/plugin/vimwiki.vim @@ -266,14 +266,14 @@ command! -count=1 VimwikiTabIndex command! -count=1 VimwikiDiaryIndex \ call vimwiki#diary#goto_diary_index(v:count1) command! -count=1 VimwikiMakeDiaryNote - \ call vimwiki#diary#make_note(v:count1) + \ call vimwiki#diary#make_note(v:count) command! -count=1 VimwikiTabMakeDiaryNote - \ call vimwiki#diary#make_note(v:count1, 1) + \ call vimwiki#diary#make_note(v:count, 1) command! -count=1 VimwikiMakeYesterdayDiaryNote - \ call vimwiki#diary#make_note(v:count1, 0, + \ call vimwiki#diary#make_note(v:count, 0, \ vimwiki#diary#diary_date_link(localtime() - 60*60*24)) command! -count=1 VimwikiMakeTomorrowDiaryNote - \ call vimwiki#diary#make_note(v:count1, 0, + \ call vimwiki#diary#make_note(v:count, 0, \ vimwiki#diary#diary_date_link(localtime() + 60*60*24)) command! VimwikiDiaryGenerateLinks @@ -341,7 +341,7 @@ function! s:build_menu(topmenu) execute 'menu '.a:topmenu.'.Open\ index.'.norm_path. \ ' :call vimwiki#base#goto_index('.idx.')' execute 'menu '.a:topmenu.'.Open/Create\ diary\ note.'.norm_path. - \ ' :call vimwiki#diary#make_note('.idx.')' + \ ' :call vimwiki#diary#make_note('.(idx+1).')' endfor endfunction