rfmt 1.2.5 → 1.2.6

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: 67e0ceb39e5630237f92ac2d78fcf2438313dcd883c72ec44066ede9e9868735
4
- data.tar.gz: 69b818c97c55f1ffc4f09518393c2249b71e0e084207249ba8fa631679d66167
3
+ metadata.gz: b43c4cd99b99ae5b4525bc2efc9a3759e315cdbb200853345e2422d161fc58b6
4
+ data.tar.gz: e2f2f9fe52c401fadcd509e2705cbfca4a5bf0e84265f3ce7f764c1916e73470
5
5
  SHA512:
6
- metadata.gz: 2e7cc3e550d2506c0f6691f6b4823f76a2c88e94519d46ca080c2d3b57a7330d5e3df4bca1ab4e18ae1551ea6821c92210638d657997cb6a72631512e47d2bc5
7
- data.tar.gz: '0491cb8029834d053692a9cc251da952c5bbbf6e38045bcfe3a90dfb2a9ebf31cb3dfb09bfa640b0c22b427d1ab47f0e801ecd44a88c79626f05ab4898d19c64'
6
+ metadata.gz: 9e728fee6c041313543cd631255e9ac6fdc3a69c7a22f32b2846be6cbed6a59e1d1ba2dd46d989850e9ac6bc8d4b31bd630a4477e6d0d767ef7dd73c4a5c76ed
7
+ data.tar.gz: 6a7d78ae563cc30ae96970562ddf027005631ae9a2d79755b49a44411fc0f90a2c81ba48a29150c326cc5e5ad793159890f46ae2ee4658a0baeeef7f5907a3d1
data/CHANGELOG.md CHANGED
@@ -1,11 +1,17 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.2.6] - 2026-01-04
4
+
5
+ ### Changed
6
+ - Version bump
7
+
3
8
  ## [1.2.5] - 2026-01-04
4
9
 
5
10
  ### Fixed
6
11
  - Fix trailing comments on `end` keyword (e.g., `end # rubocop:disable`)
7
12
  - Fix block internal comments being moved outside the block
8
13
  - Fix blank line preservation between code and comments inside blocks
14
+ - Fix leading blank line being added to comment-only files
9
15
 
10
16
  ## [1.2.4] - 2026-01-04
11
17
 
data/Cargo.lock CHANGED
@@ -1219,7 +1219,7 @@ checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
1219
1219
 
1220
1220
  [[package]]
1221
1221
  name = "rfmt"
1222
- version = "1.2.5"
1222
+ version = "1.2.6"
1223
1223
  dependencies = [
1224
1224
  "anyhow",
1225
1225
  "clap",
data/ext/rfmt/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rfmt"
3
- version = "1.2.5"
3
+ version = "1.2.6"
4
4
  edition = "2021"
5
5
  authors = ["fujitani sora <fujitanisora0414@gmail.com>"]
6
6
  license = "MIT"
@@ -79,24 +79,37 @@ impl Emitter {
79
79
  /// Emit all comments that haven't been emitted yet
80
80
  fn emit_remaining_comments(&mut self, last_code_line: usize) -> Result<()> {
81
81
  let mut last_end_line: Option<usize> = Some(last_code_line);
82
+ let mut is_first_comment = true;
83
+
82
84
  for (idx, comment) in self.all_comments.iter().enumerate() {
83
85
  if self.emitted_comment_indices.contains(&idx) {
84
86
  continue;
85
87
  }
86
- // Ensure we start on a new line for remaining comments
87
- if !self.buffer.ends_with('\n') {
88
+
89
+ // For the first remaining comment:
90
+ // - If buffer is empty, don't add any leading newline
91
+ // - If buffer has content, ensure we start on a new line
92
+ if is_first_comment && self.buffer.is_empty() {
93
+ // Don't add leading newline for first comment when buffer is empty
94
+ } else if !self.buffer.ends_with('\n') {
88
95
  self.buffer.push('\n');
89
96
  }
97
+
90
98
  // Preserve blank lines between code/comments
91
- if let Some(prev_line) = last_end_line {
92
- let gap = comment.location.start_line.saturating_sub(prev_line);
93
- for _ in 1..gap {
94
- self.buffer.push('\n');
99
+ // But only if this is not the first comment in an empty buffer
100
+ if !(is_first_comment && self.buffer.is_empty()) {
101
+ if let Some(prev_line) = last_end_line {
102
+ let gap = comment.location.start_line.saturating_sub(prev_line);
103
+ for _ in 1..gap {
104
+ self.buffer.push('\n');
105
+ }
95
106
  }
96
107
  }
108
+
97
109
  writeln!(self.buffer, "{}", comment.text)?;
98
110
  self.emitted_comment_indices.push(idx);
99
111
  last_end_line = Some(comment.location.end_line);
112
+ is_first_comment = false;
100
113
  }
101
114
  Ok(())
102
115
  }
data/lib/rfmt/rfmt.so CHANGED
Binary file
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.2.5'
4
+ VERSION = '1.2.6'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfmt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - fujitani sora