There's a problem with how curly quotes are currently handled, and this examples breaks syntax highlighting:
Some path `"C:\home\"` another path `"C:\path"` and some code `xxx`.
The problem here is that while Asciidoctor correctly treats the backticks surrounding the quoted paths as inline code, the syntax treats them as curly-quotes ending and starting markers — i.e. the latter starts a scope that leads the rest of the line to be mismatched, and the last inline code is skipped, with the problem that the "pseudo-string" scopes meta.curlyquoteinner.double.asciidoc and markup.curlyquote.double.asciidoc never pop-out, and keep waiting for a mismatched closing delimiter.
Possible solutions:
[ ] Design some thorough tests to cover this problem, especially when these nest into each other. Always ensure that these tests compile as valid documents, so we can compare Asciidoctor effective behavior.
[ ] Always assume that an `" encountered outside of a meta.curlyquoteinner/markup.curlyquote.double context is an inline code delimiter — or at least, give it a higher priority.
[ ] Enforce a bail-out mechanism to ensure that meta.curlyquoteinner.double.asciidoc doesn't carry on fover, e.g. by gracefully popping-out when an empty line is encountered (I assume that even in the Asciidoctor parser doesn't carry across paragraphs or blocks).
[ ] Investigate whether it might be better to just drop the "pseudo-string" scope altogether, and just treat the string delimiters on their own (although I fear this might render it very hard to distinguish between line code followed by double quotes and curly quotes delimiters).
There's a problem with how curly quotes are currently handled, and this examples breaks syntax highlighting:
The problem here is that while Asciidoctor correctly treats the backticks surrounding the quoted paths as inline code, the syntax treats them as curly-quotes ending and starting markers — i.e. the latter starts a scope that leads the rest of the line to be mismatched, and the last inline code is skipped, with the problem that the "pseudo-string" scopes
meta.curlyquoteinner.double.asciidoc
andmarkup.curlyquote.double.asciidoc
never pop-out, and keep waiting for a mismatched closing delimiter.Possible solutions:
`"
encountered outside of ameta.curlyquoteinner
/markup.curlyquote.double
context is an inline code delimiter — or at least, give it a higher priority.meta.curlyquoteinner.double.asciidoc
doesn't carry on fover, e.g. by gracefully popping-out when an empty line is encountered (I assume that even in the Asciidoctor parser doesn't carry across paragraphs or blocks).