{ "name": "Sublime Text Key Map", "scopeName": "source.sublimekeymap", "fileTypes": ["sublime-keymap"], "patterns": [ { "include": "#multiLineComment" }, { "include": "#lineComment" }, { "begin": "(^\\[$)", "end": "(^\\]$)", "patterns": [ { "include": "#multiLineComment" }, { "include": "#lineComment" }, { "include": "#keys" }, { "include": "#mainKeys" }, { "include": "#supportKeys" }, { "include": "#string" }, { "include": "#numericPrimitives" } ], "contentName": "meta.keybinding.collection.sublimekeymap" } ], "repository": { "keys": { "begin": "\"(keys)\": \\[", "beginCaptures": { "1": { "name": "keyword.other.sublimekeymap"} }, "end": "\\],", "patterns": [ { "begin": "(\")", "beginCaptures": { "1": { "name": "punctuation.keybinding.definition.key.sequence.start.sublimekeymap" } }, "end": "(?", "captures": { "1": { "name": "entity.other.attribute-name.key.captured.sublimekeymap" } } }, { "match": ".{1}", "comment": "XXX What's invalid for key names?", "name": "string.key.literal.sublimekeymap" } ], "contentName": "meta.key.sequence.sublimekeymap" }, { "name": "invalid.illegal.key.sequence.sublimekeymap", "match": "[^\\s,]" } ] }, "mainKeys": { "match": "\"(command|args|context|key)\":", "captures": { "1": { "name": "keyword.other.sublimekeymap" } } }, "supportKeys": { "match": "\"([A-z]+?)\":", "captures": { "1": { "name": "support.function.sublimekeymap" } } }, "string": { "begin" : "\"", "end": "(?