Skip to content

Commit 9ba6b93

Browse files
authored
[Markdown] Fix premature block quote termination (#3900)
* [Markdown] Fix premature block quote termination Fixes #3892 (comment) Follow up commit for #3892. * [Markdown] Remove useless context pushes This commit removes block-quote punctuation contexts from being pushed on stack, which do not have any effect in conjunction with Github Alerts. They are required support multiple > > > markers in front of content, which is not supported by Github Alerts. Due to consuming caption text pushing those contexts does actually nothing, but causing some extra round-trips.
1 parent 215bba1 commit 9ba6b93

File tree

2 files changed

+124
-14
lines changed

2 files changed

+124
-14
lines changed

Markdown/Markdown.sublime-syntax

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,6 @@ contexts:
363363
push:
364364
- block-quote-caution-meta
365365
- block-quote-body
366-
- block-quote-punctuation-body
367366
- match: '[ \t]{,3}(>)[ ]?((\[)!WARNING(\]))'
368367
captures:
369368
1: punctuation.definition.blockquote.markdown
@@ -373,7 +372,6 @@ contexts:
373372
push:
374373
- block-quote-warning-meta
375374
- block-quote-body
376-
- block-quote-punctuation-body
377375
- match: '[ \t]{,3}(>)[ ]?((\[)!IMPORTANT(\]))'
378376
captures:
379377
1: punctuation.definition.blockquote.markdown
@@ -383,7 +381,6 @@ contexts:
383381
push:
384382
- block-quote-important-meta
385383
- block-quote-body
386-
- block-quote-punctuation-body
387384
- match: '[ \t]{,3}(>)[ ]?((\[)!NOTE(\]))'
388385
captures:
389386
1: punctuation.definition.blockquote.markdown
@@ -393,7 +390,6 @@ contexts:
393390
push:
394391
- block-quote-note-meta
395392
- block-quote-body
396-
- block-quote-punctuation-body
397393
- match: '[ \t]{,3}(>)[ ]?((\[)!TIP(\]))'
398394
captures:
399395
1: punctuation.definition.blockquote.markdown
@@ -403,7 +399,6 @@ contexts:
403399
push:
404400
- block-quote-tip-meta
405401
- block-quote-body
406-
- block-quote-punctuation-body
407402
- match: '[ \t]{,3}(>)[ ]?'
408403
captures:
409404
1: punctuation.definition.blockquote.markdown
@@ -631,14 +626,14 @@ contexts:
631626
4: markup.checkbox.begin.markdown-gfm punctuation.definition.checkbox.begin.markdown-gfm
632627
5: markup.checkbox.mark.markdown-gfm
633628
6: markup.checkbox.end.markdown-gfm punctuation.definition.checkbox.end.markdown-gfm
634-
set: block-quote-unordered-list-block-body
629+
push: block-quote-unordered-list-block-body
635630
- match: ([ \t]*)(\d{1,9}([.)]))(\s)
636631
captures:
637632
1: markup.list.numbered.markdown
638633
2: markup.list.numbered.bullet.markdown
639634
3: punctuation.definition.list_item.markdown
640635
4: markup.list.numbered.markdown
641-
set: block-quote-ordered-list-block-body
636+
push: block-quote-ordered-list-block-body
642637

643638
block-quote-ordered-list-block-body:
644639
- meta_content_scope: markup.list.numbered.markdown
@@ -697,7 +692,7 @@ contexts:
697692

698693
block-quote-paragraph:
699694
- match: '[ \t]*(?=\S)'
700-
set: block-quote-paragraph-body
695+
push: block-quote-paragraph-body
701696

702697
block-quote-paragraph-body:
703698
- meta_scope: markup.paragraph.markdown
@@ -793,7 +788,6 @@ contexts:
793788
push:
794789
- block-quote-caution-meta
795790
- list-block-quote-body
796-
- block-quote-punctuation-body
797791
- match: '[ \t]{,3}(>)[ ]?((\[)!WARNING(\]))'
798792
captures:
799793
1: punctuation.definition.blockquote.markdown
@@ -803,7 +797,6 @@ contexts:
803797
push:
804798
- block-quote-warning-meta
805799
- list-block-quote-body
806-
- block-quote-punctuation-body
807800
- match: '[ \t]{,3}(>)[ ]?((\[)!IMPORTANT(\]))'
808801
captures:
809802
1: punctuation.definition.blockquote.markdown
@@ -813,7 +806,6 @@ contexts:
813806
push:
814807
- block-quote-important-meta
815808
- list-block-quote-body
816-
- block-quote-punctuation-body
817809
- match: '[ \t]{,3}(>)[ ]?((\[)!NOTE(\]))'
818810
captures:
819811
1: punctuation.definition.blockquote.markdown
@@ -823,7 +815,6 @@ contexts:
823815
push:
824816
- block-quote-note-meta
825817
- list-block-quote-body
826-
- block-quote-punctuation-body
827818
- match: '[ \t]{,3}(>)[ ]?((\[)!TIP(\]))'
828819
captures:
829820
1: punctuation.definition.blockquote.markdown
@@ -833,7 +824,6 @@ contexts:
833824
push:
834825
- block-quote-tip-meta
835826
- list-block-quote-body
836-
- block-quote-punctuation-body
837827
- match: '[ \t]*(>)[ ]?'
838828
captures:
839829
1: punctuation.definition.blockquote.markdown
@@ -860,7 +850,7 @@ contexts:
860850

861851
list-block-quote-paragraph:
862852
- match: '[ \t]*(?=\S)'
863-
set: list-block-quote-paragraph-body
853+
push: list-block-quote-paragraph-body
864854

865855
list-block-quote-paragraph-body:
866856
- meta_scope: markup.paragraph.markdown

Markdown/tests/syntax_test_markdown.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8209,6 +8209,66 @@ This is a [[wiki link]].
82098209
|^ markup.quote.alert.caution.markdown - markup.paragraph
82108210
| ^^^^^ markup.quote.alert.caution.markdown markup.paragraph.markdown
82118211
8212+
> [!CAUTION]
8213+
>
8214+
> Paragraph 1
8215+
>
8216+
> Paragraph 2
8217+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8218+
|^ markup.quote.alert.caution.markdown - markup.paragraph
8219+
| ^^^^^^^^^^^ markup.quote.alert.caution.markdown markup.paragraph.markdown
8220+
8221+
> [!CAUTION]
8222+
>
8223+
> - list item
8224+
>
8225+
> - list item
8226+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8227+
|^ markup.quote.alert.caution.markdown
8228+
| ^ markup.quote.alert.caution.markdown markup.list.unnumbered.bullet.markdown punctuation.definition.list_item.markdown
8229+
| ^^^^^^^^^^^ markup.quote.alert.caution.markdown markup.list.unnumbered.markdown
8230+
8231+
> [!CAUTION]
8232+
>
8233+
> 1. list item
8234+
>
8235+
> 2. list item
8236+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8237+
|^ markup.quote.alert.caution.markdown
8238+
| ^^ markup.quote.alert.caution.markdown markup.list.numbered.bullet.markdown
8239+
| ^ punctuation.definition.list_item.markdown
8240+
| ^^^^^^^^^^ markup.quote.alert.caution.markdown markup.list.numbered.markdown
8241+
8242+
> [!CAUTION]
8243+
>
8244+
> 1. list item
8245+
>
8246+
> 2. list item paragraph 1
8247+
>
8248+
> list item paragraph 2
8249+
| <- markup.quote.alert.caution.markdown markup.list.numbered.markdown punctuation.definition.blockquote.markdown
8250+
|^^^^^^^^^^^^^^^^^^^^^^^^^^ markup.quote.alert.caution.markdown markup.list.numbered.markdown
8251+
8252+
> [!CAUTION]
8253+
>
8254+
> Paragraph 1
8255+
>
8256+
> # Heading
8257+
>
8258+
> Paragraph 2
8259+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8260+
|^^^^^^^^^^^^^ markup.quote.alert.caution.markdown
8261+
8262+
> [!CAUTION]
8263+
>
8264+
> ```
8265+
> fenced code
8266+
> ```
8267+
>
8268+
> Paragraph 2
8269+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8270+
|^^^^^^^^^^^^^ markup.quote.alert.caution.markdown
8271+
82128272
> [!WARNING]
82138273
| <- markup.quote.alert.warning.markdown punctuation.definition.blockquote.markdown
82148274
|^^^^^^^^^^^^ markup.quote.alert.warning.markdown
@@ -8281,6 +8341,66 @@ This is a [[wiki link]].
82818341
|^ markup.quote.alert.caution.markdown - markup.paragraph
82828342
| ^^^^^ markup.quote.alert.caution.markdown markup.paragraph.markdown
82838343
8344+
> [!CAUTION]
8345+
>
8346+
> Paragraph 1
8347+
>
8348+
> Paragraph 2
8349+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8350+
|^ markup.quote.alert.caution.markdown - markup.paragraph
8351+
| ^^^^^^^^^^^ markup.quote.alert.caution.markdown markup.paragraph.markdown
8352+
8353+
> [!CAUTION]
8354+
>
8355+
> - list item
8356+
>
8357+
> - list item
8358+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8359+
|^ markup.quote.alert.caution.markdown
8360+
| ^ markup.quote.alert.caution.markdown markup.list.unnumbered.bullet.markdown punctuation.definition.list_item.markdown
8361+
| ^^^^^^^^^^^ markup.quote.alert.caution.markdown markup.list.unnumbered.markdown
8362+
8363+
> [!CAUTION]
8364+
>
8365+
> 1. list item
8366+
>
8367+
> 2. list item
8368+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8369+
|^ markup.quote.alert.caution.markdown
8370+
| ^^ markup.quote.alert.caution.markdown markup.list.numbered.bullet.markdown
8371+
| ^ punctuation.definition.list_item.markdown
8372+
| ^^^^^^^^^^ markup.quote.alert.caution.markdown markup.list.numbered.markdown
8373+
8374+
> [!CAUTION]
8375+
>
8376+
> 1. list item
8377+
>
8378+
> 2. list item paragraph 1
8379+
>
8380+
> list item paragraph 2
8381+
| <- markup.quote.alert.caution.markdown markup.list.numbered.markdown punctuation.definition.blockquote.markdown
8382+
|^^^^^^^^^^^^^^^^^^^^^^^^^^ markup.quote.alert.caution.markdown markup.list.numbered.markdown
8383+
8384+
> [!CAUTION]
8385+
>
8386+
> Paragraph 1
8387+
>
8388+
> # Heading
8389+
>
8390+
> Paragraph 2
8391+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8392+
|^^^^^^^^^^^^^ markup.quote.alert.caution.markdown
8393+
8394+
> [!CAUTION]
8395+
>
8396+
> ```
8397+
> fenced code
8398+
> ```
8399+
>
8400+
> Paragraph 2
8401+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8402+
|^^^^^^^^^^^^^ markup.quote.alert.caution.markdown
8403+
82848404
1. list item
82858405
> [!WARNING]
82868406
| <- markup.quote.alert.warning.markdown punctuation.definition.blockquote.markdown

0 commit comments

Comments
 (0)