in report-builder/src/jetbrains/coverage/report/idea/IDEACoverageData.java [77:103]
public void renderSourceCodeFor(@NotNull ClassInfo aClazz, @NotNull CoverageCodeRenderer renderer) {
IDEACoverageClassInfo idea = (IDEACoverageClassInfo) aClazz;
final CharSequence source = obtainSourceCode(idea);
if (source == null) return;
Collection<ClassData> data = idea.getClassDataWithInternal();
Map<Integer, CoverageStatus> lines = new TreeMap<Integer, CoverageStatus>();
for (ClassData clazz : data) {
final LineData[] linesArray = (LineData[]) clazz.getLines();
if (linesArray == null) continue;
for (LineData o : linesArray) {
if (o != null) {
lines.put(o.getLineNumber(), CoverageStatus.merge(lines.get(o.getLineNumber()), convertToLineCoverage(o)));
}
}
}
int lineNum = 0;
for (CharSequence line : jetbrains.coverage.report.impl.StringUtil.getLines(source)) {
lineNum++;
renderer.writeCodeLine(lineNum, line, lines.get(lineNum));
}
renderer.codeWriteFinished();
}