Fix location with nested lists#131
Closed
mivok wants to merge 2 commits into
Closed
Conversation
When a nested list is detected, an EOB marker is inserted, causing the line numbers for everything parsed afterward to be increased by 1. This patch corrects for this by decreasing the line number once an EOB marker is detected.
The first added test includes an explicit EOB mark separating two lists to ensure that the fix for nested lists doesn't affect EOB marks that are part of the normal markdown document. The second added test ensures this works with multiple levels of nested lists and going up levels.
Author
|
I spotted that EOB marks are explicit kramdown syntax and not an internal-only thing, and realized that the fix probably messes up location values for documents with explicit EOB marks in. However, when I tested this, it doesn't seem to be an issue. I added another commit to add tests for this, as well as a slightly more complex nested list. |
Owner
|
Decrementing in |
Author
|
Again, thanks for such a quick response and fix. I thought it odd when my manually entered EOB mark didn't cause the test to fail in the second test case, but you found a case where it didn't and fixed the right way. |
5 tasks
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.
When parsing nested lists, the reported location of the sub lists is off by one. I believe I've tracked it down to the following: when a nested list is detected, an EOB marker is inserted, causing the line numbers for everything parsed afterward to be increased by 1. This PR corrects for this by decreasing the line number once an EOB marker is detected.
I'm not sure this is the best way to fix the issue (I had to make Kramdown::Utils::StringScanner.start_line_number writable), and you might want to implement it differently.
Test case is included, but to illustrate the issue in a standalone file: