pub struct AstGrepTool;Trait Implementations§
Source§impl StaticTool for AstGrepTool
impl StaticTool for AstGrepTool
const DESCRIPTION: &'static str = r#"Structural code search using abstract syntax trees (AST). - Searches code by its syntactic structure, not just text patterns - Use $METAVAR placeholders (e.g., $VAR, $FUNC, $ARGS) to match any code element - Supports all major languages: rust, javascript, typescript, python, java, go, etc. Pattern examples: - "console.log($MSG)" - finds all console.log calls regardless of argument - "fn $NAME($PARAMS) { $BODY }" - finds all Rust function definitions - "if $COND { $THEN } else { $ELSE }" - finds all if-else statements - "import $WHAT from '$MODULE'" - finds all ES6 imports from specific modules - "$VAR = $VAR + $EXPR" - finds all self-incrementing assignments Advanced patterns: - "function $FUNC($$$ARGS) { $$$ }" - $$$ matches any number of elements - "foo($ARG, ...)" - ellipsis matches remaining arguments - Use any valid code as a pattern - ast-grep understands the syntax! Automatically respects .gitignore files"#
const REQUIRES_APPROVAL: bool = false
const REQUIRED_CAPABILITIES: Capabilities = Capabilities::WORKSPACE
type Params = AstGrepParams
type Output = AstGrepResult
type Spec = AstGrepToolSpec
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
params: Self::Params,
ctx: &'life1 StaticToolContext,
) -> Pin<Box<dyn Future<Output = Result<Self::Output, StaticToolError<AstGrepError>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn schema() -> ToolSchemawhere
Self: Sized,
Auto Trait Implementations§
impl Freeze for AstGrepTool
impl RefUnwindSafe for AstGrepTool
impl Send for AstGrepTool
impl Sync for AstGrepTool
impl Unpin for AstGrepTool
impl UnwindSafe for AstGrepTool
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request