- Dependency updates and code style fixes
- Implement rule templates: tags and conditions from a rule named
[!template]will be prepended to each following rule. Use bodyless[!template]if you need to reset the template. - Fix incorrect glob matching bug when there were file patterns with
the only difference in a leading slash (such as
/README.mdandREADME.md) in the ruleset. --dump-configoption is now considered internal and is hidden from the help.
- Expand tilde in
rootpaths. - Implement
includedirective in configs, so configs now can include each other. - Add vim syntax file and zsh completions.
- Add windows and macos support.
- Improve reporting of config parse errors.
- Implement
sizeandlinesconditions checking file size and number if lines respectively. - Support complex globs with quotes and escapes (like in shell,
e.g.
"program output "\[[0-9]\].txtwhich would matchprogram output [1].txt).
- Fix incorrect match reporting level (files vs. lines) in some cases.
- Fix incorrect line match reporting despite of
matchpreconditions not satisfied. - Fix first parser eating away first character of exclude regexps.
- Improve ruleset syntax.
- Don't use backslash escaping in rule titles, literal
]may now be written as]]. - Don't use backslash escaping in regexps - it's not really needed as (almost) any framing characters are allowed.
- Support unicode framing characters in regexps.
- Disallow brackets as regexp framing characters to avoid confusion.
- Don't use backslash escaping in rule titles, literal
- Implement parsed config dumping (may be useful in future for config format migration).
- Allow to delimit tags with commas in CLI (
--ignore-tags=foo,bar,baz). - Make tags case insensitive.
- Improve glob and regexp matching performance.
- Don't panic with unhelpful message when non-directory is specified as root.
- No longer rely on rust unstable features and thus require rust nightly.
- Make some features conditionally compiled.
- Switch to custom config format.
- Support filtering rules by tags.
- Support negative conditions (
nofilesandnomatch). - Support much more complex condition structure consisting of multiple positive and negative glob checks with multiple positive and negative content checks.
- Support multiple patterns (both globs and regexps) per condition.
- Support exclusion patterns (both globs and regexps).
- Support JSON output.
- Support multiple text output modes.
- Support output coloring.
- Optimize matching engine which now does both directory traversal and file content checking in single pass.
- Support processing multiple roots in parallel, further improving the performance.
- Support
--error-exitoption. - Support inline
omnilinter: ignoremarkers.
- Support checks for file existence only, without looking at content.
- Support full path reporting.
- Support default config.
- Proof of concept release featuring YAML based config, single
filesandmatchconditions per rule, unoptimized engine and simple text output.