rubocop / rubocop-md

RuboCop for Markdown code snippets
MIT License
73 stars 14 forks source link

Simplify markdown parsing #27

Closed Earlopain closed 11 months ago

Earlopain commented 11 months ago

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.

palkan commented 11 months ago

Thanks a lot!