{
  "Highlighter": {
    "Sample": [
      "# Filename: Hello.ps1\r\n",
      "Write-Host\r\n",
      "Write-Host 'Hello, World!'\r\n",
      "# end of script"
    ],
    "MainRules": {
      "Attributes": {
        "Element": "Editor"
      },
      "SubRules": {
        "Range": [
          {
            "Type": "BlockComment",
            "Attributes": {
              "Element": "Comment"
            },
            "TokenRange": {
              "Open": "<#",
              "Close": "#>"
            }
          },
          {
            "Type": "LineComment",
            "Attributes": {
              "Element": "Comment"
            },
            "Properties": {
              "CloseOnEndOfLine": true
            },
            "TokenRange": {
              "Open": "#"
            }
          },
          {
            "Type": "String",
            "Attributes": {
              "Element": "String"
            },
            "Properties": {
              "CloseOnEndOfLine": true
            },
            "TokenRange": {
              "Open": "\"",
              "Close": "\""
            },
            "SubRules": {
              "Range": [
                {
                  "Type": "String",
                  "Attributes": {
                    "Element": "String"
                  },
                  "Properties": {
                    "CloseOnEndOfLine": true,
                    "CloseOnTerm": true
                  },
                  "TokenRange": {
                    "Open": "\\\"",
                    "Close": ""
                  }
                },
                {
                  "Type": "String",
                  "Attributes": {
                    "Element": "String"
                  },
                  "Properties": {
                    "CloseOnEndOfLine": true,
                    "CloseOnTerm": true
                  },
                  "TokenRange": {
                    "Open": "\\\\",
                    "Close": ""
                  }
                }
              ]
            }
          },
          {
            "Type": "String",
            "Attributes": {
              "Element": "String"
            },
            "Properties": {
              "CloseOnEndOfLine": true
            },
            "TokenRange": {
              "Open": "'",
              "Close": "'"
            }
          },
          {
            "Type": "Method",
            "Attributes": {
              "Element": "MethodName"
            },
            "Properties": {
              "AlternativeClose": [
                "("
              ]
            },
            "TokenRange": {
              "Open": "function",
              "Close": "{"
            },
            "SubRules": {
              "KeyList": [
                {
                  "Type": "Symbol",
                  "Words": [
                    "{",
                    "("
                  ],
                  "Attributes": {
                    "Element": "Symbol"
                  }
                }
              ]
            }
          },
          {
            "Type": "Variable",
            "Attributes": {
              "Element": "Attribute"
            },
            "Properties": {
              "CloseOnTerm": true,
              "CloseOnEndOfLine": true
            },
            "TokenRange": {
              "Open": "$"
            }
          },
          {
            "Type": "HexNumber",
            "Attributes": {
              "Element": "HexNumber"
            },
            "AllowedCharacters": "0123456789abcdefABCDEF",
            "Properties": {
              "CloseOnTerm": true,
              "CloseOnEndOfLine": true
            },
            "TokenRange": {
              "Open": "0x",
              "OpenBreakType": "Any"
            }
          }
        ],
        "KeyList": [
          {
            "Type": "ReservedWord",
            "Words": [
              "begin",
              "break",
              "catch",
              "class",
              "continue",
              "data",
              "do",
              "dynamicparam",
              "else",
              "elseif",
              "end",
              "exit",
              "filter",
              "finally",
              "for",
              "foreach",
              "from",
              "function",
              "if",
              "in",
              "inlinescript",
              "hidden",
              "parallel",
              "param",
              "process",
              "return",
              "sequence",
              "switch",
              "throw",
              "trap",
              "try",
              "until",
              "while",
              "workflow"
            ],
            "Attributes": {
              "Element": "ReservedWord"
            }
          },
          {
            "Type": "Symbol",
            "Words": [
              ".",
              ",",
              "=",
              "+",
              "-",
              "*",
              "/",
              "%",
              "(",
              ")",
              "[",
              "]",
              "{",
              "}",
              "<",
              ">",
              ":",
              ";",
              "@",
              "-shl",
              "-shr"
            ],
            "Attributes": {
              "Element": "Symbol"
            }
          }
        ],
        "Set": [
          {
            "Type": "Numbers",
            "Symbols": ".0123456789",
            "Attributes": {
              "Element": "Number"
            }
          }
        ]
      }
    }
  },
  "CodeFolding": {
    "Ranges": [
      {
        "Options": {
          "StringEscapeChar": "\\"
        },
        "SkipRegion": [
          {
            "OpenToken": "'",
            "CloseToken": "'",
            "RegionType": "SingleLineString"
          },
          {
            "OpenToken": "\"",
            "CloseToken": "\"",
            "RegionType": "SingleLineString"
          },
          {
            "OpenToken": "//",
            "RegionType": "SingleLine"
          },
          {
            "OpenToken": "/*",
            "CloseToken": "*/",
            "RegionType": "MultiLine"
          }
        ],
        "FoldRegion": [
          {
            "OpenToken": "{",
            "CloseToken": "}",
            "Properties": {
              "BreakCharFollows": false
            }
          }
        ]
      }
    ]
  },
  "MatchingPair": {
    "Pairs": [
      {
        "OpenToken": "'",
        "CloseToken": "'"
      },
      {
        "OpenToken": "\"",
        "CloseToken": "\""
      },
      {
        "OpenToken": "(",
        "CloseToken": ")"
      },
      {
        "OpenToken": "[",
        "CloseToken": "]"
      },
      {
        "OpenToken": "{",
        "CloseToken": "}"
      }
    ]
  },
  "CompletionProposal": {
    "SkipRegion": [
      {
        "OpenToken": "'",
        "CloseToken": "'",
        "RegionType": "SingleLineString"
      },
      {
        "OpenToken": "\"",
        "CloseToken": "\"",
        "RegionType": "SingleLineString"
      },
      {
        "OpenToken": "//",
        "RegionType": "SingleLine"
      },
      {
        "OpenToken": "/*",
        "CloseToken": "*/",
        "RegionType": "MultiLine"
      }
    ]
  }
}