scss-lint 0.30.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/scss-lint +1 -4
- data/config/default.yml +5 -4
- data/data/property-sort-orders/recess.txt +149 -0
- data/data/property-sort-orders/smacss.txt +138 -0
- data/lib/scss_lint.rb +1 -0
- data/lib/scss_lint/cli.rb +93 -153
- data/lib/scss_lint/config.rb +16 -13
- data/lib/scss_lint/control_comment_processor.rb +83 -0
- data/lib/scss_lint/engine.rb +21 -5
- data/lib/scss_lint/exceptions.rb +6 -0
- data/lib/scss_lint/linter.rb +6 -2
- data/lib/scss_lint/linter/bang_format.rb +20 -9
- data/lib/scss_lint/linter/duplicate_property.rb +35 -30
- data/lib/scss_lint/linter/empty_line_between_blocks.rb +1 -1
- data/lib/scss_lint/linter/id_selector.rb +10 -0
- data/lib/scss_lint/linter/indentation.rb +2 -1
- data/lib/scss_lint/linter/leading_zero.rb +6 -6
- data/lib/scss_lint/linter/name_format.rb +11 -0
- data/lib/scss_lint/linter/selector_format.rb +0 -4
- data/lib/scss_lint/linter/single_line_per_property.rb +13 -7
- data/lib/scss_lint/linter/single_line_per_selector.rb +19 -11
- data/lib/scss_lint/linter/trailing_semicolon.rb +5 -3
- data/lib/scss_lint/linter/trailing_zero.rb +4 -4
- data/lib/scss_lint/options.rb +113 -0
- data/lib/scss_lint/reporter/default_reporter.rb +15 -7
- data/lib/scss_lint/reporter/json_reporter.rb +15 -8
- data/lib/scss_lint/reporter/xml_reporter.rb +12 -6
- data/lib/scss_lint/runner.rb +4 -5
- data/lib/scss_lint/version.rb +1 -1
- data/spec/scss_lint/cli_spec.rb +9 -229
- data/spec/scss_lint/linter/bang_format_spec.rb +20 -0
- data/spec/scss_lint/linter/duplicate_property_spec.rb +13 -0
- data/spec/scss_lint/linter/empty_line_between_blocks_spec.rb +12 -11
- data/spec/scss_lint/linter/id_selector_spec.rb +62 -0
- data/spec/scss_lint/linter/indentation_spec.rb +11 -0
- data/spec/scss_lint/linter/name_format_spec.rb +147 -117
- data/spec/scss_lint/linter/selector_format_spec.rb +3 -66
- data/spec/scss_lint/linter/trailing_semicolon_spec.rb +20 -0
- data/spec/scss_lint/linter_spec.rb +248 -0
- data/spec/scss_lint/options_spec.rb +42 -0
- data/spec/spec_helper.rb +1 -1
- metadata +177 -183
- data/lib/scss_lint/linter/id_with_extraneous_selector.rb +0 -20
- data/spec/scss_lint/linter/id_with_extraneous_selector_spec.rb +0 -139
@@ -1,20 +0,0 @@
|
|
1
|
-
module SCSSLint
|
2
|
-
# Checks for a selector with an ID combined with some other selector.
|
3
|
-
class Linter::IdWithExtraneousSelector < Linter
|
4
|
-
include LinterRegistry
|
5
|
-
|
6
|
-
def visit_simple_sequence(seq)
|
7
|
-
id_sel = seq.members.find { |simple| simple.is_a?(Sass::Selector::Id) }
|
8
|
-
return unless id_sel
|
9
|
-
|
10
|
-
can_be_simplified = seq.members.any? do |simple|
|
11
|
-
!simple.is_a?(Sass::Selector::Id) &&
|
12
|
-
!simple.is_a?(Sass::Selector::Pseudo)
|
13
|
-
end
|
14
|
-
return unless can_be_simplified
|
15
|
-
|
16
|
-
add_lint(seq.line, "Selector `#{seq}` can be simplified to `#{id_sel}`, " \
|
17
|
-
'since IDs should be uniquely identifying')
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,139 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe SCSSLint::Linter::IdWithExtraneousSelector do
|
4
|
-
context 'when rule is just a type' do
|
5
|
-
let(:css) { <<-CSS }
|
6
|
-
p {
|
7
|
-
}
|
8
|
-
CSS
|
9
|
-
|
10
|
-
it { should_not report_lint }
|
11
|
-
end
|
12
|
-
|
13
|
-
context 'when rule is just an ID' do
|
14
|
-
let(:css) { <<-CSS }
|
15
|
-
#identifier {
|
16
|
-
}
|
17
|
-
CSS
|
18
|
-
|
19
|
-
it { should_not report_lint }
|
20
|
-
end
|
21
|
-
|
22
|
-
context 'when rule is just a class' do
|
23
|
-
let(:css) { <<-CSS }
|
24
|
-
.class {
|
25
|
-
}
|
26
|
-
CSS
|
27
|
-
|
28
|
-
it { should_not report_lint }
|
29
|
-
end
|
30
|
-
|
31
|
-
context 'when rule is a type with a class' do
|
32
|
-
let(:css) { <<-CSS }
|
33
|
-
a.class {
|
34
|
-
}
|
35
|
-
CSS
|
36
|
-
|
37
|
-
it { should_not report_lint }
|
38
|
-
end
|
39
|
-
|
40
|
-
context 'when rule is a type with an ID' do
|
41
|
-
let(:css) { <<-CSS }
|
42
|
-
a#identifier {
|
43
|
-
}
|
44
|
-
CSS
|
45
|
-
|
46
|
-
it { should report_lint line: 1 }
|
47
|
-
end
|
48
|
-
|
49
|
-
context 'when rule is an ID with a pseudo' do
|
50
|
-
let(:css) { <<-CSS }
|
51
|
-
#identifier:active {
|
52
|
-
}
|
53
|
-
CSS
|
54
|
-
|
55
|
-
it { should_not report_lint }
|
56
|
-
end
|
57
|
-
|
58
|
-
context 'when rule is a type with an ID with a pseudo' do
|
59
|
-
let(:css) { <<-CSS }
|
60
|
-
a#identifier:active {
|
61
|
-
}
|
62
|
-
CSS
|
63
|
-
|
64
|
-
it { should report_lint line: 1 }
|
65
|
-
end
|
66
|
-
|
67
|
-
context 'when rule contains multiple selectors' do
|
68
|
-
context 'when all of the selectors are just IDs, classes, or types' do
|
69
|
-
let(:css) { <<-CSS }
|
70
|
-
#identifier,
|
71
|
-
.class,
|
72
|
-
a {
|
73
|
-
}
|
74
|
-
CSS
|
75
|
-
|
76
|
-
it { should_not report_lint }
|
77
|
-
end
|
78
|
-
|
79
|
-
context 'when one of the rules is an ID with a pseudo' do
|
80
|
-
let(:css) { <<-CSS }
|
81
|
-
#identifier:active,
|
82
|
-
.class {
|
83
|
-
}
|
84
|
-
CSS
|
85
|
-
|
86
|
-
it { should_not report_lint }
|
87
|
-
end
|
88
|
-
|
89
|
-
context 'when one of the rules is a type with an ID with a pseudo' do
|
90
|
-
let(:css) { <<-CSS }
|
91
|
-
a#identifier:active,
|
92
|
-
.class {
|
93
|
-
}
|
94
|
-
CSS
|
95
|
-
|
96
|
-
it { should report_lint line: 1 }
|
97
|
-
end
|
98
|
-
|
99
|
-
context 'when one of the selectors is a type and class' do
|
100
|
-
let(:css) { <<-CSS }
|
101
|
-
#identifier,
|
102
|
-
a.class {
|
103
|
-
}
|
104
|
-
CSS
|
105
|
-
|
106
|
-
it { should_not report_lint }
|
107
|
-
end
|
108
|
-
|
109
|
-
context 'when one of the selectors is a type and ID' do
|
110
|
-
let(:css) { <<-CSS }
|
111
|
-
#identifier,
|
112
|
-
a#my-id {
|
113
|
-
}
|
114
|
-
CSS
|
115
|
-
|
116
|
-
it { should report_lint line: 1 }
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
context 'when rule contains a nested rule with type and ID' do
|
121
|
-
let(:css) { <<-CSS }
|
122
|
-
p {
|
123
|
-
a#identifier {
|
124
|
-
}
|
125
|
-
}
|
126
|
-
CSS
|
127
|
-
|
128
|
-
it { should report_lint line: 2 }
|
129
|
-
end
|
130
|
-
|
131
|
-
context 'when selector contains a class and ID' do
|
132
|
-
let(:css) { <<-CSS }
|
133
|
-
#id.class {
|
134
|
-
}
|
135
|
-
CSS
|
136
|
-
|
137
|
-
it { should report_lint line: 1 }
|
138
|
-
end
|
139
|
-
end
|