@kusto/monaco-kusto 8.3.0 → 9.0.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusto/monaco-kusto",
3
- "version": "8.3.0",
3
+ "version": "9.0.0",
4
4
  "description": "CSL, KQL plugin for the Monaco Editor",
5
5
  "author": {
6
6
  "name": "Microsoft"
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 8.3.0(b1e36a8cfc8e35c070743997d6e7770ea8081289)
3
+ * monaco-kusto version: 9.0.0(faf7ed5043d2e79738847656c64ca42816963d09)
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-e6ef956d'], (function (exports, monaco, main) { 'use strict';
8
+ define('vs/language/kusto/kustoMode', ['exports', 'vs/editor/editor.main', './main-adf33640'], (function (exports, monaco, main) { 'use strict';
9
9
 
10
10
  function _interopNamespaceDefault(e) {
11
11
  var n = Object.create(null);
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 8.3.0(b1e36a8cfc8e35c070743997d6e7770ea8081289)
3
+ * monaco-kusto version: 9.0.0(faf7ed5043d2e79738847656c64ca42816963d09)
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-e6ef956d', './schema-7d65ed04'], (function (exports, main, schema) { 'use strict';
8
+ define('vs/language/kusto/kustoWorker', ['exports', './main-adf33640', './schema-9a35b99a'], (function (exports, main, schema) { 'use strict';
9
9
 
10
10
  function _slicedToArray$2(arr, i) { return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _unsupportedIterableToArray$3(arr, i) || _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."); }
@@ -3463,7 +3463,10 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
3463
3463
  );
3464
3464
  }
3465
3465
 
3466
+ var _excluded = ["name", "columns", "entityType", "docstring"];
3466
3467
  var _symbolKindToName;
3468
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
3469
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
3467
3470
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest(); }
3468
3471
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3469
3472
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
@@ -4347,12 +4350,15 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
4347
4350
  * @param schema schema json as received from .show schema as json
4348
4351
  * @param clusterConnectionString cluster connection string
4349
4352
  * @param databaseInContextName name of database in context
4353
+ * @param globalScalarParameters
4354
+ * @param globalTabularParameters
4355
+ * @param databaseInContextAlternateName alternate name of database in context
4350
4356
  */
4351
4357
  }, {
4352
4358
  key: "setSchemaFromShowSchema",
4353
- value: function setSchemaFromShowSchema(schema, clusterConnectionString, databaseInContextName, globalScalarParameters, globalTabularParameters) {
4359
+ value: function setSchemaFromShowSchema(schema, clusterConnectionString, databaseInContextName, globalScalarParameters, globalTabularParameters, databaseInContextAlternateName) {
4354
4360
  var _this8 = this;
4355
- return this.normalizeSchema(schema, clusterConnectionString, databaseInContextName).then(function (normalized) {
4361
+ return this.normalizeSchema(schema, clusterConnectionString, databaseInContextName, databaseInContextAlternateName).then(function (normalized) {
4356
4362
  return _this8.setSchema(_objectSpread(_objectSpread({}, normalized), {}, {
4357
4363
  globalScalarParameters: globalScalarParameters,
4358
4364
  globalTabularParameters: globalTabularParameters
@@ -4365,47 +4371,60 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
4365
4371
  * @param schema result of show schema
4366
4372
  * @param clusterConnectionString cluster connection string`
4367
4373
  * @param databaseInContextName database in context name
4374
+ * @param databaseInContextAlternateName database in context alternate name
4368
4375
  */
4369
4376
  }, {
4370
4377
  key: "normalizeSchema",
4371
- value: function normalizeSchema(schema, clusterConnectionString, databaseInContextName) {
4378
+ value: function normalizeSchema(schema, clusterConnectionString, databaseInContextName, databaseInContextAlternateName) {
4372
4379
  var databases = Object.keys(schema.Databases).map(function (key) {
4373
4380
  return schema.Databases[key];
4374
4381
  }).map(function (_ref4) {
4375
- var _ref5;
4382
+ var _ref7;
4376
4383
  var Name = _ref4.Name,
4377
4384
  Tables = _ref4.Tables,
4378
4385
  ExternalTables = _ref4.ExternalTables,
4379
4386
  MaterializedViews = _ref4.MaterializedViews,
4380
4387
  Functions = _ref4.Functions,
4388
+ _ref4$EntityGroups = _ref4.EntityGroups,
4389
+ EntityGroups = _ref4$EntityGroups === void 0 ? {} : _ref4$EntityGroups,
4381
4390
  MinorVersion = _ref4.MinorVersion,
4382
4391
  MajorVersion = _ref4.MajorVersion;
4383
4392
  return {
4384
4393
  name: Name,
4394
+ alternateName: databaseInContextAlternateName || null,
4385
4395
  minorVersion: MinorVersion,
4386
4396
  majorVersion: MajorVersion,
4387
- tables: (_ref5 = []).concat.apply(_ref5, _toConsumableArray([[Tables, 'Table'], [MaterializedViews, 'MaterializedView'], [ExternalTables, 'ExternalTable']].filter(function (_ref6) {
4388
- var _ref7 = _slicedToArray(_ref6, 1),
4389
- tableContainer = _ref7[0];
4397
+ entityGroups: Object.entries(EntityGroups).map(function (_ref5) {
4398
+ var _ref6 = _slicedToArray(_ref5, 2),
4399
+ name = _ref6[0],
4400
+ members = _ref6[1];
4401
+ return {
4402
+ name: name,
4403
+ members: members
4404
+ };
4405
+ }),
4406
+ tables: (_ref7 = []).concat.apply(_ref7, _toConsumableArray([[Tables, 'Table'], [MaterializedViews, 'MaterializedView'], [ExternalTables, 'ExternalTable']].filter(function (_ref8) {
4407
+ var _ref9 = _slicedToArray(_ref8, 1),
4408
+ tableContainer = _ref9[0];
4390
4409
  return tableContainer;
4391
- }).map(function (_ref8) {
4392
- var _ref9 = _slicedToArray(_ref8, 2),
4393
- tableContainer = _ref9[0],
4394
- tableEntity = _ref9[1];
4395
- return Object.values(tableContainer).map(function (_ref10) {
4396
- var Name = _ref10.Name,
4397
- OrderedColumns = _ref10.OrderedColumns,
4398
- DocString = _ref10.DocString;
4410
+ }).map(function (_ref10) {
4411
+ var _ref11 = _slicedToArray(_ref10, 2),
4412
+ tableContainer = _ref11[0],
4413
+ tableEntity = _ref11[1];
4414
+ return Object.values(tableContainer).map(function (_ref12) {
4415
+ var Name = _ref12.Name,
4416
+ OrderedColumns = _ref12.OrderedColumns,
4417
+ DocString = _ref12.DocString;
4399
4418
  return {
4400
4419
  name: Name,
4401
4420
  docstring: DocString,
4402
4421
  entityType: tableEntity,
4403
- columns: OrderedColumns.map(function (_ref11) {
4404
- var Name = _ref11.Name;
4405
- _ref11.Type;
4406
- var DocString = _ref11.DocString,
4407
- CslType = _ref11.CslType,
4408
- Examples = _ref11.Examples;
4422
+ columns: OrderedColumns.map(function (_ref13) {
4423
+ var Name = _ref13.Name;
4424
+ _ref13.Type;
4425
+ var DocString = _ref13.DocString,
4426
+ CslType = _ref13.CslType,
4427
+ Examples = _ref13.Examples;
4409
4428
  return {
4410
4429
  name: Name,
4411
4430
  type: CslType,
@@ -4418,11 +4437,11 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
4418
4437
  }))),
4419
4438
  functions: Object.keys(Functions).map(function (key) {
4420
4439
  return Functions[key];
4421
- }).map(function (_ref12) {
4422
- var Name = _ref12.Name,
4423
- Body = _ref12.Body,
4424
- DocString = _ref12.DocString,
4425
- InputParameters = _ref12.InputParameters;
4440
+ }).map(function (_ref14) {
4441
+ var Name = _ref14.Name,
4442
+ Body = _ref14.Body,
4443
+ DocString = _ref14.DocString,
4444
+ InputParameters = _ref14.InputParameters;
4426
4445
  return {
4427
4446
  name: Name,
4428
4447
  body: Body,
@@ -4531,10 +4550,10 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
4531
4550
  value: function getCommandsInDocumentV1(document) {
4532
4551
  this.parseDocumentV1(document, k.ParseMode.CommandTokensOnly);
4533
4552
  var commands = this.toArray(this._parser.Results);
4534
- return Promise.resolve(commands.map(function (_ref13) {
4535
- var AbsoluteStart = _ref13.AbsoluteStart,
4536
- AbsoluteEnd = _ref13.AbsoluteEnd,
4537
- Text = _ref13.Text;
4553
+ return Promise.resolve(commands.map(function (_ref15) {
4554
+ var AbsoluteStart = _ref15.AbsoluteStart,
4555
+ AbsoluteEnd = _ref15.AbsoluteEnd,
4556
+ Text = _ref15.Text;
4538
4557
  return {
4539
4558
  absoluteStart: AbsoluteStart,
4540
4559
  absoluteEnd: AbsoluteEnd,
@@ -4610,10 +4629,10 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
4610
4629
  var commands = this.toArray(script.Blocks).filter(function (command) {
4611
4630
  return command.Text.trim() != '';
4612
4631
  });
4613
- return Promise.resolve(commands.map(function (_ref14) {
4614
- var Start = _ref14.Start,
4615
- End = _ref14.End,
4616
- Text = _ref14.Text;
4632
+ return Promise.resolve(commands.map(function (_ref16) {
4633
+ var Start = _ref16.Start,
4634
+ End = _ref16.End,
4635
+ Text = _ref16.Text;
4617
4636
  return {
4618
4637
  absoluteStart: Start,
4619
4638
  absoluteEnd: End,
@@ -5225,10 +5244,10 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
5225
5244
  }
5226
5245
 
5227
5246
  // This is a cluster manger
5228
- var _ref15 = schema,
5229
- accounts = _ref15.accounts,
5230
- services = _ref15.services,
5231
- connectionString = _ref15.connectionString;
5247
+ var _ref17 = schema,
5248
+ accounts = _ref17.accounts,
5249
+ services = _ref17.services,
5250
+ connectionString = _ref17.connectionString;
5232
5251
  new k.KustoIntelliSenseAccountEntity();
5233
5252
  new k.KustoIntelliSenseServiceEntity();
5234
5253
  this._rulesProvider = new k.ClusterManagerIntelliSenseRulesProvider.$ctor1(new Bridge.ArrayEnumerable(accounts), new Bridge.ArrayEnumerable(services), connectionString);
@@ -5285,7 +5304,9 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
5285
5304
  var database = {
5286
5305
  majorVersion: 0,
5287
5306
  minorVersion: 0,
5307
+ entityGroups: [],
5288
5308
  name: 'Kuskus',
5309
+ alternateName: null,
5289
5310
  tables: [{
5290
5311
  name: 'KustoLogs',
5291
5312
  columns: [{
@@ -5489,43 +5510,10 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
5489
5510
  }, {
5490
5511
  key: "convertToDatabaseSymbol",
5491
5512
  value: function convertToDatabaseSymbol(db) {
5492
- var createFunctionSymbol = function createFunctionSymbol(fn) {
5493
- var parameters = fn.inputParameters.map(function (param) {
5494
- return KustoLanguageService.createParameter(param);
5495
- });
5496
-
5497
- // TODO: handle outputColumns (right now it doesn't seem to be implemented for any function).
5498
- return new sym.FunctionSymbol.$ctor14(fn.name, fn.body, KustoLanguageService.toBridgeList(parameters), fn.docstring);
5499
- };
5500
- var createTableSymbol = function createTableSymbol(tbl) {
5501
- var _mvQuery;
5502
- var columnSymbols = tbl.columns.map(function (col) {
5503
- return KustoLanguageService.createColumnSymbol(col);
5504
- });
5505
- var symbol = new sym.TableSymbol.$ctor4(tbl.name, columnSymbols);
5506
- symbol.Description = tbl.docstring;
5507
- switch (tbl.entityType) {
5508
- case 'MaterializedViewTable':
5509
- var mvQuery = (_mvQuery = tbl.mvQuery) !== null && _mvQuery !== void 0 ? _mvQuery : null;
5510
- symbol = new sym.MaterializedViewSymbol.$ctor2(tbl.name, symbol.Columns, mvQuery, tbl.docstring);
5511
- symbol = symbol.WithIsMaterializedView(true);
5512
- break;
5513
- case 'ExternalTable':
5514
- symbol = symbol.WithIsExternal(true);
5515
- break;
5516
- }
5517
- return symbol;
5518
- };
5519
- var createDatabaseSymbol = function createDatabaseSymbol(db) {
5520
- var tableSymbols = db.tables ? db.tables.map(function (tbl) {
5521
- return createTableSymbol(tbl);
5522
- }) : [];
5523
- var functionSymbols = db.functions ? db.functions.map(function (fun) {
5524
- return createFunctionSymbol(fun);
5525
- }) : [];
5526
- return new sym.DatabaseSymbol.ctor(db.name, tableSymbols.concat(functionSymbols));
5527
- };
5528
- var databaseSymbol = createDatabaseSymbol(db);
5513
+ var tableSymbols = (db.tables || []).map(this.createTableSymbol);
5514
+ var functionSymbols = (db.functions || []).map(this.createFunctionSymbol);
5515
+ var entityGroupsSymbols = (db.entityGroups || []).map(this.createEntityGroupSymbol);
5516
+ var databaseSymbol = new sym.DatabaseSymbol.$ctor2(db.name, db.alternateName, tableSymbols.concat(functionSymbols).concat(entityGroupsSymbols));
5529
5517
  return databaseSymbol;
5530
5518
  }
5531
5519
  }, {
@@ -5546,6 +5534,43 @@ define('vs/language/kusto/kustoWorker', ['exports', './main-e6ef956d', './schema
5546
5534
  // copied from bridge.js from the implementation of Enumerable.prototype.toList
5547
5535
  return new (System.Collections.Generic.List$1(System.Object).$ctor1)(array);
5548
5536
  }
5537
+ }, {
5538
+ key: "createFunctionSymbol",
5539
+ value: function createFunctionSymbol(fn) {
5540
+ var parameters = fn.inputParameters.map(function (param) {
5541
+ return KustoLanguageService.createParameter(param);
5542
+ });
5543
+
5544
+ // TODO: handle outputColumns (right now it doesn't seem to be implemented for any function).
5545
+ return new sym.FunctionSymbol.$ctor14(fn.name, fn.body, KustoLanguageService.toBridgeList(parameters), fn.docstring);
5546
+ }
5547
+ }, {
5548
+ key: "createTableSymbol",
5549
+ value: function createTableSymbol(_ref18) {
5550
+ var _mvQuery;
5551
+ var name = _ref18.name,
5552
+ columns = _ref18.columns,
5553
+ entityType = _ref18.entityType,
5554
+ docstring = _ref18.docstring,
5555
+ tbl = _objectWithoutProperties(_ref18, _excluded);
5556
+ var columnSymbols = new Bridge.ArrayEnumerable(columns.map(function (col) {
5557
+ return KustoLanguageService.createColumnSymbol(col);
5558
+ }));
5559
+ switch (entityType) {
5560
+ case 'MaterializedViewTable':
5561
+ var mvQuery = (_mvQuery = tbl.mvQuery) !== null && _mvQuery !== void 0 ? _mvQuery : null;
5562
+ return new sym.MaterializedViewSymbol.$ctor2(name, columnSymbols, mvQuery, docstring);
5563
+ case 'ExternalTable':
5564
+ return new sym.ExternalTableSymbol.$ctor3(name, columnSymbols, docstring);
5565
+ default:
5566
+ return new sym.TableSymbol.$ctor6(name, columnSymbols, docstring);
5567
+ }
5568
+ }
5569
+ }, {
5570
+ key: "createEntityGroupSymbol",
5571
+ value: function createEntityGroupSymbol(entityGroup) {
5572
+ return new sym.EntityGroupSymbol.$ctor3(entityGroup.name, entityGroup.members.join(), null);
5573
+ }
5549
5574
  }]);
5550
5575
  return KustoLanguageService;
5551
5576
  }();
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 8.3.0(b1e36a8cfc8e35c070743997d6e7770ea8081289)
3
+ * monaco-kusto version: 9.0.0(faf7ed5043d2e79738847656c64ca42816963d09)
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-e6ef956d', ['exports'], (function (exports) { 'use strict';
8
+ define('vs/language/kusto/main-adf33640', ['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: 8.3.0(b1e36a8cfc8e35c070743997d6e7770ea8081289)
3
+ * monaco-kusto version: 9.0.0(faf7ed5043d2e79738847656c64ca42816963d09)
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', './schema-7d65ed04'], (function (require, exports, monaco, schema) { 'use strict';
8
+ define('vs/language/kusto/monaco.contribution', ['require', 'exports', 'vs/editor/editor.main', './schema-9a35b99a'], (function (require, exports, monaco, schema) { 'use strict';
9
9
 
10
10
  function _interopNamespaceDefault(e) {
11
11
  var n = Object.create(null);
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 8.3.0(b1e36a8cfc8e35c070743997d6e7770ea8081289)
3
+ * monaco-kusto version: 9.0.0(faf7ed5043d2e79738847656c64ca42816963d09)
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-7d65ed04', ['exports'], (function (exports) { 'use strict';
8
+ define('vs/language/kusto/schema-9a35b99a', ['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,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 8.3.0(b1e36a8cfc8e35c070743997d6e7770ea8081289)
3
+ * monaco-kusto version: 9.0.0(faf7ed5043d2e79738847656c64ca42816963d09)
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-ee621489.js';
11
+ import { d as getEntityDataTypeFromCslType, a as getCallName, b as getExpression, g as getCslTypeNameFromClrType } from './schema-6a20da13.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';
@@ -813,9 +813,12 @@ class KustoLanguageService {
813
813
  * @param schema schema json as received from .show schema as json
814
814
  * @param clusterConnectionString cluster connection string
815
815
  * @param databaseInContextName name of database in context
816
+ * @param globalScalarParameters
817
+ * @param globalTabularParameters
818
+ * @param databaseInContextAlternateName alternate name of database in context
816
819
  */
817
- setSchemaFromShowSchema(schema, clusterConnectionString, databaseInContextName, globalScalarParameters, globalTabularParameters) {
818
- return this.normalizeSchema(schema, clusterConnectionString, databaseInContextName).then(normalized => this.setSchema({
820
+ setSchemaFromShowSchema(schema, clusterConnectionString, databaseInContextName, globalScalarParameters, globalTabularParameters, databaseInContextAlternateName) {
821
+ return this.normalizeSchema(schema, clusterConnectionString, databaseInContextName, databaseInContextAlternateName).then(normalized => this.setSchema({
819
822
  ...normalized,
820
823
  globalScalarParameters,
821
824
  globalTabularParameters
@@ -827,20 +830,27 @@ class KustoLanguageService {
827
830
  * @param schema result of show schema
828
831
  * @param clusterConnectionString cluster connection string`
829
832
  * @param databaseInContextName database in context name
833
+ * @param databaseInContextAlternateName database in context alternate name
830
834
  */
831
- normalizeSchema(schema, clusterConnectionString, databaseInContextName) {
835
+ normalizeSchema(schema, clusterConnectionString, databaseInContextName, databaseInContextAlternateName) {
832
836
  const databases = Object.keys(schema.Databases).map(key => schema.Databases[key]).map(({
833
837
  Name,
834
838
  Tables,
835
839
  ExternalTables,
836
840
  MaterializedViews,
837
841
  Functions,
842
+ EntityGroups = {},
838
843
  MinorVersion,
839
844
  MajorVersion
840
845
  }) => ({
841
846
  name: Name,
847
+ alternateName: databaseInContextAlternateName || null,
842
848
  minorVersion: MinorVersion,
843
849
  majorVersion: MajorVersion,
850
+ entityGroups: Object.entries(EntityGroups).map(([name, members]) => ({
851
+ name,
852
+ members
853
+ })),
844
854
  tables: [].concat(...[[Tables, 'Table'], [MaterializedViews, 'MaterializedView'], [ExternalTables, 'ExternalTable']].filter(([tableContainer]) => tableContainer).map(([tableContainer, tableEntity]) => Object.values(tableContainer).map(({
845
855
  Name,
846
856
  OrderedColumns,
@@ -1332,7 +1342,9 @@ class KustoLanguageService {
1332
1342
  const database = {
1333
1343
  majorVersion: 0,
1334
1344
  minorVersion: 0,
1345
+ entityGroups: [],
1335
1346
  name: 'Kuskus',
1347
+ alternateName: null,
1336
1348
  tables: [{
1337
1349
  name: 'KustoLogs',
1338
1350
  columns: [{
@@ -1510,34 +1522,10 @@ class KustoLanguageService {
1510
1522
  return new sym.Parameter.$ctor2(param.name, argumentType);
1511
1523
  }
1512
1524
  static convertToDatabaseSymbol(db) {
1513
- const createFunctionSymbol = fn => {
1514
- const parameters = fn.inputParameters.map(param => KustoLanguageService.createParameter(param));
1515
-
1516
- // TODO: handle outputColumns (right now it doesn't seem to be implemented for any function).
1517
- return new sym.FunctionSymbol.$ctor14(fn.name, fn.body, KustoLanguageService.toBridgeList(parameters), fn.docstring);
1518
- };
1519
- const createTableSymbol = tbl => {
1520
- const columnSymbols = tbl.columns.map(col => KustoLanguageService.createColumnSymbol(col));
1521
- let symbol = new sym.TableSymbol.$ctor4(tbl.name, columnSymbols);
1522
- symbol.Description = tbl.docstring;
1523
- switch (tbl.entityType) {
1524
- case 'MaterializedViewTable':
1525
- const mvQuery = tbl.mvQuery ?? null;
1526
- symbol = new sym.MaterializedViewSymbol.$ctor2(tbl.name, symbol.Columns, mvQuery, tbl.docstring);
1527
- symbol = symbol.WithIsMaterializedView(true);
1528
- break;
1529
- case 'ExternalTable':
1530
- symbol = symbol.WithIsExternal(true);
1531
- break;
1532
- }
1533
- return symbol;
1534
- };
1535
- const createDatabaseSymbol = db => {
1536
- const tableSymbols = db.tables ? db.tables.map(tbl => createTableSymbol(tbl)) : [];
1537
- const functionSymbols = db.functions ? db.functions.map(fun => createFunctionSymbol(fun)) : [];
1538
- return new sym.DatabaseSymbol.ctor(db.name, tableSymbols.concat(functionSymbols));
1539
- };
1540
- const databaseSymbol = createDatabaseSymbol(db);
1525
+ const tableSymbols = (db.tables || []).map(this.createTableSymbol);
1526
+ const functionSymbols = (db.functions || []).map(this.createFunctionSymbol);
1527
+ const entityGroupsSymbols = (db.entityGroups || []).map(this.createEntityGroupSymbol);
1528
+ const databaseSymbol = new sym.DatabaseSymbol.$ctor2(db.name, db.alternateName, tableSymbols.concat(functionSymbols).concat(entityGroupsSymbols));
1541
1529
  return databaseSymbol;
1542
1530
  }
1543
1531
  convertToKustoJsSchemaV2(schema) {
@@ -1898,6 +1886,33 @@ class KustoLanguageService {
1898
1886
  const parsedAndAnalyzed = Kusto.Language.KustoCode.ParseAndAnalyze(text, this._kustoJsSchemaV2);
1899
1887
  return parsedAndAnalyzed;
1900
1888
  }
1889
+ static createFunctionSymbol(fn) {
1890
+ const parameters = fn.inputParameters.map(param => KustoLanguageService.createParameter(param));
1891
+
1892
+ // TODO: handle outputColumns (right now it doesn't seem to be implemented for any function).
1893
+ return new sym.FunctionSymbol.$ctor14(fn.name, fn.body, KustoLanguageService.toBridgeList(parameters), fn.docstring);
1894
+ }
1895
+ static createTableSymbol({
1896
+ name,
1897
+ columns,
1898
+ entityType,
1899
+ docstring,
1900
+ ...tbl
1901
+ }) {
1902
+ const columnSymbols = new Bridge.ArrayEnumerable(columns.map(col => KustoLanguageService.createColumnSymbol(col)));
1903
+ switch (entityType) {
1904
+ case 'MaterializedViewTable':
1905
+ const mvQuery = tbl.mvQuery ?? null;
1906
+ return new sym.MaterializedViewSymbol.$ctor2(name, columnSymbols, mvQuery, docstring);
1907
+ case 'ExternalTable':
1908
+ return new sym.ExternalTableSymbol.$ctor3(name, columnSymbols, docstring);
1909
+ default:
1910
+ return new sym.TableSymbol.$ctor6(name, columnSymbols, docstring);
1911
+ }
1912
+ }
1913
+ static createEntityGroupSymbol(entityGroup) {
1914
+ return new sym.EntityGroupSymbol.$ctor3(entityGroup.name, entityGroup.members.join(), null);
1915
+ }
1901
1916
  }
1902
1917
  let languageService = new KustoLanguageService(KustoLanguageService.dummySchema, {
1903
1918
  includeControlCommands: true,
@@ -80,8 +80,8 @@ export interface LanguageService {
80
80
  doHover(document: TextDocument, position: ls.Position): Promise<ls.Hover | undefined>;
81
81
  setParameters(scalarParameters: readonly s.ScalarParameter[], tabularParameters: readonly s.TabularParameter[]): Promise<void>;
82
82
  setSchema(schema: s.Schema): Promise<void>;
83
- setSchemaFromShowSchema(schema: s.showSchema.Result, clusterConnectionString: string, databaseInContextName: string, globalScalarParameters?: s.ScalarParameter[], globalTabularParameters?: s.TabularParameter[]): Promise<void>;
84
- normalizeSchema(schema: s.showSchema.Result, clusterConnectionString: string, databaseInContextName: string): Promise<s.EngineSchema>;
83
+ setSchemaFromShowSchema(schema: s.showSchema.Result, clusterConnectionString: string, databaseInContextName: string, globalScalarParameters?: s.ScalarParameter[], globalTabularParameters?: s.TabularParameter[], databaseInContextAlternateName?: string): Promise<void>;
84
+ normalizeSchema(schema: s.showSchema.Result, clusterConnectionString: string, databaseInContextName: string, databaseInContextAlternateName?: string): Promise<s.EngineSchema>;
85
85
  getSchema(): Promise<s.Schema>;
86
86
  getCommandInContext(document: TextDocument, cursorOffset: number): Promise<string>;
87
87
  getCommandAndLocationInContext(document: TextDocument, cursorOffset: number): Promise<{