jsonLine method
Highlights a line of JSON.
Implementation
String jsonLine(String line) {
var out = line;
// Keys
out = out.replaceAllMapped(
RegExp(r'(\")([^\"]+)(\"\s*:)'),
(m) => '${m[1]}${theme.accent}${theme.bold}${m[2]}${theme.reset}${m[3]}',
);
// String values
out = out.replaceAllMapped(
RegExp(r'(:\s*)(\"[^\"]*\")'),
(m) => '${m[1]}${theme.highlight}${m[2]}${theme.reset}',
);
// Numbers, booleans, null
out = out.replaceAllMapped(
RegExp(r'(:\s*)(-?\d+(?:\.\d+)?|true|false|null)\b'),
(m) => '${m[1]}${theme.selection}${m[2]}${theme.reset}',
);
// Punctuation
out = out.replaceAllMapped(
RegExp(r'[\[\]\{\}\,\:]'),
(m) => '${theme.dim}${m[0]}${theme.reset}',
);
return out;
}