diff --git a/lib/ai/formula_list.dart b/lib/ai/formula_list.dart index a9f6675..fce2c1d 100644 --- a/lib/ai/formula_list.dart +++ b/lib/ai/formula_list.dart @@ -53,16 +53,20 @@ class _FormulaListState extends State { }).toList(); } + String _formulaAndDependenciesToStringLiteral(Formula formula) { + // Get the formula and its dependencies + final dependencies = widget.corpus.withDependencies(formula); + + // Convert each dependency to its string literal representation + final literals = dependencies.map((element) => element.toStringLiteral()).toList(); + + // Create an array string literal containing all the elements + return '[${literals.join(', ')}]'; + } + void _shareFormula(Formula formula) async { try { - // Get the formula and its dependencies - final dependencies = widget.corpus.withDependencies(formula); - - // Convert each dependency to its string literal representation - final literals = dependencies.map((element) => element.toStringLiteral()).toList(); - - // Create an array string literal containing all the elements - final exportString = '[${literals.join(', ')}]'; + final exportString = _formulaAndDependenciesToStringLiteral(formula); // Share the string await share_plus.SharePlus.instance.share( @@ -90,14 +94,7 @@ class _FormulaListState extends State { void _copyFormula(Formula formula) async { try { - // Get the formula and its dependencies - final dependencies = widget.corpus.withDependencies(formula); - - // Convert each dependency to its string literal representation - final literals = dependencies.map((element) => element.toStringLiteral()).toList(); - - // Create an array string literal containing all the elements - final exportString = '[${literals.join(', ')}]'; + final exportString = _formulaAndDependenciesToStringLiteral(formula); // Copy to clipboard await Clipboard.setData(ClipboardData(text: exportString)); diff --git a/lib/formula_models.dart b/lib/formula_models.dart index 12ceaba..7c79574 100644 --- a/lib/formula_models.dart +++ b/lib/formula_models.dart @@ -358,7 +358,7 @@ class Formula implements FormulaElement { buffer.write(', "input": [${inputStrings.join(", ")}]'); buffer.write(', "output": ${output.toStringLiteral()}'); - + buffer.write(', "d4rtCode": r"""$d4rtCode"""'); if (tags.isNotEmpty) {