Browse Source

LibGUI: Add formatters for TextPosition and TextRange.

asynts 4 years ago
parent
commit
6ed3a4b5fe
2 changed files with 30 additions and 0 deletions
  1. 15 0
      Libraries/LibGUI/TextPosition.h
  2. 15 0
      Libraries/LibGUI/TextRange.h

+ 15 - 0
Libraries/LibGUI/TextPosition.h

@@ -65,3 +65,18 @@ inline const LogStream& operator<<(const LogStream& stream, const TextPosition&
 }
 
 }
+
+namespace AK {
+
+template<>
+struct Formatter<GUI::TextPosition> : Formatter<StringView> {
+    void format(TypeErasedFormatParams& params, FormatBuilder& builder, const GUI::TextPosition& value)
+    {
+        if (value.is_valid())
+            Formatter<StringView>::format(params, builder, String::formatted("({},{})", value.line(), value.column()));
+        else
+            Formatter<StringView>::format(params, builder, "GUI::TextPosition(Invalid)");
+    }
+};
+
+}

+ 15 - 0
Libraries/LibGUI/TextRange.h

@@ -93,3 +93,18 @@ inline const LogStream& operator<<(const LogStream& stream, const TextRange& val
 }
 
 }
+
+namespace AK {
+
+template<>
+struct Formatter<GUI::TextRange> : Formatter<StringView> {
+    void format(TypeErasedFormatParams& params, FormatBuilder& builder, const GUI::TextRange& value)
+    {
+        if (value.is_valid())
+            Formatter<StringView>::format(params, builder, String::formatted("{}-{}", value.start(), value.end()));
+        else
+            Formatter<StringView>::format(params, builder, "GUI::TextRange(Invalid)");
+    }
+};
+
+}