rfmt 1.5.0-aarch64-linux → 1.5.2-aarch64-linux

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f904ee39be41cee466425ba81fb018bb7c5319d5a6c8adfe831a075746c2d4e4
4
- data.tar.gz: ef3eea6dc74fae25ed7b1376dbe5abe5131a099d03d85dd770fc0496c70f454c
3
+ metadata.gz: 9b5b254103eda8d73285c583037210dc16539ef6976cfad39c16bee8e81b9206
4
+ data.tar.gz: 470e8744da2ee7d9b98891b597e32422e84bda933aec368083388b0dff1fa293
5
5
  SHA512:
6
- metadata.gz: c3204052be31bdbf7b79512fcce17bb598fd4aa8b4bab9e89917bbb4f42bc6b6e66766e3d3712651eb2acf8d02956ed095ad521cecf3edee2b6a83db805ef089
7
- data.tar.gz: e5696b6387e7111122ddd70bebc2f0d55fa3193d887534148cde29e968143c6e9973e414acccef70a26b9b9658f9ad663cc5305166324310d1431be2ff7e6cae
6
+ metadata.gz: f99b31c9a646ce93f7ae9bed8b3076015091e0c654da65919e55b934fa12261ed33d507a43d75bbda2ae1ffdcc98a46b212778200ac1098368cc50d2479e6d67
7
+ data.tar.gz: 6df28c7d41795e471f7c3a67603804dae5c63e41fd1d5e67d97c82cce302d0ff59511f4ce969c8cf85bc3a4c1021905386d5bda5e50acc598c8595df0329e1da
data/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.5.2] - 2026-02-21
4
+
5
+ ### Added
6
+ - Instance variable write node emission support (#92)
7
+
8
+ ### Changed
9
+ - Nix dev environment optimization (build caching, direnv support, devShell splitting)
10
+ - Code formatting improvements (clippy, rustfmt)
11
+
12
+ ### Fixed
13
+ - Fix Nix bundler version conflict (remove pkgs.bundler, use Ruby built-in)
14
+
15
+ ## [1.5.1] - 2026-02-21
16
+
17
+ ### Fixed
18
+ - Fix inline modifier `if`/`unless` formatting (#87)
19
+ - Fix heredoc command incorrectly removed (#90, #86)
20
+ - Fix method chain command dependency handling (#89, #85)
21
+
22
+ ### Added
23
+ - Heredoc comment deletion support
24
+ - Place block loop emission support
25
+
26
+ ### Changed
27
+ - Update README.md
28
+ - Code formatting improvements (RuboCop compliance)
29
+
3
30
  ## [1.5.0] - 2026-01-25
4
31
 
5
32
  ### Added
data/README.md CHANGED
@@ -23,6 +23,7 @@ A Ruby code formatter written in Rust
23
23
  ## What is rfmt?
24
24
 
25
25
  [RubyGems reference](https://rubygems.org/gems/rfmt)
26
+ [DeepWiki rfmt](https://deepwiki.com/fs0414/rfmt)
26
27
 
27
28
  **rfmt** is a Ruby code formatter that enforces consistent style across your codebase. Key characteristics:
28
29
 
data/lib/rfmt/3.3/rfmt.so CHANGED
Binary file
data/lib/rfmt/3.4/rfmt.so CHANGED
Binary file
@@ -125,16 +125,14 @@ module Rfmt
125
125
  end
126
126
  end
127
127
 
128
- # Check child nodes for heredoc (e.g., LocalVariableWriteNode containing StringNode)
129
- node.child_nodes.compact.each do |child|
130
- next unless child.respond_to?(:closing_loc) && child.closing_loc
131
-
132
- closing = child.closing_loc
133
- next unless closing.end_offset > end_offset
134
-
135
- end_offset = closing.end_offset
136
- end_line = closing.end_line
137
- end_column = closing.end_column
128
+ # Recursively check all descendant nodes for heredoc closing_loc
129
+ # Issue #74: handled direct children (e.g., LocalVariableWriteNode -> StringNode)
130
+ # Issue #86: handles deeper nesting (e.g., CallNode -> ArgumentsNode -> StringNode)
131
+ max_closing = find_max_closing_loc_recursive(node)
132
+ if max_closing && max_closing[:end_offset] > end_offset
133
+ end_offset = max_closing[:end_offset]
134
+ end_line = max_closing[:end_line]
135
+ end_column = max_closing[:end_column]
138
136
  end
139
137
 
140
138
  {
@@ -147,6 +145,32 @@ module Rfmt
147
145
  }
148
146
  end
149
147
 
148
+ # Recursively find the maximum closing_loc among all descendant nodes
149
+ # Returns nil if no closing_loc found, otherwise { end_offset:, end_line:, end_column: }
150
+ def self.find_max_closing_loc_recursive(node, depth: 0)
151
+ return nil if depth > 10
152
+
153
+ max_closing = nil
154
+
155
+ node.child_nodes.compact.each do |child|
156
+ if child.respond_to?(:closing_loc) && child.closing_loc
157
+ closing = child.closing_loc
158
+ if max_closing.nil? || closing.end_offset > max_closing[:end_offset]
159
+ max_closing = {
160
+ end_offset: closing.end_offset,
161
+ end_line: closing.end_line,
162
+ end_column: closing.end_column
163
+ }
164
+ end
165
+ end
166
+
167
+ child_max = find_max_closing_loc_recursive(child, depth: depth + 1)
168
+ max_closing = child_max if child_max && (max_closing.nil? || child_max[:end_offset] > max_closing[:end_offset])
169
+ end
170
+
171
+ max_closing
172
+ end
173
+
150
174
  # Extract child nodes
151
175
  def self.extract_children(node)
152
176
  children = []
@@ -441,6 +465,8 @@ module Rfmt
441
465
  if (value = extract_literal_value(node))
442
466
  metadata['value'] = value
443
467
  end
468
+ when Prism::LocalVariableWriteNode, Prism::InstanceVariableWriteNode
469
+ metadata['name'] = node.name.to_s
444
470
  when Prism::IfNode, Prism::UnlessNode
445
471
  # Detect ternary operator: if_keyword_loc is nil for ternary
446
472
  metadata['is_ternary'] = node.if_keyword_loc.nil?.to_s if node.respond_to?(:if_keyword_loc)
data/lib/rfmt/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rfmt
4
- VERSION = '1.5.0'
4
+ VERSION = '1.5.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfmt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.2
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - fujitani sora
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-01-25 00:00:00.000000000 Z
11
+ date: 2026-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs