struct StringFile: FileDocument { static var readableContentTypes: [UTType] { [.homebrewBackup, .plainText] } static var writableContentTypes: [UTType] { [.homebrewBackup] } var text: String init(initialText: String = "") { text = initialText } init(configuration: ReadConfiguration) throws { guard let data = configuration.file.regularFileContents, let string = String(data: data, encoding: .utf8) else { throw CocoaError(.fileReadCorruptFile) } text = string } func fileWrapper(configuration _: WriteConfiguration) throws -> FileWrapper { let data = text.data(using: .utf8) return FileWrapper(regularFileWithContents: data ?? Data()) } }