@arcgis/coding-components 1.0.0-beta.10 → 1.0.0-beta.11

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.
@@ -0,0 +1,596 @@
1
+ import { e as editor, M as MarkerSeverity, v as DiagnosticSeverity, R as Range, w as InsertTextFormat, l as languages, C as CompletionItemKind, E as Emitter } from './arcade-defaults-24670a1d.js';
2
+ import './index-d4ec142a.js';
3
+
4
+ var Ve=(e=>(e.False="false",e.Null="null",e.True="true",e))(Ve||{}),je=(e=>(e.Break="break",e.Continue="continue",e.Else="else",e.For="for",e.From="from",e.Function="function",e.If="if",e.Import="import",e.Export="export",e.In="in",e.Return="return",e.Var="var",e.While="while",e))(je||{}),d=(e=>(e.AssignmentExpression="AssignmentExpression",e.ArrayExpression="ArrayExpression",e.BlockComment="BlockComment",e.BlockStatement="BlockStatement",e.BinaryExpression="BinaryExpression",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.ContinueStatement="ContinueStatement",e.EmptyStatement="EmptyStatement",e.ExpressionStatement="ExpressionStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExportSpecifier="ExportSpecifier",e.ForStatement="ForStatement",e.ForInStatement="ForInStatement",e.FunctionDeclaration="FunctionDeclaration",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.LineComment="LineComment",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.ObjectExpression="ObjectExpression",e.Program="Program",e.Property="Property",e.ReturnStatement="ReturnStatement",e.TemplateElement="TemplateElement",e.TemplateLiteral="TemplateLiteral",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement",e))(d||{}),_e=["++","--"],Et=["-","+","!","~"],Ft=["=","/=","*=","%=","+=","-="],At=["||","&&"],zi=["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"],$i=(e=>(e[e.Unknown=0]="Unknown",e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.Template=10]="Template",e))($i||{}),Wi=(e=>(e.InvalidModuleUri="InvalidModuleUri",e.ForInOfLoopInitializer="ForInOfLoopInitializer",e.IdentiferExpected="IdentiferExpected",e.InvalidEscapedReservedWord="InvalidEscapedReservedWord",e.InvalidExpression="InvalidExpression",e.InvalidFunctionIdentifier="InvalidFunctionIdentifier",e.InvalidHexEscapeSequence="InvalidHexEscapeSequence",e.InvalidLeftHandSideInAssignment="InvalidLeftHandSideInAssignment",e.InvalidLeftHandSideInForIn="InvalidLeftHandSideInForIn",e.InvalidTemplateHead="InvalidTemplateHead",e.InvalidVariableAssignment="InvalidVariableAssignment",e.KeyMustBeString="KeyMustBeString",e.NoFunctionInsideBlock="NoFunctionInsideBlock",e.NoFunctionInsideFunction="NoFunctionInsideFunction",e.ModuleExportRootOnly="ModuleExportRootOnly",e.ModuleImportRootOnly="ModuleImportRootOnly",e.PunctuatorExpected="PunctuatorExpected",e.TemplateOctalLiteral="TemplateOctalLiteral",e.UnexpectedBoolean="UnexpectedBoolean",e.UnexpectedEndOfScript="UnexpectedEndOfScript",e.UnexpectedIdentifier="UnexpectedIdentifier",e.UnexpectedKeyword="UnexpectedKeyword",e.UnexpectedNull="UnexpectedNull",e.UnexpectedNumber="UnexpectedNumber",e.UnexpectedPunctuator="UnexpectedPunctuator",e.UnexpectedString="UnexpectedString",e.UnexpectedTemplate="UnexpectedTemplate",e.UnexpectedToken="UnexpectedToken",e))(Wi||{});var V=[[],[],[]];_e.forEach(e=>V[e.length-1].push(e));Et.forEach(e=>V[e.length-1].push(e));At.forEach(e=>V[e.length-1].push(e));Ft.forEach(e=>V[e.length-1].push(e));zi.forEach(e=>V[e.length-1].push(e));var Bt;(function(e){function t(i){return typeof i=="string"}e.is=t;})(Bt||(Bt={}));var He;(function(e){function t(i){return typeof i=="string"}e.is=t;})(He||(He={}));var Tt;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=t;})(Tt||(Tt={}));var me;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=t;})(me||(me={}));var I;(function(e){function t(r,n){return r===Number.MAX_VALUE&&(r=me.MAX_VALUE),n===Number.MAX_VALUE&&(n=me.MAX_VALUE),{line:r,character:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.uinteger(n.line)&&u.uinteger(n.character)}e.is=i;})(I||(I={}));var E;(function(e){function t(r,n,s,a){if(u.uinteger(r)&&u.uinteger(n)&&u.uinteger(s)&&u.uinteger(a))return {start:I.create(r,n),end:I.create(s,a)};if(I.is(r)&&I.is(n))return {start:r,end:n};throw new Error("Range#create called with invalid arguments[".concat(r,", ").concat(n,", ").concat(s,", ").concat(a,"]"))}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&I.is(n.start)&&I.is(n.end)}e.is=i;})(E||(E={}));var De;(function(e){function t(r,n){return {uri:r,range:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.range)&&(u.string(n.uri)||u.undefined(n.uri))}e.is=i;})(De||(De={}));var Nt;(function(e){function t(r,n,s,a){return {targetUri:r,targetRange:n,targetSelectionRange:s,originSelectionRange:a}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.targetRange)&&u.string(n.targetUri)&&E.is(n.targetSelectionRange)&&(E.is(n.originSelectionRange)||u.undefined(n.originSelectionRange))}e.is=i;})(Nt||(Nt={}));var Ge;(function(e){function t(r,n,s,a){return {red:r,green:n,blue:s,alpha:a}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.numberRange(n.red,0,1)&&u.numberRange(n.green,0,1)&&u.numberRange(n.blue,0,1)&&u.numberRange(n.alpha,0,1)}e.is=i;})(Ge||(Ge={}));var Mt;(function(e){function t(r,n){return {range:r,color:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.range)&&Ge.is(n.color)}e.is=i;})(Mt||(Mt={}));var Ut;(function(e){function t(r,n,s){return {label:r,textEdit:n,additionalTextEdits:s}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.string(n.label)&&(u.undefined(n.textEdit)||w.is(n))&&(u.undefined(n.additionalTextEdits)||u.typedArray(n.additionalTextEdits,w.is))}e.is=i;})(Ut||(Ut={}));var _t;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region";})(_t||(_t={}));var Ot;(function(e){function t(r,n,s,a,o,c){var l={startLine:r,endLine:n};return u.defined(s)&&(l.startCharacter=s),u.defined(a)&&(l.endCharacter=a),u.defined(o)&&(l.kind=o),u.defined(c)&&(l.collapsedText=c),l}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.uinteger(n.startLine)&&u.uinteger(n.startLine)&&(u.undefined(n.startCharacter)||u.uinteger(n.startCharacter))&&(u.undefined(n.endCharacter)||u.uinteger(n.endCharacter))&&(u.undefined(n.kind)||u.string(n.kind))}e.is=i;})(Ot||(Ot={}));var Ke;(function(e){function t(r,n){return {location:r,message:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&De.is(n.location)&&u.string(n.message)}e.is=i;})(Ke||(Ke={}));var F;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4;})(F||(F={}));var Vt;(function(e){e.Unnecessary=1,e.Deprecated=2;})(Vt||(Vt={}));var jt;(function(e){function t(i){var r=i;return u.objectLiteral(r)&&u.string(r.href)}e.is=t;})(jt||(jt={}));var ge;(function(e){function t(r,n,s,a,o,c){var l={range:r,message:n};return u.defined(s)&&(l.severity=s),u.defined(a)&&(l.code=a),u.defined(o)&&(l.source=o),u.defined(c)&&(l.relatedInformation=c),l}e.create=t;function i(r){var n,s=r;return u.defined(s)&&E.is(s.range)&&u.string(s.message)&&(u.number(s.severity)||u.undefined(s.severity))&&(u.integer(s.code)||u.string(s.code)||u.undefined(s.code))&&(u.undefined(s.codeDescription)||u.string((n=s.codeDescription)===null||n===void 0?void 0:n.href))&&(u.string(s.source)||u.undefined(s.source))&&(u.undefined(s.relatedInformation)||u.typedArray(s.relatedInformation,Ke.is))}e.is=i;})(ge||(ge={}));var W;(function(e){function t(r,n){for(var s=[],a=2;a<arguments.length;a++)s[a-2]=arguments[a];var o={title:r,command:n};return u.defined(s)&&s.length>0&&(o.arguments=s),o}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.title)&&u.string(n.command)}e.is=i;})(W||(W={}));var w;(function(e){function t(s,a){return {range:s,newText:a}}e.replace=t;function i(s,a){return {range:{start:s,end:s},newText:a}}e.insert=i;function r(s){return {range:s,newText:""}}e.del=r;function n(s){var a=s;return u.objectLiteral(a)&&u.string(a.newText)&&E.is(a.range)}e.is=n;})(w||(w={}));var $;(function(e){function t(r,n,s){var a={label:r};return n!==void 0&&(a.needsConfirmation=n),s!==void 0&&(a.description=s),a}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.string(n.label)&&(u.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(u.string(n.description)||n.description===void 0)}e.is=i;})($||($={}));var P;(function(e){function t(i){var r=i;return u.string(r)}e.is=t;})(P||(P={}));var T;(function(e){function t(s,a,o){return {range:s,newText:a,annotationId:o}}e.replace=t;function i(s,a,o){return {range:{start:s,end:s},newText:a,annotationId:o}}e.insert=i;function r(s,a){return {range:s,newText:"",annotationId:a}}e.del=r;function n(s){var a=s;return w.is(a)&&($.is(a.annotationId)||P.is(a.annotationId))}e.is=n;})(T||(T={}));var xe;(function(e){function t(r,n){return {textDocument:r,edits:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&Ce.is(n.textDocument)&&Array.isArray(n.edits)}e.is=i;})(xe||(xe={}));var ie;(function(e){function t(r,n,s){var a={kind:"create",uri:r};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(a.options=n),s!==void 0&&(a.annotationId=s),a}e.create=t;function i(r){var n=r;return n&&n.kind==="create"&&u.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||u.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||u.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||P.is(n.annotationId))}e.is=i;})(ie||(ie={}));var ne;(function(e){function t(r,n,s,a){var o={kind:"rename",oldUri:r,newUri:n};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}e.create=t;function i(r){var n=r;return n&&n.kind==="rename"&&u.string(n.oldUri)&&u.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||u.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||u.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||P.is(n.annotationId))}e.is=i;})(ne||(ne={}));var re;(function(e){function t(r,n,s){var a={kind:"delete",uri:r};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(a.options=n),s!==void 0&&(a.annotationId=s),a}e.create=t;function i(r){var n=r;return n&&n.kind==="delete"&&u.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||u.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||u.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||P.is(n.annotationId))}e.is=i;})(re||(re={}));var Je;(function(e){function t(i){var r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(function(n){return u.string(n.kind)?ie.is(n)||ne.is(n)||re.is(n):xe.is(n)}))}e.is=t;})(Je||(Je={}));var fe=function(){function e(t,i){this.edits=t,this.changeAnnotations=i;}return e.prototype.insert=function(t,i,r){var n,s;if(r===void 0?n=w.insert(t,i):P.is(r)?(s=r,n=T.insert(t,i,r)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(r),n=T.insert(t,i,s)),this.edits.push(n),s!==void 0)return s},e.prototype.replace=function(t,i,r){var n,s;if(r===void 0?n=w.replace(t,i):P.is(r)?(s=r,n=T.replace(t,i,r)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(r),n=T.replace(t,i,s)),this.edits.push(n),s!==void 0)return s},e.prototype.delete=function(t,i){var r,n;if(i===void 0?r=w.del(t):P.is(i)?(n=i,r=T.del(t,i)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(i),r=T.del(t,n)),this.edits.push(r),n!==void 0)return n},e.prototype.add=function(t){this.edits.push(t);},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length);},e.prototype.assertChangeAnnotations=function(t){if(t===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),Rt=function(){function e(t){this._annotations=t===void 0?Object.create(null):t,this._counter=0,this._size=0;}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(t,i){var r;if(P.is(t)?r=t:(r=this.nextId(),i=t),this._annotations[r]!==void 0)throw new Error("Id ".concat(r," is already in use."));if(i===void 0)throw new Error("No annotation provided for id ".concat(r));return this._annotations[r]=i,this._size++,r},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();(function(){function e(t){var i=this;this._textEditChanges=Object.create(null),t!==void 0?(this._workspaceEdit=t,t.documentChanges?(this._changeAnnotations=new Rt(t.changeAnnotations),t.changeAnnotations=this._changeAnnotations.all(),t.documentChanges.forEach(function(r){if(xe.is(r)){var n=new fe(r.edits,i._changeAnnotations);i._textEditChanges[r.textDocument.uri]=n;}})):t.changes&&Object.keys(t.changes).forEach(function(r){var n=new fe(t.changes[r]);i._textEditChanges[r]=n;})):this._workspaceEdit={};}return Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(t){if(Ce.is(t)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i={uri:t.uri,version:t.version},r=this._textEditChanges[i.uri];if(!r){var n=[],s={textDocument:i,edits:n};this._workspaceEdit.documentChanges.push(s),r=new fe(n,this._changeAnnotations),this._textEditChanges[i.uri]=r;}return r}else {if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var r=this._textEditChanges[t];if(!r){var n=[];this._workspaceEdit.changes[t]=n,r=new fe(n),this._textEditChanges[t]=r;}return r}},e.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Rt,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all());},e.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null));},e.prototype.createFile=function(t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;$.is(i)||P.is(i)?n=i:r=i;var s,a;if(n===void 0?s=ie.create(t,r):(a=P.is(n)?n:this._changeAnnotations.manage(n),s=ie.create(t,r,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},e.prototype.renameFile=function(t,i,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var s;$.is(r)||P.is(r)?s=r:n=r;var a,o;if(s===void 0?a=ne.create(t,i,n):(o=P.is(s)?s:this._changeAnnotations.manage(s),a=ne.create(t,i,n,o)),this._workspaceEdit.documentChanges.push(a),o!==void 0)return o},e.prototype.deleteFile=function(t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;$.is(i)||P.is(i)?n=i:r=i;var s,a;if(n===void 0?s=re.create(t,r):(a=P.is(n)?n:this._changeAnnotations.manage(n),s=re.create(t,r,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},e})();var zt;(function(e){function t(r){return {uri:r}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)}e.is=i;})(zt||(zt={}));var $t;(function(e){function t(r,n){return {uri:r,version:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)&&u.integer(n.version)}e.is=i;})($t||($t={}));var Ce;(function(e){function t(r,n){return {uri:r,version:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)&&(n.version===null||u.integer(n.version))}e.is=i;})(Ce||(Ce={}));var Wt;(function(e){function t(r,n,s,a){return {uri:r,languageId:n,version:s,text:a}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)&&u.string(n.languageId)&&u.integer(n.version)&&u.string(n.text)}e.is=i;})(Wt||(Wt={}));var se;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(i){var r=i;return r===e.PlainText||r===e.Markdown}e.is=t;})(se||(se={}));var ae;(function(e){function t(i){var r=i;return u.objectLiteral(i)&&se.is(r.kind)&&u.string(r.value)}e.is=t;})(ae||(ae={}));var x;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25;})(x||(x={}));var A;(function(e){e.PlainText=1,e.Snippet=2;})(A||(A={}));var qt;(function(e){e.Deprecated=1;})(qt||(qt={}));var Ht;(function(e){function t(r,n,s){return {newText:r,insert:n,replace:s}}e.create=t;function i(r){var n=r;return n&&u.string(n.newText)&&E.is(n.insert)&&E.is(n.replace)}e.is=i;})(Ht||(Ht={}));var y;(function(e){e.asIs=1,e.adjustIndentation=2;})(y||(y={}));var Gt;(function(e){function t(i){var r=i;return r&&(u.string(r.detail)||r.detail===void 0)&&(u.string(r.description)||r.description===void 0)}e.is=t;})(Gt||(Gt={}));var Kt;(function(e){function t(i){return {label:i}}e.create=t;})(Kt||(Kt={}));var Jt;(function(e){function t(i,r){return {items:i||[],isIncomplete:!!r}}e.create=t;})(Jt||(Jt={}));var Ee;(function(e){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function i(r){var n=r;return u.string(n)||u.objectLiteral(n)&&u.string(n.language)&&u.string(n.value)}e.is=i;})(Ee||(Ee={}));var Xt;(function(e){function t(i){var r=i;return !!r&&u.objectLiteral(r)&&(ae.is(r.contents)||Ee.is(r.contents)||u.typedArray(r.contents,Ee.is))&&(i.range===void 0||E.is(i.range))}e.is=t;})(Xt||(Xt={}));var Qt;(function(e){function t(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=t;})(Qt||(Qt={}));var Zt;(function(e){function t(i,r){for(var n=[],s=2;s<arguments.length;s++)n[s-2]=arguments[s];var a={label:i};return u.defined(r)&&(a.documentation=r),u.defined(n)?a.parameters=n:a.parameters=[],a}e.create=t;})(Zt||(Zt={}));var Yt;(function(e){e.Text=1,e.Read=2,e.Write=3;})(Yt||(Yt={}));var ei;(function(e){function t(i,r){var n={range:i};return u.number(r)&&(n.kind=r),n}e.create=t;})(ei||(ei={}));var ti;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26;})(ti||(ti={}));var ii;(function(e){e.Deprecated=1;})(ii||(ii={}));var ni;(function(e){function t(i,r,n,s,a){var o={name:i,kind:r,location:{uri:s,range:n}};return a&&(o.containerName=a),o}e.create=t;})(ni||(ni={}));var ri;(function(e){function t(i,r,n,s){return s!==void 0?{name:i,kind:r,location:{uri:n,range:s}}:{name:i,kind:r,location:{uri:n}}}e.create=t;})(ri||(ri={}));var si;(function(e){function t(r,n,s,a,o,c){var l={name:r,detail:n,kind:s,range:a,selectionRange:o};return c!==void 0&&(l.children=c),l}e.create=t;function i(r){var n=r;return n&&u.string(n.name)&&u.number(n.kind)&&E.is(n.range)&&E.is(n.selectionRange)&&(n.detail===void 0||u.string(n.detail))&&(n.deprecated===void 0||u.boolean(n.deprecated))&&(n.children===void 0||Array.isArray(n.children))&&(n.tags===void 0||Array.isArray(n.tags))}e.is=i;})(si||(si={}));var ai;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll";})(ai||(ai={}));var Fe;(function(e){e.Invoked=1,e.Automatic=2;})(Fe||(Fe={}));var oi;(function(e){function t(r,n,s){var a={diagnostics:r};return n!=null&&(a.only=n),s!=null&&(a.triggerKind=s),a}e.create=t;function i(r){var n=r;return u.defined(n)&&u.typedArray(n.diagnostics,ge.is)&&(n.only===void 0||u.typedArray(n.only,u.string))&&(n.triggerKind===void 0||n.triggerKind===Fe.Invoked||n.triggerKind===Fe.Automatic)}e.is=i;})(oi||(oi={}));var ui;(function(e){function t(r,n,s){var a={title:r},o=!0;return typeof n=="string"?(o=!1,a.kind=n):W.is(n)?a.command=n:a.edit=n,o&&s!==void 0&&(a.kind=s),a}e.create=t;function i(r){var n=r;return n&&u.string(n.title)&&(n.diagnostics===void 0||u.typedArray(n.diagnostics,ge.is))&&(n.kind===void 0||u.string(n.kind))&&(n.edit!==void 0||n.command!==void 0)&&(n.command===void 0||W.is(n.command))&&(n.isPreferred===void 0||u.boolean(n.isPreferred))&&(n.edit===void 0||Je.is(n.edit))}e.is=i;})(ui||(ui={}));var ci;(function(e){function t(r,n){var s={range:r};return u.defined(n)&&(s.data=n),s}e.create=t;function i(r){var n=r;return u.defined(n)&&E.is(n.range)&&(u.undefined(n.command)||W.is(n.command))}e.is=i;})(ci||(ci={}));var li;(function(e){function t(r,n){return {tabSize:r,insertSpaces:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.uinteger(n.tabSize)&&u.boolean(n.insertSpaces)}e.is=i;})(li||(li={}));var di;(function(e){function t(r,n,s){return {range:r,target:n,data:s}}e.create=t;function i(r){var n=r;return u.defined(n)&&E.is(n.range)&&(u.undefined(n.target)||u.string(n.target))}e.is=i;})(di||(di={}));var pi;(function(e){function t(r,n){return {range:r,parent:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=i;})(pi||(pi={}));var hi;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator";})(hi||(hi={}));var fi;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary";})(fi||(fi={}));var mi;(function(e){function t(i){var r=i;return u.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=t;})(mi||(mi={}));var Di;(function(e){function t(r,n){return {range:r,text:n}}e.create=t;function i(r){var n=r;return n!=null&&E.is(n.range)&&u.string(n.text)}e.is=i;})(Di||(Di={}));var gi;(function(e){function t(r,n,s){return {range:r,variableName:n,caseSensitiveLookup:s}}e.create=t;function i(r){var n=r;return n!=null&&E.is(n.range)&&u.boolean(n.caseSensitiveLookup)&&(u.string(n.variableName)||n.variableName===void 0)}e.is=i;})(gi||(gi={}));var xi;(function(e){function t(r,n){return {range:r,expression:n}}e.create=t;function i(r){var n=r;return n!=null&&E.is(n.range)&&(u.string(n.expression)||n.expression===void 0)}e.is=i;})(xi||(xi={}));var Ci;(function(e){function t(r,n){return {frameId:r,stoppedLocation:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&E.is(r.stoppedLocation)}e.is=i;})(Ci||(Ci={}));var Xe;(function(e){e.Type=1,e.Parameter=2;function t(i){return i===1||i===2}e.is=t;})(Xe||(Xe={}));var Qe;(function(e){function t(r){return {value:r}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&(n.tooltip===void 0||u.string(n.tooltip)||ae.is(n.tooltip))&&(n.location===void 0||De.is(n.location))&&(n.command===void 0||W.is(n.command))}e.is=i;})(Qe||(Qe={}));var Ei;(function(e){function t(r,n,s){var a={position:r,label:n};return s!==void 0&&(a.kind=s),a}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&I.is(n.position)&&(u.string(n.label)||u.typedArray(n.label,Qe.is))&&(n.kind===void 0||Xe.is(n.kind))&&n.textEdits===void 0||u.typedArray(n.textEdits,w.is)&&(n.tooltip===void 0||u.string(n.tooltip)||ae.is(n.tooltip))&&(n.paddingLeft===void 0||u.boolean(n.paddingLeft))&&(n.paddingRight===void 0||u.boolean(n.paddingRight))}e.is=i;})(Ei||(Ei={}));var Fi;(function(e){function t(i){var r=i;return u.objectLiteral(r)&&He.is(r.uri)&&u.string(r.name)}e.is=t;})(Fi||(Fi={}));var Ai;(function(e){function t(s,a,o,c){return new Xi(s,a,o,c)}e.create=t;function i(s){var a=s;return !!(u.defined(a)&&u.string(a.uri)&&(u.undefined(a.languageId)||u.string(a.languageId))&&u.uinteger(a.lineCount)&&u.func(a.getText)&&u.func(a.positionAt)&&u.func(a.offsetAt))}e.is=i;function r(s,a){for(var o=s.getText(),c=n(a,function(B,le){var dt=B.range.start.line-le.range.start.line;return dt===0?B.range.start.character-le.range.start.character:dt}),l=o.length,h=c.length-1;h>=0;h--){var g=c[h],v=s.offsetAt(g.range.start),m=s.offsetAt(g.range.end);if(m<=l)o=o.substring(0,v)+g.newText+o.substring(m,o.length);else throw new Error("Overlapping edit");l=v;}return o}e.applyEdits=r;function n(s,a){if(s.length<=1)return s;var o=s.length/2|0,c=s.slice(0,o),l=s.slice(o);n(c,a),n(l,a);for(var h=0,g=0,v=0;h<c.length&&g<l.length;){var m=a(c[h],l[g]);m<=0?s[v++]=c[h++]:s[v++]=l[g++];}for(;h<c.length;)s[v++]=c[h++];for(;g<l.length;)s[v++]=l[g++];return s}})(Ai||(Ai={}));var Xi=function(){function e(t,i,r,n){this._uri=t,this._languageId=i,this._version=r,this._content=n,this._lineOffsets=void 0;}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(t){if(t){var i=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(i,r)}return this._content},e.prototype.update=function(t,i){this._content=t.text,this._version=i,this._lineOffsets=void 0;},e.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var t=[],i=this._content,r=!0,n=0;n<i.length;n++){r&&(t.push(n),r=!1);var s=i.charAt(n);r=s==="\r"||s===`
5
+ `,s==="\r"&&n+1<i.length&&i.charAt(n+1)===`
6
+ `&&n++;}r&&i.length>0&&t.push(i.length),this._lineOffsets=t;}return this._lineOffsets},e.prototype.positionAt=function(t){t=Math.max(Math.min(t,this._content.length),0);var i=this.getLineOffsets(),r=0,n=i.length;if(n===0)return I.create(0,t);for(;r<n;){var s=Math.floor((r+n)/2);i[s]>t?n=s:r=s+1;}var a=r-1;return I.create(a,t-i[a])},e.prototype.offsetAt=function(t){var i=this.getLineOffsets();if(t.line>=i.length)return this._content.length;if(t.line<0)return 0;var r=i[t.line],n=t.line+1<i.length?i[t.line+1]:this._content.length;return Math.max(Math.min(r+t.character,n),r)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),e}(),u;(function(e){var t=Object.prototype.toString;function i(m){return typeof m<"u"}e.defined=i;function r(m){return typeof m>"u"}e.undefined=r;function n(m){return m===!0||m===!1}e.boolean=n;function s(m){return t.call(m)==="[object String]"}e.string=s;function a(m){return t.call(m)==="[object Number]"}e.number=a;function o(m,B,le){return t.call(m)==="[object Number]"&&B<=m&&m<=le}e.numberRange=o;function c(m){return t.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}e.integer=c;function l(m){return t.call(m)==="[object Number]"&&0<=m&&m<=2147483647}e.uinteger=l;function h(m){return t.call(m)==="[object Function]"}e.func=h;function g(m){return m!==null&&typeof m=="object"}e.objectLiteral=g;function v(m,B){return Array.isArray(m)&&m.every(B)}e.typedArray=v;})(u||(u={}));var yi=(C=>(C.AlreadyDefined="AlreadyDefined",C.ApiConflict="ApiConflict",C.AssignedNeverUsed="AssignedNeverUsed",C.DefinedNeverAssigned="DefinedNeverAssigned",C.DefinedNeverUsed="DefinedNeverUsed",C.EmptyBlockStatement="EmptyBlockStatement",C.ExecutionError="ExecutionError",C.InvalidApiFunctionUsage="InvalidApiFunctionUsage",C.InvalidConstantIdentifier="InvalidConstantIdentifier",C.InvalidPropertyIdentifier="InvalidPropertyIdentifier",C.NoArgumentExpected="NoArgumentExpected",C.NotADictionary="NotADictionary",C.NotDefined="NotDefined",C.NotEnoughArguments="NotEnoughArguments",C.ProfileVariablesAreImmutable="ProfileVariablesAreImmutable",C.ProfileVariablesConflict="ProfileVariablesConflict",C.ReservedKeyword="ReservedKeyword",C.TooManyArguments="TooManyArguments",C.UnexpectedEmptyFunction="UnexpectedEmptyFunction",C.UnexpectedPropertyIdentifier="UnexpectedPropertyIdentifier",C.UnknownPropertyIdentifier="UnknownPropertyIdentifier",C))(yi||{});var Pi=Object.values(je),bi=Object.values(Ve);bi.map(e=>({label:e,kind:x.Constant}));Pi.map(e=>({label:e,kind:x.Keyword}));
7
+
8
+ const operators = [
9
+ "<=",
10
+ ">=",
11
+ "==",
12
+ "!=",
13
+ "+",
14
+ "-",
15
+ "*",
16
+ "/",
17
+ "%",
18
+ "++",
19
+ "--",
20
+ "<<",
21
+ ">>",
22
+ ">>>",
23
+ "&",
24
+ "|",
25
+ "^",
26
+ "!",
27
+ "~",
28
+ "&&",
29
+ "||",
30
+ "=",
31
+ "+=",
32
+ "-=",
33
+ "*=",
34
+ "**=",
35
+ "/=",
36
+ "%="
37
+ ];
38
+ const arcadeLanguageConfiguration = {
39
+ // the default separators except `@$`
40
+ wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
41
+ comments: {
42
+ lineComment: "//",
43
+ blockComment: ["/*", "*/"]
44
+ },
45
+ brackets: [
46
+ ["{", "}"],
47
+ ["[", "]"],
48
+ ["(", ")"]
49
+ ],
50
+ autoClosingPairs: [
51
+ { open: "{", close: "}" },
52
+ { open: "[", close: "]" },
53
+ { open: "(", close: ")" },
54
+ { open: '"', close: '"', notIn: ["string"] },
55
+ { open: "'", close: "'", notIn: ["string", "comment"] },
56
+ { open: "`", close: "`", notIn: ["string", "comment"] }
57
+ ],
58
+ autoCloseBefore: ";:.,=}])` \n\t",
59
+ folding: {
60
+ markers: {
61
+ start: new RegExp("^\\s*//\\s*#?region\\b"),
62
+ end: new RegExp("^\\s*//\\s*#?endregion\\b")
63
+ }
64
+ },
65
+ indentationRules: {
66
+ // ^(.*\*/)?\s*\}.*$
67
+ decreaseIndentPattern: /^((?!.*?\/\*).*\*\/)?\s*[\}\]\)].*$/,
68
+ // ^.*\{[^}"']*$
69
+ increaseIndentPattern: /^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$/
70
+ }
71
+ };
72
+ const arcadeMonarchLanguage = {
73
+ // Set defaultToken to invalid to see what you do not tokenize yet
74
+ defaultToken: "invalid",
75
+ tokenPostfix: ".arc",
76
+ // Arcade is case insensitive
77
+ ignoreCase: true,
78
+ // builtinFunctions: Array.from(arcadeService.FunctionNames),
79
+ // Arcade keywords. 'from' is a special case as we want to treat it as a keyword in
80
+ // import statement but as an identifer in var statement.
81
+ keywords: Pi.filter((k) => k !== "from"),
82
+ operators,
83
+ constants: ["true", "false", "null"],
84
+ // we include these common regular expressions
85
+ symbols: /[=><!~?:&|+\-*\/\^%]+/,
86
+ escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
87
+ digits: /\d+(_+\d+)*/,
88
+ octaldigits: /[0-7]+(_+[0-7]+)*/,
89
+ binarydigits: /[0-1]+(_+[0-1]+)*/,
90
+ hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,
91
+ regexpctl: /[(){}\[\]\$\^|\-*+?\.]/,
92
+ regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,
93
+ // The main tokenizer for our languages
94
+ tokenizer: {
95
+ root: [[/[{}]/, "delimiter.bracket"], { include: "common" }],
96
+ common: [
97
+ // import statement. import followed by a white space
98
+ [/import(?=\s)/, { token: "keyword", next: "@import" }],
99
+ // identifiers and keywords
100
+ [
101
+ /[a-z_$][\w$]*/,
102
+ {
103
+ cases: {
104
+ "@constants": "constant",
105
+ "@keywords": "keyword",
106
+ "@default": "identifier"
107
+ }
108
+ }
109
+ ],
110
+ // whitespace
111
+ { include: "@whitespace" },
112
+ // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)
113
+ [
114
+ /\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|\/|,|\)|\]|\}|$))/,
115
+ { token: "regexp", bracket: "@open", next: "@regexp" }
116
+ ],
117
+ // delimiters and operators
118
+ [/[()\[\]]/, "@brackets"],
119
+ [/[<>](?!@symbols)/, "@brackets"],
120
+ [
121
+ /@symbols/,
122
+ {
123
+ cases: {
124
+ "@operators": "delimiter",
125
+ "@default": ""
126
+ }
127
+ }
128
+ ],
129
+ // numbers
130
+ [/(@digits)[eE]([\-+]?(@digits))?/, "number"],
131
+ [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number"],
132
+ [/0[xX](@hexdigits)/, "number"],
133
+ [/0[oO]?(@octaldigits)/, "number"],
134
+ [/0[bB](@binarydigits)/, "number"],
135
+ [/(@digits)/, "number"],
136
+ // delimiter: after number because of .\d floats
137
+ [/[;,.]/, "delimiter"],
138
+ // strings
139
+ [/"([^"\\]|\\.)*$/, "string.invalid"],
140
+ [/'([^'\\]|\\.)*$/, "string.invalid"],
141
+ [/"/, "string", "@string_double"],
142
+ [/'/, "string", "@string_single"],
143
+ [/`/, "string", "@string_backtick"]
144
+ ],
145
+ import: [
146
+ // import keyword
147
+ [/import(?=\s)/, { token: "keyword" }],
148
+ // whitespace
149
+ { include: "@whitespace" },
150
+ // identifier
151
+ [/[a-z_$][\w$]*/, "identifier"],
152
+ // whitespace
153
+ { include: "@whitespace" },
154
+ // from keyword
155
+ [/from/, { token: "keyword", next: "@popall" }]
156
+ ],
157
+ whitespace: [
158
+ [/[ \t\r\n]+/, ""],
159
+ [/\/\*/, "comment", "@comment"],
160
+ [/\/\/.*$/, "comment"]
161
+ ],
162
+ comment: [
163
+ [/[^\/*]+/, "comment"],
164
+ [/\*\//, "comment", "@pop"],
165
+ [/[\/*]/, "comment"]
166
+ ],
167
+ // We match regular expression quite precisely
168
+ regexp: [
169
+ [/(\{)(\d+(?:,\d*)?)(\})/, ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"]],
170
+ [
171
+ /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,
172
+ ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }]
173
+ ],
174
+ [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]],
175
+ [/[()]/, "regexp.escape.control"],
176
+ [/@regexpctl/, "regexp.escape.control"],
177
+ [/[^\\\/]/, "regexp"],
178
+ [/@regexpesc/, "regexp.escape"],
179
+ [/\\\./, "regexp.invalid"],
180
+ [/(\/)([gimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]]
181
+ ],
182
+ regexrange: [
183
+ [/-/, "regexp.escape.control"],
184
+ [/\^/, "regexp.invalid"],
185
+ [/@regexpesc/, "regexp.escape"],
186
+ [/[^\]]/, "regexp"],
187
+ [/\]/, { token: "regexp.escape.control", next: "@pop", bracket: "@close" }]
188
+ ],
189
+ string_double: [
190
+ [/[^\\"]+/, "string"],
191
+ [/@escapes/, "string.escape"],
192
+ [/\\./, "string.escape.invalid"],
193
+ [/"/, "string", "@pop"]
194
+ ],
195
+ string_single: [
196
+ [/[^\\']+/, "string"],
197
+ [/@escapes/, "string.escape"],
198
+ [/\\./, "string.escape.invalid"],
199
+ [/'/, "string", "@pop"]
200
+ ],
201
+ string_backtick: [
202
+ [/\$\{/, { token: "delimiter.bracket", next: "@bracketCounting" }],
203
+ [/[^\\`$]+/, "string"],
204
+ [/@escapes/, "string.escape"],
205
+ [/\\./, "string.escape.invalid"],
206
+ [/`/, "string", "@pop"]
207
+ ],
208
+ bracketCounting: [
209
+ [/\{/, "delimiter.bracket", "@bracketCounting"],
210
+ [/\}/, "delimiter.bracket", "@pop"],
211
+ { include: "common" }
212
+ ]
213
+ }
214
+ };
215
+
216
+ //#region Diagnostic
217
+ class DiagnosticsAdapter {
218
+ constructor(_languageId, _worker, { defaults, diagnosticsService }) {
219
+ this._languageId = _languageId;
220
+ this._worker = _worker;
221
+ this._disposables = [];
222
+ this._listener = Object.create(null);
223
+ this._diagnosticsService = diagnosticsService;
224
+ this._defaults = defaults;
225
+ const onModelAdd = (model) => {
226
+ const languageId = model.getLanguageId();
227
+ if (languageId !== this._languageId) {
228
+ return;
229
+ }
230
+ let handle;
231
+ this._listener[model.uri.toString()] = model.onDidChangeContent(() => {
232
+ window.clearTimeout(handle);
233
+ handle = window.setTimeout(() => this._doValidate(model, languageId), 500);
234
+ });
235
+ this._doValidate(model, languageId);
236
+ };
237
+ const onModelRemoved = (model) => {
238
+ const uriStr = model.uri.toString();
239
+ editor.setModelMarkers(model, this._languageId, []);
240
+ const listener = this._listener[uriStr];
241
+ if (listener) {
242
+ listener.dispose();
243
+ delete this._listener[uriStr];
244
+ }
245
+ };
246
+ this._disposables.push(editor.onDidCreateModel(onModelAdd));
247
+ this._disposables.push(editor.onWillDisposeModel((model) => {
248
+ onModelRemoved(model);
249
+ }));
250
+ this._disposables.push(editor.onDidChangeModelLanguage((event) => {
251
+ onModelRemoved(event.model);
252
+ onModelAdd(event.model);
253
+ }));
254
+ this._disposables.push(defaults.onDidChange(() => {
255
+ editor.getModels().forEach((model) => {
256
+ if (model.getLanguageId() === this._languageId) {
257
+ onModelRemoved(model);
258
+ onModelAdd(model);
259
+ }
260
+ });
261
+ }));
262
+ this._disposables.push(defaults.onModelContextDidChange((key) => {
263
+ editor.getModels().forEach((model) => {
264
+ if (model.getLanguageId() === this._languageId && model.uri.toString() === key) {
265
+ this._doValidate(model, this._languageId);
266
+ }
267
+ });
268
+ }));
269
+ this._disposables.push({
270
+ dispose: () => {
271
+ for (const key in this._listener) {
272
+ this._listener[key].dispose();
273
+ }
274
+ }
275
+ });
276
+ editor.getModels().forEach(onModelAdd);
277
+ }
278
+ dispose() {
279
+ this._disposables.forEach((d) => d && d.dispose());
280
+ this._disposables = [];
281
+ }
282
+ async _doValidate(model, languageId) {
283
+ if (!model.isAttachedToEditor()) {
284
+ return;
285
+ }
286
+ try {
287
+ const workerProxy = await this._worker(model.uri);
288
+ const context = this._defaults.getApiContextForModel(model.uri);
289
+ const diagnostics = await workerProxy.doValidation(model.uri.toString(), context);
290
+ const markers = diagnostics.map((d) => toMarker(model.uri, d));
291
+ this._diagnosticsService.fireDiagnosticsChange(model.uri, diagnostics);
292
+ editor.setModelMarkers(model, languageId, markers);
293
+ }
294
+ catch (err) {
295
+ console.error(err);
296
+ }
297
+ }
298
+ }
299
+ function toSeverity(languageServiceSeverity) {
300
+ switch (languageServiceSeverity) {
301
+ case DiagnosticSeverity.Error:
302
+ return MarkerSeverity.Error;
303
+ case DiagnosticSeverity.Warning:
304
+ return MarkerSeverity.Warning;
305
+ case DiagnosticSeverity.Information:
306
+ return MarkerSeverity.Info;
307
+ case DiagnosticSeverity.Hint:
308
+ return MarkerSeverity.Hint;
309
+ default:
310
+ return MarkerSeverity.Info;
311
+ }
312
+ }
313
+ function toMarker(_resource, diag) {
314
+ // Diagnostics positions are zero-based, MarkerData are 1-based
315
+ return {
316
+ severity: toSeverity(diag.severity),
317
+ startLineNumber: diag.range.start.line + 1,
318
+ startColumn: diag.range.start.character + 1,
319
+ endLineNumber: diag.range.end.line + 1,
320
+ endColumn: diag.range.end.character + 1,
321
+ message: diag.message
322
+ };
323
+ }
324
+ //#endregion
325
+ //#region Completion
326
+ function fromPosition(position) {
327
+ // Language service is zero based
328
+ return { character: position.column - 1, line: position.lineNumber - 1 };
329
+ }
330
+ function toRange(range) {
331
+ return new Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1);
332
+ }
333
+ function toTextEdit(textEdit) {
334
+ return {
335
+ range: toRange(textEdit.range),
336
+ text: textEdit.newText
337
+ };
338
+ }
339
+ function isInsertReplaceEdit(edit) {
340
+ return (typeof edit.insert !== "undefined" && typeof edit.replace !== "undefined");
341
+ }
342
+ function toCompletionItemKind(kind) {
343
+ const mItemKind = languages.CompletionItemKind;
344
+ switch (kind) {
345
+ case CompletionItemKind.Text:
346
+ return mItemKind.Text;
347
+ case CompletionItemKind.Method:
348
+ return mItemKind.Method;
349
+ case CompletionItemKind.Function:
350
+ return mItemKind.Function;
351
+ case CompletionItemKind.Constructor:
352
+ return mItemKind.Constructor;
353
+ case CompletionItemKind.Field:
354
+ return mItemKind.Field;
355
+ case CompletionItemKind.Variable:
356
+ return mItemKind.Variable;
357
+ case CompletionItemKind.Class:
358
+ return mItemKind.Class;
359
+ case CompletionItemKind.Interface:
360
+ return mItemKind.Interface;
361
+ case CompletionItemKind.Module:
362
+ return mItemKind.Module;
363
+ case CompletionItemKind.Property:
364
+ return mItemKind.Property;
365
+ case CompletionItemKind.Unit:
366
+ return mItemKind.Unit;
367
+ case CompletionItemKind.Value:
368
+ return mItemKind.Value;
369
+ case CompletionItemKind.Enum:
370
+ return mItemKind.Enum;
371
+ case CompletionItemKind.Keyword:
372
+ return mItemKind.Keyword;
373
+ case CompletionItemKind.Snippet:
374
+ return mItemKind.Snippet;
375
+ case CompletionItemKind.Color:
376
+ return mItemKind.Color;
377
+ case CompletionItemKind.File:
378
+ return mItemKind.File;
379
+ case CompletionItemKind.Reference:
380
+ return mItemKind.Reference;
381
+ case CompletionItemKind.Folder:
382
+ return mItemKind.Folder;
383
+ case CompletionItemKind.EnumMember:
384
+ return mItemKind.EnumMember;
385
+ case CompletionItemKind.Constant:
386
+ return mItemKind.Constant;
387
+ case CompletionItemKind.Struct:
388
+ return mItemKind.Struct;
389
+ case CompletionItemKind.Event:
390
+ return mItemKind.Event;
391
+ case CompletionItemKind.Operator:
392
+ return mItemKind.Operator;
393
+ case CompletionItemKind.TypeParameter:
394
+ return mItemKind.TypeParameter;
395
+ }
396
+ return mItemKind.Property;
397
+ }
398
+ class CompletionProvider {
399
+ constructor(_worker, _defaults) {
400
+ this._worker = _worker;
401
+ this._defaults = _defaults;
402
+ this.triggerCharacters = [".", "("];
403
+ }
404
+ async provideCompletionItems(model, position
405
+ // _context: languages.CompletionContext,
406
+ // _token: CancellationToken,
407
+ ) {
408
+ const worker = await this._worker(model.uri);
409
+ const context = this._defaults.getApiContextForModel(model.uri);
410
+ const completionList = await worker.doComplete(model.uri.toString(), fromPosition(position), context);
411
+ if (!completionList) {
412
+ return;
413
+ }
414
+ const wordInfo = model.getWordUntilPosition(position);
415
+ const wordRange = new Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn);
416
+ const items = completionList.items.map((entry) => {
417
+ const item = {
418
+ label: entry.label,
419
+ insertText: entry.insertText || entry.label,
420
+ sortText: entry.sortText,
421
+ filterText: entry.filterText,
422
+ detail: entry.detail,
423
+ range: wordRange,
424
+ kind: toCompletionItemKind(entry.kind)
425
+ };
426
+ if (entry.textEdit) {
427
+ if (isInsertReplaceEdit(entry.textEdit)) {
428
+ item.range = {
429
+ insert: toRange(entry.textEdit.insert),
430
+ replace: toRange(entry.textEdit.replace)
431
+ };
432
+ }
433
+ else {
434
+ item.range = toRange(entry.textEdit.range);
435
+ }
436
+ item.insertText = entry.textEdit.newText;
437
+ }
438
+ if (entry.additionalTextEdits) {
439
+ item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);
440
+ }
441
+ if (entry.insertTextFormat === InsertTextFormat.Snippet) {
442
+ item.insertTextRules = languages.CompletionItemInsertTextRule.InsertAsSnippet;
443
+ }
444
+ if (entry.documentation) {
445
+ if (typeof entry.documentation === "string") {
446
+ item.documentation = entry.documentation;
447
+ }
448
+ else {
449
+ item.documentation = {
450
+ supportThemeIcons: false,
451
+ value: entry.documentation.value,
452
+ supportHtml: true
453
+ };
454
+ }
455
+ }
456
+ return item;
457
+ });
458
+ return {
459
+ incomplete: completionList.isIncomplete,
460
+ suggestions: items
461
+ };
462
+ }
463
+ }
464
+ //#endregion
465
+ //#region Formatter
466
+ class FormattingProvider {
467
+ constructor(_worker, _defaults) {
468
+ this._worker = _worker;
469
+ this._defaults = _defaults;
470
+ }
471
+ async provideDocumentFormattingEdits(model
472
+ // _options: languages.FormattingOptions,
473
+ // _token: CancellationToken,
474
+ ) {
475
+ const worker = await this._worker(model.uri);
476
+ const context = this._defaults.getApiContextForModel(model.uri.toString());
477
+ const edits = await worker.doFormat(model.uri.toString(), context);
478
+ if (!edits) {
479
+ return [];
480
+ }
481
+ return edits.map((e) => ({ range: toRange(e.range), text: e.newText }));
482
+ }
483
+ }
484
+ //#endregion
485
+
486
+ /**
487
+ * Manager to create our arcade worker and client proxy
488
+ */
489
+ class WorkerManager {
490
+ constructor(_defaults) {
491
+ this._defaults = _defaults;
492
+ this._worker = null;
493
+ this._client = null;
494
+ // Observes the arcade defaults. If modified then stop the worker.
495
+ this._configChangeListener = this._defaults.onDidChange(() => this.stopWorker());
496
+ }
497
+ dispose() {
498
+ this._configChangeListener.dispose();
499
+ this.stopWorker();
500
+ }
501
+ stopWorker() {
502
+ if (this._worker) {
503
+ this._worker.dispose();
504
+ this._worker = null;
505
+ }
506
+ this._client = null;
507
+ }
508
+ _getClientProxy() {
509
+ // We used createWebWorker to create or run the web worker if it isn’t already created.
510
+ // Otherwise, we get and return the proxy client.
511
+ if (!this._client) {
512
+ const { languageId, languageOptions } = this._defaults;
513
+ this._worker = editor.createWebWorker({
514
+ moduleId: "ArcadeWorker",
515
+ label: languageId,
516
+ createData: {
517
+ languageId,
518
+ languageOptions
519
+ }
520
+ });
521
+ this._client = this._worker.getProxy();
522
+ }
523
+ return this._client;
524
+ }
525
+ async getLanguageServiceWorker(...resources) {
526
+ const _client = await this._getClientProxy();
527
+ await this._worker?.withSyncedResources(resources);
528
+ return _client;
529
+ }
530
+ }
531
+
532
+ let arcadeWorker;
533
+ /**
534
+ * Returns the arcade worker for the model uris.
535
+ * @param uris The model uris for which to get the worker.
536
+ * @returns The arcade worker.
537
+ */
538
+ async function getArcadeWorker(...uris) {
539
+ return new Promise((resolve, reject) => {
540
+ if (!arcadeWorker) {
541
+ return reject("TypeScript not registered!");
542
+ }
543
+ resolve(arcadeWorker(...uris));
544
+ });
545
+ }
546
+ /**
547
+ * The Arcade Language Diagnostic Service.
548
+ * Consumers can listen to the diagnostics change event to get notified when the diagnostics change.
549
+ */
550
+ class ArcadeDiagnosticService {
551
+ constructor() {
552
+ this._onDiagnosticsChange = new Emitter();
553
+ }
554
+ /**
555
+ * An event to signal changes to the diagnostics.
556
+ * The event value is the uri string and the diagnostics.
557
+ */
558
+ get onDiagnosticsChange() {
559
+ return this._onDiagnosticsChange.event;
560
+ }
561
+ /**
562
+ * Fires the diagnostics change event.
563
+ * @param uri The uri of the model for which the diagnostics changed.
564
+ * @param diagnostics The diagnostics for the model.
565
+ */
566
+ fireDiagnosticsChange(uri, diagnostics) {
567
+ this._onDiagnosticsChange.fire({ uri, diagnostics });
568
+ }
569
+ }
570
+ const arcadeDiagnosticService = new ArcadeDiagnosticService();
571
+ /**
572
+ * Get the Arcade Diagnostic Service.
573
+ * @returns The Arcade Language Diagnostic Service.
574
+ */
575
+ function getArcadeDiagnosticService() {
576
+ return arcadeDiagnosticService;
577
+ }
578
+ function setupMode(arcadeDefaults) {
579
+ const client = new WorkerManager(arcadeDefaults);
580
+ const workerAccessor = (...uris) => client.getLanguageServiceWorker(...uris);
581
+ arcadeWorker = workerAccessor;
582
+ // Use the arcade Monarch Json to define the highlighting
583
+ languages.setMonarchTokensProvider(arcadeDefaults.languageId, arcadeMonarchLanguage);
584
+ languages.setLanguageConfiguration(arcadeDefaults.languageId, arcadeLanguageConfiguration);
585
+ // Creates and registers a Completion Adapter
586
+ languages.registerCompletionItemProvider(arcadeDefaults.languageId, new CompletionProvider(workerAccessor, arcadeDefaults));
587
+ // Creates and registers a Formatter
588
+ languages.registerDocumentFormattingEditProvider(arcadeDefaults.languageId, new FormattingProvider(workerAccessor, arcadeDefaults));
589
+ // Creates a Diagnostic Adapter
590
+ new DiagnosticsAdapter(arcadeDefaults.languageId, workerAccessor, {
591
+ defaults: arcadeDefaults,
592
+ diagnosticsService: arcadeDiagnosticService
593
+ });
594
+ }
595
+
596
+ export { getArcadeDiagnosticService, getArcadeWorker, setupMode };
@@ -3014,7 +3014,7 @@ async function getArcadeWorker(uri) {
3014
3014
  * @returns mode for arcade
3015
3015
  */
3016
3016
  function getMode() {
3017
- return import('./arcade-mode-6ae88544.js');
3017
+ return import('./arcade-mode-dc10ed9f.js');
3018
3018
  }
3019
3019
  // Register the language in Monaco
3020
3020
  languages.register({