+[{"$schema":"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json","name":"polar","patterns":[{"include":"#comment"},{"include":"#rule"},{"include":"#rule-type"},{"include":"#inline-query"},{"include":"#resource-block"},{"include":"#test-block"}],"repository":{"comment":{"name":"comment.line.number-sign","match":"#.*"},"rule":{"name":"meta.rule","patterns":[{"include":"#rule-functor"},{"begin":"\\bif\\b","beginCaptures":{"0":{"name":"keyword.control.if"}},"end":";","patterns":[{"include":"#term"}]},{"match":";"}]},"rule-type":{"name":"meta.rule-type","begin":"\\btype\\b","beginCaptures":{"0":{"name":"keyword.other.type-decl"}},"end":";","patterns":[{"include":"#rule-functor"}]},"inline-query":{"name":"meta.inline-query","begin":"\\?=","end":";","beginCaptures":{"0":{"name":"keyword.control"}},"patterns":[{"include":"#term"}]},"resource-block":{"name":"meta.resource-block","begin":"((resource|actor)\\s+([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)|(global))\\s*\\{","beginCaptures":{"2":{"name":"keyword.control"},"3":{"name":"entity.name.type"},"4":{"name":"keyword.control"}},"end":"\\}","patterns":[{"name":"punctuation.separator.sequence.declarations","match":";"},{"name":"meta.relation-declaration","begin":"\\{","end":"\\}","patterns":[{"include":"#specializer"},{"include":"#comment"},{"name":"punctuation.separator.sequence.dict","match":","}]},{"include":"#term"}]},"test-block":{"name":"meta.test-block","begin":"(test)\\s+(\"[^\"]*\")\\s*\\{","beginCaptures":{"1":{"name":"keyword.control"},"2":{"name":"string.quoted.double"}},"end":"\\}","patterns":[{"name":"meta.test-setup","begin":"(setup)\\s*\\{","beginCaptures":{"1":{"name":"keyword.control"}},"end":"\\}","patterns":[{"include":"#rule"},{"include":"#comment"}]},{"include":"#rule"},{"name":"keyword.other","match":"\\b(assert|assert_not)\\b"},{"include":"#comment"}]},"term":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#number"},{"include":"#keyword"},{"include":"#operator"},{"include":"#boolean"},{"include":"#object-literal"},{"name":"meta.bracket.list","begin":"\\[","end":"\\]","patterns":[{"include":"#term"},{"name":"punctuation.separator.sequence.list","match":","}]},{"name":"meta.bracket.dict","begin":"\\{","end":"\\}","patterns":[{"include":"#term"},{"name":"punctuation.separator.sequence.dict","match":","}]},{"name":"meta.parens","begin":"\\(","end":"\\)","patterns":[{"include":"#term"}]}]},"string":{"name":"string.quoted.double","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape","match":"\\\\."}]},"number":{"patterns":[{"name":"constant.numeric.float","match":"\\b[+-]?\\d+(?:(\\.)\\d+(?:e[+-]?\\d+)?|(?:e[+-]?\\d+))\\b"},{"name":"constant.numeric.integer","match":"\\b(\\+|\\-)[\\d]+\\b"},{"name":"constant.numeric.natural","match":"\\b[\\d]+\\b"}]},"boolean":{"name":"constant.language.boolean","match":"\\b(true|false)\\b"},"keyword":{"patterns":[{"match":"\\b(cut|or|debug|print|in|forall|if|and|of|not|matches|type|on|global)\\b","name":"constant.character"}]},"operator":{"match":"(\\+|-|\\*|\\/|<|>|=|!)","captures":{"1":{"name":"keyword.control"}}},"rule-functor":{"begin":"([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\\s*\\(","beginCaptures":{"1":{"name":"support.function.rule"}},"end":"\\)","patterns":[{"include":"#specializer"},{"name":"punctuation.separator.sequence.list","match":","},{"include":"#term"}]},"specializer":{"match":"[a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*\\s*:\\s*([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)","captures":{"1":{"name":"entity.name.type.resource"}}},"object-literal":{"name":"constant.other.object-literal","begin":"([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\\s*\\{","beginCaptures":{"1":{"name":"entity.name.type.resource"}},"end":"\\}","patterns":[{"include":"#string"},{"include":"#number"},{"include":"#boolean"}]}},"scopeName":"source.polar"}]
0 commit comments