vize_patina 0.3.0

Patina - The quality checker for Vize code linting
Documentation
<p align="center">
  <img src="https://raw.githubusercontent.com/ubugeeei/vize/main/crates/vize_patina/logo.svg" alt="vize_patina logo" width="120" height="120">
</p>

<h1 align="center">vize_patina</h1>

<p align="center">
  <strong>The Patina - Code quality checker for Vue SFCs</strong>
</p>

---

## Name Origin

**Patina** (/ˈpætɪnə/) refers to the greenish layer that forms on copper, bronze, and similar metals through oxidation over time. In the world of art and antiques, patina is highly valued - it serves as a mark of authenticity, age, and quality that cannot be easily faked.

In the art world, patina:
- **Authenticates** - Indicates genuine age and provenance
- **Enhances** - Adds character and beauty to surfaces
- **Protects** - Forms a protective layer over the base metal

Similarly, `vize_patina` provides:
- **Code linting** - Checks for common issues and anti-patterns
- **Quality assurance** - Ensures Vue SFC code meets standards
- **Best practices** - Enforces consistent coding conventions

## Features

- **Fast** - Written in Rust, runs in parallel
- **Configurable** - Enable/disable rules, set severity
- **Fixable** - Auto-fix support for many rules
- **Vue 3 focused** - Composition API, `<script setup>` support

## Usage

```rust
use vize_patina::{Linter, LintConfig, RuleSet};
use vize_atelier_sfc::parse_sfc;

let sfc = parse_sfc(source, Default::default())?;
let config = LintConfig::default();
let linter = Linter::new(config);

let diagnostics = linter.lint(&sfc);
for diag in diagnostics {
    println!("{}: {}", diag.rule_id, diag.message);
}
```

## Rule Categories

| Category | Description |
|----------|-------------|
| `art` | Art template syntax rules |
| `musea` | Design token validation |
| `essential` | Prevent errors (Vue 3) |
| `strongly-recommended` | Improve readability |

## Part of the Vize Art Collection

`vize_patina` is part of the Vize compiler's art-themed crate collection:

| Crate | Art Term | Role |
|-------|----------|------|
| vize_carton | Carton (Portfolio Case) | Shared utilities & allocator |
| vize_atelier_core | - | AST & Parser (core) |
| vize_atelier_dom | Atelier (Workshop) | DOM compiler |
| vize_atelier_vapor | Atelier (Workshop) | Vapor compiler |
| vize_atelier_sfc | Atelier (Workshop) | SFC compiler |
| vize_vitrine | Vitrine (Display Case) | Bindings (Node.js/WASM) |
| vize_canon | Canon (Standard) | Type checker |
| vize_glyph | Glyph (Letterform) | Formatter |
| **vize_patina** | **Patina (Aged Surface)** | **Linter (this crate)** |

## License

MIT License