Small `g:markdown_minlines` truncates set of `<backtick>`s (such as `<backtick> class s{~s();} <backtick> text <backtick> class x{~x();} <backtick>` to `class s{~s();} <backtick> text <backtick> class x{~x();}`, which has _strikethrough_ of `s();} <backtick> text <backtick> class x{`)
Was told that this ( https://github.com/vim/vim/issues/15406 ) is not an explicit problem with Vim's core, but with Vim's Markdown module.
The problem with sin sync fromstart or g:markdown_minlines 6666 (other than performance) is that this is just a local fix (does not suit open source projects which you contribute to).
The problem is that the minlines window is small (which clips off the top of the block) to process the scripts fast, but Markdown must use the context of <backticks> which exists past this window.
Proposed fix: do not process Markdown across <backtick>s;
<backtick> (which begins or closes a code block) should have Markdown stop;
Thus <backtick> class s{~s();} <backtick> text <backtick> class x{~x();} <backtick> /
class s{~s();} <backtick> text <backtick> class x{~x();}
must both have the ~ ignored (as the ~ crosses <backtick>s).
If you do this, all sizes of minlines can process truth.
Proposed fix 2: post-/: if(1 & context_symbols['<backtick>'].size()) { execute("sin sync fromstart" /* or "let g:markdown_minlines 6666" */); }
The rest of vim's languages/syntaxes should have such fixes;
Proposed fix 2 is generalizable to: for(auto symbol : context_symbols) {if(1 & symbol.size()) { execute("sin sync fromstart" /* or "let g:markdown_minlines 6666" */); return; }}