ast-grep is a command-line interface (CLI) tool designed for code structural search, linting, and rewriting. Developed in Rust, it leverages abstract syntax tree (AST) patterns to perform searches and modifications on codebases, making it significantly more powerful than traditional text-based search tools like grep
.
The tool allows users to write search patterns that resemble regular code, utilizing a wildcard syntax with the $
sign followed by uppercase letters, such as $MATCH
, to match any single AST node. This approach provides a more intuitive and accurate way to find and replace code structures.
Key features include an intuitive pattern system for AST search and replacement, a jQuery-like API for AST traversal and manipulation, and the ability to write new linting rules or code modifications using YAML configuration. The tool is optimized for performance, employing tree-sitter for parsing and utilizing multiple cores.
Installation is versatile, supporting multiple package managers like npm, pip, cargo, homebrew, scoop, and MacPorts. Users can also build the tool from source if desired.
ast-grep is particularly beneficial for various user groups, including open-source library authors, tech leads, and security researchers, by simplifying the process of adopting breaking changes, enforcing code best practices, and writing rules respectively.
Overall, ast-grep aims to democratize the use of AST and simplify the process of code manipulation and analysis.
Pricing
Pricing information is not available