for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* SCSSPHP
*
* @copyright 2012-2018 Leaf Corcoran
* @license http://opensource.org/licenses/MIT MIT
* @link http://leafo.github.io/scssphp
*/
namespace Leafo\ScssPhp\Formatter;
use Leafo\ScssPhp\Formatter;
use Leafo\ScssPhp\Formatter\OutputBlock;
* Expanded formatter
* @author Leaf Corcoran <[email protected]>
class Expanded extends Formatter
{
* {@inheritdoc}
public function __construct()
$this->indentLevel = 0;
$this->indentChar = ' ';
$this->break = "\n";
$this->open = ' {';
$this->close = '}';
$this->tagSeparator = ', ';
$this->assignSeparator = ': ';
$this->keepSemicolons = true;
}
protected function indentStr()
return str_repeat($this->indentChar, $this->indentLevel);
protected function blockLines(OutputBlock $block)
$inner = $this->indentStr();
$glue = $this->break . $inner;
foreach ($block->lines as $index => $line) {
if (substr($line, 0, 2) === '/*') {
$block->lines[$index] = preg_replace('/(\r|\n)+/', $glue, $line);
$this->write($inner . implode($glue, $block->lines));
if (empty($block->selectors) || ! empty($block->children)) {
$this->write($this->break);