advanceBySpaceOrTab() public method

Advances the cursor by a single space or tab, if present
public advanceBySpaceOrTab ( ) : boolean
return boolean
 public function matchesNextLine(Cursor $cursor)
 {
     if (!$cursor->isIndented() && $cursor->getFirstNonSpaceCharacter() === '>') {
         $cursor->advanceToFirstNonSpace();
         $cursor->advance();
         $cursor->advanceBySpaceOrTab();
         return true;
     }
     return false;
 }
 /**
  * @param ContextInterface $context
  * @param Cursor           $cursor
  *
  * @return bool
  */
 public function parse(ContextInterface $context, Cursor $cursor)
 {
     if ($cursor->isIndented()) {
         return false;
     }
     if ($cursor->getFirstNonSpaceCharacter() !== '>') {
         return false;
     }
     $cursor->advanceToFirstNonSpace();
     $cursor->advance();
     $cursor->advanceBySpaceOrTab();
     $context->addBlock(new BlockQuote());
     return true;
 }
Beispiel #3
0
 /**
  * @param Cursor $cursor
  * @param int    $markerLength
  *
  * @return int
  */
 private function calculateListMarkerPadding(Cursor $cursor, $markerLength)
 {
     $start = $cursor->saveState();
     $spacesStartCol = $cursor->getColumn();
     while ($cursor->getColumn() - $spacesStartCol < 5) {
         if (!$cursor->advanceBySpaceOrTab()) {
             break;
         }
     }
     $blankItem = $cursor->peek() === null;
     $spacesAfterMarker = $cursor->getColumn() - $spacesStartCol;
     if ($spacesAfterMarker >= 5 || $spacesAfterMarker < 1 || $blankItem) {
         $cursor->restoreState($start);
         $cursor->advanceBySpaceOrTab();
         return $markerLength + 1;
     }
     return $markerLength + $spacesAfterMarker;
 }