fix: properly handle Query.matches when filtering out results

This commit is contained in:
Amaan Qureshi 2024-02-13 15:37:35 -05:00
parent 7e0dd7b9c1
commit 4303ab99c9
3 changed files with 42 additions and 4 deletions

View file

@ -107,6 +107,23 @@ describe('Query', () => {
{pattern: 0, captures: [{name: 'name', text: 'gross'}]},
]);
});
it('handles multiple matches where the first one is filtered', () => {
tree = parser.parse(`
const a = window.b;
`);
query = JavaScript.query(`
((identifier) @variable.builtin
(#match? @variable.builtin "^(arguments|module|console|window|document)$")
(#is-not? local))
`);
const matches = query.matches(tree.rootNode);
assert.deepEqual(formatMatches(matches), [
{pattern: 0, captures: [{name: 'variable.builtin', text: 'window'}]},
]);
});
});
describe('.captures', () => {