Home / File/ auto_source_detection.rs — tailwindcss Source File

auto_source_detection.rs — tailwindcss Source File

Architecture documentation for auto_source_detection.rs, a rust file in the tailwindcss codebase. 2 imports, 0 dependents.

File rust Oxide Scanner 2 imports 3 functions

Entity Profile

Dependency Diagram

graph LR
  2ec32464_b19b_15b2_0fc7_516be0597884["auto_source_detection.rs"]
  9d5b045c_abfa_028c_3886_58b1698ea3dc["ignore::gitignore::"]
  2ec32464_b19b_15b2_0fc7_516be0597884 --> 9d5b045c_abfa_028c_3886_58b1698ea3dc
  6d15903a_0cf5_e00c_800c_2bb2605c4081["std::sync"]
  2ec32464_b19b_15b2_0fc7_516be0597884 --> 6d15903a_0cf5_e00c_800c_2bb2605c4081
  style 2ec32464_b19b_15b2_0fc7_516be0597884 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

use ignore::gitignore::{Gitignore, GitignoreBuilder};
use std::sync;

/// All the default rules for auto source detection.
///
/// This includes:
///
/// - Ignoring common content directories like `.git` and `node_modules`
/// - Ignoring file extensions we definitely don't want to include like `.css` and `.scss`
/// - Ignoring common binary file extensions like `.png` and `.jpg`
/// - Ignoring common files like `yarn.lock` and `package-lock.json`
///
pub static RULES: sync::LazyLock<Vec<Gitignore>> = sync::LazyLock::new(|| {
    let mut builder = GitignoreBuilder::new("");

    builder.add_line(None, &IGNORED_CONTENT_DIRS_GLOB).unwrap();
    builder.add_line(None, &IGNORED_EXTENSIONS_GLOB).unwrap();
    builder.add_line(None, &IGNORED_FILES_GLOB).unwrap();

    // Ensure these rules do not match on folder names
    let mut file_only_builder = GitignoreBuilder::new("");
    file_only_builder
        .only_on_files(true)
        .add_line(None, &BINARY_EXTENSIONS_GLOB)
        .unwrap();

    vec![builder.build().unwrap(), file_only_builder.build().unwrap()]
});

pub static IGNORED_CONTENT_DIRS: sync::LazyLock<Vec<&'static str>> = sync::LazyLock::new(|| {
    include_str!("fixtures/ignored-content-dirs.txt")
        .trim()
        .lines()
        .collect()
});

static IGNORED_CONTENT_DIRS_GLOB: sync::LazyLock<String> =
    sync::LazyLock::new(|| format!("{{{}}}/", IGNORED_CONTENT_DIRS.join(",")));

static IGNORED_EXTENSIONS_GLOB: sync::LazyLock<String> = sync::LazyLock::new(|| {
    format!(
        "*.{{{}}}",
        include_str!("fixtures/ignored-extensions.txt")
            .trim()
            .lines()
            .collect::<Vec<&str>>()
            .join(",")
    )
});

pub static BINARY_EXTENSIONS_GLOB: sync::LazyLock<String> = sync::LazyLock::new(|| {
    format!(
        "*.{{{}}}",
        include_str!("fixtures/binary-extensions.txt")
            .trim()
            .lines()
            .collect::<Vec<&str>>()
            .join(",")
    )
});

static IGNORED_FILES_GLOB: sync::LazyLock<String> = sync::LazyLock::new(|| {
    format!(
        "{{{}}}",
        include_str!("fixtures/ignored-files.txt")
            .trim()
            .lines()
            .collect::<Vec<&str>>()
            .join(",")
    )
});

Domain

Subdomains

Dependencies

  • ignore::gitignore::
  • std::sync

Frequently Asked Questions

What does auto_source_detection.rs do?
auto_source_detection.rs is a source file in the tailwindcss codebase, written in rust. It belongs to the Oxide domain, Scanner subdomain.
What functions are defined in auto_source_detection.rs?
auto_source_detection.rs defines 3 function(s): builder, format, include_str.
What does auto_source_detection.rs depend on?
auto_source_detection.rs imports 2 module(s): ignore::gitignore::, std::sync.
Where is auto_source_detection.rs in the architecture?
auto_source_detection.rs is located at crates/oxide/src/scanner/auto_source_detection.rs (domain: Oxide, subdomain: Scanner, directory: crates/oxide/src/scanner).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free