{ "name": "Squirrel", "scopeName": "source.squirrel", "fileTypes": ["nut"], "patterns": [ { "include": "#keywords" }, { "include": "#strings" }, { "include": "#comments" }, { "include": "#numbers" }, { "include": "#operators" }, { "include": "#functions" }, { "include": "#classes" }, { "include": "#constants" }, { "include": "#variables" } ], "repository": { "keywords": { "patterns": [ { "name": "keyword.control.squirrel", "match": "\\b(if|else|while|for|foreach|do|switch|case|default|break|continue|return|yield|try|catch|throw|resume)\\b" }, { "name": "keyword.other.squirrel", "match": "\\b(function|local|let|const|static|enum|class|extends|constructor|typeof|instanceof|in|delete|delegate|vargc|vargv|tailcall|clone|weakref|null|true|false)\\b" } ] }, "strings": { "patterns": [ { "name": "string.quoted.double.squirrel", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.squirrel", "match": "\\\\." } ] }, { "name": "string.quoted.single.squirrel", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.squirrel", "match": "\\\\." } ] } ] }, "comments": { "patterns": [ { "name": "comment.line.double-slash.squirrel", "match": "//.*$" }, { "name": "comment.block.squirrel", "begin": "/\\*", "end": "\\*/" } ] }, "numbers": { "patterns": [ { "name": "constant.numeric.squirrel", "match": "\\b(0[xX][0-9a-fA-F]+|\\d+\\.\\d+([eE][+-]?\\d+)?|\\d+)\\b" } ] }, "operators": { "patterns": [ { "name": "keyword.operator.squirrel", "match": "(\\+\\+|--|<<|>>|<=|>=|==|!=|&&|\\|\\||\\+=|-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\+|-|\\*|/|%|&|\\||\\^|~|<|>|!|=|\\.|\\?|:|\\[|\\]|\\(|\\)|\\{|\\}|,|;)" } ] }, "functions": { "patterns": [ { "name": "entity.name.function.squirrel", "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=\\()" } ] }, "classes": { "patterns": [ { "name": "entity.name.type.class.squirrel", "match": "\\b([A-Z][a-zA-Z0-9_]*)\\b" } ] }, "constants": { "patterns": [ { "name": "constant.language.squirrel", "match": "\\b(null|true|false)\\b" }, { "name": "constant.numeric.squirrel", "match": "\\b(PI|E|RAND_MAX)\\b" } ] }, "variables": { "patterns": [ { "name": "variable.other.squirrel", "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b" } ] } } }