[
  [
    "start",
    [
      "comment",
      "-- ============================================="
    ]
  ],
  [
    "start",
    [
      "comment",
      "-- Author:\t\tMorgan Yarbrough"
    ]
  ],
  [
    "start",
    [
      "comment",
      "-- Create date: 4/27/2015"
    ]
  ],
  [
    "start",
    [
      "comment",
      "-- Description:\tTest procedure that shows off language features."
    ]
  ],
  [
    "start",
    [
      "comment",
      "-- \t\t\t\tIncludes non-standard folding with region comments using either"
    ]
  ],
  [
    "start",
    [
      "comment",
      "-- \t\t\t\tline comments or block comments (both are demonstrated below)."
    ]
  ],
  [
    "start",
    [
      "comment",
      "--\t\t\t\tThis mode imitates SSMS and it designed to be used with SQL Server theme."
    ]
  ],
  [
    "start",
    [
      "comment",
      "-- ============================================="
    ]
  ],
  [
    "start",
    [
      "keyword",
      "CREATE"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "PROCEDURE"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "dbo"
    ],
    [
      "text",
      "."
    ],
    [
      "identifier",
      "TestProcedure"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "start",
    [
      "comment",
      "--#region parameters"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "identifier",
      "@vint"
    ],
    [
      "text",
      " "
    ],
    [
      "storage.type",
      "INT"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "1"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "identifier",
      "@vdate"
    ],
    [
      "text",
      " "
    ],
    [
      "storage.type",
      "DATE"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "NULL"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "identifier",
      "@vdatetime"
    ],
    [
      "text",
      " "
    ],
    [
      "storage.type",
      "DATETIME"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "support.function",
      "DATEADD"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "identifier",
      "dd"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "1"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "support.function",
      "GETDATE"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "paren.rparen",
      "))"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "identifier",
      "@vvarchar"
    ],
    [
      "text",
      " "
    ],
    [
      "storage.type",
      "VARCHAR"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "support.function",
      "MAX"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "string.start",
      "'"
    ],
    [
      "string.end",
      "'"
    ]
  ],
  [
    "start",
    [
      "comment",
      "--#endregion"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "keyword",
      "AS"
    ]
  ],
  [
    "start",
    [
      "keyword",
      "BEGIN"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment.start",
      "/*"
    ],
    [
      "comment",
      "#region set statements "
    ],
    [
      "comment.end",
      "*/"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "set.statement",
      "SET NOCOUNT"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "ON"
    ],
    [
      "punctuation",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "set.statement",
      "SET XACT_ABORT"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "ON"
    ],
    [
      "punctuation",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "set.statement",
      "SET QUOTED_IDENTIFIER"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "ON"
    ],
    [
      "punctuation",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment.start",
      "/*"
    ],
    [
      "comment",
      "#endregion"
    ],
    [
      "comment.end",
      "*/"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "doc-start",
    [
      "text",
      "\t"
    ],
    [
      "comment.doc",
      "/**"
    ]
  ],
  [
    "doc-start",
    [
      "comment.doc",
      "\t * These comments will produce a fold widget"
    ]
  ],
  [
    "start",
    [
      "comment.doc",
      "\t */"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- folding demonstration"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "SET"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@vint"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "CASE"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t\t\t\t"
    ],
    [
      "keyword",
      "WHEN"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@vdate"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "IS"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "NULL"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t\t\t\t\t"
    ],
    [
      "keyword",
      "THEN"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "1"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t\t\t\t"
    ],
    [
      "keyword",
      "ELSE"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "2"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t\t\t"
    ],
    [
      "keyword",
      "END"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- another folding demonstration"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "IF"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@vint"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "1"
    ],
    [
      "text",
      " "
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "BEGIN"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ],
    [
      "keyword",
      "SET"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@vvarchar"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "string.start",
      "'"
    ],
    [
      "string",
      "one"
    ],
    [
      "string.end",
      "'"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ],
    [
      "keyword",
      "SET"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@vint"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "support.function",
      "DATEDIFF"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "identifier",
      "dd"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@vdate"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@vdatetime"
    ],
    [
      "paren.rparen",
      ")"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "END"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- this mode handles strings properly"
    ]
  ],
  [
    "string.start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "DECLARE"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@sql"
    ],
    [
      "text",
      " "
    ],
    [
      "storage.type",
      "NVARCHAR"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "constant.numeric",
      "4000"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "N"
    ],
    [
      "string.start",
      "'"
    ],
    [
      "string",
      "SELECT TOP(1) OrderID "
    ]
  ],
  [
    "string.start",
    [
      "string",
      "\t\t\t\t\t\t\t\t\tFROM Orders"
    ]
  ],
  [
    "start",
    [
      "string",
      "\t\t\t\t\t\t\t\t\tWHERE @OrderDate > GETDATE()"
    ],
    [
      "string.end",
      "'"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t\t\t\t\t\t\t"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- this mode is aware of built in stored procedures "
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "EXECUTE"
    ],
    [
      "text",
      " "
    ],
    [
      "support.storedprocedure",
      "sp_executesql"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "@sql"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- demonstrating some syntax highlighting"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "SELECT"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "Orders"
    ],
    [
      "text",
      "."
    ],
    [
      "identifier",
      "OrderID"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "identifier",
      "Customers"
    ],
    [
      "text",
      "."
    ],
    [
      "identifier",
      "CompanyName"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "support.function",
      "DATEFROMPARTS"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "support.function",
      "YEAR"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "support.function",
      "GETDATE"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "paren.rparen",
      "))"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "1"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "1"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "AS"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "FirstDayOfYear"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "FROM"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "Orders"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "constant.language",
      "INNER"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "JOIN"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "Customers"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ],
    [
      "keyword",
      "ON"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "Orders"
    ],
    [
      "text",
      "."
    ],
    [
      "identifier",
      "CustomerID"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "Customers"
    ],
    [
      "text",
      "."
    ],
    [
      "identifier",
      "CustomerID"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "WHERE"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "CompanyName"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "NOT"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "LIKE"
    ],
    [
      "text",
      " "
    ],
    [
      "string.start",
      "'"
    ],
    [
      "string",
      "%something"
    ],
    [
      "string.end",
      "'"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ],
    [
      "constant.language",
      "OR"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "CompanyName"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "IS"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "NULL"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ],
    [
      "constant.language",
      "OR"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "CompanyName"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.language",
      "IN"
    ],
    [
      "text",
      " "
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "string.start",
      "'"
    ],
    [
      "string",
      "bla"
    ],
    [
      "string.end",
      "'"
    ],
    [
      "punctuation",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "string.start",
      "'"
    ],
    [
      "string",
      "nothing"
    ],
    [
      "string.end",
      "'"
    ],
    [
      "paren.rparen",
      ")"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t\t"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- this mode includes snippets"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- place your cusor at the end of the line below and trigger auto complete (Ctrl+Space)"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "identifier",
      "createpr"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "comment",
      "-- SQL Server allows using keywords as object names (not recommended) as long as they are wrapped in brackets"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ],
    [
      "keyword",
      "DATABASE"
    ],
    [
      "text",
      " "
    ],
    [
      "comment",
      "-- keyword"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t[DATABASE] "
    ],
    [
      "comment",
      "-- not a keyword"
    ]
  ],
  [
    "start",
    [
      "text",
      "\t"
    ]
  ],
  [
    "start",
    [
      "keyword",
      "END"
    ]
  ],
  [
    "start"
  ]
]