@@ -32,6 +32,7 @@ use project_model::{
3232} ;
3333use rustc_hash:: { FxHashMap , FxHashSet } ;
3434use serde:: { de:: DeserializeOwned , Deserialize } ;
35+ use stdx:: format_to_acc;
3536use vfs:: { AbsPath , AbsPathBuf } ;
3637
3738use crate :: {
@@ -2563,14 +2564,13 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
25632564
25642565#[ cfg( test) ]
25652566fn 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}::
25742574+
25752575--
25762576Default:
@@ -2580,16 +2580,17 @@ Default:
25802580{doc}
25812581--
25822582"#
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+ } )
25892588}
25902589
25912590fn 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 " ) )
25932594}
25942595
25952596#[ cfg( test) ]
0 commit comments