From ad6d8440f579b16821136fee84ccea3635f2c4bd Mon Sep 17 00:00:00 2001 From: miripiruni Date: Tue, 25 Sep 2012 21:34:42 +0400 Subject: [PATCH 01/23] update csscomb: 2.08 -> 2.11 --- plugin/lib/csscomb.php | 1074 +++++++++++++++++++++++----------------- 1 file changed, 608 insertions(+), 466 deletions(-) diff --git a/plugin/lib/csscomb.php b/plugin/lib/csscomb.php index d7dde5c..30b698b 100644 --- a/plugin/lib/csscomb.php +++ b/plugin/lib/csscomb.php @@ -1,298 +1,414 @@ null, // оригинальный код, без изменений, то, что пришло на вход - 'edited' => null, // код, который может меняться в процессе выполнения алгоритма пересортировки - 'resorted' => null, // конечный, пересортированный CSS-код + // оригинальный код, без изменений, то, что пришло на вход + 'original' => null, + // код, который может меняться в процессе выполнения алгоритма пересортировки + 'edited' => null, + // конечный, пересортированный CSS-код + 'resorted' => null, // TODO: избавиться от resorted - 'expressions' => null, // если найдены expression, то эта переменная станет массивом, ячейки которого будут содержать код каждого найденного expression - 'datauri' => null, // если найдены data uri, то эта переменная станет массивом... - 'hacks' => null, // если найдены CSS-хаки мешающие парсить, то эта переменная станет массивом... - 'braces' => null, // если найдены комментарии содержащие { или } мешающие парсить, то эта переменная станет массивом. - 'entities' => null // если найдены entities мешающие парсить, то эта переменная станет массивом. + // если найдены expression, то эта переменная станет массивом, ячейки которого + // будут содержать код каждого найденного expression + 'expressions' => null, + // если найдены data uri, то эта переменная станет массивом... + 'datauri' => null, + // если найдены CSS-хаки мешающие парсить, то эта переменная станет массивом... + 'hacks' => null, + // если найдены комментарии содержащие { или } мешающие парсить, + // то эта переменная станет массивом. + 'braces' => null, + // если найдены entities мешающие парсить, то эта переменная станет массивом. + 'entities' => null ), - /* - * В переменной $mode лежит режим работы с CSS-кодом. - * Возможны следующие значения: - * css-file - только CSS-код - * style-attribute - найден атрибут style="..." - * properties - не найдено фигурных скобок, зато присутствуют точки с запятой и двоеточия. - * - */ + // В переменной $mode лежит режим работы с CSS-кодом. Возможны следующие значения: + // css-file - только CSS-код + // style-attribute - найден атрибут style="..." + // properties - не найдено фигурных скобок, зато присутствуют точки с запятой и двоеточия. $mode = 'properties', $default_sort_order = ' [ "position", - "top", - "right", - "bottom", - "left", - "z-index", - "float", - "clear", - "display", - "visibility", - "overflow", - "overflow-x", - "overflow-y", - "overflow-style", - "clip", - "box-sizing", - "margin", - "margin-top", - "margin-right", - "margin-bottom", - "margin-left", - "padding", - "padding-top", - "padding-right", - "padding-bottom", - "padding-left", - "width", - "height", - "max-width", - "max-height", - "min-width", - "min-height", - "outline", - "outline-width", - "outline-style", - "outline-color", - "outline-offset", - "border", - "border-collapse", - "border-color", - "border-style", - "border-width", - "border-top", - "border-right", - "border-bottom", - "border-left", - "-webkit-border-radius", - "-khtml-border-radius", - "-moz-border-radius", - "border-radius", - "-webkit-border-top-right-radius", - "-khtml-border-top-right-radius", - "-moz-border-top-right-radius", - "-moz-border-radius-topright", - "border-top-right-radius", - "-webkit-border-bottom-right-radius", - "-khtml-border-bottom-right-radius", - "-moz-border-bottom-right-radius", - "-moz-border-radius-bottomright", - "border-bottom-right-radius", - "-webkit-border-bottom-left-radius", - "-khtml-border-bottom-left-radius", - "-moz-border-bottom-left-radius", - "-moz-border-radius-bottomleft", - "border-bottom-left-radius", - "-webkit-border-top-left-radius", - "-khtml-border-top-left-radius", - "-moz-border-top-left-radius", - "-moz-border-radius-topleft", - "border-top-left-radius", - "-webkit-border-image", - "-moz-border-image", - "-o-border-image", - "border-image", - "-webkit-border-image-source", - "-moz-border-image-source", - "-o-border-image-source", - "border-image-source", - "-webkit-border-image-slice", - "-moz-border-image-slice", - "-o-border-image-slice", - "border-image-slice", - "-webkit-border-image-width", - "-moz-border-image-width", - "-o-border-image-width", - "border-image-width", - "-webkit-border-image-outset", - "-moz-border-image-outset", - "-o-border-image-outset", - "border-image-outset", - "-webkit-border-image-repeat", - "-moz-border-image-repeat", - "-o-border-image-repeat", - "border-image-repeat", - "-webkit-border-top-image", - "-moz-border-top-image", - "-o-border-top-image", - "border-top-image", - "-webkit-border-right-image", - "-moz-border-right-image", - "-o-border-right-image", - "border-right-image", - "-webkit-border-bottom-image", - "-moz-border-bottom-image", - "-o-border-bottom-image", - "border-bottom-image", - "-webkit-border-left-image", - "-moz-border-left-image", - "-o-border-left-image", - "border-left-image", - "-webkit-border-corner-image", - "-moz-border-corner-image", - "-o-border-corner-image", - "border-corner-image", - "-webkit-border-top-left-image", - "-moz-border-top-left-image", - "-o-border-top-left-image", - "border-top-left-image", - "-webkit-border-top-right-image", - "-moz-border-top-right-image", - "-o-border-top-right-image", - "border-top-right-image", - "-webkit-border-bottom-right-image", - "-moz-border-bottom-right-image", - "-o-border-bottom-right-image", - "border-bottom-right-image", - "-webkit-border-bottom-left-image", - "-moz-border-bottom-left-image", - "-o-border-bottom-left-image", - "border-bottom-left-image", - "background", - "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", - "background-color", - "background-image", - "background-position", - "background-size", - "background-repeat", - "background-attachment", - "background-clip", - "background-origin", - "box-decoration-break", - "-webkit-box-shadow", - "-moz-box-shadow", - "box-shadow", - "color", - "table-layout", - "caption-side", - "empty-cells", - "list-style", - "list-style-position", - "list-style-type", - "list-style-image", - "quotes", - "content", - "counter-increment", - "counter-reset", - "vertical-align", - "text-align", - "text-decoration", - "text-emphasis", - "text-indent", - "text-justify", - "text-outline", - "text-transform", - "text-wrap", - "text-overflow", - "text-overflow-ellipsis", - "text-overflow-mode", - "text-shadow", - "line-height", - "white-space", - "word-spacing", - "word-wrap", - "-moz-tab-size", - "-o-tab-size", - "tab-size", - "letter-spacing", - "font", - "font-weight", - "font-style", - "font-variant", - "font-size-adjust", - "font-stretch", - "font-size", - "font-family", - "src", - "opacity", + "top", + "right", + "bottom", + "left", + "z-index", + "display", + "visibility", + "-webkit-flex-direction", + "-moz-flex-direction", + "-ms-flex-direction", + "-o-flex-direction", + "flex-direction", + "-webkit-flex-order", + "-moz-flex-order", + "-ms-flex-order", + "-o-flex-order", + "flex-order", + "-webkit-flex-pack", + "-moz-flex-pack", + "-ms-flex-pack", + "-o-flex-pack", + "flex-pack", + "float", + "clear", + "-webkit-flex-align", + "-moz-flex-align", + "-ms-flex-align", + "-o-flex-align", + "flex-align", + "overflow", + "-ms-overflow-x", + "-ms-overflow-y", + "overflow-x", + "overflow-y", + "clip", + "-webkit-box-sizing", + "-moz-box-sizing", + "box-sizing", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "min-width", + "min-height", + "max-width", + "max-height", + "width", + "height", + "outline", + "outline-width", + "outline-style", + "outline-color", + "outline-offset", + "border", + "border-spacing", + "border-collapse", + "border-width", + "border-style", + "border-color", + "border-top", + "border-top-width", + "border-top-style", + "border-top-color", + "border-right", + "border-right-width", + "border-right-style", + "border-right-color", + "border-bottom", + "border-bottom-width", + "border-bottom-style", + "border-bottom-color", + "border-left", + "border-left-width", + "border-left-style", + "border-left-color", + "-webkit-border-radius", + "-moz-border-radius", + "border-radius", + "-webkit-border-top-right-radius", + "-moz-border-top-right-radius", + "border-top-right-radius", + "-webkit-border-bottom-right-radius", + "-moz-border-bottom-right-radius", + "border-bottom-right-radius", + "-webkit-border-bottom-left-radius", + "-moz-border-bottom-left-radius", + "border-bottom-left-radius", + "-webkit-border-top-left-radius", + "-moz-border-top-left-radius", + "border-top-left-radius", + "-webkit-border-image", + "-moz-border-image", + "-o-border-image", + "border-image", + "-webkit-border-image-source", + "-moz-border-image-source", + "-o-border-image-source", + "border-image-source", + "-webkit-border-image-slice", + "-moz-border-image-slice", + "-o-border-image-slice", + "border-image-slice", + "-webkit-border-image-width", + "-moz-border-image-width", + "-o-border-image-width", + "border-image-width", + "-webkit-border-image-outset", + "-moz-border-image-outset", + "-o-border-image-outset", + "border-image-outset", + "-webkit-border-image-repeat", + "-moz-border-image-repeat", + "-o-border-image-repeat", + "border-image-repeat", + "-webkit-border-top-image", + "-moz-border-top-image", + "-o-border-top-image", + "border-top-image", + "-webkit-border-right-image", + "-moz-border-right-image", + "-o-border-right-image", + "border-right-image", + "-webkit-border-bottom-image", + "-moz-border-bottom-image", + "-o-border-bottom-image", + "border-bottom-image", + "-webkit-border-left-image", + "-moz-border-left-image", + "-o-border-left-image", + "border-left-image", + "-webkit-border-corner-image", + "-moz-border-corner-image", + "-o-border-corner-image", + "border-corner-image", + "-webkit-border-top-left-image", + "-moz-border-top-left-image", + "-o-border-top-left-image", + "border-top-left-image", + "-webkit-border-top-right-image", + "-moz-border-top-right-image", + "-o-border-top-right-image", + "border-top-right-image", + "-webkit-border-bottom-right-image", + "-moz-border-bottom-right-image", + "-o-border-bottom-right-image", + "border-bottom-right-image", + "-webkit-border-bottom-left-image", + "-moz-border-bottom-left-image", + "-o-border-bottom-left-image", + "border-bottom-left-image", + "background", + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", + "background-color", + "background-image", + "background-attachment", + "background-position", + "-ms-background-position-x", + "-ms-background-position-y", + "background-position-x", + "background-position-y", + "background-clip", + "background-origin", + "background-size", + "background-repeat", + "box-decoration-break", + "-webkit-box-shadow", + "-moz-box-shadow", + "box-shadow", + "color", + "table-layout", + "caption-side", + "empty-cells", + "list-style", + "list-style-position", + "list-style-type", + "list-style-image", + "quotes", + "content", + "counter-increment", + "counter-reset", + "-ms-writing-mode", + "vertical-align", + "text-align", + "-ms-text-align-last", + "text-align-last", + "text-decoration", + "text-emphasis", + "text-emphasis-position", + "text-emphasis-style", + "text-emphasis-color", + "text-indent", + "-ms-text-justify", + "text-justify", + "text-outline", + "text-transform", + "text-wrap", + "-ms-text-overflow", + "text-overflow", + "text-overflow-ellipsis", + "text-overflow-mode", + "text-shadow", + "white-space", + "word-spacing", + "-ms-word-wrap", + "word-wrap", + "-ms-word-break", + "word-break", + "-moz-tab-size", + "-o-tab-size", + "tab-size", + "-webkit-hyphens", + "-moz-hyphens", + "hyphens", + "letter-spacing", + "font", + "font-weight", + "font-style", + "font-variant", + "font-size-adjust", + "font-stretch", + "font-size", + "font-family", + "src", + "line-height", + "opacity", "-ms-filter:\'progid:DXImageTransform.Microsoft.Alpha", - "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", - "resize", - "cursor", - "nav-index", - "nav-up", - "nav-right", - "nav-down", - "nav-left", - "-webkit-transition", - "-moz-transition", - "-o-transition", - "transition", - "-webkit-transition-delay", - "-moz-transition-delay", - "-o-transition-delay", - "transition-delay", - "-webkit-transition-timing-function", - "-moz-transition-timing-function", - "-o-transition-timing-function", - "transition-timing-function", - "-webkit-transition-duration", - "-moz-transition-duration", - "-o-transition-duration", - "transition-duration", - "-webkit-transition-property", - "-moz-transition-property", - "-o-transition-property", - "transition-property", - "-webkit-transform", - "-moz-transform", - "-o-transform", - "transform", - "-webkit-transform-origin", - "-moz-transform-origin", - "-o-transform-origin", - "transform-origin", - "unicode-bidi", - "direction", - "break-after", - "break-before", - "break-inside", - "columns", - "column-span", - "column-width", - "column-count", - "column-fill", - "column-gap", - "column-rule", - "column-rule-color", - "column-rule-style", - "column-rule-width", - "page-break-before", - "page-break-inside", - "page-break-after", - "orphans", - "widows", - "zoom", - "max-zoom", - "min-zoom", - "user-zoom", - "orientation" + "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", + "-ms-interpolation-mode", + "-webkit-filter", + "-ms-filter", + "filter", + "resize", + "cursor", + "nav-index", + "nav-up", + "nav-right", + "nav-down", + "nav-left", + "-webkit-transition", + "-moz-transition", + "-ms-transition", + "-o-transition", + "transition", + "-webkit-transition-delay", + "-moz-transition-delay", + "-ms-transition-delay", + "-o-transition-delay", + "transition-delay", + "-webkit-transition-timing-function", + "-moz-transition-timing-function", + "-ms-transition-timing-function", + "-o-transition-timing-function", + "transition-timing-function", + "-webkit-transition-duration", + "-moz-transition-duration", + "-ms-transition-duration", + "-o-transition-duration", + "transition-duration", + "-webkit-transition-property", + "-moz-transition-property", + "-ms-transition-property", + "-o-transition-property", + "transition-property", + "-webkit-transform", + "-moz-transform", + "-ms-transform", + "-o-transform", + "transform", + "-webkit-transform-origin", + "-moz-transform-origin", + "-ms-transform-origin", + "-o-transform-origin", + "transform-origin", + "-webkit-animation", + "-moz-animation", + "-ms-animation", + "-o-animation", + "animation", + "-webkit-animation-name", + "-moz-animation-name", + "-ms-animation-name", + "-o-animation-name", + "animation-name", + "-webkit-animation-duration", + "-moz-animation-duration", + "-ms-animation-duration", + "-o-animation-duration", + "animation-duration", + "-webkit-animation-play-state", + "-moz-animation-play-state", + "-ms-animation-play-state", + "-o-animation-play-state", + "animation-play-state", + "-webkit-animation-timing-function", + "-moz-animation-timing-function", + "-ms-animation-timing-function", + "-o-animation-timing-function", + "animation-timing-function", + "-webkit-animation-delay", + "-moz-animation-delay", + "-ms-animation-delay", + "-o-animation-delay", + "animation-delay", + "-webkit-animation-iteration-count", + "-moz-animation-iteration-count", + "-ms-animation-iteration-count", + "-o-animation-iteration-count", + "animation-iteration-count", + "-webkit-animation-direction", + "-moz-animation-direction", + "-ms-animation-direction", + "-o-animation-direction", + "animation-direction", + "unicode-bidi", + "direction", + "-webkit-columns", + "-moz-columns", + "columns", + "-webkit-column-span", + "-moz-column-span", + "column-span", + "-webkit-column-width", + "-moz-column-width", + "column-width", + "-webkit-column-count", + "-moz-column-count", + "column-count", + "-webkit-column-fill", + "-moz-column-fill", + "column-fill", + "-webkit-column-gap", + "-moz-column-gap", + "column-gap", + "-webkit-column-rule", + "-moz-column-rule", + "column-rule", + "-webkit-column-rule-width", + "-moz-column-rule-width", + "column-rule-width", + "-webkit-column-rule-style", + "-moz-column-rule-style", + "column-rule-style", + "-webkit-column-rule-color", + "-moz-column-rule-color", + "column-rule-color", + "break-before", + "break-inside", + "break-after", + "page-break-before", + "page-break-inside", + "page-break-after", + "orphans", + "widows", + "-ms-zoom", + "zoom", + "max-zoom", + "min-zoom", + "user-zoom", + "orientation" ]', - - - - - - $yandex_sort_order = '[ [ "position", @@ -600,72 +716,61 @@ class csscomb{ ]'; /** - * Функция конструктор - * @param css {string} - * @param echo {boolean} - * @custon_sort_order {string|JSON} + * @param string css + * @param boolean echo + * @param json custom_sort_order JSON expected + * @return string * * @TODO: https://github.com/miripiruni/CSScomb/issues/21 - * */ - function csscomb($css = '', $echo = false, $custom_sort_order = null){ - if($echo===0 or $echo===false){ - $this->output = false; + function csscomb($css = '', $debug = false, $custom_sort_order = null) { + $this->output = $debug ? true : false; + + if ($css && is_string($css)) { + $this->code['original'] = $this->code['edited'] = $css; + $this->set_mode(); + $this->set_sort_order($custom_sort_order); + $this->preprocess(); + $this->parse_rules(); + $this->postprocess(); + return $this->end_of_process(); + } else { + return false; } - - $this->code['original'] = $this->code['edited'] = $css; - - $this->set_mode(); - $this->set_sort_order($custom_sort_order); // 1 задаем порядок сортировки - - $this->preprocess(); // 2 препроцессинг - $this->parse_rules(); // 3,4,5 парсим на части по скобкам - $this->postprocess(); // 6 постпроцессинг - - return $this->end_of_process(); } - - - - /** * Функция сетит $this->sort_order * * @param json_array {string/JSON} * */ - function set_sort_order($json_array = null){ - if($json_array != null){ + function set_sort_order($json_array = null) { + $this->sort_order = json_decode($this->default_sort_order); + + if ($json_array !== null) { $custom_sort_order = json_decode($json_array); - if(is_array($custom_sort_order) AND count($custom_sort_order)>0){ + if (is_array($custom_sort_order) AND count($custom_sort_order) > 0) { $this->sort_order = $custom_sort_order; } - else { - $this->sort_order = json_decode($this->default_sort_order); - } - - } - else { - $this->sort_order = json_decode($this->default_sort_order); } - if($json_array === 'yandex'){ + if ($json_array === 'yandex') { $this->sort_order = json_decode($this->yandex_sort_order); - switch(json_last_error()){ - case JSON_ERROR_DEPTH: - echo 'JSON parse error: Достигнута максимальная глубина стека'; - break; - case JSON_ERROR_STATE_MISMATCH: - echo 'JSON parse error: Некорректные разряды или не совпадение режимов'; - break; - case JSON_ERROR_CTRL_CHAR: - echo 'JSON parse error: Некорректный управляющий символ'; - break; - case JSON_ERROR_SYNTAX: - echo 'JSON parse error: Синтаксическая ошибка, не корректный JSON'; - break; - } + //switch(json_last_error()) { + //case JSON_ERROR_DEPTH: + //echo 'JSON parse error: Достигнута максимальная глубина стека'; + //break; + //case JSON_ERROR_STATE_MISMATCH: + //echo 'JSON parse error: Некорректные разряды или не совпадение режимов'; + //break; + //case JSON_ERROR_CTRL_CHAR: + //echo 'JSON parse error: Некорректный управляющий символ'; + //break; + //case JSON_ERROR_SYNTAX: + //echo 'JSON parse error: Синтаксическая ошибка, не корректный JSON'; + //break; + //} } } @@ -677,16 +782,17 @@ function set_sort_order($json_array = null){ * @TODO: а если и тег
'.$before.'';
@@ -1304,11 +1441,11 @@ function log($before, $after){
      * @param  {string}
      * @return {bool|int}
      */
-    private function get_through_number($value){
+    private function get_through_number($value) {
         $i = 0;
-        foreach($this->sort_order as $property_group){
-            foreach($property_group as $key=>$val){
-                if($val==$value) return $i;
+        foreach ($this->sort_order as $property_group) {
+            foreach ($property_group as $key => $val) {
+                if ($val == $value) return $i;
                 else $i++;
             }
         }
@@ -1321,19 +1458,23 @@ private function get_through_number($value){
      * @param  {array}
      * @return {array}
      */
-    private function separate_property_group($properties){
-        if(is_array($this->sort_order[0])){ // Если в настройках нет разбиения на группы, то выходим входной массив без изменений
-            foreach($properties as $key=>$property){
+    private function separate_property_group($properties) {
+        if (is_array($this->sort_order[0])) { // Если в настройках нет разбиения на группы, то выходим входной массив без изменений
+            foreach ($properties as $key => $property) {
                 $array = explode(':', $property);
                 $prop_name[$key] = trim($array[0]);
             }
-            foreach($this->sort_order as $group_num=>$property_group){ // Перебираем группы свойств
+            foreach ($this->sort_order as $group_num => $property_group) { // Перебираем группы свойств
                 $intersect = array_intersect($prop_name, $property_group);
-                if(count($intersect)>0){
+                if (count($intersect) > 0) {
                     $num = array_keys($intersect);
                     $last_key = null;
-                    foreach($num as $n)	$last_key = $n;
-                    if($properties[$last_key] != end($properties)) $properties[$last_key] = $properties[$last_key]."\n";
+                    foreach ($num as $n) {
+                        $last_key = $n;
+                    }
+                    if ($properties[$last_key] !== end($properties)) {
+                        $properties[$last_key] = $properties[$last_key]."\n";
+                    }
                 }
             }
         }
@@ -1341,3 +1482,4 @@ private function separate_property_group($properties){
     }
 
 }
+

From beea1f5f2596c914195abd0d829ec636311db89f Mon Sep 17 00:00:00 2001
From: Slava Oliyanchuk 
Date: Tue, 2 Oct 2012 13:40:37 +0400
Subject: [PATCH 02/23] Add link to instructions of PHP install

---
 README.md | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/README.md b/README.md
index a4cc261..a8be212 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,13 @@ The algorithm of CSScomb simulates web-technologists actions upon working with C
 
 For more info, online demo and tests see [csscomb.com](http://csscomb.com/)
 
+
+The Requirements
+------------
+
+* [PHP](http://windows.php.net/download/) ([Make sure](https://github.com/miripiruni/CSScomb/tree/master/src/plugins/csscomb.notepad_plus_plus#required) that the path to the PHP is in an environment variable)
+
+
 ## Installation
 
 ### With Pathogen

From a01640ca4c1dbe007d6e8ed2bf8d99dac7fbdaed Mon Sep 17 00:00:00 2001
From: Slava Oliyanchuk 
Date: Tue, 2 Oct 2012 13:42:11 +0400
Subject: [PATCH 03/23] Add link to instructions of PHP install

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index a8be212..d9de5d9 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ For more info, online demo and tests see [csscomb.com](http://csscomb.com/)
 The Requirements
 ------------
 
-* [PHP](http://windows.php.net/download/) ([Make sure](https://github.com/miripiruni/CSScomb/tree/master/src/plugins/csscomb.notepad_plus_plus#required) that the path to the PHP is in an environment variable)
+* [PHP](http://windows.php.net/download/). Make sure that the path to the PHP is in an environment variable ([How to for Windows](https://github.com/miripiruni/CSScomb/tree/master/src/plugins/csscomb.notepad_plus_plus#required))
 
 
 ## Installation

From 557ae6c9614b02ad1e642d9f8f54c95f7f25b918 Mon Sep 17 00:00:00 2001
From: Slava Oliyanchuk 
Date: Tue, 2 Oct 2012 15:58:32 +0400
Subject: [PATCH 04/23] Docs: update requirements

---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index d9de5d9..2685539 100644
--- a/README.md
+++ b/README.md
@@ -8,10 +8,10 @@ The algorithm of CSScomb simulates web-technologists actions upon working with C
 For more info, online demo and tests see [csscomb.com](http://csscomb.com/)
 
 
-The Requirements
-------------
+## The Requirements
 
-* [PHP](http://windows.php.net/download/). Make sure that the path to the PHP is in an environment variable ([How to for Windows](https://github.com/miripiruni/CSScomb/tree/master/src/plugins/csscomb.notepad_plus_plus#required))
+CSScomb is written in pure PHP, without any external libraries or dependencies.
+See details at [wiki](https://github.com/miripiruni/CSScomb/wiki/Requirements).
 
 
 ## Installation

From 1d02608f0e4264a221d703c2482ee84faf966be2 Mon Sep 17 00:00:00 2001
From: Linmic 
Date: Tue, 9 Oct 2012 11:38:09 +0800
Subject: [PATCH 05/23] updated core to the latest version to avoid sass
 incompatible issues

---
 plugin/lib/csscomb.php | 1602 +++++++++++++++++++++-------------------
 1 file changed, 845 insertions(+), 757 deletions(-)

diff --git a/plugin/lib/csscomb.php b/plugin/lib/csscomb.php
index 30b698b..70bad94 100644
--- a/plugin/lib/csscomb.php
+++ b/plugin/lib/csscomb.php
@@ -7,6 +7,7 @@
  */
  
 error_reporting(E_ALL);
+    
 class csscomb{
 
     var $sort_order = Array(),
@@ -15,9 +16,9 @@ class csscomb{
         'original' => null,
         // код, который может меняться в процессе выполнения алгоритма пересортировки
         'edited' => null,
+        // TODO: избавиться от resorted
         // конечный, пересортированный CSS-код
         'resorted' => null,
-        // TODO: избавиться от resorted
         // если найдены expression, то эта переменная станет массивом, ячейки которого
         // будут содержать код каждого найденного expression
         'expressions' => null,
@@ -38,686 +39,689 @@ class csscomb{
     //   properties - не найдено фигурных скобок, зато присутствуют точки с запятой и двоеточия.
     $mode = 'properties',
 
-
-    $default_sort_order = '
-[
-    "position",
-    "top",
-    "right",
-    "bottom",
-    "left",
-    "z-index",
-    "display",
-    "visibility",
-    "-webkit-flex-direction",
-    "-moz-flex-direction",
-    "-ms-flex-direction",
-    "-o-flex-direction",
-    "flex-direction",
-    "-webkit-flex-order",
-    "-moz-flex-order",
-    "-ms-flex-order",
-    "-o-flex-order",
-    "flex-order",
-    "-webkit-flex-pack",
-    "-moz-flex-pack",
-    "-ms-flex-pack",
-    "-o-flex-pack",
-    "flex-pack",
-    "float",
-    "clear",
-    "-webkit-flex-align",
-    "-moz-flex-align",
-    "-ms-flex-align",
-    "-o-flex-align",
-    "flex-align",
-    "overflow",
-    "-ms-overflow-x",
-    "-ms-overflow-y",
-    "overflow-x",
-    "overflow-y",
-    "clip",
-    "-webkit-box-sizing",
-    "-moz-box-sizing",
-    "box-sizing",
-    "margin",
-    "margin-top",
-    "margin-right",
-    "margin-bottom",
-    "margin-left",
-    "padding",
-    "padding-top",
-    "padding-right",
-    "padding-bottom",
-    "padding-left",
-    "min-width",
-    "min-height",
-    "max-width",
-    "max-height",
-    "width",
-    "height",
-    "outline",
-    "outline-width",
-    "outline-style",
-    "outline-color",
-    "outline-offset",
-    "border",
-    "border-spacing",
-    "border-collapse",
-    "border-width",
-    "border-style",
-    "border-color",
-    "border-top",
-    "border-top-width",
-    "border-top-style",
-    "border-top-color",
-    "border-right",
-    "border-right-width",
-    "border-right-style",
-    "border-right-color",
-    "border-bottom",
-    "border-bottom-width",
-    "border-bottom-style",
-    "border-bottom-color",
-    "border-left",
-    "border-left-width",
-    "border-left-style",
-    "border-left-color",
-    "-webkit-border-radius",
-    "-moz-border-radius",
-    "border-radius",
-    "-webkit-border-top-right-radius",
-    "-moz-border-top-right-radius",
-    "border-top-right-radius",
-    "-webkit-border-bottom-right-radius",
-    "-moz-border-bottom-right-radius",
-    "border-bottom-right-radius",
-    "-webkit-border-bottom-left-radius",
-    "-moz-border-bottom-left-radius",
-    "border-bottom-left-radius",
-    "-webkit-border-top-left-radius",
-    "-moz-border-top-left-radius",
-    "border-top-left-radius",
-    "-webkit-border-image",
-    "-moz-border-image",
-    "-o-border-image",
-    "border-image",
-    "-webkit-border-image-source",
-    "-moz-border-image-source",
-    "-o-border-image-source",
-    "border-image-source",
-    "-webkit-border-image-slice",
-    "-moz-border-image-slice",
-    "-o-border-image-slice",
-    "border-image-slice",
-    "-webkit-border-image-width",
-    "-moz-border-image-width",
-    "-o-border-image-width",
-    "border-image-width",
-    "-webkit-border-image-outset",
-    "-moz-border-image-outset",
-    "-o-border-image-outset",
-    "border-image-outset",
-    "-webkit-border-image-repeat",
-    "-moz-border-image-repeat",
-    "-o-border-image-repeat",
-    "border-image-repeat",
-    "-webkit-border-top-image",
-    "-moz-border-top-image",
-    "-o-border-top-image",
-    "border-top-image",
-    "-webkit-border-right-image",
-    "-moz-border-right-image",
-    "-o-border-right-image",
-    "border-right-image",
-    "-webkit-border-bottom-image",
-    "-moz-border-bottom-image",
-    "-o-border-bottom-image",
-    "border-bottom-image",
-    "-webkit-border-left-image",
-    "-moz-border-left-image",
-    "-o-border-left-image",
-    "border-left-image",
-    "-webkit-border-corner-image",
-    "-moz-border-corner-image",
-    "-o-border-corner-image",
-    "border-corner-image",
-    "-webkit-border-top-left-image",
-    "-moz-border-top-left-image",
-    "-o-border-top-left-image",
-    "border-top-left-image",
-    "-webkit-border-top-right-image",
-    "-moz-border-top-right-image",
-    "-o-border-top-right-image",
-    "border-top-right-image",
-    "-webkit-border-bottom-right-image",
-    "-moz-border-bottom-right-image",
-    "-o-border-bottom-right-image",
-    "border-bottom-right-image",
-    "-webkit-border-bottom-left-image",
-    "-moz-border-bottom-left-image",
-    "-o-border-bottom-left-image",
-    "border-bottom-left-image",
-    "background",
-    "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
-    "background-color",
-    "background-image",
-    "background-attachment",
-    "background-position",
-    "-ms-background-position-x",
-    "-ms-background-position-y",
-    "background-position-x",
-    "background-position-y",
-    "background-clip",
-    "background-origin",
-    "background-size",
-    "background-repeat",
-    "box-decoration-break",
-    "-webkit-box-shadow",
-    "-moz-box-shadow",
-    "box-shadow",
-    "color",
-    "table-layout",
-    "caption-side",
-    "empty-cells",
-    "list-style",
-    "list-style-position",
-    "list-style-type",
-    "list-style-image",
-    "quotes",
-    "content",
-    "counter-increment",
-    "counter-reset",
-    "-ms-writing-mode",
-    "vertical-align",
-    "text-align",
-    "-ms-text-align-last",
-    "text-align-last",
-    "text-decoration",
-    "text-emphasis",
-    "text-emphasis-position",
-    "text-emphasis-style",
-    "text-emphasis-color",
-    "text-indent",
-    "-ms-text-justify",
-    "text-justify",
-    "text-outline",
-    "text-transform",
-    "text-wrap",
-    "-ms-text-overflow",
-    "text-overflow",
-    "text-overflow-ellipsis",
-    "text-overflow-mode",
-    "text-shadow",
-    "white-space",
-    "word-spacing",
-    "-ms-word-wrap",
-    "word-wrap",
-    "-ms-word-break",
-    "word-break",
-    "-moz-tab-size",
-    "-o-tab-size",
-    "tab-size",
-    "-webkit-hyphens",
-    "-moz-hyphens",
-    "hyphens",
-    "letter-spacing",
-    "font",
-    "font-weight",
-    "font-style",
-    "font-variant",
-    "font-size-adjust",
-    "font-stretch",
-    "font-size",
-    "font-family",
-    "src",
-    "line-height",
-    "opacity",
-    "-ms-filter:\'progid:DXImageTransform.Microsoft.Alpha",
-    "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
-    "-ms-interpolation-mode",
-    "-webkit-filter",
-    "-ms-filter",
-    "filter",
-    "resize",
-    "cursor",
-    "nav-index",
-    "nav-up",
-    "nav-right",
-    "nav-down",
-    "nav-left",
-    "-webkit-transition",
-    "-moz-transition",
-    "-ms-transition",
-    "-o-transition",
-    "transition",
-    "-webkit-transition-delay",
-    "-moz-transition-delay",
-    "-ms-transition-delay",
-    "-o-transition-delay",
-    "transition-delay",
-    "-webkit-transition-timing-function",
-    "-moz-transition-timing-function",
-    "-ms-transition-timing-function",
-    "-o-transition-timing-function",
-    "transition-timing-function",
-    "-webkit-transition-duration",
-    "-moz-transition-duration",
-    "-ms-transition-duration",
-    "-o-transition-duration",
-    "transition-duration",
-    "-webkit-transition-property",
-    "-moz-transition-property",
-    "-ms-transition-property",
-    "-o-transition-property",
-    "transition-property",
-    "-webkit-transform",
-    "-moz-transform",
-    "-ms-transform",
-    "-o-transform",
-    "transform",
-    "-webkit-transform-origin",
-    "-moz-transform-origin",
-    "-ms-transform-origin",
-    "-o-transform-origin",
-    "transform-origin",
-    "-webkit-animation",
-    "-moz-animation",
-    "-ms-animation",
-    "-o-animation",
-    "animation",
-    "-webkit-animation-name",
-    "-moz-animation-name",
-    "-ms-animation-name",
-    "-o-animation-name",
-    "animation-name",
-    "-webkit-animation-duration",
-    "-moz-animation-duration",
-    "-ms-animation-duration",
-    "-o-animation-duration",
-    "animation-duration",
-    "-webkit-animation-play-state",
-    "-moz-animation-play-state",
-    "-ms-animation-play-state",
-    "-o-animation-play-state",
-    "animation-play-state",
-    "-webkit-animation-timing-function",
-    "-moz-animation-timing-function",
-    "-ms-animation-timing-function",
-    "-o-animation-timing-function",
-    "animation-timing-function",
-    "-webkit-animation-delay",
-    "-moz-animation-delay",
-    "-ms-animation-delay",
-    "-o-animation-delay",
-    "animation-delay",
-    "-webkit-animation-iteration-count",
-    "-moz-animation-iteration-count",
-    "-ms-animation-iteration-count",
-    "-o-animation-iteration-count",
-    "animation-iteration-count",
-    "-webkit-animation-direction",
-    "-moz-animation-direction",
-    "-ms-animation-direction",
-    "-o-animation-direction",
-    "animation-direction",
-    "unicode-bidi",
-    "direction",
-    "-webkit-columns",
-    "-moz-columns",
-    "columns",
-    "-webkit-column-span",
-    "-moz-column-span",
-    "column-span",
-    "-webkit-column-width",
-    "-moz-column-width",
-    "column-width",
-    "-webkit-column-count",
-    "-moz-column-count",
-    "column-count",
-    "-webkit-column-fill",
-    "-moz-column-fill",
-    "column-fill",
-    "-webkit-column-gap",
-    "-moz-column-gap",
-    "column-gap",
-    "-webkit-column-rule",
-    "-moz-column-rule",
-    "column-rule",
-    "-webkit-column-rule-width",
-    "-moz-column-rule-width",
-    "column-rule-width",
-    "-webkit-column-rule-style",
-    "-moz-column-rule-style",
-    "column-rule-style",
-    "-webkit-column-rule-color",
-    "-moz-column-rule-color",
-    "column-rule-color",
-    "break-before",
-    "break-inside",
-    "break-after",
-    "page-break-before",
-    "page-break-inside",
-    "page-break-after",
-    "orphans",
-    "widows",
-    "-ms-zoom",
-    "zoom",
-    "max-zoom",
-    "min-zoom",
-    "user-zoom",
-    "orientation"
-]',
+    $default_sort_order = '[
+        "position",
+        "top",
+        "right",
+        "bottom",
+        "left",
+        "z-index",
+        "display",
+        "visibility",
+        "-webkit-flex-direction",
+        "-moz-flex-direction",
+        "-ms-flex-direction",
+        "-o-flex-direction",
+        "flex-direction",
+        "-webkit-flex-order",
+        "-moz-flex-order",
+        "-ms-flex-order",
+        "-o-flex-order",
+        "flex-order",
+        "-webkit-flex-pack",
+        "-moz-flex-pack",
+        "-ms-flex-pack",
+        "-o-flex-pack",
+        "flex-pack",
+        "float",
+        "clear",
+        "-webkit-flex-align",
+        "-moz-flex-align",
+        "-ms-flex-align",
+        "-o-flex-align",
+        "flex-align",
+        "overflow",
+        "-ms-overflow-x",
+        "-ms-overflow-y",
+        "overflow-x",
+        "overflow-y",
+        "clip",
+        "-webkit-box-sizing",
+        "-moz-box-sizing",
+        "box-sizing",
+        "margin",
+        "margin-top",
+        "margin-right",
+        "margin-bottom",
+        "margin-left",
+        "padding",
+        "padding-top",
+        "padding-right",
+        "padding-bottom",
+        "padding-left",
+        "min-width",
+        "min-height",
+        "max-width",
+        "max-height",
+        "width",
+        "height",
+        "outline",
+        "outline-width",
+        "outline-style",
+        "outline-color",
+        "outline-offset",
+        "border",
+        "border-spacing",
+        "border-collapse",
+        "border-width",
+        "border-style",
+        "border-color",
+        "border-top",
+        "border-top-width",
+        "border-top-style",
+        "border-top-color",
+        "border-right",
+        "border-right-width",
+        "border-right-style",
+        "border-right-color",
+        "border-bottom",
+        "border-bottom-width",
+        "border-bottom-style",
+        "border-bottom-color",
+        "border-left",
+        "border-left-width",
+        "border-left-style",
+        "border-left-color",
+        "-webkit-border-radius",
+        "-moz-border-radius",
+        "border-radius",
+        "-webkit-border-top-right-radius",
+        "-moz-border-top-right-radius",
+        "border-top-right-radius",
+        "-webkit-border-bottom-right-radius",
+        "-moz-border-bottom-right-radius",
+        "border-bottom-right-radius",
+        "-webkit-border-bottom-left-radius",
+        "-moz-border-bottom-left-radius",
+        "border-bottom-left-radius",
+        "-webkit-border-top-left-radius",
+        "-moz-border-top-left-radius",
+        "border-top-left-radius",
+        "-webkit-border-image",
+        "-moz-border-image",
+        "-o-border-image",
+        "border-image",
+        "-webkit-border-image-source",
+        "-moz-border-image-source",
+        "-o-border-image-source",
+        "border-image-source",
+        "-webkit-border-image-slice",
+        "-moz-border-image-slice",
+        "-o-border-image-slice",
+        "border-image-slice",
+        "-webkit-border-image-width",
+        "-moz-border-image-width",
+        "-o-border-image-width",
+        "border-image-width",
+        "-webkit-border-image-outset",
+        "-moz-border-image-outset",
+        "-o-border-image-outset",
+        "border-image-outset",
+        "-webkit-border-image-repeat",
+        "-moz-border-image-repeat",
+        "-o-border-image-repeat",
+        "border-image-repeat",
+        "-webkit-border-top-image",
+        "-moz-border-top-image",
+        "-o-border-top-image",
+        "border-top-image",
+        "-webkit-border-right-image",
+        "-moz-border-right-image",
+        "-o-border-right-image",
+        "border-right-image",
+        "-webkit-border-bottom-image",
+        "-moz-border-bottom-image",
+        "-o-border-bottom-image",
+        "border-bottom-image",
+        "-webkit-border-left-image",
+        "-moz-border-left-image",
+        "-o-border-left-image",
+        "border-left-image",
+        "-webkit-border-corner-image",
+        "-moz-border-corner-image",
+        "-o-border-corner-image",
+        "border-corner-image",
+        "-webkit-border-top-left-image",
+        "-moz-border-top-left-image",
+        "-o-border-top-left-image",
+        "border-top-left-image",
+        "-webkit-border-top-right-image",
+        "-moz-border-top-right-image",
+        "-o-border-top-right-image",
+        "border-top-right-image",
+        "-webkit-border-bottom-right-image",
+        "-moz-border-bottom-right-image",
+        "-o-border-bottom-right-image",
+        "border-bottom-right-image",
+        "-webkit-border-bottom-left-image",
+        "-moz-border-bottom-left-image",
+        "-o-border-bottom-left-image",
+        "border-bottom-left-image",
+        "background",
+        "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
+        "background-color",
+        "background-image",
+        "background-attachment",
+        "background-position",
+        "-ms-background-position-x",
+        "-ms-background-position-y",
+        "background-position-x",
+        "background-position-y",
+        "background-clip",
+        "background-origin",
+        "background-size",
+        "background-repeat",
+        "box-decoration-break",
+        "-webkit-box-shadow",
+        "-moz-box-shadow",
+        "box-shadow",
+        "color",
+        "table-layout",
+        "caption-side",
+        "empty-cells",
+        "list-style",
+        "list-style-position",
+        "list-style-type",
+        "list-style-image",
+        "quotes",
+        "content",
+        "counter-increment",
+        "counter-reset",
+        "-ms-writing-mode",
+        "vertical-align",
+        "text-align",
+        "-webkit-text-align-last",
+        "-moz-text-align-last",
+        "-ms-text-align-last",
+        "text-align-last",
+        "text-decoration",
+        "text-emphasis",
+        "text-emphasis-position",
+        "text-emphasis-style",
+        "text-emphasis-color",
+        "text-indent",
+        "-ms-text-justify",
+        "text-justify",
+        "text-outline",
+        "text-transform",
+        "text-wrap",
+        "-ms-text-overflow",
+        "text-overflow",
+        "text-overflow-ellipsis",
+        "text-overflow-mode",
+        "text-shadow",
+        "white-space",
+        "word-spacing",
+        "-ms-word-wrap",
+        "word-wrap",
+        "-ms-word-break",
+        "word-break",
+        "-moz-tab-size",
+        "-o-tab-size",
+        "tab-size",
+        "-webkit-hyphens",
+        "-moz-hyphens",
+        "hyphens",
+        "letter-spacing",
+        "font",
+        "font-weight",
+        "font-style",
+        "font-variant",
+        "font-size-adjust",
+        "font-stretch",
+        "font-size",
+        "font-family",
+        "src",
+        "line-height",
+        "opacity",
+        "-ms-filter:\'progid:DXImageTransform.Microsoft.Alpha",
+        "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
+        "-ms-interpolation-mode",
+        "-webkit-filter",
+        "-ms-filter",
+        "filter",
+        "resize",
+        "cursor",
+        "nav-index",
+        "nav-up",
+        "nav-right",
+        "nav-down",
+        "nav-left",
+        "-webkit-transition",
+        "-moz-transition",
+        "-ms-transition",
+        "-o-transition",
+        "transition",
+        "-webkit-transition-delay",
+        "-moz-transition-delay",
+        "-ms-transition-delay",
+        "-o-transition-delay",
+        "transition-delay",
+        "-webkit-transition-timing-function",
+        "-moz-transition-timing-function",
+        "-ms-transition-timing-function",
+        "-o-transition-timing-function",
+        "transition-timing-function",
+        "-webkit-transition-duration",
+        "-moz-transition-duration",
+        "-ms-transition-duration",
+        "-o-transition-duration",
+        "transition-duration",
+        "-webkit-transition-property",
+        "-moz-transition-property",
+        "-ms-transition-property",
+        "-o-transition-property",
+        "transition-property",
+        "-webkit-transform",
+        "-moz-transform",
+        "-ms-transform",
+        "-o-transform",
+        "transform",
+        "-webkit-transform-origin",
+        "-moz-transform-origin",
+        "-ms-transform-origin",
+        "-o-transform-origin",
+        "transform-origin",
+        "-webkit-animation",
+        "-moz-animation",
+        "-ms-animation",
+        "-o-animation",
+        "animation",
+        "-webkit-animation-name",
+        "-moz-animation-name",
+        "-ms-animation-name",
+        "-o-animation-name",
+        "animation-name",
+        "-webkit-animation-duration",
+        "-moz-animation-duration",
+        "-ms-animation-duration",
+        "-o-animation-duration",
+        "animation-duration",
+        "-webkit-animation-play-state",
+        "-moz-animation-play-state",
+        "-ms-animation-play-state",
+        "-o-animation-play-state",
+        "animation-play-state",
+        "-webkit-animation-timing-function",
+        "-moz-animation-timing-function",
+        "-ms-animation-timing-function",
+        "-o-animation-timing-function",
+        "animation-timing-function",
+        "-webkit-animation-delay",
+        "-moz-animation-delay",
+        "-ms-animation-delay",
+        "-o-animation-delay",
+        "animation-delay",
+        "-webkit-animation-iteration-count",
+        "-moz-animation-iteration-count",
+        "-ms-animation-iteration-count",
+        "-o-animation-iteration-count",
+        "animation-iteration-count",
+        "-webkit-animation-direction",
+        "-moz-animation-direction",
+        "-ms-animation-direction",
+        "-o-animation-direction",
+        "animation-direction",
+        "pointer-event",
+        "unicode-bidi",
+        "direction",
+        "-webkit-columns",
+        "-moz-columns",
+        "columns",
+        "-webkit-column-span",
+        "-moz-column-span",
+        "column-span",
+        "-webkit-column-width",
+        "-moz-column-width",
+        "column-width",
+        "-webkit-column-count",
+        "-moz-column-count",
+        "column-count",
+        "-webkit-column-fill",
+        "-moz-column-fill",
+        "column-fill",
+        "-webkit-column-gap",
+        "-moz-column-gap",
+        "column-gap",
+        "-webkit-column-rule",
+        "-moz-column-rule",
+        "column-rule",
+        "-webkit-column-rule-width",
+        "-moz-column-rule-width",
+        "column-rule-width",
+        "-webkit-column-rule-style",
+        "-moz-column-rule-style",
+        "column-rule-style",
+        "-webkit-column-rule-color",
+        "-moz-column-rule-color",
+        "column-rule-color",
+        "break-before",
+        "break-inside",
+        "break-after",
+        "page-break-before",
+        "page-break-inside",
+        "page-break-after",
+        "orphans",
+        "widows",
+        "-ms-zoom",
+        "zoom",
+        "max-zoom",
+        "min-zoom",
+        "user-zoom",
+        "orientation"
+    ]',
 
     $yandex_sort_order = '[
-[
-    "position",
-    "z-index",
-    "top",
-    "right",
-    "bottom",
-    "left"
-],
-[
-    "display",
-    "visibility",
-    "float",
-    "clear",
-    "overflow",
-    "overflow-x",
-    "overflow-y",
-    "-ms-overflow-x",
-    "-ms-overflow-y",
-    "clip",
-    "zoom",
-    "flex-direction",
-    "flex-order",
-    "flex-pack",
-    "flex-align"
-],
-[
-    "-webkit-box-sizing",
-    "-moz-box-sizing",
-    "box-sizing",
-    "width",
-    "min-width",
-    "max-width",
-    "height",
-    "min-height",
-    "max-height",
-    "margin",
-    "margin-top",
-    "margin-right",
-    "margin-bottom",
-    "margin-left",
-    "padding",
-    "padding-top",
-    "padding-right",
-    "padding-bottom",
-    "padding-left"
-],
-[
-    "table-layout",
-    "empty-cells",
-    "caption-side",
-    "border-spacing",
-    "border-collapse",
-    "list-style",
-    "list-style-position",
-    "list-style-type",
-    "list-style-image"
-],
-[
-    "content",
-    "quotes",
-    "counter-reset",
-    "counter-increment",
-    "resize",
-    "cursor",
-    "nav-index",
-    "nav-up",
-    "nav-right",
-    "nav-down",
-    "nav-left",
-    "-webkit-transition",
-    "-moz-transition",
-    "-ms-transition",
-    "-o-transition",
-    "transition",
-    "-webkit-transition-delay",
-    "-moz-transition-delay",
-    "-ms-transition-delay",
-    "-o-transition-delay",
-    "transition-delay",
-    "-webkit-transition-timing-function",
-    "-moz-transition-timing-function",
-    "-ms-transition-timing-function",
-    "-o-transition-timing-function",
-    "transition-timing-function",
-    "-webkit-transition-duration",
-    "-moz-transition-duration",
-    "-ms-transition-duration",
-    "-o-transition-duration",
-    "transition-duration",
-    "-webkit-transition-property",
-    "-moz-transition-property",
-    "-ms-transition-property",
-    "-o-transition-property",
-    "transition-property",
-    "-webkit-transform",
-    "-moz-transform",
-    "-ms-transform",
-    "-o-transform",
-    "transform",
-    "-webkit-transform-origin",
-    "-moz-transform-origin",
-    "-ms-transform-origin",
-    "-o-transform-origin",
-    "transform-origin",
-    "-webkit-animation",
-    "-moz-animation",
-    "-ms-animation",
-    "-o-animation",
-    "animation",
-    "-webkit-animation-name",
-    "-moz-animation-name",
-    "-ms-animation-name",
-    "-o-animation-name",
-    "animation-name",
-    "-webkit-animation-duration",
-    "-moz-animation-duration",
-    "-ms-animation-duration",
-    "-o-animation-duration",
-    "animation-duration",
-    "-webkit-animation-play-state",
-    "-moz-animation-play-state",
-    "-ms-animation-play-state",
-    "-o-animation-play-state",
-    "animation-play-state",
-    "-webkit-animation-timing-function",
-    "-moz-animation-timing-function",
-    "-ms-animation-timing-function",
-    "-o-animation-timing-function",
-    "animation-timing-function",
-    "-webkit-animation-delay",
-    "-moz-animation-delay",
-    "-ms-animation-delay",
-    "-o-animation-delay",
-    "animation-delay",
-    "-webkit-animation-iteration-count",
-    "-moz-animation-iteration-count",
-    "-ms-animation-iteration-count",
-    "-o-animation-iteration-count",
-    "animation-iteration-count",
-    "-webkit-animation-iteration-count",
-    "-moz-animation-iteration-count",
-    "-ms-animation-iteration-count",
-    "-o-animation-iteration-count",
-    "animation-iteration-count",
-    "-webkit-animation-direction",
-    "-moz-animation-direction",
-    "-ms-animation-direction",
-    "-o-animation-direction",
-    "animation-direction",
-    "text-align",
-    "text-align-last",
-    "-ms-text-align-last",
-    "text-align-last",
-    "vertical-align",
-    "white-space",
-    "text-decoration",
-    "text-emphasis",
-    "text-emphasis-color",
-    "text-emphasis-style",
-    "text-emphasis-position",
-    "text-indent",
-    "-ms-text-justify",
-    "text-justify",
-    "text-transform",
-    "letter-spacing",
-    "word-spacing",
-    "-ms-writing-mode",
-    "text-outline",
-    "text-transform",
-    "text-wrap",
-    "text-overflow",
-    "-ms-text-overflow",
-    "text-overflow-ellipsis",
-    "text-overflow-mode",
-    "-ms-word-wrap",
-    "word-wrap",
-    "word-break",
-    "-ms-word-break",
-    "-moz-tab-size",
-    "-o-tab-size",
-    "tab-size",
-    "-webkit-hyphens",
-    "-moz-hyphens",
-    "hyphens"
-],
-[
-    "opacity",
-    "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
-    "-ms-filter:\'progid:DXImageTransform.Microsoft.Alpha",
-    "-ms-interpolation-mode",
-    "color",
-    "border",
-    "border-collapse",
-    "border-width",
-    "border-style",
-    "border-color",
-    "border-top",
-    "border-top-width",
-    "border-top-style",
-    "border-top-color",
-    "border-right",
-    "border-right-width",
-    "border-right-style",
-    "border-right-color",
-    "border-bottom",
-    "border-bottom-width",
-    "border-bottom-style",
-    "border-bottom-color",
-    "border-left",
-    "border-left-width",
-    "border-left-style",
-    "border-left-color",
-    "-webkit-border-radius",
-    "-moz-border-radius",
-    "border-radius",
-    "-webkit-border-top-right-radius",
-    "-moz-border-top-right-radius",
-    "border-top-right-radius",
-    "-webkit-border-bottom-right-radius",
-    "-moz-border-bottom-right-radius",
-    "border-bottom-right-radius",
-    "-webkit-border-bottom-left-radius",
-    "-moz-border-bottom-left-radius",
-    "border-bottom-left-radius",
-    "-webkit-border-top-left-radius",
-    "-moz-border-top-left-radius",
-    "border-top-left-radius",
-    "-webkit-border-image",
-    "-moz-border-image",
-    "-o-border-image",
-    "border-image",
-    "-webkit-border-image-source",
-    "-moz-border-image-source",
-    "-o-border-image-source",
-    "border-image-source",
-    "-webkit-border-image-slice",
-    "-moz-border-image-slice",
-    "-o-border-image-slice",
-    "border-image-slice",
-    "-webkit-border-image-width",
-    "-moz-border-image-width",
-    "-o-border-image-width",
-    "border-image-width",
-    "-webkit-border-image-outset",
-    "-moz-border-image-outset",
-    "-o-border-image-outset",
-    "border-image-outset",
-    "-webkit-border-image-repeat",
-    "-moz-border-image-repeat",
-    "-o-border-image-repeat",
-    "border-image-repeat",
-    "outline",
-    "outline-width",
-    "outline-style",
-    "outline-color",
-    "outline-offset",
-    "background",
-    "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
-    "background-color",
-    "background-image",
-    "background-repeat",
-    "background-attachment",
-    "background-position",
-    "background-position-x",
-    "-ms-background-position-x",
-    "background-position-y",
-    "-ms-background-position-y",
-    "background-clip",
-    "background-origin",
-    "background-size",
-    "box-decoration-break",
-    "-webkit-box-shadow",
-    "-moz-box-shadow",
-    "box-shadow",
-    "-webkit-box-shadow",
-    "-moz-box-shadow",
-    "box-shadow",
-    "-webkit-box-shadow",
-    "-moz-box-shadow",
-    "box-shadow",
-    "-webkit-box-shadow",
-    "-moz-box-shadow",
-    "box-shadow",
-    "filter:progid:DXImageTransform.Microsoft.gradient",
-    "-ms-filter:\'progid:DXImageTransform.Microsoft.gradient",
-    "text-shadow"
-],
-[
-    "font",
-    "font-family",
-    "font-size",
-    "font-weight",
-    "font-style",
-    "font-variant",
-    "font-size-adjust",
-    "font-stretch",
-    "font-effect",
-    "font-emphasize",
-    "font-emphasize-position",
-    "font-emphasize-style",
-    "font-smooth",
-    "line-height"
-]
-]';
+        [
+            "position",
+            "z-index",
+            "top",
+            "right",
+            "bottom",
+            "left"
+        ],
+        [
+            "display",
+            "visibility",
+            "float",
+            "clear",
+            "overflow",
+            "overflow-x",
+            "overflow-y",
+            "-ms-overflow-x",
+            "-ms-overflow-y",
+            "clip",
+            "zoom",
+            "flex-direction",
+            "flex-order",
+            "flex-pack",
+            "flex-align"
+        ],
+        [
+            "-webkit-box-sizing",
+            "-moz-box-sizing",
+            "box-sizing",
+            "width",
+            "min-width",
+            "max-width",
+            "height",
+            "min-height",
+            "max-height",
+            "margin",
+            "margin-top",
+            "margin-right",
+            "margin-bottom",
+            "margin-left",
+            "padding",
+            "padding-top",
+            "padding-right",
+            "padding-bottom",
+            "padding-left"
+        ],
+        [
+            "table-layout",
+            "empty-cells",
+            "caption-side",
+            "border-spacing",
+            "border-collapse",
+            "list-style",
+            "list-style-position",
+            "list-style-type",
+            "list-style-image"
+        ],
+        [
+            "content",
+            "quotes",
+            "counter-reset",
+            "counter-increment",
+            "resize",
+            "cursor",
+            "nav-index",
+            "nav-up",
+            "nav-right",
+            "nav-down",
+            "nav-left",
+            "-webkit-transition",
+            "-moz-transition",
+            "-ms-transition",
+            "-o-transition",
+            "transition",
+            "-webkit-transition-delay",
+            "-moz-transition-delay",
+            "-ms-transition-delay",
+            "-o-transition-delay",
+            "transition-delay",
+            "-webkit-transition-timing-function",
+            "-moz-transition-timing-function",
+            "-ms-transition-timing-function",
+            "-o-transition-timing-function",
+            "transition-timing-function",
+            "-webkit-transition-duration",
+            "-moz-transition-duration",
+            "-ms-transition-duration",
+            "-o-transition-duration",
+            "transition-duration",
+            "-webkit-transition-property",
+            "-moz-transition-property",
+            "-ms-transition-property",
+            "-o-transition-property",
+            "transition-property",
+            "-webkit-transform",
+            "-moz-transform",
+            "-ms-transform",
+            "-o-transform",
+            "transform",
+            "-webkit-transform-origin",
+            "-moz-transform-origin",
+            "-ms-transform-origin",
+            "-o-transform-origin",
+            "transform-origin",
+            "-webkit-animation",
+            "-moz-animation",
+            "-ms-animation",
+            "-o-animation",
+            "animation",
+            "-webkit-animation-name",
+            "-moz-animation-name",
+            "-ms-animation-name",
+            "-o-animation-name",
+            "animation-name",
+            "-webkit-animation-duration",
+            "-moz-animation-duration",
+            "-ms-animation-duration",
+            "-o-animation-duration",
+            "animation-duration",
+            "-webkit-animation-play-state",
+            "-moz-animation-play-state",
+            "-ms-animation-play-state",
+            "-o-animation-play-state",
+            "animation-play-state",
+            "-webkit-animation-timing-function",
+            "-moz-animation-timing-function",
+            "-ms-animation-timing-function",
+            "-o-animation-timing-function",
+            "animation-timing-function",
+            "-webkit-animation-delay",
+            "-moz-animation-delay",
+            "-ms-animation-delay",
+            "-o-animation-delay",
+            "animation-delay",
+            "-webkit-animation-iteration-count",
+            "-moz-animation-iteration-count",
+            "-ms-animation-iteration-count",
+            "-o-animation-iteration-count",
+            "animation-iteration-count",
+            "-webkit-animation-iteration-count",
+            "-moz-animation-iteration-count",
+            "-ms-animation-iteration-count",
+            "-o-animation-iteration-count",
+            "animation-iteration-count",
+            "-webkit-animation-direction",
+            "-moz-animation-direction",
+            "-ms-animation-direction",
+            "-o-animation-direction",
+            "animation-direction",
+            "text-align",
+            "-webkit-text-align-last",
+            "-moz-text-align-last",
+            "-ms-text-align-last",
+            "text-align-last",
+            "vertical-align",
+            "white-space",
+            "text-decoration",
+            "text-emphasis",
+            "text-emphasis-color",
+            "text-emphasis-style",
+            "text-emphasis-position",
+            "text-indent",
+            "-ms-text-justify",
+            "text-justify",
+            "text-transform",
+            "letter-spacing",
+            "word-spacing",
+            "-ms-writing-mode",
+            "text-outline",
+            "text-transform",
+            "text-wrap",
+            "text-overflow",
+            "-ms-text-overflow",
+            "text-overflow-ellipsis",
+            "text-overflow-mode",
+            "-ms-word-wrap",
+            "word-wrap",
+            "word-break",
+            "-ms-word-break",
+            "-moz-tab-size",
+            "-o-tab-size",
+            "tab-size",
+            "-webkit-hyphens",
+            "-moz-hyphens",
+            "hyphens",
+            "pointer-event"
+        ],
+        [
+            "opacity",
+            "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
+            "-ms-filter:\'progid:DXImageTransform.Microsoft.Alpha",
+            "-ms-interpolation-mode",
+            "color",
+            "border",
+            "border-collapse",
+            "border-width",
+            "border-style",
+            "border-color",
+            "border-top",
+            "border-top-width",
+            "border-top-style",
+            "border-top-color",
+            "border-right",
+            "border-right-width",
+            "border-right-style",
+            "border-right-color",
+            "border-bottom",
+            "border-bottom-width",
+            "border-bottom-style",
+            "border-bottom-color",
+            "border-left",
+            "border-left-width",
+            "border-left-style",
+            "border-left-color",
+            "-webkit-border-radius",
+            "-moz-border-radius",
+            "border-radius",
+            "-webkit-border-top-right-radius",
+            "-moz-border-top-right-radius",
+            "border-top-right-radius",
+            "-webkit-border-bottom-right-radius",
+            "-moz-border-bottom-right-radius",
+            "border-bottom-right-radius",
+            "-webkit-border-bottom-left-radius",
+            "-moz-border-bottom-left-radius",
+            "border-bottom-left-radius",
+            "-webkit-border-top-left-radius",
+            "-moz-border-top-left-radius",
+            "border-top-left-radius",
+            "-webkit-border-image",
+            "-moz-border-image",
+            "-o-border-image",
+            "border-image",
+            "-webkit-border-image-source",
+            "-moz-border-image-source",
+            "-o-border-image-source",
+            "border-image-source",
+            "-webkit-border-image-slice",
+            "-moz-border-image-slice",
+            "-o-border-image-slice",
+            "border-image-slice",
+            "-webkit-border-image-width",
+            "-moz-border-image-width",
+            "-o-border-image-width",
+            "border-image-width",
+            "-webkit-border-image-outset",
+            "-moz-border-image-outset",
+            "-o-border-image-outset",
+            "border-image-outset",
+            "-webkit-border-image-repeat",
+            "-moz-border-image-repeat",
+            "-o-border-image-repeat",
+            "border-image-repeat",
+            "outline",
+            "outline-width",
+            "outline-style",
+            "outline-color",
+            "outline-offset",
+            "background",
+            "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
+            "background-color",
+            "background-image",
+            "background-repeat",
+            "background-attachment",
+            "background-position",
+            "background-position-x",
+            "-ms-background-position-x",
+            "background-position-y",
+            "-ms-background-position-y",
+            "background-clip",
+            "background-origin",
+            "background-size",
+            "box-decoration-break",
+            "-webkit-box-shadow",
+            "-moz-box-shadow",
+            "box-shadow",
+            "-webkit-box-shadow",
+            "-moz-box-shadow",
+            "box-shadow",
+            "-webkit-box-shadow",
+            "-moz-box-shadow",
+            "box-shadow",
+            "-webkit-box-shadow",
+            "-moz-box-shadow",
+            "box-shadow",
+            "filter:progid:DXImageTransform.Microsoft.gradient",
+            "-ms-filter:\'progid:DXImageTransform.Microsoft.gradient",
+            "text-shadow"
+        ],
+        [
+            "font",
+            "font-family",
+            "font-size",
+            "font-weight",
+            "font-style",
+            "font-variant",
+            "font-size-adjust",
+            "font-stretch",
+            "font-effect",
+            "font-emphasize",
+            "font-emphasize-position",
+            "font-emphasize-style",
+            "font-smooth",
+            "line-height"
+        ]
+    ]';
 
     /**
      * @param string css
-     * @param boolean echo
+     * @param boolean debug
      * @param json custom_sort_order JSON expected
      * @return string
      *
@@ -739,8 +743,9 @@ function csscomb($css = '', $debug = false, $custom_sort_order = null) {
         }
     }
 
+
     /**
-     * Функция сетит $this->sort_order
+     * Функция устанавливает $this->sort_order
      *
      * @param json_array {string/JSON}
      *
@@ -775,16 +780,15 @@ function set_sort_order($json_array = null) {
     }
 
 
-
     /**
-     * Функция сетит $this->mode
+     * Функция устанавливает $this->mode
      *
      * @TODO: а если и тег 
-
- -
'; - } - - if ($this->output === false) return $this->code['resorted']; - } - - - function log($before, $after) { - echo ' - -
'.$before.'';
-        echo '
'; - echo '
'; - echo ''.var_dump($after).'
'; - } - - - - /** - * Возвращает сквозной прядковый номер элемента двумерного массива так, как если бы этот массив был одномерным - * @param {string} - * @return {bool|int} - */ - private function get_through_number($value) { - $i = 0; - foreach ($this->sort_order as $property_group) { - foreach ($property_group as $key => $val) { - if ($val == $value) return $i; - else $i++; - } - } - return false; - } - - /** - * Разделяет свойства на группы пустой строкой - * Внимание: вызывать только когда есть разделение на группы, иначе вернет входной массив без изменений - * @param {array} - * @return {array} - */ - private function separate_property_group($properties) { - if (is_array($this->sort_order[0])) { // Если в настройках нет разбиения на группы, то выводим входной массив без изменений - foreach ($properties as $key => &$property) { - $property = preg_replace('@\n\s*?(\n\s*?)@ismx', '$1', $property); - $array = explode(':', $property); - $prop_name[$key] = trim($array[0]); - } - foreach ($this->sort_order as $group_num => $property_group) { // Перебираем группы свойств - $intersect = array_intersect($prop_name, $property_group); - if (count($intersect) > 0) { - $num = array_keys($intersect); - $last_key = null; - foreach ($num as $n) { - $last_key = $n; - } - if ($properties[$last_key] !== end($properties)) { - $properties[$last_key] = $properties[$last_key]."\n"; - } - } - } - } - return $properties; - } - -} - From 32e11b77210472af7b577a74674ab5f708eae1d0 Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Sat, 16 May 2015 23:00:31 +1200 Subject: [PATCH 15/23] Refactored to use nodejs csscomb --- plugin/csscomb.vim | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugin/csscomb.vim b/plugin/csscomb.vim index 2592300..1cc9c7a 100644 --- a/plugin/csscomb.vim +++ b/plugin/csscomb.vim @@ -7,9 +7,13 @@ let g:CSScombPluginDir = fnamemodify(expand(""), ":h") function! g:CSScomb(count, line1, line2) - let content = join(getline(a:line1, a:line2), "\n") - let res = system("php ".fnameescape(g:CSScombPluginDir."/exec.php"), content) - let lines = split(res, "\n") + let content = getline(a:line1, a:line2) + + let tempFile = tempname() . '.' . &filetype + call writefile(content, tempFile) + system('csscomb ' . shellescape(tempFile)) + let lines = readfile(tempFile) + call setline(a:line1, lines) endfunction From 1dd89d982ea04f38912a5a87e86f5d437097503a Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Sat, 16 May 2015 23:03:08 +1200 Subject: [PATCH 16/23] Updated readme --- README.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 574ee18..6e3c826 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,11 @@ For more info, online demo and tests see [csscomb.com](http://csscomb.com/) ## The Requirements -CSScomb is written in pure PHP, without any external libraries or dependencies. -See details at [wiki](https://github.com/miripiruni/CSScomb/wiki/Requirements). +CSScomb is written in pure JavaScript. Install with: +```BASH +npm install -g csscomb +``` ## Installation @@ -29,6 +31,16 @@ Add this to .vimrc: Bundle 'git://github.com/miripiruni/CSScomb-for-Vim.git' ``` +### With NeoBundle +Add this to .vimrc: +``` +NeoBundle 'faceleg/vim-csscomb', { + \ 'build': { + \ 'unix': 'npm install -g csscomb', + \ 'mac': 'npm install -g csscomb' + \ }} +``` + ### Manual without plugins manager ``` git clone https://github.com/miripiruni/CSScomb-for-Vim.git csscomb @@ -40,3 +52,12 @@ Vim command: ``` :CSScomb ``` + +## Suggested Configuration + +```VIML +"mnemonic: 'beatify css' +autocmd FileType css noremap bc :CSScomb +" Automatically comb your CSS on save +autocmd BufWritePre,FileWritePre *.css,*.scss,*.sass silent! :CSScomb +``` From 0c9a3e746ebacd9d8b660457964765019fbacdae Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Sat, 16 May 2015 23:10:30 +1200 Subject: [PATCH 17/23] Added mistakenly omitted call --- plugin/csscomb.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/csscomb.vim b/plugin/csscomb.vim index 1cc9c7a..0d274a8 100644 --- a/plugin/csscomb.vim +++ b/plugin/csscomb.vim @@ -11,7 +11,7 @@ function! g:CSScomb(count, line1, line2) let tempFile = tempname() . '.' . &filetype call writefile(content, tempFile) - system('csscomb ' . shellescape(tempFile)) + call system('csscomb ' . shellescape(tempFile)) let lines = readfile(tempFile) call setline(a:line1, lines) From d6a3b4828e0ce8550bf83443e94eb9237ec2c680 Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Sun, 24 May 2015 08:51:08 +1200 Subject: [PATCH 18/23] Fixed repo references in README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6e3c826..4949821 100644 --- a/README.md +++ b/README.md @@ -22,19 +22,19 @@ npm install -g csscomb ``` cd ~/.vim/bundle -git clone https://github.com/miripiruni/CSScomb-for-Vim.git +git clone https://github.com/csscomb/vim-csscomb.git ``` ### With Vundle Add this to .vimrc: ``` -Bundle 'git://github.com/miripiruni/CSScomb-for-Vim.git' +Bundle 'git://github.com/csscomb/vim-csscomb.git' ``` ### With NeoBundle Add this to .vimrc: ``` -NeoBundle 'faceleg/vim-csscomb', { +NeoBundle 'csscomb/vim-csscomb', { \ 'build': { \ 'unix': 'npm install -g csscomb', \ 'mac': 'npm install -g csscomb' @@ -43,7 +43,7 @@ NeoBundle 'faceleg/vim-csscomb', { ### Manual without plugins manager ``` -git clone https://github.com/miripiruni/CSScomb-for-Vim.git csscomb +git clone https://github.com/csscomb/vim-csscomb.git csscomb cp -r csscomb/plugin/* ~/.vim/plugin/ ``` From 3a5b3ac072c542ffd87c3510c024964e5e53f942 Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Sun, 24 May 2015 08:53:20 +1200 Subject: [PATCH 19/23] Updated suggested mapping comment --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4949821..2076e6c 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Vim command: ## Suggested Configuration ```VIML -"mnemonic: 'beatify css' +" Map bc to run CSScomb. bc stands for beautify css autocmd FileType css noremap bc :CSScomb " Automatically comb your CSS on save autocmd BufWritePre,FileWritePre *.css,*.scss,*.sass silent! :CSScomb From f8afcc7c2816cb0f46a36840c49a6b14551156b4 Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Sun, 24 May 2015 09:01:26 +1200 Subject: [PATCH 20/23] Output csscomb error if there was one, do not attempt to update file content if error --- plugin/csscomb.vim | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugin/csscomb.vim b/plugin/csscomb.vim index 0d274a8..dae1b6b 100644 --- a/plugin/csscomb.vim +++ b/plugin/csscomb.vim @@ -11,10 +11,13 @@ function! g:CSScomb(count, line1, line2) let tempFile = tempname() . '.' . &filetype call writefile(content, tempFile) - call system('csscomb ' . shellescape(tempFile)) - let lines = readfile(tempFile) - - call setline(a:line1, lines) + let systemOutput = system('csscomb ' . shellescape(tempFile)) + if len(systemOutput) + echoerr split(systemOutput, "\n")[1] + else + let lines = readfile(tempFile) + call setline(a:line1, lines) + endif endfunction command! -nargs=? -range=% CSScomb :call g:CSScomb(, , , ) From 7f48e70a10a8736b2e7bcef0487a7c3f3e8df83a Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Mon, 25 May 2015 11:21:39 +1200 Subject: [PATCH 21/23] Updated readme with less support, removed build config portion of NeoBundle --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2076e6c..5fd4c0e 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,7 @@ Bundle 'git://github.com/csscomb/vim-csscomb.git' ### With NeoBundle Add this to .vimrc: ``` -NeoBundle 'csscomb/vim-csscomb', { - \ 'build': { - \ 'unix': 'npm install -g csscomb', - \ 'mac': 'npm install -g csscomb' - \ }} +NeoBundle 'csscomb/vim-csscomb' ``` ### Manual without plugins manager @@ -59,5 +55,5 @@ Vim command: " Map bc to run CSScomb. bc stands for beautify css autocmd FileType css noremap bc :CSScomb " Automatically comb your CSS on save -autocmd BufWritePre,FileWritePre *.css,*.scss,*.sass silent! :CSScomb +autocmd BufWritePre,FileWritePre *.css,*.less,*.scss,*.sass silent! :CSScomb ``` From 6317c8ffdf15dd29f1c06d5879d67dac6b840c22 Mon Sep 17 00:00:00 2001 From: Tony Ganch Date: Sat, 6 Jun 2015 03:07:03 +0200 Subject: [PATCH 22/23] Remove outdated docs --- doc/csscomb.txt | 71 ------------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 doc/csscomb.txt diff --git a/doc/csscomb.txt b/doc/csscomb.txt deleted file mode 100644 index 289ffba..0000000 --- a/doc/csscomb.txt +++ /dev/null @@ -1,71 +0,0 @@ -*csscomb.txt* CSScomb for Vim - -Vim plugin author: Aleksandr Batsuev -CSScomb author: Vyacheslav Oliyancuk -WebSite: http://csscomb.com -Repository: http://github.com/miripiruni/CSScomb-for-Vim - -============================================================================== -CONTENTS *csscomb-contents* - -About |csscomb-about| -Custom sort order |csscomb-custom-sort-order| -Install |csscomb-install| -Usage |csscomb-usage| - -============================================================================== -ABOUT *csscomb-about* - -The algorithm of CSScomb simulates web-technologist's actions upon working -with CSS-code to the limit. Usually to re-order code you move lines over each -other considering comments in the code, multilines records of property values, -hacks and everything that could be found in the real file. CSScomb reproduces -these actions for you. This means that the parser "thinks" as a person editing -the text, not as a blind robot parsing CSS. - -For more info, online demo and tests see http://csscomb.com - -What can CSScomb do? - -* Sorts CSS-properties within the selectors according to the settings. - -* Treats the initial formatting of style sheets carefully. - -* Sorts commented properties as if they are not commented. - -* Moves down unknown properties in the order they are met within the selector. - E.g.: he\ight: 100% and similar will be taken as the unknown ones. - -* Successfully parses @media ... {...} and any other constructions with @. - -* Successfully parses expressions and then moves them to the end of the - properties in the order they are met within the framework of properties of - one selector. - -============================================================================== -CUSTOM SORT ORDER *csscomb-custom-sort-order* - -For adjusting plugins use one-dimensional and two-dimensional JSON arrays. -In case of two-dimensional arrays the properties will be divided into groups -with an empty line. In plugins you should pick open file csscomb.php - -============================================================================== -INSTALL *csscomb-install* - -With Pathogen - cd ~/.vim/bundle - git clone https://github.com/miripiruni/csscomb-for-vim.git - -With Vundle - Add to .vimrc: - Bundle 'git://github.com/miripiruni/csscomb-for-vim.git' - -Manual without plugins manager - git clone https://github.com/miripiruni/CSScomb-for-Vim.git csscomb - cp -r csscomb/plugin/* ~/.vim/plugin/ - -============================================================================== -USAGE *csscomb-usage* - -For CSS resort you can use ':CSScomb' command. -Also you can select a part of CSS file and type ':CSScomb'. From d4c493da96ccc95bf2509b90ce14a09a5e343b9b Mon Sep 17 00:00:00 2001 From: Gertjan Reynaert Date: Mon, 24 Aug 2015 09:57:11 +0200 Subject: [PATCH 23/23] Fix vim configuration for auto-combing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5fd4c0e..dca0269 100644 --- a/README.md +++ b/README.md @@ -55,5 +55,5 @@ Vim command: " Map bc to run CSScomb. bc stands for beautify css autocmd FileType css noremap bc :CSScomb " Automatically comb your CSS on save -autocmd BufWritePre,FileWritePre *.css,*.less,*.scss,*.sass silent! :CSScomb +autocmd BufWritePre,FileWritePre *.css,*.less,*.scss,*.sass silent! :CSScomb ```