UNPKG

monaco-editor

Version:
2 lines (1 loc) 6.17 kB
define("vs/jsonMode-DLUiMUrI",["exports","./json.worker-BizpAl9O","./workers-BBttULjf","./lspLanguageFeatures-BIkJOWLw","./main-BEx-Fmlo","./editor-KLE6jdfb"],(function(o,S,P,n,R,l){"use strict";class E{constructor(e){this._defaults=e,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=P.createWebWorker({moduleId:"vs/language/json/jsonWorker",createWorker:()=>new Worker(S.__worker_url_0__,{type:"module"}),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(...e){let t;return this._getClient().then(a=>{t=a}).then(a=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(a=>t)}}function v(s){return{getInitialState:()=>new g(null,null,!1,null),tokenize:(e,t)=>K(s,e,t)}}const w="delimiter.bracket.json",A="delimiter.array.json",O="delimiter.colon.json",b="delimiter.comma.json",I="keyword.json",T="keyword.json",W="string.value.json",N="number.json",y="string.key.json",M="comment.block.json",j="comment.line.json";class m{constructor(e,t){this.parent=e,this.type=t}static pop(e){return e?e.parent:null}static push(e,t){return new m(e,t)}static equals(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0}}class g{constructor(e,t,a,c){this._state=e,this.scanError=t,this.lastWasColon=a,this.parents=c}clone(){return new g(this._state,this.scanError,this.lastWasColon,this.parents)}equals(e){return e===this?!0:!e||!(e instanceof g)?!1:this.scanError===e.scanError&&this.lastWasColon===e.lastWasColon&&m.equals(this.parents,e.parents)}getStateData(){return this._state}setStateData(e){this._state=e}}function K(s,e,t,a=0){let c=0,_=!1;switch(t.scanError){case 2:e='"'+e,c=1;break;case 1:e="/*"+e,c=2;break}const i=R.createScanner(e);let r=t.lastWasColon,u=t.parents;const f={tokens:[],endState:t.clone()};for(;;){let k=a+i.getPosition(),d="";const p=i.scan();if(p===17)break;if(k===a+i.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+e.substr(i.getPosition(),3));switch(_&&(k-=c),_=c>0,p){case 1:u=m.push(u,0),d=w,r=!1;break;case 2:u=m.pop(u),d=w,r=!1;break;case 3:u=m.push(u,1),d=A,r=!1;break;case 4:u=m.pop(u),d=A,r=!1;break;case 6:d=O,r=!0;break;case 5:d=b,r=!1;break;case 8:case 9:d=I,r=!1;break;case 7:d=T,r=!1;break;case 10:const V=(u?u.type:0)===1;d=r||V?W:y,r=!1;break;case 11:d=N,r=!1;break}switch(p){case 12:d=j;break;case 13:d=M;break}f.endState=new g(t.getStateData(),i.getTokenError(),r,u),f.tokens.push({startIndex:k,scopes:d})}return f}let h;function U(){return new Promise((s,e)=>{if(!h)return e("JSON not registered!");s(h)})}class H extends n.DiagnosticsAdapter{constructor(e,t,a){super(e,t,a.onDidChange),this._disposables.push(l.editor.onWillDisposeModel(c=>{this._resetSchema(c.uri)})),this._disposables.push(l.editor.onDidChangeModelLanguage(c=>{this._resetSchema(c.model.uri)}))}_resetSchema(e){this._worker().then(t=>{t.resetSchema(e.toString())})}}function q(s){const e=[],t=[],a=new E(s);e.push(a),h=(...i)=>a.getLanguageServiceWorker(...i);function c(){const{languageId:i,modeConfiguration:r}=s;D(t),r.documentFormattingEdits&&t.push(l.languages.registerDocumentFormattingEditProvider(i,new n.DocumentFormattingEditProvider(h))),r.documentRangeFormattingEdits&&t.push(l.languages.registerDocumentRangeFormattingEditProvider(i,new n.DocumentRangeFormattingEditProvider(h))),r.completionItems&&t.push(l.languages.registerCompletionItemProvider(i,new n.CompletionAdapter(h,[" ",":",'"']))),r.hovers&&t.push(l.languages.registerHoverProvider(i,new n.HoverAdapter(h))),r.documentSymbols&&t.push(l.languages.registerDocumentSymbolProvider(i,new n.DocumentSymbolAdapter(h))),r.tokens&&t.push(l.languages.setTokensProvider(i,v(!0))),r.colors&&t.push(l.languages.registerColorProvider(i,new n.DocumentColorAdapter(h))),r.foldingRanges&&t.push(l.languages.registerFoldingRangeProvider(i,new n.FoldingRangeAdapter(h))),r.diagnostics&&t.push(new H(i,h,s)),r.selectionRanges&&t.push(l.languages.registerSelectionRangeProvider(i,new n.SelectionRangeAdapter(h)))}c(),e.push(l.languages.setLanguageConfiguration(s.languageId,B));let _=s.modeConfiguration;return s.onDidChange(i=>{i.modeConfiguration!==_&&(_=i.modeConfiguration,c())}),e.push(C(t)),C(e)}function C(s){return{dispose:()=>D(s)}}function D(s){for(;s.length;)s.pop().dispose()}const B={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]};o.CompletionAdapter=n.CompletionAdapter,o.DefinitionAdapter=n.DefinitionAdapter,o.DiagnosticsAdapter=n.DiagnosticsAdapter,o.DocumentColorAdapter=n.DocumentColorAdapter,o.DocumentFormattingEditProvider=n.DocumentFormattingEditProvider,o.DocumentHighlightAdapter=n.DocumentHighlightAdapter,o.DocumentLinkAdapter=n.DocumentLinkAdapter,o.DocumentRangeFormattingEditProvider=n.DocumentRangeFormattingEditProvider,o.DocumentSymbolAdapter=n.DocumentSymbolAdapter,o.FoldingRangeAdapter=n.FoldingRangeAdapter,o.HoverAdapter=n.HoverAdapter,o.ReferenceAdapter=n.ReferenceAdapter,o.RenameAdapter=n.RenameAdapter,o.SelectionRangeAdapter=n.SelectionRangeAdapter,o.fromPosition=n.fromPosition,o.fromRange=n.fromRange,o.toRange=n.toRange,o.toTextEdit=n.toTextEdit,o.WorkerManager=E,o.getWorker=U,o.setupMode=q,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})}));