[Markdown] Fix reference definition symbols #4330
Merged
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.
This PR...
fixes an issue which causes multiple subsequent reference definitions to be listed as one item in Goto Symbol quick panel.
Meta scopes of subsequent reference definitions are separated by excluding each definition's final linefeed from
meta.link.reference.defscopes, so ST sees them as separate regions.Implementation requires branching to overcome ST's line blindness, first pushing a context to check next line's content. In case of required termination, context is rolled back to current line's eol before popping its context. That's quite some song and dance, but there's no other solution.
aligns reference definitions' implementations in block quotes and other paragraphs, so they exactly match with regards to features and structure.
removes possible block quote punctuation from symbols.
Example
Before
Parsing syntax_test_markdown.markdown takes 35ms
After
Parsing syntax_test_markdown.markdown takes 38ms