code: public function overrideRange($indexStart, $indexEnd, $items)
      {
          $oldCode = $this->generatePartialCode($indexStart, $indexEnd);
  
          $newCode = '';
          foreach ($items as $item) {
              $newCode .= $item->getContent();
          }
  
          // no changes, return
          if ($oldCode === $newCode) {
              return;
          }
  
          $indexToChange = $indexEnd - $indexStart + 1;
          $itemsCount = \count($items);
  
          // If we want to add more items than passed range contains we need to
          // add placeholders for overhead items.
          if ($itemsCount > $indexToChange) {
              $placeholders = [];
              while ($itemsCount > $indexToChange) {
                  $placeholders[] = new Token('__PLACEHOLDER__');
                  ++$indexToChange;
              }
              $this->insertAt($indexEnd + 1, $placeholders);
          }
  
          // Override each items.
          foreach ($items as $itemIndex => $item) {
              $this[$indexStart + $itemIndex] = $item;
          }
  
          // If we want to add less tokens than passed range contains then clear
          // not needed tokens.
          if ($itemsCount < $indexToChange) {
              $this->clearRange($indexStart + $itemsCount, $indexEnd);
          }
      }
docs: Override tokens at given range.
  
  @param int            $indexStart start overriding index
  @param int            $indexEnd   end overriding index
  @param Token[]|Tokens $items      tokens to insert