esquery
ESQuery is a library for querying the AST output by Esprima for patterns of syntax using a CSS style selector system. Check out the demo:
The following selectors are supported:
AST node type:
ForStatement
wildcard:
*
attribute existence:
[attr]
attribute value:
[attr="foo"]
or[attr=123]
attribute regex:
[attr=/foo.*/]
or (with flags)[attr=/foo.*/is]
attribute conditions:
[attr!="foo"]
,[attr>2]
,[attr<3]
,[attr>=2]
, or[attr<=3]
nested attribute:
[attr.level2="foo"]
field:
FunctionDeclaration > Identifier.id
nth-child (no ax+b support):
:nth-child(2)
nth-last-child (no ax+b support):
:nth-last-child(1)
descendant:
ancestor descendant
child:
parent > child
following sibling:
node ~ sibling
adjacent sibling:
node + adjacent
negation:
:not(ForStatement)
has:
:has(ForStatement)
matches-any:
:matches([attr] > :first-child, :last-child)
subject indicator:
!IfStatement > [name="foo"]
class of AST node:
:statement
,:expression
,:declaration
,:function
, or:pattern
Last updated