ast-grep — поиск, линтинг и реврайт кода по AST. Короче прям из названия понятно)rg ищет текст. ast-grep ищет структуру, поэтому один паттерн ловит разные записи:obj.val && obj.val()
obj.val && obj.val()
const result = obj.val &&
obj.val()
Всё это находится одним запросом:
ast-grep -p '$PROP && $PROP()' -l ts src
Три сценария:
1/ Search — искать по коду точнее, чем regex’ом: матч идёт по синтаксическому дереву.
2/ Lint — писать правила под свой проект и получать понятные ошибки.
3/ Rewrite — применять массовые правки и codemod’ы через паттерны, без отдельного AST-скрипта.
PS Скилл есть, пи-экстеншна нет :(