syntax_tree-haml 4.0.2 → 4.0.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
  SHA256:
3
- metadata.gz: b926fc681f1792de33a0ab58885860f06337de292164185fd9d0cf86ff80da90
4
- data.tar.gz: a09512989ef9b799975ec639ddbaa5fc65bddd76b0cdc9719b309372a5a4cb71
3
+ metadata.gz: c410fddce7b0b3de3dca5f4f0ff6f1f495f70897d1a07f956ceb3cedb8a3bc42
4
+ data.tar.gz: 6f4866aefe38f780411b65fa2671a9f9491aba0249884dc6c6f627d1a76f5520
5
5
  SHA512:
6
- metadata.gz: a07aea76babd7c8a4c765749b3107c0dd3a904ced2550ddb15ea85cfaa6d3df12f6d20767c855eede216d54fdf844e41b00efcf186b9b44409510236823d58ae
7
- data.tar.gz: 108994617aba53d1eb5758d563c3a5b96f65551ec7a0af9e66862f9c8e26c77232f4eb3bc727d9711f7da78f32d91d91adff3a0152ea6b35d7098a5c14d4fabd
6
+ metadata.gz: b79312706a5519a3d6933040c99f353ca344290d9c026d27ee2b6aa5b092ef8f03e735ae5e0de4b832bf7acbdceeceb844bdb9ca46ddd1b6aa9ea3f8c1d37cbc
7
+ data.tar.gz: e0993ba8112bb8149cbcaf972ba588e2b347431254bf0d3d0a63482657d18d5f70af4aa58f185b9d696d5c028bae55621cb483ad9800474242c2236be3043e98
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [4.0.3] - 2023-03-12
10
+
11
+ ### Changed
12
+
13
+ - Fixed a bug where blank lines were being inserted into filter nodes accidentally.
14
+
9
15
  ## [4.0.2] - 2023-03-09
10
16
 
11
17
  ### Changed
@@ -100,7 +106,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
100
106
 
101
107
  - 🎉 Initial release! 🎉
102
108
 
103
- [unreleased]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.2...HEAD
109
+ [unreleased]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.3...HEAD
110
+ [4.0.3]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.2...v4.0.3
104
111
  [4.0.2]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.1...v4.0.2
105
112
  [4.0.1]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.0...v4.0.1
106
113
  [4.0.0]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v3.0.0...v4.0.0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- syntax_tree-haml (4.0.2)
4
+ syntax_tree-haml (4.0.3)
5
5
  haml (>= 5.2)
6
6
  prettier_print (>= 1.2.1)
7
7
  syntax_tree (>= 6.0.0)
@@ -69,15 +69,17 @@ module SyntaxTree
69
69
  q.breakable_force
70
70
  first = true
71
71
 
72
- node.value[:text].each_line(chomp: true) do |line|
73
- if first
74
- first = false
75
- else
76
- q.breakable_force
77
- end
72
+ node.value[:text]
73
+ .rstrip
74
+ .each_line(chomp: true) do |line|
75
+ if first
76
+ first = false
77
+ else
78
+ q.breakable_force
79
+ end
78
80
 
79
- q.text(line)
80
- end
81
+ q.text(line)
82
+ end
81
83
  end
82
84
  end
83
85
  end
@@ -124,8 +126,7 @@ module SyntaxTree
124
126
 
125
127
  node.children.each do |child|
126
128
  q.breakable_force if previous_line && (child.line - previous_line) > 1
127
- previous_line =
128
- child.children.any? ? child.children.last.line : child.line
129
+ previous_line = child.last_line
129
130
 
130
131
  visit(child)
131
132
  q.breakable_force
@@ -513,10 +514,8 @@ module SyntaxTree
513
514
  q.breakable_force
514
515
  end
515
516
 
516
- previous_line =
517
- child.children.any? ? child.children.last.line : child.line
518
-
519
517
  visit(child)
518
+ previous_line = child.last_line
520
519
  end
521
520
  end
522
521
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SyntaxTree
4
4
  module Haml
5
- VERSION = "4.0.2"
5
+ VERSION = "4.0.3"
6
6
  end
7
7
  end
@@ -82,10 +82,30 @@ class Haml::Parser::ParseNode
82
82
  end
83
83
  end
84
84
 
85
+ # This is our entrypoint for the formatter. We effectively delegate this to
86
+ # accepting the Format visitor.
85
87
  def format(q)
86
88
  accept(SyntaxTree::Haml::Format.new(q))
87
89
  end
88
90
 
91
+ # When we're formatting a list of children, we need to know the last line a
92
+ # node is on. This is because the next node in the list of children should be
93
+ # at most 1 blank line below the last line of the previous node. We cache this
94
+ # because at worst it requires walking the entire tree because filter nodes
95
+ # can take up multiple lines.
96
+ def last_line
97
+ @last_line ||=
98
+ if children.any?
99
+ children.last.last_line
100
+ elsif type == :filter
101
+ line + value[:text].rstrip.count("\n") + 1
102
+ else
103
+ line
104
+ end
105
+ end
106
+
107
+ # This is our entrypoint for the pretty printer. We effectively delegate this
108
+ # to accepting the PrettyPrint visitor.
89
109
  def pretty_print(q)
90
110
  accept(SyntaxTree::Haml::PrettyPrint.new(q))
91
111
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syntax_tree-haml
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Newton
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-09 00:00:00.000000000 Z
11
+ date: 2023-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: haml