72d02207b0
Problem: The loading of a .md file was slow due to multiple nested lookback. It is advised in vim help to prefer \zs, see :h /\@< Anyway, it is useless to nest them. 089.080 000.085 000.085: sourcing /home/mtourneb/.vim/after/syntax/vimwiki.vim 089.264 005.184: opening buffers 089.322 000.058: BufEnter autocommands 089.323 000.001: editing files in windows 089.414 000.091: VimEnter autocommands 089.415 000.001: before starting main loop 303.698 214.283: first screen update 303.700 000.002: --- VIM STARTED --- Solution: Remove the function s:expand_delimiter in vars.vim. It was doing a duplicate job with vimwiki#u#hi_expand_regex And ... well avoid lookback as much as possible 091.784 000.087 000.087: sourcing /home/mtourneb/.vim/after/syntax/vimwiki.vim 091.991 006.034: opening buffers 092.050 000.059: BufEnter autocommands 092.052 000.002: editing files in windows 092.172 000.120: VimEnter autocommands 092.173 000.001: before starting main loop 112.574 020.401: first screen update 112.578 000.004: --- VIM STARTED ---
74 lines
2.7 KiB
Plaintext
74 lines
2.7 KiB
Plaintext
Execute (Setup search testing wrapper):
|
|
function! TestSearch(search_command, test_name)
|
|
" Note: after each search, the location list of the current window (0)
|
|
" will contain the search results. A non-empty list indicates success.
|
|
" Search for a single word (a pattern with no spaces)
|
|
if v:version < 704
|
|
Log 'Cheating for old vim version, do not want to reverse bug'
|
|
return
|
|
endif
|
|
|
|
" Execute command and grab output
|
|
redir => output
|
|
silent execute a:search_command
|
|
redir END
|
|
|
|
" The location list should not be empty
|
|
Assert !empty(getloclist(0)), a:test_name.": no location list result"
|
|
|
|
" The location list should contains entries
|
|
Assert match(output, '\d of \d') > -1, a:test_name.": no result message"
|
|
|
|
" Tests that VimwikiSearch is quoting the pattern correctly.
|
|
" If not, Vim will see anything after the first space in the pattern
|
|
" as a file name and attempt to open it.
|
|
Assert match(output, 'Cannot open file') == -1, "'open file': unquoted pattern?"
|
|
|
|
return output
|
|
endfunction
|
|
|
|
Execute (Search test wiki):
|
|
" Open test wiki
|
|
edit test/resources/testwiki/index.wiki
|
|
|
|
" Make sure we opened the test wiki successfully by checking the
|
|
" title (first line) and filetype.
|
|
AssertEqual "= Test Wiki =", getline(1)
|
|
AssertEqual "vimwiki", &filetype
|
|
|
|
call TestSearch('VimwikiSearch foo', 'pattern with no spaces')
|
|
call TestSearch('VimwikiSearch foo bar', 'pattern with spaces')
|
|
call TestSearch('VimwikiSearch foo\bar', 'pattern with ''\''')
|
|
call TestSearch('VimwikiSearch baz{13}', 'pattern with literal {}')
|
|
call TestSearch('VimwikiSearch /\vbuz{5}/', 'proper regex')
|
|
call TestSearch('VWS foo bar', 'use VWS abbreviation')
|
|
|
|
Execute (Search space path wiki):
|
|
" Open wiki with spaces in path to test fname escaping
|
|
edit test/resources/testwiki\ space/index.wiki
|
|
|
|
" Make sure we opened the space path wiki successfully
|
|
AssertEqual "= Space Path Wiki =", getline(1)
|
|
|
|
call TestSearch('VimwikiSearch foo', 'simple search in space path wiki')
|
|
|
|
Execute (Search failure message):
|
|
" Important note: No search tests will succeed after this.
|
|
" The failed search will cause a Vim error to be thrown and
|
|
" any search with lvimgrep within Vader will result in an
|
|
" empty location list and empty messages queue. It is
|
|
" difficult to tell if the search itself is failing or if it
|
|
" is just an inability to view the results.
|
|
|
|
" Open test wiki again
|
|
edit test/resources/testwiki/index.wiki
|
|
|
|
" Now test a negative search and make sure we are returning
|
|
" the expected VimWiki error.
|
|
redir => output
|
|
silent VimwikiSearch not_exist
|
|
redir END
|
|
if v:version > 703
|
|
Assert match(output, 'Vimwiki: Search: No match found.') > -1, "expected custom error"
|
|
endif
|