discourse/vendor/assets/javascripts/highlightjs/languages/lasso.min.js

27 lines
3.0 KiB
JavaScript

hljs.registerLanguage("lasso",(()=>{"use strict";return e=>{
const a="<\\?(lasso(script)?|=)",n="\\]|\\?>",r={
$pattern:"[a-zA-Z_][\\w.]*|&[lg]t;",
literal:"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",
built_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",
keyword:"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"
},t=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),s={className:"meta",
begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[t]
}},i={className:"meta",begin:"\\[/noprocess|"+a
},l=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{
begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{
illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{
className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$][a-zA-Z_][\\w.]*"
},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*",
end:"[a-zA-Z_][\\w.]*",illegal:"\\W"},{className:"params",variants:[{
begin:"-(?!infinity)[a-zA-Z_][\\w.]*",relevance:0},{begin:"(\\.\\.\\.)"}]},{
begin:/(->|\.)\s*/,relevance:0,contains:[{className:"symbol",
begin:"'[a-zA-Z_][\\w.]*'"}]},{className:"class",beginKeywords:"define",
returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{
begin:"[a-zA-Z_][\\w.]*(=(?!>))?|[-+*/%](?!>)"})]}];return{name:"Lasso",
aliases:["ls","lassoscript"],case_insensitive:!0,keywords:r,contains:[{
className:"meta",begin:n,relevance:0,starts:{end:"\\[|"+a,returnEnd:!0,
relevance:0,contains:[t]}},s,i,{className:"meta",begin:"\\[no_square_brackets",
starts:{end:"\\[/no_square_brackets\\]",keywords:r,contains:[{className:"meta",
begin:n,relevance:0,starts:{end:"\\[noprocess\\]|"+a,returnEnd:!0,contains:[t]}
},s,i].concat(l)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",
begin:"^#!",end:"lasso9$",relevance:10}].concat(l)}}})());