--- 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: (?