- 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.md
andREADME.md
) in the ruleset. --dump-config
option is now considered internal and is hidden from the help.
- Expand tilde in
root
paths. - Implement
include
directive 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
size
andlines
conditions checking file size and number if lines respectively. - Support complex globs with quotes and escapes (like in shell,
e.g.
"program output "\[[0-9]\].txt
which would matchprogram output [1].txt
).
- Fix incorrect match reporting level (files vs. lines) in some cases.
- Fix incorrect line match reporting despite of
match
preconditions 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 (
nofiles
andnomatch
). - 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-exit
option. - Support inline
omnilinter: ignore
markers.
- 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
files
andmatch
conditions per rule, unoptimized engine and simple text output.