1mod ast;
2pub mod cli;
3pub mod config;
4mod context;
5mod engine;
6pub mod fix;
7pub mod log;
8pub mod output;
9mod rule;
10mod rules;
11mod sets;
12mod violation;
13
14use std::io;
15
16pub use config::{Config, LintLevel};
17pub use engine::LintEngine;
18use miette::Diagnostic;
19pub use output::{
20 JsonFix, JsonOutput, JsonReplacement, JsonViolation, Summary, VsCodeCodeAction,
21 VsCodeDiagnostic, VsCodeJsonOutput, VsCodeLocation, VsCodePosition, VsCodeRange,
22 VsCodeRelatedInformation, VsCodeTextEdit, format_json, format_text, format_vscode_json,
23};
24use thiserror::Error;
25use toml::de;
26pub use violation::Violation;
27pub(crate) use violation::{Fix, Replacement};
28
29#[derive(Error, Debug, Diagnostic)]
30pub enum LintError {
31 #[error("Failed to read file: {0}")]
32 #[diagnostic(code(nu_lint::io_error))]
33 IoError(#[from] io::Error),
34
35 #[error("Failed to parse configuration: {0}")]
36 #[diagnostic(code(nu_lint::config_error))]
37 ConfigError(#[from] de::Error),
38}