mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-02 06:42:02 +00:00
[red-knot] Simplify virtual file support (#13043)
## Summary This PR simplifies the virtual file support in the red knot core, specifically: * Update `File::add_virtual_file` method to `File::virtual_file` which will always create a new virtual file and override the existing entry in the lookup table * Add `VirtualFile` which is a wrapper around `File` and provides methods to increment the file revision / close the virtual file * Add a new `File::try_virtual_file` to lookup the `VirtualFile` from `Files` * Add `File::sync_virtual_path` which takes in the `SystemVirtualPath`, looks up the `VirtualFile` for it and calls the `sync` method to increment the file revision * Removes the `virtual_path_metadata` method on `System` trait ## Test Plan - [x] Make sure the existing red knot tests pass - [x] Updated code works well with the LSP
This commit is contained in:
parent
21c5606793
commit
551ed2706b
8 changed files with 71 additions and 94 deletions
|
@ -63,9 +63,6 @@ pub trait System: Debug {
|
|||
/// representation fall-back to deserializing the notebook from a string.
|
||||
fn read_to_notebook(&self, path: &SystemPath) -> std::result::Result<Notebook, NotebookError>;
|
||||
|
||||
/// Reads the metadata of the virtual file at `path`.
|
||||
fn virtual_path_metadata(&self, path: &SystemVirtualPath) -> Result<Metadata>;
|
||||
|
||||
/// Reads the content of the virtual file at `path` into a [`String`].
|
||||
fn read_virtual_path_to_string(&self, path: &SystemVirtualPath) -> Result<String>;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue