Ragex.Editor.Report
(Ragex v0.12.0)
View Source
Report generation for refactoring operations.
Generates comprehensive reports in multiple formats (Markdown, JSON, HTML) combining statistics, diffs, conflicts, and warnings from refactoring operations.
Summary
Functions
Creates a summary report data structure from refactor result and diffs.
Generates a refactoring report in the specified format.
Saves a report to a file.
Types
@type report_data() :: %{ operation: atom(), status: :success | :failure, stats: stats(), diffs: [map()], conflicts: [Ragex.Editor.Conflict.conflict()], warnings: [String.t()], timing: timing_info() }
@type report_format() :: :markdown | :json | :html
@type stats() :: %{ files_modified: non_neg_integer(), lines_added: non_neg_integer(), lines_removed: non_neg_integer(), functions_affected: non_neg_integer() }
@type timing_info() :: %{ start_time: DateTime.t(), end_time: DateTime.t(), duration_ms: non_neg_integer() }
Functions
@spec create_report_data(map(), [map()], [Ragex.Editor.Conflict.conflict()]) :: report_data()
Creates a summary report data structure from refactor result and diffs.
Parameters
refactor_result: Result from a refactoring operationdiffs: List of diff results from Diff.generate/3conflicts: Optional list of conflicts from Conflict module
Returns
- Report data map
@spec generate(report_data(), report_format(), keyword()) :: {:ok, String.t()} | {:error, term()}
Generates a refactoring report in the specified format.
Parameters
data: Report data including operation details, stats, diffs, and conflictsformat: Output format (:markdown, :json, or :html)opts: Options:include_diffs- Include full diffs (default: true):include_conflicts- Include conflict details (default: true):include_timing- Include timing information (default: true)
Returns
{:ok, report_string}with formatted report{:error, reason}on failure
Saves a report to a file.
Parameters
report: Generated report stringoutput_path: File path to save report
Returns
:okon success{:error, reason}on failure