浏览代码

LibGUI: Add formatters for TextPosition and TextRange.

asynts 4 年之前
父节点
当前提交
6ed3a4b5fe
共有 2 个文件被更改,包括 30 次插入0 次删除
  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)");
+    }
+};
+
+}