[red-knot] Add 'Format document' to playground (#17217)

## Summary
This is more "because we can" than something we need. 

But since we're already building an "almost IDE" 

## Test Plan



https://github.com/user-attachments/assets/3a4bdad1-ba32-455a-9909-cfeb8caa1b28
This commit is contained in:
Micha Reiser 2025-04-07 09:26:03 +02:00 committed by GitHub
parent 12d7fad4ef
commit 3150812ac4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 162 additions and 27 deletions

View file

@ -424,9 +424,19 @@ impl File {
/// Returns `true` if the file should be analyzed as a type stub.
pub fn is_stub(self, db: &dyn Db) -> bool {
self.path(db)
.extension()
.is_some_and(|extension| PySourceType::from_extension(extension).is_stub())
self.source_type(db).is_stub()
}
pub fn source_type(self, db: &dyn Db) -> PySourceType {
match self.path(db) {
FilePath::System(path) => path
.extension()
.map_or(PySourceType::Python, PySourceType::from_extension),
FilePath::Vendored(_) => PySourceType::Stub,
FilePath::SystemVirtual(path) => path
.extension()
.map_or(PySourceType::Python, PySourceType::from_extension),
}
}
}