UNPKG

3.04 kBJavaScriptView Raw
1hljs.registerLanguage("lasso",(()=>{"use strict";return e=>{
2const a="<\\?(lasso(script)?|=)",n="\\]|\\?>",r={
3$pattern:"[a-zA-Z_][\\w.]*|&[lg]t;",
4literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",
5built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",
6keyword:"cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else fail_if fail_ifnot fail if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"
7},t=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),s={className:"meta",
8begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[t]
9}},i={className:"meta",begin:"\\[/noprocess|"+a
10},l=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{
11begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{
12illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{
13className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$][a-zA-Z_][\\w.]*"
14},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*",
15end:"[a-zA-Z_][\\w.]*",illegal:"\\W"},{className:"params",variants:[{
16begin:"-(?!infinity)[a-zA-Z_][\\w.]*",relevance:0},{begin:"(\\.\\.\\.)"}]},{
17begin:/(->|\.)\s*/,relevance:0,contains:[{className:"symbol",
18begin:"'[a-zA-Z_][\\w.]*'"}]},{className:"class",beginKeywords:"define",
19returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{
20begin:"[a-zA-Z_][\\w.]*(=(?!>))?|[-+*/%](?!>)"})]}];return{name:"Lasso",
21aliases:["ls","lassoscript"],case_insensitive:!0,keywords:r,contains:[{
22className:"meta",begin:n,relevance:0,starts:{end:"\\[|"+a,returnEnd:!0,
23relevance:0,contains:[t]}},s,i,{className:"meta",begin:"\\[no_square_brackets",
24starts:{end:"\\[/no_square_brackets\\]",keywords:r,contains:[{className:"meta",
25begin:n,relevance:0,starts:{end:"\\[noprocess\\]|"+a,returnEnd:!0,contains:[t]}
26},s,i].concat(l)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",
27begin:"^#!",end:"lasso9$",relevance:10}].concat(l)}}})());
\No newline at end of file