{"name":"Jolie","scopeName":"source.jolie","patterns":[{"include":"#code"}],"repository":{"block_comments":{"name":"comment.block.jolie","begin":"/\\*","end":"\\*/"},"code":{"patterns":[{"include":"#block_comments"},{"include":"#line_comments"},{"include":"#constants_language"},{"include":"#constants_numeric"},{"include":"#strings"},{"include":"#keywords_control"},{"include":"#keywords_with_colon"},{"include":"#keywords_other"},{"include":"#keywords_types"},{"include":"#keywords_modifiers"},{"include":"#invocations"},{"include":"#operators"},{"include":"#definitions"}]},"constants_language":{"name":"constant.language.jolie","match":"\\b(true|false)\\b"},"constants_numeric":{"name":"constant.numeric.jolie","match":"\\b\\d+\\b"},"definitions":{"match":"\\b(inputPort|outputPort|interface|type|define|service)\\s+(\\w+)\\b","captures":{"1":{"name":"keyword.other.jolie"},"2":{"name":"meta.class.identifier.jolie"}}},"invocations":{"match":"\\b(\\w+)\\s*(@)\\s*(\\w+)\\b","captures":{"1":{"name":"meta.method.jolie"},"2":{"name":"keyword.operator.jolie"},"3":{"name":"meta.class.jolie"}}},"keywords_control":{"name":"keyword.control.jolie","match":"\\b(if|else|while|for|foreach|provide|until|throw|forward|scope)\\b"},"keywords_modifiers":{"name":"storage.modifiers.jolie","match":"\\b(csets|global)\\b"},"keywords_other":{"name":"keyword.other.jolie","match":"\\b(constants|cH|instanceof|execution|comp|concurrent|nullProcess|single|sequential|main|init|cset|is_defined|embedded|extender|courier|forward|install|undef|include|synchronized|throws|throw)\\b"},"keywords_types":{"name":"storage.type.jolie","match":"\\b(void|bool|int|string|long|double|any|raw)\\b"},"keywords_with_colon":{"name":"keyword.other.with_colon.jolie","match":"\\b(location|Location|protocol|Protocol|interfaces|Interfaces|aggregates|Aggregates|redirects|Redirects|Jolie|JavaScript|Java|OneWay|RequestResponse)\\b\\s*:"},"line_comments":{"name":"comment.line.double-slash.jolie","begin":"//","end":"\\n"},"operators":{"name":"keyword.operator.jolie","match":"\\b(\u003c\u003c|\u0026\u0026|\\|\\||\\+|\\-|/|\\*|=|==|\\+\\+|--|\\+=|-=|\\*=|/=|!|%|%=)\\b"},"strings":{"name":"string.quoted.double.jolie","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.jolie","match":"\\\\."}]}}}