scss_beautifier 0.1.16 → 0.1.17
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/Gemfile.lock +1 -1
- data/lib/scss_beautifier.rb +9 -0
- data/lib/scss_beautifier/convert.rb +19 -2
- data/lib/scss_beautifier/formatters/property_sort_order.rb +14 -2
- data/lib/scss_beautifier/version.rb +1 -1
- data/tmp/dump.txt +1 -0
- data/web/Gemfile.lock +1 -1
- data/web/Procfile +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9d5f273367280c4e6eab6f3531573de63b1cb7c
|
4
|
+
data.tar.gz: 74cd0b8adc662dd488297016c5528ec3a9363e0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa37cb636e1b66f8def9c94cfea9fde573588005ae28aee6156779be16fd7dd627933da63ab7141191244d481ea8c07ec61fcd4004b86ed44f3ae5e8edc45e24
|
7
|
+
data.tar.gz: e51be58ffbe4dc6ef1e727938f6b4dc46de1e17fc00f92164bb2fcf8d7adc5f710f93ec8639ddab2f7d23451def959b9a211f177902472233e73c49287521b13
|
data/Gemfile.lock
CHANGED
data/lib/scss_beautifier.rb
CHANGED
@@ -34,3 +34,12 @@ require "scss_beautifier/formatters/selector"
|
|
34
34
|
require "scss_beautifier/formatters/shorthand"
|
35
35
|
require "scss_beautifier/formatters/string_quotes"
|
36
36
|
require "scss_beautifier/formatters/trailing_zero"
|
37
|
+
|
38
|
+
class Sass::Tree::Node
|
39
|
+
attr_accessor :scss_beautifier_options
|
40
|
+
|
41
|
+
def scss_beautifier_options
|
42
|
+
@scss_beautifier_options ||= {}
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -32,8 +32,8 @@ class SCSSBeautifier::Convert < Sass::Tree::Visitors::Convert
|
|
32
32
|
# whitespace added.
|
33
33
|
def visit_rule_level(nodes)
|
34
34
|
Sass::Util.enum_cons(nodes + [nil], 2).map do |child, nxt|
|
35
|
-
visit(child)
|
36
|
-
|
35
|
+
child_value = visit(child)
|
36
|
+
spacing = if nxt &&
|
37
37
|
(child.is_a?(Sass::Tree::CommentNode) && child.line + child.lines + 1 == nxt.line) ||
|
38
38
|
(child.is_a?(Sass::Tree::ImportNode) && nxt.is_a?(Sass::Tree::ImportNode) &&
|
39
39
|
child.line + 1 == nxt.line) ||
|
@@ -52,7 +52,24 @@ class SCSSBeautifier::Convert < Sass::Tree::Visitors::Convert
|
|
52
52
|
"\n"
|
53
53
|
end
|
54
54
|
end
|
55
|
+
if inline_comment?(child, nxt)
|
56
|
+
child_value.rstrip!
|
57
|
+
spacing = ""
|
58
|
+
nxt.scss_beautifier_options[:inline] = true
|
59
|
+
elsif child.scss_beautifier_options[:inline]
|
60
|
+
spacing = ""
|
61
|
+
end
|
62
|
+
child_value + spacing
|
55
63
|
end.join.rstrip + "\n"
|
56
64
|
end
|
57
65
|
|
66
|
+
def visit_comment(node)
|
67
|
+
value = super
|
68
|
+
node.scss_beautifier_options[:inline] ? ' ' + value.lstrip! : value
|
69
|
+
end
|
70
|
+
|
71
|
+
def inline_comment?(node, comment_node)
|
72
|
+
comment_node.is_a?(Sass::Tree::CommentNode) && node.line == comment_node.line
|
73
|
+
end
|
74
|
+
|
58
75
|
end
|
@@ -4,6 +4,8 @@ class SCSSBeautifier::Formatters::PropertySortOrder < SCSSBeautifier::Formatters
|
|
4
4
|
visit_children(node)
|
5
5
|
end
|
6
6
|
|
7
|
+
private
|
8
|
+
|
7
9
|
def order_children(node)
|
8
10
|
prop_nodes = []
|
9
11
|
comment_array = []
|
@@ -12,7 +14,12 @@ class SCSSBeautifier::Formatters::PropertySortOrder < SCSSBeautifier::Formatters
|
|
12
14
|
hash_key = child.class.node_name.to_s
|
13
15
|
if hash_key == 'comment'
|
14
16
|
seen_comments << child
|
15
|
-
|
17
|
+
prev_grouping = prop_nodes.last
|
18
|
+
if prop_node_for(prev_grouping).line == child.line
|
19
|
+
prev_grouping << child
|
20
|
+
else
|
21
|
+
comment_array << child
|
22
|
+
end
|
16
23
|
elsif hash_key == 'prop'
|
17
24
|
prop_nodes << comment_array.push(child)
|
18
25
|
comment_array = []
|
@@ -22,7 +29,7 @@ class SCSSBeautifier::Formatters::PropertySortOrder < SCSSBeautifier::Formatters
|
|
22
29
|
# account for remaining comments
|
23
30
|
seen_comments -= comment_array
|
24
31
|
|
25
|
-
prop_nodes.sort! { |x,y| x.
|
32
|
+
prop_nodes.sort! { |x,y| prop_node_for(x).name[0] <=> prop_node_for(y).name[0] }
|
26
33
|
# Replace children being respective of other types of props/funcs/etc
|
27
34
|
children = []
|
28
35
|
node.children.each do |child|
|
@@ -35,4 +42,9 @@ class SCSSBeautifier::Formatters::PropertySortOrder < SCSSBeautifier::Formatters
|
|
35
42
|
end
|
36
43
|
node.children = children
|
37
44
|
end
|
45
|
+
|
46
|
+
# In an Array of nodes, get the prop node
|
47
|
+
def prop_node_for(grouping)
|
48
|
+
grouping.find { |node| node.class.node_name == :prop }
|
49
|
+
end
|
38
50
|
end
|
data/tmp/dump.txt
CHANGED
@@ -49,6 +49,7 @@ https://github.com/sasstools/sass-lint/blob/master/docs/rules/mixin-name-format.
|
|
49
49
|
|
50
50
|
https://github.com/sasstools/sass-lint/blob/master/docs/rules/no-warn.md
|
51
51
|
how do maps look like? newlines separation?
|
52
|
+
parenthesis around if statements?
|
52
53
|
|
53
54
|
|
54
55
|
These are spacing rules that come out of the box:
|
data/web/Gemfile.lock
CHANGED
data/web/Procfile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
web: bundle exec rackup config.ru -p $PORT
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scss_beautifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Tse
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- tmp/dump.txt
|
130
130
|
- web/Gemfile
|
131
131
|
- web/Gemfile.lock
|
132
|
+
- web/Procfile
|
132
133
|
- web/app.rb
|
133
134
|
- web/config.ru
|
134
135
|
- web/public/imgs/gh.png
|