#pragma once #include #include #include #include #include class ProjectFile : public RefCounted { public: static NonnullRefPtr construct_with_name(const String& name) { return adopt(*new ProjectFile(name)); } const String& name() const { return m_name; } const ByteBuffer& contents() const; Vector find(const StringView&) const; const GTextDocument& document() const; private: explicit ProjectFile(const String& name) : m_name(name) { } String m_name; mutable ByteBuffer m_contents; mutable RefPtr m_document; };