diff --git a/docs/usage.md b/docs/usage.md
index 3d831f1b..d34aa985 100644
--- a/docs/usage.md
+++ b/docs/usage.md
@@ -239,7 +239,7 @@ Following key bindings may be used to create or toggle tasks.
| Linux/Windows | MacOS | Description
|---------------|-------|-------------
| Alt + t | ⌘ + ⌥ + t | Creates new GFM task (`* [ ] task`)
-| Alt + x | ⌘ + ⌥ + x | Toggles GFM task check marks (`* [X] task`)
+| Alt + x | ⌘ + ⌥ + x | Toggles GFM task check marks (`* [x] task`)
# References
diff --git a/make.cmd b/make.cmd
index 5131e03a..eae1a555 100644
--- a/make.cmd
+++ b/make.cmd
@@ -52,18 +52,25 @@ goto :usage
:RELEASE
if "%2"== "" goto :usage
- if not exist "messages/release-%2.md" (
- echo Missing release-%2.md
+ set st3_changelog=release-st3-%2.md
+ set st4_changelog=release-st4-%2.md
+
+ if not exist "messages/%st3_changelog%" (
+ echo Missing %st3_changelog%
+ exit /b 1
+ )
+ if not exist "messages/%st4_changelog%" (
+ echo Missing %st4_changelog%
exit /b 1
)
- git checkout st3176 && git merge %2 --no-ff
+ git checkout st3176 && git merge st3-develop --no-ff
if not errorlevel 0 (
- echo Unable to merge %2 into st3176!
+ echo Unable to merge st3-develop into st3176!
exit /b 1
)
- git checkout master && git merge %2 --no-ff
+ git checkout master && git merge st4-develop --no-ff
if not errorlevel 0 (
- echo Unable to merge %2 into master!
+ echo Unable to merge st4-develop into master!
exit /b 1
)
echo Hit any key to push branches!
@@ -81,9 +88,9 @@ goto :usage
echo Hit any key to publish release!
pause
: create release for ST3
- gh release create --target st3176 -t "MarkdownEditing %2 (ST3176+)" -F "messages/release-%2.md" "3176-%2"
+ gh release create --target st3176 -t "MarkdownEditing %2 (ST3176+)" -F "messages/%st3_changelog%" "3176-%2"
: create release for ST3
- gh release create --target master -t "MarkdownEditing %2 (ST4107+)" -F "messages/release-%2.md" "4107-%2"
+ gh release create --target master -t "MarkdownEditing %2 (ST4107+)" -F "messages/%st4_changelog%" "4107-%2"
git fetch
goto :eof
diff --git a/messages.json b/messages.json
index d7e003dd..4e94b970 100644
--- a/messages.json
+++ b/messages.json
@@ -37,5 +37,6 @@
"3.1.0": "messages/3.1.0.md",
"3.1.1": "messages/3.1.1.md",
"3.1.2": "messages/3.1.2.md",
- "3.1.3": "messages/3.1.3.md"
+ "3.1.3": "messages/3.1.3.md",
+ "3.1.4": "messages/3.1.4.md"
}
diff --git a/messages/3.1.4.md b/messages/3.1.4.md
new file mode 100644
index 00000000..fb941ea9
--- /dev/null
+++ b/messages/3.1.4.md
@@ -0,0 +1,16 @@
+# MarkdownEditing 3.1.4 Changelog
+
+Your _MarkdownEditing_ plugin is updated. Enjoy new version. For any type of
+feedback you can use [GitHub issues][issues].
+
+## Bug Fixes
+
+## New Features
+
+* syntax highlighting for _Twee_ in fenced code blocks
+
+## Changes
+
+* Use lower case `x` for completed gfm tasks `- [x] task` (#696)
+
+[issues]: https://github.com/SublimeText-Markdown/MarkdownEditing/issues
diff --git a/plugins/lists.py b/plugins/lists.py
index 02c87d12..0cad48d1 100644
--- a/plugins/lists.py
+++ b/plugins/lists.py
@@ -205,21 +205,21 @@ class MdeToggleTaskListItemCommand(MdeTextCommand):
**Examples:**
```markdown
- # Orderd Task List
+ # Ordered Task List
1. [ ] task 1
- 2. [X] task 2
+ 2. [x] task 2
- # Unorderd Task List
+ # Unordered Task List
* [ ] task 1
- - [X] task 2
+ - [x] task 2
+ [ ] task 3
# Quoted Task List
> * [ ] task 1
- > * [X] task 2
+ > * [x] task 2
```
"""
@@ -245,7 +245,7 @@ def run(self, edit):
region.a += match.start(1)
region.b = region.a + 1
- self.view.replace(edit, region, "X" if match.group(1) == " " else " ")
+ self.view.replace(edit, region, "x" if match.group(1) == " " else " ")
class MdeJoinLines(MdeTextCommand):
diff --git a/syntaxes/Markdown.sublime-syntax b/syntaxes/Markdown.sublime-syntax
index 91de41cc..b10a6189 100644
--- a/syntaxes/Markdown.sublime-syntax
+++ b/syntaxes/Markdown.sublime-syntax
@@ -331,6 +331,13 @@ contexts:
- include: atx-headings
- include: setext-heading-or-paragraph
+ indented-markdown:
+ # This is a public context which can be embedded by 3rd-party syntaxes
+ # to support Markdown highlighting in locations of arbitrary indentation,
+ # but without reference to list blocks as this is an implementation detail.
+ # The content may diverge from list block content in future.
+ - include: list-block-content
+
###[ CONTAINER BLOCKS: BLOCK QUOTES ]#########################################
block-quotes:
@@ -956,6 +963,7 @@ contexts:
- include: fenced-swift
- include: fenced-terraform
- include: fenced-toml
+ - include: fenced-twee
- include: fenced-twig
- include: fenced-verilog
- include: fenced-xonsh
@@ -2155,6 +2163,25 @@ contexts:
0: meta.code-fence.definition.end.toml.markdown-gfm
1: punctuation.definition.raw.code-fence.end.markdown
+ fenced-twee:
+ - match: |-
+ (?x)
+ {{fenced_code_block_start}}
+ ((?i:twee))
+ {{fenced_code_block_trailing_infostring_characters}}
+ captures:
+ 0: meta.code-fence.definition.begin.twee.markdown-gfm
+ 2: punctuation.definition.raw.code-fence.begin.markdown
+ 5: constant.other.language-name.markdown
+ embed: scope:text.twee
+ embed_scope:
+ markup.raw.code-fence.twee.markdown-gfm
+ text.twee.embedded.markdown
+ escape: '{{fenced_code_block_escape}}'
+ escape_captures:
+ 0: meta.code-fence.definition.end.twee.markdown-gfm
+ 1: punctuation.definition.raw.code-fence.end.markdown
+
fenced-twig:
- match: |-
(?x)
diff --git a/syntaxes/MultiMarkdown.sublime-syntax b/syntaxes/MultiMarkdown.sublime-syntax
index 77376995..435711c2 100644
--- a/syntaxes/MultiMarkdown.sublime-syntax
+++ b/syntaxes/MultiMarkdown.sublime-syntax
@@ -22,7 +22,6 @@ contexts:
captures:
0: meta.frontmatter.multimarkdown
1: punctuation.section.block.begin.frontmatter.multimarkdown
- 2: constant.other.language-name.multimarkdown
embed: frontmatter-content
embed_scope: meta.frontmatter.multimarkdown
escape: ^(---|\.{3})\s*\n
diff --git a/tests/syntax_test_multimarkdown.md b/tests/syntax_test_multimarkdown.md
index fc5ed76a..7e6a3574 100644
--- a/tests/syntax_test_multimarkdown.md
+++ b/tests/syntax_test_multimarkdown.md
@@ -1,36 +1,5 @@
-T: SYNTAX TEST "Packages/MarkdownEditing/syntaxes/MultiMarkdown.sublime-syntax"
-Title: A Sample MultiMarkdown Document
-T: ^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
-T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
-T: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
-Author: Fletcher T. Penney
-T:^^^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
-T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
-T: ^^^^^^^^^^^^^^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
-Date: February 9, 2011
-Comment: This is a comment intended to demonstrate
- metadata that spans multiple lines, yet
- is treated as a single value.
-T: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
-Test: And this is a new key-value pair
-With-Dash: Test
-T: ^^^^^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
-T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
-T: ^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
-With Space: Test
-T: ^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
-T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
-T: ^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
-HTML Header:
-T: ^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown meta.tag.style.end.html
+| SYNTAX TEST "Packages/MarkdownEditing/syntaxes/MultiMarkdown.sublime-syntax"
-T: <- - meta.frontmatter.multimarkdown
-# Heading
-T: <- markup.heading punctuation.definition.heading - meta.frontmatter.multimarkdown
-T:^^^^^^^ markup.heading - meta.frontmatter.multimarkdown
+# MultiMarkdown without frontmatter
+| <- markup.heading.1.markdown punctuation.definition.heading.begin.markdown
+|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ markup.heading.1.markdown
diff --git a/tests/syntax_test_multimarkdown_frontmatter.md b/tests/syntax_test_multimarkdown_frontmatter.md
new file mode 100644
index 00000000..fc5ed76a
--- /dev/null
+++ b/tests/syntax_test_multimarkdown_frontmatter.md
@@ -0,0 +1,36 @@
+T: SYNTAX TEST "Packages/MarkdownEditing/syntaxes/MultiMarkdown.sublime-syntax"
+Title: A Sample MultiMarkdown Document
+T: ^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
+T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
+T: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
+Author: Fletcher T. Penney
+T:^^^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
+T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
+T: ^^^^^^^^^^^^^^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
+Date: February 9, 2011
+Comment: This is a comment intended to demonstrate
+ metadata that spans multiple lines, yet
+ is treated as a single value.
+T: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
+Test: And this is a new key-value pair
+With-Dash: Test
+T: ^^^^^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
+T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
+T: ^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
+With Space: Test
+T: ^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.key.multimarkdown entity.other.attribute-name.multimarkdown
+T: ^ meta.frontmatter.multimarkdown meta.mapping.multimarkdown punctuation.separator.key-value.multimarkdown
+T: ^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown
+HTML Header:
+T: ^^^^^^^^ meta.frontmatter.multimarkdown meta.mapping.value.multimarkdown meta.tag.style.end.html
+
+T: <- - meta.frontmatter.multimarkdown
+# Heading
+T: <- markup.heading punctuation.definition.heading - meta.frontmatter.multimarkdown
+T:^^^^^^^ markup.heading - meta.frontmatter.multimarkdown
diff --git a/tests/test_toggle_tasks.py b/tests/test_toggle_tasks.py
index a0e67ad2..531c4b19 100644
--- a/tests/test_toggle_tasks.py
+++ b/tests/test_toggle_tasks.py
@@ -28,7 +28,7 @@ def _test_set_task_with_asterisk_done(self, col):
self.view.run_command("mde_toggle_task_list_item")
self.assertEqualBlockText(
"""
- * [X] task 1
+ * [x] task 1
"""
)
@@ -50,7 +50,7 @@ def test_set_task_with_asterisk_undone_col12(self):
def _test_set_task_with_asterisk_undone(self, col):
self.setBlockText(
"""
- * [X] task 1
+ * [x] task 1
"""
)
self.setCaretTo(1, col)
@@ -86,7 +86,7 @@ def _test_set_task_with_minus_done(self, col):
self.view.run_command("mde_toggle_task_list_item")
self.assertEqualBlockText(
"""
- - [X] task 1
+ - [x] task 1
"""
)
@@ -108,7 +108,7 @@ def test_set_task_with_minus_undone_col12(self):
def _test_set_task_with_minus_undone(self, col):
self.setBlockText(
"""
- - [X] task 1
+ - [x] task 1
"""
)
self.setCaretTo(1, col)
@@ -144,7 +144,7 @@ def _test_set_task_with_plus_done(self, col):
self.view.run_command("mde_toggle_task_list_item")
self.assertEqualBlockText(
"""
- + [X] task 1
+ + [x] task 1
"""
)
@@ -166,7 +166,7 @@ def test_set_task_with_plus_undone_col12(self):
def _test_set_task_with_plus_undone(self, col):
self.setBlockText(
"""
- + [X] task 1
+ + [x] task 1
"""
)
self.setCaretTo(1, col)
@@ -202,7 +202,7 @@ def _test_set_task_with_asterisk_in_quote_done(self, col):
self.view.run_command("mde_toggle_task_list_item")
self.assertEqualBlockText(
"""
- > * [X] task 1
+ > * [x] task 1
"""
)
@@ -224,7 +224,7 @@ def test_set_task_with_asterisk_in_quote_undone_col12(self):
def _test_set_task_with_asterisk_in_quote_undone(self, col):
self.setBlockText(
"""
- > * [X] task 1
+ > * [x] task 1
"""
)
self.setCaretTo(1, col)
@@ -260,7 +260,7 @@ def _test_set_task_with_minus_in_quote_done(self, col):
self.view.run_command("mde_toggle_task_list_item")
self.assertEqualBlockText(
"""
- > - [X] task 1
+ > - [x] task 1
"""
)
@@ -282,7 +282,7 @@ def test_set_task_with_minus_in_quote_undone_col12(self):
def _test_set_task_with_minus_in_quote_undone(self, col):
self.setBlockText(
"""
- > - [X] task 1
+ > - [x] task 1
"""
)
self.setCaretTo(1, col)
@@ -318,7 +318,7 @@ def _test_set_task_with_plus_in_quote_done(self, col):
self.view.run_command("mde_toggle_task_list_item")
self.assertEqualBlockText(
"""
- > + [X] task 1
+ > + [x] task 1
"""
)
@@ -340,7 +340,7 @@ def test_set_task_with_plus_in_quote_undone_col12(self):
def _test_set_task_with_plus_in_quote_undone(self, col):
self.setBlockText(
"""
- > + [X] task 1
+ > + [x] task 1
"""
)
self.setCaretTo(1, col)
@@ -354,15 +354,15 @@ def _test_set_task_with_plus_in_quote_undone(self, col):
def test_toggle_multi_caret_tasks(self):
self.setBlockText(
"""
- * [X] task 1
- - [X] sub task
- + [X] sub task
+ * [x] task 1
+ - [x] sub task
+ + [x] sub task
* [ ] task 1
- [ ] sub task
+ [ ] sub task
- > * [X] task 1
- > - [X] sub task
- > + [X] sub task
+ > * [x] task 1
+ > - [x] sub task
+ > + [x] sub task
> * [ ] task 1
> - [ ] sub task
> + [ ] sub task
@@ -377,30 +377,30 @@ def test_toggle_multi_caret_tasks(self):
* [ ] task 1
- [ ] sub task
+ [ ] sub task
- * [X] task 1
- - [X] sub task
- + [X] sub task
+ * [x] task 1
+ - [x] sub task
+ + [x] sub task
> * [ ] task 1
> - [ ] sub task
> + [ ] sub task
- > * [X] task 1
- > - [X] sub task
- > + [X] sub task
+ > * [x] task 1
+ > - [x] sub task
+ > + [x] sub task
"""
)
def test_toggle_selected_tasks(self):
self.setBlockText(
"""
- * [X] task 1
- - [X] sub task
- + [X] sub task
+ * [x] task 1
+ - [x] sub task
+ + [x] sub task
* [ ] task 1
- [ ] sub task
+ [ ] sub task
- > * [X] task 1
- > - [X] sub task
- > + [X] sub task
+ > * [x] task 1
+ > - [x] sub task
+ > + [x] sub task
> * [ ] task 1
> - [ ] sub task
> + [ ] sub task
@@ -413,14 +413,14 @@ def test_toggle_selected_tasks(self):
* [ ] task 1
- [ ] sub task
+ [ ] sub task
- * [X] task 1
- - [X] sub task
- + [X] sub task
+ * [x] task 1
+ - [x] sub task
+ + [x] sub task
> * [ ] task 1
> - [ ] sub task
> + [ ] sub task
- > * [X] task 1
- > - [X] sub task
- > + [X] sub task
+ > * [x] task 1
+ > - [x] sub task
+ > + [x] sub task
"""
)