{ "name": "Ceylon", "scopeName": "source.ceylon", "patterns": [ { "include": "#comments" }, { "name": "comment.singleline.ceylon", "match": "//.*$" }, { "name": "comment.shebang.ceylon", "match": "^#!/.*$" }, { "name": "keyword.control.ceylon", "match": "\\b(assembly|module|package|import|alias|class|interface|object|given|value|assign|void|function|new|of|extends|satisfies|adapts|abstracts|in|out|return|break|continue|throw|assert|dynamic|if|else|switch|case|for|while|try|catch|finally|then|let|this|outer|super|is|exists|nonempty)\\b" }, { "name": "keyword.other.ceylon", "match": "\\b(doc|by|license|see|throws|tagged|shared|abstract|formal|default|actual|variable|late|native|deprecated|final|sealed|annotation|suppressWarnings|static)\\b" }, { "name": "entity.name.class.ceylon", "match": "([A-Z][a-zA-Z0-9_]*|\\\\I[a-zA-Z0-9_]+)" }, { "name": "variable.other.ceylon", "match": "([a-z][a-zA-Z0-9_]*|\\\\i[a-zA-Z0-9_]+)" }, { "name": "string.verbatim.ceylon", "begin": "\"\"\"", "end": "\"\"\"" }, { "name": "string.ceylon", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.ceylon", "match": "\\\\." } ] }, { "name": "string.template.head.ceylon", "begin": "\"", "end": "\"|(``)", "patterns": [ { "name": "constant.character.escape.ceylon", "match": "\\\\." } ] }, { "name": "string.template.midOrtail.ceylon", "begin": "``", "end": "\"|``" }, { "name": "constant.numeric.binary.ceylon", "match": "\\$(([01]+(_[01]+)+)|[01]+)" }, { "name": "constant.numeric.hexa.ceylon", "match": "#(([0-9ABCDEF]+(_[0-9ABCDEF]+)+)|[0-9ABCDEF]+)" }, { "name": "constant.numeric.floating.ceylon", "match": "-?(([0-9]+(_[0-9]+)+)|[0-9]+)\\.(([0-9]+(_[0-9]+)+)|[0-9]+)(([eE]-?(([0-9]+(_[0-9]+)+)|[0-9]+))|[kmgtpKMGTP])?" }, { "name": "constant.numeric.decimal.ceylon", "match": "-?(([0-9]+(_[0-9]+)+)|[0-9]+)[kmgtpKMGTP]?" } ], "repository": { "comments": { "name": "comment.multiline.ceylon", "begin": "/\\*", "end": "\\*/", "patterns": [ { "include": "#comments" } ] } } }