pub struct VirtualProject { /* private fields */ }Expand description
Virtual project for Corsa-backed type checking.
Implementations§
Source§impl VirtualProject
impl VirtualProject
Sourcepub fn find_by_original(&self, original_path: &Path) -> Option<&VirtualFile>
pub fn find_by_original(&self, original_path: &Path) -> Option<&VirtualFile>
Find a virtual file by its original path.
Sourcepub fn find_by_virtual(&self, virtual_path: &Path) -> Option<&VirtualFile>
pub fn find_by_virtual(&self, virtual_path: &Path) -> Option<&VirtualFile>
Find a virtual file by its materialized path.
Sourcepub fn virtual_files_sorted(&self) -> Vec<&VirtualFile>
pub fn virtual_files_sorted(&self) -> Vec<&VirtualFile>
Return virtual files sorted by original path for deterministic output.
Sourcepub fn diagnostics(&self) -> &[Diagnostic]
pub fn diagnostics(&self) -> &[Diagnostic]
Parser diagnostics collected while registering source files.
Sourcepub fn map_to_original(
&self,
virtual_path: &Path,
line: u32,
column: u32,
) -> Option<OriginalPosition>
pub fn map_to_original( &self, virtual_path: &Path, line: u32, column: u32, ) -> Option<OriginalPosition>
Map a virtual position to the original position.
Sourcepub fn map_to_virtual(
&self,
original_path: &Path,
line: u32,
column: u32,
) -> Option<(PathBuf, u32, u32)>
pub fn map_to_virtual( &self, original_path: &Path, line: u32, column: u32, ) -> Option<(PathBuf, u32, u32)>
Map an original position to the virtual position.
Sourcepub fn file_count(&self) -> usize
pub fn file_count(&self) -> usize
Get the number of registered files.
Source§impl VirtualProject
impl VirtualProject
Sourcepub fn materialize(&self) -> CorsaResult<()>
pub fn materialize(&self) -> CorsaResult<()>
Materialize the virtual project to disk for diagnostics collection.
The materialized tree is a cache, but Corsa observes it as a real project.
We therefore prune only entries outside the expected file/dir set and
preserve nested runtime dependencies under node_modules. Directory
creation is de-duplicated per parent path, and every file write goes
through write_if_changed: warm reruns with unchanged content skip the
rewrite entirely, which avoids needless write IO and keeps mtimes stable
so TypeScript’s own filesystem caches are not invalidated.
Sourcepub fn write_declaration_tsconfig(
&self,
out_dir: &Path,
declaration_map: bool,
) -> CorsaResult<PathBuf>
pub fn write_declaration_tsconfig( &self, out_dir: &Path, declaration_map: bool, ) -> CorsaResult<PathBuf>
Write a declaration-emitting tsconfig and return its path.
Source§impl VirtualProject
impl VirtualProject
Sourcepub fn new(project_root: &Path) -> CorsaResult<Self>
pub fn new(project_root: &Path) -> CorsaResult<Self>
Create a new virtual project.
Sourcepub fn set_tsconfig_path(&mut self, tsconfig_path: Option<PathBuf>)
pub fn set_tsconfig_path(&mut self, tsconfig_path: Option<PathBuf>)
Set the tsconfig path to extend.
Sourcepub fn set_virtual_ts_options(&mut self, options: VirtualTsOptions)
pub fn set_virtual_ts_options(&mut self, options: VirtualTsOptions)
Set the shared virtual TS options.
Sourcepub fn project_root(&self) -> &Path
pub fn project_root(&self) -> &Path
Get the project root.
Sourcepub fn virtual_root(&self) -> &Path
pub fn virtual_root(&self) -> &Path
Get the virtual root.
Sourcepub fn register_path(&mut self, path: &Path) -> CorsaResult<()>
pub fn register_path(&mut self, path: &Path) -> CorsaResult<()>
Register a supported file path.
Sourcepub fn register_path_with_content(
&mut self,
path: &Path,
content: &str,
) -> CorsaResult<()>
pub fn register_path_with_content( &mut self, path: &Path, content: &str, ) -> CorsaResult<()>
Register a supported file path with already-loaded content.
Sourcepub fn register_paths(&mut self, paths: &[PathBuf]) -> CorsaResult<()>
pub fn register_paths(&mut self, paths: &[PathBuf]) -> CorsaResult<()>
Register a batch of file paths, parallelizing per-file parse and Virtual TS generation across rayon’s thread pool. Falls back to sequential work when the batch is small enough that the fan-out cost would dominate.
This is deliberately structured as “parallel build, sequential absorb”.
build_registered_file owns the expensive work (disk read, SFC parse,
template parse, virtual-TS generation, import rewriting) and only needs an
immutable build context, so it scales cleanly across rayon workers. The
mutable project indexes are updated after the join point, which preserves
deterministic maps and avoids locking every insertion in the hot loop.
Sourcepub fn register_vue_file(
&mut self,
path: &Path,
content: &str,
) -> CorsaResult<()>
pub fn register_vue_file( &mut self, path: &Path, content: &str, ) -> CorsaResult<()>
Register a .vue file.
Sourcepub fn register_ts_file(&mut self, path: &Path) -> CorsaResult<()>
pub fn register_ts_file(&mut self, path: &Path) -> CorsaResult<()>
Register a .ts/.tsx/.mts/.cts file.
Sourcepub fn register_declaration_file(
&mut self,
path: &Path,
content: &str,
) -> CorsaResult<()>
pub fn register_declaration_file( &mut self, path: &Path, content: &str, ) -> CorsaResult<()>
Register a .d.ts file.
Sourcepub fn register_script_file(
&mut self,
path: &Path,
content: &str,
source_type: SourceType,
) -> CorsaResult<()>
pub fn register_script_file( &mut self, path: &Path, content: &str, source_type: SourceType, ) -> CorsaResult<()>
Register a non-Vue source file.
Auto Trait Implementations§
impl Freeze for VirtualProject
impl RefUnwindSafe for VirtualProject
impl Send for VirtualProject
impl Sync for VirtualProject
impl Unpin for VirtualProject
impl UnsafeUnpin for VirtualProject
impl UnwindSafe for VirtualProject
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more