{ "comment": "\n\tTODO:\n\t* syntax types, tuple types, union\n\t* take out ::Type\n\t", "fileTypes": [ "jl" ], "firstLineMatch": "^#!.*\\bjulia\\s*$", "keyEquivalent": "^~J", "name": "Julia", "patterns": [ { "include": "#symbol" }, { "include": "#operator" }, { "include": "#array" }, { "include": "#string" }, { "include": "#bracket" }, { "include": "#type_decl" }, { "include": "#function_decl" }, { "include": "#function_call" }, { "include": "#keyword" }, { "include": "#number" }, { "include": "#comment" } ], "repository": { "array": { "patterns": [ { "begin": "\\[", "end": "\\]((\\.)?'*)", "endCaptures": { "1": { "name": "keyword.operator.transpose.julia" } }, "name": "meta.array.julia", "patterns": [ { "match": "\\bend\\b", "name": "constant.numeric.julia" }, { "include": "$self" } ] } ] }, "bracket": { "patterns": [ { "match": "(?:\\(|\\)|\\[|\\]|\\{|\\}|,)(?!('|(?:\\.'))*\\.?')", "name": "meta.bracket.julia" } ] }, "comment": { "patterns": [ { "begin": "#=", "beginCaptures": { "0": { "name": "punctuation.definition.comment.begin.julia" } }, "end": "=#", "endCaptures": { "0": { "name": "punctuation.definition.comment.end.julia" } }, "name": "comment.block.number-sign-equals.julia" }, { "captures": { "1": { "name": "punctuation.definition.comment.julia" } }, "match": "(?>=)", "name": "keyword.operator.update.julia" }, { "match": "(?:::(?:(?:Union)?\\([^)]*\\)|\\w+(?:{[^}]*})?))(?:\\.\\.\\.)?", "name": "support.type.julia" }, { "match": "(?:\\?|:)", "name": "keyword.operator.ternary.julia" }, { "match": "(?:\\|\\||&&|!)", "name": "keyword.operator.boolean.julia" }, { "match": "(?:->|<-|-->)", "name": "keyword.operator.arrow.julia" }, { "match": "(?:>|<|>=|<=|==|!=|\\.>|\\.<|\\.>=|\\.>=|\\.==|\\.!=|\\.=|\\.!|<:|:>)", "name": "keyword.operator.relation.julia" }, { "match": "(?::)", "name": "keyword.operator.range.julia" }, { "match": "(?:<<|>>)", "name": "keyword.operator.shift.julia" }, { "match": "(?:\\||\\&|~)", "name": "keyword.operator.bitwise.julia" }, { "match": "(?:\\+|-|\\*|\\.\\*|/|\\./|//|\\.//|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^)", "name": "keyword.operator.arithmetic.julia" }, { "match": "(?:::)", "name": "keyword.operator.isa.julia" }, { "match": "(?:\\.(?=[a-zA-Z])|\\.\\.+)", "name": "keyword.operator.dots.julia" }, { "match": "(?:\\$(?=.+))", "name": "keyword.operator.interpolation.julia" }, { "captures": { "2": { "name": "keyword.operator.transposed-variable.julia" } }, "match": "(\\w+)(('|(\\.'))*\\.?')" }, { "captures": { "1": { "name": "keyword.bracket.end.julia" }, "2": { "name": "keyword.operator.transposed-matrix.julia" } }, "match": "(\\])((?:'|(?:\\.'))*\\.?')" }, { "captures": { "1": { "name": "keyword.bracket.end.julia" }, "2": { "name": "keyword.operator.transposed-parens.julia" } }, "match": "(\\))((?:'|(?:\\.'))*\\.?')" } ] }, "string": { "patterns": [ { "begin": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.julia" } }, "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.string.end.julia" } }, "name": "string.quoted.single.julia", "patterns": [ { "include": "#string_escaped_char" } ] }, { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.julia" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.julia" } }, "name": "string.quoted.double.julia", "patterns": [ { "include": "#string_escaped_char" } ] }, { "begin": "\\b\\w+\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.julia" } }, "end": "\"\\w*", "endCaptures": { "0": { "name": "punctuation.definition.string.end.julia" } }, "name": "string.quoted.other.julia", "patterns": [ { "include": "#string_custom_escaped_char" } ] }, { "begin": "`", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.julia" } }, "end": "`", "endCaptures": { "0": { "name": "punctuation.definition.string.end.julia" } }, "name": "string.interpolated.julia", "patterns": [ { "include": "#string_escaped_char" } ] } ] }, "string_custom_escaped_char": { "patterns": [ { "match": "\\\\\"", "name": "constant.character.escape.julia" } ] }, "string_escaped_char": { "patterns": [ { "match": "\\\\(\\\\|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8}|.)", "name": "constant.character.escape.julia" } ] }, "symbol": { "patterns": [ { "match": "(?