mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 15:53:41 +08:00
27 lines
3.0 KiB
JavaScript
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)}}})()); |