2 lines
34 KiB
JavaScript
2 lines
34 KiB
JavaScript
|
|
import{A as Re,T as Me,a as Le,S as O,b as _,P as ee,F as ye,E as w,c as v,d as T,R as ke,e as Be,M as G,f as be,g as Fe,C as J}from"./cm-state-X9WpHEQO.js";import{E as M,V as $e,D as H,k as xe,g as we,s as We,l as Z,W as Ne,a as Ue}from"./cm-view-CiSFjroV.js";import{s as q,i as je}from"./cm-language-CDsY7zq0.js";class Ce{constructor(e,t,n,s){this.state=e,this.pos=t,this.explicit=n,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=q(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),s=t.text.slice(n-t.from,this.pos-t.from),o=s.search(ve(e,!1));return o<0?null:{from:n+o,to:this.pos,text:s.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function ae(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function Ve(i){let e=Object.create(null),t=Object.create(null);for(let{label:s}of i){e[s[0]]=!0;for(let o=1;o<s.length;o++)t[s[o]]=!0}let n=ae(e)+ae(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function He(i){let e=i.map(s=>typeof s=="string"?{label:s}:s),[t,n]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:Ve(e);return s=>{let o=s.matchBefore(n);return o||s.explicit?{from:o?o.from:s.pos,options:e,validFor:t}:null}}function Nt(i,e){return t=>{for(let n=q(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(i.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}class ce{constructor(e,t,n,s){this.completion=e,this.source=t,this.match=n,this.score=s}}function A(i){return i.selection.main.from}function ve(i,e){var t;let{source:n}=i,s=e&&n[0]!="^",o=n[n.length-1]!="$";return!s&&!o?i:new RegExp(`${s?"^":""}(?:${n})${o?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}const te=Re.define();function qe(i,e,t,n){let{main:s}=i.selection,o=t-s.from,l=n-s.from;return{...i.changeByRange(a=>{if(a!=s&&t!=n&&i.sliceDoc(a.from+o,a.from+l)!=i.sliceDoc(t,n))return{range:a};let r=i.toText(e);return{changes:{from:a.from+o,to:n==s.from?a.to:a.from+l,insert:r},range:w.cursor(a.from+o+r.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const fe=new WeakMap;function ze(i){if(!Array.isArray(i))return i;let e=fe.get(i);return e||fe.set(i,e=He(i)),e}const j=O.define(),B=O.define();class Ke{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let n=v(e,t),s=T(n);this.chars.push(n);let o=e.slice(t,t+s),l=o.toUpperCase();this.folded.push(v(l==o?o.toLowerCase():l,0)),t+=s}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:s,precise:o,byWord:l}=this;if(t.length==1){let d=v(e,0),D=T(d),S=D==e.length?0:-100;if(d!=t[0])if(d==n[0])S+=-200;else return null;return this.ret(S,[0,D])}let a=e.indexOf(this.pattern);if(a==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let r=t.length,h=0;if(a<0){for(let d=0,D=Math.min(e.length,200);d<D&&h<r;){let S=v(e,d);(S==t[h]||S==n[h])&&(s[h++]=d),d+=T(S)}if(h<r)return null}let c=0,f=0,p=!1,u=0,m=-1,y=-1,k=/[a-z]/.test(e),I=!0;for(let d=0,D=Math.min(e.length,200),S=0;d<D&&f<r;){let b=v(e,d);a<0&&(c<r&&b==t[c]&&(o[c++]=d),u<r&&(b==t[u]||b==n[u]?(u==0&&(m=d),y=d+1,u++):u=0));let N,K=b<255?b>=48&&b<=57||b>=97&&b<=122?2:b>=65&&b<=90?1:0:(N=be(b))!=N.toLowerCase()?1:N!=N.toUpperCase()?2:0;(!d||K==1&&k||S==0&&K!=0)&&(t[f]==b||n[f]==b&&(p=!0)?l[f++]=d:l.length&&(I=!1)),S=K,d+=T(b)}return f==r&&l[0]==0&&I?this.result(-100+(p?-200:0),l,e):u==r&&m==0?this.ret(-200-e.length+(y==e.length?0:-100),[0,y]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):u==r?thi
|