Previously we would erroneously apply the stylization to the whoever called stylize next. Now we first check whether the span is non-empty before stylizing. All non-empty spans must have at least one character in them (end-exclusive).
@@ -463,6 +463,8 @@ Editor::CodepointRange Editor::byte_offset_range_to_code_point_offset_range(size
void Editor::stylize(Span const& span, Style const& style)
{
+ if (!span.is_empty())
+ return;
if (style.is_empty())
return;
@@ -28,6 +28,11 @@ public:
size_t end() const { return m_end; }
Mode mode() const { return m_mode; }
+ bool is_empty() const
+ {
+ return m_beginning < m_end;
+ }
+
private:
size_t m_beginning { 0 };
size_t m_end { 0 };