@@ -32,6 +32,7 @@ use project_model::{
32
32
} ;
33
33
use rustc_hash:: { FxHashMap , FxHashSet } ;
34
34
use serde:: { de:: DeserializeOwned , Deserialize } ;
35
+ use stdx:: format_to_acc;
35
36
use vfs:: { AbsPath , AbsPathBuf } ;
36
37
37
38
use crate :: {
@@ -2563,14 +2564,13 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
2563
2564
2564
2565
#[ cfg( test) ]
2565
2566
fn manual ( fields : & [ ( & ' static str , & ' static str , & [ & str ] , & str ) ] ) -> String {
2566
- fields
2567
- . iter ( )
2568
- . map ( |( field, _ty, doc, default) | {
2569
- let name = format ! ( "rust-analyzer.{}" , field. replace( '_' , "." ) ) ;
2570
- let doc = doc_comment_to_string ( doc) ;
2571
- if default. contains ( '\n' ) {
2572
- format ! (
2573
- r#"[[{name}]]{name}::
2567
+ fields. iter ( ) . fold ( String :: new ( ) , |mut acc, ( field, _ty, doc, default) | {
2568
+ let name = format ! ( "rust-analyzer.{}" , field. replace( '_' , "." ) ) ;
2569
+ let doc = doc_comment_to_string ( doc) ;
2570
+ if default. contains ( '\n' ) {
2571
+ format_to_acc ! (
2572
+ acc,
2573
+ r#"[[{name}]]{name}::
2574
2574
+
2575
2575
--
2576
2576
Default:
@@ -2580,16 +2580,17 @@ Default:
2580
2580
{doc}
2581
2581
--
2582
2582
"#
2583
- )
2584
- } else {
2585
- format ! ( "[[{name}]]{name} (default: `{default}`)::\n +\n --\n {doc}--\n " )
2586
- }
2587
- } )
2588
- . collect :: < String > ( )
2583
+ )
2584
+ } else {
2585
+ format_to_acc ! ( acc, "[[{name}]]{name} (default: `{default}`)::\n +\n --\n {doc}--\n " )
2586
+ }
2587
+ } )
2589
2588
}
2590
2589
2591
2590
fn doc_comment_to_string ( doc : & [ & str ] ) -> String {
2592
- doc. iter ( ) . map ( |it| it. strip_prefix ( ' ' ) . unwrap_or ( it) ) . map ( |it| format ! ( "{it}\n " ) ) . collect ( )
2591
+ doc. iter ( )
2592
+ . map ( |it| it. strip_prefix ( ' ' ) . unwrap_or ( it) )
2593
+ . fold ( String :: new ( ) , |mut acc, it| format_to_acc ! ( acc, "{it}\n " ) )
2593
2594
}
2594
2595
2595
2596
#[ cfg( test) ]
0 commit comments