@arcgis/coding-components 4.30.0 → 4.31.0-next.10
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/arcgis-coding-components/arcgis-coding-components.esm.js +3 -3
- package/dist/arcgis-coding-components/assets/code-editor/arcade.worker.js +13 -13
- package/dist/arcgis-coding-components/assets/code-editor/css.worker.js +1 -1
- package/dist/arcgis-coding-components/assets/code-editor/html.worker.js +1 -1
- package/dist/arcgis-coding-components/assets/code-editor/json.worker.js +1 -1
- package/dist/arcgis-coding-components/assets/code-editor/sql-expr.worker.js +11 -0
- package/dist/arcgis-coding-components/assets/code-editor/ts.worker.js +1 -1
- package/dist/arcgis-coding-components/assets/sql-expression-editor/api/sql-expression-api.t9n.en.json +735 -0
- package/dist/arcgis-coding-components/index.esm.js +3 -3
- package/dist/arcgis-coding-components/p-025fda85.js +6 -0
- package/dist/arcgis-coding-components/{p-b7981062.js → p-02cae55d.js} +4 -4
- package/dist/arcgis-coding-components/p-193ac44f.js +6 -0
- package/dist/arcgis-coding-components/{p-ed5c78ce.js → p-22253750.js} +2 -2
- package/dist/arcgis-coding-components/p-4fc79a07.entry.js +6 -0
- package/dist/arcgis-coding-components/p-50484a4f.js +6 -0
- package/dist/arcgis-coding-components/p-6e28fd70.js +6 -0
- package/dist/arcgis-coding-components/p-7164c348.js +6 -0
- package/dist/arcgis-coding-components/p-767b17ee.entry.js +6 -0
- package/dist/arcgis-coding-components/{p-69ef969a.js → p-790067b1.js} +11 -11
- package/dist/arcgis-coding-components/{p-e9510c84.js → p-8196fa73.js} +3 -3
- package/dist/arcgis-coding-components/{p-f40fe9c5.js → p-8cf09bcc.js} +2 -2
- package/dist/arcgis-coding-components/{p-ca3f5530.js → p-923858b5.js} +3 -3
- package/dist/arcgis-coding-components/{p-ae0db715.js → p-960aa9dc.js} +3 -3
- package/dist/arcgis-coding-components/p-9956a574.js +6 -0
- package/dist/arcgis-coding-components/{p-9770fb37.js → p-ab78d6c4.js} +4 -4
- package/dist/arcgis-coding-components/{p-e37595ba.js → p-ad75160d.js} +4 -4
- package/dist/arcgis-coding-components/{p-24fb1d11.js → p-da9431ba.js} +3 -3
- package/dist/arcgis-coding-components/p-f452d4b8.entry.js +6 -0
- package/dist/cjs/{app-globals-18ba6880.js → app-globals-bade840e.js} +2 -2
- package/dist/cjs/arcade-defaults-8b8d6c07.js +116 -0
- package/dist/cjs/arcade-language-features-747fb1da.js +274 -0
- package/dist/cjs/arcade-mode-dce44622.js +336 -0
- package/dist/cjs/{arcgis-arcade-api_6.cjs.entry.js → arcgis-arcade-editor_6.cjs.entry.js} +3806 -5154
- package/dist/cjs/arcgis-coding-components.cjs.js +5 -5
- package/dist/cjs/arcgis-sql-expression-editor.cjs.entry.js +81 -0
- package/dist/cjs/arcgis-sql-expression-fields.cjs.entry.js +80 -0
- package/dist/cjs/{css-d8a65bb9.js → css-077ba0c5.js} +2 -2
- package/dist/cjs/{cssMode-07dbb853.js → cssMode-7f2030db.js} +5 -5
- package/dist/cjs/{html-bb10cced.js → html-e3a243e9.js} +5 -5
- package/dist/cjs/{htmlMode-7df0a09d.js → htmlMode-c273d6dc.js} +5 -5
- package/dist/cjs/{index-15bcce7e.js → index-37a86ff4.js} +12 -4
- package/dist/cjs/index.cjs.js +5 -4
- package/dist/cjs/{javascript-f0dbed11.js → javascript-7a33cca7.js} +5 -5
- package/dist/cjs/{jsonMode-9e54e9b7.js → jsonMode-6b4e0850.js} +5 -5
- package/dist/cjs/{arcade-defaults-d0931224.js → language-defaults-base-b32cb091.js} +88 -144
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/sql-expr-defaults-8a5834f3.js +1280 -0
- package/dist/cjs/sql-expr-mode-a72a1f92.js +21838 -0
- package/dist/cjs/{tsMode-ca28bc5f.js → tsMode-c2edcd57.js} +6 -6
- package/dist/cjs/{typescript-39540ed7.js → typescript-c50c5516.js} +5 -5
- package/dist/components/arcade-defaults.js +47 -1537
- package/dist/components/arcade-language-features.js +271 -0
- package/dist/components/arcade-mode.js +7 -267
- package/dist/components/arcade-results.js +7 -7
- package/dist/components/arcade-suggestions.js +8 -8
- package/dist/components/arcade-variables.js +7 -7
- package/dist/components/arcgis-arcade-editor.js +49 -50
- package/dist/components/arcgis-arcade-results.js +2 -2
- package/dist/components/arcgis-arcade-suggestions.js +2 -2
- package/dist/components/arcgis-arcade-variables.js +2 -2
- package/dist/components/arcgis-assets.d.ts +2 -2
- package/dist/components/arcgis-assets.js +3 -3
- package/dist/components/arcgis-code-editor.js +2 -2
- package/dist/components/arcgis-language-api-panel.d.ts +11 -0
- package/dist/components/arcgis-language-api-panel.js +11 -0
- package/dist/components/arcgis-sql-expression-editor.d.ts +11 -0
- package/dist/components/arcgis-sql-expression-editor.js +120 -0
- package/dist/components/arcgis-sql-expression-fields.d.ts +11 -0
- package/dist/components/arcgis-sql-expression-fields.js +11 -0
- package/dist/components/chunk-3IUJHIAA.js +1154 -0
- package/dist/components/code-editor.js +186 -17
- package/dist/components/fields.js +3 -3
- package/dist/components/index.js +2 -2
- package/dist/components/index2.js +31 -23
- package/dist/components/{arcade-api.js → language-api-panel.js} +29 -60
- package/dist/components/language-defaults-base.js +1535 -0
- package/dist/components/markdown.js +3 -3
- package/dist/components/sql-expr-defaults.js +131 -0
- package/dist/components/sql-expr-mode.js +21836 -0
- package/dist/components/sql-expression-fields.js +102 -0
- package/dist/components/useT9n.js +46 -9
- package/dist/components/utilities.js +2 -2
- package/dist/esm/{app-globals-2a0e9afb.js → app-globals-ed47e16d.js} +2 -2
- package/dist/esm/arcade-defaults-562fe19b.js +111 -0
- package/dist/esm/arcade-language-features-8edb3527.js +269 -0
- package/dist/esm/{arcade-mode-e9728a63.js → arcade-mode-ad036f46.js} +7 -266
- package/dist/esm/{arcgis-arcade-api_6.entry.js → arcgis-arcade-editor_6.entry.js} +3793 -5141
- package/dist/esm/arcgis-coding-components.js +6 -6
- package/dist/esm/arcgis-sql-expression-editor.entry.js +77 -0
- package/dist/esm/arcgis-sql-expression-fields.entry.js +76 -0
- package/dist/esm/{css-61c794c2.js → css-810518f1.js} +2 -2
- package/dist/esm/{cssMode-6e0ccd51.js → cssMode-a7208024.js} +4 -4
- package/dist/esm/{html-44ad432e.js → html-e187d7d8.js} +4 -4
- package/dist/esm/{htmlMode-fd336434.js → htmlMode-06b7bae2.js} +4 -4
- package/dist/esm/{index-0d124a57.js → index-3743d31f.js} +12 -4
- package/dist/esm/index.js +5 -4
- package/dist/esm/{javascript-ac057954.js → javascript-04a3f866.js} +5 -5
- package/dist/esm/{jsonMode-ea8fa529.js → jsonMode-ee8bb2ea.js} +4 -4
- package/dist/esm/{arcade-defaults-811bdd4d.js → language-defaults-base-52a397f5.js} +82 -142
- package/dist/esm/loader.js +6 -6
- package/dist/esm/sql-expr-defaults-f7c2d5ef.js +1274 -0
- package/dist/esm/sql-expr-mode-433b4a39.js +21835 -0
- package/dist/esm/{tsMode-af9c3001.js → tsMode-c80c462e.js} +4 -4
- package/dist/esm/{typescript-baec45d6.js → typescript-a9b8caa7.js} +4 -4
- package/dist/loader/cdn.js +2 -2
- package/dist/loader/index.cjs.js +2 -2
- package/dist/loader/index.es2017.js +2 -2
- package/dist/loader/index.js +2 -2
- package/dist/types/components/arcade-editor/arcade-editor.d.ts +45 -10
- package/dist/types/components/arcade-results/arcade-results.d.ts +43 -1
- package/dist/types/components/arcade-suggestions/arcade-suggestions.d.ts +22 -1
- package/dist/types/components/arcade-variables/arcade-variables.d.ts +28 -1
- package/dist/types/components/code-editor/code-editor.d.ts +16 -5
- package/dist/types/components/language-api-panel/language-api-panel.d.ts +73 -0
- package/dist/types/components/sql-expression-editor/sql-expression-editor.d.ts +24 -0
- package/dist/types/components/sql-expression-fields/sql-expression-fields.d.ts +32 -0
- package/dist/types/components.d.ts +148 -70
- package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/internal/sql-expression-editor/sql-expression-editor.stories.d.ts +13 -0
- package/dist/types/dependencies.d.ts +21 -0
- package/dist/types/utils/arcade-monaco/arcade-contribution.d.ts +1 -24
- package/dist/types/utils/arcade-monaco/arcade-defaults.d.ts +12 -49
- package/dist/types/utils/arcade-monaco/arcade-language-features.d.ts +6 -4
- package/dist/types/utils/arcade-monaco/arcade-mode.d.ts +3 -2
- package/dist/types/utils/arcade-monaco/arcade-service-accessors.d.ts +31 -0
- package/dist/types/utils/arcade-monaco/arcade-worker-manager.d.ts +3 -2
- package/dist/types/utils/arcade-monaco/arcade.worker.d.ts +5 -5
- package/dist/types/utils/arcade-monaco/types.d.ts +6 -35
- package/dist/types/utils/language-defaults-base.d.ts +69 -0
- package/dist/types/utils/profile/predefined-profile.d.ts +3 -1
- package/dist/types/utils/profile/types.d.ts +29 -69
- package/dist/types/utils/profile/utils.d.ts +4 -7
- package/dist/types/utils/sql-expr-monaco/DependentFiles/DateOnly.d.ts +41 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/SqlInterval.d.ts +16 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/SqlTimestampOffset.d.ts +26 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/TimeOnly.d.ts +37 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/UnknownTimeZone.d.ts +11 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/WhereGrammar.d.ts +122 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlCompareUtils.d.ts +5 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlDateParsingUtils.d.ts +18 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlUtils.d.ts +6 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/standardizedFunctions.d.ts +156 -0
- package/dist/types/utils/sql-expr-monaco/DependentFiles/support.d.ts +150 -0
- package/dist/types/utils/sql-expr-monaco/PeggyGrammar/sql92grammar.d.ts +1397 -0
- package/dist/types/utils/sql-expr-monaco/libraries/date/properties/index.d.ts +59 -0
- package/dist/types/utils/sql-expr-monaco/libraries/numeric/properties/index.d.ts +295 -0
- package/dist/types/utils/sql-expr-monaco/libraries/string/properties/index.d.ts +135 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-completion.d.ts +6 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-contribution.d.ts +11 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-defaults.d.ts +22 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-language-features.d.ts +61 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-language-syntax.d.ts +8 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-mode.d.ts +10 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-validation-adapter.d.ts +3 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-validation-diagnostic-adapter.d.ts +41 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-validation-utils.d.ts +99 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-validation.d.ts +41 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr-worker-manager.d.ts +15 -0
- package/dist/types/utils/sql-expr-monaco/sql-expr.worker.d.ts +21 -0
- package/dist/types/utils/sql-expr-monaco/types.d.ts +91 -0
- package/dist/types/utils/sql-expr-profile/predefined-profile.d.ts +2 -0
- package/package.json +23 -17
- package/dist/arcgis-coding-components/p-98cf909d.js +0 -6
- package/dist/arcgis-coding-components/p-bf047552.entry.js +0 -6
- package/dist/arcgis-coding-components/p-f602fc86.js +0 -6
- package/dist/cjs/arcade-mode-8424eafa.js +0 -595
- package/dist/components/arcade-contribution.js +0 -181
- package/dist/components/arcgis-arcade-api.d.ts +0 -11
- package/dist/components/arcgis-arcade-api.js +0 -11
- package/dist/components/chunk-2CDDVOQU.js +0 -1364
- package/dist/types/components/arcade-api/arcade-api.d.ts +0 -45
- package/dist/types/components/arcade-api/t9n-types.d.ts +0 -8
- package/dist/types/components/arcade-editor/t9n-types.d.ts +0 -8
- package/dist/types/components/arcade-results/t9n-types.d.ts +0 -13
- package/dist/types/components/arcade-suggestions/t9n-types.d.ts +0 -6
- package/dist/types/components/arcade-variables/t9n-types.d.ts +0 -8
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ar.json → language-api-panel/t9n/language-api-panel.t9n.ar.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.bg.json → language-api-panel/t9n/language-api-panel.t9n.bg.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.bs.json → language-api-panel/t9n/language-api-panel.t9n.bs.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ca.json → language-api-panel/t9n/language-api-panel.t9n.ca.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.cs.json → language-api-panel/t9n/language-api-panel.t9n.cs.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.da.json → language-api-panel/t9n/language-api-panel.t9n.da.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.de.json → language-api-panel/t9n/language-api-panel.t9n.de.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.el.json → language-api-panel/t9n/language-api-panel.t9n.el.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.en.json → language-api-panel/t9n/language-api-panel.t9n.en.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.es.json → language-api-panel/t9n/language-api-panel.t9n.es.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.et.json → language-api-panel/t9n/language-api-panel.t9n.et.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.fi.json → language-api-panel/t9n/language-api-panel.t9n.fi.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.fr.json → language-api-panel/t9n/language-api-panel.t9n.fr.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.he.json → language-api-panel/t9n/language-api-panel.t9n.he.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.hr.json → language-api-panel/t9n/language-api-panel.t9n.hr.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.hu.json → language-api-panel/t9n/language-api-panel.t9n.hu.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.id.json → language-api-panel/t9n/language-api-panel.t9n.id.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.it.json → language-api-panel/t9n/language-api-panel.t9n.it.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ja.json → language-api-panel/t9n/language-api-panel.t9n.ja.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ko.json → language-api-panel/t9n/language-api-panel.t9n.ko.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.lt.json → language-api-panel/t9n/language-api-panel.t9n.lt.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.lv.json → language-api-panel/t9n/language-api-panel.t9n.lv.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.nb.json → language-api-panel/t9n/language-api-panel.t9n.nb.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.nl.json → language-api-panel/t9n/language-api-panel.t9n.nl.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.pl.json → language-api-panel/t9n/language-api-panel.t9n.pl.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.pt-BR.json → language-api-panel/t9n/language-api-panel.t9n.pt-BR.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.pt-PT.json → language-api-panel/t9n/language-api-panel.t9n.pt-PT.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ro.json → language-api-panel/t9n/language-api-panel.t9n.ro.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ru.json → language-api-panel/t9n/language-api-panel.t9n.ru.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sk.json → language-api-panel/t9n/language-api-panel.t9n.sk.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sl.json → language-api-panel/t9n/language-api-panel.t9n.sl.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sr.json → language-api-panel/t9n/language-api-panel.t9n.sr.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sv.json → language-api-panel/t9n/language-api-panel.t9n.sv.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.th.json → language-api-panel/t9n/language-api-panel.t9n.th.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.tr.json → language-api-panel/t9n/language-api-panel.t9n.tr.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.uk.json → language-api-panel/t9n/language-api-panel.t9n.uk.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.vi.json → language-api-panel/t9n/language-api-panel.t9n.vi.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.zh-CN.json → language-api-panel/t9n/language-api-panel.t9n.zh-CN.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.zh-HK.json → language-api-panel/t9n/language-api-panel.t9n.zh-HK.json} +0 -0
- /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.zh-TW.json → language-api-panel/t9n/language-api-panel.t9n.zh-TW.json} +0 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
* See https://js.arcgis.com/4.31/esri/copyright.txt for details.
|
|
4
|
+
* v4.31.0-next.10
|
|
5
|
+
*/
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
const languageDefaultsBase = require('./language-defaults-base-b32cb091.js');
|
|
9
|
+
const arcadeLanguageFeatures = require('./arcade-language-features-747fb1da.js');
|
|
10
|
+
require('./index-37a86ff4.js');
|
|
11
|
+
|
|
12
|
+
var V={False:"false",Null:"null",True:"true"},f={Break:"break",Continue:"continue",Else:"else",For:"for",From:"from",Function:"function",If:"if",Import:"import",Export:"export",In:"in",Return:"return",Var:"var",While:"while"},Ee=["++","--"],Je=["-","+","!","~"],Qe=["=","/=","*=","%=","+=","-="],Ze=["||","&&"],Lt=["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"];var U=[[],[],[]];Ee.forEach(t=>U[t.length-1]?.push(t));Je.forEach(t=>U[t.length-1]?.push(t));Ze.forEach(t=>U[t.length-1]?.push(t));Qe.forEach(t=>U[t.length-1]?.push(t));Lt.forEach(t=>U[t.length-1]?.push(t));var ft=Object.values(f),gt=Object.values(V);gt.map(t=>({label:t,kind:languageDefaultsBase.main.exports.CompletionItemKind.Constant}));ft.map(t=>({label:t,kind:languageDefaultsBase.main.exports.CompletionItemKind.Keyword}));
|
|
13
|
+
|
|
14
|
+
const operators = [
|
|
15
|
+
"<=",
|
|
16
|
+
">=",
|
|
17
|
+
"==",
|
|
18
|
+
"!=",
|
|
19
|
+
"+",
|
|
20
|
+
"-",
|
|
21
|
+
"*",
|
|
22
|
+
"/",
|
|
23
|
+
"%",
|
|
24
|
+
"++",
|
|
25
|
+
"--",
|
|
26
|
+
"<<",
|
|
27
|
+
">>",
|
|
28
|
+
">>>",
|
|
29
|
+
"&",
|
|
30
|
+
"|",
|
|
31
|
+
"^",
|
|
32
|
+
"!",
|
|
33
|
+
"~",
|
|
34
|
+
"&&",
|
|
35
|
+
"||",
|
|
36
|
+
"=",
|
|
37
|
+
"+=",
|
|
38
|
+
"-=",
|
|
39
|
+
"*=",
|
|
40
|
+
"**=",
|
|
41
|
+
"/=",
|
|
42
|
+
"%=",
|
|
43
|
+
];
|
|
44
|
+
const arcadeLanguageConfiguration = {
|
|
45
|
+
// the default separators except `@$`
|
|
46
|
+
wordPattern: /(-?\d*\.\d\w*)|([^`~!#%\^&\*\(\)\-=\+\[\{\]\}\\\|;:'",\.<>\/\?\s]+)/gu,
|
|
47
|
+
comments: {
|
|
48
|
+
lineComment: "//",
|
|
49
|
+
blockComment: ["/*", "*/"],
|
|
50
|
+
},
|
|
51
|
+
brackets: [
|
|
52
|
+
["{", "}"],
|
|
53
|
+
["[", "]"],
|
|
54
|
+
["(", ")"],
|
|
55
|
+
],
|
|
56
|
+
autoClosingPairs: [
|
|
57
|
+
{ open: "{", close: "}" },
|
|
58
|
+
{ open: "[", close: "]" },
|
|
59
|
+
{ open: "(", close: ")" },
|
|
60
|
+
{ open: '"', close: '"', notIn: ["string"] },
|
|
61
|
+
{ open: "'", close: "'", notIn: ["string", "comment"] },
|
|
62
|
+
{ open: "`", close: "`", notIn: ["string", "comment"] },
|
|
63
|
+
],
|
|
64
|
+
autoCloseBefore: ";:.,=}])` \n\t",
|
|
65
|
+
folding: {
|
|
66
|
+
markers: {
|
|
67
|
+
start: /^\s*\/\/\s*#?region\b/u,
|
|
68
|
+
end: /^\s*\/\/\s*#?endregion\b/u,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
indentationRules: {
|
|
72
|
+
// ^(.*\*/)?\s*\}.*$
|
|
73
|
+
decreaseIndentPattern: /^((?!.*?\/\*).*\*\/)?\s*[\}\]\)].*$/u,
|
|
74
|
+
// ^.*\{[^}"']*$
|
|
75
|
+
increaseIndentPattern: /^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$/u,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
const arcadeMonarchLanguage = {
|
|
79
|
+
// Set defaultToken to invalid to see what you do not tokenize yet
|
|
80
|
+
defaultToken: "invalid",
|
|
81
|
+
tokenPostfix: ".arc",
|
|
82
|
+
// Arcade is case insensitive
|
|
83
|
+
ignoreCase: true,
|
|
84
|
+
// builtinFunctions: [...arcadeService.FunctionNames],
|
|
85
|
+
// Arcade keywords. 'from' is a special case as we want to treat it as a keyword in
|
|
86
|
+
// import statement but as an identifer in var statement.
|
|
87
|
+
keywords: ft.filter((k) => k !== "from"),
|
|
88
|
+
operators,
|
|
89
|
+
constants: ["true", "false", "null"],
|
|
90
|
+
// we include these common regular expressions
|
|
91
|
+
symbols: /[=><!~?:&|+\-*\/\^%]+/u,
|
|
92
|
+
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/u,
|
|
93
|
+
digits: /\d+(_+\d+)*/u,
|
|
94
|
+
octaldigits: /[0-7]+(_+[0-7]+)*/u,
|
|
95
|
+
binarydigits: /[0-1]+(_+[0-1]+)*/u,
|
|
96
|
+
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/u,
|
|
97
|
+
regexpctl: /[(){}\[\]\$\^|\-*+?\.]/u,
|
|
98
|
+
regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/u,
|
|
99
|
+
// The main tokenizer for our languages
|
|
100
|
+
tokenizer: {
|
|
101
|
+
root: [[/[{}]/u, "delimiter.bracket"], { include: "common" }],
|
|
102
|
+
common: [
|
|
103
|
+
// import statement. import followed by a white space
|
|
104
|
+
[/import(?=\s)/u, { token: "keyword", next: "@import" }],
|
|
105
|
+
// identifiers and keywords
|
|
106
|
+
[
|
|
107
|
+
/[a-z_$][\w$]*/u,
|
|
108
|
+
{
|
|
109
|
+
cases: {
|
|
110
|
+
"@constants": "constant",
|
|
111
|
+
"@keywords": "keyword",
|
|
112
|
+
"@default": "identifier",
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
// whitespace
|
|
117
|
+
{ include: "@whitespace" },
|
|
118
|
+
// regular expression: ensure it is terminated before beginning (otherwise it is an opeator)
|
|
119
|
+
[
|
|
120
|
+
/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|\/|,|\)|\]|\}|$))/u,
|
|
121
|
+
{ token: "regexp", bracket: "@open", next: "@regexp" },
|
|
122
|
+
],
|
|
123
|
+
// delimiters and operators
|
|
124
|
+
[/[()\[\]]/u, "@brackets"],
|
|
125
|
+
[/[<>](?!@symbols)/u, "@brackets"],
|
|
126
|
+
[
|
|
127
|
+
/@symbols/u,
|
|
128
|
+
{
|
|
129
|
+
cases: {
|
|
130
|
+
"@operators": "delimiter",
|
|
131
|
+
"@default": "",
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
// numbers
|
|
136
|
+
[/(@digits)[eE]([\-+]?(@digits))?/u, "number"],
|
|
137
|
+
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/u, "number"],
|
|
138
|
+
[/0[xX](@hexdigits)/u, "number"],
|
|
139
|
+
[/0[oO]?(@octaldigits)/u, "number"],
|
|
140
|
+
[/0[bB](@binarydigits)/u, "number"],
|
|
141
|
+
[/(@digits)/u, "number"],
|
|
142
|
+
// delimiter: after number because of .\d floats
|
|
143
|
+
[/[;,.]/u, "delimiter"],
|
|
144
|
+
// strings
|
|
145
|
+
[/"([^"\\]|\\.)*$/u, "string.invalid"], // non-teminated string
|
|
146
|
+
[/'([^'\\]|\\.)*$/u, "string.invalid"], // non-teminated string
|
|
147
|
+
[/"/u, "string", "@string_double"],
|
|
148
|
+
[/'/u, "string", "@string_single"],
|
|
149
|
+
[/`/u, "string", "@string_backtick"],
|
|
150
|
+
],
|
|
151
|
+
import: [
|
|
152
|
+
// import keyword
|
|
153
|
+
[/import(?=\s)/u, { token: "keyword" }],
|
|
154
|
+
// whitespace
|
|
155
|
+
{ include: "@whitespace" },
|
|
156
|
+
// identifier
|
|
157
|
+
[/[a-z_$][\w$]*/u, "identifier"],
|
|
158
|
+
// whitespace
|
|
159
|
+
{ include: "@whitespace" },
|
|
160
|
+
// from keyword
|
|
161
|
+
[/from/u, { token: "keyword", next: "@popall" }],
|
|
162
|
+
],
|
|
163
|
+
whitespace: [
|
|
164
|
+
[/[ \t\r\n]+/u, ""],
|
|
165
|
+
[/\/\*/u, "comment", "@comment"],
|
|
166
|
+
[/\/\/.*$/u, "comment"],
|
|
167
|
+
],
|
|
168
|
+
comment: [
|
|
169
|
+
[/[^\/*]+/u, "comment"],
|
|
170
|
+
[/\*\//u, "comment", "@pop"],
|
|
171
|
+
[/[\/*]/u, "comment"],
|
|
172
|
+
],
|
|
173
|
+
// We match regular expression quite precisely
|
|
174
|
+
regexp: [
|
|
175
|
+
[/(\{)(\d+(?:,\d*)?)(\})/u, ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"]],
|
|
176
|
+
[
|
|
177
|
+
/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/u,
|
|
178
|
+
["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }],
|
|
179
|
+
],
|
|
180
|
+
[/(\()(\?:|\?=|\?!)/u, ["regexp.escape.control", "regexp.escape.control"]],
|
|
181
|
+
[/[()]/u, "regexp.escape.control"],
|
|
182
|
+
[/@regexpctl/u, "regexp.escape.control"],
|
|
183
|
+
[/[^\\\/]/u, "regexp"],
|
|
184
|
+
[/@regexpesc/u, "regexp.escape"],
|
|
185
|
+
[/\\\./u, "regexp.invalid"],
|
|
186
|
+
[/(\/)([gimsuy]*)/u, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]],
|
|
187
|
+
],
|
|
188
|
+
regexrange: [
|
|
189
|
+
[/-/u, "regexp.escape.control"],
|
|
190
|
+
[/\^/u, "regexp.invalid"],
|
|
191
|
+
[/@regexpesc/u, "regexp.escape"],
|
|
192
|
+
[/[^\]]/u, "regexp"],
|
|
193
|
+
[/\]/u, { token: "regexp.escape.control", next: "@pop", bracket: "@close" }],
|
|
194
|
+
],
|
|
195
|
+
string_double: [
|
|
196
|
+
[/[^\\"]+/u, "string"],
|
|
197
|
+
[/@escapes/u, "string.escape"],
|
|
198
|
+
[/\\./u, "string.escape.invalid"],
|
|
199
|
+
[/"/u, "string", "@pop"],
|
|
200
|
+
],
|
|
201
|
+
string_single: [
|
|
202
|
+
[/[^\\']+/u, "string"],
|
|
203
|
+
[/@escapes/u, "string.escape"],
|
|
204
|
+
[/\\./u, "string.escape.invalid"],
|
|
205
|
+
[/'/u, "string", "@pop"],
|
|
206
|
+
],
|
|
207
|
+
string_backtick: [
|
|
208
|
+
[/\$\{/u, { token: "delimiter.bracket", next: "@bracketCounting" }],
|
|
209
|
+
[/[^\\`$]+/u, "string"],
|
|
210
|
+
[/@escapes/u, "string.escape"],
|
|
211
|
+
[/\\./u, "string.escape.invalid"],
|
|
212
|
+
[/`/u, "string", "@pop"],
|
|
213
|
+
],
|
|
214
|
+
bracketCounting: [
|
|
215
|
+
[/\{/u, "delimiter.bracket", "@bracketCounting"],
|
|
216
|
+
[/\}/u, "delimiter.bracket", "@pop"],
|
|
217
|
+
{ include: "common" },
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Manager to create our arcade worker and client proxy
|
|
224
|
+
*/
|
|
225
|
+
class WorkerManager {
|
|
226
|
+
constructor(_defaults) {
|
|
227
|
+
this._defaults = _defaults;
|
|
228
|
+
this._worker = null;
|
|
229
|
+
this._client = null;
|
|
230
|
+
// Observes the arcade defaults. If modified then stop the worker.
|
|
231
|
+
this._configChangeListener = this._defaults.onDidChange(() => this.stopWorker());
|
|
232
|
+
}
|
|
233
|
+
dispose() {
|
|
234
|
+
this._configChangeListener.dispose();
|
|
235
|
+
this.stopWorker();
|
|
236
|
+
}
|
|
237
|
+
stopWorker() {
|
|
238
|
+
if (this._worker) {
|
|
239
|
+
this._worker.dispose();
|
|
240
|
+
this._worker = null;
|
|
241
|
+
}
|
|
242
|
+
this._client = null;
|
|
243
|
+
}
|
|
244
|
+
async _getClientProxy() {
|
|
245
|
+
// We used createWebWorker to create or run the web worker if it isn’t already created.
|
|
246
|
+
// Otherwise, we get and return the proxy client.
|
|
247
|
+
if (!this._client) {
|
|
248
|
+
const { languageId, languageOptions } = this._defaults;
|
|
249
|
+
this._worker = languageDefaultsBase.editor.createWebWorker({
|
|
250
|
+
moduleId: "ArcadeWorker",
|
|
251
|
+
label: languageId,
|
|
252
|
+
createData: {
|
|
253
|
+
languageId,
|
|
254
|
+
languageOptions,
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
this._client = this._worker.getProxy();
|
|
258
|
+
}
|
|
259
|
+
return await this._client;
|
|
260
|
+
}
|
|
261
|
+
async getLanguageServiceWorker(...resources) {
|
|
262
|
+
const _client = await this._getClientProxy();
|
|
263
|
+
await this._worker?.withSyncedResources(resources);
|
|
264
|
+
return _client;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
let arcadeWorker;
|
|
269
|
+
/**
|
|
270
|
+
* Returns the arcade worker for the model uris.
|
|
271
|
+
* @param uris The model uris for which to get the worker.
|
|
272
|
+
* @returns The arcade worker.
|
|
273
|
+
*/
|
|
274
|
+
async function getArcadeWorker(...uris) {
|
|
275
|
+
return await new Promise((resolve, reject) => {
|
|
276
|
+
if (!arcadeWorker) {
|
|
277
|
+
reject(new Error("TypeScript not registered!"));
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
resolve(arcadeWorker(...uris));
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* The Arcade Language Diagnostic Service.
|
|
285
|
+
* Consumers can listen to the diagnostics change event to get notified when the diagnostics change.
|
|
286
|
+
*/
|
|
287
|
+
class ArcadeDiagnosticService {
|
|
288
|
+
constructor() {
|
|
289
|
+
this._onDiagnosticsChange = new languageDefaultsBase.Emitter();
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* An event to signal changes to the diagnostics.
|
|
293
|
+
* The event value is the uri string and the diagnostics.
|
|
294
|
+
*/
|
|
295
|
+
get onDiagnosticsChange() {
|
|
296
|
+
return this._onDiagnosticsChange.event;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Fires the diagnostics change event.
|
|
300
|
+
* @param uri The uri of the model for which the diagnostics changed.
|
|
301
|
+
* @param diagnostics The diagnostics for the model.
|
|
302
|
+
*/
|
|
303
|
+
fireDiagnosticsChange(uri, diagnostics) {
|
|
304
|
+
this._onDiagnosticsChange.fire({ uri, diagnostics });
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
const arcadeDiagnosticService = new ArcadeDiagnosticService();
|
|
308
|
+
/**
|
|
309
|
+
* Get the Arcade Diagnostic Service.
|
|
310
|
+
* @returns The Arcade Language Diagnostic Service.
|
|
311
|
+
*/
|
|
312
|
+
function getArcadeDiagnosticService() {
|
|
313
|
+
return arcadeDiagnosticService;
|
|
314
|
+
}
|
|
315
|
+
function setupMode(arcadeDefaults) {
|
|
316
|
+
const client = new WorkerManager(arcadeDefaults);
|
|
317
|
+
const workerAccessor = async (...uris) => await client.getLanguageServiceWorker(...uris);
|
|
318
|
+
arcadeWorker = workerAccessor;
|
|
319
|
+
// Use the arcade Monarch Json to define the highlighting
|
|
320
|
+
languageDefaultsBase.languages.setMonarchTokensProvider(arcadeDefaults.languageId, arcadeMonarchLanguage);
|
|
321
|
+
languageDefaultsBase.languages.setLanguageConfiguration(arcadeDefaults.languageId, arcadeLanguageConfiguration);
|
|
322
|
+
// Creates and registers a Completion Adapter
|
|
323
|
+
languageDefaultsBase.languages.registerCompletionItemProvider(arcadeDefaults.languageId, new arcadeLanguageFeatures.CompletionProvider(workerAccessor, arcadeDefaults));
|
|
324
|
+
// Creates and registers a Formatter
|
|
325
|
+
languageDefaultsBase.languages.registerDocumentFormattingEditProvider(arcadeDefaults.languageId, new arcadeLanguageFeatures.FormattingProvider(workerAccessor, arcadeDefaults));
|
|
326
|
+
// Creates a Diagnostic Adapter
|
|
327
|
+
// eslint-disable-next-line no-new
|
|
328
|
+
new arcadeLanguageFeatures.DiagnosticsAdapter(arcadeDefaults.languageId, workerAccessor, {
|
|
329
|
+
defaults: arcadeDefaults,
|
|
330
|
+
diagnosticsService: arcadeDiagnosticService,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
exports.getArcadeDiagnosticService = getArcadeDiagnosticService;
|
|
335
|
+
exports.getArcadeWorker = getArcadeWorker;
|
|
336
|
+
exports.setupMode = setupMode;
|