소스 검색

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)");
+    }
+};
+
+}