{ "name": "Solidity", "scopeName": "source.solidity", "patterns": [ { "name": "comment", "match": "\\/\\/.*" }, { "name": "comment", "begin": "(\\/\\*)", "end": "(\\*\\/)" }, { "name": "keyword.control", "match": "\\b(event|enum)\\s+([A-Za-z_]\\w*)\\b", "captures": { "2": { "name": "support.function" } } }, { "name": "keyword.control", "match": "\\b(contract|interface|library|using|struct|function|modifier)\\s+([A-Za-z_]\\w*)(?:\\s+is\\s+((?:[A-Za-z_][\\,\\s]*)*))?\\b", "captures": { "2": { "name": "entity.name.function" }, "3": { "name": "entity.name.function" } } }, { "match": "\\b(address|string|bytes\\d*|int\\d*|uint\\d*|bool|u?fixed\\d+x\\d+)\\b(?:\\s+(?:indexed\\s+)?([A-Za-z_]\\w*)\\s*[,\\)])?", "captures": { "1": { "name": "constant.language" }, "2": { "name": "variable.parameter" } } }, { "match": "\\b(mapping)\\s*\\((.*)\\s+=\u003e\\s+(.*)\\)(\\s+(?:private|public|internal|external|inherited))?\\s+([A-Za-z_]\\w*)\\b", "captures": { "1": { "name": "constant.language" }, "2": { "name": "constant.language" }, "3": { "name": "constant.language" }, "4": { "name": "keyword.control" } } }, { "name": "constant.language", "match": "\\b(true|false)\\b" }, { "name": "keyword.control", "match": "\\b(var|import|function|constant|view|pure|storage|memory|if|else|for|while|do|break|continue|returns?|private|public|internal|external|inherited|this|suicide|selfdestruct|new|is|throw|revert|assert|require|\\_)\\b" }, { "match": "\\b([A-Za-z_]\\w+)(\\s+(?:private|public|internal|external|inherited))?\\s+([A-Za-z_]\\w*)\\;", "captures": { "1": { "name": "constant.language" }, "2": { "name": "keyword.control" } } }, { "name": "keyword.control", "match": "(=|!|\u003e|\u003c|\\||\u0026|\\?|:|\\^|~|\\*|\\+|-|\\/|\\%)" }, { "match": "\\b(msg|block|tx)\\.([A-Za-z_]\\w*)\\b", "captures": { "1": { "name": "constant.language" }, "2": { "name": "constant.language" } } }, { "match": "\\b([A-Za-z_]\\w*)\\s*\\(", "captures": { "1": { "name": "support.type" } } }, { "name": "string.quoted", "match": "([\\\"\\'].*?[\\\"\\'])" }, { "name": "constant.numeric", "match": "\\b(\\d+)\\b" }, { "name": "constant.numeric", "match": "\\b(0[xX][a-fA-F0-9]+)\\b" } ] }