{ "fileTypes": [ "lasso", "las", "inc" ], "firstLineMatch": "<\\?(?i:=|lasso(script)?)", "foldingStartMarker": "(?x)(\n\t\t<\\?(?i:=|lasso(script)?)\\b\n\t\t|(?i:if|inline|iterate|loop|match|protect|records|resultset|rows|while)(\\(|:).*(;|$)\n\t\t|\\/\\*(?!.*\\*\\/)\n\t |\\{\\s*$\n\t |\\{\\^\\s*$\n\t\t)", "foldingStopMarker": "(?x)(\n\t\t\\s*\\?>\n\t\t|/(?i:if|inline|iterate|loop|match|protect|records|resultset|rows|while)(;|$)\n\t\t|^(?!.*?\\/\\*).*?\\*\\/\n\t\t|^\\s*\\}\n\t\t|^\\s*\\^\\}\n\t\t)", "name": "Lasso", "patterns": [ { "name": "text.html.basic", "begin": "(?m)\\A\\s*(?=<|\\[)", "end": "\\a", "patterns": [ { "include": "#lasso-html" } ] }, { "name": "source.lasso", "begin": "\\A", "end": "\\a", "patterns": [ { "include": "#lasso" } ] } ], "repository": { "lasso": { "patterns": [ { "name": "meta.definition.type_trait.start.lasso", "begin": "(?i)\\b(define)\\s+(?=[_a-z][_0-9a-z]*\\s*=>\\s*(type|trait|thread)\\s*\\{)", "beginCaptures": { "1": { "name": "keyword.definition.lasso" } }, "end": "(=>)\\s*(type|trait|thread)\\s*\\{", "endCaptures": { "1": { "name": "keyword.operator.association.lasso" }, "2": { "name": "keyword.descriptors.lasso" } }, "patterns": [ { "match": "[_a-z][_0-9a-z]*", "name": "meta.name.type_trait.lasso" } ] }, { "name": "meta.definition.method.start.lasso", "begin": "(?i)\\b(define)\\s+(?=[_a-z][_0-9a-z]*\\s*=>|\\()", "beginCaptures": { "1": { "name": "keyword.definition.lasso" } }, "end": "\\(|(=>)", "endCaptures": { "1": { "name": "keyword.operator.association.lasso" } }, "patterns": [ { "match": "[_a-z][_0-9a-z]*", "name": "meta.name.method.lasso" } ] }, { "match": "(?i)\\b(abort|case|define|else|if|inline|iterate|loop|loop_abort|loop_continue|loop_count|loop_key|loop_value|match|protect|records|resultset|return|rows|while)\\b", "name": "keyword.control.lasso" }, { "match": "(?i)\\b(library|include)(_once)?\\b", "name": "keyword.control.import.lasso" }, { "match": "(?i)\\b(public|private|protected|data|type|thread|trait|import|parent|provide|require)\\b", "name": "keyword.descriptors.lasso" }, { "match": "(?i)\\b(array|action_params?|boolean|bytes|capture|curl|currency|database_registry|date|dateandtime|decimal|delve|dir|duration|eacher|file|generateForEachKeyed|generateForEachUnKeyed|generateSeries|inline_type|integer|list|list_node|literal|local|locale|map|map_node\n\t\t\t\t\t|net_tcp|net_tcpssl|net_udp|net_udppacket|object|pair|pairup|paramdesc|pdf_barcode|pdf_chunk|pdf_color|pdf_doc|pdf_font|pdf_hyphenator|pdf_image|pdf_list|pdf_paragraph|pdf_phrase|pdf_read|pdf_table|pdf_text|pdf_typebase\n\t\t\t\t\t|percent|queriable_select|queriable_groupBy|queriable_grouping|queriable_groupJoin|queriable_join|queriable_orderBy|queriable_orderByDescending|queriable_selectMany|queriable_skip|queriable_take|queriable_thenBy|queriable_thenByDescending|queriable_where\n\t\t\t\t\t|queue|repeat|serialization_element|serialization_object_identity_compare|serialization_reader|serialization_writer|serialization_writer_ref|serialization_writer_standin|set|scientific\n\t\t\t\t\t|sqlite_column|sqlite_columnScanner|sqlite_currentrow|sqlite_db|sqlite_expressionGenerator|sqlite_query_stat|sqlite_results|sqlite_table|stack|staticarray|string|tie|timeonly|tree_base|tree_node|tree_nullNode|user_registry|var(iable)?|web_request|web_response|xml_element|xml_namednodemap_attr|xml_node|xml_nodelist|zip|zip_file)\\b", "name": "storage.type.lasso" }, { "comment": "This is for the ljapi types", "match": "(?i)\\b(jchar|jchararray|jbyte|jbytearray|jfloat|jint|jshort)\\b", "name": "storage.type.lasso" }, { "match": "\\b(?i:void|null|true|false)\\b", "name": "constant.language.lasso" }, { "begin": "\"", "end": "\"", "name": "string.quoted.double.lasso", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.lasso" } ] }, { "begin": "'", "end": "'", "name": "string.quoted.single.lasso", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.lasso" } ] }, { "begin": "`", "end": "`", "name": "string.quoted.backtick.lasso" }, { "begin": "/\\*\\*(\\!)?\\s*$", "comment": "This now only highlights a docblock if the first line contains only /**\n\t\t\t\t\t\t\t\t- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n\t\t\t\t\t\t\t\t- Now matches /**! too - used for docblock templates", "end": "\\*/", "name": "comment.block.documentation.lasso" }, { "begin": "/\\*", "end": "\\*/", "name": "comment.block.lasso" }, { "match": "(//).*?($\\n?|(?=\\?>))", "name": "comment.line.double-slash.lasso" }, { "match": "\\$[a-zA-Z_][a-zA-Z0-9_.]*", "name": "variable.other.thread.lasso" }, { "match": "#[a-zA-Z_][a-zA-Z0-9_.]*", "name": "variable.other.local.lasso" }, { "match": "(\\s#1\\s|\\b(?i:self)\\b)", "name": "variable.language.lasso" }, { "match": "(\\-\\-|\\+\\+)", "name": "keyword.operator.increment-decrement.lasso" }, { "match": "(\\-|\\+|\\*|/|%)", "name": "keyword.operator.arithmetic.lasso" }, { "match": "(?i)(!|&&|\\|\\||\\?|\\bnot\\b|\\band\\b|\\bor\\b)", "name": "keyword.operator.logical.lasso" }, { "match": "(=|:=|\\+=|\\-=|/=|%=)", "name": "keyword.operator.assignment.lasso" }, { "match": "(===|==|!==|!=|<=|>=|<|>|>>|!>>)", "name": "keyword.operator.comparison.lasso" }, { "match": "(->|&)", "name": "keyword.operator.target.lasso" }, { "match": "(=>)", "name": "keyword.operator.association.lasso" } ] }, "lasso-html": { "patterns": [ { "begin": "(<)([a-zA-Z0-9:]++)(?=[^>]*>)", "beginCaptures": { "1": { "name": "punctuation.definition.tag.html" }, "2": { "name": "entity.name.tag.html" } }, "end": "(>(<)/)(\\2)(>)", "endCaptures": { "1": { "name": "punctuation.definition.tag.html" }, "2": { "name": "meta.scope.between-tag-pair.html" }, "3": { "name": "entity.name.tag.html" }, "4": { "name": "punctuation.definition.tag.html" } }, "name": "meta.tag.any.html", "patterns": [ { "include": "#tag-stuff" } ] }, { "begin": "(<\\?)(xml)", "captures": { "1": { "name": "punctuation.definition.tag.html" }, "2": { "name": "entity.name.tag.xml.html" } }, "end": "(\\?>)", "name": "meta.tag.preprocessor.xml.html", "patterns": [ { "include": "#tag-generic-attribute" }, { "include": "#string-double-quoted" }, { "include": "#string-single-quoted" } ] }, { "begin": "