Skip to main content

is_ignored_at

Function is_ignored_at 

Source
pub fn is_ignored_at(
    source: &Utf8Path,
    path: &Utf8Path,
    is_dir: bool,
) -> Result<bool>
Expand description

One-shot .yuiignore test for a single path under source.

Builds a fresh YuiIgnoreStack, pushes every directory between source and path.parent() (so a deeply-nested .yuiignore participates), then asks the stack. Use this when you have a single candidate path to check (e.g. manual absorb’s mount-derived candidate); for recursive walks, push/pop on the hot path with a single long-lived YuiIgnoreStack instead.

Patterns use full gitignore syntax: glob (*, **), negation (!), trailing-slash dir-only matching, comments (#). Paths outside source short-circuit to false.

If an ancestor directory is itself ignored, we return true immediately rather than descending into its .yuiignore — the recursive walkers (walk_and_link, classify_walk_inner) skip ignored subtrees entirely, so they never see the inner rules. Honouring inner whitelists here would let manual absorb pick a path that apply / status would never have linked. (Caught in PR #50 review.)