resolve method

PrismCodeViewStyle resolve(
  1. 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,
  );
}