Repository navigation
Count a positional compound left of a combinator across the document in filter() - #151
Open
gravitypdf-bot wants to merge 5 commits into
Open
gravitypdf-bot wants to merge 5 commits into
gravitypdf-bot wants to merge 5 commits into
Conversation
…in filter()
In filterNodes(), a non-subject compound carrying a positional
pseudo-class was resolved by searching the candidates' descendants, so
filter('ul:first > li') and is('ul:first > li') matched nothing. It is
now resolved from the document element, as jQuery's .filter() does.
Fixes #132.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #151 +/- ##
============================================
+ Coverage 90.69% 91.25% +0.55%
- Complexity 1424 1444 +20
============================================
Files 25 26 +1
Lines 3170 3189 +19
============================================
+ Hits 2875 2910 +35
+ Misses 295 279 -16 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #132.
filter(),not()andis()matched nothing for a selector likeul:first > li, where a positional pseudo-class sits on a compound left of a combinator. When the nodes in hand are tested as themselves,DOMTraversersearched below the candidates for that compound instead of across the document. It now starts that search from the document element, asfind()does, soqp($xml, 'li')->filter('ul:first > li')returns the items of the first<ul>. A positional pseudo-class on the subject still counts within the set.DOMTraverser::documentScope()is a new static helper, andNodeMatchernow uses it too, instead of building the same scope itself.Tests
tests/Issues/Issue132Test.phpcomparesfilter()withfind()over a set of selectors, and coversis(),not()and a compound whose<ul>is not in the set.Every PR in this set adds its CHANGELOG line at the end of
# Unreleased changes, so each one after the first needs a one-line conflict resolved there.🤖 Generated with Claude Code