1.0.0 初始版
This commit is contained in:
139
syntaxes/squirrel.tmLanguage.json
Normal file
139
syntaxes/squirrel.tmLanguage.json
Normal file
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user