Skip to main content

EditorAnalysisSession

Struct EditorAnalysisSession 

Source
pub struct EditorAnalysisSession { /* private fields */ }
Expand description

Reusable editor analysis session owned by the API boundary.

Implementations§

Source§

impl EditorAnalysisSession

Source

pub fn load(root: &Path, config_path: Option<&Path>) -> EngineResult<Self>

Load config and discover files for an editor project root.

§Errors

Returns an engine error when project config loading fails.

Source

pub fn load_with_config( root: &Path, config_path: Option<&Path>, configure: impl FnOnce(&mut ResolvedConfig), ) -> EngineResult<Self>

Load config, apply one editor-specific adjustment, then discover files.

§Errors

Returns an engine error when project config loading fails.

Source

pub fn load_with_config_options( root: &Path, config_path: Option<&Path>, load_options: ConfigLoadOptions, configure: impl FnOnce(&mut ResolvedConfig), ) -> EngineResult<Self>

Load config with an explicit inheritance trust policy, apply one editor-specific adjustment, then discover files.

§Errors

Returns an engine error when project config loading fails.

Source

pub fn load_default(root: &Path) -> Self

Build a session from built-in defaults, ignoring project config files.

Source

pub fn with_cancellation(self, cancellation: Arc<AtomicBool>) -> Self

Attach a caller-owned cancellation token to this session.

The analyses of the session check the token at each pipeline stage boundary and in the per-file parse loop. Once the token is set, they return an engine error whose is_cancelled() is true, never a partial result. See fallow_engine::session::AnalysisSession::with_cancellation for the limits of the cooperative stop.

Source

pub fn set_cancellation(&mut self, cancellation: Arc<AtomicBool>)

Replace the cancellation token of a session that serves several runs.

Source

pub fn refresh_discovery(&mut self) -> bool

Walk the project again before a run of a long-lived session. The parsed modules stay when the file set did not change. Returns whether the file set changed. See fallow_engine::session::AnalysisSession::refresh_discovery.

Source

pub fn config_inputs(&self) -> &ConfigInputs

The plugin files, rule packs and autoDiscover directories that config resolution read for this session. A long-lived caller compares two snapshots of them to see that the config is out of date.

Source

pub fn config_inputs_before_resolve(&self) -> &ConfigInputsSnapshot

The content of Self::config_inputs just before config resolution read them.

Source

pub fn retained_bytes_estimate(&self) -> u64

The estimated heap memory of the parsed modules that the session keeps between runs. Zero before the first parse.

Source

pub fn flush_parse_cache(&self)

Write the modules of incremental parses to the persisted parse cache. Call it before the session is dropped.

Source

pub fn prewarm(&self, retain_complexity_artifacts: bool) -> EngineResult<()>

Parse the project files into the session without analysis, so the first run starts from warm modules.

§Errors

Returns a cancelled engine error when the token of the session is set.

Source

pub fn parse_counts(&self) -> EditorSessionParseCounts

The parse work of this session since it was created.

Source

pub fn config(&self) -> &ResolvedConfig

Resolved project config.

Source

pub fn config_path(&self) -> Option<&Path>

Config file path when one was loaded.

Source

pub fn refine_type_aware_dead_code( &self, options: &TypeAwareOptions, filters: &DeadCodeFilters, output: &mut EditorDeadCodeAnalysisOutput, ) -> Result<Option<TypeAwareMeta>, ProgrammaticError>

Refine this editor session’s dead-code findings with exact TypeScript symbol evidence.

§Errors

Returns a programmatic error when the semantic companion cannot provide the requested analysis contract.

Source

pub fn refine_type_aware_dead_code_in_session( &self, semantic_session: &mut TypeAwareSession, changes: Option<&TypeAwareFileChanges>, options: &TypeAwareOptions, filters: &DeadCodeFilters, output: &mut EditorDeadCodeAnalysisOutput, ) -> Result<Option<TypeAwareMeta>, ProgrammaticError>

Refine editor findings through a root-bound persistent semantic session.

Source

pub fn analyze_project_with( &self, duplicates_config: &DuplicatesConfig, retain_complexity_artifacts: bool, ) -> EngineResult<EditorProjectAnalysisOutput>

Run dead-code and duplication analysis for this editor session.

§Errors

Returns an engine error when dead-code parsing or analysis fails.

Source

pub fn analyze_project_with_changed_files( &self, duplicates_config: &DuplicatesConfig, retain_complexity_artifacts: bool, changed_files: Option<&FxHashSet<PathBuf>>, ) -> EngineResult<EditorProjectAnalysisOutput>

Run dead-code and duplication analysis, optionally focusing duplication to files the editor already resolved as changed.

Dead-code still runs with full graph context, and the dead-code findings keep full scope until the type-aware pass has run. That pass reads unused_files as its set of unreachable files. After the pass, call Self::apply_changed_files_scope to narrow the dead-code findings of this project.

§Errors

Returns an engine error when dead-code parsing or analysis fails.

Source

pub fn apply_changed_files_scope( &self, dead_code: &mut EditorDeadCodeAnalysisOutput, changed_files: Option<&FxHashSet<PathBuf>>, )

Narrow the dead-code findings of this project to the changed files, with fallow_engine::dead_code::apply_scope and the config of this project, as the CLI, MCP and Node API narrow them.

Call it after the type-aware pass. That pass reads unused_files as its set of unreachable files, so a scope before it drops evidence from unused files outside the changed set. A multi-root editor session merges several projects, and each project has its own ignoreFindings. So the scope runs per project, where the config is known, and not after the merge. It does nothing when changed_files is None.

Trait Implementations§

Source§

impl Debug for EditorAnalysisSession

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more