{
  "name": "Demo: Task Marks ",
  "description": "Demonstrate complex task mark definitions",
  "author": "Agile Tortoise, Inc.",
  "sampleText": "# Demo: Tasks\n\n[ ] [x] Standard Tasks\n{ } {-} {x} Three State Tasks\n\n( ) ON\n( ) OFF\n\nPercent Complete: [====      ] 40%",
  "scopeName": "text.plain",
  "listCompletionDefinitions": [
    {
      "comment": "",
      "enabled": true,
      "match": "(^[ |\\t]*)((\\* \\{[ x]\\}|- \\{[ x]\\}|\\+ \\{[ x]\\}|\\* \\[[ x]\\]|- \\[[ x]\\]|\\+ \\[[ x]\\]|\\*|-|\\+|>) )(.*)",
      "captures": {
        "indent": "1",
        "prefix": "2",
        "line": "4",
        "sequence": ""
      },
      "replacements": {
        "[x]": "[ ]",
        "{x}": "{ }",
        "{-}": "{ }"
      }
    },
    {
      "comment": "",
      "enabled": true,
      "match": "(^[ |\\t]*)((\\d+)\\. (\\[[ x]\\] |\\{[ x]\\} )?)(.*)",
      "sequencePadding": "0",
      "captures": {
        "indent": "1",
        "prefix": "2",
        "line": "5",
        "sequence": "3"
      },
      "replacements": {
        "[x]": "[ ]",
        "{x}": "{ }",
        "{-}": "{ }"
      }
    }
  ],
  "rangeExtensionType": {
    "default": "lineExtended"
  },
  "listCompletion": "markdown",
  "fileExtensions": [
  ],
  "patterns": [
  ],
  "navigationPatterns": [
  ],
  "indentationPatterns": [
  ],
  "taskMarkDefinitions": [
    {
      "comment": "[ ] [x] style check boxes",
      "enabled": true,
      "match": "(\\[[ xX]\\])",
      "rangeType": "task",
      "captures": {
        "interactive": "1",
        "state": "1"
      },
      "states": [
        "[ ]",
        "[x]"
      ],
      "scopes": {
        "interactive": "text.monospace.bold"
      }
    },
    {
      "comment": "Three state marks, like { ], {-}, {x}",
      "enabled": true,
      "match": "(\\{[ -xX]\\})",
      "rangeType": "task",
      "captures": {
        "interactive": "1",
        "state": "1"
      },
      "states": [
        "{ }",
        "{-}",
        "{x}"
      ],
      "scopes": {
        "interactive": "text.monospace.bold"
      }
    },
    {
      "comment": "\"line\" type allows interactivity with the task to change text outside the task. This version looks for \"( ) ON\" or \"( ) OFF\" at the beginning of a line",
      "enabled": true,
      "match": "^([\\t ]*?)(\\( \\)) (ON|OFF)(.*)",
      "rangeType": "line",
      "captures": {
        "interactive": "2",
        "state": "3"
      },
      "states": [
        "OFF",
        "ON"
      ],
      "scopes": {
        "interactive": "text.monospace.bold.extraLarge"
      }
    },
    {
      "comment": "Progress tracker cycles through percent complete states",
      "enabled": true,
      "match": "(\\[={0,10} {0,10}\\] \\d+%)",
      "rangeType": "task",
      "captures": {
        "interactive": "1",
        "state": "1"
      },
      "states": [
        "[          ] 0%",
        "[=         ] 10%",
        "[==        ] 20%",
        "[===       ] 30%",
        "[====      ] 40%",
        "[=====     ] 50%",
        "[======    ] 60%",
        "[=======   ] 70%",
        "[========  ] 80%",
        "[========= ] 90%",
        "[==========] 100%"
      ],
      "scopes": {
        "interactive": "text.monospace.bold"
      }
    }
  ]
}