@arcgis/coding-components 4.31.0-next.3 → 4.31.0-next.30

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.
Files changed (205) hide show
  1. package/README.md +22 -3
  2. package/dist/arcgis-coding-components/arcgis-coding-components.esm.js +2 -2
  3. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ar.json +1 -1
  4. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.bg.json +1 -1
  5. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.bs.json +1 -1
  6. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ca.json +6 -6
  7. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.cs.json +1 -1
  8. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.da.json +1 -1
  9. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.de.json +1 -1
  10. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.el.json +1 -1
  11. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.es.json +1 -1
  12. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.et.json +1 -1
  13. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.fi.json +1 -1
  14. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.fr.json +1 -1
  15. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.he.json +1 -1
  16. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.hr.json +1 -1
  17. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.id.json +1 -1
  18. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.it.json +1 -1
  19. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ko.json +1 -1
  20. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.nb.json +1 -1
  21. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.nl.json +1 -1
  22. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.pl.json +1 -1
  23. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.pt-BR.json +1 -1
  24. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.pt-PT.json +1 -1
  25. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.ru.json +1 -1
  26. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sk.json +1 -1
  27. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sl.json +1 -1
  28. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sr.json +1 -1
  29. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.sv.json +1 -1
  30. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.th.json +1 -1
  31. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.tr.json +1 -1
  32. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.uk.json +5 -5
  33. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.vi.json +1 -1
  34. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.zh-CN.json +1 -1
  35. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.zh-HK.json +1 -1
  36. package/dist/arcgis-coding-components/assets/arcade-language/t9n/profile.t9n.zh-TW.json +1 -1
  37. package/dist/arcgis-coding-components/assets/arcade-results/t9n/arcade-results.t9n.ca.json +2 -2
  38. package/dist/arcgis-coding-components/assets/arcade-results/t9n/arcade-results.t9n.de.json +1 -1
  39. package/dist/arcgis-coding-components/assets/arcade-results/t9n/arcade-results.t9n.he.json +1 -1
  40. package/dist/arcgis-coding-components/assets/arcade-variables/t9n/arcade-variables.t9n.ca.json +1 -1
  41. package/dist/arcgis-coding-components/assets/arcade-variables/t9n/arcade-variables.t9n.it.json +1 -1
  42. package/dist/arcgis-coding-components/assets/code-editor/sql-expr.worker.js +447 -7
  43. package/dist/arcgis-coding-components/assets/language-api-panel/t9n/language-api-panel.t9n.ca.json +1 -1
  44. package/dist/arcgis-coding-components/index.esm.js +2 -2
  45. package/dist/arcgis-coding-components/{p-42c8b545.js → p-1cec2132.js} +3 -3
  46. package/dist/arcgis-coding-components/{p-3ca5ba95.entry.js → p-2186676a.entry.js} +2 -2
  47. package/dist/arcgis-coding-components/{p-86106a9a.js → p-26f5a06d.js} +1 -1
  48. package/dist/arcgis-coding-components/p-3645c71d.entry.js +6 -0
  49. package/dist/arcgis-coding-components/{p-8b4298d5.js → p-4ce2a213.js} +2 -2
  50. package/dist/arcgis-coding-components/{p-111ba641.js → p-57bde3ee.js} +2 -2
  51. package/dist/arcgis-coding-components/p-57dbf777.js +7 -0
  52. package/dist/arcgis-coding-components/{p-9132bc9c.entry.js → p-639adfca.entry.js} +2 -2
  53. package/dist/arcgis-coding-components/p-71d639a6.js +6 -0
  54. package/dist/arcgis-coding-components/{p-6554a853.js → p-72266079.js} +1 -1
  55. package/dist/arcgis-coding-components/p-7e2ae261.js +6 -0
  56. package/dist/arcgis-coding-components/{p-5eb82abf.js → p-8897f806.js} +2 -2
  57. package/dist/arcgis-coding-components/p-91bb956b.js +6 -0
  58. package/dist/arcgis-coding-components/p-9b2002c3.js +6 -0
  59. package/dist/arcgis-coding-components/{p-7c6b3d40.js → p-9c411f13.js} +2 -2
  60. package/dist/arcgis-coding-components/{p-c4a5150e.js → p-bd309794.js} +3 -3
  61. package/dist/arcgis-coding-components/{p-4986aaf2.js → p-cc0edd81.js} +3 -3
  62. package/dist/arcgis-coding-components/{p-93d0e0cc.js → p-e295aee1.js} +12 -12
  63. package/dist/arcgis-coding-components/p-fe4ee070.js +6 -0
  64. package/dist/cjs/{app-globals-92c5b499.js → app-globals-e98febdb.js} +1 -1
  65. package/dist/cjs/arcade-defaults-c6ecbcbe.js +349 -0
  66. package/dist/cjs/arcade-language-features-eeb1f261.js +274 -0
  67. package/dist/cjs/{arcade-mode-dfd66b4b.js → arcade-mode-a2d05415.js} +6 -266
  68. package/dist/cjs/arcgis-arcade-editor_6.cjs.entry.js +20 -26
  69. package/dist/cjs/arcgis-coding-components.cjs.js +5 -5
  70. package/dist/cjs/arcgis-sql-expression-editor.cjs.entry.js +4 -4
  71. package/dist/cjs/arcgis-sql-expression-fields.cjs.entry.js +4 -4
  72. package/dist/cjs/{css-9b0053c3.js → css-1b37a5a3.js} +1 -1
  73. package/dist/cjs/{cssMode-62e53008.js → cssMode-e08a9e80.js} +2 -3
  74. package/dist/cjs/{html-3036e89e.js → html-b55754c8.js} +2 -3
  75. package/dist/cjs/{htmlMode-c37eee42.js → htmlMode-e335e2e0.js} +2 -3
  76. package/dist/cjs/{index-be6b2520.js → index-1e6c6daf.js} +43 -15
  77. package/dist/cjs/index.cjs.js +4 -4
  78. package/dist/cjs/{javascript-7276c023.js → javascript-5d6e0e2f.js} +3 -4
  79. package/dist/cjs/{jsonMode-baa295f0.js → jsonMode-5aeae11c.js} +2 -3
  80. package/dist/cjs/{language-defaults-base-5817af52.js → language-defaults-base-b33c98c5.js} +842 -1062
  81. package/dist/cjs/loader.cjs.js +4 -4
  82. package/dist/cjs/{sql-expr-defaults-746bbc5f.js → sql-expr-defaults-2fcbfae4.js} +101 -39
  83. package/dist/cjs/sql-expr-mode-72880fff.js +1171 -0
  84. package/dist/cjs/{tsMode-36398912.js → tsMode-5559948f.js} +2 -3
  85. package/dist/cjs/{typescript-608a420b.js → typescript-6dfdd308.js} +2 -3
  86. package/dist/components/arcade-defaults.js +238 -4
  87. package/dist/components/arcade-language-features.js +271 -0
  88. package/dist/components/arcade-mode.js +4 -264
  89. package/dist/components/arcade-results.js +3 -3
  90. package/dist/components/arcade-suggestions.js +2 -2
  91. package/dist/components/arcade-variables.js +2 -2
  92. package/dist/components/arcgis-arcade-editor.js +7 -6
  93. package/dist/components/arcgis-arcade-results.js +1 -1
  94. package/dist/components/arcgis-arcade-suggestions.js +1 -1
  95. package/dist/components/arcgis-arcade-variables.js +1 -1
  96. package/dist/components/arcgis-assets.d.ts +1 -1
  97. package/dist/components/arcgis-assets.js +1 -1
  98. package/dist/components/arcgis-code-editor.js +1 -1
  99. package/dist/components/arcgis-language-api-panel.js +1 -1
  100. package/dist/components/arcgis-sql-expression-editor.js +2 -2
  101. package/dist/components/arcgis-sql-expression-fields.js +1 -1
  102. package/dist/components/{chunk-6TARY3NN.js → chunk-EOMOY2EF.js} +12 -17
  103. package/dist/components/code-editor.js +16 -23
  104. package/dist/components/fields.js +22 -4
  105. package/dist/components/index.d.ts +18 -3
  106. package/dist/components/index.js +1 -1
  107. package/dist/components/index2.js +2 -2
  108. package/dist/components/language-api-panel.js +2 -2
  109. package/dist/components/language-defaults-base.js +81 -323
  110. package/dist/components/markdown.js +1 -1
  111. package/dist/components/sql-expr-defaults.js +89 -24
  112. package/dist/components/sql-expr-mode.js +1009 -24971
  113. package/dist/components/sql-expression-fields.js +2 -2
  114. package/dist/components/useT9n.js +2 -2
  115. package/dist/components/utilities.js +1 -1
  116. package/dist/esm/{app-globals-5e178541.js → app-globals-906d2920.js} +1 -1
  117. package/dist/esm/arcade-defaults-01c1778e.js +344 -0
  118. package/dist/esm/arcade-language-features-5d86df55.js +269 -0
  119. package/dist/esm/{arcade-mode-02336ce9.js → arcade-mode-ffa50b73.js} +3 -263
  120. package/dist/esm/arcgis-arcade-editor_6.entry.js +21 -27
  121. package/dist/esm/arcgis-coding-components.js +6 -6
  122. package/dist/esm/arcgis-sql-expression-editor.entry.js +4 -4
  123. package/dist/esm/arcgis-sql-expression-fields.entry.js +4 -4
  124. package/dist/esm/{css-e79f1ed1.js → css-e6d12b19.js} +1 -1
  125. package/dist/esm/{cssMode-cd007d02.js → cssMode-eda5bf61.js} +2 -3
  126. package/dist/esm/{html-d079d00d.js → html-b5f697d7.js} +2 -3
  127. package/dist/esm/{htmlMode-ff14e035.js → htmlMode-1b54015e.js} +2 -3
  128. package/dist/esm/{index-88fc341d.js → index-0ec9c3f1.js} +43 -15
  129. package/dist/esm/index.js +4 -4
  130. package/dist/esm/{javascript-69f7c282.js → javascript-f1c7843a.js} +3 -4
  131. package/dist/esm/{jsonMode-18ddadde.js → jsonMode-2277640b.js} +2 -3
  132. package/dist/esm/{language-defaults-base-6687d11a.js → language-defaults-base-b508c08f.js} +837 -1062
  133. package/dist/esm/loader.js +5 -5
  134. package/dist/esm/{sql-expr-defaults-2cdfe08a.js → sql-expr-defaults-715f6bad.js} +100 -40
  135. package/dist/esm/sql-expr-mode-3cd5df90.js +1167 -0
  136. package/dist/esm/{tsMode-c2e5d33a.js → tsMode-075abf4a.js} +2 -3
  137. package/dist/esm/{typescript-a0fbebf0.js → typescript-22cfacaa.js} +2 -3
  138. package/dist/loader/cdn.js +2 -3
  139. package/dist/loader/index.cjs.js +2 -3
  140. package/dist/loader/index.es2017.js +2 -3
  141. package/dist/loader/index.js +2 -3
  142. package/dist/types/components/arcade-editor/arcade-editor.d.ts +13 -3
  143. package/dist/types/components/arcade-results/arcade-results.d.ts +1 -1
  144. package/dist/types/components/arcade-suggestions/arcade-suggestions.d.ts +1 -1
  145. package/dist/types/components/arcade-variables/arcade-variables.d.ts +1 -1
  146. package/dist/types/components/code-editor/code-editor.d.ts +14 -4
  147. package/dist/types/components/language-api-panel/language-api-panel.d.ts +1 -1
  148. package/dist/types/components.d.ts +13 -13
  149. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/internal/arcade-editor/arcade-editor.stories.d.ts +8 -1
  150. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/internal/arcade-editor/editorContext.d.ts +5 -1
  151. package/dist/types/stencil-public-runtime.d.ts +3 -8
  152. package/dist/types/utils/arcade-monaco/arcade-language-features.d.ts +1 -0
  153. package/dist/types/utils/arcade-monaco/arcade-profile-strategy.d.ts +9 -0
  154. package/dist/types/utils/fields.d.ts +2 -2
  155. package/dist/types/utils/profile/editor-profile.d.ts +7 -6
  156. package/dist/types/utils/profile/types.d.ts +53 -65
  157. package/dist/types/utils/profile/utils.d.ts +9 -8
  158. package/dist/types/utils/sql-expr-monaco/sql-expr-completion.d.ts +3 -2
  159. package/dist/types/utils/sql-expr-monaco/sql-expr-constants.d.ts +45 -0
  160. package/dist/types/utils/sql-expr-monaco/sql-expr-contribution.d.ts +1 -11
  161. package/dist/types/utils/sql-expr-monaco/sql-expr-defaults.d.ts +0 -1
  162. package/dist/types/utils/sql-expr-monaco/sql-expr-language-features.d.ts +19 -520
  163. package/dist/types/utils/sql-expr-monaco/sql-expr-mode.d.ts +34 -1
  164. package/dist/types/utils/sql-expr-monaco/sql-expr-service-accessors.d.ts +19 -0
  165. package/dist/types/utils/sql-expr-monaco/sql-expr-validation-diagnostic-adapter.d.ts +0 -7
  166. package/dist/types/utils/sql-expr-monaco/sql-expr-validation-utils.d.ts +75 -77
  167. package/dist/types/utils/sql-expr-monaco/sql-expr-validation.d.ts +5 -6
  168. package/dist/types/utils/sql-expr-monaco/sql-expr-worker-manager.d.ts +2 -0
  169. package/dist/types/utils/sql-expr-monaco/sql-expr.worker.d.ts +9 -6
  170. package/dist/types/utils/sql-expr-monaco/sql-expression-profile-strategy.d.ts +13 -0
  171. package/dist/types/utils/sql-expr-monaco/types.d.ts +6 -12
  172. package/package.json +19 -19
  173. package/dist/arcgis-coding-components/p-0105cc95.js +0 -6
  174. package/dist/arcgis-coding-components/p-5e26a360.js +0 -6
  175. package/dist/arcgis-coding-components/p-9c7e0089.js +0 -7
  176. package/dist/arcgis-coding-components/p-b82e98f0.js +0 -6
  177. package/dist/arcgis-coding-components/p-d353f1ba.entry.js +0 -6
  178. package/dist/arcgis-coding-components/p-fe6ccfe0.js +0 -6
  179. package/dist/cjs/arcade-defaults-34e82ff5.js +0 -116
  180. package/dist/cjs/sql-expr-mode-a9f1b697.js +0 -25135
  181. package/dist/esm/arcade-defaults-6dac6b30.js +0 -111
  182. package/dist/esm/polyfills/core-js.js +0 -11
  183. package/dist/esm/polyfills/dom.js +0 -79
  184. package/dist/esm/polyfills/es5-html-element.js +0 -1
  185. package/dist/esm/polyfills/index.js +0 -34
  186. package/dist/esm/polyfills/system.js +0 -6
  187. package/dist/esm/sql-expr-mode-f10e5a43.js +0 -25132
  188. package/dist/types/utils/profile/predefined-profile.d.ts +0 -4
  189. package/dist/types/utils/sql-expr-monaco/DependentFiles/DateOnly.d.ts +0 -41
  190. package/dist/types/utils/sql-expr-monaco/DependentFiles/SqlInterval.d.ts +0 -16
  191. package/dist/types/utils/sql-expr-monaco/DependentFiles/SqlTimestampOffset.d.ts +0 -26
  192. package/dist/types/utils/sql-expr-monaco/DependentFiles/TimeOnly.d.ts +0 -37
  193. package/dist/types/utils/sql-expr-monaco/DependentFiles/UnknownTimeZone.d.ts +0 -11
  194. package/dist/types/utils/sql-expr-monaco/DependentFiles/WhereGrammar.d.ts +0 -122
  195. package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlCompareUtils.d.ts +0 -5
  196. package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlDateParsingUtils.d.ts +0 -18
  197. package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlUtils.d.ts +0 -6
  198. package/dist/types/utils/sql-expr-monaco/DependentFiles/standardizedFunctions.d.ts +0 -156
  199. package/dist/types/utils/sql-expr-monaco/DependentFiles/support.d.ts +0 -150
  200. package/dist/types/utils/sql-expr-monaco/PeggyGrammar/sql92grammar.d.ts +0 -1397
  201. package/dist/types/utils/sql-expr-monaco/libraries/date/properties/index.d.ts +0 -59
  202. package/dist/types/utils/sql-expr-monaco/libraries/numeric/properties/index.d.ts +0 -295
  203. package/dist/types/utils/sql-expr-monaco/libraries/string/properties/index.d.ts +0 -135
  204. package/dist/types/utils/sql-expr-monaco/sql-expr-validation-adapter.d.ts +0 -3
  205. package/dist/types/utils/sql-expr-profile/predefined-profile.d.ts +0 -2
@@ -1,12 +1,12 @@
1
1
  /*!
2
2
  * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  * See https://js.arcgis.com/4.31/esri/copyright.txt for details.
4
- * v4.31.0-next.3
4
+ * v4.31.0-next.30
5
5
  */
6
6
  'use strict';
7
7
 
8
- const languageDefaultsBase = require('./language-defaults-base-5817af52.js');
9
- require('./index-be6b2520.js');
8
+ const languageDefaultsBase = require('./language-defaults-base-b33c98c5.js');
9
+ const arcadeLanguageFeatures = require('./arcade-language-features-eeb1f261.js');
10
10
 
11
11
  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}));
12
12
 
@@ -218,266 +218,6 @@ const arcadeMonarchLanguage = {
218
218
  },
219
219
  };
220
220
 
221
- //#region Diagnostic
222
- class DiagnosticsAdapter {
223
- constructor(_languageId, _worker, { defaults, diagnosticsService, }) {
224
- this._languageId = _languageId;
225
- this._worker = _worker;
226
- this._disposables = [];
227
- this._listener = new Map();
228
- this._diagnosticsService = diagnosticsService;
229
- this._defaults = defaults;
230
- const onModelAdd = (model) => {
231
- const languageId = model.getLanguageId();
232
- if (languageId !== this._languageId) {
233
- return;
234
- }
235
- const debouncedValidate = languageDefaultsBase.debounce(() => {
236
- this._doValidate(model, languageId).catch((err) => {
237
- throw err;
238
- });
239
- });
240
- this._listener.set(model.uri.toString(), model.onDidChangeContent(debouncedValidate));
241
- this._doValidate(model, languageId).catch(console.error);
242
- };
243
- const onModelRemoved = (model) => {
244
- const uriStr = model.uri.toString();
245
- languageDefaultsBase.editor.setModelMarkers(model, this._languageId, []);
246
- const listener = this._listener.get(uriStr);
247
- if (listener) {
248
- listener.dispose();
249
- this._listener.delete(uriStr);
250
- }
251
- };
252
- this._disposables.push(languageDefaultsBase.editor.onDidCreateModel(onModelAdd));
253
- this._disposables.push(languageDefaultsBase.editor.onWillDisposeModel((model) => {
254
- onModelRemoved(model);
255
- }));
256
- this._disposables.push(languageDefaultsBase.editor.onDidChangeModelLanguage((event) => {
257
- onModelRemoved(event.model);
258
- onModelAdd(event.model);
259
- }));
260
- this._disposables.push(defaults.onDidChange(() => {
261
- languageDefaultsBase.editor.getModels().forEach((model) => {
262
- if (model.getLanguageId() === this._languageId) {
263
- onModelRemoved(model);
264
- onModelAdd(model);
265
- }
266
- });
267
- }));
268
- this._disposables.push(defaults.onModelContextDidChange((key) => {
269
- languageDefaultsBase.editor.getModels().forEach((model) => {
270
- if (model.getLanguageId() === this._languageId && model.uri.toString() === key) {
271
- this._doValidate(model, this._languageId).catch(console.error);
272
- }
273
- });
274
- }));
275
- this._disposables.push({
276
- dispose: () => {
277
- this._listener.forEach((value) => value.dispose());
278
- this._listener.clear();
279
- },
280
- });
281
- languageDefaultsBase.editor.getModels().forEach(onModelAdd);
282
- }
283
- dispose() {
284
- this._disposables.forEach((d) => d.dispose());
285
- this._disposables = [];
286
- }
287
- async _doValidate(model, languageId) {
288
- if (!model.isAttachedToEditor()) {
289
- return;
290
- }
291
- try {
292
- const workerProxy = await this._worker(model.uri);
293
- const context = this._defaults.getApiContextForModel(model.uri);
294
- const diagnostics = await workerProxy.doValidation(model.uri.toString(), context);
295
- const markers = diagnostics.map((d) => toMarker(model.uri, d));
296
- this._diagnosticsService.fireDiagnosticsChange(model.uri, diagnostics);
297
- languageDefaultsBase.editor.setModelMarkers(model, languageId, markers);
298
- }
299
- catch (err) {
300
- console.error(err);
301
- }
302
- }
303
- }
304
- function toSeverity(languageServiceSeverity) {
305
- switch (languageServiceSeverity) {
306
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Error:
307
- return languageDefaultsBase.MarkerSeverity.Error;
308
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Warning:
309
- return languageDefaultsBase.MarkerSeverity.Warning;
310
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Information:
311
- return languageDefaultsBase.MarkerSeverity.Info;
312
- case languageDefaultsBase.main.exports.DiagnosticSeverity.Hint:
313
- return languageDefaultsBase.MarkerSeverity.Hint;
314
- default:
315
- return languageDefaultsBase.MarkerSeverity.Info;
316
- }
317
- }
318
- function toMarker(_resource, diag) {
319
- // Diagnostics positions are zero-based, MarkerData are 1-based
320
- return {
321
- severity: toSeverity(diag.severity),
322
- startLineNumber: diag.range.start.line + 1,
323
- startColumn: diag.range.start.character + 1,
324
- endLineNumber: diag.range.end.line + 1,
325
- endColumn: diag.range.end.character + 1,
326
- message: diag.message,
327
- };
328
- }
329
- //#endregion
330
- //#region Completion
331
- function fromPosition(position) {
332
- // Language service is zero based
333
- return { character: position.column - 1, line: position.lineNumber - 1 };
334
- }
335
- function toRange(range) {
336
- return new languageDefaultsBase.Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1);
337
- }
338
- function toTextEdit(textEdit) {
339
- return {
340
- range: toRange(textEdit.range),
341
- text: textEdit.newText,
342
- };
343
- }
344
- function isInsertReplaceEdit(edit) {
345
- return (typeof edit.insert !== "undefined" &&
346
- typeof edit.replace !== "undefined");
347
- }
348
- function toCompletionItemKind(kind) {
349
- const mItemKind = languageDefaultsBase.languages.CompletionItemKind;
350
- switch (kind) {
351
- case languageDefaultsBase.main.exports.CompletionItemKind.Text:
352
- return mItemKind.Text;
353
- case languageDefaultsBase.main.exports.CompletionItemKind.Method:
354
- return mItemKind.Method;
355
- case languageDefaultsBase.main.exports.CompletionItemKind.Function:
356
- return mItemKind.Function;
357
- case languageDefaultsBase.main.exports.CompletionItemKind.Constructor:
358
- return mItemKind.Constructor;
359
- case languageDefaultsBase.main.exports.CompletionItemKind.Field:
360
- return mItemKind.Field;
361
- case languageDefaultsBase.main.exports.CompletionItemKind.Variable:
362
- return mItemKind.Variable;
363
- case languageDefaultsBase.main.exports.CompletionItemKind.Class:
364
- return mItemKind.Class;
365
- case languageDefaultsBase.main.exports.CompletionItemKind.Interface:
366
- return mItemKind.Interface;
367
- case languageDefaultsBase.main.exports.CompletionItemKind.Module:
368
- return mItemKind.Module;
369
- case languageDefaultsBase.main.exports.CompletionItemKind.Property:
370
- return mItemKind.Property;
371
- case languageDefaultsBase.main.exports.CompletionItemKind.Unit:
372
- return mItemKind.Unit;
373
- case languageDefaultsBase.main.exports.CompletionItemKind.Value:
374
- return mItemKind.Value;
375
- case languageDefaultsBase.main.exports.CompletionItemKind.Enum:
376
- return mItemKind.Enum;
377
- case languageDefaultsBase.main.exports.CompletionItemKind.Keyword:
378
- return mItemKind.Keyword;
379
- case languageDefaultsBase.main.exports.CompletionItemKind.Snippet:
380
- return mItemKind.Snippet;
381
- case languageDefaultsBase.main.exports.CompletionItemKind.Color:
382
- return mItemKind.Color;
383
- case languageDefaultsBase.main.exports.CompletionItemKind.File:
384
- return mItemKind.File;
385
- case languageDefaultsBase.main.exports.CompletionItemKind.Reference:
386
- return mItemKind.Reference;
387
- case languageDefaultsBase.main.exports.CompletionItemKind.Folder:
388
- return mItemKind.Folder;
389
- case languageDefaultsBase.main.exports.CompletionItemKind.EnumMember:
390
- return mItemKind.EnumMember;
391
- case languageDefaultsBase.main.exports.CompletionItemKind.Constant:
392
- return mItemKind.Constant;
393
- case languageDefaultsBase.main.exports.CompletionItemKind.Struct:
394
- return mItemKind.Struct;
395
- case languageDefaultsBase.main.exports.CompletionItemKind.Event:
396
- return mItemKind.Event;
397
- case languageDefaultsBase.main.exports.CompletionItemKind.Operator:
398
- return mItemKind.Operator;
399
- case languageDefaultsBase.main.exports.CompletionItemKind.TypeParameter:
400
- return mItemKind.TypeParameter;
401
- default:
402
- return mItemKind.Property;
403
- }
404
- }
405
- class CompletionProvider {
406
- constructor(_worker, _defaults) {
407
- this._worker = _worker;
408
- this._defaults = _defaults;
409
- this.triggerCharacters = [".", "("];
410
- }
411
- async provideCompletionItems(model, position) {
412
- const worker = await this._worker(model.uri);
413
- const context = this._defaults.getApiContextForModel(model.uri);
414
- const completionList = await worker.doComplete(model.uri.toString(), fromPosition(position), context);
415
- const wordInfo = model.getWordUntilPosition(position);
416
- const wordRange = new languageDefaultsBase.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn);
417
- const items = completionList.items.map((entry) => {
418
- const item = {
419
- label: entry.label,
420
- insertText: entry.insertText || entry.label,
421
- sortText: entry.sortText,
422
- filterText: entry.filterText,
423
- detail: entry.detail,
424
- range: wordRange,
425
- kind: toCompletionItemKind(entry.kind),
426
- };
427
- if (entry.textEdit) {
428
- if (isInsertReplaceEdit(entry.textEdit)) {
429
- item.range = {
430
- insert: toRange(entry.textEdit.insert),
431
- replace: toRange(entry.textEdit.replace),
432
- };
433
- }
434
- else {
435
- item.range = toRange(entry.textEdit.range);
436
- }
437
- item.insertText = entry.textEdit.newText;
438
- }
439
- if (entry.additionalTextEdits) {
440
- item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);
441
- }
442
- if (entry.insertTextFormat === languageDefaultsBase.main.exports.InsertTextFormat.Snippet) {
443
- item.insertTextRules = languageDefaultsBase.languages.CompletionItemInsertTextRule.InsertAsSnippet;
444
- }
445
- if (entry.documentation) {
446
- if (typeof entry.documentation === "string") {
447
- item.documentation = entry.documentation;
448
- }
449
- else {
450
- item.documentation = {
451
- supportThemeIcons: false,
452
- value: entry.documentation.value,
453
- supportHtml: true,
454
- };
455
- }
456
- }
457
- return item;
458
- });
459
- return {
460
- incomplete: completionList.isIncomplete,
461
- suggestions: items,
462
- };
463
- }
464
- }
465
- //#endregion
466
- //#region Formatter
467
- class FormattingProvider {
468
- constructor(_worker, _defaults) {
469
- this._worker = _worker;
470
- this._defaults = _defaults;
471
- }
472
- async provideDocumentFormattingEdits(model) {
473
- const worker = await this._worker(model.uri);
474
- const context = this._defaults.getApiContextForModel(model.uri.toString());
475
- const edits = await worker.doFormat(model.uri.toString(), context);
476
- return edits.map((e) => ({ range: toRange(e.range), text: e.newText }));
477
- }
478
- }
479
- //#endregion
480
-
481
221
  /**
482
222
  * Manager to create our arcade worker and client proxy
483
223
  */
@@ -579,12 +319,12 @@ function setupMode(arcadeDefaults) {
579
319
  languageDefaultsBase.languages.setMonarchTokensProvider(arcadeDefaults.languageId, arcadeMonarchLanguage);
580
320
  languageDefaultsBase.languages.setLanguageConfiguration(arcadeDefaults.languageId, arcadeLanguageConfiguration);
581
321
  // Creates and registers a Completion Adapter
582
- languageDefaultsBase.languages.registerCompletionItemProvider(arcadeDefaults.languageId, new CompletionProvider(workerAccessor, arcadeDefaults));
322
+ languageDefaultsBase.languages.registerCompletionItemProvider(arcadeDefaults.languageId, new arcadeLanguageFeatures.CompletionProvider(workerAccessor, arcadeDefaults));
583
323
  // Creates and registers a Formatter
584
- languageDefaultsBase.languages.registerDocumentFormattingEditProvider(arcadeDefaults.languageId, new FormattingProvider(workerAccessor, arcadeDefaults));
324
+ languageDefaultsBase.languages.registerDocumentFormattingEditProvider(arcadeDefaults.languageId, new arcadeLanguageFeatures.FormattingProvider(workerAccessor, arcadeDefaults));
585
325
  // Creates a Diagnostic Adapter
586
326
  // eslint-disable-next-line no-new
587
- new DiagnosticsAdapter(arcadeDefaults.languageId, workerAccessor, {
327
+ new arcadeLanguageFeatures.DiagnosticsAdapter(arcadeDefaults.languageId, workerAccessor, {
588
328
  defaults: arcadeDefaults,
589
329
  diagnosticsService: arcadeDiagnosticService,
590
330
  });