Repository navigation
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.
Fix dropped and duplicated lines for nested collapse ranges #470
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Uh oh!
There was an error while loading. Please reload this page.
Fix dropped and duplicated lines for nested collapse ranges #470
Changes from all commits
34ba418File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
`parseSections` in packages/@expressive-code/plugin-collapsible-sections/src/utils.ts skips any `collapse` range that overlaps a section it already collected, because the `<details>`-based rendering cannot handle overlapping sections. The check only tested whether the new range's `from` or `to` falls inside an existing section, so a range that fully contains an existing one, e.g. `collapse={3-5, 1-8}`, was not recognized as overlapping and got added anyway. Both sections then reached `sectionizeAst` in src/ast.ts, which splices sections into the line array from last to first while reading their content from the unmodified `lines` array. With `collapse={3-5, 1-8}` on a 10-line block, splicing the 1-8 section shrinks the array, so the following splice for 3-5 removes line 10 and appends copies of lines 3 to 5: rendered code that no longer matches the source. Replaces the two partial checks with the standard interval overlap test `from <= existingTo && existingFrom <= to`, which covers containment in both directions and keeps the previous results for every range combination that was already handled.Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing