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.
While looking into the backtick issue I gave the code a lookover and suspected something with the regex logic being wrong.
I found the logic for that to be pretty hard to grasp/follow. I have refactored the code to hopefully be easier to understand.
Instead of going through the elements one by one in a loop and inquiring which step we are at, just use the match results from the regex.
The regex now matches everything which means we can branch on the match data and learn if we are in markdown or a codeblock, handling that as appropriate. The state is entirely contained within one iteration.
I benchmarked this and performance is on par with the current implementation.