Explorar o código

LibGUI: Add formatters for TextPosition and TextRange.

asynts %!s(int64=4) %!d(string=hai) anos
pai
achega
6ed3a4b5fe
Modificáronse 2 ficheiros con 30 adicións e 0 borrados
  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)");
+    }
+};
+
+}