"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4616],{44616:(e,t,n)=>{n.r(t);n.d(t,{ruby:()=>b});function r(e){var t={};for(var n=0,r=e.length;n]/)){e.eat(/[\<\>]/);return"atom"}if(e.eat(/[\+\-\*\/\&\|\:\!]/)){return"atom"}if(e.eat(/[a-zA-Z$@_\xa1-\uffff]/)){e.eatWhile(/[\w$\xa1-\uffff]/);e.eat(/[\?\!\=]/);return"atom"}return"operator"}else if(n=="@"&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/)){e.eat("@");e.eatWhile(/[\w\xa1-\uffff]/);return"propertyName"}else if(n=="$"){if(e.eat(/[a-zA-Z_]/)){e.eatWhile(/[\w]/)}else if(e.eat(/\d/)){e.eat(/\d/)}else{e.next()}return"variableName.special"}else if(/[a-zA-Z_\xa1-\uffff]/.test(n)){e.eatWhile(/[\w\xa1-\uffff]/);e.eat(/[\?\!]/);if(e.eat(":"))return"atom";return"variable"}else if(n=="|"&&(t.varList||t.lastTok=="{"||t.lastTok=="do")){s="|";return null}else if(/[\(\)\[\]{}\\;]/.test(n)){s=n;return null}else if(n=="-"&&e.eat(">")){return"operator"}else if(/[=+\-\/*:\.^%<>~|]/.test(n)){var o=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);if(n=="."&&!o)s=".";return"operator"}else{return null}}function d(e){var t=e.pos,n=0,r,i=false,a=false;while((r=e.next())!=null){if(!a){if("[{(".indexOf(r)>-1){n++}else if("]})".indexOf(r)>-1){n--;if(n<0)break}else if(r=="/"&&n==0){i=true;break}a=r=="\\"}else{a=false}}e.backUp(e.pos-t);return i}function k(e){if(!e)e=1;return function(t,n){if(t.peek()=="}"){if(e==1){n.tokenize.pop();return n.tokenize[n.tokenize.length-1](t,n)}else{n.tokenize[n.tokenize.length-1]=k(e-1)}}else if(t.peek()=="{"){n.tokenize[n.tokenize.length-1]=k(e+1)}return p(t,n)}}function h(){var e=false;return function(t,n){if(e){n.tokenize.pop();return n.tokenize[n.tokenize.length-1](t,n)}e=true;return p(t,n)}}function m(e,t,n,r){return function(i,a){var l=false,o;if(a.context.type==="read-quoted-paused"){a.context=a.context.prev;i.eat("}")}while((o=i.next())!=null){if(o==e&&(r||!l)){a.tokenize.pop();break}if(n&&o=="#"&&!l){if(i.eat("{")){if(e=="}"){a.context={prev:a.context,type:"read-quoted-paused"}}a.tokenize.push(k());break}else if(/[@\$]/.test(i.peek())){a.tokenize.push(h());break}}l=!l&&o=="\\"}return t}}function v(e,t){return function(n,r){if(t)n.eatSpace();if(n.match(e))r.tokenize.pop();else n.skipToEnd();return"string"}}function _(e,t){if(e.sol()&&e.match("=end")&&e.eol())t.tokenize.pop();e.skipToEnd();return"comment"}const b={name:"ruby",startState:function(e){return{tokenize:[p],indented:0,context:{type:"top",indented:-e},continuedLine:false,lastTok:null,varList:false}},token:function(e,t){s=null;if(e.sol())t.indented=e.indentation();var n=t.tokenize[t.tokenize.length-1](e,t),r;var i=s;if(n=="variable"){var f=e.current();n=t.lastTok=="."?"property":a.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(f)?"tag":t.lastTok=="def"||t.lastTok=="class"||t.varList?"def":"variable";if(n=="keyword"){i=f;if(l.propertyIsEnumerable(f))r="indent";else if(o.propertyIsEnumerable(f))r="dedent";else if((f=="if"||f=="unless")&&e.column()==e.indentation())r="indent";else if(f=="do"&&t.context.indented