@arcgis/coding-components 5.0.0-next.50 → 5.0.0-next.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addons.js +1 -1
- package/dist/cdn/{6Y5OA6RA.js → 2ANR75WD.js} +2 -2
- package/dist/cdn/{PYDQLQZO.js → 2NSWS3E6.js} +2 -2
- package/dist/cdn/{IZBYAGUQ.js → 34XKO42T.js} +2 -2
- package/dist/cdn/{C52JGS5N.js → 4TKOXPBP.js} +2 -2
- package/dist/cdn/{5QWAKCLT.js → AOZVFKJZ.js} +2 -2
- package/dist/cdn/{RLNZT7YU.js → AUOZCMWG.js} +2 -2
- package/dist/cdn/B3FZWYA3.js +62 -0
- package/dist/cdn/{MN5COMH5.js → BJ6G4YA4.js} +2 -2
- package/dist/cdn/{3RHG7CIL.js → BKA6JHS3.js} +2 -2
- package/dist/cdn/{EPIFY2VR.js → C4G77O7M.js} +1 -1
- package/dist/cdn/{YTCWMXES.js → DPIGZKZ4.js} +1 -1
- package/dist/cdn/{3Y733UJR.js → EKBWE65U.js} +2 -2
- package/dist/cdn/{NB77OUMQ.js → ENKHDUXX.js} +2 -2
- package/dist/cdn/{WUMWVZZK.js → ES5FFL4T.js} +2 -2
- package/dist/cdn/{4VWE222D.js → EV3KYXV2.js} +2 -2
- package/dist/cdn/{X7F5D4VA.js → EWP2WEXJ.js} +2 -2
- package/dist/cdn/{3RBWQ2PI.js → F3TG34KM.js} +2 -2
- package/dist/cdn/{36UZPGBN.js → FHLXZDXN.js} +2 -2
- package/dist/cdn/{SCPIXD46.js → FSQSMRF5.js} +2 -2
- package/dist/cdn/{CIBOSZ2V.js → FZ3YBRNI.js} +1 -1
- package/dist/cdn/{NV5GKSO6.js → G2T3CKTT.js} +2 -2
- package/dist/cdn/{DA5KZLMN.js → G6OAX536.js} +2 -2
- package/dist/cdn/{K7PG5U6W.js → IDBH3J5F.js} +2 -2
- package/dist/cdn/{EYFVKHVP.js → K2W6DDTF.js} +2 -2
- package/dist/cdn/{MHL5RKE5.js → KXUBR3Y6.js} +2 -2
- package/dist/cdn/{A3FAAF3H.js → LXAESJKL.js} +1 -1
- package/dist/cdn/{A7FTFLV4.js → MCKWWJFY.js} +2 -2
- package/dist/cdn/MDQGQHRK.js +4 -0
- package/dist/cdn/{NER3F7V3.js → MRPHM37J.js} +2 -2
- package/dist/cdn/{KZIT4ISV.js → OOQNKTI7.js} +2 -2
- package/dist/cdn/{OBWP5GHD.js → OSLSZWKC.js} +1 -1
- package/dist/cdn/{YGUYBGIM.js → PCIB4KX3.js} +2 -2
- package/dist/cdn/{QS2KFOBK.js → PKJ54DLX.js} +2 -2
- package/dist/cdn/{WN4IIZPY.js → PKPOCAOX.js} +2 -2
- package/dist/cdn/{PBECRFLR.js → RUQD4WS6.js} +2 -2
- package/dist/cdn/{EDQJ4DZR.js → SHF7N7BO.js} +2 -2
- package/dist/cdn/{5YNQ2D5S.js → SRRTRUDA.js} +3 -3
- package/dist/cdn/{FMBQAZAN.js → STXNCQ2Y.js} +1 -1
- package/dist/cdn/{TQZF5WEI.js → TDTEXT7R.js} +2 -2
- package/dist/cdn/{AXGPWMOK.js → VILMT6SI.js} +2 -2
- package/dist/cdn/{FW224ELU.js → W5SP2FOM.js} +2 -2
- package/dist/cdn/{CPWYWNOP.js → WFT7M2TR.js} +2 -2
- package/dist/cdn/{NKT5UZFP.js → WUQDHFLU.js} +2 -2
- package/dist/cdn/{63KQIV5V.js → X6IPOHYM.js} +2 -2
- package/dist/cdn/{H7Z7Q333.js → XSI7CHOD.js} +1 -1
- package/dist/cdn/{YNOGYZHA.js → ZLBM5PVQ.js} +2 -2
- package/dist/cdn/{HEJ2D2QU.js → ZQHED3MJ.js} +2 -2
- package/dist/cdn/assets/code-editor/sql-expr.worker.js +2 -2
- package/dist/cdn/index.js +2 -2
- package/dist/chunks/arcade-contribution.js +1 -1
- package/dist/chunks/arcade-defaults.js +1 -1
- package/dist/chunks/arcade-executor.js +1 -1
- package/dist/chunks/arcade-mode.js +1 -1
- package/dist/chunks/arcade-service-accessors.js +1 -1
- package/dist/chunks/colorize.js +1 -1
- package/dist/chunks/editor.js +1 -1
- package/dist/chunks/fields.js +1 -1
- package/dist/chunks/language-defaults-base.js +1 -1
- package/dist/chunks/markdown.js +527 -505
- package/dist/chunks/monaco-importer.js +1 -1
- package/dist/chunks/runtime.js +1 -1
- package/dist/chunks/sql-expr-defaults.js +1 -1
- package/dist/chunks/sql-expr-mode.js +1 -1
- package/dist/chunks/sql-expr-service-accessors.js +1 -1
- package/dist/chunks/useT9n.js +1 -1
- package/dist/chunks/utilities.js +1 -1
- package/dist/components/arcgis-arcade-coding-assistant/customElement.js +1 -1
- package/dist/components/arcgis-arcade-editor/customElement.js +1 -1
- package/dist/components/arcgis-arcade-results/customElement.js +1 -1
- package/dist/components/arcgis-arcade-suggestions/customElement.js +1 -1
- package/dist/components/arcgis-code-editor/customElement.js +1 -1
- package/dist/components/arcgis-code-viewer/customElement.js +1 -1
- package/dist/components/arcgis-editor-variables/customElement.js +1 -1
- package/dist/components/arcgis-language-api-panel/customElement.js +1 -1
- package/dist/components/arcgis-sql-expression-editor/customElement.js +1 -1
- package/dist/components/arcgis-sql-expression-fields/customElement.js +1 -1
- package/dist/docs/api.json +2 -2
- package/dist/docs/docs.json +2 -2
- package/dist/docs/web-types.json +1 -1
- package/dist/index.js +1 -1
- package/dist/loader.js +1 -1
- package/dist/monacoStyles.js +1 -1
- package/package.json +5 -5
- package/dist/cdn/FHDL6XJJ.js +0 -63
- package/dist/cdn/O5JPV76R.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
3
|
-
v5.0.0-next.
|
|
4
|
-
import{a as T}from"./H7Z7Q333.js";import{a as f}from"./5YNQ2D5S.js";import{a as m,b as o,c as E,g as L}from"./EPIFY2VR.js";import"./RLNZT7YU.js";import{a as w}from"./YTCWMXES.js";import{Gl as F,Kl as x,Nl as p,Sl as g,kk as $}from"./AXGPWMOK.js";import"./OBWP5GHD.js";$();var P=["<=",">=","==","!=","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","=","+=","-=","*=","**=","/=","%="],W={wordPattern:/(-?\d*\.\d\w*)|([^`~!#%\^&\*\(\)\-=\+\[\{\]\}\\\|;:'",\.<>\/\?\s]+)/gu,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]}],autoCloseBefore:";:.,=}])` \n ",folding:{markers:{start:/^\s*\/\/\s*#?region\b/u,end:/^\s*\/\/\s*#?endregion\b/u}},indentationRules:{decreaseIndentPattern:/^((?!.*?\/\*).*\*\/)?\s*[\}\]\)].*$/u,increaseIndentPattern:/^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$/u}},V={defaultToken:"invalid",tokenPostfix:".arcgis",ignoreCase:!0,keywords:L,operators:P,constants:["true","false","null"],symbols:/[=><!~?:&|+\-*\/\^%]+/u,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/u,digits:/\d+(_+\d+)*/u,octaldigits:/[0-7]+(_+[0-7]+)*/u,binarydigits:/[0-1]+(_+[0-1]+)*/u,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/u,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/u,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/u,tokenizer:{root:[[/[{}]/u,"delimiter.bracket"],{include:"common"}],common:[[/import(?=\s)/u,{token:"keyword",next:"@import"}],[/for(?=\s)/u,{token:"keyword",next:"@forLoopInit"}],[/[a-z_$][\w$]*/u,{cases:{"@constants":"constant","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|\/|,|\)|\]|\}|$))/u,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/u,"@brackets"],[/[<>](?!@symbols)/u,"@brackets"],[/@symbols/u,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/u,"number"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/u,"number"],[/0[xX](@hexdigits)/u,"number"],[/0[oO]?(@octaldigits)/u,"number"],[/0[bB](@binarydigits)/u,"number"],[/(@digits)/u,"number"],[/[;,.]/u,"delimiter"],[/"([^"\\]|\\.)*$/u,"string.invalid"],[/'([^'\\]|\\.)*$/u,"string.invalid"],[/"/u,"string","@string_double"],[/'/u,"string","@string_single"],[/`/u,"string","@string_backtick"]],import:[[/import(?=\s)/u,{token:"keyword"}],{include:"@whitespace"},[/[a-z_$][\w$]*/u,"identifier"],{include:"@whitespace"},[/from/u,{token:"keyword",next:"@popall"}]],forLoopInit:[{include:"@whitespace"},[/\(/u,{token:"@brackets",next:"@forLoopVar"}],[/.*/u,"","@pop"]],forLoopVar:[{include:"@whitespace"},[/var(?=\s)/u,"keyword","@forLoopVarName"],[/[a-z_$][\w$]*/u,"identifier","@forLoopCheckInOf"],[/\)/u,{token:"@brackets",next:"@popall"}]],forLoopVarName:[{include:"@whitespace"},[/[a-z_$][\w$]*/u,"identifier","@forLoopCheckInOf"],[/\)/u,{token:"@brackets",next:"@popall"}]],forLoopCheckInOf:[{include:"@whitespace"},[/in(?=\s)/u,"keyword","@popall"],[/of(?=\s)/u,"keyword","@popall"],[/[a-z_$][\w$]*/u,"identifier"],[/\)/u,{token:"@brackets",next:"@popall"}]],whitespace:[[/[ \t\r\n]+/u,""],[/\/\*/u,"comment","@comment"],[/\/\/.*$/u,"comment"]],comment:[[/[^\/*]+/u,"comment"],[/\*\//u,"comment","@pop"],[/[\/*]/u,"comment"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/u,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/u,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/u,["regexp.escape.control","regexp.escape.control"]],[/[()]/u,"regexp.escape.control"],[/@regexpctl/u,"regexp.escape.control"],[/[^\\\/]/u,"regexp"],[/@regexpesc/u,"regexp.escape"],[/\\\./u,"regexp.invalid"],[/(\/)([gimsuy]*)/u,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/u,"regexp.escape.control"],[/\^/u,"regexp.invalid"],[/@regexpesc/u,"regexp.escape"],[/[^\]]/u,"regexp"],[/\]/u,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/"/u,"string","@pop"]],string_single:[[/[^\\']+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/'/u,"string","@pop"]],string_backtick:[[/\$\{/u,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/`/u,"string","@pop"]],bracketCounting:[[/\{/u,"delimiter.bracket","@bracketCounting"],[/\}/u,"delimiter.bracket","@pop"],{include:"common"}]}},b=class{constructor(e,n,{defaults:a,diagnosticsService:d}){this._languageId=e,this._worker=n,this._disposables=[],this._modelListeners=new Map,this._diagnosticsService=d,this._defaults=a,f().then(c=>{let u=s=>{let r=s.getLanguageId();if(r!==this._languageId)return;let i=T(()=>{this._doValidate(s,r).catch(A=>{throw A})}),S=s.onDidChangeContent(i),D=s.onDidChangeAttached(i);this._modelListeners.set(s.uri.toString(),[S,D]),this._doValidate(s,r).catch(console.error)},l=s=>{let r=s.uri.toString();c.setModelMarkers(s,this._languageId,[]);let i=this._modelListeners.get(r);if(i){for(;i.length;)i.pop()?.dispose();this._modelListeners.delete(r)}};this._disposables.push(c.onDidCreateModel(u)),this._disposables.push(c.onWillDisposeModel(s=>{l(s)})),this._disposables.push(c.onDidChangeModelLanguage(s=>{l(s.model),u(s.model)})),this._disposables.push(a.onDidChange(()=>{c.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(l(s),u(s))})})),this._disposables.push(a.onModelContextDidChange(s=>{c.getModels().forEach(r=>{r.getLanguageId()===this._languageId&&r.uri.toString()===s&&this._doValidate(r,this._languageId).catch(console.error)})})),this._disposables.push({dispose:()=>{this._modelListeners.forEach(s=>s.forEach(r=>r.dispose())),this._modelListeners.clear()}}),c.getModels().forEach(u)})}dispose(){this._disposables.forEach(e=>e.dispose()),this._disposables=[]}async _doValidate(e,n){if(e.isAttachedToEditor())try{let a=await f(),d=await this._worker(e.uri),c=this._defaults.getApiContextForModel(e.uri),u=await d.doValidation(e.uri.toString(),c),l=u.map(s=>K(e.uri,s));this._diagnosticsService.fireDiagnosticsChange(e.uri,u),a.setModelMarkers(e,n,l)}catch(a){console.error(a)}}};function R(t){switch(t){case m.Error:return p.Error;case m.Warning:return p.Warning;case m.Information:return p.Info;case m.Hint:return p.Hint;default:return p.Info}}function K(t,e){return{severity:R(e.severity),startLineNumber:e.range.start.line+1,startColumn:e.range.start.character+1,endLineNumber:e.range.end.line+1,endColumn:e.range.end.character+1,message:e.message}}function N(t){return{character:t.column-1,line:t.lineNumber-1}}function h(t){return new x(t.start.line+1,t.start.character+1,t.end.line+1,t.end.character+1)}function z(t){return{range:h(t.range),text:t.newText}}function O(t){return typeof t.insert<"u"&&typeof t.replace<"u"}function H(t){let e=g.CompletionItemKind;switch(t){case o.Text:return e.Text;case o.Method:return e.Method;case o.Function:return e.Function;case o.Constructor:return e.Constructor;case o.Field:return e.Field;case o.Variable:return e.Variable;case o.Class:return e.Class;case o.Interface:return e.Interface;case o.Module:return e.Module;case o.Property:return e.Property;case o.Unit:return e.Unit;case o.Value:return e.Value;case o.Enum:return e.Enum;case o.Keyword:return e.Keyword;case o.Snippet:return e.Snippet;case o.Color:return e.Color;case o.File:return e.File;case o.Reference:return e.Reference;case o.Folder:return e.Folder;case o.EnumMember:return e.EnumMember;case o.Constant:return e.Constant;case o.Struct:return e.Struct;case o.Event:return e.Event;case o.Operator:return e.Operator;case o.TypeParameter:return e.TypeParameter;default:return e.Property}}var C=class{constructor(e,n){this._worker=e,this._defaults=n,this.triggerCharacters=[".","("]}async provideCompletionItems(e,n){let a=await this._worker(e.uri),d=this._defaults.getApiContextForModel(e.uri),c=await a.doComplete(e.uri.toString(),N(n),d),u=e.getWordUntilPosition(n),l=new x(n.lineNumber,u.startColumn,n.lineNumber,u.endColumn),s=c.items.map(r=>{let i={label:r.label,insertText:r.insertText||r.label,sortText:r.sortText,filterText:r.filterText,detail:r.detail,range:l,kind:H(r.kind)};return r.textEdit&&(O(r.textEdit)?i.range={insert:h(r.textEdit.insert),replace:h(r.textEdit.replace)}:i.range=h(r.textEdit.range),i.insertText=r.textEdit.newText),r.additionalTextEdits&&(i.additionalTextEdits=r.additionalTextEdits.map(z)),r.insertTextFormat===E.Snippet&&(i.insertTextRules=g.CompletionItemInsertTextRule.InsertAsSnippet),r.documentation&&(typeof r.documentation=="string"?i.documentation=r.documentation:i.documentation={supportThemeIcons:!1,value:r.documentation.value,supportHtml:!0}),i});return{incomplete:c.isIncomplete,suggestions:s}}},y=class{constructor(e,n){this._worker=e,this._defaults=n}async provideDocumentFormattingEdits(e){let n=await this._worker(e.uri),a=this._defaults.getApiContextForModel(e.uri.toString());return(await n.doFormat(e.uri.toString(),a)).map(d=>({range:h(d.range),text:d.newText}))}},_=new w,k=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this.stopWorker())}dispose(){this._configChangeListener.dispose(),this.stopWorker()}stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null,_=new w),this._client=null}static async waitForWorker(){return await _.promise}async _getClientProxy(){let e=await f();if(!this._client){let{languageId:n}=this._defaults;this._worker=e.createWebWorker({moduleId:"ArcadeWorker",label:n,createData:{languageId:n},host:this._defaults.workerHost}),_.resolve(this._worker),this._client=this._worker.getProxy()}return await this._client}async getLanguageServiceWorker(...e){let n=await this._getClientProxy();return await this._worker?.withSyncedResources(e),n}},I;async function J(...t){return await k.waitForWorker(),await new Promise((e,n)=>{if(!I){n(new Error("Arcade not registered!"));return}e(I(...t))})}var v=class{constructor(){this._onDiagnosticsChange=new F}get onDiagnosticsChange(){return this._onDiagnosticsChange.event}fireDiagnosticsChange(e,n){this._onDiagnosticsChange.fire({uri:e,diagnostics:n})}},M=new v;function ee(){return M}function te(t){let e=new k(t),n=async(...a)=>await e.getLanguageServiceWorker(...a);I=n,g.setMonarchTokensProvider(t.languageId,V),g.setLanguageConfiguration(t.languageId,W),g.registerCompletionItemProvider(t.languageId,new C(n,t)),g.registerDocumentFormattingEditProvider(t.languageId,new y(n,t)),new b(t.languageId,n,{defaults:t,diagnosticsService:M})}export{ee as getArcadeDiagnosticService,J as getArcadeWorker,te as setupMode};
|
|
3
|
+
v5.0.0-next.52 */
|
|
4
|
+
import{a as T}from"./XSI7CHOD.js";import{a as f}from"./SRRTRUDA.js";import{a as m,b as o,c as E,g as L}from"./C4G77O7M.js";import"./AUOZCMWG.js";import{a as w}from"./DPIGZKZ4.js";import{Gl as F,Kl as x,Nl as p,Sl as g,kk as $}from"./VILMT6SI.js";import"./OSLSZWKC.js";$();var P=["<=",">=","==","!=","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","=","+=","-=","*=","**=","/=","%="],W={wordPattern:/(-?\d*\.\d\w*)|([^`~!#%\^&\*\(\)\-=\+\[\{\]\}\\\|;:'",\.<>\/\?\s]+)/gu,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]}],autoCloseBefore:";:.,=}])` \n ",folding:{markers:{start:/^\s*\/\/\s*#?region\b/u,end:/^\s*\/\/\s*#?endregion\b/u}},indentationRules:{decreaseIndentPattern:/^((?!.*?\/\*).*\*\/)?\s*[\}\]\)].*$/u,increaseIndentPattern:/^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$/u}},V={defaultToken:"invalid",tokenPostfix:".arcgis",ignoreCase:!0,keywords:L,operators:P,constants:["true","false","null"],symbols:/[=><!~?:&|+\-*\/\^%]+/u,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/u,digits:/\d+(_+\d+)*/u,octaldigits:/[0-7]+(_+[0-7]+)*/u,binarydigits:/[0-1]+(_+[0-1]+)*/u,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/u,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/u,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/u,tokenizer:{root:[[/[{}]/u,"delimiter.bracket"],{include:"common"}],common:[[/import(?=\s)/u,{token:"keyword",next:"@import"}],[/for(?=\s)/u,{token:"keyword",next:"@forLoopInit"}],[/[a-z_$][\w$]*/u,{cases:{"@constants":"constant","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|\/|,|\)|\]|\}|$))/u,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/u,"@brackets"],[/[<>](?!@symbols)/u,"@brackets"],[/@symbols/u,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/u,"number"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/u,"number"],[/0[xX](@hexdigits)/u,"number"],[/0[oO]?(@octaldigits)/u,"number"],[/0[bB](@binarydigits)/u,"number"],[/(@digits)/u,"number"],[/[;,.]/u,"delimiter"],[/"([^"\\]|\\.)*$/u,"string.invalid"],[/'([^'\\]|\\.)*$/u,"string.invalid"],[/"/u,"string","@string_double"],[/'/u,"string","@string_single"],[/`/u,"string","@string_backtick"]],import:[[/import(?=\s)/u,{token:"keyword"}],{include:"@whitespace"},[/[a-z_$][\w$]*/u,"identifier"],{include:"@whitespace"},[/from/u,{token:"keyword",next:"@popall"}]],forLoopInit:[{include:"@whitespace"},[/\(/u,{token:"@brackets",next:"@forLoopVar"}],[/.*/u,"","@pop"]],forLoopVar:[{include:"@whitespace"},[/var(?=\s)/u,"keyword","@forLoopVarName"],[/[a-z_$][\w$]*/u,"identifier","@forLoopCheckInOf"],[/\)/u,{token:"@brackets",next:"@popall"}]],forLoopVarName:[{include:"@whitespace"},[/[a-z_$][\w$]*/u,"identifier","@forLoopCheckInOf"],[/\)/u,{token:"@brackets",next:"@popall"}]],forLoopCheckInOf:[{include:"@whitespace"},[/in(?=\s)/u,"keyword","@popall"],[/of(?=\s)/u,"keyword","@popall"],[/[a-z_$][\w$]*/u,"identifier"],[/\)/u,{token:"@brackets",next:"@popall"}]],whitespace:[[/[ \t\r\n]+/u,""],[/\/\*/u,"comment","@comment"],[/\/\/.*$/u,"comment"]],comment:[[/[^\/*]+/u,"comment"],[/\*\//u,"comment","@pop"],[/[\/*]/u,"comment"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/u,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/u,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/u,["regexp.escape.control","regexp.escape.control"]],[/[()]/u,"regexp.escape.control"],[/@regexpctl/u,"regexp.escape.control"],[/[^\\\/]/u,"regexp"],[/@regexpesc/u,"regexp.escape"],[/\\\./u,"regexp.invalid"],[/(\/)([gimsuy]*)/u,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/u,"regexp.escape.control"],[/\^/u,"regexp.invalid"],[/@regexpesc/u,"regexp.escape"],[/[^\]]/u,"regexp"],[/\]/u,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/"/u,"string","@pop"]],string_single:[[/[^\\']+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/'/u,"string","@pop"]],string_backtick:[[/\$\{/u,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/`/u,"string","@pop"]],bracketCounting:[[/\{/u,"delimiter.bracket","@bracketCounting"],[/\}/u,"delimiter.bracket","@pop"],{include:"common"}]}},b=class{constructor(e,n,{defaults:a,diagnosticsService:d}){this._languageId=e,this._worker=n,this._disposables=[],this._modelListeners=new Map,this._diagnosticsService=d,this._defaults=a,f().then(c=>{let u=s=>{let r=s.getLanguageId();if(r!==this._languageId)return;let i=T(()=>{this._doValidate(s,r).catch(A=>{throw A})}),S=s.onDidChangeContent(i),D=s.onDidChangeAttached(i);this._modelListeners.set(s.uri.toString(),[S,D]),this._doValidate(s,r).catch(console.error)},l=s=>{let r=s.uri.toString();c.setModelMarkers(s,this._languageId,[]);let i=this._modelListeners.get(r);if(i){for(;i.length;)i.pop()?.dispose();this._modelListeners.delete(r)}};this._disposables.push(c.onDidCreateModel(u)),this._disposables.push(c.onWillDisposeModel(s=>{l(s)})),this._disposables.push(c.onDidChangeModelLanguage(s=>{l(s.model),u(s.model)})),this._disposables.push(a.onDidChange(()=>{c.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(l(s),u(s))})})),this._disposables.push(a.onModelContextDidChange(s=>{c.getModels().forEach(r=>{r.getLanguageId()===this._languageId&&r.uri.toString()===s&&this._doValidate(r,this._languageId).catch(console.error)})})),this._disposables.push({dispose:()=>{this._modelListeners.forEach(s=>s.forEach(r=>r.dispose())),this._modelListeners.clear()}}),c.getModels().forEach(u)})}dispose(){this._disposables.forEach(e=>e.dispose()),this._disposables=[]}async _doValidate(e,n){if(e.isAttachedToEditor())try{let a=await f(),d=await this._worker(e.uri),c=this._defaults.getApiContextForModel(e.uri),u=await d.doValidation(e.uri.toString(),c),l=u.map(s=>K(e.uri,s));this._diagnosticsService.fireDiagnosticsChange(e.uri,u),a.setModelMarkers(e,n,l)}catch(a){console.error(a)}}};function R(t){switch(t){case m.Error:return p.Error;case m.Warning:return p.Warning;case m.Information:return p.Info;case m.Hint:return p.Hint;default:return p.Info}}function K(t,e){return{severity:R(e.severity),startLineNumber:e.range.start.line+1,startColumn:e.range.start.character+1,endLineNumber:e.range.end.line+1,endColumn:e.range.end.character+1,message:e.message}}function N(t){return{character:t.column-1,line:t.lineNumber-1}}function h(t){return new x(t.start.line+1,t.start.character+1,t.end.line+1,t.end.character+1)}function z(t){return{range:h(t.range),text:t.newText}}function O(t){return typeof t.insert<"u"&&typeof t.replace<"u"}function H(t){let e=g.CompletionItemKind;switch(t){case o.Text:return e.Text;case o.Method:return e.Method;case o.Function:return e.Function;case o.Constructor:return e.Constructor;case o.Field:return e.Field;case o.Variable:return e.Variable;case o.Class:return e.Class;case o.Interface:return e.Interface;case o.Module:return e.Module;case o.Property:return e.Property;case o.Unit:return e.Unit;case o.Value:return e.Value;case o.Enum:return e.Enum;case o.Keyword:return e.Keyword;case o.Snippet:return e.Snippet;case o.Color:return e.Color;case o.File:return e.File;case o.Reference:return e.Reference;case o.Folder:return e.Folder;case o.EnumMember:return e.EnumMember;case o.Constant:return e.Constant;case o.Struct:return e.Struct;case o.Event:return e.Event;case o.Operator:return e.Operator;case o.TypeParameter:return e.TypeParameter;default:return e.Property}}var C=class{constructor(e,n){this._worker=e,this._defaults=n,this.triggerCharacters=[".","("]}async provideCompletionItems(e,n){let a=await this._worker(e.uri),d=this._defaults.getApiContextForModel(e.uri),c=await a.doComplete(e.uri.toString(),N(n),d),u=e.getWordUntilPosition(n),l=new x(n.lineNumber,u.startColumn,n.lineNumber,u.endColumn),s=c.items.map(r=>{let i={label:r.label,insertText:r.insertText||r.label,sortText:r.sortText,filterText:r.filterText,detail:r.detail,range:l,kind:H(r.kind)};return r.textEdit&&(O(r.textEdit)?i.range={insert:h(r.textEdit.insert),replace:h(r.textEdit.replace)}:i.range=h(r.textEdit.range),i.insertText=r.textEdit.newText),r.additionalTextEdits&&(i.additionalTextEdits=r.additionalTextEdits.map(z)),r.insertTextFormat===E.Snippet&&(i.insertTextRules=g.CompletionItemInsertTextRule.InsertAsSnippet),r.documentation&&(typeof r.documentation=="string"?i.documentation=r.documentation:i.documentation={supportThemeIcons:!1,value:r.documentation.value,supportHtml:!0}),i});return{incomplete:c.isIncomplete,suggestions:s}}},y=class{constructor(e,n){this._worker=e,this._defaults=n}async provideDocumentFormattingEdits(e){let n=await this._worker(e.uri),a=this._defaults.getApiContextForModel(e.uri.toString());return(await n.doFormat(e.uri.toString(),a)).map(d=>({range:h(d.range),text:d.newText}))}},_=new w,k=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this.stopWorker())}dispose(){this._configChangeListener.dispose(),this.stopWorker()}stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null,_=new w),this._client=null}static async waitForWorker(){return await _.promise}async _getClientProxy(){let e=await f();if(!this._client){let{languageId:n}=this._defaults;this._worker=e.createWebWorker({moduleId:"ArcadeWorker",label:n,createData:{languageId:n},host:this._defaults.workerHost}),_.resolve(this._worker),this._client=this._worker.getProxy()}return await this._client}async getLanguageServiceWorker(...e){let n=await this._getClientProxy();return await this._worker?.withSyncedResources(e),n}},I;async function J(...t){return await k.waitForWorker(),await new Promise((e,n)=>{if(!I){n(new Error("Arcade not registered!"));return}e(I(...t))})}var v=class{constructor(){this._onDiagnosticsChange=new F}get onDiagnosticsChange(){return this._onDiagnosticsChange.event}fireDiagnosticsChange(e,n){this._onDiagnosticsChange.fire({uri:e,diagnostics:n})}},M=new v;function ee(){return M}function te(t){let e=new k(t),n=async(...a)=>await e.getLanguageServiceWorker(...a);I=n,g.setMonarchTokensProvider(t.languageId,V),g.setLanguageConfiguration(t.languageId,W),g.registerCompletionItemProvider(t.languageId,new C(n,t)),g.registerDocumentFormattingEditProvider(t.languageId,new y(n,t)),new b(t.languageId,n,{defaults:t,diagnosticsService:M})}export{ee as getArcadeDiagnosticService,J as getArcadeWorker,te as setupMode};
|