in src/org/jetbrains/plugins/ipnb/editor/panels/code/IpnbErrorPanel.java [62:115]
public void appendANSI(String string) {
int position = 0;
int index;
int mIndex;
String substring;
boolean continueSearch;
String addString = remaining + string;
remaining = "";
if (addString.length() > 0) {
if (handleCarriageReturn(addString)) {
return;
}
index = addString.indexOf("\u001B");
if (index == -1) {
append(currentColor, addString);
return;
}
if (index > 0) {
substring = addString.substring(0, index);
append(currentColor, substring);
position = index;
}
continueSearch = true;
while (continueSearch) {
mIndex = addString.indexOf("m", position);
if (mIndex < 0) {
remaining = addString.substring(position);
continueSearch = false;
continue;
}
else {
substring = addString.substring(position, mIndex + 1);
//noinspection AssignmentToStaticFieldFromInstanceMethod
currentColor = getANSIColor(substring);
}
position = mIndex + 1;
index = addString.indexOf("\u001B", position);
if (index == -1) {
substring = addString.substring(position);
append(currentColor, substring);
continueSearch = false;
continue;
}
substring = addString.substring(position, index);
position = index;
append(currentColor, substring);
}
}
}