89 lines
2.4 KiB
JSON
89 lines
2.4 KiB
JSON
{
|
|
"scopeName": "source.noja",
|
|
"fileTypes": ["noja"],
|
|
"patterns" : [
|
|
{
|
|
"name" : "keyword.control.noja",
|
|
"match": "\\b(return|if|else|while|do|break|continue)\\b"
|
|
},
|
|
{
|
|
"match": "\\b(fun)\\b[ \\t\\n]*([a-zA-Z_][a-zA-Z0-9_]*)?\\b",
|
|
"captures": {
|
|
"1": {"name": "keyword.control.noja"},
|
|
"2": {"name": "entity.name.function"}
|
|
}
|
|
},
|
|
{
|
|
"name": "keyword.operator.word.noja",
|
|
"match": "\\b(and|or|not)\\b"
|
|
},
|
|
{
|
|
"name": "keyword.operator.noja",
|
|
"match": "(\\+|-|\\*|\\/|=|==|!=|\\>|\\<|\\>=|\\<=|\\|)"
|
|
},
|
|
{
|
|
"name": "constant.language.noja",
|
|
"match": "\\b(none|any|true|false)\\b"
|
|
},
|
|
{
|
|
"name" : "string.quoted.double.noja",
|
|
"begin": "\"",
|
|
"end" : "\"",
|
|
"patterns": [
|
|
{
|
|
"name" : "constant.character.escape.noja",
|
|
"match": "\\."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name" : "string.quoted.single.noja",
|
|
"begin": "'",
|
|
"end" : "'",
|
|
"patterns": [
|
|
{
|
|
"name" : "constant.character.escape.noja",
|
|
"match": "\\."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "constant.numeric.float.noja",
|
|
"match": "[0-9]+\\.[0-9]+"
|
|
},
|
|
{
|
|
"name": "constant.numeric.integer.noja",
|
|
"match": "[0-9]+"
|
|
},
|
|
{
|
|
"name": "storage.type.noja",
|
|
"match": "\\b(int|float|bool|[_A-Z][A-Za-z0-9_]*)\\b"
|
|
},
|
|
{
|
|
"match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)[ \\t\\n]*\\(",
|
|
"captures": {
|
|
"1": {"name": "variable.function.noja"}
|
|
}
|
|
},
|
|
{
|
|
"name": "variable.other.noja",
|
|
"match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"
|
|
},
|
|
{
|
|
"name": "comment.line.number-sign",
|
|
"match": "#.*$"
|
|
},
|
|
{
|
|
"name": "punctuation.separator.noja",
|
|
"match": "(,|:)"
|
|
},
|
|
{
|
|
"name": "punctuation.accessor.dot.noja",
|
|
"match": "\\."
|
|
},
|
|
{
|
|
"name": "punctuation.terminator.noja",
|
|
"match": ";"
|
|
}
|
|
]
|
|
} |