monaco-editor
Version:
A browser based code editor
8 lines (7 loc) • 13.2 kB
JavaScript
var mn=Object.defineProperty;var gn=(c,v,s)=>v in c?mn(c,v,{enumerable:!0,configurable:!0,writable:!0,value:s}):c[v]=s;var a=(c,v,s)=>(gn(c,typeof v!="symbol"?v+"":v,s),s);define("vs/jsonMode.3112352c",["exports","./workers.8ff654dc","./lspLanguageFeatures.b4763a7b","./editor.api.001a2486"],function(c,v,s,_){"use strict";class W{constructor(i){a(this,"_defaults");a(this,"_idleCheckInterval");a(this,"_lastUsedTime");a(this,"_configChangeListener");a(this,"_worker");a(this,"_client");this._defaults=i,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=v.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...i){let t;return this._getClient().then(e=>{t=e}).then(e=>{if(this._worker)return this._worker.withSyncedResources(i)}).then(e=>t)}}function z(n,i=!1){const t=n.length;let e=0,u="",r=0,o=16,f=0,k=0,O=0,D=0,m=0;function U(l,p){let b=0,w=0;for(;b<l||!p;){let g=n.charCodeAt(e);if(g>=48&&g<=57)w=w*16+g-48;else if(g>=65&&g<=70)w=w*16+g-65+10;else if(g>=97&&g<=102)w=w*16+g-97+10;else break;e++,b++}return b<l&&(w=-1),w}function y(l){e=l,u="",r=0,o=16,m=0}function B(){let l=e;if(n.charCodeAt(e)===48)e++;else for(e++;e<n.length&&I(n.charCodeAt(e));)e++;if(e<n.length&&n.charCodeAt(e)===46)if(e++,e<n.length&&I(n.charCodeAt(e)))for(e++;e<n.length&&I(n.charCodeAt(e));)e++;else return m=3,n.substring(l,e);let p=e;if(e<n.length&&(n.charCodeAt(e)===69||n.charCodeAt(e)===101))if(e++,(e<n.length&&n.charCodeAt(e)===43||n.charCodeAt(e)===45)&&e++,e<n.length&&I(n.charCodeAt(e))){for(e++;e<n.length&&I(n.charCodeAt(e));)e++;p=e}else m=3;return n.substring(l,p)}function un(){let l="",p=e;for(;;){if(e>=t){l+=n.substring(p,e),m=2;break}const b=n.charCodeAt(e);if(b===34){l+=n.substring(p,e),e++;break}if(b===92){if(l+=n.substring(p,e),e++,e>=t){m=2;break}switch(n.charCodeAt(e++)){case 34:l+='"';break;case 92:l+="\\";break;case 47:l+="/";break;case 98:l+="\b";break;case 102:l+="\f";break;case 110:l+=`
`;break;case 114:l+="\r";break;case 116:l+=" ";break;case 117:const g=U(4,!0);g>=0?l+=String.fromCharCode(g):m=4;break;default:m=5}p=e;continue}if(b>=0&&b<=31)if(N(b)){l+=n.substring(p,e),m=2;break}else m=6;e++}return l}function F(){if(u="",m=0,r=e,k=f,D=O,e>=t)return r=t,o=17;let l=n.charCodeAt(e);if(d(l)){do e++,u+=String.fromCharCode(l),l=n.charCodeAt(e);while(d(l));return o=15}if(N(l))return e++,u+=String.fromCharCode(l),l===13&&n.charCodeAt(e)===10&&(e++,u+=`
`),f++,O=e,o=14;switch(l){case 123:return e++,o=1;case 125:return e++,o=2;case 91:return e++,o=3;case 93:return e++,o=4;case 58:return e++,o=6;case 44:return e++,o=5;case 34:return e++,u=un(),o=10;case 47:const p=e-1;if(n.charCodeAt(e+1)===47){for(e+=2;e<t&&!N(n.charCodeAt(e));)e++;return u=n.substring(p,e),o=12}if(n.charCodeAt(e+1)===42){e+=2;const b=t-1;let w=!1;for(;e<b;){const g=n.charCodeAt(e);if(g===42&&n.charCodeAt(e+1)===47){e+=2,w=!0;break}e++,N(g)&&(g===13&&n.charCodeAt(e)===10&&e++,f++,O=e)}return w||(e++,m=1),u=n.substring(p,e),o=13}return u+=String.fromCharCode(l),e++,o=16;case 45:if(u+=String.fromCharCode(l),e++,e===t||!I(n.charCodeAt(e)))return o=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return u+=B(),o=11;default:for(;e<t&&cn(l);)e++,l=n.charCodeAt(e);if(r!==e){switch(u=n.substring(r,e),u){case"true":return o=8;case"false":return o=9;case"null":return o=7}return o=16}return u+=String.fromCharCode(l),e++,o=16}}function cn(l){if(d(l)||N(l))return!1;switch(l){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function fn(){let l;do l=F();while(l>=12&&l<=15);return l}return{setPosition:y,getPosition:()=>e,scan:i?fn:F,getToken:()=>o,getTokenValue:()=>u,getTokenOffset:()=>r,getTokenLength:()=>e-r,getTokenStartLine:()=>k,getTokenStartCharacter:()=>r-D,getTokenError:()=>m}}function d(n){return n===32||n===9}function N(n){return n===10||n===13}function I(n){return n>=48&&n<=57}var h;(function(n){n[n.lineFeed=10]="lineFeed",n[n.carriageReturn=13]="carriageReturn",n[n.space=32]="space",n[n._0=48]="_0",n[n._1=49]="_1",n[n._2=50]="_2",n[n._3=51]="_3",n[n._4=52]="_4",n[n._5=53]="_5",n[n._6=54]="_6",n[n._7=55]="_7",n[n._8=56]="_8",n[n._9=57]="_9",n[n.a=97]="a",n[n.b=98]="b",n[n.c=99]="c",n[n.d=100]="d",n[n.e=101]="e",n[n.f=102]="f",n[n.g=103]="g",n[n.h=104]="h",n[n.i=105]="i",n[n.j=106]="j",n[n.k=107]="k",n[n.l=108]="l",n[n.m=109]="m",n[n.n=110]="n",n[n.o=111]="o",n[n.p=112]="p",n[n.q=113]="q",n[n.r=114]="r",n[n.s=115]="s",n[n.t=116]="t",n[n.u=117]="u",n[n.v=118]="v",n[n.w=119]="w",n[n.x=120]="x",n[n.y=121]="y",n[n.z=122]="z",n[n.A=65]="A",n[n.B=66]="B",n[n.C=67]="C",n[n.D=68]="D",n[n.E=69]="E",n[n.F=70]="F",n[n.G=71]="G",n[n.H=72]="H",n[n.I=73]="I",n[n.J=74]="J",n[n.K=75]="K",n[n.L=76]="L",n[n.M=77]="M",n[n.N=78]="N",n[n.O=79]="O",n[n.P=80]="P",n[n.Q=81]="Q",n[n.R=82]="R",n[n.S=83]="S",n[n.T=84]="T",n[n.U=85]="U",n[n.V=86]="V",n[n.W=87]="W",n[n.X=88]="X",n[n.Y=89]="Y",n[n.Z=90]="Z",n[n.asterisk=42]="asterisk",n[n.backslash=92]="backslash",n[n.closeBrace=125]="closeBrace",n[n.closeBracket=93]="closeBracket",n[n.colon=58]="colon",n[n.comma=44]="comma",n[n.dot=46]="dot",n[n.doubleQuote=34]="doubleQuote",n[n.minus=45]="minus",n[n.openBrace=123]="openBrace",n[n.openBracket=91]="openBracket",n[n.plus=43]="plus",n[n.slash=47]="slash",n[n.formFeed=12]="formFeed",n[n.tab=9]="tab"})(h||(h={})),new Array(20).fill(0).map((n,i)=>" ".repeat(i));const E=200;new Array(E).fill(0).map((n,i)=>`
`+" ".repeat(i)),new Array(E).fill(0).map((n,i)=>"\r"+" ".repeat(i)),new Array(E).fill(0).map((n,i)=>`\r
`+" ".repeat(i)),new Array(E).fill(0).map((n,i)=>`
`+" ".repeat(i)),new Array(E).fill(0).map((n,i)=>"\r"+" ".repeat(i)),new Array(E).fill(0).map((n,i)=>`\r
`+" ".repeat(i));var M;(function(n){n.DEFAULT={allowTrailingComma:!1}})(M||(M={}));const J=z;var L;(function(n){n[n.None=0]="None",n[n.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",n[n.UnexpectedEndOfString=2]="UnexpectedEndOfString",n[n.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",n[n.InvalidUnicode=4]="InvalidUnicode",n[n.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",n[n.InvalidCharacter=6]="InvalidCharacter"})(L||(L={}));var j;(function(n){n[n.OpenBraceToken=1]="OpenBraceToken",n[n.CloseBraceToken=2]="CloseBraceToken",n[n.OpenBracketToken=3]="OpenBracketToken",n[n.CloseBracketToken=4]="CloseBracketToken",n[n.CommaToken=5]="CommaToken",n[n.ColonToken=6]="ColonToken",n[n.NullKeyword=7]="NullKeyword",n[n.TrueKeyword=8]="TrueKeyword",n[n.FalseKeyword=9]="FalseKeyword",n[n.StringLiteral=10]="StringLiteral",n[n.NumericLiteral=11]="NumericLiteral",n[n.LineCommentTrivia=12]="LineCommentTrivia",n[n.BlockCommentTrivia=13]="BlockCommentTrivia",n[n.LineBreakTrivia=14]="LineBreakTrivia",n[n.Trivia=15]="Trivia",n[n.Unknown=16]="Unknown",n[n.EOF=17]="EOF"})(j||(j={}));var S;(function(n){n[n.InvalidSymbol=1]="InvalidSymbol",n[n.InvalidNumberFormat=2]="InvalidNumberFormat",n[n.PropertyNameExpected=3]="PropertyNameExpected",n[n.ValueExpected=4]="ValueExpected",n[n.ColonExpected=5]="ColonExpected",n[n.CommaExpected=6]="CommaExpected",n[n.CloseBraceExpected=7]="CloseBraceExpected",n[n.CloseBracketExpected=8]="CloseBracketExpected",n[n.EndOfFileExpected=9]="EndOfFileExpected",n[n.InvalidCommentToken=10]="InvalidCommentToken",n[n.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",n[n.UnexpectedEndOfString=12]="UnexpectedEndOfString",n[n.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",n[n.InvalidUnicode=14]="InvalidUnicode",n[n.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",n[n.InvalidCharacter=16]="InvalidCharacter"})(S||(S={}));function Q(n){return{getInitialState:()=>new R(null,null,!1,null),tokenize:(i,t)=>en(n,i,t)}}const P="delimiter.bracket.json",H="delimiter.array.json",Y="delimiter.colon.json",G="delimiter.comma.json",X="keyword.json",Z="keyword.json",$="string.value.json",K="number.json",x="string.key.json",C="comment.block.json",nn="comment.line.json";class T{constructor(i,t){this.parent=i,this.type=t}static pop(i){return i?i.parent:null}static push(i,t){return new T(i,t)}static equals(i,t){if(!i&&!t)return!0;if(!i||!t)return!1;for(;i&&t;){if(i===t)return!0;if(i.type!==t.type)return!1;i=i.parent,t=t.parent}return!0}}class R{constructor(i,t,e,u){a(this,"_state");a(this,"scanError");a(this,"lastWasColon");a(this,"parents");this._state=i,this.scanError=t,this.lastWasColon=e,this.parents=u}clone(){return new R(this._state,this.scanError,this.lastWasColon,this.parents)}equals(i){return i===this?!0:!i||!(i instanceof R)?!1:this.scanError===i.scanError&&this.lastWasColon===i.lastWasColon&&T.equals(this.parents,i.parents)}getStateData(){return this._state}setStateData(i){this._state=i}}function en(n,i,t,e=0){let u=0,r=!1;switch(t.scanError){case 2:i='"'+i,u=1;break;case 1:i="/*"+i,u=2;break}const o=J(i);let f=t.lastWasColon,k=t.parents;const O={tokens:[],endState:t.clone()};for(;;){let D=e+o.getPosition(),m="";const U=o.scan();if(U===17)break;if(D===e+o.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+i.substr(o.getPosition(),3));switch(r&&(D-=u),r=u>0,U){case 1:k=T.push(k,0),m=P,f=!1;break;case 2:k=T.pop(k),m=P,f=!1;break;case 3:k=T.push(k,1),m=H,f=!1;break;case 4:k=T.pop(k),m=H,f=!1;break;case 6:m=Y,f=!0;break;case 5:m=G,f=!1;break;case 8:case 9:m=X,f=!1;break;case 7:m=Z,f=!1;break;case 10:const B=(k?k.type:0)===1;m=f||B?$:x,f=!1;break;case 11:m=K,f=!1;break}if(n)switch(U){case 12:m=nn;break;case 13:m=C;break}O.endState=new R(t.getStateData(),o.getTokenError(),f,k),O.tokens.push({startIndex:D,scopes:m})}return O}let A;function tn(){return new Promise((n,i)=>{if(!A)return i("JSON not registered!");n(A)})}class ln extends s.DiagnosticsAdapter{constructor(i,t,e){super(i,t,e.onDidChange),this._disposables.push(_.editor.onWillDisposeModel(u=>{this._resetSchema(u.uri)})),this._disposables.push(_.editor.onDidChangeModelLanguage(u=>{this._resetSchema(u.model.uri)}))}_resetSchema(i){this._worker().then(t=>{t.resetSchema(i.toString())})}}function on(n){const i=[],t=[],e=new W(n);i.push(e),A=(...o)=>e.getLanguageServiceWorker(...o);function u(){const{languageId:o,modeConfiguration:f}=n;q(t),f.documentFormattingEdits&&t.push(_.languages.registerDocumentFormattingEditProvider(o,new s.DocumentFormattingEditProvider(A))),f.documentRangeFormattingEdits&&t.push(_.languages.registerDocumentRangeFormattingEditProvider(o,new s.DocumentRangeFormattingEditProvider(A))),f.completionItems&&t.push(_.languages.registerCompletionItemProvider(o,new s.CompletionAdapter(A,[" ",":",'"']))),f.hovers&&t.push(_.languages.registerHoverProvider(o,new s.HoverAdapter(A))),f.documentSymbols&&t.push(_.languages.registerDocumentSymbolProvider(o,new s.DocumentSymbolAdapter(A))),f.tokens&&t.push(_.languages.setTokensProvider(o,Q(!0))),f.colors&&t.push(_.languages.registerColorProvider(o,new s.DocumentColorAdapter(A))),f.foldingRanges&&t.push(_.languages.registerFoldingRangeProvider(o,new s.FoldingRangeAdapter(A))),f.diagnostics&&t.push(new ln(o,A,n)),f.selectionRanges&&t.push(_.languages.registerSelectionRangeProvider(o,new s.SelectionRangeAdapter(A)))}u(),i.push(_.languages.setLanguageConfiguration(n.languageId,sn));let r=n.modeConfiguration;return n.onDidChange(o=>{o.modeConfiguration!==r&&(r=o.modeConfiguration,u())}),i.push(V(t)),V(i)}function V(n){return{dispose:()=>q(n)}}function q(n){for(;n.length;)n.pop().dispose()}const sn={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]};c.CompletionAdapter=s.CompletionAdapter,c.DefinitionAdapter=s.DefinitionAdapter,c.DiagnosticsAdapter=s.DiagnosticsAdapter,c.DocumentColorAdapter=s.DocumentColorAdapter,c.DocumentFormattingEditProvider=s.DocumentFormattingEditProvider,c.DocumentHighlightAdapter=s.DocumentHighlightAdapter,c.DocumentLinkAdapter=s.DocumentLinkAdapter,c.DocumentRangeFormattingEditProvider=s.DocumentRangeFormattingEditProvider,c.DocumentSymbolAdapter=s.DocumentSymbolAdapter,c.FoldingRangeAdapter=s.FoldingRangeAdapter,c.HoverAdapter=s.HoverAdapter,c.ReferenceAdapter=s.ReferenceAdapter,c.RenameAdapter=s.RenameAdapter,c.SelectionRangeAdapter=s.SelectionRangeAdapter,c.fromPosition=s.fromPosition,c.fromRange=s.fromRange,c.toRange=s.toRange,c.toTextEdit=s.toTextEdit,c.WorkerManager=W,c.getWorker=tn,c.setupMode=on,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});