vacro-report 0.1.2

Diagnostic reporting enhancements for Rust procedural macros, improving error messages.
Documentation
# Vacro Report

**Better Panic Reporting for Procedural Macros**

[![crates.io](https://img.shields.io/crates/v/vacro-report.svg?style=for-the-badge&color=fc8d62&logo=rust)](https://crates.io/crates/vacro-report)
[![docs.rs](https://img.shields.io/badge/docs.rs-vacro--report-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs)](https://docs.rs/vacro-report)

## Introduction

`vacro-report` is a diagnostic enhancement tool designed to improve the debugging experience for Rust Procedural Macros.

It currently focuses on solving the opaque panic messages generated by `syn::parse_quote!` or `parse_quote_spanned`. When `parse_quote!` or `parse_quote_spanned` fails, it usually just says "failed to parse". `vacro-report` intercepts these calls and prints the actual generated token stream formatted as code, highlighting the syntax error.

## Installation

```toml
[dependencies]
vacro-report = "0.1.2"
```

## Usage

Simply decorate your function with `#[vacro_report::scope]`.

Inside the scope, any usage of `parse_quote!` and `parse_quote_spanned` will be automatically instrumented. No other code changes are required.

```rust
use syn::{parse_quote, Expr, Token};
use vacro_report::scope;

#[scope]
fn generate_code() {
    // If this fails, vacro-report will print the exact tokens that caused the error.
    let _expr: Expr = parse_quote! {
        1 + 2 + // Missing operand, would normally panic silently or vaguely
    };
}
```

## Features

- **Automatic Interception**: Rewrites `parse_quote!` and `parse_quote_spanned!` calls within the `#[scope]` function.
- **Detailed Diagnostics**: When a parsing error occurs, it displays the generated code (formatted) and the error location.
- **Zero Overhead (Success)**: Adds minimal overhead only when an error actually occurs (panic path).
  > ⚠️ Warning
  >
  > We use `debug_assertions` to make this judgment, which means that if you have enabled certain optimizations, the effect may not trigger.