without transfer at max column width

This commit is contained in:
Volodya 2024-05-01 11:47:59 +00:00
parent 6c9143a61e
commit fa7c8d59a2

View File

@ -466,6 +466,7 @@ void PrettyBlockOutputFormat::writeValueWithPadding(
serialized_value += ellipsis; serialized_value += ellipsis;
value_width = format_settings.pretty.max_value_width; value_width = format_settings.pretty.max_value_width;
has_break_line = false;
} }
else if (!has_break_line) else if (!has_break_line)
serialized_value += ' '; serialized_value += ' ';
@ -492,7 +493,7 @@ void PrettyBlockOutputFormat::writeValueWithPadding(
write_padding(); write_padding();
} }
if (has_break_line && value_width != format_settings.pretty.max_value_width) if (has_break_line)
writeString("", out); writeString("", out);
} }
@ -535,6 +536,25 @@ void PrettyBlockOutputFormat::writeTransferredRow(const Widths & max_widths, con
has_break_line = true; has_break_line = true;
} }
if (cur_width > format_settings.pretty.max_value_width)
{
value.resize(UTF8::computeBytesBeforeWidth(
reinterpret_cast<const UInt8 *>(value.data()), value.size(), 0, 1 + format_settings.pretty.max_value_width));
const char * ellipsis = format_settings.pretty.charset == FormatSettings::Pretty::Charset::UTF8 ? "" : "~";
if (color)
{
value += "\033[31;1m";
value += ellipsis;
value += "\033[0m";
}
else
value += ellipsis;
cur_width = format_settings.pretty.max_value_width;
has_break_line = false;
}
if (!value.empty()) if (!value.empty())
writeString("", out); writeString("", out);
else else
@ -552,7 +572,7 @@ void PrettyBlockOutputFormat::writeTransferredRow(const Widths & max_widths, con
if (has_break_line) if (has_break_line)
writeString("", out); writeString("", out);
else else if (cur_width != format_settings.pretty.max_value_width)
writeChar(' ', out); writeChar(' ', out);
} }