original_string: private function applyCurrentStyle(string $text, string $current, int $width, int &$currentLineLength): string
      {
          if ('' === $text) {
              return '';
          }
  
          if (!$width) {
              return $this->isDecorated() ? $this->styleStack->getCurrent()->apply($text) : $text;
          }
  
          if (!$currentLineLength && '' !== $current) {
              $text = ltrim($text);
          }
  
          if ($currentLineLength) {
              $prefix = substr($text, 0, $i = $width - $currentLineLength)."\n";
              $text = substr($text, $i);
          } else {
              $prefix = '';
          }
  
          preg_match('~(\\n)$~', $text, $matches);
          $text = $prefix.preg_replace('~([^\\n]{'.$width.'})\\ *~', "\$1\n", $text);
          $text = rtrim($text, "\n").($matches[1] ?? '');
  
          if (!$currentLineLength && '' !== $current && "\n" !== substr($current, -1)) {
              $text = "\n".$text;
          }
  
          $lines = explode("\n", $text);
  
          foreach ($lines as $line) {
              $currentLineLength += \strlen($line);
              if ($width <= $currentLineLength) {
                  $currentLineLength = 0;
              }
          }
  
          if ($this->isDecorated()) {
              foreach ($lines as $i => $line) {
                  $lines[$i] = $this->styleStack->getCurrent()->apply($line);
              }
          }
  
          return implode("\n", $lines);
      }
code: private function applyCurrentStyle(string $text, string $current, int $width, int &$currentLineLength): string
      {
          if ('' === $text) {
              return '';
          }
  
          if (!$width) {
              return $this->isDecorated() ? $this->styleStack->getCurrent()->apply($text) : $text;
          }
  
          if (!$currentLineLength && '' !== $current) {
              $text = ltrim($text);
          }
  
          if ($currentLineLength) {
              $prefix = substr($text, 0, $i = $width - $currentLineLength)."\n";
              $text = substr($text, $i);
          } else {
              $prefix = '';
          }
  
          preg_match('~(\\n)$~', $text, $matches);
          $text = $prefix.preg_replace('~([^\\n]{'.$width.'})\\ *~', "\$1\n", $text);
          $text = rtrim($text, "\n").($matches[1] ?? '');
  
          if (!$currentLineLength && '' !== $current && "\n" !== substr($current, -1)) {
              $text = "\n".$text;
          }
  
          $lines = explode("\n", $text);
  
          foreach ($lines as $line) {
              $currentLineLength += \strlen($line);
              if ($width <= $currentLineLength) {
                  $currentLineLength = 0;
              }
          }
  
          if ($this->isDecorated()) {
              foreach ($lines as $i => $line) {
                  $lines[$i] = $this->styleStack->getCurrent()->apply($line);
              }
          }
  
          return implode("\n", $lines);
      }
code_tokens: private function applyCurrentStyle ( string $ text , string $ current , int $ width , int & $ currentLineLength ) : string { if ( '' === $ text ) { return '' ; } if ( ! $ width ) { return $ this -> isDecorated ( ) ? $ this -> styleStack -> getCurrent ( ) -> apply ( $ text ) : $ text ; } if ( ! $ currentLineLength && '' !== $ current ) { $ text = ltrim ( $ text ) ; } if ( $ currentLineLength ) { $ prefix = substr ( $ text , 0 , $ i = $ width - $ currentLineLength ) . "\n" ; $ text = substr ( $ text , $ i ) ; } else { $ prefix = '' ; } preg_match ( '~(\\n)$~' , $ text , $ matches ) ; $ text = $ prefix . preg_replace ( '~([^\\n]{' . $ width . '})\\ *~' , "\$1\n" , $ text ) ; $ text = rtrim ( $ text , "\n" ) . ( $ matches [ 1 ] ?? '' ) ; if ( ! $ currentLineLength && '' !== $ current && "\n" !== substr ( $ current , - 1 ) ) { $ text = "\n" . $ text ; } $ lines = explode ( "\n" , $ text ) ; foreach ( $ lines as $ line ) { $ currentLineLength += \ strlen ( $ line ) ; if ( $ width <= $ currentLineLength ) { $ currentLineLength = 0 ; } } if ( $ this -> isDecorated ( ) ) { foreach ( $ lines as $ i => $ line ) { $ lines [ $ i ] = $ this -> styleStack -> getCurrent ( ) -> apply ( $ line ) ; } } return implode ( "\n" , $ lines ) ; }
docstring: Applies current style from stack to text, if must be applied.
docstring_tokens: Applies current style from stack to text if must be applied .