You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a problem for which I don't see an obvious solution. I have a markdown string that is continuously appended to. After each append it is parsed to a MarkdownDocument. I want to determine what blocks are different between the previous MarkdownDocument and the latest one.
My naive approach was to iterate over each document's top-level Blocks and compare their Span properties, something like:
intmaxIndex= Math.Max(oldDoc.Count, newDoc.Count);for(intindex=0;index<maxIndex;index++){varoldBlock=index< oldDoc.Count ? oldDoc[index]:null;varnewBlock=index< newDoc.Count ? newDoc[index]:null;if(oldBlock isnull&& newBlock isnull)// do nothing, shouldn't ever happen
else if(oldBlockis null)// New block that wasn't here before
else if(newBlockis null)// Old block is no longer here (not even sure if this can happen)
else if(oldBlock.Span != newBlock.Span)// This block is different, do something...}
But that doesn't work. One scenario where I found it doesn't (and surely there are more) is when the document ends in the middle of a fenced code block, the block's Span property doesn't encompass the remainder of the markdown string, and it isn't until the fenced block's delimiter arrives that that Span accurately reflects the whole length of the fenced block. I assume this is expected behavior.
My question is, for 2 non-null Block objects, what can I compare on them to determine equality?
The text was updated successfully, but these errors were encountered:
I have a problem for which I don't see an obvious solution. I have a markdown
string
that is continuously appended to. After each append it is parsed to aMarkdownDocument
. I want to determine what blocks are different between the previousMarkdownDocument
and the latest one.My naive approach was to iterate over each document's top-level
Block
s and compare theirSpan
properties, something like:But that doesn't work. One scenario where I found it doesn't (and surely there are more) is when the document ends in the middle of a fenced code block, the block's
Span
property doesn't encompass the remainder of the markdown string, and it isn't until the fenced block's delimiter arrives that thatSpan
accurately reflects the whole length of the fenced block. I assume this is expected behavior.My question is, for 2 non-null
Block
objects, what can I compare on them to determine equality?The text was updated successfully, but these errors were encountered: