Module 727580

2,220 characters · in no known chunk
Dependencies
Required by (1)
Lazily required by (0)none
Requires (0)none
Lazily requires (0)none
Source Raw
function(e){e.exports=function(e){let t=e.regex,n=/[a-zA-Z]\w*/,r=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],i=["true","false","null"],s=["this","super"],a=["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"],o=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],l={relevance:0,match:t.concat(/\b(?!(if|while|for|else|super)\b)/,n,/(?=\s*[({])/),className:"title.function"},u={match:t.concat(t.either(t.concat(/\b(?!(if|while|for|else|super)\b)/,n),t.either(...o)),/(?=\s*\([^)]+\)\s*\{)/),className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:"params",match:n}]}]}},c={variants:[{match:[/class\s+/,n,/\s+is\s+/,n]},{match:[/class\s+/,n]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},d={relevance:0,match:t.either(...o),className:"operator"},_={className:"string",begin:/"""/,end:/"""/},f={className:"property",begin:t.concat(/\./,t.lookahead(n)),end:n,excludeBegin:!0,relevance:0},p={relevance:0,match:t.concat(/\b_/,n),scope:"variable"},h={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{_:a}},m=e.C_NUMBER_MODE,E={match:[n,/\s*/,/=/,/\s*/,/\(/,n,/\)\s*\{/],scope:{1:"title.function",3:"operator",6:"params"}},g=e.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),A={scope:"subst",begin:/%\(/,end:/\)/,contains:[m,h,l,p,d]},I={scope:"string",begin:/"/,end:/"/,contains:[A,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};A.contains.push(I);let T=[...r,...s,...i],S={relevance:0,match:t.concat("\\b(?!",T.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/),className:"variable"},y={scope:"comment",variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:i},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]};return{name:"Wren",keywords:{keyword:r,"variable.language":s,literal:i},contains:[y,m,I,_,g,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,h,c,E,u,l,d,p,f,S]}}}