Releases: pemistahl/grex
Releases · pemistahl/grex
grex 1.4.5
Improvements
- Type stubs for the Python bindings are now available, allowing better static code analysis, better code completion in supported IDEs and easier understanding of the library's API.
- The code for creating regular expressions in verbose mode has been simplified and is more performant now.
- ARM64 binaries are now provided for every major platform (Linux, macOs, Windows).
Bug Fixes
- For a small set of special characters, grex produced incorrect regular expressions when the case-insensitivity feature was enabled. This has been fixed.
Changes
- All dependencies have been updated to their latest versions.
grex 1.4.4
Bug Fixes
- The Python release workflow was incorrect as it produced too many wheels for upload. This has been fixed.
grex 1.4.3
Features
- Python bindings are now available for the library. Use grex within any Python software. (#172)
Changes
- All dependencies have been updated to their latest versions.
grex 1.4.2
Improvements
- All characters from the current Unicode standard 15.0 are now fully supported. (#128)
- A proper exit code is now returned if the provided user input cannot be handled by the CLI. Big thanks to @spenserblack for the respective pull request. (#165)
Changes
- It is not possible anymore to call
RegExpBuilder.with_syntax_highlighting()
in the library as it only makes sense for the CLI. - The dependency
atty
has been removed in favor ofstd::io::IsTerminal
in Rust >= 1.70.0. As a result, Rust >= 1.70.0 is now needed to compile the CLI. - All remaining dependencies have been updated to their latest versions.
Bug Fixes
- Several bugs have been fixed that caused incorrect expressions to be generated in rare cases.
grex 1.4.1
Changes
clap
has been updated to version 4.0. The help output ofgrex -h
now looks a little different.
Bug Fixes
- A bug in the grapheme segmentation was fixed that caused test cases which contain backslashes to produce incorrect regular expressions.
grex 1.4.0
Features
- The library can now be compiled to WebAssembly and be used in any JavaScript project. (#82)
- The supported character set for regular expression generation has been updated to the current Unicode Standard 14.0.
structopt
has been replaced withclap
providing much nicer help output for the command-line tool.
Improvements
- The regular expression generation performance has been significantly improved, especially for generating very long expressions from a large set of test cases. This has been accomplished by reducing the number of memory allocations, removing deprecated code and applying several minor optimizations.
Bug Fixes
- Several bugs have been fixed that caused incorrect expressions to be generated in rare cases.
grex 1.3.0
Features
- anchors can now be disabled so that the generated expression can be used as part of a larger one (#30)
- the command-line tool can now be used within Unix pipelines (#45)
Changes
- Additional methods have been added to
RegExpBuilder
in order to replace the enumFeature
and make the library API more consistent. (#47)
Bug Fixes
- Under rare circumstances, the conversion of repetitions did not work. This has been fixed. (#36)
grex 1.2.0
Features
- verbose mode is now supported with the
--verbose
flag to produce regular expressions which are easier to read (#17)
grex 1.1.0
Features
- case-insensitive matching regexes are now supported with the
--ignore-case
command-line flag or withFeature::CaseInsensitivity
in the library (#23) - non-capturing groups are now the default; capturing groups can be enabled with the
--capture-groups
command-line flag or withFeature::CapturingGroup
in the library (#15) - a lower bound for the conversion of repeated substrings can now be set by specifying
--min-repetitions
and--min-substring-length
or using the library methodsRegExpBuilder.with_minimum_repetitions()
andRegExpBuilder.with_minimum_substring_length()
(#10) - test cases can now be passed from a file within the library as well using
RegExpBuilder::from_file()
(#13)
Changes
- the rules for the conversion of test cases to shorthand character classes have been updated to be compliant to the newest Unicode Standard 13.0 (#21)
- the dependency on the unmaintained linked-list crate has been removed (#24)
Bug Fixes
- test cases starting with a hyphen are now correctly parsed on the command-line (#12)
- the common substring detection algorithm now uses optionality expressions where possible instead of redundant union operations (#22)
Test Coverage
- new unit tests, integration tests and property tests have been added
grex 1.0.0
Finally, the first stable release 1.0.0 is there. :-)
Features
- conversion to character classes
\d
,\D
,\s
,\S
,\w
,\W
is now supported - repetition detection now works with arbitrarily nested expressions. Input strings such as
aaabaaab
which were previously converted to^(aaab){2}$
are now converted to^(a{3}b){2}$
. - optional syntax highlighting for the produced regular expressions can now be enabled using the
--colorize
command-line flag or with the library methodRegExpBuilder.with_syntax_highlighting()
Test Coverage
- new unit tests, integration tests and property tests have been added