ChromaTheme.fromJson constructor

ChromaTheme.fromJson(
  1. Map<String, dynamic> json
)

Creates a theme from a JSON map.

Implementation

factory ChromaTheme.fromJson(Map<String, dynamic> json) {
  Style? parse(String key) {
    if (!json.containsKey(key)) return null;
    final val = json[key];
    if (val is Map<String, dynamic>) {
      return _parseStyle(val);
    }
    return null;
  }

  return ChromaTheme(
    text: parse('text'),
    error: parse('error'),
    comment: parse('comment'),
    commentPreproc: parse('comment_preproc'),
    keyword: parse('keyword'),
    keywordReserved: parse('keyword_reserved'),
    keywordNamespace: parse('keyword_namespace'),
    keywordType: parse('keyword_type'),
    operator: parse('operator'),
    punctuation: parse('punctuation'),
    name: parse('name'),
    nameBuiltin: parse('name_builtin'),
    nameTag: parse('name_tag'),
    nameAttribute: parse('name_attribute'),
    nameClass: parse('name_class'),
    nameConstant: parse('name_constant'),
    nameDecorator: parse('name_decorator'),
    nameException: parse('name_exception'),
    nameFunction: parse('name_function'),
    nameOther: parse('name_other'),
    literal: parse('literal'),
    literalNumber: parse('literal_number'),
    literalDate: parse('literal_date'),
    literalString: parse('literal_string'),
    literalStringEscape: parse('literal_string_escape'),
    genericDeleted: parse('generic_deleted'),
    genericEmph: parse('generic_emph'),
    genericInserted: parse('generic_inserted'),
    genericStrong: parse('generic_strong'),
    genericSubheading: parse('generic_subheading'),
    background: parse('background'),
  );
}