forked from asciidoctor/sublimetext-asciidoc
-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
Description
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 ameta.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).