2023-02-02 20:09:25 +08:00
|
|
|
import{S as Ue,i as _e,s as qe,e as je,f as Ce,T as XO,g as Ge,y as ZO,o as Re,K as ze,L as Ae,M as Ie}from"./index-1ab8fc0d.js";import{P as Ee,N as Ne,u as Be,D as De,v as QO,T as R,I as Oe,w as cO,x as l,y as Me,L as hO,z as pO,A as z,B as uO,F as ee,G as SO,H as C,J as Je,K as Le,E as k,M as j,O as Ke,Q as He,R as g,U as Fe,V as Ot,a as V,h as et,b as tt,c as at,d as it,e as rt,s as st,f as nt,g as lt,i as ot,r as Qt,j as ct,k as ht,l as pt,m as ut,n as St,o as $t,p as ft,q as dt,t as bO,C as G}from"./index-4934dad7.js";class N{constructor(O,t,a,i,s,r,n,o,c,h=0,Q){this.p=O,this.stack=t,this.state=a,this.reducePos=i,this.pos=s,this.score=r,this.buffer=n,this.bufferBase=o,this.curContext=c,this.lookAhead=h,this.parent=Q}toString(){return`[${this.stack.filter((O,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(O,t,a=0){let i=O.parser.context;return new N(O,[],t,a,a,0,[],0,i?new xO(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(O,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=O}reduce(O){let t=O>>19,a=O&65535,{parser:i}=this.p,s=i.dynamicPrecedence(a);if(s&&(this.score+=s),t==0){this.pushState(i.getGoto(this.state,a,!0),this.reducePos),a<i.minRepeatTerm&&this.storeNode(a,this.reducePos,this.reducePos,4,!0),this.reduceContext(a,this.reducePos);return}let r=this.stack.length-(t-1)*3-(O&262144?6:0),n=r?this.stack[r-2]:0,o=this.reducePos-n;o>=2e3&&(n==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=o):this.p.lastBigReductionSize<o&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=n,this.p.lastBigReductionSize=o));let c=r?this.stack[r-1]:0,h=this.bufferBase+this.buffer.length-c;if(a<i.minRepeatTerm||O&131072){let Q=i.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(a,n,Q,h+4,!0)}if(O&262144)this.state=this.stack[r];else{let Q=this.stack[r-3];this.state=i.getGoto(Q,a,!0)}for(;this.stack.length>r;)this.stack.pop();this.reduceContext(a,n)}storeNode(O,t,a,i=4,s=!1){if(O==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let r=this,n=this.buffer.length;if(n==0&&r.parent&&(n=r.bufferBase-r.parent.bufferBase,r=r.parent),n>0&&r.buffer[n-4]==0&&r.buffer[n-1]>-1){if(t==a)return;if(r.buffer[n-2]>=t){r.buffer[n-2]=a;return}}}if(!s||this.pos==a)this.buffer.push(O,t,a,i);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0)for(;r>0&&this.buffer[r-2]>a;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4);this.buffer[r]=O,this.buffer[r+1]=t,this.buffer[r+2]=a,this.buffer[r+3]=i}}shift(O,t,a){let i=this.pos;if(O&131072)this.pushState(O&65535,this.pos);else if(O&262144)this.pos=a,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,a,4);else{let s=O,{parser:r}=this.p;(a>this.pos||t<=r.maxNode)&&(this.pos=a,r.stateFlag(s,1)||(this.reducePos=a)),this.pushState(s,i),this.shiftContext(t,i),t<=r.maxNode&&this.buffer.push(t,i,a,4)}}apply(O,t,a){O&65536?this.reduce(O):this.shift(O,t,a)}useNode(O,t){let a=this.p.reused.length-1;(a<0||this.p.reused[a]!=O)&&(this.p.reused.push(O),a++);let i=this.pos;this.reducePos=this.pos=i+O.length,this.pushState(t,i),this.buffer.push(a,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,O,this,this.p.stream.reset(this.pos-O.length)))}split(){let O=this,t=O.buffer.length;for(;t>0&&O.buffer[t-2]>O.reducePos;)t-=4;let a=O.buffer.slice(t),i=O.bufferBase+t;for(;O&&i==O.bufferBase;)O=O.parent;return new N(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,a,i,this.curContext,this.lookAhead,O)}recoverByDelete(O,t){let a=O<=this.p.parser.maxNode;a&&this.storeNode(O,this.pos,t,4),this.storeNode(0,this.pos,t,a?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(O){for(let t=new Pt(this);;){let a=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,O);if(a==0)return!1;if(!(a&65536))return
|
|
|
|
}`,{label:"class",detail:"definition",type:"keyword"}),g('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),g('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],JO=new Fe,ge=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function U(e){return(O,t)=>{let a=O.node.getChild("VariableDefinition");return a&&t(a,e),!0}}const Da=["FunctionDeclaration"],Ma={FunctionDeclaration:U("function"),ClassDeclaration:U("class"),ClassExpression:()=>!0,EnumDeclaration:U("constant"),TypeAliasDeclaration:U("type"),NamespaceDeclaration:U("namespace"),VariableDefinition(e,O){e.matchContext(Da)||O(e,"variable")},TypeDefinition(e,O){O(e,"type")},__proto__:null};function me(e,O){let t=JO.get(O);if(t)return t;let a=[],i=!0;function s(r,n){let o=e.sliceString(r.from,r.to);a.push({label:o,type:n})}return O.cursor(Oe.IncludeAnonymous).iterate(r=>{if(i)i=!1;else if(r.name){let n=Ma[r.name];if(n&&n(r,s)||ge.has(r.name))return!1}else if(r.to-r.from>8192){for(let n of me(e,r.node))a.push(n);return!1}}),JO.set(O,a),a}const LO=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Xe=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function Ja(e){let O=C(e.state).resolveInner(e.pos,-1);if(Xe.indexOf(O.name)>-1)return null;let t=O.name=="VariableName"||O.to-O.from<20&&LO.test(e.state.sliceDoc(O.from,O.to));if(!t&&!e.explicit)return null;let a=[];for(let i=O;i;i=i.parent)ge.has(i.name)&&(a=a.concat(me(e.state.doc,i)));return{options:a,from:t?O.from:e.pos,validFor:LO}}const Z=hO.define({name:"javascript",parser:Na.configure({props:[pO.add({IfStatement:z({except:/^\s*({|else\b)/}),TryStatement:z({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Ke,SwitchBody:e=>{let O=e.textAfter,t=/^\s*\}/.test(O),a=/^\s*(case|default)\b/.test(O);return e.baseIndent+(t?0:a?1:2)*e.unit},Block:He({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":z({except:/^{/}),JSXElement(e){let O=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(O?0:e.unit)},JSXEscape(e){let O=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(O?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),uO.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":ee,BlockComment(e){return{from:e.from+2,to:e.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Ze=Z.configure({dialect:"ts"},"typescript"),be=Z.configure({dialect:"jsx"}),xe=Z.configure({dialect:"jsx ts"},"typescript"),La="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(e=>({label:e,type:"keyword"}));function ye(e={}){let O=e.jsx?e.typescript?xe:be:e.typescript?Ze:Z;return new SO(O,[Z.data.of({autocomplete:Je(Xe,Le(Ba.concat(La)))}),Z.data.of({autocomplete:Ja}),e.jsx?Fa:[]])}function Ka(e){for(;;){if(e.name=="JSXOpenTag"||e.name=="JSXSelfClosingTag"||e.name=="JSXFragmentTag")return e;if(!e.parent)return null;e=e.parent}}function KO(e,O,t=e.length){for(let a=O==null?void 0:O.firstChild;a;a=a.nextSibling)if(a.name=="JSXIdentifier"||a.name=="JSXBuiltin"||a.name=="JSXNamespacedName"||a.name=="JSXMemberExpression")return e.sliceString(a.from,Math.min(a.to,t));return""}const Ha=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Fa=k.inputHandler.of((e,O,t,a)=>{if((Ha?e.composing:e.compositionStarted)||e.state.readOnly||O!=t||a!=">"&&a!="/"||!Z.isActiveAt(e.state,O,-1))return!1;let{state:i}=e,s=i.changeByRange(r=>{var n,o;let{head:c}=r,h=C(i).resolveInner(c,-1),Q;if(h.name=="JSXStartTag"&&(h=h.parent),a==">"&&h.name=="JSXFragmentTag")return{range:j.cursor(c+1),changes:{
|