diff --git a/Default (Linux).sublime-keymap b/Default (Linux).sublime-keymap index d0f839e7..af96e827 100644 --- a/Default (Linux).sublime-keymap +++ b/Default (Linux).sublime-keymap @@ -205,6 +205,27 @@ ] }, + // + // Auto-Pairing Highlight + // + + { "keys": ["="], "command": "insert_snippet", "args": {"contents": "==${0:$SELECTION}=="}, "context": + [ + { "key": "selector", "operator": "equal", "operand": "text.html.markdown - meta.frontmatter - meta.disable-markdown - markup.raw - markup.kbd", "match_all": true }, + { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true }, + { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true } + ] + }, + { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/MarkdownEditing/macros/Delete Left Right 2.sublime-macro"}, "context": + [ + { "key": "selector", "operator": "equal", "operand": "text.html.markdown - meta.frontmatter - meta.disable-markdown - markup.raw - markup.kbd", "match_all": true }, + { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true }, + { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }, + { "key": "preceding_text", "operator": "regex_contains", "operand": "==$", "match_all": true }, + { "key": "following_text", "operator": "regex_contains", "operand": "^==", "match_all": true } + ] + }, + // // Auto-Pairing Strike Through // diff --git a/Default (OSX).sublime-keymap b/Default (OSX).sublime-keymap index e7500b82..08df0d66 100644 --- a/Default (OSX).sublime-keymap +++ b/Default (OSX).sublime-keymap @@ -205,6 +205,27 @@ ] }, + // + // Auto-Pairing Highlight + // + + { "keys": ["="], "command": "insert_snippet", "args": {"contents": "==${0:$SELECTION}=="}, "context": + [ + { "key": "selector", "operator": "equal", "operand": "text.html.markdown - meta.frontmatter - meta.disable-markdown - markup.raw - markup.kbd", "match_all": true }, + { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true }, + { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true } + ] + }, + { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/MarkdownEditing/macros/Delete Left Right 2.sublime-macro"}, "context": + [ + { "key": "selector", "operator": "equal", "operand": "text.html.markdown - meta.frontmatter - meta.disable-markdown - markup.raw - markup.kbd", "match_all": true }, + { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true }, + { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }, + { "key": "preceding_text", "operator": "regex_contains", "operand": "==$", "match_all": true }, + { "key": "following_text", "operator": "regex_contains", "operand": "^==", "match_all": true } + ] + }, + // // Auto-Pairing Strike Through // diff --git a/Default (Windows).sublime-keymap b/Default (Windows).sublime-keymap index d0f839e7..af96e827 100644 --- a/Default (Windows).sublime-keymap +++ b/Default (Windows).sublime-keymap @@ -205,6 +205,27 @@ ] }, + // + // Auto-Pairing Highlight + // + + { "keys": ["="], "command": "insert_snippet", "args": {"contents": "==${0:$SELECTION}=="}, "context": + [ + { "key": "selector", "operator": "equal", "operand": "text.html.markdown - meta.frontmatter - meta.disable-markdown - markup.raw - markup.kbd", "match_all": true }, + { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true }, + { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true } + ] + }, + { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/MarkdownEditing/macros/Delete Left Right 2.sublime-macro"}, "context": + [ + { "key": "selector", "operator": "equal", "operand": "text.html.markdown - meta.frontmatter - meta.disable-markdown - markup.raw - markup.kbd", "match_all": true }, + { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true }, + { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }, + { "key": "preceding_text", "operator": "regex_contains", "operand": "==$", "match_all": true }, + { "key": "following_text", "operator": "regex_contains", "operand": "^==", "match_all": true } + ] + }, + // // Auto-Pairing Strike Through // diff --git a/messages.json b/messages.json index 9180ee9c..8a823144 100644 --- a/messages.json +++ b/messages.json @@ -47,5 +47,6 @@ "3.1.10": "messages/3.1.10.md", "3.1.11": "messages/3.1.11.md", "3.1.12": "messages/3.1.12.md", - "3.1.13": "messages/3.1.13.md" + "3.1.13": "messages/3.1.13.md", + "3.1.14": "messages/3.1.14.md" } diff --git a/messages/3.1.14.md b/messages/3.1.14.md new file mode 100644 index 00000000..0214a265 --- /dev/null +++ b/messages/3.1.14.md @@ -0,0 +1,19 @@ +# MarkdownEditing 3.1.14 Changelog + +Your _MarkdownEditing_ plugin is updated. Enjoy new version. For any type of +feedback you can use [GitHub issues][issues]. + +## Bug Fixes + +* improve code span patterns in table cells +* Fix Terraform syntax highlighting in fenced code blocks (#765) +* add missing language tag names to detect fenced code block syntaxes + +## New Features + +* syntax highlighting for `==highlight==` emphasis (#764) +* syntax highlighting for Groovy in fenced code blocks (#768) + +## Changes + +[issues]: https://github.com/SublimeText-Markdown/MarkdownEditing/issues diff --git a/syntaxes/Markdown.sublime-syntax b/syntaxes/Markdown.sublime-syntax index f043fcfd..52d58fa4 100644 --- a/syntaxes/Markdown.sublime-syntax +++ b/syntaxes/Markdown.sublime-syntax @@ -9,7 +9,7 @@ # # The scope suffix should indicate which flavor of Markdown the feature came from, # to help make this syntax definition easier to maintain. -name: Markdown (MDE) +name: Markdown scope: text.html.markdown hidden: true @@ -108,6 +108,12 @@ variables: | (?! \s*\-\s+ | \s+\|){{table_cell}}\|(?!\s+$) ) + table_codespan_content: |- + (?x: + [^`|] # first or only char must not be a backtick or pipe. + (?:[^|]*?[^`|])? # none must be a pipe, the last additionally must not be a backtick + ) + fenced_code_block_start: |- (?x: ([ \t]*) @@ -1032,6 +1038,7 @@ contexts: - include: fenced-erlang - include: fenced-graphviz - include: fenced-golang + - include: fenced-groovy - include: fenced-haskell - include: fenced-html-php - include: fenced-html @@ -1121,7 +1128,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(applescript|osascript)) + (?i:\s*(applescript|osascript|scpt)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.applescript.markdown-gfm @@ -1241,7 +1248,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(diff|patch)) + (?i:\s*(u?diff|patch)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.diff.markdown-gfm @@ -1261,7 +1268,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(bat|cmd|dos)) + (?i:\s*(bat(?:ch(?:file)?)?|cmd|(?:dos|win)batch)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.dosbatch.markdown-gfm @@ -1281,7 +1288,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(erlang|escript)) + (?i:\s*(erl(?:ang)?|escript)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.erlang.markdown-gfm @@ -1301,7 +1308,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(graphviz)) + (?i:\s*(dot|graphviz|gv)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.graphviz.markdown-gfm @@ -1317,6 +1324,26 @@ contexts: 1: punctuation.definition.raw.code-fence.end.markdown 2: meta.fold.code-fence.end.markdown + fenced-groovy: + - match: |- + (?x) + {{fenced_code_block_start}} + (?i:\s*(groovy)) + {{fenced_code_block_trailing_infostring_characters}} + captures: + 0: meta.code-fence.definition.begin.groovy.markdown-gfm + 2: punctuation.definition.raw.code-fence.begin.markdown + 5: constant.other.language-name.markdown + 6: comment.line.infostring.markdown + 7: meta.fold.code-fence.begin.markdown + embed: scope:source.groovy + embed_scope: markup.raw.code-fence.groovy.markdown-gfm + escape: '{{fenced_code_block_escape}}' + escape_captures: + 0: meta.code-fence.definition.end.groovy.markdown-gfm + 1: punctuation.definition.raw.code-fence.end.markdown + 2: meta.fold.code-fence.end.markdown + fenced-golang: - match: |- (?x) @@ -1341,7 +1368,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(haskell)) + (?i:\s*(haskell|hsc?)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.haskell.markdown-gfm @@ -1361,7 +1388,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(html\+php)) + (?i:\s*(html\+php|phtml)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.html-php.markdown-gfm @@ -1381,7 +1408,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(html)) + (?i:\s*(x?html)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.html.markdown-gfm @@ -1421,7 +1448,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(javascript|js)) + (?i:\s*(javascript|js|node)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.javascript.markdown-gfm @@ -1561,7 +1588,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(makefile)) + (?i:\s*(make(?:file)?|mf)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.makefile.markdown-gfm @@ -1663,7 +1690,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(perl)) + (?i:\s*(perl5?)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.perl.markdown-gfm @@ -1703,7 +1730,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(python|py)) + (?i:\s*(python3?|py)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.python.markdown-gfm @@ -1903,7 +1930,7 @@ contexts: - match: |- (?x) {{fenced_code_block_start}} - (?i:\s*(typescript|ts)) + (?i:\s*(typescript|ts(?:node)?)) {{fenced_code_block_trailing_infostring_characters}} captures: 0: meta.code-fence.definition.begin.typescript.markdown-gfm @@ -2515,7 +2542,7 @@ contexts: 5: constant.other.language-name.markdown 6: comment.line.infostring.markdown 7: meta.fold.code-fence.begin.markdown - embed: scope:source.json.terraform + embed: scope:source.terraform embed_scope: markup.raw.code-fence.terraform.markdown-gfm escape: '{{fenced_code_block_escape}}' escape_captures: @@ -2920,11 +2947,39 @@ contexts: - include: markups table-cell-code-spans: - - match: (`+)[^`|]+(\1) + # code-spans quoted with up to 6 backticks are supported + # to avoid usage of slower Oniguruma features + - match: (`{6}){{table_codespan_content}}(`{6})(?!`) scope: markup.raw.inline.markdown captures: 1: punctuation.definition.raw.begin.markdown 2: punctuation.definition.raw.end.markdown + - match: (`{5}){{table_codespan_content}}(`{5})(?!`) + scope: markup.raw.inline.markdown + captures: + 1: punctuation.definition.raw.begin.markdown + 2: punctuation.definition.raw.end.markdown + - match: (`{4}){{table_codespan_content}}(`{4})(?!`) + scope: markup.raw.inline.markdown + captures: + 1: punctuation.definition.raw.begin.markdown + 2: punctuation.definition.raw.end.markdown + - match: (`{3}){{table_codespan_content}}(`{3})(?!`) + scope: markup.raw.inline.markdown + captures: + 1: punctuation.definition.raw.begin.markdown + 2: punctuation.definition.raw.end.markdown + - match: (`{2}){{table_codespan_content}}(`{2})(?!`) + scope: markup.raw.inline.markdown + captures: + 1: punctuation.definition.raw.begin.markdown + 2: punctuation.definition.raw.end.markdown + - match: (`{1}){{table_codespan_content}}(`{1})(?!`) + scope: markup.raw.inline.markdown + captures: + 1: punctuation.definition.raw.begin.markdown + 2: punctuation.definition.raw.end.markdown + - match: \`+ # consume remainers table-cell-emphasis: - include: emphasis @@ -2962,6 +3017,7 @@ contexts: emphasis: - include: bold - include: italic + - include: highlight - include: strikethrough images: @@ -3087,6 +3143,7 @@ contexts: scope: punctuation.definition.italic.end.markdown set: bold-after-bold-italic-asterisk - include: emphasis-common + - include: highlight - include: strikethrough bold-after-bold-italic-asterisk: @@ -3133,6 +3190,7 @@ contexts: scope: punctuation.definition.bold.end.markdown set: italic-after-bold-italic-underscore - include: emphasis-common + - include: highlight - include: strikethrough bold-after-bold-italic-underscore: @@ -3162,6 +3220,7 @@ contexts: bold-common: - include: emphasis-common - include: italic + - include: highlight - include: strikethrough italic: @@ -3201,8 +3260,25 @@ contexts: italic-common: - include: emphasis-common - include: bold + - include: highlight - include: strikethrough + highlight: + - match: ==(?![=>\s]) # 2x = but no => + scope: punctuation.definition.highlight.begin.markdown + push: highlight-content + - match: =+(?![=>\s]) # any number of = not looking like => + + highlight-content: + - meta_scope: markup.highlight.markdown + - match: ==(?!=) # 2x = + scope: punctuation.definition.highlight.end.markdown + pop: true + - match: '[ \t]*=+' + - include: emphasis-common + - include: bold + - include: italic + strikethrough: # https://github.github.com/gfm/#strikethrough-extension- - match: ~~(?![~}>\s]) # 2x ~ but no ~> or ~~} @@ -3215,7 +3291,7 @@ contexts: - match: ~~(?:(?!~)|(?=~~}|~>)) # 2x ~ maybe followed by ~> or ~~} scope: punctuation.definition.strikethrough.end.markdown pop: true - - match: ~+(?:(?!~)|(?=~~}|~>)) # any number of ~ maybe followed by ~> or ~~} + - match: '[ \t]*~+(?:(?!~)|(?=~~}|~>))' # any number of ~ maybe followed by ~> or ~~} - include: emphasis-common - include: bold - include: italic diff --git a/tests/syntax_test_markdown.md b/tests/syntax_test_markdown.md index d9165a20..beb66b8a 100644 --- a/tests/syntax_test_markdown.md +++ b/tests/syntax_test_markdown.md @@ -1610,6 +1610,16 @@ graph n {} |^^ meta.code-fence.definition.end.graphviz.markdown-gfm punctuation.definition.raw.code-fence.end.markdown | ^ meta.code-fence.definition.end.graphviz.markdown-gfm meta.fold.code-fence.end - punctuation +```groovy +| ^^^^^^^ meta.code-fence.definition.begin.groovy.markdown-gfm - meta.fold +| ^ meta.code-fence.definition.begin.groovy.markdown-gfm meta.fold.code-fence.begin.markdown + +| <- markup.raw.code-fence.groovy.markdown-gfm source.groovy +``` +| <- meta.code-fence.definition.end.groovy.markdown-gfm punctuation.definition.raw.code-fence.end.markdown +|^^ meta.code-fence.definition.end.groovy.markdown-gfm punctuation.definition.raw.code-fence.end.markdown +| ^ meta.code-fence.definition.end.groovy.markdown-gfm meta.fold.code-fence.end - punctuation + ```haskell |^^^^^^^^^ meta.code-fence.definition.begin - meta.fold | ^ meta.code-fence.definition.begin meta.fold.code-fence.begin @@ -2938,6 +2948,54 @@ test > bar | <- markup.quote punctuation.definition.blockquote - meta.table +| c1 | c2 | c3 | c4 | c5 | c6 | c7 +| --- | --- | --- | --- | --- | --- | --- +| ` ` | ` me ` | `` ` `` | ` `` ` | ``foo`bar`` | ```foo`` | ``foo``` +| <- meta.table.markdown-gfm punctuation.separator.table-cell.markdown +| ^^^ meta.table.markdown-gfm markup.raw.inline.markdown +| ^ punctuation.definition.raw.begin.markdown +| ^ punctuation.definition.raw.end.markdown +| ^ punctuation.separator.table-cell +| ^^^^^^ markup.raw.inline.markdown +| ^ punctuation.definition.raw.begin.markdown +| ^ punctuation.definition.raw.end.markdown +| ^^^^^^^ markup.raw.inline.markdown +| ^^ punctuation.definition.raw.begin.markdown +| ^^^ - punctuation +| ^^ punctuation.definition.raw.end.markdown +| ^ punctuation.separator.table-cell +| ^^^^^^ markup.raw.inline.markdown +| ^ punctuation.definition.raw.begin.markdown +| ^^^^ - punctuation +| ^ punctuation.definition.raw.end.markdown +| ^ punctuation.separator.table-cell +| ^^^^^^^^^^^ markup.raw.inline.markdown +| ^^ punctuation.definition.raw.begin.markdown +| ^^^^^^^ - punctuation +| ^^ punctuation.definition.raw.end.markdown +| ^ punctuation.separator.table-cell +| ^^^^^^^^ - markup.raw + +| c1 | c2 | +| --- | --- | +| ```` ``` ```` | `````` ````` `````` | +| ^^^^^^^^^^^^^ markup.raw.inline.markdown +| ^^^^ punctuation.definition.raw.begin.markdown +| ^^^^^ - punctuation +| ^^^^ punctuation.definition.raw.end.markdown +| ^^^^^^^^^^^^^^^^^^^ markup.raw.inline.markdown +| ^^^^^^ punctuation.definition.raw.begin.markdown +| ^^^^^^^ - punctuation +| ^^^^^^ punctuation.definition.raw.end.markdown +| table with | `multiple` code `spans`) | +| <- punctuation.separator.table-cell +| ^ punctuation.separator.table-cell +| ^^^^^^^^^^ markup.raw.inline +| ^^^^^^ - markup.raw.inline +| ^^^^^^^ markup.raw.inline + + + `|` this `|` example `|` is not a table `|` | ^ punctuation.definition.raw.end - meta.table | nor is this | because it is not at block level, it immediately follows a paragraph | @@ -2994,15 +3052,6 @@ not a table | |`test | me | |^^^^^^^^^^^^^ meta.table.markdown-gfm - markup.raw | ^ punctuation.separator.table-cell -| ` ` | ` me ` | -| <- meta.table.markdown-gfm punctuation.separator.table-cell.markdown -| ^^^ meta.table.markdown-gfm markup.raw.inline.markdown -| ^ punctuation.definition.raw.begin.markdown -| ^ punctuation.definition.raw.end.markdown -| ^ punctuation.separator.table-cell -| ^^^^^^ markup.raw.inline.markdown -| ^ punctuation.definition.raw.begin.markdown -| ^ punctuation.definition.raw.end.markdown | table | followed by paragraph @@ -6898,6 +6947,117 @@ __test text__ *formatted* | ^ punctuation | ^ punctuation +# TEST: HIGHLIGHT ############################################################# + +__==bold highlight==__ +| <- markup.bold.markdown punctuation.definition.bold.begin.markdown +|^ markup.bold.markdown - markup.highlight +| ^^^^^^^^^^^^^^^^^^ markup.bold.markdown markup.highlight.markdown +| ^^ markup.bold.markdown - markup.highlight +|^ punctuation.definition.bold.begin.markdown +| ^^ punctuation.definition.highlight.begin.markdown +| ^^ punctuation.definition.highlight.end.markdown +| ^^ punctuation.definition.bold.end.markdown + +**==bold highlight==** +| <- markup.bold.markdown punctuation.definition.bold.begin.markdown +|^ markup.bold.markdown - markup.highlight +| ^^^^^^^^^^^^^^^^^^ markup.bold.markdown markup.highlight.markdown +| ^^ markup.bold.markdown - markup.highlight +|^ punctuation.definition.bold.begin.markdown +| ^^ punctuation.definition.highlight.begin.markdown +| ^^ punctuation.definition.highlight.end.markdown +| ^^ punctuation.definition.bold.end.markdown + +_==italic highlight==_ +| <- markup.italic.markdown punctuation.definition.italic.begin.markdown +|^^^^^^^^^^^^^^^^^^^^ markup.italic.markdown markup.highlight.markdown +| ^ markup.italic.markdown - markup.highlight +|^^ punctuation.definition.highlight.begin.markdown +| ^^ punctuation.definition.highlight.end.markdown +| ^ punctuation.definition.italic.end.markdown + +*==italic highlight==* +| <- markup.italic.markdown punctuation.definition.italic.begin.markdown +|^^^^^^^^^^^^^^^^^^^^ markup.italic.markdown markup.highlight.markdown +| ^ markup.italic.markdown - markup.highlight +|^^ punctuation.definition.highlight.begin.markdown +| ^^ punctuation.definition.highlight.end.markdown +| ^ punctuation.definition.italic.end.markdown + +___==bold italic highlight==___ +| <- markup.bold.markdown punctuation.definition.bold.begin.markdown +|^ markup.bold.markdown - markup.italic - markup.highlight +| ^ markup.bold.markdown markup.italic.markdown - markup.highlight +| ^^^^^^^^^^^^^^^^^^^^^^^^^ markup.bold.markdown markup.italic.markdown markup.highlight.markdown +| ^ markup.bold.markdown markup.italic.markdown - markup.highlight +| ^^ markup.bold.markdown - markup.italic - markup.highlight +|^ punctuation.definition.bold.begin.markdown +| ^ punctuation.definition.italic.begin.markdown +| ^^ punctuation.definition.highlight.begin.markdown +| ^^ punctuation.definition.highlight.end.markdown +| ^ punctuation.definition.italic.end.markdown +| ^^ punctuation.definition.bold.end.markdown + +***==bold italic highlight==*** +| <- markup.bold.markdown punctuation.definition.bold.begin.markdown +|^ markup.bold.markdown - markup.italic - markup.highlight +| ^ markup.bold.markdown markup.italic.markdown - markup.highlight +| ^^^^^^^^^^^^^^^^^^^^^^^^^ markup.bold.markdown markup.italic.markdown markup.highlight.markdown +| ^ markup.bold.markdown markup.italic.markdown - markup.highlight +| ^^ markup.bold.markdown - markup.italic - markup.highlight +|^ punctuation.definition.bold.begin.markdown +| ^ punctuation.definition.italic.begin.markdown +| ^^ punctuation.definition.highlight.begin.markdown +| ^^ punctuation.definition.highlight.end.markdown +| ^ punctuation.definition.italic.end.markdown +| ^^ punctuation.definition.bold.end.markdown + +=Hi= Hello, world! +| <- - punctuation.definition.highlight +|^^^^^^^^^^^^^^^^^ meta.paragraph - markup +| ^ - punctuation.definition.highlight + +This =text==== is ====curious=. +|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph - markup +| ^ - punctuation.definition.highlight +| ^^^^ - punctuation.definition.highlight +| ^^^^ - punctuation.definition.highlight +| ^ - punctuation.definition.highlight + +This ==text==== is ====curious==. +|^^^^ meta.paragraph - markup +| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph markup.highlight +| ^^ meta.paragraph - markup +| ^^ punctuation.definition.highlight.begin +| ^^^^ - punctuation.definition.highlight +| ^^^^ - punctuation.definition.highlight +| ^^ punctuation.definition.highlight.end + +This ==is ==highlighted== inline text +|^^^^ - markup.highlight +| ^^^^^^^^^^^^^^^^^^^^ markup.highlight.markdown +| ^^^^^^^^^^^^ - markup.highlight + +This ==has a +| ^^^^^^^^ meta.paragraph markup.highlight + +| <- meta.paragraph markup.highlight invalid.illegal.non-terminated.bold-italic +new paragraph==. +| ^^ meta.paragraph markup.highlight punctuation.definition.highlight.begin + +| <- invalid.illegal.non-terminated.bold-italic + +A ==[highlight](https://link-url)== +| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph.markdown markup.highlight.markdown + +A ==![highlight](https://image-url)== +| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph.markdown markup.highlight.markdown + +A ==[![highlight](image-url)](link-url)== +| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph.markdown markup.highlight.markdown + + # TEST: STRIKETHROUGH ######################################################### __~~bold striked~~__ @@ -6985,6 +7145,11 @@ This ~~text~~~~ is ~~~~curious~~. | ^^^^ - punctuation.definition.strikethrough | ^^ punctuation.definition.strikethrough.end +This ~~is ~~striked~~ inline text +|^^^^ - markup.strikethrough +| ^^^^^^^^^^^^^^^^ markup.strikethrough.markdown-gfm +| ^^^^^^^^^^^^^ - markup.strikethrough + This ~~has a | ^^^^^^^^ meta.paragraph markup.strikethrough @@ -6994,13 +7159,13 @@ new paragraph~~. | <- invalid.illegal.non-terminated.bold-italic -A ~~[striked](https://link-url)~~ +A ~~[highlight](https://link-url)~~ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph.markdown markup.strikethrough.markdown-gfm -A ~~![striked](https://image-url)~~ +A ~~![highlight](https://image-url)~~ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph.markdown markup.strikethrough.markdown-gfm -A ~~[![striked](image-url)](link-url)~~ +A ~~[![highlight](image-url)](link-url)~~ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.paragraph.markdown markup.strikethrough.markdown-gfm @@ -8176,24 +8341,24 @@ $$ |^ punctuation.definition.math.begin.markdown | ^ - punctuation foo = 1 + 2 * \sqrt{a^2+b^2} -| <- markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex variable.other.math.tex -|^^^^^^^^^^^^^^^^^^^^^^^^^^^^ markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ keyword.operator.math.tex -| ^^^^^ support.function.math.tex -| ^^^^^^^^^ meta.group.brace.latex -| ^ punctuation.definition.group.brace.begin.latex -| ^ variable.other.math.tex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ keyword.operator.math.tex -| ^ variable.other.math.tex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ punctuation.definition.group.brace.end.latex +| <- markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar variable.other.math +|^^^^^^^^^^^^^^^^^^^^^^^^^^^^ markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar +| ^ keyword.operator +| ^ constant.numeric +| ^ keyword.operator +| ^ constant.numeric +| ^ keyword.operator +| ^^^^^ support.function.math +| ^^^^^^^^^ meta.group.brace +| ^ punctuation.definition.group.brace.begin +| ^ variable.other.math +| ^ keyword.operator, punctuation.separator.superscript +| ^ constant.numeric +| ^ keyword.operator +| ^ variable.other.math +| ^ keyword.operator, punctuation.separator.superscript +| ^ constant.numeric +| ^ punctuation.definition.group.brace.end $$ | <- markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex punctuation.definition.math.end.markdown |^ markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex punctuation.definition.math.end.markdown