Skip to main content

ass_core/analysis/linting/
mod.rs

1//! Linting and validation for ASS subtitle scripts.
2//!
3//! Provides comprehensive linting capabilities to detect common issues, spec violations,
4//! and performance problems in ASS scripts. Designed for editor integration with
5//! configurable severity levels and extensible rule system.
6//!
7//! # Features
8//!
9//! - **Comprehensive validation**: Timing, styling, formatting, and spec compliance
10//! - **Configurable severity**: Error, warning, info, and hint levels
11//! - **Extensible rules**: Trait-based system for custom linting rules
12//! - **Performance optimized**: Zero-copy analysis with <1ms per rule
13//! - **Editor integration**: Rich diagnostic information with precise locations
14//!
15//! # Built-in Rules
16//!
17//! - Timing validation: Overlaps, negative durations, unrealistic timing
18//! - Style validation: Missing styles, invalid colors, font issues
19//! - Text validation: Encoding issues, malformed tags, accessibility
20//! - Performance: Complex animations, large fonts, excessive overlaps
21//! - Spec compliance: Invalid sections, deprecated features, compatibility
22
23mod category;
24mod config;
25mod issue;
26mod rule;
27pub mod rules;
28mod runner;
29mod severity;
30
31#[cfg(test)]
32mod config_tests;
33#[cfg(test)]
34mod issue_tests;
35#[cfg(test)]
36mod runner_tests;
37
38pub use category::IssueCategory;
39pub use config::LintConfig;
40pub use issue::{IssueLocation, LintIssue};
41pub use rule::LintRule;
42pub use rules::BuiltinRules;
43pub use runner::{lint_script, lint_script_with_analysis};
44pub use severity::IssueSeverity;