Have to tweak when to test that true color is set, and also when to do it for the test.
This commit is contained in:
parent
707e9e3d6e
commit
f223257aad
2 changed files with 18 additions and 13 deletions
|
@ -87,12 +87,16 @@ static const int foo_en_main = 19;
|
||||||
|
|
||||||
#line 84 "ansi_parser.rl"
|
#line 84 "ansi_parser.rl"
|
||||||
|
|
||||||
|
#include <ftxui/screen/terminal.hpp>
|
||||||
|
|
||||||
ANSIParser::ANSIParser(sf::Color default_fg, sf::Color default_bg) :
|
ANSIParser::ANSIParser(sf::Color default_fg, sf::Color default_bg) :
|
||||||
$default_fg(default_fg),
|
$default_fg(default_fg),
|
||||||
$default_bg(default_bg)
|
$default_bg(default_bg)
|
||||||
{
|
{
|
||||||
|
// the parser only handles full color so force it
|
||||||
|
if(ftxui::Terminal::ColorSupport() != ftxui::Terminal::Color::TrueColor) {
|
||||||
|
ftxui::Terminal::SetColorSupport(ftxui::Terminal::Color::TrueColor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ANSIParser::parse(const std::string &screen, WriteCB write) {
|
bool ANSIParser::parse(const std::string &screen, WriteCB write) {
|
||||||
|
@ -112,14 +116,14 @@ bool ANSIParser::parse(std::wstring_view codes, WriteCB write) {
|
||||||
sf::Color &target = color;
|
sf::Color &target = color;
|
||||||
|
|
||||||
|
|
||||||
#line 107 "ansi_parser.cpp"
|
#line 111 "ansi_parser.cpp"
|
||||||
{
|
{
|
||||||
cs = foo_start;
|
cs = foo_start;
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 110 "ansi_parser.rl"
|
#line 114 "ansi_parser.rl"
|
||||||
|
|
||||||
#line 110 "ansi_parser.cpp"
|
#line 114 "ansi_parser.cpp"
|
||||||
{
|
{
|
||||||
int _klen;
|
int _klen;
|
||||||
unsigned int _trans;
|
unsigned int _trans;
|
||||||
|
@ -272,7 +276,7 @@ _match:
|
||||||
#line 59 "ansi_parser.rl"
|
#line 59 "ansi_parser.rl"
|
||||||
{ }
|
{ }
|
||||||
break;
|
break;
|
||||||
#line 249 "ansi_parser.cpp"
|
#line 253 "ansi_parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +296,7 @@ _again:
|
||||||
#line 59 "ansi_parser.rl"
|
#line 59 "ansi_parser.rl"
|
||||||
{ }
|
{ }
|
||||||
break;
|
break;
|
||||||
#line 267 "ansi_parser.cpp"
|
#line 271 "ansi_parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -300,7 +304,7 @@ _again:
|
||||||
_out: {}
|
_out: {}
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 111 "ansi_parser.rl"
|
#line 115 "ansi_parser.rl"
|
||||||
|
|
||||||
return p - pe == 0;
|
return p - pe == 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,8 @@ using namespace fmt;
|
||||||
using namespace ftxui;
|
using namespace ftxui;
|
||||||
|
|
||||||
std::string generate_colors() {
|
std::string generate_colors() {
|
||||||
|
REQUIRE(ftxui::Terminal::ColorSupport() == Terminal::Color::TrueColor);
|
||||||
|
|
||||||
const int max_value = 255;
|
const int max_value = 255;
|
||||||
const int value_increment = 8;
|
const int value_increment = 8;
|
||||||
const int hue_increment = 6;
|
const int hue_increment = 6;
|
||||||
|
@ -36,8 +38,6 @@ std::string generate_colors() {
|
||||||
array.push_back(hbox(std::move(line)));
|
array.push_back(hbox(std::move(line)));
|
||||||
}
|
}
|
||||||
|
|
||||||
println("MADE {} CHARS", count);
|
|
||||||
|
|
||||||
auto true_color_display = vbox({
|
auto true_color_display = vbox({
|
||||||
vbox(std::move(array)),
|
vbox(std::move(array)),
|
||||||
});
|
});
|
||||||
|
@ -52,13 +52,14 @@ std::string generate_colors() {
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("test out ragel parser", "[gui]") {
|
TEST_CASE("test out ragel parser", "[gui]") {
|
||||||
std::string colors = generate_colors();
|
|
||||||
std::cout << colors;
|
|
||||||
sf::Color default_fg(0,0,0);
|
sf::Color default_fg(0,0,0);
|
||||||
sf::Color default_bg(100,100,100);
|
sf::Color default_bg(100,100,100);
|
||||||
ANSIParser parser(default_fg, default_bg);
|
|
||||||
|
|
||||||
REQUIRE(ftxui::Terminal::ColorSupport() == Terminal::Color::TrueColor);
|
// this sets the Truecolor so need to do it first
|
||||||
|
ANSIParser parser(default_fg, default_bg);
|
||||||
|
std::string colors = generate_colors();
|
||||||
|
std::cout << colors;
|
||||||
|
|
||||||
|
|
||||||
bool good = parser.parse(colors, [&](sf::Color bgcolor, sf::Color color, wchar_t ch) {
|
bool good = parser.parse(colors, [&](sf::Color bgcolor, sf::Color color, wchar_t ch) {
|
||||||
bool correct_char = ch == '#' || ch == ' ' || ch == '\n' || ch == '\r';
|
bool correct_char = ch == '#' || ch == ' ' || ch == '\n' || ch == '\r';
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue