mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibDiff: Add Diff::write_unified for formatting unified hunks
This commit is contained in:
parent
f690807c5a
commit
a4e50deeea
Notes:
sideshowbarker
2024-07-17 10:31:19 +09:00
Author: https://github.com/shannonbooth Commit: https://github.com/SerenityOS/serenity/commit/a4e50deeea Pull-request: https://github.com/SerenityOS/serenity/pull/19616 Reviewed-by: https://github.com/ADKaster ✅
|
@ -24,6 +24,27 @@ DeprecatedString generate_only_additions(StringView text)
|
|||
return builder.to_deprecated_string();
|
||||
}
|
||||
|
||||
ErrorOr<void> write_unified(Hunk const& hunk, Stream& stream, ColorOutput color_output)
|
||||
{
|
||||
TRY(stream.write_formatted("{}\n", hunk.location));
|
||||
|
||||
if (color_output == ColorOutput::Yes) {
|
||||
for (auto const& line : hunk.lines) {
|
||||
if (line.operation == Line::Operation::Addition)
|
||||
TRY(stream.write_formatted("\033[32;1m{}\033[0m\n", line));
|
||||
else if (line.operation == Line::Operation::Removal)
|
||||
TRY(stream.write_formatted("\033[31;1m{}\033[0m\n", line));
|
||||
else
|
||||
TRY(stream.write_formatted("{}\n", line));
|
||||
}
|
||||
} else {
|
||||
for (auto const& line : hunk.lines)
|
||||
TRY(stream.write_formatted("{}\n", line));
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> write_normal(Hunk const& hunk, Stream& stream, ColorOutput color_output)
|
||||
{
|
||||
// Source line(s)
|
||||
|
|
|
@ -20,6 +20,7 @@ enum class ColorOutput {
|
|||
No,
|
||||
};
|
||||
|
||||
ErrorOr<void> write_unified(Hunk const& hunk, Stream& stream, ColorOutput color_output = ColorOutput::No);
|
||||
ErrorOr<void> write_normal(Hunk const& hunk, Stream& stream, ColorOutput color_output = ColorOutput::No);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue