resolve method
- BuildContext context
Returns a copy with unset fields resolved against context.
Implementation
PrismCodeViewStyle resolve(BuildContext context) {
final theme = Theme.of(context);
final base =
textStyle ??
theme.textTheme.bodyMedium ??
const TextStyle(fontSize: 14);
final isDark = theme.brightness == Brightness.dark;
final resolvedTokens = identical(tokenStyles, defaultTokenStyles)
? (isDark ? darkTokenStyles : defaultTokenStyles)
: tokenStyles;
return PrismCodeViewStyle(
textStyle: base.copyWith(fontFamily: base.fontFamily ?? 'monospace'),
tokenStyles: {
for (final kind in TokenKind.values)
kind: base.merge(resolvedTokens[kind] ?? const TextStyle()),
},
background:
background ??
(isDark
? theme.colorScheme.surfaceContainerHighest
: const Color(0xFFF6F8FA)),
borderRadius: borderRadius,
padding: padding ?? EdgeInsets.all(PrismTokens.of(context).spaceMd),
lineNumberStyle:
lineNumberStyle ??
TextStyle(color: theme.colorScheme.outline, fontSize: base.fontSize),
showLineNumbers: showLineNumbers,
enableCopy: enableCopy,
wrap: wrap,
);
}