pub struct FallowConfig {Show 16 fields
pub schema: Option<String>,
pub extends: Vec<String>,
pub entry: Vec<String>,
pub ignore_patterns: Vec<String>,
pub framework: Vec<ExternalPluginDef>,
pub workspaces: Option<WorkspaceConfig>,
pub ignore_dependencies: Vec<String>,
pub ignore_exports: Vec<IgnoreExportRule>,
pub duplicates: DuplicatesConfig,
pub health: HealthConfig,
pub rules: RulesConfig,
pub boundaries: BoundaryConfig,
pub production: bool,
pub plugins: Vec<String>,
pub overrides: Vec<ConfigOverride>,
pub regression: Option<RegressionConfig>,
}Expand description
User-facing configuration loaded from .fallowrc.json or fallow.toml.
§Examples
use fallow_config::FallowConfig;
// Default config has sensible defaults
let config = FallowConfig::default();
assert!(config.entry.is_empty());
assert!(!config.production);
// Deserialize from JSON
let config: FallowConfig = serde_json::from_str(r#"{
"entry": ["src/main.ts"],
"production": true
}"#).unwrap();
assert_eq!(config.entry, vec!["src/main.ts"]);
assert!(config.production);Fields§
§schema: Option<String>JSON Schema reference (ignored during deserialization).
extends: Vec<String>Base config files to extend from.
Supports two resolution strategies:
- Relative paths: resolved relative to the config file containing the
extends. - npm packages: prefixed with
npm:, resolved by walking upnode_modules/. Package resolution checkspackage.jsonexports/mainfirst, then falls back to standard config file names. Subpaths are supported (e.g.,npm:@co/config/strict.json).
Base configs are loaded first, then this config’s values override them. Later entries in the array override earlier ones.
Note: npm: resolution uses node_modules/ directory walk-up and is
incompatible with Yarn Plug’n’Play (PnP), which has no node_modules/.
entry: Vec<String>Additional entry point glob patterns.
ignore_patterns: Vec<String>Glob patterns to ignore from analysis.
framework: Vec<ExternalPluginDef>Custom framework definitions (inline plugin definitions).
workspaces: Option<WorkspaceConfig>Workspace overrides.
ignore_dependencies: Vec<String>Dependencies to ignore (always considered used).
ignore_exports: Vec<IgnoreExportRule>Export ignore rules.
duplicates: DuplicatesConfigDuplication detection settings.
health: HealthConfigComplexity health metrics settings.
rules: RulesConfigPer-issue-type severity rules.
boundaries: BoundaryConfigArchitecture boundary enforcement configuration.
production: boolProduction mode: exclude test/dev files, only start/build scripts.
plugins: Vec<String>Paths to external plugin files or directories containing plugin files.
Supports TOML, JSON, and JSONC formats.
In addition to these explicit paths, fallow automatically discovers:
*.toml,*.json,*.jsoncfiles in.fallow/plugins/fallow-plugin-*.{toml,json,jsonc}files in the project root
overrides: Vec<ConfigOverride>Per-file rule overrides matching oxlint’s overrides pattern.
regression: Option<RegressionConfig>Regression detection baseline embedded in config.
Stores issue counts from a known-good state for CI regression checks.
Populated by --save-regression-baseline (no path), read by --fail-on-regression.
Implementations§
Source§impl FallowConfig
impl FallowConfig
Sourcepub fn load(path: &Path) -> Result<Self, Report>
pub fn load(path: &Path) -> Result<Self, Report>
Load config from a fallow config file (TOML or JSON/JSONC).
The format is detected from the file extension:
.toml→ TOML.json→ JSON (with JSONC comment stripping)
Supports extends for config inheritance. Extended configs are loaded
and deep-merged before this config’s values are applied.
§Errors
Returns an error when the config file cannot be read, merged, or deserialized.
Sourcepub fn find_config_path(start: &Path) -> Option<PathBuf>
pub fn find_config_path(start: &Path) -> Option<PathBuf>
Find the config file path without loading it.
Searches the same locations as find_and_load.
Sourcepub fn find_and_load(start: &Path) -> Result<Option<(Self, PathBuf)>, String>
pub fn find_and_load(start: &Path) -> Result<Option<(Self, PathBuf)>, String>
Find and load config, searching from start up to the project root.
§Errors
Returns an error if a config file is found but cannot be read or parsed.
Sourcepub fn json_schema() -> Value
pub fn json_schema() -> Value
Generate JSON Schema for the configuration format.
Source§impl FallowConfig
impl FallowConfig
Sourcepub fn resolve(
self,
root: PathBuf,
output: OutputFormat,
threads: usize,
no_cache: bool,
quiet: bool,
) -> ResolvedConfig
pub fn resolve( self, root: PathBuf, output: OutputFormat, threads: usize, no_cache: bool, quiet: bool, ) -> ResolvedConfig
Resolve into a fully resolved config with compiled globs.
Trait Implementations§
Source§impl Debug for FallowConfig
impl Debug for FallowConfig
Source§impl Default for FallowConfig
impl Default for FallowConfig
Source§fn default() -> FallowConfig
fn default() -> FallowConfig
Source§impl<'de> Deserialize<'de> for FallowConfig
impl<'de> Deserialize<'de> for FallowConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for FallowConfig
impl JsonSchema for FallowConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for FallowConfig
impl RefUnwindSafe for FallowConfig
impl Send for FallowConfig
impl Sync for FallowConfig
impl Unpin for FallowConfig
impl UnsafeUnpin for FallowConfig
impl UnwindSafe for FallowConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more