void (@NotNull List<? super HighlightedRegion> highlights, @NotNull EditorHighlighter highlighter, int startOffset, int endOffset, int highlightOffsetShift) { HighlighterIterator iterator = highlighter.createIterator(startOffset); while (!iterator.atEnd()) { int start = Math.max(iterator.getStart(), startOffset); int end = Math.min(iterator.getEnd(), endOffset); if (start >= endOffset) break; TextAttributes attributes = iterator.getTextAttributes(); int fontType = attributes.getFontType(); if ((fontType & Font.BOLD) != 0) { // suppress bold attribute attributes = attributes.clone(); attributes.setFontType(fontType & ~Font.BOLD); } HighlightedRegion region = new HighlightedRegion( highlightOffsetShift + start - startOffset, highlightOffsetShift + end - startOffset, attributes ); highlights.add(region); iterator.advance(); } }