{ "name": "MATLAB", "scopeName": "source.matlab", "patterns": [ { "include": "#all_before_command_dual" }, { "include": "#command_dual" }, { "include": "#all_after_command_dual" } ], "repository": { "all_after_command_dual": { "patterns": [ { "include": "#string" }, { "include": "#line_continuation" }, { "include": "#comments" }, { "include": "#conjugate_transpose" }, { "include": "#transpose" }, { "include": "#constants" }, { "include": "#variables" }, { "include": "#numbers" }, { "include": "#operators" } ] }, "all_before_command_dual": { "patterns": [ { "include": "#classdef" }, { "include": "#function" }, { "include": "#blocks" }, { "include": "#control_statements" }, { "include": "#global_persistent" }, { "include": "#parens" }, { "include": "#square_brackets" }, { "include": "#indexing_curly_brackets" }, { "include": "#curly_brackets" } ] }, "blocks": { "patterns": [ { "name": "meta.for.matlab", "begin": "\\s*(?:^|[\\s,;])(for)\\b", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "keyword.control.for.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.for.matlab" } } }, { "name": "meta.if.matlab", "begin": "\\s*(?:^|[\\s,;])(if)\\b", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "name": "meta.elseif.matlab", "match": "(\\s*)(?:^|[\\s,;])(elseif)\\b(.*)$\\n?", "end": "^", "captures": { "2": { "name": "keyword.control.elseif.matlab" }, "3": { "patterns": [ { "include": "$self" } ] } } }, { "name": "meta.else.matlab", "match": "(\\s*)(?:^|[\\s,;])(else)\\b(.*)?$\\n?", "end": "^", "captures": { "2": { "name": "keyword.control.else.matlab" }, "3": { "patterns": [ { "include": "$self" } ] } } }, { "include": "$self" } ], "beginCaptures": { "1": { "name": "keyword.control.if.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.if.matlab" }, "2": { "patterns": [ { "include": "$self" } ] } } }, { "name": "meta.parfor.matlab", "begin": "\\s*(?:^|[\\s,;])(parfor)\\b", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "name": "meta.parfor-quantity.matlab", "begin": "\\G(?!$)", "end": "$\\n?", "patterns": [ { "include": "$self" } ] }, { "include": "$self" } ], "beginCaptures": { "1": { "name": "keyword.control.for.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.for.matlab" } } }, { "name": "meta.spmd.matlab", "begin": "\\s*(?:^|[\\s,;])(spmd)\\b", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "name": "meta.spmd-statement.matlab", "begin": "\\G(?!$)", "end": "$\\n?", "patterns": [ { "include": "$self" } ] }, { "include": "$self" } ], "beginCaptures": { "1": { "name": "keyword.control.spmd.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.spmd.matlab" } } }, { "name": "meta.switch.matlab", "begin": "\\s*(?:^|[\\s,;])(switch)\\b", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "name": "meta.case.matlab", "match": "(\\s*)(?:^|[\\s,;])(case)\\b(.*)$\\n?", "end": "^", "captures": { "2": { "name": "keyword.control.case.matlab" }, "3": { "patterns": [ { "include": "$self" } ] } } }, { "name": "meta.otherwise.matlab", "match": "(\\s*)(?:^|[\\s,;])(otherwise)\\b(.*)?$\\n?", "end": "^", "captures": { "2": { "name": "keyword.control.otherwise.matlab" }, "3": { "patterns": [ { "include": "$self" } ] } } }, { "include": "$self" } ], "beginCaptures": { "1": { "name": "keyword.control.switch.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.switch.matlab" } } }, { "name": "meta.try.matlab", "begin": "\\s*(?:^|[\\s,;])(try)\\b", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "name": "meta.catch.matlab", "match": "(\\s*)(?:^|[\\s,;])(catch)\\b(.*)?$\\n?", "end": "^", "captures": { "2": { "name": "keyword.control.catch.matlab" }, "3": { "patterns": [ { "include": "$self" } ] } } }, { "include": "$self" } ], "beginCaptures": { "1": { "name": "keyword.control.try.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.try.matlab" } } }, { "name": "meta.while.matlab", "begin": "\\s*(?:^|[\\s,;])(while)\\b", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "keyword.control.while.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.while.matlab" } } } ] }, "braced_validator_list": { "begin": "\\s*({)\\s*", "end": "(})", "patterns": [ { "include": "#braced_validator_list" }, { "include": "#validator_strings" }, { "include": "#line_continuation" }, { "match": "([^{}}'\"\\.]+)", "captures": { "1": { "name": "storage.type.matlab" } } }, { "name": "storage.type.matlab", "match": "\\." } ], "beginCaptures": { "1": { "name": "storage.type.matlab" } }, "endCaptures": { "1": { "name": "storage.type.matlab" } } }, "classdef": { "patterns": [ { "name": "meta.class.matlab", "begin": "(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(classdef)\n\t\t\t\t\t\t\t\\b\\s*\n\t\t\t\t\t\t\t(.*)\n\t\t\t\t\t", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "name": "meta.properties.matlab", "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(properties)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "include": "#validators" }, { "include": "$self" } ], "beginCaptures": { "2": { "name": "keyword.control.properties.matlab" }, "3": { "patterns": [ { "name": "variable.parameter.properties.matlab", "match": "[a-zA-Z][a-zA-Z0-9_]*" }, { "begin": "=\\s*", "end": ",|(?=\\))", "patterns": [ { "name": "constant.language.boolean.matlab", "match": "true|false" }, { "name": "constant.language.access.matlab", "match": "public|protected|private" } ] } ] } }, "endCaptures": { "1": { "name": "keyword.control.end.properties.matlab" } } }, { "name": "meta.methods.matlab", "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(methods)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "include": "$self" } ], "beginCaptures": { "2": { "name": "keyword.control.methods.matlab" }, "3": { "patterns": [ { "name": "variable.parameter.methods.matlab", "match": "[a-zA-Z][a-zA-Z0-9_]*" }, { "begin": "=\\s*", "end": ",|(?=\\))", "patterns": [ { "name": "constant.language.boolean.matlab", "match": "true|false" }, { "name": "constant.language.access.matlab", "match": "public|protected|private" } ] } ] } }, "endCaptures": { "1": { "name": "keyword.control.end.methods.matlab" } } }, { "name": "meta.events.matlab", "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(events)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "include": "$self" } ], "beginCaptures": { "2": { "name": "keyword.control.events.matlab" }, "3": { "patterns": [ { "name": "variable.parameter.events.matlab", "match": "[a-zA-Z][a-zA-Z0-9_]*" }, { "begin": "=\\s*", "end": ",|(?=\\))", "patterns": [ { "name": "constant.language.boolean.matlab", "match": "true|false" }, { "name": "constant.language.access.matlab", "match": "public|protected|private" } ] } ] } }, "endCaptures": { "1": { "name": "keyword.control.end.events.matlab" } } }, { "name": "meta.enumeration.matlab", "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(enumeration)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "include": "$self" } ], "beginCaptures": { "2": { "name": "keyword.control.enumeration.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.enumeration.matlab" } } }, { "include": "$self" } ], "beginCaptures": { "2": { "name": "storage.type.class.matlab" }, "3": { "patterns": [ { "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\t \\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\t\t\t# Class name\n\t\t\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t# Optional inheritance\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t(\u003c)\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t([^%]*)\n\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\\s*($|(?=(%|...)).*)\n\t\t\t\t\t\t\t\t\t", "captures": { "1": { "patterns": [ { "name": "variable.parameter.class.matlab", "match": "[a-zA-Z][a-zA-Z0-9_]*" }, { "begin": "=\\s*", "end": ",|(?=\\))", "patterns": [ { "name": "constant.language.boolean.matlab", "match": "true|false" }, { "include": "#string" } ] } ] }, "2": { "name": "meta.class-declaration.matlab" }, "3": { "name": "entity.name.section.class.matlab" }, "4": { "name": "keyword.operator.other.matlab" }, "5": { "patterns": [ { "name": "entity.other.inherited-class.matlab", "match": "[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*" }, { "name": "keyword.operator.other.matlab", "match": "\u0026" } ] }, "6": { "patterns": [ { "include": "$self" } ] } } } ] } }, "endCaptures": { "1": { "name": "keyword.control.end.class.matlab" } } } ] }, "command_dual": { "match": "^\\s*((?# A\u003e )([b-df-hk-moq-zA-HJ-MO-Z]\\w*|a|an|a([A-Za-mo-z0-9_]\\w*|n[A-Za-rt-z0-9_]\\w*|ns\\w+)|e|ep|e([A-Za-oq-z0-9_]\\w*|p[A-Za-rt-z0-9_]\\w*|ps\\w+)|in|i([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|I|In|I([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|j\\w+|N|Na|N([A-Zb-z0-9_]\\w*|a[A-MO-Za-z0-9_]\\w*|aN\\w+)|n|na|nar|narg|nargi|nargo|nargou|n([A-Zb-z0-9_]\\w*|a([A-Za-mo-qs-z0-9_]\\w*|n\\w+|r([A-Za-fh-z0-9_]\\w*|g([A-Za-hj-nq-z0-9_]\\w*|i([A-Za-mo-z0-9_]\\w*|n\\w+)|o([A-Za-tv-z0-9_]\\w*|u([A-Za-su-z]\\w*|t\\w+))))))|p|p[A-Za-hj-z0-9_]\\w*|pi\\w+)(?# \u003cA )\\s+(((?# B\u003e )([^\\s;,%()=.{\u0026|~\u003c\u003e:+\\-*/\\\\@^'\"]|(?=')|(?=\"))(?# \u003cB )|(?# C\u003e )(\\.\\^|\\.\\*|\\./|\\.\\\\|\\.'|\\.\\(|\u0026\u0026|==|\\|\\||\u0026(?=[^\u0026])|\\|(?=[^\\|])|~=|\u003c=|\u003e=|~(?!=)|\u003c(?!=)|\u003e(?!=)|:|\\+|-|\\*|/|\\\\|@|\\^)(?# \u003cC )(?# D\u003e )([^\\s]|\\s*(?=%)|\\s+$|\\s+(,|;|\\)|}|\\]|\u0026|\\||\u003c|\u003e|=|:|\\*|/|\\\\|\\^|@|(\\.[^\\d.]|\\.\\.[^.])))(?# \u003cD )|(?# E\u003e )(\\.[^^*/\\\\'(\\sA-Za-z])(?# \u003cE ))(?# F\u003e )([^%]|'[^']*'|\"[^\"]*\")*(?# \u003cF )|(?# X\u003e )(\\.(?=\\s)|\\.[A-Za-z]|(?={))(?# \u003cX )(?# Y\u003e )([^(=\\'\"%]|==|'[^']*'|\"[^\"]*\"|\\(|\\([^)%]*\\)|\\[|\\[[^\\]%]*\\]|{|{[^}%]*})*(\\.\\.\\.[^%]*)?((?=%)|$)(?# \u003cY )))(%.*)?$", "captures": { "1": { "name": "string.interpolated.matlab" }, "2": { "name": "variable.other.command.matlab" }, "28": { "name": "comment.line.percentage.matlab" } } }, "comment_block": { "name": "comment.block.percentage.matlab", "begin": "(^[\\s]*)%\\{[^\\n\\S]*+\\n", "end": "^[\\s]*%\\}[^\\n\\S]*+(?:\\n|$)", "patterns": [ { "include": "#comment_block" }, { "match": "^[^\\n]*\\n" } ], "beginCaptures": { "1": { "name": "punctuation.definition.comment.matlab" } } }, "comments": { "patterns": [ { "begin": "(^[ \\t]+)?(?=%%\\s)", "end": "(?!\\G)", "patterns": [ { "name": "comment.line.double-percentage.matlab", "begin": "%%", "end": "\\n", "patterns": [ { "contentName": "meta.cell.matlab", "begin": "\\G[^\\S\\n]*(?![\\n\\s])", "end": "(?=\\n)" } ], "beginCaptures": { "0": { "name": "punctuation.definition.comment.matlab" } } } ], "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.matlab" } } }, { "include": "#comment_block" }, { "begin": "(^[ \\t]+)?(?=%)", "end": "(?!\\G)", "patterns": [ { "name": "comment.line.percentage.matlab", "begin": "%", "end": "\\n", "beginCaptures": { "0": { "name": "punctuation.definition.comment.matlab" } } } ], "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.matlab" } } } ] }, "conjugate_transpose": { "name": "keyword.operator.transpose.matlab", "match": "((?\u003c=[^\\s])|(?\u003c=\\])|(?\u003c=\\))|(?\u003c=\\}))'" }, "constants": { "name": "constant.language.matlab", "match": "(?\u003c!\\.)\\b(eps|false|Inf|inf|intmax|intmin|namelengthmax|NaN|nan|on|off|realmax|realmin|true|pi)\\b" }, "control_statements": { "name": "meta.control.matlab", "match": "\\s*(?:^|[\\s,;])(break|continue|return)\\b", "captures": { "1": { "name": "keyword.control.matlab" } } }, "curly_brackets": { "begin": "\\{", "end": "\\}", "patterns": [ { "include": "#end_in_parens" }, { "include": "#all_before_command_dual" }, { "include": "#all_after_command_dual" }, { "include": "#end_in_parens" }, { "include": "#block_keywords" } ] }, "end_in_parens": { "name": "keyword.operator.symbols.matlab", "match": "\\bend\\b" }, "function": { "patterns": [ { "name": "meta.function.matlab", "begin": "(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(function)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t\t\t\t\t\t# Optional\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t(\\[) ([^\\]]*) (\\])\n\t\t\t\t\t\t\t\t | ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s* = \\s*\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*)\t# Function name\n\t\t\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t\t\t\t\t\t# Trailing space\n\t\t\t\t\t\t", "end": "\\s*(?:^|[\\s,;])(end)\\b(\\s*\\n)?", "patterns": [ { "name": "meta.arguments.function.matlab", "begin": "\\G\\(", "end": "\\)", "patterns": [ { "include": "#line_continuation" }, { "name": "variable.parameter.input.matlab", "match": "\\w+" } ] }, { "name": "meta.arguments.matlab", "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(arguments)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", "end": "\\s*(?:^|[\\s,;])(end)\\b", "patterns": [ { "include": "#validators" }, { "include": "$self" } ], "beginCaptures": { "2": { "name": "keyword.control.arguments.matlab" }, "3": { "patterns": [ { "name": "variable.parameter.arguments.matlab", "match": "[a-zA-Z][a-zA-Z0-9_]*" } ] } }, "endCaptures": { "1": { "name": "keyword.control.end.arguments.matlab" } } }, { "include": "$self" } ], "beginCaptures": { "2": { "name": "storage.type.function.matlab" }, "3": { "name": "punctuation.definition.arguments.begin.matlab" }, "4": { "patterns": [ { "name": "variable.parameter.output.matlab", "match": "\\w+" } ] }, "5": { "name": "punctuation.definition.arguments.end.matlab" }, "6": { "name": "variable.parameter.output.function.matlab" }, "7": { "name": "entity.name.function.matlab" } }, "endCaptures": { "1": { "name": "keyword.control.end.function.matlab" } } } ] }, "global_persistent": { "name": "meta.globalpersistent.matlab", "match": "^\\s*(global|persistent)\\b", "captures": { "1": { "name": "keyword.control.globalpersistent.matlab" } } }, "indexing_curly_brackets": { "begin": "([a-zA-Z][a-zA-Z0-9_\\.]*\\s*)\\{", "end": "(\\}|(?\u003c!\\.\\.\\.).\\n)", "patterns": [ { "include": "#end_in_parens" }, { "include": "#all_before_command_dual" }, { "include": "#all_after_command_dual" }, { "include": "#end_in_parens" }, { "include": "#block_keywords" } ], "beginCaptures": { "1": { "patterns": [ { "include": "$self" } ] } } }, "line_continuation": { "name": "meta.linecontinuation.matlab", "match": "(\\.\\.\\.)(.*)$", "captures": { "1": { "name": "keyword.operator.symbols.matlab" }, "2": { "name": "comment.line.continuation.matlab" } } }, "numbers": { "name": "constant.numeric.matlab", "match": "(?\u003c=[\\s\\-\\+\\*\\/\\\\=:\\[\\(\\{,]|^)\\d*\\.?\\d+([eE][+-]?\\d)?([0-9\u0026\u0026[^\\.]])*(i|j)?\\b" }, "operators": { "name": "keyword.operator.symbols.matlab", "match": "(?\u003c=\\s)(==|~=|\u003e|\u003e=|\u003c|\u003c=|\u0026|\u0026\u0026|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^)(?=\\s)" }, "parens": { "begin": "\\(", "end": "(\\)|(?\u003c!\\.\\.\\.).\\n)", "patterns": [ { "include": "#end_in_parens" }, { "include": "#all_before_command_dual" }, { "include": "#all_after_command_dual" }, { "include": "#block_keywords" } ] }, "square_brackets": { "begin": "\\[", "end": "\\]", "patterns": [ { "include": "#all_before_command_dual" }, { "include": "#all_after_command_dual" }, { "include": "#block_keywords" } ] }, "string": { "patterns": [ { "match": "^\\s*((!).*$\\n?)", "captures": { "1": { "name": "string.interpolated.matlab" }, "2": { "name": "punctuation.definition.string.begin.matlab" } } }, { "name": "string.quoted.single.matlab", "begin": "((?\u003c=(\\[|\\(|\\{|=|\\s|;|:|,|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'", "end": "'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))", "patterns": [ { "name": "constant.character.escape.matlab", "match": "''" }, { "name": "invalid.illegal.unescaped-quote.matlab", "match": "'(?=.)" }, { "name": "constant.character.escape.matlab", "match": "((\\%([\\+\\-0]?\\d{0,3}(\\.\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\%\\%|\\\\(b|f|n|r|t|\\\\))" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.matlab" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.matlab" } } }, { "name": "string.quoted.double.matlab", "begin": "((?\u003c=(\\[|\\(|\\{|=|\\s|;|:|,|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"", "end": "\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))", "patterns": [ { "name": "constant.character.escape.matlab", "match": "\"\"" }, { "name": "invalid.illegal.unescaped-quote.matlab", "match": "\"(?=.)" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.matlab" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.matlab" } } } ] }, "transpose": { "name": "keyword.operator.transpose.matlab", "match": "\\.'" }, "validator_strings": { "patterns": [ { "patterns": [ { "name": "storage.type.matlab", "begin": "((?\u003c=(\\[|\\(|\\{|=|\\s|;|:|,|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'", "end": "'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))", "patterns": [ { "match": "''" }, { "match": "'(?=.)" }, { "match": "([^']+)" } ] }, { "name": "storage.type.matlab", "begin": "((?\u003c=(\\[|\\(|\\{|=|\\s|;|:|,|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"", "end": "\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|\u003c|\u003e|\u0026|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))", "patterns": [ { "match": "\"\"" }, { "match": "\"(?=.)" }, { "match": "[^\"]+" } ] } ] } ] }, "validators": { "begin": "\\s*[;]?\\s*([a-zA-Z][a-zA-Z0-9_\\.\\?]*)", "end": "([;\\n%=].*)", "patterns": [ { "include": "#line_continuation" }, { "name": "storage.type.matlab", "match": "\\s*(\\([^\\)]*\\))" }, { "name": "storage.type.matlab", "match": "([a-zA-Z][a-zA-Z0-9_\\.]*)" }, { "include": "#braced_validator_list" } ], "endCaptures": { "1": { "patterns": [ { "match": "([%].*)", "captures": { "1": { "patterns": [ { "include": "$self" } ] } } }, { "match": "(=[^;]*)", "captures": { "1": { "patterns": [ { "include": "$self" } ] } } }, { "match": "([\\n;]\\s*[a-zA-Z].*)", "captures": { "1": { "patterns": [ { "include": "#validators" } ] } } }, { "include": "$self" } ] } } }, "variables": { "name": "variable.other.function.matlab", "match": "(?\u003c!\\.)\\b(nargin|nargout|varargin|varargout)\\b" } } }