When applying Tableize on an indented code, the table was created
however the indentation was lost in the process. Earlier the function
s:ConvertDelimiterToSeparator(line) was replace the ^ (start of line),
the g:table_mode_delimiter and $ (end of line) with
g:table_mode_separator and then processing each line for creation of the
table around it, hence since the start of line was replaced it was
causing the indentation to be lost. Fixed this by replacing ^\s*\zs\ze.
(matches just before the first non-blank character) along with
g:table_mode_delimiter and $ and hence the indentation is preserved.
Rather than get a variable number of arguments to make it optional I now
require one argument, the line number to operate on for the function
UpdateLineBorder. Makes sense to be this way.
Also improved some conditionals for better readability.
- We now aggressively add separators to a line even if it does not have
the g:table_mode_delimiter. If the user calls Tableize, we should
trust the user he wishes to tableize everything. Earlier
implementation skips & fails for lines in text that did not have the
g:table_mode_delimiter and hence formed inconsistent tables.
Everything can be undone with a single 'u' anyways.
- Added :Tableize which accepts a range. It checks if the content has a
delimiter defined by g:table_mode_delimiter and if so, it adds a table
around it.
- Added <Leader>T mapping, which is defined by g:table_mode_tableize_map
that applies :Tableize on the visually selected range.
- Added options for tableize.
- Updated vim doc.