@microsoft/powerquery-language-services 0.3.3 → 0.3.5

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.
@@ -18,6 +18,7 @@ const autocompleteFieldAccess_1 = require("./autocompleteFieldAccess");
18
18
  const autocompleteKeyword_1 = require("./autocompleteKeyword/autocompleteKeyword");
19
19
  const autocompleteLanguageConstant_1 = require("./autocompleteLanguageConstant");
20
20
  const autocompletePrimitiveType_1 = require("./autocompletePrimitiveType");
21
+ // Given some Position and ParseState, return autocomplete suggestions.
21
22
  function autocomplete(settings, parseState, typeCache, maybeActiveNode, maybeParseError) {
22
23
  return __awaiter(this, void 0, void 0, function* () {
23
24
  const trace = settings.traceManager.entry("Autocomplete" /* Autocomplete */, autocomplete.name);
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/task.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AAapD,qCAA+C;AAG/C,uEAAuE;AACvE,mFAAmF;AACnF,iFAAiF;AACjF,2EAA2E;AAG3E,SAAsB,YAAY,CAC9B,QAA4B,EAC5B,UAAiC,EACjC,SAAoB,EACpB,eAAiC,EACjC,eAA6D;;QAE7D,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,oCAAyC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE5G,MAAM,mBAAmB,GAAyB,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC;QAE9F,IAAI,kBAA6C,CAAC;QAElD,IAAI,eAAe,KAAK,SAAS,EAAE;YAC/B,MAAM,oBAAoB,GAAyC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CACnG,eAAe,CAAC,UAAU,CAC7B,CAAC;YAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE;gBACpC,kBAAkB,GAAG,IAAA,4BAAmB,EAAC,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;aAC5F;SACJ;QAED,MAAM,gBAAgB,GAAiC,MAAM,IAAA,oDAA0B,EACnF,QAAQ,EACR,UAAU,EACV,eAAe,EACf,SAAS,CACZ,CAAC;QAEF,MAAM,YAAY,GAA6B,MAAM,IAAA,4CAAsB,EACvE,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,kBAAkB,CACrB,CAAC;QAEF,MAAM,qBAAqB,GAAsC,IAAA,8DAA+B,EAC5F,QAAQ,EACR,eAAe,CAClB,CAAC;QAEF,MAAM,kBAAkB,GAAmC,IAAA,wDAA4B,EACnF,QAAQ,EACR,eAAe,EACf,kBAAkB,CACrB,CAAC;QAEF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO;YACH,gBAAgB;YAChB,YAAY;YACZ,qBAAqB;YACrB,kBAAkB;SACrB,CAAC;IACN,CAAC;CAAA;AAxDD,oCAwDC"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/task.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AAapD,qCAA+C;AAG/C,uEAAuE;AACvE,mFAAmF;AACnF,iFAAiF;AACjF,2EAA2E;AAG3E,uEAAuE;AACvE,SAAsB,YAAY,CAC9B,QAA4B,EAC5B,UAAiC,EACjC,SAAoB,EACpB,eAAiC,EACjC,eAA6D;;QAE7D,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,oCAAyC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE5G,MAAM,mBAAmB,GAAyB,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC;QAE9F,IAAI,kBAA6C,CAAC;QAElD,IAAI,eAAe,KAAK,SAAS,EAAE;YAC/B,MAAM,oBAAoB,GAAyC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CACnG,eAAe,CAAC,UAAU,CAC7B,CAAC;YAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE;gBACpC,kBAAkB,GAAG,IAAA,4BAAmB,EAAC,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;aAC5F;SACJ;QAED,MAAM,gBAAgB,GAAiC,MAAM,IAAA,oDAA0B,EACnF,QAAQ,EACR,UAAU,EACV,eAAe,EACf,SAAS,CACZ,CAAC;QAEF,MAAM,YAAY,GAA6B,MAAM,IAAA,4CAAsB,EACvE,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,kBAAkB,CACrB,CAAC;QAEF,MAAM,qBAAqB,GAAsC,IAAA,8DAA+B,EAC5F,QAAQ,EACR,eAAe,CAClB,CAAC;QAEF,MAAM,kBAAkB,GAAmC,IAAA,wDAA4B,EACnF,QAAQ,EACR,eAAe,EACf,kBAAkB,CACrB,CAAC;QAEF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO;YACH,gBAAgB;YAChB,YAAY;YACZ,qBAAqB;YACrB,kBAAkB;SACrB,CAAC;IACN,CAAC;CAAA;AAxDD,oCAwDC"}
@@ -18,6 +18,12 @@ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
18
18
  const activeNode_1 = require("../activeNode");
19
19
  const invokeExpression_1 = require("./invokeExpression");
20
20
  const typeCache_1 = require("../typeCache");
21
+ // If the cursor is in an InvokeExpression then return:
22
+ // * the number of given arguments
23
+ // * the number of expected arguments
24
+ // * the given argument nodes
25
+ // * the given argument types
26
+ // * type checking for parameter types vs given types
21
27
  function tryCurrentInvokeExpression(settings, nodeIdMapCollection, maybeActiveNode,
22
28
  // If a TypeCache is given, then potentially add to its values and include it as part of the return,
23
29
  // Else create a new TypeCache and include it in the return.
@@ -1 +1 @@
1
- {"version":3,"file":"currentInvokeExpression.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AACpD,sFAKmE;AAEnE,oEAA2D;AAE3D,8CAA8E;AAE9E,yDAAkG;AAClG,4CAAyD;AAezD,SAAsB,0BAA0B,CAC5C,QAA4B,EAC5B,mBAAyC,EACzC,eAAiC;AACjC,oGAAoG;AACpG,4DAA4D;AAC5D,YAAuB,0BAAc,CAAC,gBAAgB,EAAE;;QAExD,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,0DAE5C,0BAA0B,CAAC,IAAI,CAClC,CAAC;QAEF,IAAI,CAAC,4BAAe,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE;YACtD,OAAO,OAAO,CAAC,OAAO,CAAC,+BAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;SACxD;QAED,MAAM,MAAM,GAAiC,MAAM,+BAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CACnG,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,SAAS,CAAC,CACrF,CAAC;QAEF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO,MAAM,CAAC;IAClB,CAAC;CAAA;AAxBD,gEAwBC;AAED,SAAe,uBAAuB,CAClC,QAA4B,EAC5B,mBAAyC,EACzC,UAAsB,EACtB,SAAoB;;QAEpB,MAAM,QAAQ,GAA4B,UAAU,CAAC,QAAQ,CAAC;QAE9D,MAAM,qBAAqB,GAAmC,sBAAa,CAAC,+BAA+B,CACvG,QAAQ,4CAEX,CAAC;QAEF,IAAI,CAAC,qBAAqB,EAAE;YACxB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC,GAAuB,qBAAqB,CAAC;QAE3F,MAAM,qBAAqB,GAA0B,MAAM,IAAA,sCAAmB,EAC1E,QAAQ,EACR,mBAAmB,EACnB,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAC/B,SAAS,CACZ,CAAC;QAEF,IAAI,+BAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;YAC5C,MAAM,qBAAqB,CAAC;SAC/B;QAED,MAAM,gBAAgB,GAAqB,qBAAqB,CAAC,KAAK,CAAC;QACvE,MAAM,cAAc,GAA0C,gBAAgB,CAAC,cAAc,CAAC;QAE9F,IAAI,wBAAsE,CAAC;QAE3E,IAAI,cAAc,KAAK,SAAS,EAAE;YAC9B,wBAAwB,mCACjB,cAAc,KACjB,eAAe,EAAE,kBAAkB,CAC/B,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,uBAAuB,CAC1B,GACJ,CAAC;SACL;QAED,uCACO,gBAAgB,KACnB,cAAc,EAAE,wBAAwB,IAC1C;IACN,CAAC;CAAA;AAED,SAAS,kBAAkB,CACvB,mBAAyC,EACzC,UAAsB,EACtB,aAAqB,EACrB,uBAAiC;;IAEjC,WAAW;IACX,MAAM,iBAAiB,GAAyB,sBAAa,CAAC,0BAA0B,CACpF,UAAU,CAAC,QAAQ,EACnB,aAAa,EACb,CAAC,kBAEJ,CAAC;IAEF,IAAI,iBAAiB,KAAK,SAAS,EAAE;QACjC,OAAO,MAAA,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,mCAAI,CAAC,CAAC;KAC1D;IAED,MAAM,gBAAgB,GAAyB,sBAAa,CAAC,uBAAuB,CAElF,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE;;;KAKrC,CAAC,CAAC;IAEH,IAAI,mBAA6B,CAAC;IAElC,QAAQ,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE;QACjC,8BAA0B,CAAC,CAAC;YACxB,mBAAmB,GAAG,uBAAc,CAAC,wBAAwB,CACzD,mBAAmB,EACnB,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAC/B,CAAC,oCAEJ,CAAC;YAEF,MAAM;SACT;QAED,sCAA8B,CAAC,CAAC;YAC5B,mBAAmB,GAAG,gBAAgB,CAAC;YACvC,MAAM;SACT;QAED,KAAK,SAAS,CAAC;QACf;YACI,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,wDAAwD,EAAE;gBAC/F,aAAa;gBACb,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;aACvF,CAAC,CAAC;KACV;IAED,MAAM,yBAAyB,GAAsC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CACrG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAC9B,CAAC;IAEF,OAAO,yBAAyB,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"currentInvokeExpression.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.validate = void 0;
15
15
  const PQP = require("@microsoft/powerquery-parser");
16
16
  const validateDuplicateIdentifiers_1 = require("./validateDuplicateIdentifiers");
17
+ const validateFunctionExpression_1 = require("./validateFunctionExpression");
17
18
  const validateInvokeExpression_1 = require("./validateInvokeExpression");
18
19
  const validateLexAndParse_1 = require("./validateLexAndParse");
19
20
  const workspaceCache_1 = require("../workspaceCache");
@@ -26,18 +27,23 @@ function validate(textDocument, validationSettings) {
26
27
  hasSyntaxError: false,
27
28
  };
28
29
  }
30
+ let functionExpressionDiagnostics;
29
31
  let invokeExpressionDiagnostics;
30
32
  if (validationSettings.checkInvokeExpressions &&
31
33
  (PQP.TaskUtils.isParseStageOk(maybeTriedParse) || PQP.TaskUtils.isParseStageParseError(maybeTriedParse))) {
32
- invokeExpressionDiagnostics = yield (0, validateInvokeExpression_1.validateInvokeExpression)(validationSettings, maybeTriedParse.nodeIdMapCollection, workspaceCache_1.WorkspaceCacheUtils.getTypeCache(textDocument));
34
+ const nodeIdMapCollection = maybeTriedParse.nodeIdMapCollection;
35
+ functionExpressionDiagnostics = (0, validateFunctionExpression_1.validateFunctionExpression)(validationSettings, nodeIdMapCollection);
36
+ invokeExpressionDiagnostics = yield (0, validateInvokeExpression_1.validateInvokeExpression)(validationSettings, nodeIdMapCollection, workspaceCache_1.WorkspaceCacheUtils.getTypeCache(textDocument));
33
37
  }
34
38
  else {
39
+ functionExpressionDiagnostics = [];
35
40
  invokeExpressionDiagnostics = [];
36
41
  }
37
42
  return {
38
43
  diagnostics: [
39
44
  ...(yield (0, validateDuplicateIdentifiers_1.validateDuplicateIdentifiers)(textDocument, validationSettings)),
40
45
  ...(yield (0, validateLexAndParse_1.validateLexAndParse)(textDocument, validationSettings)),
46
+ ...functionExpressionDiagnostics,
41
47
  ...invokeExpressionDiagnostics,
42
48
  ],
43
49
  hasSyntaxError: PQP.TaskUtils.isLexStageError(maybeTriedParse) || PQP.TaskUtils.isParseStageError(maybeTriedParse),
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validate.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AAIpD,iFAA8E;AAC9E,yEAAsE;AACtE,+DAA4D;AAG5D,sDAAwD;AAExD,SAAsB,QAAQ,CAC1B,YAA0B,EAC1B,kBAAsC;;QAEtC,MAAM,eAAe,GAAwC,MAAM,oCAAmB,CAAC,uBAAuB,CAC1G,YAAY,EACZ,kBAAkB,CACrB,CAAC;QAEF,IAAI,eAAe,KAAK,SAAS,EAAE;YAC/B,OAAO;gBACH,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,KAAK;aACxB,CAAC;SACL;QAED,IAAI,2BAAyC,CAAC;QAE9C,IACI,kBAAkB,CAAC,sBAAsB;YACzC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAC1G;YACE,2BAA2B,GAAG,MAAM,IAAA,mDAAwB,EACxD,kBAAkB,EAClB,eAAe,CAAC,mBAAmB,EACnC,oCAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,CACjD,CAAC;SACL;aAAM;YACH,2BAA2B,GAAG,EAAE,CAAC;SACpC;QAED,OAAO;YACH,WAAW,EAAE;gBACT,GAAG,CAAC,MAAM,IAAA,2DAA4B,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBACzE,GAAG,CAAC,MAAM,IAAA,yCAAmB,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBAChE,GAAG,2BAA2B;aACjC;YACD,cAAc,EACV,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC;SACzG,CAAC;IACN,CAAC;CAAA;AAxCD,4BAwCC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validate.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AAKpD,iFAA8E;AAC9E,6EAA0E;AAC1E,yEAAsE;AACtE,+DAA4D;AAG5D,sDAAwD;AAExD,SAAsB,QAAQ,CAC1B,YAA0B,EAC1B,kBAAsC;;QAEtC,MAAM,eAAe,GAAwC,MAAM,oCAAmB,CAAC,uBAAuB,CAC1G,YAAY,EACZ,kBAAkB,CACrB,CAAC;QAEF,IAAI,eAAe,KAAK,SAAS,EAAE;YAC/B,OAAO;gBACH,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,KAAK;aACxB,CAAC;SACL;QAED,IAAI,6BAA2C,CAAC;QAChD,IAAI,2BAAyC,CAAC;QAE9C,IACI,kBAAkB,CAAC,sBAAsB;YACzC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAC1G;YACE,MAAM,mBAAmB,GAAyB,eAAe,CAAC,mBAAmB,CAAC;YAEtF,6BAA6B,GAAG,IAAA,uDAA0B,EAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;YAEpG,2BAA2B,GAAG,MAAM,IAAA,mDAAwB,EACxD,kBAAkB,EAClB,mBAAmB,EACnB,oCAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,CACjD,CAAC;SACL;aAAM;YACH,6BAA6B,GAAG,EAAE,CAAC;YACnC,2BAA2B,GAAG,EAAE,CAAC;SACpC;QAED,OAAO;YACH,WAAW,EAAE;gBACT,GAAG,CAAC,MAAM,IAAA,2DAA4B,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBACzE,GAAG,CAAC,MAAM,IAAA,yCAAmB,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBAChE,GAAG,6BAA6B;gBAChC,GAAG,2BAA2B;aACjC;YACD,cAAc,EACV,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC;SACzG,CAAC;IACN,CAAC;CAAA;AA/CD,4BA+CC"}
@@ -1,5 +1,4 @@
1
1
  import { Diagnostic } from "vscode-languageserver-types";
2
2
  import { NodeIdMap } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
3
- import { Inspection } from "..";
4
3
  import { ValidationSettings } from "./validationSettings";
5
- export declare function validateFunctionExpression(validationSettings: ValidationSettings, nodeIdMapCollection: NodeIdMap.Collection, maybeCache?: Inspection.TypeCache): Promise<Diagnostic[]>;
4
+ export declare function validateFunctionExpression(validationSettings: ValidationSettings, nodeIdMapCollection: NodeIdMap.Collection): Diagnostic[];
@@ -1,109 +1,56 @@
1
1
  "use strict";
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
4
  Object.defineProperty(exports, "__esModule", { value: true });
14
5
  exports.validateFunctionExpression = void 0;
15
- const powerquery_parser_1 = require("@microsoft/powerquery-parser");
16
- const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
17
6
  const vscode_languageserver_types_1 = require("vscode-languageserver-types");
18
7
  const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
19
- const __1 = require("..");
20
8
  const localization_1 = require("../localization");
21
9
  const diagnosticErrorCode_1 = require("../diagnosticErrorCode");
22
- function validateFunctionExpression(validationSettings, nodeIdMapCollection, maybeCache) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const maybeInvokeExpressionIds = nodeIdMapCollection.idsByNodeKind.get("FunctionExpression" /* FunctionExpression */);
25
- if (maybeInvokeExpressionIds === undefined) {
26
- return [];
27
- }
28
- const inspectionTasks = [];
29
- for (const nodeId of maybeInvokeExpressionIds) {
30
- inspectionTasks.push(__1.Inspection.tryInvokeExpression(validationSettings, nodeIdMapCollection, nodeId, maybeCache));
31
- }
32
- const inspections = yield Promise.all(inspectionTasks);
33
- const invokeExpressionTasks = [];
34
- for (const inspection of inspections) {
35
- if (powerquery_parser_1.ResultUtils.isError(inspection)) {
36
- throw inspection;
37
- }
38
- invokeExpressionTasks.push(invokeExpressionToDiagnostics(validationSettings, nodeIdMapCollection, inspection.value));
39
- }
40
- return (yield Promise.all(invokeExpressionTasks)).flat();
41
- });
10
+ const __1 = require("..");
11
+ // Check for repeat parameter names for FunctionExpressions.
12
+ function validateFunctionExpression(validationSettings, nodeIdMapCollection) {
13
+ var _a;
14
+ const maybeFnExpressionIds = nodeIdMapCollection.idsByNodeKind.get("FunctionExpression" /* FunctionExpression */);
15
+ if (maybeFnExpressionIds === undefined) {
16
+ return [];
17
+ }
18
+ const diagnostics = [];
19
+ for (const nodeId of maybeFnExpressionIds) {
20
+ diagnostics.push(validateNoDuplicateParameter(validationSettings, nodeIdMapCollection, nodeId));
21
+ (_a = validationSettings.maybeCancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
22
+ }
23
+ return diagnostics.flat();
42
24
  }
43
25
  exports.validateFunctionExpression = validateFunctionExpression;
44
- function invokeExpressionToDiagnostics(validationSettings, nodeIdMapCollection, inspected) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const result = [];
47
- if (inspected.maybeArguments !== undefined) {
48
- const invokeExpressionArguments = inspected.maybeArguments;
49
- const givenArguments = inspected.maybeArguments.givenArguments;
50
- const invokeExpressionRange = powerquery_parser_1.Assert.asDefined(yield __1.PositionUtils.createRangeFromXorNode(nodeIdMapCollection, inspected.invokeExpressionXorNode), "expected at least one leaf node under InvokeExpression");
51
- const maybeFunctionName = parser_1.NodeIdMapUtils.maybeInvokeExpressionIdentifierLiteral(nodeIdMapCollection, inspected.invokeExpressionXorNode.node.id);
52
- let result = [];
53
- result = result.concat(yield powerquery_parser_1.ArrayUtils.mapAsync([...invokeExpressionArguments.typeChecked.invalid.entries()], ([argIndex, mismatch]) => __awaiter(this, void 0, void 0, function* () {
54
- const maybeGivenArgumentRange = yield __1.PositionUtils.createRangeFromXorNode(nodeIdMapCollection, givenArguments[argIndex]);
55
- return createDiagnosticForArgumentMismatch(validationSettings, mismatch, maybeFunctionName, invokeExpressionRange, maybeGivenArgumentRange);
56
- })));
57
- const numGivenArguments = invokeExpressionArguments.givenArguments.length;
58
- if (numGivenArguments < invokeExpressionArguments.numMinExpectedArguments ||
59
- numGivenArguments > invokeExpressionArguments.numMaxExpectedArguments) {
60
- result.push(createDiagnosticForArgumentNumberMismatch(validationSettings, invokeExpressionRange, invokeExpressionArguments.numMinExpectedArguments, invokeExpressionArguments.numMaxExpectedArguments, numGivenArguments));
61
- }
26
+ function validateNoDuplicateParameter(validationSettings, nodeIdMapCollection, fnExpressionId) {
27
+ var _a;
28
+ const fnExpression = parser_1.NodeIdMapUtils.assertGetXorChecked(nodeIdMapCollection, fnExpressionId, "FunctionExpression" /* FunctionExpression */);
29
+ const parameterNames = new Map();
30
+ for (const parameter of parser_1.NodeIdMapIterator.iterFunctionExpressionParameterNames(nodeIdMapCollection, fnExpression)) {
31
+ const existingNames = (_a = parameterNames.get(parameter.literal)) !== null && _a !== void 0 ? _a : [];
32
+ existingNames.push(parameter);
33
+ parameterNames.set(parameter.literal, existingNames);
34
+ }
35
+ const diagnostics = [];
36
+ for (const [identifierLiteral, nodes] of parameterNames) {
37
+ if (nodes.length > 1) {
38
+ diagnostics.push(...nodes.map((identifier) => {
39
+ const parameterRange = __1.PositionUtils.createRangeFromTokenRange(identifier.tokenRange);
40
+ return createDiagnosticForDuplicateParameterName(validationSettings, parameterRange, identifierLiteral);
41
+ }));
62
42
  }
63
- return result;
64
- });
43
+ }
44
+ return diagnostics;
65
45
  }
66
- function createDiagnosticForArgumentNumberMismatch(validationSettings, invokeExpressionRange, numMin, numMax, numGiven) {
46
+ function createDiagnosticForDuplicateParameterName(validationSettings, invokeExpressionRange, parameterName) {
67
47
  const templates = localization_1.LocalizationUtils.getLocalizationTemplates(validationSettings.locale);
68
48
  return {
69
- code: diagnosticErrorCode_1.DiagnosticErrorCode.InvokeArgumentCountMismatch,
70
- message: localization_1.Localization.error_validation_invokeExpression_numArgs(templates, numMin, numMax, numGiven),
49
+ code: diagnosticErrorCode_1.DiagnosticErrorCode.DuplicateIdentifier,
50
+ message: localization_1.Localization.error_validation_duplicate_identifier(templates, parameterName),
71
51
  range: invokeExpressionRange,
72
52
  severity: vscode_languageserver_types_1.DiagnosticSeverity.Error,
73
53
  source: validationSettings.source,
74
54
  };
75
55
  }
76
- function createDiagnosticForArgumentMismatch(validationSettings, mismatch, maybeFunctionName, invokeExpressionRange, maybeGivenArgumentRange) {
77
- var _a;
78
- let range;
79
- let message;
80
- const parameter = mismatch.expected;
81
- const argName = parameter.nameLiteral;
82
- const expected = language_1.TypeUtils.nameOfTypeKind((_a = parameter.maybeType) !== null && _a !== void 0 ? _a : language_1.Type.AnyInstance.kind);
83
- // An argument containing at least one leaf node was given.
84
- if (maybeGivenArgumentRange) {
85
- const actual = language_1.TypeUtils.nameOfTypeKind(powerquery_parser_1.Assert.asDefined(mismatch.actual).kind);
86
- range = maybeGivenArgumentRange;
87
- message = createTypeMismatchMessage(validationSettings.locale, maybeFunctionName, argName, expected, actual);
88
- }
89
- else {
90
- range = invokeExpressionRange;
91
- message = createMissingMandatoryMessage(validationSettings.locale, maybeFunctionName, argName);
92
- }
93
- return {
94
- code: diagnosticErrorCode_1.DiagnosticErrorCode.InvokeArgumentTypeMismatch,
95
- message,
96
- range,
97
- severity: vscode_languageserver_types_1.DiagnosticSeverity.Error,
98
- source: validationSettings.source,
99
- };
100
- }
101
- function createMissingMandatoryMessage(locale, maybeFunctionName, argName) {
102
- const templates = localization_1.LocalizationUtils.getLocalizationTemplates(locale);
103
- return localization_1.Localization.error_validation_invokeExpression_missingMandatory(templates, maybeFunctionName, argName);
104
- }
105
- function createTypeMismatchMessage(locale, maybeFunctionName, argName, expected, actual) {
106
- const templates = localization_1.LocalizationUtils.getLocalizationTemplates(locale);
107
- return localization_1.Localization.error_validation_invokeExpression_typeMismatch(templates, maybeFunctionName, argName, expected, actual);
108
- }
109
56
  //# sourceMappingURL=validateFunctionExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateFunctionExpression.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validateFunctionExpression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateFunctionExpression.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validateFunctionExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,6EAA6E;AAC7E,sFAKmE;AAInE,kDAAkE;AAClE,gEAA6D;AAE7D,0BAAmC;AAGnC,4DAA4D;AAC5D,SAAgB,0BAA0B,CACtC,kBAAsC,EACtC,mBAAyC;;IAEzC,MAAM,oBAAoB,GAA4B,mBAAmB,CAAC,aAAa,CAAC,GAAG,+CAE1F,CAAC;IAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE;QACpC,OAAO,EAAE,CAAC;KACb;IAED,MAAM,WAAW,GAAmB,EAAE,CAAC;IAEvC,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE;QACvC,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;QAChG,MAAA,kBAAkB,CAAC,sBAAsB,0CAAE,gBAAgB,EAAE,CAAC;KACjE;IAED,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AApBD,gEAoBC;AAED,SAAS,4BAA4B,CACjC,kBAAsC,EACtC,mBAAyC,EACzC,cAAsB;;IAEtB,MAAM,YAAY,GAAa,uBAAc,CAAC,mBAAmB,CAC7D,mBAAmB,EACnB,cAAc,gDAEjB,CAAC;IAEF,MAAM,cAAc,GAAkC,IAAI,GAAG,EAAE,CAAC;IAEhE,KAAK,MAAM,SAAS,IAAI,0BAAiB,CAAC,oCAAoC,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAE;QAC/G,MAAM,aAAa,GAAqB,MAAA,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;QACpF,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;KACxD;IAED,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,KAAK,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE;QACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CACZ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,UAA0B,EAAE,EAAE;gBACxC,MAAM,cAAc,GAAU,iBAAa,CAAC,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAE7F,OAAO,yCAAyC,CAC5C,kBAAkB,EAClB,cAAc,EACd,iBAAiB,CACpB,CAAC;YACN,CAAC,CAAC,CACL,CAAC;SACL;KACJ;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,SAAS,yCAAyC,CAC9C,kBAAsC,EACtC,qBAA4B,EAC5B,aAAqB;IAErB,MAAM,SAAS,GAA2B,gCAAiB,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEhH,OAAO;QACH,IAAI,EAAE,yCAAmB,CAAC,mBAAmB;QAC7C,OAAO,EAAE,2BAAY,CAAC,qCAAqC,CAAC,SAAS,EAAE,aAAa,CAAC;QACrF,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,gDAAkB,CAAC,KAAK;QAClC,MAAM,EAAE,kBAAkB,CAAC,MAAM;KACpC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/powerquery-language-services",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "author": "Microsoft",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -46,8 +46,8 @@
46
46
  "typescript": "4.5.4"
47
47
  },
48
48
  "dependencies": {
49
- "@microsoft/powerquery-formatter": "0.0.46",
50
- "@microsoft/powerquery-parser": "0.6.4",
49
+ "@microsoft/powerquery-formatter": "0.0.47",
50
+ "@microsoft/powerquery-parser": "0.6.6",
51
51
  "vscode-languageserver-textdocument": "1.0.3",
52
52
  "vscode-languageserver-types": "3.16.0"
53
53
  },