scss-lint 0.25.1 → 0.26.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/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
|