Update the pg-codemirror-editor to pull in a bugfix. #2679
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is early termination code in the CodeMirror PGML parser that is not actually part of PGML. It is there to catch impartial constructs that occur while typeing. For instance, say you have already typed
[` `]
, and then you start to type[$
inside that. This code terminates the outer block so that syntax highlighting continues to work after the outer block.Unfortunately, it was also early terminating 'balance' blocks inside outer blocks even though those could contain the terminator of the outer block. This can cause tokens inside the block to be incorrectly terminated early. For example, in
[@ '[@ "inner code" @]' @]**
the single quote starts a 'balance' type block, and the@]
inside the string tries to terminate the outer[@
block. Of course that example isn't something you should do any, but this was seen in a more complicated construct than that example. That sort of thing is often needed for cases inside a BEGIN_PGML_SOLUTION/END_PGML_SOLUTION block.