# Encoding: UTF-8 {fileTypes: ["slate"], foldingStartMarker: /^\s*[_A-z0-9]+@.+$/, foldingStopMarker: /^.*(\])[A-z ]*\.$/, keyEquivalent: "^~S", name: "Slate", patterns: [{match: /\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|loop|ifNil:|ifNotNil:|ifNotNilDo:|if:|then:|else:|do:|\^|error:|warn:|signal)\b/, name: "keyword.control.slate"}, {match: /\b(clone|new|copy|resend|forwardTo:|is:|isReally:|as:|[-+=<>,;\/\\*]+)\b/, name: "keyword.operator.slate"}, {match: /&[A-Za-z0-9_]+:?/, name: "keyword.other.name-of-parameter.slate"}, {match: /\b(lobby|it|thisContext|here)\b/, name: "variable.language.slate"}, {begin: /"/, beginCaptures: {0 => {name: "punctuation.definition.string.begin.slate"}}, end: "\"", endCaptures: {0 => {name: "punctuation.definition.string.end.slate"}}, name: "string.quoted.double.slate", patterns: [{match: /\\./, name: "constant.character.escape.slate"}]}, {begin: /'/, beginCaptures: {0 => {name: "punctuation.definition.string.begin.slate"}}, end: "'", endCaptures: {0 => {name: "punctuation.definition.string.end.slate"}}, name: "string.quoted.single.slate", patterns: [{match: /\\./, name: "constant.character.escape.slate"}]}, {begin: /\#\{/, beginCaptures: {0 => {name: "punctuation.definition.array.begin.slate"}}, end: "\\}", endCaptures: {0 => {name: "punctuation.definition.array.end.slate"}}, name: "meta.array.slate", patterns: [{include: "#nest_curly"}, {include: "$self"}]}, {begin: /\#\(/, beginCaptures: {0 => {name: "punctuation.definition.array.begin.slate"}}, comment: "Should restrict contents to literals.", end: "\\)", endCaptures: {0 => {name: "punctuation.definition.array.end.slate"}}, name: "meta.array.literal.slate", patterns: [{include: "#nest_parens"}]}, {match: /#([[:lower:]]|_|[+=\-\/!%&*|><~?])(\w|[+=\-\/!%&*|><~?:])*/, name: "meta.block.compact.slate"}, {begin: /(\[)(?:\s*\|\s*((?::\w+\s+)*:\w+)\s*\|)?/, captures: {1 => {name: "punctuation.section.block.slate"}, 2 => {name: "variable.parameter.block.slate"}}, end: "(\\])", name: "meta.block.slate", patterns: [{match: /\s+/, name: "meta.block.header.slate"}, {begin: /(?:\|(\s*(?:\w+\s+)*\w+\s*)?\||(?=[^\s|]))/, captures: {1 => {name: "variable.other.local.slate"}}, end: "(?=\\])", name: "meta.block.content.slate", patterns: [{include: "$base"}]}]}, {begin: /define: #(\w+)/, beginCaptures: {1 => {name: "entity.name.type.slate"}}, end: "\\s", name: "meta.definition.slate"}, {match: /\b(:\w+|\w+@)/, name: "variable.parameter.slate"}, {match: /\b(\/\\|\\\/|and:|or:|not|xor:)\b/, name: "keyword.operator.logical.slate"}, {match: /\b(True|False|Nil|NoRole)\b/, name: "constant.language.slate"}, {match: /\b[+-]?([0-9]+[Rr][0-9A-Za-z]+([.][0-9A-Za-z]+)?|[0-9]+([.][0-9]+)?)\b/, name: "constant.numeric.slate"}, {captures: {1 => {name: "punctuation.definition.constant.slate"}}, match: /(\$)(\S|\\[\\ntsbre0avf])/, name: "constant.character.slate"}, {captures: {1 => {name: "punctuation.definition.constant.slate"}}, match: /(#)\S+/, name: "constant.other.slate"}, {match: /(\b\w+ traits\b)/, name: "support.class.slate"}, {match: /\`[-A-Za-z0-9+=*^<>?,;\/\\]+:?/, name: "keyword.control.import.slate"}, {match: /\s+$/, name: "invalid.deprecated.trailing-whitespace.slate"}, {include: "#keyword"}, {begin: /(\w+)@/, beginCaptures: {1 => {name: "variable.parameter.function.slate"}}, end: "($|\\[)", endCaptures: {1 => {name: "entity.name.function.slate"}}, name: "meta.function.unary.slate", patterns: [{include: "$self"}]}], repository: {:"binary-selector" => {match: /\b([=+-\/?<>,;^*]+[A-Za-z0-9_=+-\/?<>,;^*]+[=+-\/?<>,;^*]+)\b/}, :"escaped-char" => {match: /\\./}, keyword: {match: /\b([A-Za-z_][A-Za-z_0-9]+:)\b/, name: "variable.other.slate"}, nest_curly: {begin: /\{/, end: "\\}", patterns: [{include: "#nest_curly"}]}, nest_parens: {begin: /\(/, end: "\\)", patterns: [{include: "#nest_parens"}]}, :"unary-selector" => {match: /\b([A-Za-z_][A-Za-z_0-9]+)\b/}}, scopeName: "source.slate", uuid: "A7676F36-C7D2-4C3E-8519-944577C66C6A"}