void (@NotNull SegmentArrayWithData segmentArray, int startIndex) { synchronized (LayeredLexerEditorHighlighter.this) { super.insert(segmentArray, startIndex); int newCount = segmentArray.getSegmentCount(); MappedRange[] newRanges = new MappedRange[newCount]; myRanges = insert(myRanges, newRanges, startIndex, newCount); int endIndex = startIndex + segmentArray.getSegmentCount(); TokenProcessor processor = createTokenProcessor(startIndex, getSegments(), myText); for (int i = startIndex; i < endIndex; i++) { int data = getSegmentData(i); IElementType token = getSegments().unpackTokenFromData(data); processor.addToken(i, getSegmentStart(i), getSegmentEnd(i), data, token); } processor.finish(); } }