@kusto/monaco-kusto 12.0.9 → 12.0.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.
package/README.md CHANGED
@@ -85,6 +85,14 @@ Every PR should come with a test that checks it.
85
85
 
86
86
  ## Changelog
87
87
 
88
+ ### 12.0.11
89
+
90
+ - fix: avoid race condition on worker disposal
91
+
92
+ ### 12.0.10
93
+
94
+ - fix: Parameter docstrings not shown
95
+
88
96
  ### 12.0.9
89
97
 
90
98
  - fix: decrease bundle size.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusto/monaco-kusto",
3
- "version": "12.0.9",
3
+ "version": "12.0.11",
4
4
  "description": "CSL, KQL plugin for the Monaco Editor",
5
5
  "author": {
6
6
  "name": "Microsoft"
@@ -24,7 +24,7 @@
24
24
  "clean": "rimraf ./release",
25
25
  "start": "ts-node ./scripts/dev.ts",
26
26
  "test": "jest",
27
- "test:integration": "playwright test --trace=retain-on-failure -c tests/integration/playwright.config.ts",
27
+ "test:integration": "playwright test -c tests/integration/playwright.config.ts",
28
28
  "test:integration:watch": "ts-node ./scripts/test.ts"
29
29
  },
30
30
  "types": "./release/esm/monaco.contribution.d.ts",
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './main-9e40fbc2', './types-5bc7699f'], (function (exports, monaco, main, types$1) { 'use strict';
8
+ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './main-37d643e2', './types-f09c24e4'], (function (exports, monaco, main, types$1) { 'use strict';
9
9
 
10
10
  function _interopNamespaceDefault(e) {
11
11
  var n = Object.create(null);
@@ -30,6 +30,9 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
30
30
  function _typeof$9(o) { "@babel/helpers - typeof"; return _typeof$9 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof$9(o); }
31
31
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
32
32
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
33
+ function _regeneratorRuntime$4() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime$4 = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof$9(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof$9(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
34
+ function asyncGeneratorStep$4(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
35
+ function _asyncToGenerator$4(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep$4(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep$4(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
33
36
  function _classCallCheck$2(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
34
37
  function _defineProperties$2(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey$3(o.key), o); } }
35
38
  function _createClass$2(e, r, t) { return r && _defineProperties$2(e.prototype, r), t && _defineProperties$2(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
@@ -41,11 +44,9 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
41
44
  _classCallCheck$2(this, WorkerManager);
42
45
  this._monacoInstance = _monacoInstance;
43
46
  this._defaults = defaults;
44
- this._worker = null;
45
47
  this._idleCheckInterval = self.setInterval(function () {
46
48
  return _this._checkIfIdle();
47
49
  }, 30 * 1000);
48
- this._lastUsedTime = 0;
49
50
  this._configChangeListener = this._defaults.onDidChange(function () {
50
51
  return _this._saveStateAndStopWorker();
51
52
  });
@@ -53,20 +54,37 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
53
54
  return _createClass$2(WorkerManager, [{
54
55
  key: "_stopWorker",
55
56
  value: function _stopWorker() {
56
- if (this._worker) {
57
- this._worker.dispose();
58
- this._worker = null;
59
- }
60
- this._client = null;
57
+ var workerToStop = this._workerDetails;
58
+ this._workerDetailsPromise = null;
59
+ this._workerDetails = null;
60
+
61
+ // Ensure disposal occurs only after the last request completes.
62
+ // This is necessary because setting the languageSettings disposes of the worker,
63
+ // causing the setSchema call to remain unresolved, which prevents the semantic tokens provider from being registered.
64
+ setTimeout( /*#__PURE__*/_asyncToGenerator$4( /*#__PURE__*/_regeneratorRuntime$4().mark(function _callee() {
65
+ return _regeneratorRuntime$4().wrap(function _callee$(_context) {
66
+ while (1) switch (_context.prev = _context.next) {
67
+ case 0:
68
+ if (workerToStop._worker) {
69
+ workerToStop._worker.dispose();
70
+ }
71
+ case 1:
72
+ case "end":
73
+ return _context.stop();
74
+ }
75
+ }, _callee);
76
+ })), 5000);
61
77
  }
62
78
  }, {
63
79
  key: "_saveStateAndStopWorker",
64
80
  value: function _saveStateAndStopWorker() {
65
- var _this2 = this;
66
- if (!this._worker) {
81
+ var _this$_workerDetails,
82
+ _this$_workerDetails2,
83
+ _this2 = this;
84
+ if (!((_this$_workerDetails = this._workerDetails) !== null && _this$_workerDetails !== void 0 && _this$_workerDetails._worker)) {
67
85
  return;
68
86
  }
69
- this._worker.getProxy().then(function (proxy) {
87
+ (_this$_workerDetails2 = this._workerDetails) === null || _this$_workerDetails2 === void 0 || _this$_workerDetails2._worker.getProxy().then(function (proxy) {
70
88
  proxy.getSchema().then(function (schema) {
71
89
  _this2._storedState = {
72
90
  schema: schema
@@ -85,11 +103,12 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
85
103
  }, {
86
104
  key: "_checkIfIdle",
87
105
  value: function _checkIfIdle() {
88
- if (!this._worker) {
106
+ var _this$_workerDetails3, _this$_workerDetails4;
107
+ if (!((_this$_workerDetails3 = this._workerDetails) !== null && _this$_workerDetails3 !== void 0 && _this$_workerDetails3._worker)) {
89
108
  return;
90
109
  }
91
110
  var maxIdleTime = this._defaults.getWorkerMaxIdleTime();
92
- var timePassedSinceLastUsed = Date.now() - this._lastUsedTime;
111
+ var timePassedSinceLastUsed = Date.now() - ((_this$_workerDetails4 = this._workerDetails) === null || _this$_workerDetails4 === void 0 ? void 0 : _this$_workerDetails4._lastUsedTime);
93
112
  if (maxIdleTime > 0 && timePassedSinceLastUsed > maxIdleTime) {
94
113
  this._saveStateAndStopWorker();
95
114
  }
@@ -98,14 +117,12 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
98
117
  key: "_getClient",
99
118
  value: function _getClient() {
100
119
  var _this3 = this;
101
- this._lastUsedTime = Date.now();
102
-
103
120
  // Since onDidProvideCompletionItems is not used in web worker, and since functions cannot be trivially serialized (throws exception unable to clone), We remove it here.
104
121
  var _this$_defaults$langu = this._defaults.languageSettings;
105
122
  _this$_defaults$langu.onDidProvideCompletionItems;
106
123
  var languageSettings = _objectWithoutProperties(_this$_defaults$langu, _excluded);
107
- if (!this._client) {
108
- this._worker = this._monacoInstance.editor.createWebWorker({
124
+ if (!this._workerDetailsPromise) {
125
+ var worker = this._monacoInstance.editor.createWebWorker({
109
126
  // module that exports the create() method and returns a `KustoWorker` instance
110
127
  moduleId: 'vs/language/kusto/kustoWorker',
111
128
  label: 'kusto',
@@ -115,7 +132,7 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
115
132
  languageId: 'kusto'
116
133
  }
117
134
  });
118
- this._client = this._worker.getProxy().then(function (proxy) {
135
+ var client = worker.getProxy().then(function (proxy) {
119
136
  // push state we held onto before killing the client.
120
137
  if (_this3._storedState) {
121
138
  return proxy.setSchema(_this3._storedState.schema).then(function () {
@@ -125,8 +142,16 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
125
142
  return proxy;
126
143
  }
127
144
  });
145
+ this._workerDetailsPromise = client.then(function (client) {
146
+ _this3._workerDetails = {
147
+ _worker: worker,
148
+ _client: client,
149
+ _lastUsedTime: Date.now()
150
+ };
151
+ return _this3._workerDetails;
152
+ });
128
153
  }
129
- return this._client;
154
+ return this._workerDetailsPromise;
130
155
  }
131
156
  }, {
132
157
  key: "getLanguageServiceWorker",
@@ -137,9 +162,10 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
137
162
  }
138
163
  var _client;
139
164
  return this._getClient().then(function (client) {
140
- _client = client;
165
+ _client = client._client;
141
166
  }).then(function (_) {
142
- return _this4._worker.withSyncedResources(resources);
167
+ var _this4$_workerDetails;
168
+ return (_this4$_workerDetails = _this4._workerDetails) === null || _this4$_workerDetails === void 0 || (_this4$_workerDetails = _this4$_workerDetails._worker) === null || _this4$_workerDetails === void 0 ? void 0 : _this4$_workerDetails.withSyncedResources(resources);
143
169
  }).then(function (_) {
144
170
  return _client;
145
171
  });
@@ -1660,11 +1686,8 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
1660
1686
  */
1661
1687
  function setupMode(defaults, monacoInstance) {
1662
1688
  var onSchemaChange = new monaco__namespace.Emitter();
1663
- // TODO: when should we dispose of these? seems like monaco-css and monaco-typescript don't dispose of these.
1664
- var disposables = [];
1665
1689
  var semanticTokensProviderRegistrar = semanticTokensProviderRegistrarCreator();
1666
1690
  var client = new WorkerManager(monacoInstance, defaults);
1667
- disposables.push(client);
1668
1691
  var workerAccessor = function workerAccessor(first) {
1669
1692
  var augmentedSetSchema = /*#__PURE__*/function () {
1670
1693
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(schema, worker) {
@@ -1723,34 +1746,21 @@ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './ma
1723
1746
  });
1724
1747
  });
1725
1748
  };
1726
- disposables.push(monacoInstance.languages.registerCompletionItemProvider(types$1.LANGUAGE_ID, new CompletionAdapter(workerAccessor, defaults.languageSettings)));
1727
- disposables.push(monacoInstance.languages.setMonarchTokensProvider(types$1.LANGUAGE_ID, kustoLanguageDefinition));
1728
- disposables.push(new DiagnosticsAdapter(monacoInstance, types$1.LANGUAGE_ID, workerAccessor, defaults, onSchemaChange.event));
1729
- disposables.push(monacoInstance.languages.registerDocumentRangeFormattingEditProvider(types$1.LANGUAGE_ID, new FormatAdapter(workerAccessor)));
1730
- disposables.push(monacoInstance.languages.registerFoldingRangeProvider(types$1.LANGUAGE_ID, new FoldingAdapter(workerAccessor)));
1731
- disposables.push(monacoInstance.languages.registerDefinitionProvider(types$1.LANGUAGE_ID, new DefinitionAdapter(workerAccessor)));
1732
- disposables.push(monacoInstance.languages.registerRenameProvider(types$1.LANGUAGE_ID, new RenameAdapter(workerAccessor)));
1733
- disposables.push(monacoInstance.languages.registerReferenceProvider(types$1.LANGUAGE_ID, new ReferenceAdapter(workerAccessor)));
1749
+ monacoInstance.languages.registerCompletionItemProvider(types$1.LANGUAGE_ID, new CompletionAdapter(workerAccessor, defaults.languageSettings));
1750
+ monacoInstance.languages.setMonarchTokensProvider(types$1.LANGUAGE_ID, kustoLanguageDefinition);
1751
+ new DiagnosticsAdapter(monacoInstance, types$1.LANGUAGE_ID, workerAccessor, defaults, onSchemaChange.event);
1752
+ monacoInstance.languages.registerDocumentRangeFormattingEditProvider(types$1.LANGUAGE_ID, new FormatAdapter(workerAccessor));
1753
+ monacoInstance.languages.registerFoldingRangeProvider(types$1.LANGUAGE_ID, new FoldingAdapter(workerAccessor));
1754
+ monacoInstance.languages.registerDefinitionProvider(types$1.LANGUAGE_ID, new DefinitionAdapter(workerAccessor));
1755
+ monacoInstance.languages.registerRenameProvider(types$1.LANGUAGE_ID, new RenameAdapter(workerAccessor));
1756
+ monacoInstance.languages.registerReferenceProvider(types$1.LANGUAGE_ID, new ReferenceAdapter(workerAccessor));
1734
1757
  if (defaults.languageSettings.enableHover) {
1735
- disposables.push(monacoInstance.languages.registerHoverProvider(types$1.LANGUAGE_ID, new HoverAdapter(workerAccessor)));
1758
+ monacoInstance.languages.registerHoverProvider(types$1.LANGUAGE_ID, new HoverAdapter(workerAccessor));
1736
1759
  }
1737
1760
  monacoInstance.languages.registerDocumentFormattingEditProvider(types$1.LANGUAGE_ID, new DocumentFormatAdapter(workerAccessor));
1738
1761
  kustoWorker = workerAccessor;
1739
1762
  resolveWorker(workerAccessor);
1740
- disposables.push(monacoInstance.languages.setLanguageConfiguration(types$1.LANGUAGE_ID, kanguageConfiguration));
1741
- return asDisposable(disposables);
1742
- }
1743
- function asDisposable(disposables) {
1744
- return {
1745
- dispose: function dispose() {
1746
- return disposeAll(disposables);
1747
- }
1748
- };
1749
- }
1750
- function disposeAll(disposables) {
1751
- disposables.forEach(function (d) {
1752
- return d.dispose();
1753
- });
1763
+ monacoInstance.languages.setLanguageConfiguration(types$1.LANGUAGE_ID, kanguageConfiguration);
1754
1764
  }
1755
1765
  function getKustoWorker() {
1756
1766
  return workerPromise.then(function () {
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- define('vs/language/kusto/kustoWorker', ['exports', './main-9e40fbc2', './schema-9984bfe2'], (function (exports, main, schema) { 'use strict';
8
+ define('vs/language/kusto/kustoWorker', ['exports', './main-37d643e2', './schema-301c9f75'], (function (exports, main, schema) { 'use strict';
9
9
 
10
10
  function _slicedToArray$2(r, e) { return _arrayWithHoles$2(r) || _iterableToArrayLimit$2(r, e) || _unsupportedIterableToArray$3(r, e) || _nonIterableRest$2(); }
11
11
  function _nonIterableRest$2() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -5254,8 +5254,9 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-9e40fbc2', './schema
5254
5254
  }, {
5255
5255
  key: "createParameterSymbol",
5256
5256
  value: function createParameterSymbol(param) {
5257
+ var _param$docstring;
5257
5258
  var paramSymbol = Kusto.Language.Symbols.ScalarTypes.GetSymbol(schema.getCslTypeNameFromClrType(param.type));
5258
- return new sym.ParameterSymbol(param.name, paramSymbol, null);
5259
+ return new sym.ParameterSymbol(param.name, paramSymbol, (_param$docstring = param.docstring) !== null && _param$docstring !== void 0 ? _param$docstring : null);
5259
5260
  }
5260
5261
  }, {
5261
5262
  key: "createTabularParameterSymbol",
@@ -5270,9 +5271,10 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-9e40fbc2', './schema
5270
5271
  key: "createParameter",
5271
5272
  value: function createParameter(param) {
5272
5273
  if (!param.columns) {
5274
+ var _param$docstring2;
5273
5275
  var paramSymbol = Kusto.Language.Symbols.ScalarTypes.GetSymbol(schema.getCslTypeNameFromClrType(param.type));
5274
5276
  var expression = param.cslDefaultValue && typeof param.cslDefaultValue === 'string' ? parsing.QueryParser.ParseLiteral$1(param.cslDefaultValue) : undefined;
5275
- return new sym.Parameter.$ctor3(param.name, paramSymbol, null, null, null, false, null, 1, 1, expression, null);
5277
+ return new sym.Parameter.$ctor3(param.name, paramSymbol, null, null, param.examples ? KustoLanguageService.toBridgeList(param.examples) : null, false, null, 1, 1, expression, (_param$docstring2 = param.docstring) !== null && _param$docstring2 !== void 0 ? _param$docstring2 : null);
5276
5278
  }
5277
5279
  if (param.columns.length == 0) {
5278
5280
  return new sym.Parameter.ctor(param.name, sym.ParameterTypeKind.Tabular, sym.ArgumentKind.Expression, null, null, false, null, 1, 1, null, null);
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- define('vs/language/kusto/main-9e40fbc2', ['exports'], (function (exports) { 'use strict';
8
+ define('vs/language/kusto/main-37d643e2', ['exports'], (function (exports) { 'use strict';
9
9
 
10
10
  /* --------------------------------------------------------------------------------------------
11
11
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- define('vs/language/kusto/monaco.contribution', ['require', 'exports', 'vs/editor/editor.main', './types-5bc7699f', './schema-9984bfe2'], (function (require, exports, monaco, types, schema) { 'use strict';
8
+ define('vs/language/kusto/monaco.contribution', ['require', 'exports', 'vs/editor/editor.main', './types-f09c24e4', './schema-301c9f75'], (function (require, exports, monaco, types, schema) { 'use strict';
9
9
 
10
10
  function _interopNamespaceDefault(e) {
11
11
  var n = Object.create(null);
@@ -492,7 +492,6 @@ define('vs/language/kusto/monaco.contribution', ['require', 'exports', 'vs/edito
492
492
  return new Promise(function (resolve, reject) { require(['./kustoMode'], resolve, reject); }).then(callback);
493
493
  }
494
494
  var kustoDefaults = new LanguageServiceDefaultsImpl(defaultLanguageSettings);
495
- var disposable;
496
495
  monaco__namespace.languages.onLanguage('kusto', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
497
496
  return _regeneratorRuntime().wrap(function _callee$(_context) {
498
497
  while (1) switch (_context.prev = _context.next) {
@@ -502,16 +501,11 @@ define('vs/language/kusto/monaco.contribution', ['require', 'exports', 'vs/edito
502
501
  return mode.setupMode(kustoDefaults, monaco__namespace);
503
502
  });
504
503
  case 2:
505
- disposable = _context.sent;
506
- case 3:
507
504
  case "end":
508
505
  return _context.stop();
509
506
  }
510
507
  }, _callee);
511
508
  })));
512
- monaco__namespace.editor.onWillDisposeModel(function (model) {
513
- disposable.dispose();
514
- });
515
509
  monaco__namespace.languages.register({
516
510
  id: types.LANGUAGE_ID,
517
511
  extensions: ['.csl', '.kql']
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- define('vs/language/kusto/schema-9984bfe2', ['exports'], (function (exports) { 'use strict';
8
+ define('vs/language/kusto/schema-301c9f75', ['exports'], (function (exports) { 'use strict';
9
9
 
10
10
  // Definition of schema object in the context of language services. This model is exposed to consumers of this library.
11
11
 
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- define('vs/language/kusto/types-5bc7699f', ['exports'], (function (exports) { 'use strict';
8
+ define('vs/language/kusto/types-f09c24e4', ['exports'], (function (exports) { 'use strict';
9
9
 
10
10
  var LANGUAGE_ID = 'kusto';
11
11
 
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
@@ -8,7 +8,7 @@
8
8
  import * as worker from 'monaco-editor/esm/vs/editor/editor.worker';
9
9
  import * as ls from 'vscode-languageserver-types';
10
10
  import XRegExp from 'xregexp';
11
- import { d as getEntityDataTypeFromCslType, a as getCallName, b as getExpression, g as getCslTypeNameFromClrType } from './schema-7f5fde14.js';
11
+ import { d as getEntityDataTypeFromCslType, a as getCallName, b as getExpression, g as getCslTypeNameFromClrType } from './schema-688702c2.js';
12
12
  import '@kusto/language-service/bridge.min';
13
13
  import '@kusto/language-service/Kusto.JavaScript.Client.min';
14
14
  import '@kusto/language-service/newtonsoft.json.min';
@@ -1322,7 +1322,7 @@ class KustoLanguageService {
1322
1322
  }
1323
1323
  static createParameterSymbol(param) {
1324
1324
  const paramSymbol = Kusto.Language.Symbols.ScalarTypes.GetSymbol(getCslTypeNameFromClrType(param.type));
1325
- return new sym.ParameterSymbol(param.name, paramSymbol, null);
1325
+ return new sym.ParameterSymbol(param.name, paramSymbol, param.docstring ?? null);
1326
1326
  }
1327
1327
  static createTabularParameterSymbol(param) {
1328
1328
  const columnSymbols = param.columns.map(col => KustoLanguageService.createColumnSymbol(col));
@@ -1333,7 +1333,7 @@ class KustoLanguageService {
1333
1333
  if (!param.columns) {
1334
1334
  const paramSymbol = Kusto.Language.Symbols.ScalarTypes.GetSymbol(getCslTypeNameFromClrType(param.type));
1335
1335
  const expression = param.cslDefaultValue && typeof param.cslDefaultValue === 'string' ? parsing.QueryParser.ParseLiteral$1(param.cslDefaultValue) : undefined;
1336
- return new sym.Parameter.$ctor3(param.name, paramSymbol, null, null, null, false, null, 1, 1, expression, null);
1336
+ return new sym.Parameter.$ctor3(param.name, paramSymbol, null, null, param.examples ? KustoLanguageService.toBridgeList(param.examples) : null, false, null, 1, 1, expression, param.docstring ?? null);
1337
1337
  }
1338
1338
  if (param.columns.length == 0) {
1339
1339
  return new sym.Parameter.ctor(param.name, sym.ParameterTypeKind.Tabular, sym.ArgumentKind.Expression, null, null, false, null, 1, 1, null, null);
@@ -1,7 +1,6 @@
1
1
  import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
2
  import type { KustoWorker, LanguageServiceDefaults } from './monaco.contribution';
3
3
  import type { IKustoWorkerImpl } from './kustoWorker';
4
- import type { IDisposable } from 'monaco-editor';
5
4
  export interface AugmentedWorker extends KustoWorker, Omit<IKustoWorkerImpl, 'setSchemaFromShowSchema' | 'getReferencedSymbols'> {
6
5
  }
7
6
  export interface AugmentedWorkerAccessor {
@@ -11,5 +10,5 @@ export interface AugmentedWorkerAccessor {
11
10
  * Called when Kusto language is first needed (a model has the language set)
12
11
  * @param defaults
13
12
  */
14
- export declare function setupMode(defaults: LanguageServiceDefaults, monacoInstance: typeof globalThis.monaco): IDisposable;
13
+ export declare function setupMode(defaults: LanguageServiceDefaults, monacoInstance: typeof globalThis.monaco): void;
15
14
  export declare function getKustoWorker(): Promise<AugmentedWorkerAccessor>;
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 12.0.9(6aaa26e82cd3453df67c3415f82f292bb5a88409)
3
+ * monaco-kusto version: 12.0.11(1f40b10df7cdf22320a5540a3bfc8e2ee7f92bee)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
@@ -8,29 +8,34 @@
8
8
  import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
9
9
  import * as ls from 'vscode-languageserver-types';
10
10
  import debounce from 'lodash-es/debounce';
11
- import { L as LANGUAGE_ID, T as Token, t as tokenTypes } from './globals-db21ffff.js';
11
+ import { L as LANGUAGE_ID, T as Token, t as tokenTypes } from './globals-b3e95adf.js';
12
12
 
13
13
  class WorkerManager {
14
14
  constructor(_monacoInstance, defaults) {
15
15
  this._monacoInstance = _monacoInstance;
16
16
  this._defaults = defaults;
17
- this._worker = null;
18
17
  this._idleCheckInterval = self.setInterval(() => this._checkIfIdle(), 30 * 1000);
19
- this._lastUsedTime = 0;
20
18
  this._configChangeListener = this._defaults.onDidChange(() => this._saveStateAndStopWorker());
21
19
  }
22
20
  _stopWorker() {
23
- if (this._worker) {
24
- this._worker.dispose();
25
- this._worker = null;
26
- }
27
- this._client = null;
21
+ const workerToStop = this._workerDetails;
22
+ this._workerDetailsPromise = null;
23
+ this._workerDetails = null;
24
+
25
+ // Ensure disposal occurs only after the last request completes.
26
+ // This is necessary because setting the languageSettings disposes of the worker,
27
+ // causing the setSchema call to remain unresolved, which prevents the semantic tokens provider from being registered.
28
+ setTimeout(async () => {
29
+ if (workerToStop._worker) {
30
+ workerToStop._worker.dispose();
31
+ }
32
+ }, 5000);
28
33
  }
29
34
  _saveStateAndStopWorker() {
30
- if (!this._worker) {
35
+ if (!this._workerDetails?._worker) {
31
36
  return;
32
37
  }
33
- this._worker.getProxy().then(proxy => {
38
+ this._workerDetails?._worker.getProxy().then(proxy => {
34
39
  proxy.getSchema().then(schema => {
35
40
  this._storedState = {
36
41
  schema: schema
@@ -45,25 +50,23 @@ class WorkerManager {
45
50
  this._stopWorker();
46
51
  }
47
52
  _checkIfIdle() {
48
- if (!this._worker) {
53
+ if (!this._workerDetails?._worker) {
49
54
  return;
50
55
  }
51
56
  const maxIdleTime = this._defaults.getWorkerMaxIdleTime();
52
- let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;
57
+ let timePassedSinceLastUsed = Date.now() - this._workerDetails?._lastUsedTime;
53
58
  if (maxIdleTime > 0 && timePassedSinceLastUsed > maxIdleTime) {
54
59
  this._saveStateAndStopWorker();
55
60
  }
56
61
  }
57
62
  _getClient() {
58
- this._lastUsedTime = Date.now();
59
-
60
63
  // Since onDidProvideCompletionItems is not used in web worker, and since functions cannot be trivially serialized (throws exception unable to clone), We remove it here.
61
64
  const {
62
65
  onDidProvideCompletionItems,
63
66
  ...languageSettings
64
67
  } = this._defaults.languageSettings;
65
- if (!this._client) {
66
- this._worker = this._monacoInstance.editor.createWebWorker({
68
+ if (!this._workerDetailsPromise) {
69
+ const worker = this._monacoInstance.editor.createWebWorker({
67
70
  // module that exports the create() method and returns a `KustoWorker` instance
68
71
  moduleId: 'vs/language/kusto/kustoWorker',
69
72
  label: 'kusto',
@@ -73,7 +76,7 @@ class WorkerManager {
73
76
  languageId: 'kusto'
74
77
  }
75
78
  });
76
- this._client = this._worker.getProxy().then(proxy => {
79
+ const client = worker.getProxy().then(proxy => {
77
80
  // push state we held onto before killing the client.
78
81
  if (this._storedState) {
79
82
  return proxy.setSchema(this._storedState.schema).then(() => proxy);
@@ -81,15 +84,23 @@ class WorkerManager {
81
84
  return proxy;
82
85
  }
83
86
  });
87
+ this._workerDetailsPromise = client.then(client => {
88
+ this._workerDetails = {
89
+ _worker: worker,
90
+ _client: client,
91
+ _lastUsedTime: Date.now()
92
+ };
93
+ return this._workerDetails;
94
+ });
84
95
  }
85
- return this._client;
96
+ return this._workerDetailsPromise;
86
97
  }
87
98
  getLanguageServiceWorker(...resources) {
88
99
  let _client;
89
100
  return this._getClient().then(client => {
90
- _client = client;
101
+ _client = client._client;
91
102
  }).then(_ => {
92
- return this._worker.withSyncedResources(resources);
103
+ return this._workerDetails?._worker?.withSyncedResources(resources);
93
104
  }).then(_ => _client);
94
105
  }
95
106
  }
@@ -856,11 +867,8 @@ let workerPromise = new Promise((resolve, reject) => {
856
867
  */
857
868
  function setupMode(defaults, monacoInstance) {
858
869
  const onSchemaChange = new monaco.Emitter();
859
- // TODO: when should we dispose of these? seems like monaco-css and monaco-typescript don't dispose of these.
860
- const disposables = [];
861
870
  const semanticTokensProviderRegistrar = semanticTokensProviderRegistrarCreator();
862
871
  const client = new WorkerManager(monacoInstance, defaults);
863
- disposables.push(client);
864
872
  const workerAccessor = (first, ...more) => {
865
873
  const augmentedSetSchema = async (schema, worker) => {
866
874
  const workerPromise = worker.setSchema(schema);
@@ -887,32 +895,21 @@ function setupMode(defaults, monacoInstance) {
887
895
  }
888
896
  }));
889
897
  };
890
- disposables.push(monacoInstance.languages.registerCompletionItemProvider(LANGUAGE_ID, new CompletionAdapter(workerAccessor, defaults.languageSettings)));
891
- disposables.push(monacoInstance.languages.setMonarchTokensProvider(LANGUAGE_ID, kustoLanguageDefinition));
892
- disposables.push(new DiagnosticsAdapter(monacoInstance, LANGUAGE_ID, workerAccessor, defaults, onSchemaChange.event));
893
- disposables.push(monacoInstance.languages.registerDocumentRangeFormattingEditProvider(LANGUAGE_ID, new FormatAdapter(workerAccessor)));
894
- disposables.push(monacoInstance.languages.registerFoldingRangeProvider(LANGUAGE_ID, new FoldingAdapter(workerAccessor)));
895
- disposables.push(monacoInstance.languages.registerDefinitionProvider(LANGUAGE_ID, new DefinitionAdapter(workerAccessor)));
896
- disposables.push(monacoInstance.languages.registerRenameProvider(LANGUAGE_ID, new RenameAdapter(workerAccessor)));
897
- disposables.push(monacoInstance.languages.registerReferenceProvider(LANGUAGE_ID, new ReferenceAdapter(workerAccessor)));
898
+ monacoInstance.languages.registerCompletionItemProvider(LANGUAGE_ID, new CompletionAdapter(workerAccessor, defaults.languageSettings));
899
+ monacoInstance.languages.setMonarchTokensProvider(LANGUAGE_ID, kustoLanguageDefinition);
900
+ new DiagnosticsAdapter(monacoInstance, LANGUAGE_ID, workerAccessor, defaults, onSchemaChange.event);
901
+ monacoInstance.languages.registerDocumentRangeFormattingEditProvider(LANGUAGE_ID, new FormatAdapter(workerAccessor));
902
+ monacoInstance.languages.registerFoldingRangeProvider(LANGUAGE_ID, new FoldingAdapter(workerAccessor));
903
+ monacoInstance.languages.registerDefinitionProvider(LANGUAGE_ID, new DefinitionAdapter(workerAccessor));
904
+ monacoInstance.languages.registerRenameProvider(LANGUAGE_ID, new RenameAdapter(workerAccessor));
905
+ monacoInstance.languages.registerReferenceProvider(LANGUAGE_ID, new ReferenceAdapter(workerAccessor));
898
906
  if (defaults.languageSettings.enableHover) {
899
- disposables.push(monacoInstance.languages.registerHoverProvider(LANGUAGE_ID, new HoverAdapter(workerAccessor)));
907
+ monacoInstance.languages.registerHoverProvider(LANGUAGE_ID, new HoverAdapter(workerAccessor));
900
908
  }
901
909
  monacoInstance.languages.registerDocumentFormattingEditProvider(LANGUAGE_ID, new DocumentFormatAdapter(workerAccessor));
902
910
  kustoWorker = workerAccessor;
903
911
  resolveWorker(workerAccessor);
904
- disposables.push(monacoInstance.languages.setLanguageConfiguration(LANGUAGE_ID, kanguageConfiguration));
905
- return asDisposable(disposables);
906
- }
907
- function asDisposable(disposables) {
908
- return {
909
- dispose: () => {
910
- return disposeAll(disposables);
911
- }
912
- };
913
- }
914
- function disposeAll(disposables) {
915
- disposables.forEach(d => d.dispose());
912
+ monacoInstance.languages.setLanguageConfiguration(LANGUAGE_ID, kanguageConfiguration);
916
913
  }
917
914
  function getKustoWorker() {
918
915
  return workerPromise.then(() => kustoWorker);