Skip to content

Commit 73ea0b0

Browse files
committed
add new-line spacing to match original code style
Since not everyone uses a custom line-height in the editor instead of inserting line breaks for clarify.
1 parent e55d783 commit 73ea0b0

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

lib/plugin.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@ const hasParentRule = (rule) => {
1818
if (!rule.parent) {
1919
return false
2020
}
21+
2122
if (rule.parent.type === 'rule') {
2223
return true
2324
}
25+
2426
return hasParentRule(rule.parent)
2527
}
2628

@@ -48,6 +50,7 @@ const parentIsAllowedAtRule = (rule) => {
4850
*/
4951
const regexpToGlobalRegexp = (regexp) => {
5052
let source = regexp instanceof RegExp ? regexp.source : regexp
53+
5154
return new RegExp(source, 'g')
5255
}
5356

@@ -59,43 +62,56 @@ module.exports = (options = {}) => {
5962
ignoreRoot = true,
6063
dropRoot = true,
6164
} = options
65+
6266
selfSelector = regexpToGlobalRegexp(selfSelector)
67+
6368
const namespaceSelector = (selector, computedNamespace) => {
6469
if (hasSelfSelector(selector)) {
6570
return computedNamespace.split(',').map(namespace => selector.replace(selfSelector, namespace)).join(',');
6671
}
72+
6773
if (hasRootSelector(selector)) {
6874
return dropRootSelector(selector)
6975
}
76+
7077
return computedNamespace.split(',').map(namespace => `${namespace} ${selector}`).join(',');
7178
}
79+
7280
const hasSelfSelector = (selector) => {
7381
selfSelector.lastIndex = 0
82+
7483
return selfSelector.test(selector)
7584
}
85+
7686
const hasRootSelector = (selector) => {
7787
return ignoreRoot && selector.search(rootSelector) === 0
7888
}
89+
7990
const dropRootSelector = (selector) => {
8091
if (dropRoot) {
8192
return selector.replace(rootSelector, '').trim() || selector
8293
}
94+
8395
return selector
8496
}
97+
8598
return {
8699
postcssPlugin: 'postcss-selector-namespaces',
87100
Once (root, { result }) {
88101
const computedNamespace =
89102
typeof namespace === 'string'
90103
? namespace
91104
: namespace(root.source.input.file)
105+
92106
if (!computedNamespace) {
93107
return
94108
}
109+
95110
root.walkRules(rule => {
96111
if (canNamespaceSelectors(rule)) {
97112
return
98113
}
114+
99115
rule.selectors = rule.selectors.map(selector =>
100116
namespaceSelector(selector, computedNamespace),
101117
)

0 commit comments

Comments
 (0)