Skip to content

Commit 3eb9d8f

Browse files
committed
Comment the code
1 parent 765475e commit 3eb9d8f

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

index.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function getSortOrder(options) {
2626
return {};
2727
}
2828

29+
// Add sorting indexes to order
2930
var order = {};
3031

3132
if (typeof sortOrder[0] === 'string') {
@@ -49,6 +50,7 @@ function getSortOrder(options) {
4950
return order;
5051
}
5152

53+
// Replace multiple line breaks with one
5254
function cleanLineBreaks(node) {
5355
if (node.raws.before) {
5456
node.raws.before = node.raws.before.replace(/\r\n\s*\r\n/g, '\r\n').replace(/\n\s*\n/g, '\n');
@@ -66,8 +68,10 @@ module.exports = postcss.plugin('postcss-sort', function (opts) {
6668
var lastPropertyIndex = order['...'] ? order['...'].prop : Infinity;
6769

6870
css.walk(function (rule) {
71+
// Process only rules and atrules with nodes
6972
if ((rule.type === 'rule' || rule.type === 'atrule') && rule.nodes && rule.nodes.length) {
7073

74+
// Nodes for sorting
7175
var processed = [];
7276

7377
rule.each(function (node, index) {
@@ -78,20 +82,21 @@ module.exports = postcss.plugin('postcss-sort', function (opts) {
7882
} else if (node.type === 'decl') {
7983
sortName = node.prop;
8084

81-
// if property start with $ and letters it's a variable
85+
// If property start with $ and letters it's a variable
8286
if (/^\$[\w-]+/.test(node.prop)) {
8387
sortName = '$variable';
8488
}
8589
} else if (node.type === 'atrule') {
8690
sortName = '@atrule';
8791

92+
// If atrule with name is in order use the name
8893
var atruleName = '@' + node.name;
8994

9095
if (order[atruleName]) {
9196
sortName = atruleName;
9297
}
9398

94-
// if atRule has a name like @mixin name or @include name, we can sort by this name too
99+
// Ff atRule has a parameter like @mixin name or @include name, sort by this parameter
95100
var atruleParameter = /^[\w-]+/.exec(node.params);
96101

97102
if (atruleParameter && atruleParameter.length) {
@@ -106,14 +111,15 @@ module.exports = postcss.plugin('postcss-sort', function (opts) {
106111
}
107112

108113
// If the declaration's property is in order's list, save its
109-
// group and property indices. Otherwise set them to 10000, so
114+
// group and property indexes. Otherwise set them to 10000, so
110115
// declaration appears at the bottom of a sorted list:
111116
var orderProperty = order[sortName];
112117

113118
node.groupIndex = orderProperty && orderProperty.group > -1 ? orderProperty.group : lastGroupIndex;
114119
node.propertyIndex = orderProperty && orderProperty.prop > -1 ? orderProperty.prop : lastPropertyIndex;
115120
node.initialIndex = index;
116121

122+
// If comment on separate line before node, use node's indexes for comment
117123
if (node.prev() && node.prev().type === 'comment') {
118124
var previousNode = node.prev();
119125

@@ -130,6 +136,7 @@ module.exports = postcss.plugin('postcss-sort', function (opts) {
130136

131137
processed.push(node);
132138

139+
// If comment on same line with the node and node, use node's indexes for comment
133140
if (node.next() && node.next().type === 'comment') {
134141
var nextNode = node.next();
135142

@@ -162,6 +169,7 @@ module.exports = postcss.plugin('postcss-sort', function (opts) {
162169
rule.removeAll();
163170
rule.append(processed);
164171

172+
// Remove all empty lines and add empty lines between groups
165173
rule.each(function (node) {
166174
node = cleanLineBreaks(node);
167175

0 commit comments

Comments
 (0)