120 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Before (Define functions):
 | 
						|
  " Change the syntax using a temporary wiki
 | 
						|
  function! SetSyntax(vw_syn)
 | 
						|
    if a:vw_syn ==# 'default'
 | 
						|
      let ext = 'wiki'
 | 
						|
    elseif a:vw_syn ==# 'markdown'
 | 
						|
      let ext = 'md'
 | 
						|
    elseif a:vw_syn ==# 'media'
 | 
						|
      let ext = 'mw'
 | 
						|
    else
 | 
						|
      Log 'ERROR: Invalid syntax "' . a:vw_syn . '" in SetSyntax()'
 | 
						|
      Log 'NOTE: function only accepts "media" for setting mediawiki syntax'
 | 
						|
      return
 | 
						|
    endif
 | 
						|
    let path = expand('%:p:h')
 | 
						|
    let new_temp_wiki_settings = {'path': path,
 | 
						|
          \ 'ext': ext,
 | 
						|
          \ 'syntax': a:vw_syn,
 | 
						|
          \ }
 | 
						|
 | 
						|
    " Remove any temporary wikis each time this function is called.
 | 
						|
    " This is necessary to ensure syntax is properly set when running multiple tests
 | 
						|
    " NOTE: this assumes there are 3 defined wikis in the vimrc. The last wiki
 | 
						|
    " contains default settings for temporary wikis (so there are always
 | 
						|
    " num wikis in vimrc + 1)
 | 
						|
    let num_wikis = len(g:vimwiki_wikilocal_vars)
 | 
						|
    while  num_wikis > 4
 | 
						|
      call remove(g:vimwiki_wikilocal_vars, num_wikis - 1)
 | 
						|
      let num_wikis = num_wikis - 1
 | 
						|
    endwhile
 | 
						|
 | 
						|
    " Add the new wiki
 | 
						|
    call vimwiki#vars#add_temporary_wiki(new_temp_wiki_settings)
 | 
						|
    call vimwiki#vars#set_bufferlocal('wiki_nr', 3)
 | 
						|
 | 
						|
    " Verify syntax was set correctly
 | 
						|
    Assert vimwiki#vars#get_wikilocal('syntax') ==# a:vw_syn, 'ERROR: Vimwiki syntax not set correctly.'
 | 
						|
  endfunction
 | 
						|
 | 
						|
  " Reload plugin to change settings
 | 
						|
  function! ReloadVimwiki()
 | 
						|
    " Clear mappings so plugin can be reloaded
 | 
						|
    " this is needed if running manually multiple times
 | 
						|
    nmapclear
 | 
						|
 | 
						|
    unlet g:loaded_vimwiki
 | 
						|
    source plugin/vimwiki.vim
 | 
						|
  endfunction
 | 
						|
 | 
						|
  function! ReloadVars()
 | 
						|
    " vars#init will not reload syntax varaible if not set
 | 
						|
    unlet g:vimwiki_syntax_variables
 | 
						|
    call vimwiki#vars#init()
 | 
						|
  endfunction
 | 
						|
 | 
						|
  " Copy wiki test resources so that vimtest user can write them
 | 
						|
  function! CopyResources()
 | 
						|
    call system('cp -r /testplugin/test/resources/* $HOME/')
 | 
						|
    " Make diary directory
 | 
						|
    call system('mkdir $HOME/testwiki/diary')
 | 
						|
    call system('mkdir $HOME/testmarkdown/diary')
 | 
						|
  endfunction
 | 
						|
 | 
						|
  " Delete Hidden buffer, usefull to clean
 | 
						|
  " Stole from: https://stackoverflow.com/a/8459043/2544873
 | 
						|
  function! DeleteHiddenBuffers()
 | 
						|
    let tpbl=[]
 | 
						|
    call map(range(1, tabpagenr('$')), 'extend(tpbl, tabpagebuflist(v:val))')
 | 
						|
    for buf in filter(range(1, bufnr('$')), 'bufexists(v:val) && index(tpbl, v:val)==-1')
 | 
						|
      if bufname(buf) =~? 'Vader'
 | 
						|
          continue
 | 
						|
      endif
 | 
						|
      silent execute 'bwipeout!' buf
 | 
						|
    endfor
 | 
						|
  endfunction
 | 
						|
 | 
						|
  " Write current file: helper to hide `set bt=`
 | 
						|
  function! WriteMe()
 | 
						|
    set buftype=
 | 
						|
    write %
 | 
						|
  endfunction
 | 
						|
 | 
						|
  function! DeleteFile(path)
 | 
						|
    let path = expand(a:path)
 | 
						|
    " Delete file
 | 
						|
    try
 | 
						|
      call delete(path)
 | 
						|
    catch | endtry
 | 
						|
    " Delete Buffer
 | 
						|
    try
 | 
						|
      execute 'bdelete! ' . path
 | 
						|
    catch | endtry
 | 
						|
  endfunction
 | 
						|
 | 
						|
  " Print a command output to the buffer
 | 
						|
  function! PrintCommand(cmd)
 | 
						|
    redir => message
 | 
						|
    silent execute a:cmd
 | 
						|
    redir END
 | 
						|
    if empty(message)
 | 
						|
      Log 'no output'
 | 
						|
    else
 | 
						|
      silent put=message
 | 
						|
    endif
 | 
						|
  endfunction
 | 
						|
 | 
						|
  " Destroy a variable is exists (unlet)
 | 
						|
  function! DestroyVar(var)
 | 
						|
    if ! exists(a:var) | return | endif
 | 
						|
    execute 'unlet ' . a:var
 | 
						|
  endfunction
 | 
						|
 | 
						|
  " Assert current tab is desired tab
 | 
						|
  function! AssertTab(nr)
 | 
						|
    " Vader is creating 2 tabs
 | 
						|
    AssertEqual a:nr + 2, tabpagenr()
 | 
						|
  endfunction
 | 
						|
 | 
						|
# vim: ft=vim:sw=2
 |