diff --git a/mlf-codegen/src/lib.rs b/mlf-codegen/src/lib.rs index a43efdb..a3830e0 100644 --- a/mlf-codegen/src/lib.rs +++ b/mlf-codegen/src/lib.rs @@ -171,7 +171,13 @@ fn generate_record_json(record: &Record, usage_counts: &HashMap, required.push(field.name.name.clone()); } - let field_json = generate_type_json(&field.ty, usage_counts, workspace, current_namespace); + let mut field_json = generate_type_json(&field.ty, usage_counts, workspace, current_namespace); + // Add description if the field has doc comments + if !field.docs.is_empty() { + if let Some(obj) = field_json.as_object_mut() { + obj.insert("description".to_string(), json!(extract_docs(&field.docs))); + } + } properties.insert(field.name.name.clone(), field_json); } @@ -262,7 +268,13 @@ fn generate_procedure_json(procedure: &Procedure, usage_counts: &HashMap, workspac if !field.optional { required.push(field.name.name.clone()); } - properties.insert( - field.name.name.clone(), - generate_type_json(&field.ty, usage_counts, workspace, current_namespace), - ); + let mut field_json = generate_type_json(&field.ty, usage_counts, workspace, current_namespace); + // Add description if the field has doc comments + if !field.docs.is_empty() { + if let Some(obj) = field_json.as_object_mut() { + obj.insert("description".to_string(), json!(extract_docs(&field.docs))); + } + } + properties.insert(field.name.name.clone(), field_json); } let mut obj = Map::new();