AK: Replace the boolean parameter of StringView::lines with a named enum

This commit is contained in:
Timothy Flynn 2024-03-08 11:27:48 -05:00 committed by Tim Flynn
parent d9349f1510
commit 07a27b2ec0
Notes: sideshowbarker 2024-07-17 06:54:15 +09:00
4 changed files with 9 additions and 5 deletions

View File

@ -68,12 +68,12 @@ Vector<StringView> StringView::split_view(StringView separator, SplitBehavior sp
return parts;
}
Vector<StringView> StringView::lines(bool consider_cr) const
Vector<StringView> StringView::lines(ConsiderCarriageReturn consider_carriage_return) const
{
if (is_empty())
return {};
if (!consider_cr)
if (consider_carriage_return == ConsiderCarriageReturn::No)
return split_view('\n', SplitBehavior::KeepEmpty);
Vector<StringView> v;

View File

@ -235,7 +235,11 @@ public:
// 0.29, the spec defines a line ending as "a newline (U+000A), a carriage
// return (U+000D) not followed by a newline, or a carriage return and a
// following newline.".
[[nodiscard]] Vector<StringView> lines(bool consider_cr = true) const;
enum class ConsiderCarriageReturn {
No,
Yes,
};
[[nodiscard]] Vector<StringView> lines(ConsiderCarriageReturn = ConsiderCarriageReturn::Yes) const;
// Create a new substring view of this string view, starting either at the beginning of
// the given substring view, or after its end, and continuing until the end of this string

View File

@ -425,7 +425,7 @@ SpreadsheetView::SpreadsheetView(Sheet& sheet)
StringView urls { data.data(), data.size() };
Vector<Position> source_positions, target_positions;
for (auto& line : urls.lines(false)) {
for (auto& line : urls.lines(StringView::ConsiderCarriageReturn::No)) {
auto position = m_sheet->position_from_url(line);
if (position.has_value())
source_positions.append(position.release_value());

View File

@ -303,7 +303,7 @@ public:
{
return m_view.visit(
[](StringView view) {
auto views = view.lines(false);
auto views = view.lines(StringView::ConsiderCarriageReturn::No);
Vector<RegexStringView> new_views;
for (auto& view : views)
new_views.empend(view);