commit 057fa3930394506fae8eca1bd993859602918f0c
parent c08a9f8c7147c3bb1d30d803d62526914634fc71
Author: EinfachToll <istjanichtzufassen@googlemail.com>
Date: Thu, 17 May 2018 20:06:27 +0200
: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
Diffstat:
2 files changed, 20 insertions(+), 17 deletions(-)
diff --git 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
@@ -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.')<CR>'
execute 'menu '.a:topmenu.'.Open/Create\ diary\ note.'.norm_path.
- \ ' :call vimwiki#diary#make_note('.idx.')<CR>'
+ \ ' :call vimwiki#diary#make_note('.(idx+1).')<CR>'
endfor
endfunction