diff --git a/src/bin/rhai-repl.rs b/src/bin/rhai-repl.rs index ccb6af92..afdff9dc 100644 --- a/src/bin/rhai-repl.rs +++ b/src/bin/rhai-repl.rs @@ -247,6 +247,7 @@ fn setup_editor() -> Editor<()> { rl } +/// Module containing sample functions. #[export_module] mod sample_functions { /// This is a sample function. diff --git a/src/serde/metadata.rs b/src/serde/metadata.rs index b6895277..31610850 100644 --- a/src/serde/metadata.rs +++ b/src/serde/metadata.rs @@ -168,6 +168,8 @@ pub fn gen_metadata_to_json( include_standard_packages: bool, ) -> serde_json::Result { let _ast = ast; + #[cfg(feature = "metadata")] + let mut global_doc = String::new(); let mut global = ModuleMetadata::new(); #[cfg(not(feature = "no_module"))] @@ -185,7 +187,16 @@ pub fn gen_metadata_to_json( .global_modules .iter() .filter(|m| !m.flags.contains(exclude_flags)) - .flat_map(|m| m.iter_fn()) + .flat_map(|m| { + #[cfg(feature = "metadata")] + if !m.doc().is_empty() { + if !global_doc.is_empty() { + global_doc.push('\n'); + } + global_doc.push_str(m.doc()); + } + m.iter_fn() + }) .for_each(|f| { #[allow(unused_mut)] let mut meta: FnMetadata = f.into(); @@ -213,7 +224,17 @@ pub fn gen_metadata_to_json( #[cfg(feature = "metadata")] if let Some(ast) = _ast { - global.doc = ast.doc(); + if !ast.doc().is_empty() { + if !global_doc.is_empty() { + global_doc.push('\n'); + } + global_doc.push_str(ast.doc()); + } + } + + #[cfg(feature = "metadata")] + { + global.doc = &global_doc; } serde_json::to_string_pretty(&global)