stringToTextSpan method

TextSpan stringToTextSpan(
  1. String string,
  2. DartCodeViewerThemeData dartCodeViewerThemeData
)

Implementation

TextSpan stringToTextSpan(
  String string,
  DartCodeViewerThemeData dartCodeViewerThemeData,
) {
  return TextSpan(
    style: () {
      final String? styleString =
          RegExp(r'codeStyle.\w*').firstMatch(string)?.group(0);
      final dartCodeViewerTheme = dartCodeViewerThemeData;

      switch (styleString) {
        case 'codeStyle.baseStyle':
          return dartCodeViewerTheme.baseStyle;
        case 'codeStyle.numberStyle':
          return dartCodeViewerTheme.numberStyle;
        case 'codeStyle.commentStyle':
          return dartCodeViewerTheme.commentStyle;
        case 'codeStyle.keywordStyle':
          return dartCodeViewerTheme.keywordStyle;
        case 'codeStyle.stringStyle':
          return dartCodeViewerTheme.stringStyle;
        case 'codeStyle.punctuationStyle':
          return dartCodeViewerTheme.punctuationStyle;
        case 'codeStyle.classStyle':
          return dartCodeViewerTheme.classStyle;
        case 'codeStyle.constantStyle':
          return dartCodeViewerTheme.constantStyle;
        default:
          return dartCodeViewerTheme.baseStyle;
      }
    }(),
    text: () {
      final textString = RegExp('\'.*\'').firstMatch(string)?.group(0);
      final subString = textString!.substring(1, textString.length - 1);
      return decodeString(subString);
    }(),
  );
}