Пример #1
0
 /**
  * Set so there a newline before a node.
  *
  * @param Node $node
  *   Node to set newline before.
  * @param bool $close
  *   If the newline is for before a closing token, eg. ) or }
  */
 protected function newlineBefore(Node $node, $close = FALSE)
 {
     $prev = $node->previousToken();
     if ($prev instanceof WhitespaceNode) {
         $prev_ws = $prev->previousToken();
         if ($prev_ws instanceof CommentNode && $prev_ws->isLineComment() && $prev->getNewlineCount() === 0) {
             $prev->setText($this->getIndent($close));
         } else {
             $prev->setText($this->getNewlineIndent($prev, $close));
         }
     } else {
         if ($prev instanceof CommentNode && $prev->isLineComment()) {
             if ($this->indentLevel > 0) {
                 $node->before(Token::whitespace($this->getIndent($close)));
             }
         } else {
             $node->before(Token::whitespace($this->getNewlineIndent(NULL, $close)));
         }
     }
 }