{ "fileTypes": [ "pro" ], "firstLineMatch": "-[*]-( Mode:)? IDL -[*]-", "isDisabled": false, "keyEquivalent": "^~@i", "name": "IDL", "patterns": [ { "captures": { "1": { "name": "storage.type.idl" }, "2": { "name": "storage.type.idl" }, "3": { "name": "variable.parameter.output.function.idl" }, "4": { "name": "variable.parameter.output.function.idl" }, "5": { "name": "entity.name.function.idl" } }, "match": "(?ix)\n(?=(function|pro)\\b) # borrowed from ruby bundle\n(?<=^|\\s)(function|pro)\\s+ # the function keyword\n(?>\\[(.*)\\])? # match various different combination of output arguments\n((?>[a-zA-Z_][a-zA-Z_$0-9]*))?\n(?>\\s*=\\s*)?\n((?>[a-zA-Z_][a-zA-Z_$0-9]*(::[a-zA-Z_][a-zA-Z_$0-9]*)?(?>[?!]|=(?!>))? )) # the function name\n", "name": "meta.function.idl" }, { "include": "#constants_override" }, { "include": "#brackets" }, { "include": "#curlybrackets" }, { "include": "#float" }, { "include": "#integer" }, { "include": "#string" }, { "include": "#operators" }, { "include": "#all_idl_keywords" }, { "include": "#all_idl_comments" }, { "include": "#variable" } ], "repository": { "all_idl_comments": { "patterns": [ { "captures": { "1": { "name": "meta.toc-list.banner.divider.idl" } }, "match": "^;(=)\\s*$\\n", "name": "comment.line.banner.divider.idl" }, { "captures": { "1": { "name": "meta.toc-list.banner.line.idl" } }, "match": "^\\s*;=\\s*(.*?)\\s*$\\n?", "name": "comment.line.banner.idl" }, { "begin": ";", "beginCaptures": { "0": { "name": "punctuation.definition.comment.idl" } }, "end": "\\n", "name": "comment.line.semicolon.idl" } ] }, "all_idl_keywords": { "patterns": [ { "include": "#idl_keyword_control" }, { "include": "#idl_keyword_operator" }, { "include": "#idl_operator" }, { "include": "#idl_storage_type" }, { "include": "#idl_sysvar" }, { "include": "#idl_support_function" } ] }, "allofem": { "patterns": [ { "include": "#curlybrackets" }, { "include": "#end_in_parens" }, { "include": "#brackets" }, { "include": "#string" }, { "include": "#all_idl_keywords" }, { "include": "#all_idl_comments" }, { "include": "#variable" }, { "include": "#float" }, { "include": "#integer" } ] }, "brackets": { "begin": "\\[", "beginCaptures": { "0": { "name": "meta.brackets.idl" } }, "contentName": "meta.brackets.idl", "end": "\\]", "endCaptures": { "0": { "name": "meta.brackets.idl" } }, "patterns": [ { "include": "#allofem" } ] }, "end_in_parens": { "comment": "end as operator symbol", "match": "\\bend\\b", "name": "keyword.operator.symbols.idl" }, "escaped_quote": { "patterns": [ { "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", "name": "constant.character.escape.idl" }, { "match": "\\\\.", "name": "invalid.illegal.unknown-escape.idl" } ] }, "float": { "comment": "Valid numbers: .1, 1.1, .1e1, 1.1e1, 1e1, .1d1, 1.1d1, 1d1", "match": "(?i)\\b(\\.\\d+|\\d+\\.?\\d*)([ed][\\+-]?\\d*)?\\b", "name": "constant.numeric.idl" }, "idl_keyword_control": { "comment": "Control keywords", "match": "(?i)(?|<|&&|\\?|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^)", "name": "keyword.operator.symbols.idl" }, "idl_storage_type": { "comment": "Storage types", "match": "(?i)(?