createSpans method
dynamic
createSpans(
- String text
)
Implementation
createSpans(String text){
var spans = <TextSpan>[];
var rs = r'"(\\\n|\\"|[^"\n])*"' + '|' + r"'(\\\n|\\'|[^'\n])*'";
var rc = r'/\*(.|\n)*?\*/';
var lst = [];
var r = new RegExp(rc + '|' + rs + '|' + r'//.*');
r.allMatches(text).forEach((i) {
text = text.replaceFirst(i.group(0)!, '\x00');
lst.add(i.group(0));
});
RegExp re = new RegExp(r'(\x00)|([^\x00\?:!%\+\=\-\*/\&\^\|~\w])+|((\w)+)|[\s\?:!%\+\=\-\*/\&\^\|~]+');
int j=0;
String? lastToken = '';
re.allMatches(text).forEach((i) {
if(i.group(0)!.contains('\x00')){
var x = i.group(0)!.replaceFirst('\x00', lst[j]);
spans.add(TextSpan(text: x,style: getTextStyle(lst[j] , spans , lastToken)));
j++;
}else {
spans.add(TextSpan(text: i.group(0), style: getTextStyle(i.group(0)! , spans , lastToken)));
}
lastToken = i.group(0)!;
// print(i.group(0));
});
return spans;
}