You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to provide diagnostic messages from a Catch::Matchers::MatcherBase::describe function that are colored with ANSI sequences, however Catch2's line wrapping interferes with this.
Would a PR to update the line wrapping logic be welcomed?
Additional context
I have an assertion library that I'd like to provide a catch2 integration for. Without color codes, with my current attempt to make it work in Catch2, it looks like this:
However with color codes the lines are messed up and escape sequences are split in the middle:
The text was updated successfully, but these errors were encountered:
This PR adds functionality to skip around ANSI escape sequences in catch_textflow so they do not contribute to line length and line wrapping code does not split escape sequences in the middle. I've implemented this by creating a AnsiSkippingString abstraction that has a bidirectional iterator that can skip around escape sequences while iterating. Additionally I refactored Column::const_iterator to be iterator-based rather than index-based so this abstraction is a simple drop-in for std::string.
Currently only color sequences are handled, other escape sequences are left unaffected.
Motivation: Text with ANSI color sequences gets messed up when being output by Catch2 #2833.
Description
I'd like to provide diagnostic messages from a
Catch::Matchers::MatcherBase::describe
function that are colored with ANSI sequences, however Catch2's line wrapping interferes with this.Would a PR to update the line wrapping logic be welcomed?
Additional context
I have an assertion library that I'd like to provide a catch2 integration for. Without color codes, with my current attempt to make it work in Catch2, it looks like this:
However with color codes the lines are messed up and escape sequences are split in the middle:
The text was updated successfully, but these errors were encountered: