The optimized table formatting algorithm was still O(n) because
calculating aligns required traversal to the separator line on the top
of a table. This heuristic algorithm calculates aligns in O(1) in the
best case by looking at cells in two rows above.
Say, if two above rows are
| uau | uauyaya | ya |
| ua | uaua | uaaua |
| <cursor> | | |
then the aligns can be figured out without need to find the separator
line. If aligns cannot be figured out after this fast check then the
algorithm falls back to O(n) with searching for the separator line.
This reverts commit 23d273d547, which
fixes#655.
Description of fixed problem:
1. When looping through rows, if a separator was found, all subsequent
rows would not get an assigned alignment.
2. This breaks `s:get_aligned_rows` because it calls `s:fmt_sep` and
`s:fmt_row`, both of which expect `aligns` to have a value for every
row number.
This changes the tags file used by vimwiki to '.vimwiki_tags' to prevent
conflicts with other tools that may generate a tags file using the same
name such as gutentags.
The wikilocal option links_space_char will be used to replace any spaces
when creating a new wiki link and page. This only affects link creation
with a visual selection.
Commands such as :VimwikiIndex and :VimwikiDiaryIndex did not previously
take a count and the doucmentation was inconsistent/incorrect for the
behavior of these commands. Fixes#543.
Add an option for setting the format of the links in the Table of Contents:
- Extended (the current and default)
- Brief (new format for the Vimwiki markup)
Added the option 'diary_caption_level', which controls the presence of
captions in the diary index linking to headers within the diary pages.
Possible values:
-1: No headers are read from the diary page.
0: The first header from the diary page is used as the caption.
There are no sub-captions.
1: Captions are created for headers of level 1 in the diary page.
2: Captions are created for headers up to level 2 in the diary page.
etc.
When the value is >= 1, the primary caption of each diary page is set to
the first header read from that page if it is the unique lowest-level
header.
Adds a new global option named create_link, which allows the user to
control :VimwikiFollowLink behavior when attempting to follow a
non-existent link. The original behavior of creating a new link is
preserved. However, by setting this option to 0, new links will not be
created when pressing return over regular text. Closes#528.
Instead of forcing the TOC to always be at header level 1, allow the
user to specify via the option g:vimwiki_toc_header_level what level
they want.
This defaults to 1, so if the user does nothing then the old behavior
will remain the same.
Made each heading link to itself, by placing an <a> tag inside each
<h[1-6]> tag.
Also adds class="header" to each header, allowing for the CSS rule
.header a { ... }
to remove all styling from the inner links, allowing the outputed
document to look like before.
This reverts commit 599a0e9083.
Sorry, we can't simply change the syntax of something as basic as a
link, even if the old syntax is wrong. We need to keep Vimwiki
reasonably backwards compatible.