mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-28 12:55:05 +00:00
Formatter: Add SourceType to context to enable special formatting for stub files (#6331)
**Summary** This adds the information whether we're in a .py python source file or in a .pyi stub file to enable people working on #5822 and related issues. I'm not completely happy with `Default` for something that depends on the input. **Test Plan** None, this is currently unused, i'm leaving this to first implementation of stub file specific formatting. --------- Co-authored-by: Micha Reiser <micha@reiser.io>
This commit is contained in:
parent
fe97a2a302
commit
1031bb6550
12 changed files with 137 additions and 97 deletions
|
@ -161,25 +161,20 @@ fn format(files: &[PathBuf]) -> Result<ExitStatus> {
|
|||
internal use only."
|
||||
);
|
||||
|
||||
let format_code = |code: &str| {
|
||||
// dummy, to check that the function was actually called
|
||||
let contents = code.replace("# DEL", "");
|
||||
// real formatting that is currently a passthrough
|
||||
format_module(&contents, PyFormatOptions::default())
|
||||
};
|
||||
|
||||
match &files {
|
||||
// Check if we should read from stdin
|
||||
[path] if path == Path::new("-") => {
|
||||
let unformatted = read_from_stdin()?;
|
||||
let formatted = format_code(&unformatted)?;
|
||||
let options = PyFormatOptions::from_extension(Path::new("stdin.py"));
|
||||
let formatted = format_module(&unformatted, options)?;
|
||||
stdout().lock().write_all(formatted.as_code().as_bytes())?;
|
||||
}
|
||||
_ => {
|
||||
for file in files {
|
||||
let unformatted = std::fs::read_to_string(file)
|
||||
.with_context(|| format!("Could not read {}: ", file.display()))?;
|
||||
let formatted = format_code(&unformatted)?;
|
||||
let options = PyFormatOptions::from_extension(file);
|
||||
let formatted = format_module(&unformatted, options)?;
|
||||
std::fs::write(file, formatted.as_code().as_bytes())
|
||||
.with_context(|| format!("Could not write to {}, exiting", file.display()))?;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue