rfmt 1.5.1 → 1.5.3
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 +17 -0
- data/Cargo.lock +266 -92
- data/ext/rfmt/Cargo.toml +1 -1
- data/ext/rfmt/src/emitter/mod.rs +135 -6
- data/ext/rfmt/src/parser/prism_adapter.rs +1 -1
- data/lib/rfmt/prism_bridge.rb +2 -0
- data/lib/rfmt/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9257e8d3dca2d3c849ce3040387b7f0430bf110f70f4ca3951b24ada8365b43e
|
|
4
|
+
data.tar.gz: c3a1a6ac54502ae6cce494534964f80078bca40fd7818b75b5b483010db91b2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 53dbf78b4b9e7bf20f52ddb430464bae9e449c874963665d9748f77ea6aa918e9c0160ef1f6358f8ed4cbe4e29b1e13e4d37a532cd43d401333746a12cd188d3
|
|
7
|
+
data.tar.gz: b84e983d37f74f7c3bcb8ff98d4b382093cd47a29249bc8a4f50a4a2456d0b0a264f28defa76e203a55d62b376e0207351dbbd566d0eba327aa42ba46f4cd699
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [1.5.3] - 2026-02-22
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Update package dependencies
|
|
7
|
+
|
|
8
|
+
## [1.5.2] - 2026-02-21
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Instance variable write node emission support (#92)
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Nix dev environment optimization (build caching, direnv support, devShell splitting)
|
|
15
|
+
- Code formatting improvements (clippy, rustfmt)
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Fix Nix bundler version conflict (remove pkgs.bundler, use Ruby built-in)
|
|
19
|
+
|
|
3
20
|
## [1.5.1] - 2026-02-21
|
|
4
21
|
|
|
5
22
|
### Fixed
|
data/Cargo.lock
CHANGED
|
@@ -87,9 +87,9 @@ dependencies = [
|
|
|
87
87
|
|
|
88
88
|
[[package]]
|
|
89
89
|
name = "anyhow"
|
|
90
|
-
version = "1.0.
|
|
90
|
+
version = "1.0.102"
|
|
91
91
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
92
|
-
checksum = "
|
|
92
|
+
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
|
93
93
|
|
|
94
94
|
[[package]]
|
|
95
95
|
name = "arraydeque"
|
|
@@ -157,9 +157,9 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
|
|
|
157
157
|
|
|
158
158
|
[[package]]
|
|
159
159
|
name = "bitflags"
|
|
160
|
-
version = "2.
|
|
160
|
+
version = "2.11.0"
|
|
161
161
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
162
|
-
checksum = "
|
|
162
|
+
checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
|
|
163
163
|
dependencies = [
|
|
164
164
|
"serde_core",
|
|
165
165
|
]
|
|
@@ -185,9 +185,9 @@ dependencies = [
|
|
|
185
185
|
|
|
186
186
|
[[package]]
|
|
187
187
|
name = "bumpalo"
|
|
188
|
-
version = "3.
|
|
188
|
+
version = "3.20.2"
|
|
189
189
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
190
|
-
checksum = "
|
|
190
|
+
checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
|
|
191
191
|
|
|
192
192
|
[[package]]
|
|
193
193
|
name = "cast"
|
|
@@ -250,9 +250,9 @@ dependencies = [
|
|
|
250
250
|
|
|
251
251
|
[[package]]
|
|
252
252
|
name = "clap"
|
|
253
|
-
version = "4.5.
|
|
253
|
+
version = "4.5.60"
|
|
254
254
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
255
|
-
checksum = "
|
|
255
|
+
checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a"
|
|
256
256
|
dependencies = [
|
|
257
257
|
"clap_builder",
|
|
258
258
|
"clap_derive",
|
|
@@ -260,9 +260,9 @@ dependencies = [
|
|
|
260
260
|
|
|
261
261
|
[[package]]
|
|
262
262
|
name = "clap_builder"
|
|
263
|
-
version = "4.5.
|
|
263
|
+
version = "4.5.60"
|
|
264
264
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
265
|
-
checksum = "
|
|
265
|
+
checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876"
|
|
266
266
|
dependencies = [
|
|
267
267
|
"anstream",
|
|
268
268
|
"anstyle",
|
|
@@ -272,9 +272,9 @@ dependencies = [
|
|
|
272
272
|
|
|
273
273
|
[[package]]
|
|
274
274
|
name = "clap_derive"
|
|
275
|
-
version = "4.5.
|
|
275
|
+
version = "4.5.55"
|
|
276
276
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
277
|
-
checksum = "
|
|
277
|
+
checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5"
|
|
278
278
|
dependencies = [
|
|
279
279
|
"heck",
|
|
280
280
|
"proc-macro2",
|
|
@@ -284,9 +284,9 @@ dependencies = [
|
|
|
284
284
|
|
|
285
285
|
[[package]]
|
|
286
286
|
name = "clap_lex"
|
|
287
|
-
version = "0.
|
|
287
|
+
version = "1.0.0"
|
|
288
288
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
289
|
-
checksum = "
|
|
289
|
+
checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831"
|
|
290
290
|
|
|
291
291
|
[[package]]
|
|
292
292
|
name = "colorchoice"
|
|
@@ -340,7 +340,7 @@ version = "0.1.16"
|
|
|
340
340
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
341
341
|
checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
|
|
342
342
|
dependencies = [
|
|
343
|
-
"getrandom 0.2.
|
|
343
|
+
"getrandom 0.2.17",
|
|
344
344
|
"once_cell",
|
|
345
345
|
"tiny-keccak",
|
|
346
346
|
]
|
|
@@ -503,9 +503,9 @@ dependencies = [
|
|
|
503
503
|
|
|
504
504
|
[[package]]
|
|
505
505
|
name = "env_filter"
|
|
506
|
-
version = "0.
|
|
506
|
+
version = "1.0.0"
|
|
507
507
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
508
|
-
checksum = "
|
|
508
|
+
checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f"
|
|
509
509
|
dependencies = [
|
|
510
510
|
"log",
|
|
511
511
|
"regex",
|
|
@@ -513,9 +513,9 @@ dependencies = [
|
|
|
513
513
|
|
|
514
514
|
[[package]]
|
|
515
515
|
name = "env_logger"
|
|
516
|
-
version = "0.11.
|
|
516
|
+
version = "0.11.9"
|
|
517
517
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
518
|
-
checksum = "
|
|
518
|
+
checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d"
|
|
519
519
|
dependencies = [
|
|
520
520
|
"anstream",
|
|
521
521
|
"anstyle",
|
|
@@ -570,9 +570,9 @@ dependencies = [
|
|
|
570
570
|
|
|
571
571
|
[[package]]
|
|
572
572
|
name = "getrandom"
|
|
573
|
-
version = "0.2.
|
|
573
|
+
version = "0.2.17"
|
|
574
574
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
575
|
-
checksum = "
|
|
575
|
+
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
|
|
576
576
|
dependencies = [
|
|
577
577
|
"cfg-if",
|
|
578
578
|
"libc",
|
|
@@ -591,6 +591,19 @@ dependencies = [
|
|
|
591
591
|
"wasip2",
|
|
592
592
|
]
|
|
593
593
|
|
|
594
|
+
[[package]]
|
|
595
|
+
name = "getrandom"
|
|
596
|
+
version = "0.4.1"
|
|
597
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
598
|
+
checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec"
|
|
599
|
+
dependencies = [
|
|
600
|
+
"cfg-if",
|
|
601
|
+
"libc",
|
|
602
|
+
"r-efi",
|
|
603
|
+
"wasip2",
|
|
604
|
+
"wasip3",
|
|
605
|
+
]
|
|
606
|
+
|
|
594
607
|
[[package]]
|
|
595
608
|
name = "glob"
|
|
596
609
|
version = "0.3.3"
|
|
@@ -669,21 +682,29 @@ version = "0.5.2"
|
|
|
669
682
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
670
683
|
checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
|
|
671
684
|
|
|
685
|
+
[[package]]
|
|
686
|
+
name = "id-arena"
|
|
687
|
+
version = "2.3.0"
|
|
688
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
689
|
+
checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
|
|
690
|
+
|
|
672
691
|
[[package]]
|
|
673
692
|
name = "indexmap"
|
|
674
|
-
version = "2.
|
|
693
|
+
version = "2.13.0"
|
|
675
694
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
676
|
-
checksum = "
|
|
695
|
+
checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
|
|
677
696
|
dependencies = [
|
|
678
697
|
"equivalent",
|
|
679
698
|
"hashbrown 0.16.1",
|
|
699
|
+
"serde",
|
|
700
|
+
"serde_core",
|
|
680
701
|
]
|
|
681
702
|
|
|
682
703
|
[[package]]
|
|
683
704
|
name = "insta"
|
|
684
|
-
version = "1.46.
|
|
705
|
+
version = "1.46.3"
|
|
685
706
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
686
|
-
checksum = "
|
|
707
|
+
checksum = "e82db8c87c7f1ccecb34ce0c24399b8a73081427f3c7c50a5d597925356115e4"
|
|
687
708
|
dependencies = [
|
|
688
709
|
"console",
|
|
689
710
|
"once_cell",
|
|
@@ -734,9 +755,9 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
|
|
734
755
|
|
|
735
756
|
[[package]]
|
|
736
757
|
name = "jiff"
|
|
737
|
-
version = "0.2.
|
|
758
|
+
version = "0.2.20"
|
|
738
759
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
739
|
-
checksum = "
|
|
760
|
+
checksum = "c867c356cc096b33f4981825ab281ecba3db0acefe60329f044c1789d94c6543"
|
|
740
761
|
dependencies = [
|
|
741
762
|
"jiff-static",
|
|
742
763
|
"log",
|
|
@@ -747,9 +768,9 @@ dependencies = [
|
|
|
747
768
|
|
|
748
769
|
[[package]]
|
|
749
770
|
name = "jiff-static"
|
|
750
|
-
version = "0.2.
|
|
771
|
+
version = "0.2.20"
|
|
751
772
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
752
|
-
checksum = "
|
|
773
|
+
checksum = "f7946b4325269738f270bb55b3c19ab5c5040525f83fd625259422a9d25d9be5"
|
|
753
774
|
dependencies = [
|
|
754
775
|
"proc-macro2",
|
|
755
776
|
"quote",
|
|
@@ -758,9 +779,9 @@ dependencies = [
|
|
|
758
779
|
|
|
759
780
|
[[package]]
|
|
760
781
|
name = "js-sys"
|
|
761
|
-
version = "0.3.
|
|
782
|
+
version = "0.3.86"
|
|
762
783
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
763
|
-
checksum = "
|
|
784
|
+
checksum = "d36139f1c97c42c0c86a411910b04e48d4939a0376e6e0f989420cbdee0120e5"
|
|
764
785
|
dependencies = [
|
|
765
786
|
"once_cell",
|
|
766
787
|
"wasm-bindgen",
|
|
@@ -789,11 +810,17 @@ version = "1.3.0"
|
|
|
789
810
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
790
811
|
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
|
791
812
|
|
|
813
|
+
[[package]]
|
|
814
|
+
name = "leb128fmt"
|
|
815
|
+
version = "0.1.0"
|
|
816
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
817
|
+
checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|
818
|
+
|
|
792
819
|
[[package]]
|
|
793
820
|
name = "libc"
|
|
794
|
-
version = "0.2.
|
|
821
|
+
version = "0.2.182"
|
|
795
822
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
796
|
-
checksum = "
|
|
823
|
+
checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
|
|
797
824
|
|
|
798
825
|
[[package]]
|
|
799
826
|
name = "libloading"
|
|
@@ -861,9 +888,9 @@ dependencies = [
|
|
|
861
888
|
|
|
862
889
|
[[package]]
|
|
863
890
|
name = "memchr"
|
|
864
|
-
version = "2.
|
|
891
|
+
version = "2.8.0"
|
|
865
892
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
866
|
-
checksum = "
|
|
893
|
+
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
867
894
|
|
|
868
895
|
[[package]]
|
|
869
896
|
name = "minimal-lexical"
|
|
@@ -942,9 +969,9 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
|
|
|
942
969
|
|
|
943
970
|
[[package]]
|
|
944
971
|
name = "pest"
|
|
945
|
-
version = "2.8.
|
|
972
|
+
version = "2.8.6"
|
|
946
973
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
947
|
-
checksum = "
|
|
974
|
+
checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662"
|
|
948
975
|
dependencies = [
|
|
949
976
|
"memchr",
|
|
950
977
|
"ucd-trie",
|
|
@@ -952,9 +979,9 @@ dependencies = [
|
|
|
952
979
|
|
|
953
980
|
[[package]]
|
|
954
981
|
name = "pest_derive"
|
|
955
|
-
version = "2.8.
|
|
982
|
+
version = "2.8.6"
|
|
956
983
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
957
|
-
checksum = "
|
|
984
|
+
checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77"
|
|
958
985
|
dependencies = [
|
|
959
986
|
"pest",
|
|
960
987
|
"pest_generator",
|
|
@@ -962,9 +989,9 @@ dependencies = [
|
|
|
962
989
|
|
|
963
990
|
[[package]]
|
|
964
991
|
name = "pest_generator"
|
|
965
|
-
version = "2.8.
|
|
992
|
+
version = "2.8.6"
|
|
966
993
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
967
|
-
checksum = "
|
|
994
|
+
checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f"
|
|
968
995
|
dependencies = [
|
|
969
996
|
"pest",
|
|
970
997
|
"pest_meta",
|
|
@@ -975,9 +1002,9 @@ dependencies = [
|
|
|
975
1002
|
|
|
976
1003
|
[[package]]
|
|
977
1004
|
name = "pest_meta"
|
|
978
|
-
version = "2.8.
|
|
1005
|
+
version = "2.8.6"
|
|
979
1006
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
980
|
-
checksum = "
|
|
1007
|
+
checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220"
|
|
981
1008
|
dependencies = [
|
|
982
1009
|
"pest",
|
|
983
1010
|
"sha2",
|
|
@@ -1013,15 +1040,15 @@ dependencies = [
|
|
|
1013
1040
|
|
|
1014
1041
|
[[package]]
|
|
1015
1042
|
name = "portable-atomic"
|
|
1016
|
-
version = "1.13.
|
|
1043
|
+
version = "1.13.1"
|
|
1017
1044
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1018
|
-
checksum = "
|
|
1045
|
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
1019
1046
|
|
|
1020
1047
|
[[package]]
|
|
1021
1048
|
name = "portable-atomic-util"
|
|
1022
|
-
version = "0.2.
|
|
1049
|
+
version = "0.2.5"
|
|
1023
1050
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1024
|
-
checksum = "
|
|
1051
|
+
checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
|
|
1025
1052
|
dependencies = [
|
|
1026
1053
|
"portable-atomic",
|
|
1027
1054
|
]
|
|
@@ -1035,20 +1062,30 @@ dependencies = [
|
|
|
1035
1062
|
"zerocopy",
|
|
1036
1063
|
]
|
|
1037
1064
|
|
|
1065
|
+
[[package]]
|
|
1066
|
+
name = "prettyplease"
|
|
1067
|
+
version = "0.2.37"
|
|
1068
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1069
|
+
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
|
1070
|
+
dependencies = [
|
|
1071
|
+
"proc-macro2",
|
|
1072
|
+
"syn",
|
|
1073
|
+
]
|
|
1074
|
+
|
|
1038
1075
|
[[package]]
|
|
1039
1076
|
name = "proc-macro2"
|
|
1040
|
-
version = "1.0.
|
|
1077
|
+
version = "1.0.106"
|
|
1041
1078
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1042
|
-
checksum = "
|
|
1079
|
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
1043
1080
|
dependencies = [
|
|
1044
1081
|
"unicode-ident",
|
|
1045
1082
|
]
|
|
1046
1083
|
|
|
1047
1084
|
[[package]]
|
|
1048
1085
|
name = "proptest"
|
|
1049
|
-
version = "1.
|
|
1086
|
+
version = "1.10.0"
|
|
1050
1087
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1051
|
-
checksum = "
|
|
1088
|
+
checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532"
|
|
1052
1089
|
dependencies = [
|
|
1053
1090
|
"bit-set",
|
|
1054
1091
|
"bit-vec",
|
|
@@ -1071,9 +1108,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
|
|
1071
1108
|
|
|
1072
1109
|
[[package]]
|
|
1073
1110
|
name = "quote"
|
|
1074
|
-
version = "1.0.
|
|
1111
|
+
version = "1.0.44"
|
|
1075
1112
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1076
|
-
checksum = "
|
|
1113
|
+
checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
|
|
1077
1114
|
dependencies = [
|
|
1078
1115
|
"proc-macro2",
|
|
1079
1116
|
]
|
|
@@ -1106,9 +1143,9 @@ dependencies = [
|
|
|
1106
1143
|
|
|
1107
1144
|
[[package]]
|
|
1108
1145
|
name = "rand_core"
|
|
1109
|
-
version = "0.9.
|
|
1146
|
+
version = "0.9.5"
|
|
1110
1147
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1111
|
-
checksum = "
|
|
1148
|
+
checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
|
|
1112
1149
|
dependencies = [
|
|
1113
1150
|
"getrandom 0.3.4",
|
|
1114
1151
|
]
|
|
@@ -1178,16 +1215,16 @@ version = "0.4.6"
|
|
|
1178
1215
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1179
1216
|
checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
|
|
1180
1217
|
dependencies = [
|
|
1181
|
-
"getrandom 0.2.
|
|
1218
|
+
"getrandom 0.2.17",
|
|
1182
1219
|
"libredox",
|
|
1183
1220
|
"thiserror",
|
|
1184
1221
|
]
|
|
1185
1222
|
|
|
1186
1223
|
[[package]]
|
|
1187
1224
|
name = "regex"
|
|
1188
|
-
version = "1.12.
|
|
1225
|
+
version = "1.12.3"
|
|
1189
1226
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1190
|
-
checksum = "
|
|
1227
|
+
checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
|
|
1191
1228
|
dependencies = [
|
|
1192
1229
|
"aho-corasick",
|
|
1193
1230
|
"memchr",
|
|
@@ -1197,9 +1234,9 @@ dependencies = [
|
|
|
1197
1234
|
|
|
1198
1235
|
[[package]]
|
|
1199
1236
|
name = "regex-automata"
|
|
1200
|
-
version = "0.4.
|
|
1237
|
+
version = "0.4.14"
|
|
1201
1238
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1202
|
-
checksum = "
|
|
1239
|
+
checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
|
|
1203
1240
|
dependencies = [
|
|
1204
1241
|
"aho-corasick",
|
|
1205
1242
|
"memchr",
|
|
@@ -1208,13 +1245,13 @@ dependencies = [
|
|
|
1208
1245
|
|
|
1209
1246
|
[[package]]
|
|
1210
1247
|
name = "regex-syntax"
|
|
1211
|
-
version = "0.8.
|
|
1248
|
+
version = "0.8.9"
|
|
1212
1249
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1213
|
-
checksum = "
|
|
1250
|
+
checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c"
|
|
1214
1251
|
|
|
1215
1252
|
[[package]]
|
|
1216
1253
|
name = "rfmt"
|
|
1217
|
-
version = "1.5.
|
|
1254
|
+
version = "1.5.3"
|
|
1218
1255
|
dependencies = [
|
|
1219
1256
|
"anyhow",
|
|
1220
1257
|
"clap",
|
|
@@ -1320,9 +1357,9 @@ dependencies = [
|
|
|
1320
1357
|
|
|
1321
1358
|
[[package]]
|
|
1322
1359
|
name = "ryu"
|
|
1323
|
-
version = "1.0.
|
|
1360
|
+
version = "1.0.23"
|
|
1324
1361
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1325
|
-
checksum = "
|
|
1362
|
+
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
|
|
1326
1363
|
|
|
1327
1364
|
[[package]]
|
|
1328
1365
|
name = "same-file"
|
|
@@ -1333,6 +1370,12 @@ dependencies = [
|
|
|
1333
1370
|
"winapi-util",
|
|
1334
1371
|
]
|
|
1335
1372
|
|
|
1373
|
+
[[package]]
|
|
1374
|
+
name = "semver"
|
|
1375
|
+
version = "1.0.27"
|
|
1376
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1377
|
+
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
|
|
1378
|
+
|
|
1336
1379
|
[[package]]
|
|
1337
1380
|
name = "seq-macro"
|
|
1338
1381
|
version = "0.3.6"
|
|
@@ -1441,9 +1484,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
|
|
1441
1484
|
|
|
1442
1485
|
[[package]]
|
|
1443
1486
|
name = "syn"
|
|
1444
|
-
version = "2.0.
|
|
1487
|
+
version = "2.0.117"
|
|
1445
1488
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1446
|
-
checksum = "
|
|
1489
|
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
1447
1490
|
dependencies = [
|
|
1448
1491
|
"proc-macro2",
|
|
1449
1492
|
"quote",
|
|
@@ -1452,12 +1495,12 @@ dependencies = [
|
|
|
1452
1495
|
|
|
1453
1496
|
[[package]]
|
|
1454
1497
|
name = "tempfile"
|
|
1455
|
-
version = "3.
|
|
1498
|
+
version = "3.25.0"
|
|
1456
1499
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1457
|
-
checksum = "
|
|
1500
|
+
checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1"
|
|
1458
1501
|
dependencies = [
|
|
1459
1502
|
"fastrand",
|
|
1460
|
-
"getrandom 0.
|
|
1503
|
+
"getrandom 0.4.1",
|
|
1461
1504
|
"once_cell",
|
|
1462
1505
|
"rustix",
|
|
1463
1506
|
"windows-sys 0.61.2",
|
|
@@ -1563,9 +1606,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
|
|
|
1563
1606
|
|
|
1564
1607
|
[[package]]
|
|
1565
1608
|
name = "unicode-ident"
|
|
1566
|
-
version = "1.0.
|
|
1609
|
+
version = "1.0.24"
|
|
1567
1610
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1568
|
-
checksum = "
|
|
1611
|
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
1569
1612
|
|
|
1570
1613
|
[[package]]
|
|
1571
1614
|
name = "unicode-segmentation"
|
|
@@ -1573,6 +1616,12 @@ version = "1.12.0"
|
|
|
1573
1616
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1574
1617
|
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
|
1575
1618
|
|
|
1619
|
+
[[package]]
|
|
1620
|
+
name = "unicode-xid"
|
|
1621
|
+
version = "0.2.6"
|
|
1622
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1623
|
+
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
|
|
1624
|
+
|
|
1576
1625
|
[[package]]
|
|
1577
1626
|
name = "unsafe-libyaml"
|
|
1578
1627
|
version = "0.2.11"
|
|
@@ -1618,18 +1667,27 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|
|
1618
1667
|
|
|
1619
1668
|
[[package]]
|
|
1620
1669
|
name = "wasip2"
|
|
1621
|
-
version = "1.0.
|
|
1670
|
+
version = "1.0.2+wasi-0.2.9"
|
|
1671
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1672
|
+
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
|
1673
|
+
dependencies = [
|
|
1674
|
+
"wit-bindgen",
|
|
1675
|
+
]
|
|
1676
|
+
|
|
1677
|
+
[[package]]
|
|
1678
|
+
name = "wasip3"
|
|
1679
|
+
version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
|
|
1622
1680
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1623
|
-
checksum = "
|
|
1681
|
+
checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
|
|
1624
1682
|
dependencies = [
|
|
1625
1683
|
"wit-bindgen",
|
|
1626
1684
|
]
|
|
1627
1685
|
|
|
1628
1686
|
[[package]]
|
|
1629
1687
|
name = "wasm-bindgen"
|
|
1630
|
-
version = "0.2.
|
|
1688
|
+
version = "0.2.109"
|
|
1631
1689
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1632
|
-
checksum = "
|
|
1690
|
+
checksum = "9ff9c7baef35ac3c0e17d8bfc9ad75eb62f85a2f02bccc906699dadb0aa9c622"
|
|
1633
1691
|
dependencies = [
|
|
1634
1692
|
"cfg-if",
|
|
1635
1693
|
"once_cell",
|
|
@@ -1640,9 +1698,9 @@ dependencies = [
|
|
|
1640
1698
|
|
|
1641
1699
|
[[package]]
|
|
1642
1700
|
name = "wasm-bindgen-macro"
|
|
1643
|
-
version = "0.2.
|
|
1701
|
+
version = "0.2.109"
|
|
1644
1702
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1645
|
-
checksum = "
|
|
1703
|
+
checksum = "39455e84ad887a0bbc93c116d72403f1bb0a39e37dd6f235a43e2128a0c7f1fd"
|
|
1646
1704
|
dependencies = [
|
|
1647
1705
|
"quote",
|
|
1648
1706
|
"wasm-bindgen-macro-support",
|
|
@@ -1650,9 +1708,9 @@ dependencies = [
|
|
|
1650
1708
|
|
|
1651
1709
|
[[package]]
|
|
1652
1710
|
name = "wasm-bindgen-macro-support"
|
|
1653
|
-
version = "0.2.
|
|
1711
|
+
version = "0.2.109"
|
|
1654
1712
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1655
|
-
checksum = "
|
|
1713
|
+
checksum = "dff4761f60b0b51fd13fec8764167b7bbcc34498ce3e52805fe1db6f2d56b6d6"
|
|
1656
1714
|
dependencies = [
|
|
1657
1715
|
"bumpalo",
|
|
1658
1716
|
"proc-macro2",
|
|
@@ -1663,18 +1721,52 @@ dependencies = [
|
|
|
1663
1721
|
|
|
1664
1722
|
[[package]]
|
|
1665
1723
|
name = "wasm-bindgen-shared"
|
|
1666
|
-
version = "0.2.
|
|
1724
|
+
version = "0.2.109"
|
|
1667
1725
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1668
|
-
checksum = "
|
|
1726
|
+
checksum = "bc6a171c53d98021a93a474c4a4579d76ba97f9517d871bc12e27640f218b6dd"
|
|
1669
1727
|
dependencies = [
|
|
1670
1728
|
"unicode-ident",
|
|
1671
1729
|
]
|
|
1672
1730
|
|
|
1731
|
+
[[package]]
|
|
1732
|
+
name = "wasm-encoder"
|
|
1733
|
+
version = "0.244.0"
|
|
1734
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1735
|
+
checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
|
|
1736
|
+
dependencies = [
|
|
1737
|
+
"leb128fmt",
|
|
1738
|
+
"wasmparser",
|
|
1739
|
+
]
|
|
1740
|
+
|
|
1741
|
+
[[package]]
|
|
1742
|
+
name = "wasm-metadata"
|
|
1743
|
+
version = "0.244.0"
|
|
1744
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1745
|
+
checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
|
|
1746
|
+
dependencies = [
|
|
1747
|
+
"anyhow",
|
|
1748
|
+
"indexmap",
|
|
1749
|
+
"wasm-encoder",
|
|
1750
|
+
"wasmparser",
|
|
1751
|
+
]
|
|
1752
|
+
|
|
1753
|
+
[[package]]
|
|
1754
|
+
name = "wasmparser"
|
|
1755
|
+
version = "0.244.0"
|
|
1756
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1757
|
+
checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
|
|
1758
|
+
dependencies = [
|
|
1759
|
+
"bitflags",
|
|
1760
|
+
"hashbrown 0.15.5",
|
|
1761
|
+
"indexmap",
|
|
1762
|
+
"semver",
|
|
1763
|
+
]
|
|
1764
|
+
|
|
1673
1765
|
[[package]]
|
|
1674
1766
|
name = "web-sys"
|
|
1675
|
-
version = "0.3.
|
|
1767
|
+
version = "0.3.86"
|
|
1676
1768
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1677
|
-
checksum = "
|
|
1769
|
+
checksum = "668fa5d00434e890a452ab060d24e3904d1be93f7bb01b70e5603baa2b8ab23b"
|
|
1678
1770
|
dependencies = [
|
|
1679
1771
|
"js-sys",
|
|
1680
1772
|
"wasm-bindgen",
|
|
@@ -1854,9 +1946,91 @@ dependencies = [
|
|
|
1854
1946
|
|
|
1855
1947
|
[[package]]
|
|
1856
1948
|
name = "wit-bindgen"
|
|
1857
|
-
version = "0.
|
|
1949
|
+
version = "0.51.0"
|
|
1950
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1951
|
+
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
|
1952
|
+
dependencies = [
|
|
1953
|
+
"wit-bindgen-rust-macro",
|
|
1954
|
+
]
|
|
1955
|
+
|
|
1956
|
+
[[package]]
|
|
1957
|
+
name = "wit-bindgen-core"
|
|
1958
|
+
version = "0.51.0"
|
|
1959
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1960
|
+
checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
|
|
1961
|
+
dependencies = [
|
|
1962
|
+
"anyhow",
|
|
1963
|
+
"heck",
|
|
1964
|
+
"wit-parser",
|
|
1965
|
+
]
|
|
1966
|
+
|
|
1967
|
+
[[package]]
|
|
1968
|
+
name = "wit-bindgen-rust"
|
|
1969
|
+
version = "0.51.0"
|
|
1970
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1971
|
+
checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
|
|
1972
|
+
dependencies = [
|
|
1973
|
+
"anyhow",
|
|
1974
|
+
"heck",
|
|
1975
|
+
"indexmap",
|
|
1976
|
+
"prettyplease",
|
|
1977
|
+
"syn",
|
|
1978
|
+
"wasm-metadata",
|
|
1979
|
+
"wit-bindgen-core",
|
|
1980
|
+
"wit-component",
|
|
1981
|
+
]
|
|
1982
|
+
|
|
1983
|
+
[[package]]
|
|
1984
|
+
name = "wit-bindgen-rust-macro"
|
|
1985
|
+
version = "0.51.0"
|
|
1986
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1987
|
+
checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
|
|
1988
|
+
dependencies = [
|
|
1989
|
+
"anyhow",
|
|
1990
|
+
"prettyplease",
|
|
1991
|
+
"proc-macro2",
|
|
1992
|
+
"quote",
|
|
1993
|
+
"syn",
|
|
1994
|
+
"wit-bindgen-core",
|
|
1995
|
+
"wit-bindgen-rust",
|
|
1996
|
+
]
|
|
1997
|
+
|
|
1998
|
+
[[package]]
|
|
1999
|
+
name = "wit-component"
|
|
2000
|
+
version = "0.244.0"
|
|
2001
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2002
|
+
checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
|
|
2003
|
+
dependencies = [
|
|
2004
|
+
"anyhow",
|
|
2005
|
+
"bitflags",
|
|
2006
|
+
"indexmap",
|
|
2007
|
+
"log",
|
|
2008
|
+
"serde",
|
|
2009
|
+
"serde_derive",
|
|
2010
|
+
"serde_json",
|
|
2011
|
+
"wasm-encoder",
|
|
2012
|
+
"wasm-metadata",
|
|
2013
|
+
"wasmparser",
|
|
2014
|
+
"wit-parser",
|
|
2015
|
+
]
|
|
2016
|
+
|
|
2017
|
+
[[package]]
|
|
2018
|
+
name = "wit-parser"
|
|
2019
|
+
version = "0.244.0"
|
|
1858
2020
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1859
|
-
checksum = "
|
|
2021
|
+
checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
|
|
2022
|
+
dependencies = [
|
|
2023
|
+
"anyhow",
|
|
2024
|
+
"id-arena",
|
|
2025
|
+
"indexmap",
|
|
2026
|
+
"log",
|
|
2027
|
+
"semver",
|
|
2028
|
+
"serde",
|
|
2029
|
+
"serde_derive",
|
|
2030
|
+
"serde_json",
|
|
2031
|
+
"unicode-xid",
|
|
2032
|
+
"wasmparser",
|
|
2033
|
+
]
|
|
1860
2034
|
|
|
1861
2035
|
[[package]]
|
|
1862
2036
|
name = "yaml-rust2"
|
|
@@ -1871,18 +2045,18 @@ dependencies = [
|
|
|
1871
2045
|
|
|
1872
2046
|
[[package]]
|
|
1873
2047
|
name = "zerocopy"
|
|
1874
|
-
version = "0.8.
|
|
2048
|
+
version = "0.8.39"
|
|
1875
2049
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1876
|
-
checksum = "
|
|
2050
|
+
checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a"
|
|
1877
2051
|
dependencies = [
|
|
1878
2052
|
"zerocopy-derive",
|
|
1879
2053
|
]
|
|
1880
2054
|
|
|
1881
2055
|
[[package]]
|
|
1882
2056
|
name = "zerocopy-derive"
|
|
1883
|
-
version = "0.8.
|
|
2057
|
+
version = "0.8.39"
|
|
1884
2058
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1885
|
-
checksum = "
|
|
2059
|
+
checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517"
|
|
1886
2060
|
dependencies = [
|
|
1887
2061
|
"proc-macro2",
|
|
1888
2062
|
"quote",
|
|
@@ -1891,6 +2065,6 @@ dependencies = [
|
|
|
1891
2065
|
|
|
1892
2066
|
[[package]]
|
|
1893
2067
|
name = "zmij"
|
|
1894
|
-
version = "1.0.
|
|
2068
|
+
version = "1.0.21"
|
|
1895
2069
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1896
|
-
checksum = "
|
|
2070
|
+
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|
data/ext/rfmt/Cargo.toml
CHANGED
data/ext/rfmt/src/emitter/mod.rs
CHANGED
|
@@ -463,6 +463,9 @@ impl Emitter {
|
|
|
463
463
|
NodeType::SingletonClassNode => self.emit_singleton_class(node, indent_level)?,
|
|
464
464
|
NodeType::CaseMatchNode => self.emit_case_match(node, indent_level)?,
|
|
465
465
|
NodeType::InNode => self.emit_in(node, indent_level)?,
|
|
466
|
+
NodeType::LocalVariableWriteNode | NodeType::InstanceVariableWriteNode => {
|
|
467
|
+
self.emit_variable_write(node, indent_level)?
|
|
468
|
+
}
|
|
466
469
|
_ => self.emit_generic(node, indent_level)?,
|
|
467
470
|
}
|
|
468
471
|
Ok(())
|
|
@@ -1145,7 +1148,29 @@ impl Emitter {
|
|
|
1145
1148
|
.unwrap_or(false);
|
|
1146
1149
|
|
|
1147
1150
|
if !has_block {
|
|
1148
|
-
//
|
|
1151
|
+
// Multiline call chain - reformat with indented style
|
|
1152
|
+
if node.location.start_line != node.location.end_line && !self.source.is_empty() {
|
|
1153
|
+
let start = node.location.start_offset;
|
|
1154
|
+
let end = node.location.end_offset;
|
|
1155
|
+
if let Some(text) = self.source.get(start..end).map(|s| s.to_string()) {
|
|
1156
|
+
let reformatted = self.reformat_chain_lines(&text, indent_level);
|
|
1157
|
+
self.emit_indent(indent_level)?;
|
|
1158
|
+
write!(self.buffer, "{}", reformatted)?;
|
|
1159
|
+
|
|
1160
|
+
for (idx, comment) in self.all_comments.iter().enumerate() {
|
|
1161
|
+
if !self.emitted_comment_indices.contains(&idx)
|
|
1162
|
+
&& comment.location.start_line >= node.location.start_line
|
|
1163
|
+
&& comment.location.end_line < node.location.end_line
|
|
1164
|
+
{
|
|
1165
|
+
self.emitted_comment_indices.insert(idx);
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
self.emit_trailing_comments(node.location.end_line)?;
|
|
1170
|
+
return Ok(());
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
// Single-line call - use generic emission (extracts from source)
|
|
1149
1174
|
return self.emit_generic_without_comments(node, indent_level);
|
|
1150
1175
|
}
|
|
1151
1176
|
|
|
@@ -1195,15 +1220,23 @@ impl Emitter {
|
|
|
1195
1220
|
let start = call_node.location.start_offset;
|
|
1196
1221
|
let end = block_node.location.start_offset;
|
|
1197
1222
|
|
|
1198
|
-
if let Some(text) = self.source.get(start..end) {
|
|
1199
|
-
//
|
|
1200
|
-
|
|
1223
|
+
if let Some(text) = self.source.get(start..end).map(|s| s.to_string()) {
|
|
1224
|
+
// Reformat multiline chains with indented style
|
|
1225
|
+
let is_multiline = call_node.location.start_line != block_node.location.start_line;
|
|
1226
|
+
if is_multiline {
|
|
1227
|
+
let reformatted = self.reformat_chain_lines(&text, indent_level);
|
|
1228
|
+
write!(self.buffer, "{}", reformatted)?;
|
|
1229
|
+
} else {
|
|
1230
|
+
write!(self.buffer, "{}", text.trim_end())?;
|
|
1231
|
+
}
|
|
1201
1232
|
|
|
1202
1233
|
// Mark comments within the extracted range as emitted
|
|
1234
|
+
let start_offset = call_node.location.start_offset;
|
|
1235
|
+
let end_offset = block_node.location.start_offset;
|
|
1203
1236
|
for (idx, comment) in self.all_comments.iter().enumerate() {
|
|
1204
1237
|
if !self.emitted_comment_indices.contains(&idx)
|
|
1205
|
-
&& comment.location.start_offset >=
|
|
1206
|
-
&& comment.location.end_offset <=
|
|
1238
|
+
&& comment.location.start_offset >= start_offset
|
|
1239
|
+
&& comment.location.end_offset <= end_offset
|
|
1207
1240
|
{
|
|
1208
1241
|
self.emitted_comment_indices.insert(idx);
|
|
1209
1242
|
}
|
|
@@ -1380,6 +1413,61 @@ impl Emitter {
|
|
|
1380
1413
|
Ok(())
|
|
1381
1414
|
}
|
|
1382
1415
|
|
|
1416
|
+
/// Emit variable write node (LocalVariableWriteNode, InstanceVariableWriteNode)
|
|
1417
|
+
/// Handles `x = value` and `@x = value` patterns
|
|
1418
|
+
fn emit_variable_write(&mut self, node: &Node, indent_level: usize) -> Result<()> {
|
|
1419
|
+
self.emit_comments_before(node.location.start_line, indent_level)?;
|
|
1420
|
+
|
|
1421
|
+
let name = node.metadata.get("name").map(|s| s.as_str()).unwrap_or("_");
|
|
1422
|
+
|
|
1423
|
+
// Get value node (first child)
|
|
1424
|
+
let value = match node.children.first() {
|
|
1425
|
+
Some(v) => v,
|
|
1426
|
+
None => {
|
|
1427
|
+
// No value: fallback to source extraction
|
|
1428
|
+
return self.emit_generic(node, indent_level);
|
|
1429
|
+
}
|
|
1430
|
+
};
|
|
1431
|
+
|
|
1432
|
+
let is_block_value = matches!(
|
|
1433
|
+
value.node_type,
|
|
1434
|
+
NodeType::IfNode
|
|
1435
|
+
| NodeType::UnlessNode
|
|
1436
|
+
| NodeType::CaseNode
|
|
1437
|
+
| NodeType::CaseMatchNode
|
|
1438
|
+
| NodeType::BeginNode
|
|
1439
|
+
| NodeType::WhileNode
|
|
1440
|
+
| NodeType::UntilNode
|
|
1441
|
+
| NodeType::ForNode
|
|
1442
|
+
);
|
|
1443
|
+
|
|
1444
|
+
self.emit_indent(indent_level)?;
|
|
1445
|
+
if is_block_value {
|
|
1446
|
+
writeln!(self.buffer, "{} =", name)?;
|
|
1447
|
+
self.emit_node(value, indent_level + 1)?;
|
|
1448
|
+
} else {
|
|
1449
|
+
write!(self.buffer, "{} = ", name)?;
|
|
1450
|
+
|
|
1451
|
+
let is_multiline_call = matches!(value.node_type, NodeType::CallNode)
|
|
1452
|
+
&& value.location.start_line != value.location.end_line;
|
|
1453
|
+
|
|
1454
|
+
if is_multiline_call && !self.source.is_empty() {
|
|
1455
|
+
let start = value.location.start_offset;
|
|
1456
|
+
let end = value.location.end_offset;
|
|
1457
|
+
if let Some(text) = self.source.get(start..end).map(|s| s.to_string()) {
|
|
1458
|
+
let reformatted = self.reformat_chain_lines(&text, indent_level);
|
|
1459
|
+
write!(self.buffer, "{}", reformatted.trim_start())?;
|
|
1460
|
+
}
|
|
1461
|
+
} else {
|
|
1462
|
+
self.write_source_text_trimmed(value)?;
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
self.emit_trailing_comments(node.location.end_line)?;
|
|
1467
|
+
|
|
1468
|
+
Ok(())
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1383
1471
|
/// Emit generic node by extracting from source
|
|
1384
1472
|
fn emit_generic(&mut self, node: &Node, indent_level: usize) -> Result<()> {
|
|
1385
1473
|
self.emit_comments_before(node.location.start_line, indent_level)?;
|
|
@@ -1432,6 +1520,47 @@ impl Emitter {
|
|
|
1432
1520
|
Ok(())
|
|
1433
1521
|
}
|
|
1434
1522
|
|
|
1523
|
+
/// Reformat multiline method chain text with indented style.
|
|
1524
|
+
/// The first line is kept as-is (trimmed at end).
|
|
1525
|
+
/// Subsequent lines starting with `.` or `&.` are re-indented to (indent_level + 1).
|
|
1526
|
+
///
|
|
1527
|
+
/// Example (indent_level=1, indent_width=2):
|
|
1528
|
+
/// Input: "foo.bar\n .baz\n .qux"
|
|
1529
|
+
/// Output: "foo.bar\n .baz\n .qux"
|
|
1530
|
+
fn reformat_chain_lines(&mut self, text: &str, indent_level: usize) -> String {
|
|
1531
|
+
let lines: Vec<&str> = text.lines().collect();
|
|
1532
|
+
if lines.len() <= 1 {
|
|
1533
|
+
return text.to_string();
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
// Only reformat if there are actual chain continuation lines (. or &.)
|
|
1537
|
+
let has_chain = lines[1..].iter().any(|l| {
|
|
1538
|
+
let t = l.trim_start();
|
|
1539
|
+
t.starts_with('.') || t.starts_with("&.")
|
|
1540
|
+
});
|
|
1541
|
+
if !has_chain {
|
|
1542
|
+
return text.to_string();
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
self.ensure_indent_cache(indent_level + 1);
|
|
1546
|
+
let chain_indent = self.indent_cache[indent_level + 1].clone();
|
|
1547
|
+
|
|
1548
|
+
let mut result = String::from(lines[0].trim_end());
|
|
1549
|
+
for line in &lines[1..] {
|
|
1550
|
+
result.push('\n');
|
|
1551
|
+
let trimmed = line.trim();
|
|
1552
|
+
if trimmed.starts_with('.') || trimmed.starts_with("&.") {
|
|
1553
|
+
result.push_str(&chain_indent);
|
|
1554
|
+
result.push_str(trimmed);
|
|
1555
|
+
} else {
|
|
1556
|
+
// Non-chain continuation (e.g., heredoc content): preserve as-is
|
|
1557
|
+
result.push_str(line);
|
|
1558
|
+
}
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
result
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1435
1564
|
/// Emit while/until loop
|
|
1436
1565
|
fn emit_while_until(&mut self, node: &Node, indent_level: usize, keyword: &str) -> Result<()> {
|
|
1437
1566
|
// Check if this is a postfix while/until (modifier form)
|
|
@@ -368,7 +368,7 @@ mod tests {
|
|
|
368
368
|
|
|
369
369
|
let node = result.unwrap();
|
|
370
370
|
assert_eq!(node.node_type, NodeType::ClassNode);
|
|
371
|
-
|
|
371
|
+
assert!(node.formatting.multiline);
|
|
372
372
|
assert!(node.is_multiline());
|
|
373
373
|
assert_eq!(node.line_count(), 3);
|
|
374
374
|
}
|
data/lib/rfmt/prism_bridge.rb
CHANGED
|
@@ -465,6 +465,8 @@ module Rfmt
|
|
|
465
465
|
if (value = extract_literal_value(node))
|
|
466
466
|
metadata['value'] = value
|
|
467
467
|
end
|
|
468
|
+
when Prism::LocalVariableWriteNode, Prism::InstanceVariableWriteNode
|
|
469
|
+
metadata['name'] = node.name.to_s
|
|
468
470
|
when Prism::IfNode, Prism::UnlessNode
|
|
469
471
|
# Detect ternary operator: if_keyword_loc is nil for ternary
|
|
470
472
|
metadata['is_ternary'] = node.if_keyword_loc.nil?.to_s if node.respond_to?(:if_keyword_loc)
|
data/lib/rfmt/version.rb
CHANGED