parse_excludes_file() — tailwindcss Function Reference
Architecture documentation for the parse_excludes_file() function in gitignore.rs from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD cd8e1cd4_0aec_282f_80ee_e6723b060057["parse_excludes_file()"] 61377720_4557_3c63_7653_b6ed73e2face["gitignore.rs"] cd8e1cd4_0aec_282f_80ee_e6723b060057 -->|defined in| 61377720_4557_3c63_7653_b6ed73e2face 2f610908_1425_7521_083b_1eab5c1ed5ad["gitconfig_excludes_path()"] 2f610908_1425_7521_083b_1eab5c1ed5ad -->|calls| cd8e1cd4_0aec_282f_80ee_e6723b060057 4c6fa92a_4f19_5545_570f_738aff1326ed["parse_excludes_file1()"] 4c6fa92a_4f19_5545_570f_738aff1326ed -->|calls| cd8e1cd4_0aec_282f_80ee_e6723b060057 71fed620_0675_67a7_1047_b2f365f00904["parse_excludes_file2()"] 71fed620_0675_67a7_1047_b2f365f00904 -->|calls| cd8e1cd4_0aec_282f_80ee_e6723b060057 a49a269a_c89a_51d6_85f6_a7f64ab268a5["parse_excludes_file3()"] a49a269a_c89a_51d6_85f6_a7f64ab268a5 -->|calls| cd8e1cd4_0aec_282f_80ee_e6723b060057 50083cc8_1e1b_c2b2_0b0a_3f75f91e0a88["parse_excludes_file4()"] 50083cc8_1e1b_c2b2_0b0a_3f75f91e0a88 -->|calls| cd8e1cd4_0aec_282f_80ee_e6723b060057 680dd96d_fd96_38d0_7d52_fe74bf9925cb["parse_excludes_file5()"] 680dd96d_fd96_38d0_7d52_fe74bf9925cb -->|calls| cd8e1cd4_0aec_282f_80ee_e6723b060057 80a773f9_5f57_2f17_0199_9d45d676f37b["build()"] cd8e1cd4_0aec_282f_80ee_e6723b060057 -->|calls| 80a773f9_5f57_2f17_0199_9d45d676f37b f6334d14_f3df_cc9d_c27d_3ee0c401ba43["expand_tilde()"] cd8e1cd4_0aec_282f_80ee_e6723b060057 -->|calls| f6334d14_f3df_cc9d_c27d_3ee0c401ba43 style cd8e1cd4_0aec_282f_80ee_e6723b060057 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
crates/ignore/src/gitignore.rs lines 648–673
fn parse_excludes_file(data: &[u8]) -> Option<PathBuf> {
use std::sync::OnceLock;
use regex_automata::{meta::Regex, util::syntax};
// N.B. This is the lazy approach, and isn't technically correct, but
// probably works in more circumstances. I guess we would ideally have
// a full INI parser. Yuck.
static RE: OnceLock<Regex> = OnceLock::new();
let re = RE.get_or_init(|| {
Regex::builder()
.configure(Regex::config().utf8_empty(false))
.syntax(syntax::Config::new().utf8(false))
.build(r#"(?im-u)^\s*excludesfile\s*=\s*"?\s*(\S+?)\s*"?\s*$"#)
.unwrap()
});
// We don't care about amortizing allocs here I think. This should only
// be called ~once per traversal or so? (Although it's not guaranteed...)
let mut caps = re.create_captures();
re.captures(data, &mut caps);
let span = caps.get_group(1)?;
let candidate = &data[span];
std::str::from_utf8(candidate)
.ok()
.map(|s| PathBuf::from(expand_tilde(s)))
}
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does parse_excludes_file() do?
parse_excludes_file() is a function in the tailwindcss codebase, defined in crates/ignore/src/gitignore.rs.
Where is parse_excludes_file() defined?
parse_excludes_file() is defined in crates/ignore/src/gitignore.rs at line 648.
What does parse_excludes_file() call?
parse_excludes_file() calls 2 function(s): build, expand_tilde.
What calls parse_excludes_file()?
parse_excludes_file() is called by 6 function(s): gitconfig_excludes_path, parse_excludes_file1, parse_excludes_file2, parse_excludes_file3, parse_excludes_file4, parse_excludes_file5.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free