{ "name": "Wollok", "scopeName": "source.wollok", "patterns": [ { "include": "#general" } ], "repository": { "commentBlock": { "patterns": [ { "name": "comment.line.double-slash.source.wollok", "match": "(//).*" }, { "name": "comment.block.source.wollok", "begin": "/\\*", "end": "\\*/" } ] }, "general": { "patterns": [ { "include": "#commentBlock" }, { "include": "#operators" }, { "include": "#keywords" }, { "include": "#numbers" }, { "include": "#stringSingleQuote" }, { "include": "#stringDoubleQuote" } ] }, "keywords": { "name": "keyword.source.wollok", "match": "object|class|package|program|method|override|constructor|native|var|const|property|extends|new|if|else|elseif|this|import|null|true|false|return|throw|always|try|catch" }, "numbers": { "name": "constant.numeric.source.wollok", "match": "(?\u003c![\\d.])\\s0x[a-fA-F\\d]+|\\b\\d+(\\.\\d+)?([eE]-?\\d+)?|\\.\\d+([eE]-?\\d+)?" }, "operators": { "name": "keyword.operator.source.wollok", "match": "(\\b(and|or|not)\\b)|(\\+|-|%|#|\\*|\\/|\\^|==?|~=|\u003c=?|\u003e=?|(?\u003c!\\.)\\.{2}(?!\\.))" }, "stringDoubleQuote": { "name": "string.quoted.double.source.wollok", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.source.wollok", "match": "\\\\(\\d{1,3}|.)" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.source.wollok" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.source.wollok" } } }, "stringSingleQuote": { "name": "string.quoted.single.source.wollok", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.source.wollok", "match": "\\\\(\\d{1,3}|.)" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.source.wollok" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.source.wollok" } } } } }