void toggleBoldFont(@NotNull TextRange toggleRange) {
      List<RangeHighlightingData> updatedRanges = new ArrayList<>();
      myRanges.forEach(data -> {
        int toggleStart = Math.max(toggleRange.getStartOffset(), data.textRange.getStartOffset());
        int toggleEnd = Math.min(toggleRange.getEndOffset(), data.textRange.getEndOffset());
        if (toggleStart < toggleEnd) {
          glueRange(updatedRanges, TextRange.create(data.textRange.getStartOffset(), toggleStart), data.isBold);
          glueRange(updatedRanges, TextRange.create(toggleStart, toggleEnd), !data.isBold);
          glueRange(updatedRanges, TextRange.create(toggleEnd, data.textRange.getEndOffset()), data.isBold);
        }
        else {
          glueRange(updatedRanges, data.textRange, data.isBold);
        }
      });
      myRanges.clear();
      myRanges.addAll(updatedRanges);
    }
void toggleBoldFont(@NotNull TextRange toggleRange)