scss_lint 0.50.2 → 0.50.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a828fe4841dd205ec2d5c9db1f0687bbb06730d0
4
- data.tar.gz: 98d9275f39eae58357b78e66de361cb39d37f2ef
3
+ metadata.gz: 3bb1a4b4dfd030c6360b2bfe1a6d540662abaee0
4
+ data.tar.gz: ff64f063fdbecbcbb5fd48fc3d776f461481f8d7
5
5
  SHA512:
6
- metadata.gz: ae8885c5253af977e4cf0aa675ed72648aeac42856b9890aae522e88bacf4376b15676ee71568b7e549c547a3927196acce58da47d1791fe42300aac2ecf9513
7
- data.tar.gz: b32793150ac80378a87172a3fe14f75c4c6148c3438254c5f6fc4740f8687bcd49cef21c6a656860d8328d3d4f258142ef2afa90277c061310d537449aa4482b
6
+ metadata.gz: 254cbcaca9f62abd8011730785a71aa056330da801521f157a812528a99233279eaacddd50f63ebbe70da35b2a2d7df96deb63bb543aad7b0293f11b6e14039e
7
+ data.tar.gz: cb645fd0f5a41177a2f3a2595327f5ff0faf19420f27e4958a6e3e8adce84d2d2c091e7a9f87e236e85798a0125d38a77098e5fe02d104b3d34d6ba6fc01217f
@@ -8,6 +8,19 @@ right
8
8
  bottom
9
9
  left
10
10
 
11
+ flex
12
+ flex-basis
13
+ flex-direction
14
+ flex-flow
15
+ flex-grow
16
+ flex-shrink
17
+ flex-wrap
18
+ align-content
19
+ align-items
20
+ align-self
21
+ justify-content
22
+ order
23
+
11
24
  columns
12
25
  column-gap
13
26
  column-fill
@@ -43,6 +56,10 @@ margin-bottom
43
56
  margin-left
44
57
 
45
58
  outline
59
+ outline-offset
60
+ outline-width
61
+ outline-style
62
+ outline-color
46
63
 
47
64
  border
48
65
  border-top
@@ -76,6 +93,8 @@ border-left-color
76
93
  box-shadow
77
94
 
78
95
  background
96
+ background-attachment
97
+ background-clip
79
98
  background-color
80
99
  background-image
81
100
  background-repeat
@@ -118,6 +137,8 @@ text-shadow
118
137
  text-overflow
119
138
 
120
139
  line-height
140
+ word-break
141
+ word-wrap
121
142
  word-spacing
122
143
  letter-spacing
123
144
  white-space
@@ -80,6 +80,7 @@ pointer-events
80
80
  cursor
81
81
  background
82
82
  background-attachment
83
+ background-clip
83
84
  background-color
84
85
  background-image
85
86
  background-position
@@ -150,7 +151,6 @@ transition-delay
150
151
  transition-duration
151
152
  transition-property
152
153
  transition-timing-function
153
- background-clip
154
154
  backface-visibility
155
155
  resize
156
156
  appearance
@@ -58,6 +58,24 @@
58
58
  -webkit-inner-spin-button
59
59
  -webkit-input-placeholder
60
60
  -webkit-keygen-select
61
+ -webkit-media-controls-current-time-display
62
+ -webkit-media-controls-enclosure
63
+ -webkit-media-controls-fullscreen-button
64
+ -webkit-media-controls-mute-button
65
+ -webkit-media-controls-overlay-play-button
66
+ -webkit-media-controls-panel
67
+ -webkit-media-controls-play-button
68
+ -webkit-media-controls-return-to-realtime-button
69
+ -webkit-media-controls-rewind-button
70
+ -webkit-media-controls-seek-back-button
71
+ -webkit-media-controls-seek-forward-button
72
+ -webkit-media-controls-start-playback-button
73
+ -webkit-media-controls-time-remaining-display
74
+ -webkit-media-controls-timeline
75
+ -webkit-media-controls-timeline-container
76
+ -webkit-media-controls-toggle-closed-captions-button
77
+ -webkit-media-controls-volume-slider
78
+ -webkit-media-controls-volume-slider-container
61
79
  -webkit-meter-bar
62
80
  -webkit-meter-even-less-good-value
63
81
  -webkit-meter-optimum-value
@@ -75,7 +75,7 @@ module SCSSLint
75
75
 
76
76
  def find_any_control_commands
77
77
  @any_control_commands =
78
- @lines.any? { |line| line['scss-lint:disable'] || line['scss-line:enable'] }
78
+ @lines.any? { |line| line['scss-lint:disable'] || line['scss-lint:enable'] }
79
79
  end
80
80
 
81
81
  def preprocess_contents # rubocop:disable CyclomaticComplexity
@@ -17,7 +17,11 @@ module SCSSLint
17
17
  ].freeze
18
18
 
19
19
  def visit_root(_node)
20
- @preference = CONVENTION_TO_PREFERENCE[config['convention']]
20
+ @preference = CONVENTION_TO_PREFERENCE[config['convention'].to_s]
21
+ unless @preference
22
+ raise "Invalid `convention` specified: #{config['convention']}." \
23
+ "Must be one of [#{CONVENTION_TO_PREFERENCE.keys.join(', ')}]"
24
+ end
21
25
  yield # Continue linting children
22
26
  end
23
27
 
@@ -42,9 +42,8 @@ module SCSSLint
42
42
  end
43
43
 
44
44
  def in_allowed_function_call?(node)
45
- if (funcall = node_ancestor(node, 2)).is_a?(Sass::Script::Tree::Funcall)
45
+ (funcall = node_ancestor(node, 2)).is_a?(Sass::Script::Tree::Funcall) &&
46
46
  FUNCTIONS_ALLOWING_COLOR_KEYWORD_ARGS.include?(funcall.name)
47
- end
48
47
  end
49
48
  end
50
49
  end
@@ -4,7 +4,7 @@ module SCSSLint
4
4
  include LinterRegistry
5
5
 
6
6
  def visit_comment(node)
7
- add_lint(node, 'Use `//` comments everywhere') unless valid_comment?(node)
7
+ add_lint(node, message) unless valid_comment?(node)
8
8
  end
9
9
 
10
10
  private
@@ -31,5 +31,13 @@ module SCSSLint
31
31
 
32
32
  node.value.join.match(re)
33
33
  end
34
+
35
+ def message
36
+ if config.fetch('style', 'silent') == 'silent'
37
+ 'Use `//` comments everywhere'
38
+ else
39
+ 'Use `/* */` comments everywhere'
40
+ end
41
+ end
34
42
  end
35
43
  end
@@ -57,6 +57,7 @@ module SCSSLint
57
57
  when Sass::Script::Funcall
58
58
  value.name
59
59
  when Sass::Script::String
60
+ nil
60
61
  when Sass::Script::Tree::Literal
61
62
  value.value
62
63
  when Sass::Script::Tree::ListLiteral
@@ -69,13 +70,13 @@ module SCSSLint
69
70
  def ignore_consecutive_of?(prop)
70
71
  case @ignore_consecutive
71
72
  when true
72
- return true
73
+ true
73
74
  when false
74
- return false
75
+ false
75
76
  when nil
76
- return false
77
+ false
77
78
  when Array
78
- return @ignore_consecutive.include?(prop.name.join)
79
+ @ignore_consecutive.include?(prop.name.join)
79
80
  else
80
81
  raise SCSSLint::Exceptions::LinterError,
81
82
  "#{@ignore_consecutive.inspect} is not a valid value for ignore_consecutive."
@@ -87,6 +87,7 @@ module SCSSLint
87
87
  Sass::Tree::RuleNode,
88
88
  Sass::Tree::CommentNode
89
89
  # Ignore
90
+ nil
90
91
  else
91
92
  unless engine.lines[node.line - 2].strip.empty?
92
93
  add_lint(node.line, MESSAGE_FORMAT % [type, 'preceded'])
@@ -9,8 +9,9 @@ module SCSSLint
9
9
  ends_with_newline = engine.lines[-1][-1] == "\n"
10
10
 
11
11
  if config['present']
12
- add_lint(engine.lines.count,
13
- 'Files should end with a trailing newline') unless ends_with_newline
12
+ unless ends_with_newline
13
+ add_lint(engine.lines.count, 'Files should end with a trailing newline')
14
+ end
14
15
  elsif ends_with_newline
15
16
  add_lint(engine.lines.count, 'Files should not end with a trailing newline')
16
17
  end
@@ -107,11 +107,11 @@ module SCSSLint
107
107
 
108
108
  return false unless node_to_look_in.node_parent
109
109
 
110
+ return unless node_to_look_in.node_parent
111
+
110
112
  # We did not find a match yet, and haven't reached the top of the branch,
111
113
  # so recurse.
112
- if node_to_look_in.node_parent
113
- node_defined_earlier_in_branch?(node_to_look_in.node_parent, looking_for)
114
- end
114
+ node_defined_earlier_in_branch?(node_to_look_in.node_parent, looking_for)
115
115
  end
116
116
 
117
117
  def private?(node)
@@ -1,5 +1,5 @@
1
1
  module SCSSLint
2
- # Checks for element selectors qualifying id, classe, or attribute selectors.
2
+ # Checks for element selectors qualifying id, classes, or attribute selectors.
3
3
  class Linter::QualifyingElement < Linter
4
4
  include LinterRegistry
5
5
 
@@ -82,8 +82,10 @@ module SCSSLint
82
82
  def check_shorthand(prop, node, values)
83
83
  values = shorthand_values(values)
84
84
 
85
- add_lint(node, "Shorthands of length `#{values.count}` are not allowed. " \
86
- "Value was `#{values.join(' ')}`") unless allowed?(values.count)
85
+ unless allowed?(values.count)
86
+ add_lint(node, "Shorthands of length `#{values.count}` are not allowed. " \
87
+ "Value was `#{values.join(' ')}`")
88
+ end
87
89
 
88
90
  return unless (2..4).member?(values.count)
89
91
 
@@ -140,7 +142,7 @@ module SCSSLint
140
142
  # @param right [String]
141
143
  # @param left [String]
142
144
  # @return [Boolean]
143
- def condense_to_three_values?(_, right, __, left)
145
+ def condense_to_three_values?(_, right, _, left)
144
146
  return unless allowed?(3)
145
147
 
146
148
  right == left
@@ -14,7 +14,7 @@ module SCSSLint
14
14
  def check_silent_comment(node, source)
15
15
  source.split("\n").each_with_index do |line, index|
16
16
  next if config['allow_empty_comments'] && line.strip.length <= 2
17
- whitespace = whitespace_after_comment(line, 2)
17
+ whitespace = whitespace_after_comment(line.lstrip, 2)
18
18
  check_for_space(node.line + index, whitespace)
19
19
  end
20
20
  end
@@ -14,6 +14,11 @@ module SCSSLint
14
14
  yield
15
15
  end
16
16
 
17
+ def visit_if(node, &block)
18
+ check_node(node, &block)
19
+ check_node(node.else, &block) if node.else
20
+ end
21
+
17
22
  alias visit_function check_node
18
23
  alias visit_each check_node
19
24
  alias visit_for check_node
@@ -7,6 +7,7 @@ module SCSSLint
7
7
 
8
8
  def visit_script_string(node)
9
9
  return unless node.type == :identifier
10
+ return if node.value.start_with?('calc(')
10
11
 
11
12
  node.value.scan(ZERO_UNIT_REGEX) do |match|
12
13
  next unless zero_with_length_units?(match.first)
@@ -21,6 +22,12 @@ module SCSSLint
21
22
  add_lint(node, MESSAGE_FORMAT % length)
22
23
  end
23
24
 
25
+ def visit_script_funcall(node)
26
+ # Don't report errors for values within `calc` expressions, since they
27
+ # require units in order to work
28
+ yield unless node.name == 'calc'
29
+ end
30
+
24
31
  private
25
32
 
26
33
  ZERO_UNIT_REGEX = /
@@ -122,9 +122,11 @@ module Sass::Tree
122
122
 
123
123
  # Keyword mapping is String -> Expr, so convert the string to a variable
124
124
  # node that supports lint reporting
125
- keyword_exprs = keywords.as_stored.map do |var_name, var_expr|
126
- [create_variable(var_name), var_expr]
127
- end if keywords.any?
125
+ if keywords.any?
126
+ keyword_exprs = keywords.as_stored.map do |var_name, var_expr|
127
+ [create_variable(var_name), var_expr]
128
+ end
129
+ end
128
130
 
129
131
  concat_expr_lists super, args, keyword_exprs, splat
130
132
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Defines the gem version.
4
4
  module SCSSLint
5
- VERSION = '0.50.2'.freeze
5
+ VERSION = '0.50.3'.freeze
6
6
  end
@@ -176,6 +176,17 @@ describe SCSSLint::Linter::SpaceAfterComment do
176
176
 
177
177
  it { should report_lint line: 1 }
178
178
  end
179
+
180
+ context 'when an indented block has comments on multiple lines' do
181
+ let(:scss) { <<-SCSS }
182
+ p {
183
+ // Comment one
184
+ // Comment two
185
+ }
186
+ SCSS
187
+
188
+ it { should_not report_lint }
189
+ end
179
190
  end
180
191
 
181
192
  context 'when no spaces are allowed' do
@@ -326,6 +337,17 @@ describe SCSSLint::Linter::SpaceAfterComment do
326
337
 
327
338
  it { should report_lint line: 1 }
328
339
  end
340
+
341
+ context 'when an indented block has comments on multiple lines' do
342
+ let(:scss) { <<-SCSS }
343
+ p {
344
+ //Comment one
345
+ //Comment two
346
+ }
347
+ SCSS
348
+
349
+ it { should_not report_lint }
350
+ end
329
351
  end
330
352
 
331
353
  context 'when at least one space is preferred' do
@@ -476,5 +498,16 @@ describe SCSSLint::Linter::SpaceAfterComment do
476
498
 
477
499
  it { should_not report_lint line: 1 }
478
500
  end
501
+
502
+ context 'when an indented block has comments on multiple lines' do
503
+ let(:scss) { <<-SCSS }
504
+ p {
505
+ // Comment one
506
+ // Comment two
507
+ }
508
+ SCSS
509
+
510
+ it { should_not report_lint }
511
+ end
479
512
  end
480
513
  end
@@ -494,6 +494,29 @@ describe SCSSLint::Linter::SpaceBeforeBrace do
494
494
  end
495
495
  end
496
496
 
497
+ context 'with an @if/@else statement' do
498
+ context 'when brace is preceded by space' do
499
+ let(:scss) { <<-SCSS }
500
+ @if some_expression {
501
+ } @else {
502
+ }
503
+ SCSS
504
+
505
+ it { should_not report_lint }
506
+ end
507
+
508
+ context 'when brace is not preceded by space' do
509
+ let(:scss) { <<-SCSS }
510
+ @if some_expression{
511
+ } @else{
512
+ }
513
+ SCSS
514
+
515
+ it { should report_lint line: 1 }
516
+ it { should report_lint line: 2 }
517
+ end
518
+ end
519
+
497
520
  context 'with a mixin include with braces' do
498
521
  context 'with arguments' do
499
522
  context 'when brace is preceded by a space' do
@@ -110,4 +110,14 @@ describe SCSSLint::Linter::ZeroUnit do
110
110
 
111
111
  it { should_not report_lint }
112
112
  end
113
+
114
+ context 'when calc expression with zero value has units' do
115
+ let(:scss) { <<-SCSS }
116
+ p {
117
+ width: calc(0px + 1.5em);
118
+ }
119
+ SCSS
120
+
121
+ it { should_not report_lint }
122
+ end
113
123
  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.50.2
4
+ version: 0.50.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brigade Engineering
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-08-30 00:00:00.000000000 Z
12
+ date: 2016-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -369,4 +369,3 @@ test_files:
369
369
  - spec/spec_helper.rb
370
370
  - spec/support/isolated_environment.rb
371
371
  - spec/support/matchers/report_lint.rb
372
- has_rdoc: