pub mod ai_fix;
mod editor;
mod menu;
mod nolint;
mod quickfix;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum InteractiveError {
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Failed to write quickfix file: {0}")]
QuickfixWrite(String),
#[error("Failed to launch editor '{editor}': {message}")]
EditorLaunch { editor: String, message: String },
#[error("File operation failed: {0}")]
FileOperation(String),
#[error("Invalid line number {line} (file has {total} lines)")]
InvalidLineNumber { line: usize, total: usize },
#[error("File not found: {0}")]
FileNotFound(String),
}
pub type InteractiveResult<T> = std::result::Result<T, InteractiveError>;
pub use ai_fix::{run_ai_fix_all, run_ai_fix_single, AiFixConfig, AiFixResult};
pub use editor::open_in_editor;
pub use menu::{run_interactive, InteractiveAction};
pub use nolint::add_nolint_comment;
pub use quickfix::{generate_quickfix, generate_quickfix_from_result, write_quickfix_file};