pub struct PatternBasedSuggest { /* private fields */ }Expand description
Adapter: Rule → Suggest trait
Wraps a ryo-pattern Rule and implements the Suggest trait,
enabling pattern-based lint rules to integrate with the suggestion system.
§Example
ⓘ
use ryo_suggest::pattern::{RuleStore, PatternBasedSuggest};
let store = RuleStore::builtin_only()?;
for rule in store.all_rules() {
let suggest = PatternBasedSuggest::new(rule.clone());
registry.register(Box::new(suggest));
}Implementations§
Trait Implementations§
Source§impl Debug for PatternBasedSuggest
impl Debug for PatternBasedSuggest
Source§impl LintSuggest for PatternBasedSuggest
impl LintSuggest for PatternBasedSuggest
Source§fn default_severity(&self) -> LintSeverity
fn default_severity(&self) -> LintSeverity
Returns the default severity for this lint rule
Source§fn create_lint_opportunity(
&self,
id: OpportunityId,
targets: Vec<SymbolId>,
location: SuggestLocation,
message: impl Into<String>,
details: LintDetails,
) -> SuggestOpportunity
fn create_lint_opportunity( &self, id: OpportunityId, targets: Vec<SymbolId>, location: SuggestLocation, message: impl Into<String>, details: LintDetails, ) -> SuggestOpportunity
Helper to create a lint opportunity
Source§impl Suggest for PatternBasedSuggest
impl Suggest for PatternBasedSuggest
Source§fn description(&self) -> &str
fn description(&self) -> &str
Human-readable description
Source§fn category(&self) -> SuggestCategory
fn category(&self) -> SuggestCategory
Category for filtering/grouping
Source§fn safety_level(&self) -> SafetyLevel
fn safety_level(&self) -> SafetyLevel
Safety level for auto-application decisions
Source§fn priority_weight(&self) -> f32
fn priority_weight(&self) -> f32
Priority weight for ranking (higher = more important)
Source§fn rule_id(&self) -> Option<&str>
fn rule_id(&self) -> Option<&str>
Optional rule ID for pattern-based rules (e.g., “RL021”).
Returns None for non-pattern suggestions.
Source§fn detect(
&self,
ctx: &AnalysisContext,
symbols: &[SymbolId],
) -> Vec<SuggestOpportunity>
fn detect( &self, ctx: &AnalysisContext, symbols: &[SymbolId], ) -> Vec<SuggestOpportunity>
Detect opportunities for the given symbols Read more
Source§fn to_mutation_specs(
&self,
ctx: &AnalysisContext,
opportunity: &SuggestOpportunity,
) -> SuggestResult<Vec<MutationSpec>>
fn to_mutation_specs( &self, ctx: &AnalysisContext, opportunity: &SuggestOpportunity, ) -> SuggestResult<Vec<MutationSpec>>
Convert a detected opportunity to executable MutationSpecs Read more
Source§fn target_scopes(&self) -> Vec<SymbolScope>
fn target_scopes(&self) -> Vec<SymbolScope>
Target scopes where this suggest applies. Read more
Source§fn accepts_params(&self) -> bool
fn accepts_params(&self) -> bool
Whether this suggestion accepts external parameters. Read more
Source§fn param_schema(&self) -> Vec<ParamDef>
fn param_schema(&self) -> Vec<ParamDef>
Schema of accepted parameters (for LLM consumption). Read more
Source§fn detect_with_params(
&self,
ctx: &AnalysisContext,
symbols: &[SymbolId],
_params: &SuggestParams,
) -> Vec<SuggestOpportunity>
fn detect_with_params( &self, ctx: &AnalysisContext, symbols: &[SymbolId], _params: &SuggestParams, ) -> Vec<SuggestOpportunity>
Detect opportunities with external parameters. Read more
Auto Trait Implementations§
impl Freeze for PatternBasedSuggest
impl RefUnwindSafe for PatternBasedSuggest
impl Send for PatternBasedSuggest
impl Sync for PatternBasedSuggest
impl Unpin for PatternBasedSuggest
impl UnsafeUnpin for PatternBasedSuggest
impl UnwindSafe for PatternBasedSuggest
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
Mutably borrows from an owned value. Read more
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>
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 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>
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