{ "fileTypes": [ "mq5", "mq4", "mqh" ], "name": "MQL5", "patterns": [ { "include": "#comments" }, { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.mql5" } }, "comment": "double-quoted strings", "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.mql5" } }, "name": "string.quoted.double.mql5", "patterns": [ { "include": "#escape_characters" } ] }, { "begin": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.mql5" } }, "comment": "single-quoted strings", "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.string.end.mql5" } }, "name": "string.quoted.single.mql5", "patterns": [ { "include": "#escape_characters" } ] }, { "begin": "(#include)(?:\\s*)(<)", "beginCaptures": { "1": { "name": "keyword.control.preprocessor.mql5" }, "2": { "name": "punctuation.definition.string.begin.mql5" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.definition.string.end.mql5" } }, "name": "string.other.mql5" }, { "comment": "preprocessor directives", "match": "#\\b(include|package|define|undef|import|property|resource|ifdef|ifndef|else|endif)\\b", "name": "keyword.control.preprocessor.mql5" }, { "comment": "access modifiers", "match": "\\b(const|private|protected|public|virtual|export)\\b", "name": "storage.modifier.mql5" }, { "comment": "memory classes", "match": "\\b(extern|input|static|sinput)\\b", "name": "storage.input.mql5" }, { "comment": "data types", "match": "\\b(char|short|int|long|uchar|ushort|uint|ulong|bool|color|datetime|string|double|float|enum|struct|class|interface|void)\\b", "name": "storage.type.mql5" }, { "comment": "control operators", "match": "\\b(if|else|switch|case|default|break|continue|for|do|while|new|delete|return)\\b", "name": "keyword.control.mql5" }, { "comment": "other keywords", "match": "\\b(operator|sizeof|this|template|typename|typedef|trash|defined|unsigned|dynamic_cast|override|final|__DATE__|__DATETIME__|__FILE__|__FUNCSIG__|__FUNCTION__|__LINE__|__PATH__)\\b", "name": "keyword.other.mql5" }, { "comment": "operators", "match": "=|\\+|\\-|<|>|!|\\*|/|%|&|\\||~|\\^|,|:|\\?|;", "name": "punctuation.definition.operator.mql5" }, { "match": "\\(|\\)|\\[|\\]", "name": "punctuation.definition.brackets.mql5" }, { "comment": "MQL5 and MQL4 built-in functions and event handlers", "match": "(?