Tools/CrashViewer/CrashReporterQuicklook/GeneratePreviewForURL.m (25 lines of code) (raw):

#include <CoreFoundation/CoreFoundation.h> #include <CoreServices/CoreServices.h> #include <QuickLook/QuickLook.h> #import <CrashReporter/CrashReporter.h> OSStatus GeneratePreviewForURL (void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options); void CancelPreviewGeneration (void *thisInterface, QLPreviewRequestRef preview); /* ----------------------------------------------------------------------------- Generate a preview for file This function's job is to create preview for designated file ----------------------------------------------------------------------------- */ OSStatus GeneratePreviewForURL (void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options) { @autoreleasepool { NSData *data = [NSData dataWithContentsOfURL: (__bridge NSURL *)url]; if (!data) return noErr; PLCrashReport *report = [[PLCrashReport alloc] initWithData: data error: NULL]; if (!report) return noErr; NSString *text = [PLCrashReportTextFormatter stringValueForCrashReport: report withTextFormat: PLCrashReportTextFormatiOS]; NSData *utf8Data = [text dataUsingEncoding: NSUTF8StringEncoding]; QLPreviewRequestSetDataRepresentation(preview, (__bridge CFDataRef)utf8Data, kUTTypePlainText, NULL); } return noErr; } void CancelPreviewGeneration (void *thisInterface, QLPreviewRequestRef preview) { // Implement only if supported }