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 +4 -4
- data/CHANGELOG.md +27 -0
- data/README.md +1 -0
- data/lib/rfmt/3.3/rfmt.so +0 -0
- data/lib/rfmt/3.4/rfmt.so +0 -0
- data/lib/rfmt/prism_bridge.rb +36 -10
- data/lib/rfmt/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9b5b254103eda8d73285c583037210dc16539ef6976cfad39c16bee8e81b9206
|
|
4
|
+
data.tar.gz: 470e8744da2ee7d9b98891b597e32422e84bda933aec368083388b0dff1fa293
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/lib/rfmt/prism_bridge.rb
CHANGED
|
@@ -125,16 +125,14 @@ module Rfmt
|
|
|
125
125
|
end
|
|
126
126
|
end
|
|
127
127
|
|
|
128
|
-
#
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
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.
|
|
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-
|
|
11
|
+
date: 2026-02-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: diff-lcs
|