aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/scssphp/scssphp/src/Formatter/Compressed.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/scssphp/scssphp/src/Formatter/Compressed.php')
-rw-r--r--vendor/scssphp/scssphp/src/Formatter/Compressed.php83
1 files changed, 83 insertions, 0 deletions
diff --git a/vendor/scssphp/scssphp/src/Formatter/Compressed.php b/vendor/scssphp/scssphp/src/Formatter/Compressed.php
new file mode 100644
index 000000000..58ebe3f11
--- /dev/null
+++ b/vendor/scssphp/scssphp/src/Formatter/Compressed.php
@@ -0,0 +1,83 @@
+<?php
+
+/**
+ * SCSSPHP
+ *
+ * @copyright 2012-2020 Leaf Corcoran
+ *
+ * @license http://opensource.org/licenses/MIT MIT
+ *
+ * @link http://scssphp.github.io/scssphp
+ */
+
+namespace ScssPhp\ScssPhp\Formatter;
+
+use ScssPhp\ScssPhp\Formatter;
+
+/**
+ * Compressed formatter
+ *
+ * @author Leaf Corcoran <leafot@gmail.com>
+ *
+ * @internal
+ */
+class Compressed extends Formatter
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function __construct()
+ {
+ $this->indentLevel = 0;
+ $this->indentChar = ' ';
+ $this->break = '';
+ $this->open = '{';
+ $this->close = '}';
+ $this->tagSeparator = ',';
+ $this->assignSeparator = ':';
+ $this->keepSemicolons = false;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function blockLines(OutputBlock $block)
+ {
+ $inner = $this->indentStr();
+
+ $glue = $this->break . $inner;
+
+ foreach ($block->lines as $index => $line) {
+ if (substr($line, 0, 2) === '/*' && substr($line, 2, 1) !== '!') {
+ unset($block->lines[$index]);
+ }
+ }
+
+ $this->write($inner . implode($glue, $block->lines));
+
+ if (! empty($block->children)) {
+ $this->write($this->break);
+ }
+ }
+
+ /**
+ * Output block selectors
+ *
+ * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block
+ */
+ protected function blockSelectors(OutputBlock $block)
+ {
+ assert(! empty($block->selectors));
+
+ $inner = $this->indentStr();
+
+ $this->write(
+ $inner
+ . implode(
+ $this->tagSeparator,
+ str_replace([' > ', ' + ', ' ~ '], ['>', '+', '~'], $block->selectors)
+ )
+ . $this->open . $this->break
+ );
+ }
+}