This commit implements filter option which can be used to filter lines within
the range based on the given pattern. The value of filter option should be
either `g/pattern/` or `v/pattern/`. The former aligns lines that match the
pattern, the latter aligns lines that do not match the pattern.
This commit adds LiveEasyAlign command. (The name was chosen not to introduce
ambiguity when typing in only the prefix of the command: e.g. `:EasyA*|`)
In live interactive mode, the selected text is aligned on-the-fly as the user
type in. In order to finalize the alignment, the user has to type in the
same delimiter key again. (Or CTRL-X on regular expressions)
- <Left> and <Right> key to toggle stick_to_left option
- <CTRL-X> in addition to <CTRL-/> to take regular expression
- Retain visual selection display on <CTRL-O/L/R/X>
With this commit, we can now change option values in interactive mode with the
folowing special keys
- CTRL-L left_margin
- CTRL-R right_margin
- CTRL-D delimiter_align
- CTRL-I indentation
- CTRL-U ignore_unmatched
- CTRL-G ignore_groups
('ignores' option has been renamed to 'ignore_groups', but backward-compatible)
- Preserve indentation when a line starts with a delimiter
- Useful for aligning multi-line method chains
- Renamed `margin_{left,right}` to `{left,right}_margin
- Makes it easier to type in (`l`, `r`)
- `margin_{left,right}` is still supported
- Margins can be specified as the number of spaces, or as an arbitrary string