Move Python whitespace utilities into new ruff_python_whitespace crate (#4993)

## Summary

`ruff_newlines` becomes `ruff_python_whitespace`, and includes the
existing "universal newline" handlers alongside the Python
whitespace-specific utilities.
This commit is contained in:
Charlie Marsh 2023-06-09 20:59:57 -04:00 committed by GitHub
parent e86f12a1ec
commit 1d756dc3a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
57 changed files with 153 additions and 140 deletions

View file

@ -0,0 +1,15 @@
/// Returns `true` for [whitespace](https://docs.python.org/3/reference/lexical_analysis.html#whitespace-between-tokens)
/// characters.
pub const fn is_python_whitespace(c: char) -> bool {
matches!(
c,
// Space, tab, or form-feed
' ' | '\t' | '\x0C'
)
}
/// Extract the leading indentation from a line.
pub fn leading_indentation(line: &str) -> &str {
line.find(|char: char| !is_python_whitespace(char))
.map_or(line, |index| &line[..index])
}