* The comment patterns had to come before the string ones
* The smallest indentation size is now taken into consideration even if
it only occurs once, we just make sure its size is more than 1 space.
When a command is performed with parameters, those are now passed to the
predicate.
The predicate can then return, after the validity boolean, any other
value that will then be passed to the actual command.
If the predicate only returns the validity boolean, the original
parameters are passed through to the actual command.
This allows predicates to manipulate the received parameters, and allows
them to pass the result of an expensive computation to the actual
command, which won't have to recalculate it.
String and table predicates will now also return `core.active_view`.
* Improved performance 67x by not using the tokenizer, this means that
now opening files or saving them where indentation is re-detected
is much more faster.
* Improved the algorithm to detect the space size.
Before, if the indent wasn't fully detected, `detectindent` would try to
update every second. On files with very long lines this would cause
stutters.
Now the indent is updated only once after saving/reloading.