scss-lint 0.25.1 → 0.26.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/default.yml +10 -1
- data/data/property-sort-orders/concentric.txt +99 -0
- data/lib/scss_lint.rb +1 -0
- data/lib/scss_lint/cli.rb +9 -3
- data/lib/scss_lint/exceptions.rb +4 -0
- data/lib/scss_lint/linter.rb +10 -1
- data/lib/scss_lint/linter/capitalization_in_selector.rb +14 -6
- data/lib/scss_lint/linter/compass/property_with_mixin.rb +9 -2
- data/lib/scss_lint/linter/indentation.rb +28 -6
- data/lib/scss_lint/linter/property_sort_order.rb +61 -9
- data/lib/scss_lint/linter/single_line_per_property.rb +53 -0
- data/lib/scss_lint/linter/single_line_per_selector.rb +6 -1
- data/lib/scss_lint/linter/space_after_comma.rb +27 -19
- data/lib/scss_lint/linter/space_before_brace.rb +5 -4
- data/lib/scss_lint/linter/trailing_semicolon.rb +53 -0
- data/lib/scss_lint/linter/unnecessary_parent_reference.rb +36 -0
- data/lib/scss_lint/reporter/default_reporter.rb +7 -2
- data/lib/scss_lint/reporter/xml_reporter.rb +2 -1
- data/lib/scss_lint/runner.rb +7 -3
- data/lib/scss_lint/version.rb +1 -1
- data/spec/scss_lint/cli_spec.rb +314 -0
- data/spec/scss_lint/config_spec.rb +439 -0
- data/spec/scss_lint/engine_spec.rb +24 -0
- data/spec/scss_lint/linter/border_zero_spec.rb +84 -0
- data/spec/scss_lint/linter/capitalization_in_selector_spec.rb +71 -0
- data/spec/scss_lint/linter/color_keyword_spec.rb +83 -0
- data/spec/scss_lint/linter/comment_spec.rb +55 -0
- data/spec/scss_lint/linter/compass/property_with_mixin_spec.rb +55 -0
- data/spec/scss_lint/linter/debug_statement_spec.rb +21 -0
- data/spec/scss_lint/linter/declaration_order_spec.rb +94 -0
- data/spec/scss_lint/linter/duplicate_property_spec.rb +176 -0
- data/spec/scss_lint/linter/else_placement_spec.rb +106 -0
- data/spec/scss_lint/linter/empty_line_between_blocks_spec.rb +263 -0
- data/spec/scss_lint/linter/empty_rule_spec.rb +27 -0
- data/spec/scss_lint/linter/final_newline_spec.rb +49 -0
- data/spec/scss_lint/linter/hex_length_spec.rb +104 -0
- data/spec/scss_lint/linter/hex_notation_spec.rb +104 -0
- data/spec/scss_lint/linter/hex_validation_spec.rb +36 -0
- data/spec/scss_lint/linter/id_with_extraneous_selector_spec.rb +139 -0
- data/spec/scss_lint/linter/indentation_spec.rb +242 -0
- data/spec/scss_lint/linter/leading_zero_spec.rb +233 -0
- data/spec/scss_lint/linter/mergeable_selector_spec.rb +283 -0
- data/spec/scss_lint/linter/name_format_spec.rb +206 -0
- data/spec/scss_lint/linter/placeholder_in_extend_spec.rb +63 -0
- data/spec/scss_lint/linter/property_sort_order_spec.rb +246 -0
- data/spec/scss_lint/linter/property_spelling_spec.rb +57 -0
- data/spec/scss_lint/linter/selector_depth_spec.rb +159 -0
- data/spec/scss_lint/linter/shorthand_spec.rb +172 -0
- data/spec/scss_lint/linter/single_line_per_property_spec.rb +73 -0
- data/spec/scss_lint/linter/single_line_per_selector_spec.rb +121 -0
- data/spec/scss_lint/linter/space_after_comma_spec.rb +315 -0
- data/spec/scss_lint/linter/space_after_property_colon_spec.rb +238 -0
- data/spec/scss_lint/linter/space_after_property_name_spec.rb +23 -0
- data/spec/scss_lint/linter/space_before_brace_spec.rb +447 -0
- data/spec/scss_lint/linter/space_between_parens_spec.rb +263 -0
- data/spec/scss_lint/linter/string_quotes_spec.rb +303 -0
- data/spec/scss_lint/linter/trailing_semicolon_spec.rb +188 -0
- data/spec/scss_lint/linter/unnecessary_mantissa_spec.rb +67 -0
- data/spec/scss_lint/linter/unnecessary_parent_reference_spec.rb +67 -0
- data/spec/scss_lint/linter/url_format_spec.rb +55 -0
- data/spec/scss_lint/linter/url_quotes_spec.rb +63 -0
- data/spec/scss_lint/linter/zero_unit_spec.rb +113 -0
- data/spec/scss_lint/linter_registry_spec.rb +50 -0
- data/spec/scss_lint/location_spec.rb +42 -0
- data/spec/scss_lint/reporter/config_reporter_spec.rb +42 -0
- data/spec/scss_lint/reporter/default_reporter_spec.rb +73 -0
- data/spec/scss_lint/reporter/files_reporter_spec.rb +38 -0
- data/spec/scss_lint/reporter/xml_reporter_spec.rb +103 -0
- data/spec/scss_lint/reporter_spec.rb +11 -0
- data/spec/scss_lint/runner_spec.rb +132 -0
- data/spec/scss_lint/selector_visitor_spec.rb +264 -0
- data/spec/spec_helper.rb +34 -0
- data/spec/support/isolated_environment.rb +25 -0
- data/spec/support/matchers/report_lint.rb +48 -0
- metadata +126 -8
- data/lib/scss_lint/linter/trailing_semicolon_after_property_value.rb +0 -40
@@ -0,0 +1,264 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SCSSLint::SelectorVisitor do
|
4
|
+
describe '#visit' do
|
5
|
+
let(:engine) { SCSSLint::Engine.new(css) }
|
6
|
+
before { RuleVisitor.new(visitor).run(engine) }
|
7
|
+
|
8
|
+
# Visits every rule in the given parse tree and passes the parsed selector
|
9
|
+
# to the given `selector_visitor`.
|
10
|
+
class RuleVisitor < Sass::Tree::Visitors::Base
|
11
|
+
def initialize(selector_visitor)
|
12
|
+
@selector_visitor = selector_visitor
|
13
|
+
end
|
14
|
+
|
15
|
+
def run(engine)
|
16
|
+
visit(engine.tree)
|
17
|
+
end
|
18
|
+
|
19
|
+
def visit_rule(node)
|
20
|
+
@selector_visitor.visit_selector(node.parsed_rules)
|
21
|
+
yield # Continue linting children
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Superclass for all the test selector visitors
|
26
|
+
class TrackingSelectorVisitor
|
27
|
+
include SCSSLint::SelectorVisitor
|
28
|
+
|
29
|
+
attr_reader :node_order
|
30
|
+
|
31
|
+
def initialize
|
32
|
+
@node_order = []
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when visitor defines visit_attribute' do
|
37
|
+
class TestAttributeVisitor < TrackingSelectorVisitor
|
38
|
+
def visit_attribute(attribute)
|
39
|
+
@node_order << attribute.name.join
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
let(:visitor) { TestAttributeVisitor.new }
|
44
|
+
|
45
|
+
let(:css) { <<-CSS }
|
46
|
+
[rel="nofollow"] {}
|
47
|
+
a[href="http"] {}
|
48
|
+
.class [data-count] {}
|
49
|
+
CSS
|
50
|
+
|
51
|
+
it 'visits all attribute nodes' do
|
52
|
+
visitor.node_order.should == %w[rel href data-count]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context 'when visitor defines visit_class' do
|
57
|
+
class TestClassVisitor < TrackingSelectorVisitor
|
58
|
+
def visit_class(klass)
|
59
|
+
@node_order << klass.name.join
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
let(:visitor) { TestClassVisitor.new }
|
64
|
+
|
65
|
+
let(:css) { <<-CSS }
|
66
|
+
a.link {}
|
67
|
+
.menu .menu-item {}
|
68
|
+
.button[data-source], .overlay {}
|
69
|
+
CSS
|
70
|
+
|
71
|
+
it 'visits all class nodes' do
|
72
|
+
visitor.node_order.should == %w[link menu menu-item button overlay]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context 'when visitor defines visit_element' do
|
77
|
+
class TestElementVisitor < TrackingSelectorVisitor
|
78
|
+
def visit_element(element)
|
79
|
+
@node_order << element.name.join
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
let(:visitor) { TestElementVisitor.new }
|
84
|
+
|
85
|
+
let(:css) { <<-CSS }
|
86
|
+
a, b {}
|
87
|
+
.class {}
|
88
|
+
i + p {}
|
89
|
+
CSS
|
90
|
+
|
91
|
+
it 'visits all element nodes' do
|
92
|
+
visitor.node_order.should == %w[a b i p]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context 'when visitor defines visit_id' do
|
97
|
+
class TestIdVisitor < TrackingSelectorVisitor
|
98
|
+
def visit_id(id)
|
99
|
+
@node_order << id.name.join
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
let(:visitor) { TestIdVisitor.new }
|
104
|
+
|
105
|
+
let(:css) { <<-CSS }
|
106
|
+
#something, #thing {}
|
107
|
+
#object + #entity {}
|
108
|
+
CSS
|
109
|
+
|
110
|
+
it 'visits all id nodes' do
|
111
|
+
visitor.node_order.should == %w[something thing object entity]
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context 'when visitor defines visit_parent' do
|
116
|
+
class TestParentVisitor < TrackingSelectorVisitor
|
117
|
+
def visit_parent(parent)
|
118
|
+
@node_order << parent.line
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
let(:visitor) { TestParentVisitor.new }
|
123
|
+
|
124
|
+
let(:css) { <<-CSS }
|
125
|
+
p {
|
126
|
+
&.class {}
|
127
|
+
.container & {}
|
128
|
+
.nothing {}
|
129
|
+
}
|
130
|
+
CSS
|
131
|
+
|
132
|
+
it 'visits all parent nodes' do
|
133
|
+
visitor.node_order.should == [2, 3]
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
context 'when visitor defines visit_placeholder' do
|
138
|
+
class TestPlaceholderVisitor < TrackingSelectorVisitor
|
139
|
+
def visit_placeholder(placeholder)
|
140
|
+
@node_order << placeholder.name.join
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
let(:visitor) { TestPlaceholderVisitor.new }
|
145
|
+
|
146
|
+
let(:css) { <<-CSS }
|
147
|
+
%placeholder, %other-placeholder {}
|
148
|
+
.button, %button {}
|
149
|
+
CSS
|
150
|
+
|
151
|
+
it 'visits all placeholder nodes' do
|
152
|
+
visitor.node_order.should == %w[placeholder other-placeholder button]
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
context 'when visitor defines visit_pseudo' do
|
157
|
+
class TestPseudoVisitor < TrackingSelectorVisitor
|
158
|
+
def visit_pseudo(pseudo)
|
159
|
+
@node_order << pseudo.name.join
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
let(:visitor) { TestPseudoVisitor.new }
|
164
|
+
|
165
|
+
let(:css) { <<-CSS }
|
166
|
+
li:first-child, li:last-child {}
|
167
|
+
p {
|
168
|
+
&:first-letter {}
|
169
|
+
}
|
170
|
+
CSS
|
171
|
+
|
172
|
+
it 'visits all pseudo-selector nodes' do
|
173
|
+
visitor.node_order.should == %w[first-child last-child first-letter]
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
context 'when visitor defines visit_universal' do
|
178
|
+
class TestUniversalVisitor < TrackingSelectorVisitor
|
179
|
+
def visit_universal(universal)
|
180
|
+
@node_order << universal.line
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
let(:visitor) { TestUniversalVisitor.new }
|
185
|
+
|
186
|
+
let(:css) { <<-CSS }
|
187
|
+
p > * {}
|
188
|
+
* {}
|
189
|
+
li {}
|
190
|
+
*:first-child {}
|
191
|
+
CSS
|
192
|
+
|
193
|
+
it 'visits all universal-selector nodes' do
|
194
|
+
visitor.node_order.should == [1, 2, 4]
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
context 'when visitor defines visit_simple_sequence' do
|
199
|
+
class TestSimpleSequenceVisitor < TrackingSelectorVisitor
|
200
|
+
def visit_simple_sequence(seq)
|
201
|
+
@node_order << seq
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
let(:visitor) { TestSimpleSequenceVisitor.new }
|
206
|
+
|
207
|
+
let(:css) { <<-CSS }
|
208
|
+
a, b, p[lang] {}
|
209
|
+
a.link + b.word {}
|
210
|
+
li {}
|
211
|
+
ul > li {}
|
212
|
+
p span {}
|
213
|
+
CSS
|
214
|
+
|
215
|
+
it 'visits all simple sequences' do
|
216
|
+
visitor.node_order.count.should == 10
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
context 'when visitor defines visit_sequence' do
|
221
|
+
class TestSequenceVisitor < TrackingSelectorVisitor
|
222
|
+
def visit_sequence(seq)
|
223
|
+
@node_order << seq
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
let(:visitor) { TestSequenceVisitor.new }
|
228
|
+
|
229
|
+
let(:css) { <<-CSS }
|
230
|
+
a, b, p[lang] {}
|
231
|
+
a.link + b.word {}
|
232
|
+
li {}
|
233
|
+
ul > li {}
|
234
|
+
p span {}
|
235
|
+
CSS
|
236
|
+
|
237
|
+
it 'visits all sequences' do
|
238
|
+
visitor.node_order.count.should == 7
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
context 'when visitor defines visit_comma_sequence' do
|
243
|
+
class TestCommaSequenceVisitor < TrackingSelectorVisitor
|
244
|
+
def visit_comma_sequence(seq)
|
245
|
+
@node_order << seq
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
let(:visitor) { TestCommaSequenceVisitor.new }
|
250
|
+
|
251
|
+
let(:css) { <<-CSS }
|
252
|
+
a, b, p[lang] {}
|
253
|
+
a.link + b.word {}
|
254
|
+
li {}
|
255
|
+
ul > li {}
|
256
|
+
p span {}
|
257
|
+
CSS
|
258
|
+
|
259
|
+
it 'visits all comma (i.e. selector) sequences' do
|
260
|
+
visitor.node_order.count.should == 5
|
261
|
+
end
|
262
|
+
end
|
263
|
+
end
|
264
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'scss_lint'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each { |f| require f }
|
5
|
+
|
6
|
+
RSpec.configure do |config|
|
7
|
+
config.expect_with :rspec do |c|
|
8
|
+
c.syntax = [:expect, :should]
|
9
|
+
end
|
10
|
+
|
11
|
+
config.mock_with :rspec do |c|
|
12
|
+
c.syntax = :should
|
13
|
+
end
|
14
|
+
|
15
|
+
config.before(:each) do
|
16
|
+
# If running a linter spec, run the described linter against the CSS code
|
17
|
+
# for each example. This significantly DRYs up our linter specs to contain
|
18
|
+
# only tests, since all the setup code is now centralized here.
|
19
|
+
if described_class < SCSSLint::Linter
|
20
|
+
initial_indent = css[/\A(\s*)/, 1]
|
21
|
+
normalized_css = css.gsub(/^#{initial_indent}/, '')
|
22
|
+
|
23
|
+
# Use the configuration settings defined by default unless a specific
|
24
|
+
# configuration has been provided for the test.
|
25
|
+
local_config = if respond_to?(:linter_config)
|
26
|
+
linter_config
|
27
|
+
else
|
28
|
+
SCSSLint::Config.default.linter_options(subject)
|
29
|
+
end
|
30
|
+
|
31
|
+
subject.run(SCSSLint::Engine.new(normalized_css), local_config)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'tmpdir'
|
3
|
+
|
4
|
+
shared_context 'isolated environment' do
|
5
|
+
around do |example|
|
6
|
+
Dir.mktmpdir do |tmpdir|
|
7
|
+
original_home = ENV['HOME']
|
8
|
+
|
9
|
+
begin
|
10
|
+
virtual_home = File.expand_path(File.join(tmpdir, 'home'))
|
11
|
+
Dir.mkdir(virtual_home)
|
12
|
+
ENV['HOME'] = virtual_home
|
13
|
+
|
14
|
+
working_dir = File.join(tmpdir, 'work')
|
15
|
+
Dir.mkdir(working_dir)
|
16
|
+
|
17
|
+
Dir.chdir(working_dir) do
|
18
|
+
example.run
|
19
|
+
end
|
20
|
+
ensure
|
21
|
+
ENV['HOME'] = original_home
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
RSpec::Matchers.define :report_lint do |options|
|
2
|
+
options ||= {}
|
3
|
+
count = options[:count]
|
4
|
+
expected_line = options[:line]
|
5
|
+
|
6
|
+
match do |linter|
|
7
|
+
has_lints?(linter, expected_line, count)
|
8
|
+
end
|
9
|
+
|
10
|
+
failure_message do |linter|
|
11
|
+
'expected that a lint would be reported' +
|
12
|
+
(expected_line ? " on line #{expected_line}" : '') +
|
13
|
+
case linter.lints.count
|
14
|
+
when 0
|
15
|
+
''
|
16
|
+
when 1
|
17
|
+
", but was on line #{linter.lints.first.location.line}"
|
18
|
+
else
|
19
|
+
lines = lint_lines(linter)
|
20
|
+
", but lints were reported on lines #{lines[0...-1].join(', ')} and #{lines.last}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
failure_message_when_negated do
|
25
|
+
'expected that a lint would not be reported'
|
26
|
+
end
|
27
|
+
|
28
|
+
description do
|
29
|
+
'report a lint' + (expected_line ? " on line #{expected_line}" : '')
|
30
|
+
end
|
31
|
+
|
32
|
+
def has_lints?(linter, expected_line, count)
|
33
|
+
if expected_line && count
|
34
|
+
linter.lints.count == count &&
|
35
|
+
lint_lines(linter).all? { |line| line == expected_line }
|
36
|
+
elsif expected_line
|
37
|
+
lint_lines(linter).include?(expected_line)
|
38
|
+
elsif count
|
39
|
+
linter.lints.count == count
|
40
|
+
else
|
41
|
+
linter.lints.count > 0
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def lint_lines(linter)
|
46
|
+
linter.lints.map { |lint| lint.location.line }
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scss-lint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.26.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Causes Engineering
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-07-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rainbow
|
@@ -32,6 +32,9 @@ dependencies:
|
|
32
32
|
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 3.3.0
|
35
|
+
- - '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.3.7
|
35
38
|
type: :runtime
|
36
39
|
prerelease: false
|
37
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -39,6 +42,9 @@ dependencies:
|
|
39
42
|
- - ~>
|
40
43
|
- !ruby/object:Gem::Version
|
41
44
|
version: 3.3.0
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.3.7
|
42
48
|
- !ruby/object:Gem::Dependency
|
43
49
|
name: nokogiri
|
44
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,28 +65,28 @@ dependencies:
|
|
59
65
|
requirements:
|
60
66
|
- - ~>
|
61
67
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
68
|
+
version: '3.0'
|
63
69
|
type: :development
|
64
70
|
prerelease: false
|
65
71
|
version_requirements: !ruby/object:Gem::Requirement
|
66
72
|
requirements:
|
67
73
|
- - ~>
|
68
74
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
75
|
+
version: '3.0'
|
70
76
|
- !ruby/object:Gem::Dependency
|
71
77
|
name: rubocop
|
72
78
|
requirement: !ruby/object:Gem::Requirement
|
73
79
|
requirements:
|
74
80
|
- - '='
|
75
81
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.
|
82
|
+
version: 0.24.1
|
77
83
|
type: :development
|
78
84
|
prerelease: false
|
79
85
|
version_requirements: !ruby/object:Gem::Requirement
|
80
86
|
requirements:
|
81
87
|
- - '='
|
82
88
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.
|
89
|
+
version: 0.24.1
|
84
90
|
description: Configurable tool for writing clean and consistent SCSS
|
85
91
|
email:
|
86
92
|
- eng@causes.com
|
@@ -92,6 +98,7 @@ extra_rdoc_files: []
|
|
92
98
|
files:
|
93
99
|
- config/default.yml
|
94
100
|
- data/properties.txt
|
101
|
+
- data/property-sort-orders/concentric.txt
|
95
102
|
- lib/scss_lint/version.rb
|
96
103
|
- lib/scss_lint/constants.rb
|
97
104
|
- lib/scss_lint/utils.rb
|
@@ -108,6 +115,7 @@ files:
|
|
108
115
|
- lib/scss_lint/selector_visitor.rb
|
109
116
|
- lib/scss_lint/sass/tree.rb
|
110
117
|
- lib/scss_lint/sass/script.rb
|
118
|
+
- lib/scss_lint/exceptions.rb
|
111
119
|
- lib/scss_lint/config.rb
|
112
120
|
- lib/scss_lint/linter/compass.rb
|
113
121
|
- lib/scss_lint/linter/space_after_comma.rb
|
@@ -116,7 +124,7 @@ files:
|
|
116
124
|
- lib/scss_lint/linter/hex_length.rb
|
117
125
|
- lib/scss_lint/linter/indentation.rb
|
118
126
|
- lib/scss_lint/linter/mergeable_selector.rb
|
119
|
-
- lib/scss_lint/linter/
|
127
|
+
- lib/scss_lint/linter/single_line_per_property.rb
|
120
128
|
- lib/scss_lint/linter/shorthand.rb
|
121
129
|
- lib/scss_lint/linter/final_newline.rb
|
122
130
|
- lib/scss_lint/linter/id_with_extraneous_selector.rb
|
@@ -132,10 +140,12 @@ files:
|
|
132
140
|
- lib/scss_lint/linter/property_spelling.rb
|
133
141
|
- lib/scss_lint/linter/url_quotes.rb
|
134
142
|
- lib/scss_lint/linter/name_format.rb
|
143
|
+
- lib/scss_lint/linter/unnecessary_parent_reference.rb
|
135
144
|
- lib/scss_lint/linter/space_between_parens.rb
|
136
145
|
- lib/scss_lint/linter/border_zero.rb
|
137
146
|
- lib/scss_lint/linter/space_after_property_colon.rb
|
138
147
|
- lib/scss_lint/linter/debug_statement.rb
|
148
|
+
- lib/scss_lint/linter/trailing_semicolon.rb
|
139
149
|
- lib/scss_lint/linter/duplicate_property.rb
|
140
150
|
- lib/scss_lint/linter/property_sort_order.rb
|
141
151
|
- lib/scss_lint/linter/color_keyword.rb
|
@@ -151,6 +161,60 @@ files:
|
|
151
161
|
- lib/scss_lint/engine.rb
|
152
162
|
- lib/scss_lint/linter_registry.rb
|
153
163
|
- lib/scss_lint.rb
|
164
|
+
- spec/scss_lint/location_spec.rb
|
165
|
+
- spec/scss_lint/reporter/files_reporter_spec.rb
|
166
|
+
- spec/scss_lint/reporter/xml_reporter_spec.rb
|
167
|
+
- spec/scss_lint/reporter/config_reporter_spec.rb
|
168
|
+
- spec/scss_lint/reporter/default_reporter_spec.rb
|
169
|
+
- spec/scss_lint/selector_visitor_spec.rb
|
170
|
+
- spec/scss_lint/runner_spec.rb
|
171
|
+
- spec/scss_lint/engine_spec.rb
|
172
|
+
- spec/scss_lint/reporter_spec.rb
|
173
|
+
- spec/scss_lint/config_spec.rb
|
174
|
+
- spec/scss_lint/linter_registry_spec.rb
|
175
|
+
- spec/scss_lint/cli_spec.rb
|
176
|
+
- spec/scss_lint/linter/final_newline_spec.rb
|
177
|
+
- spec/scss_lint/linter/color_keyword_spec.rb
|
178
|
+
- spec/scss_lint/linter/single_line_per_selector_spec.rb
|
179
|
+
- spec/scss_lint/linter/empty_rule_spec.rb
|
180
|
+
- spec/scss_lint/linter/hex_notation_spec.rb
|
181
|
+
- spec/scss_lint/linter/hex_length_spec.rb
|
182
|
+
- spec/scss_lint/linter/url_quotes_spec.rb
|
183
|
+
- spec/scss_lint/linter/space_between_parens_spec.rb
|
184
|
+
- spec/scss_lint/linter/border_zero_spec.rb
|
185
|
+
- spec/scss_lint/linter/property_spelling_spec.rb
|
186
|
+
- spec/scss_lint/linter/property_sort_order_spec.rb
|
187
|
+
- spec/scss_lint/linter/else_placement_spec.rb
|
188
|
+
- spec/scss_lint/linter/zero_unit_spec.rb
|
189
|
+
- spec/scss_lint/linter/mergeable_selector_spec.rb
|
190
|
+
- spec/scss_lint/linter/unnecessary_mantissa_spec.rb
|
191
|
+
- spec/scss_lint/linter/name_format_spec.rb
|
192
|
+
- spec/scss_lint/linter/capitalization_in_selector_spec.rb
|
193
|
+
- spec/scss_lint/linter/duplicate_property_spec.rb
|
194
|
+
- spec/scss_lint/linter/hex_validation_spec.rb
|
195
|
+
- spec/scss_lint/linter/space_before_brace_spec.rb
|
196
|
+
- spec/scss_lint/linter/compass/property_with_mixin_spec.rb
|
197
|
+
- spec/scss_lint/linter/placeholder_in_extend_spec.rb
|
198
|
+
- spec/scss_lint/linter/debug_statement_spec.rb
|
199
|
+
- spec/scss_lint/linter/string_quotes_spec.rb
|
200
|
+
- spec/scss_lint/linter/indentation_spec.rb
|
201
|
+
- spec/scss_lint/linter/unnecessary_parent_reference_spec.rb
|
202
|
+
- spec/scss_lint/linter/empty_line_between_blocks_spec.rb
|
203
|
+
- spec/scss_lint/linter/single_line_per_property_spec.rb
|
204
|
+
- spec/scss_lint/linter/space_after_property_colon_spec.rb
|
205
|
+
- spec/scss_lint/linter/declaration_order_spec.rb
|
206
|
+
- spec/scss_lint/linter/leading_zero_spec.rb
|
207
|
+
- spec/scss_lint/linter/url_format_spec.rb
|
208
|
+
- spec/scss_lint/linter/comment_spec.rb
|
209
|
+
- spec/scss_lint/linter/trailing_semicolon_spec.rb
|
210
|
+
- spec/scss_lint/linter/selector_depth_spec.rb
|
211
|
+
- spec/scss_lint/linter/space_after_comma_spec.rb
|
212
|
+
- spec/scss_lint/linter/shorthand_spec.rb
|
213
|
+
- spec/scss_lint/linter/id_with_extraneous_selector_spec.rb
|
214
|
+
- spec/scss_lint/linter/space_after_property_name_spec.rb
|
215
|
+
- spec/support/matchers/report_lint.rb
|
216
|
+
- spec/support/isolated_environment.rb
|
217
|
+
- spec/spec_helper.rb
|
154
218
|
- bin/scss-lint
|
155
219
|
homepage: https://github.com/causes/scss-lint
|
156
220
|
licenses:
|
@@ -176,4 +240,58 @@ rubygems_version: 2.0.14
|
|
176
240
|
signing_key:
|
177
241
|
specification_version: 4
|
178
242
|
summary: SCSS lint tool
|
179
|
-
test_files:
|
243
|
+
test_files:
|
244
|
+
- spec/scss_lint/location_spec.rb
|
245
|
+
- spec/scss_lint/reporter/files_reporter_spec.rb
|
246
|
+
- spec/scss_lint/reporter/xml_reporter_spec.rb
|
247
|
+
- spec/scss_lint/reporter/config_reporter_spec.rb
|
248
|
+
- spec/scss_lint/reporter/default_reporter_spec.rb
|
249
|
+
- spec/scss_lint/selector_visitor_spec.rb
|
250
|
+
- spec/scss_lint/runner_spec.rb
|
251
|
+
- spec/scss_lint/engine_spec.rb
|
252
|
+
- spec/scss_lint/reporter_spec.rb
|
253
|
+
- spec/scss_lint/config_spec.rb
|
254
|
+
- spec/scss_lint/linter_registry_spec.rb
|
255
|
+
- spec/scss_lint/cli_spec.rb
|
256
|
+
- spec/scss_lint/linter/final_newline_spec.rb
|
257
|
+
- spec/scss_lint/linter/color_keyword_spec.rb
|
258
|
+
- spec/scss_lint/linter/single_line_per_selector_spec.rb
|
259
|
+
- spec/scss_lint/linter/empty_rule_spec.rb
|
260
|
+
- spec/scss_lint/linter/hex_notation_spec.rb
|
261
|
+
- spec/scss_lint/linter/hex_length_spec.rb
|
262
|
+
- spec/scss_lint/linter/url_quotes_spec.rb
|
263
|
+
- spec/scss_lint/linter/space_between_parens_spec.rb
|
264
|
+
- spec/scss_lint/linter/border_zero_spec.rb
|
265
|
+
- spec/scss_lint/linter/property_spelling_spec.rb
|
266
|
+
- spec/scss_lint/linter/property_sort_order_spec.rb
|
267
|
+
- spec/scss_lint/linter/else_placement_spec.rb
|
268
|
+
- spec/scss_lint/linter/zero_unit_spec.rb
|
269
|
+
- spec/scss_lint/linter/mergeable_selector_spec.rb
|
270
|
+
- spec/scss_lint/linter/unnecessary_mantissa_spec.rb
|
271
|
+
- spec/scss_lint/linter/name_format_spec.rb
|
272
|
+
- spec/scss_lint/linter/capitalization_in_selector_spec.rb
|
273
|
+
- spec/scss_lint/linter/duplicate_property_spec.rb
|
274
|
+
- spec/scss_lint/linter/hex_validation_spec.rb
|
275
|
+
- spec/scss_lint/linter/space_before_brace_spec.rb
|
276
|
+
- spec/scss_lint/linter/compass/property_with_mixin_spec.rb
|
277
|
+
- spec/scss_lint/linter/placeholder_in_extend_spec.rb
|
278
|
+
- spec/scss_lint/linter/debug_statement_spec.rb
|
279
|
+
- spec/scss_lint/linter/string_quotes_spec.rb
|
280
|
+
- spec/scss_lint/linter/indentation_spec.rb
|
281
|
+
- spec/scss_lint/linter/unnecessary_parent_reference_spec.rb
|
282
|
+
- spec/scss_lint/linter/empty_line_between_blocks_spec.rb
|
283
|
+
- spec/scss_lint/linter/single_line_per_property_spec.rb
|
284
|
+
- spec/scss_lint/linter/space_after_property_colon_spec.rb
|
285
|
+
- spec/scss_lint/linter/declaration_order_spec.rb
|
286
|
+
- spec/scss_lint/linter/leading_zero_spec.rb
|
287
|
+
- spec/scss_lint/linter/url_format_spec.rb
|
288
|
+
- spec/scss_lint/linter/comment_spec.rb
|
289
|
+
- spec/scss_lint/linter/trailing_semicolon_spec.rb
|
290
|
+
- spec/scss_lint/linter/selector_depth_spec.rb
|
291
|
+
- spec/scss_lint/linter/space_after_comma_spec.rb
|
292
|
+
- spec/scss_lint/linter/shorthand_spec.rb
|
293
|
+
- spec/scss_lint/linter/id_with_extraneous_selector_spec.rb
|
294
|
+
- spec/scss_lint/linter/space_after_property_name_spec.rb
|
295
|
+
- spec/support/matchers/report_lint.rb
|
296
|
+
- spec/support/isolated_environment.rb
|
297
|
+
- spec/spec_helper.rb
|