utils/format/format_utils library

Classes

ParsedMarkdown
Result of parsing markdown with frontmatter.
TreeifyOptions
Options for tree rendering.

Enums

FrontmatterShell
Accepted shell values for frontmatter.
RelativeTimeStyle
Relative time style.

Properties

frontmatterRegex RegExp
Regex for detecting YAML frontmatter.
final

Functions

addItemToJSONCArray(String content, dynamic newItem) String
Add an item to a JSON array string, preserving formatting.
coerceDescriptionToString(dynamic value, {String? componentName, String? pluginName}) String?
Coerce a description value from frontmatter to a string.
expandBraces(String pattern) List<String>
Expand brace patterns in a glob string.
formatDuration(int ms, {bool hideTrailingZeros = false, bool mostSignificantOnly = false}) String
Formats a duration in milliseconds to a human-readable string.
formatFileSize(int sizeInBytes) String
Formats a byte count to a human-readable string (KB, MB, GB). Example: formatFileSize(1536) returns "1.5KB".
formatLogMetadata({required DateTime modified, required int messageCount, int? fileSize, String? gitBranch, String? tag, String? agentSetting, int? prNumber, String? prRepository}) String
Formats log metadata for display.
formatNumber(int number) String
Formats a number using compact notation. Example: formatNumber(1321) returns "1.3k".
formatRelativeTime(DateTime date, {RelativeTimeStyle style = RelativeTimeStyle.narrow, DateTime? now}) String
Format a date as a relative time string.
formatRelativeTimeAgo(DateTime date, {RelativeTimeStyle style = RelativeTimeStyle.narrow, DateTime? now}) String
Format a past date as relative time ago.
formatResetText(String resetsAt, {bool showTimezone = false, bool showTime = true}) String
Format a reset time from an ISO 8601 string.
formatResetTime(int? timestampInSeconds, {bool showTimezone = false, bool showTime = true}) String?
Formats a reset timestamp for display.
formatSecondsShort(int ms) String
Formats milliseconds as seconds with 1 decimal place. Example: formatSecondsShort(1234) returns "1.2s".
formatTokens(int count) String
Formats a token count, removing trailing .0.
parseBooleanFrontmatter(dynamic value) bool
Parse a boolean frontmatter value.
parseFrontmatter(String markdown, {String? sourcePath}) ParsedMarkdown
Parse markdown content to extract frontmatter and body.
parseJSONL<T>(String data) List<T>
Parse JSONL data from a string, skipping malformed lines.
parsePositiveIntFromFrontmatter(dynamic value) int?
Parse a positive integer from frontmatter.
parseShellFrontmatter(dynamic value, {required String source}) FrontmatterShell?
Parse and validate the shell: frontmatter field.
readJSONLFile<T>(String filePath) Future<List<T>>
Read and parse a JSONL file.
safeParseJSON(String? jsonStr, {bool shouldLogError = true}) → dynamic
Safely parse a JSON string, returning null on failure.
splitPathInFrontmatter(dynamic input) List<String>
Split paths in frontmatter, respecting brace patterns.
stringWidth(String text) int
Returns the visual width of a string (simple approximation). For full CJK/emoji awareness, integrate a proper stringWidth package.
treeify(TreeNode obj, {TreeifyOptions options = const TreeifyOptions()}) String
Render a tree node as a string.
truncate(String str, int maxWidth, {bool singleLine = false}) String
Truncates a string with optional single-line mode.
truncatePathMiddle(String path, int maxLength) String
Truncates a file path in the middle to preserve directory context and filename.
truncateStartToWidth(String text, int maxWidth) String
Truncates from the start of a string, keeping the tail end. Prepends '\u2026' when truncation occurs.
truncateToWidth(String text, int maxWidth) String
Truncates a string to fit within a maximum display width. Appends '\u2026' (ellipsis) when truncation occurs.
truncateToWidthNoEllipsis(String text, int maxWidth) String
Truncates a string without appending an ellipsis.
wrapText(String text, int width) List<String>
Wraps text to the given width, splitting on grapheme boundaries.

Typedefs

FrontmatterData = Map<String, dynamic>
Parsed frontmatter data (loosely typed).
TreeNode = Map<String, dynamic>
A tree node can contain nested maps or string leaves.