4 lines
182 KiB
JavaScript
Raw Normal View History

// See the "/licenses" URI for full package license details
function en(e,n,t,r,i,o){this.indented=e,this.column=n,this.type=t,this.info=r,this.align=i,this.prev=o}function Re(e,n,t,r){var i=e.indented;return e.context&&e.context.type=="statement"&&t!="statement"&&(i=e.context.indented),e.context=new en(i,n,t,r,null,e.context)}function ve(e){var n=e.context.type;return(n==")"||n=="]"||n=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}function Dn(e,n,t){if(n.prevToken=="variable"||n.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,t))||n.typeAtEndOfLine&&e.column()==e.indentation())return!0}function Je(e){for(;;){if(!e||e.type=="top")return!0;if(e.type=="}"&&e.prev.info!="namespace")return!1;e=e.prev}}function H(e){var n=e.statementIndentUnit,t=e.dontAlignCalls,r=e.keywords||{},i=e.types||{},o=e.builtin||{},a=e.blockKeywords||{},p=e.defKeywords||{},S=e.atoms||{},E=e.hooks||{},x=e.multiLineStrings,c=e.indentStatements!==!1,d=e.indentSwitch!==!1,y=e.namespaceSeparator,O=e.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,K=e.numberStart||/[\d\.]/,M=e.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,u=e.isOperatorChar||/[+\-*&%=<>!?|\/]/,T=e.isIdentifierChar||/[\w\$_\xa1-\uffff]/,w=e.isReservedIdentifier||!1,C,l;function s(m,f){var z=m.next();if(E[z]){var v=E[z](m,f);if(v!==!1)return v}if(z=='"'||z=="'")return f.tokenize=I(z),f.tokenize(m,f);if(K.test(z)){if(m.backUp(1),m.match(M))return"number";m.next()}if(O.test(z))return C=z,null;if(z=="/"){if(m.eat("*"))return f.tokenize=k,k(m,f);if(m.eat("/"))return m.skipToEnd(),"comment"}if(u.test(z)){for(;!m.match(/^\/[\/*]/,!1)&&m.eat(u););return"operator"}if(m.eatWhile(T),y)for(;m.match(y);)m.eatWhile(T);var D=m.current();return ee(r,D)?(ee(a,D)&&(C="newstatement"),ee(p,D)&&(l=!0),"keyword"):ee(i,D)?"type":ee(o,D)||w&&w(D)?(ee(a,D)&&(C="newstatement"),"builtin"):ee(S,D)?"atom":"variable"}function I(m){return function(f,z){for(var v=!1,D,J=!1;(D=f.next())!=null;){if(D==m&&!v){J=!0;break}v=!v&&D=="\\"}return(J||!(v||x))&&(z.tokenize=null),"string"}}function k(m,f){for(var z=!1,v;v=m.next();){if(v=="/"&&z){f.tokenize=null;break}z=v=="*"}return"comment"}function L(m,f){e.typeFirstDefinitions&&m.eol()&&Je(f.context)&&(f.typeAtEndOfLine=Dn(m,f,m.pos))}return{name:e.name,startState:function(m){return{tokenize:null,context:new en(-m,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(m,f){var z=f.context;if(m.sol()&&(z.align==null&&(z.align=!1),f.indented=m.indentation(),f.startOfLine=!0),m.eatSpace())return L(m,f),null;C=l=null;var v=(f.tokenize||s)(m,f);if(v=="comment"||v=="meta")return v;if(z.align==null&&(z.align=!0),C==";"||C==":"||C==","&&m.match(/^\s*(?:\/\/.*)?$/,!1))for(;f.context.type=="statement";)ve(f);else if(C=="{")Re(f,m.column(),"}");else if(C=="[")Re(f,m.column(),"]");else if(C=="(")Re(f,m.column(),")");else if(C=="}"){for(;z.type=="statement";)z=ve(f);for(z.type=="}"&&(z=ve(f));z.type=="statement";)z=ve(f)}else C==z.type?ve(f):c&&((z.type=="}"||z.type=="top")&&C!=";"||z.type=="statement"&&C=="newstatement")&&Re(f,m.column(),"statement",m.current());if(v=="variable"&&(f.prevToken=="def"||e.typeFirstDefinitions&&Dn(m,f,m.start)&&Je(f.context)&&m.match(/^\s*\(/,!1))&&(v="def"),E.token){var D=E.token(m,f,v);D!==void 0&&(v=D)}return v=="def"&&e.styleDefs===!1&&(v="variable"),f.startOfLine=!1,f.prevToken=l?"def":v||C,L(m,f),v},indent:function(m,f,z){if(m.tokenize!=s&&m.tokenize!=null||m.typeAtEndOfLine&&Je(m.context))return null;var v=m.context,D=f&&f.charAt(0),J=D==v.type;if(v.type=="statement"&&D=="}"&&(v=v.prev),e.dontIndentStatements)for(;v.type=="statement"&&e.dontIndentStatements.test(v.info);)v=v.prev;if(E.indent){var ye=E.indent(m,v,f,z.unit);if(typeof ye=="number")return ye}var Qe=v.prev&&v.prev.info=="switch";if(e.allmanIndentation&&/[{(]/.test(D)){for(;v.type!="top"&&v.type!="}";)v=v.prev;return v.indented}return v.type=="statement"?v.indented+(D=="{"?0:n||z.unit):v.align&&(!t||v.type!=")")?v.column+(J?0:1):v.type==")"&&!J?v.indented+(n||z.unit):v.indented+(J?0:z.unit)+(!J&&Qe&&!/^(?:case|default)\b/.test(f)?z.unit:0)},languageData:{indentOnInp
//# sourceMappingURL=legacy-modes.js.map