@microsoft/powerquery-language-services 0.3.21 → 0.3.22

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.
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.validateUnknownIdentifiers = void 0;
15
15
  const powerquery_parser_1 = require("@microsoft/powerquery-parser");
16
16
  const vscode_languageserver_types_1 = require("vscode-languageserver-types");
17
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
17
18
  const __1 = require("..");
18
19
  const localization_1 = require("../localization");
19
20
  const jaroWinkler_1 = require("../jaroWinkler");
@@ -26,13 +27,23 @@ function validateUnknownIdentifiers(validationSettings, nodeIdMapCollection, typ
26
27
  const updatedSettings = Object.assign(Object.assign({}, validationSettings), { maybeInitialCorrelationId: trace.id });
27
28
  // Grab all identifiers in the value context.
28
29
  const identifierValues = findIdentifierValues(nodeIdMapCollection);
29
- // Create a zipped collection of [value identifier, TriedNodeScope for the value identifier]
30
+ // Create a zipped collection of: [
31
+ // value identifier,
32
+ // value identifier expression | undefined (if it exists),
33
+ // TriedNodeScope for the value identifier
34
+ // ]
30
35
  const identifiersAndTriedNodeScopes = yield powerquery_parser_1.ArrayUtils.mapAsync(identifierValues, (identifier) => __awaiter(this, void 0, void 0, function* () {
31
36
  return [
32
37
  identifier,
38
+ parser_1.NodeIdMapUtils.maybeParentAstChecked(nodeIdMapCollection, identifier.id, "IdentifierExpression" /* IdentifierExpression */),
33
39
  yield __1.Inspection.tryNodeScope(updatedSettings, nodeIdMapCollection, identifier.id, typeCache.scopeById),
34
40
  ];
35
41
  }));
42
+ // Creates a zipped collection of: [
43
+ // unknown identifier | unknown identifier expression,
44
+ // unknown identifier literal,
45
+ // Jaro Winkler suggestion for the unknown literal if above a certain score threshold,
46
+ // ]
36
47
  const unknownIdentifiers = findUnknownIdentifiers(validationSettings, identifiersAndTriedNodeScopes, trace.id);
37
48
  const result = unknownIdentifiersToDiagnostics(updatedSettings, unknownIdentifiers);
38
49
  trace.exit();
@@ -61,20 +72,23 @@ function findUnknownIdentifiers(validationSettings, identifiersAndTriedNodeScope
61
72
  const unknownIdentifiers = [];
62
73
  const numIdentifiers = identifiersAndTriedNodeScopes.length;
63
74
  for (let index = 0; index < numIdentifiers; index += 1) {
64
- const [identifier, triedNodeScope] = identifiersAndTriedNodeScopes[index];
75
+ const [identifier, maybeIdentifierExpression, triedNodeScope] = identifiersAndTriedNodeScopes[index];
65
76
  if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
66
77
  continue;
67
78
  }
68
79
  const nodeScope = triedNodeScope.value;
69
- if (!nodeScope.has(identifier.literal) &&
70
- !validationSettings.library.libraryDefinitions.has(identifier.literal)) {
80
+ const literal = maybeIdentifierExpression && maybeIdentifierExpression.maybeInclusiveConstant !== undefined
81
+ ? `@${identifier.literal}`
82
+ : identifier.literal;
83
+ if (!nodeScope.has(literal) && !validationSettings.library.libraryDefinitions.has(literal)) {
71
84
  const knownIdentifiers = [
72
85
  ...nodeScope.keys(),
73
86
  ...validationSettings.library.libraryDefinitions.keys(),
74
87
  ];
75
- const [jaroWinklerScore, suggestion] = (0, jaroWinkler_1.calculateJaroWinklers)(identifier.literal, knownIdentifiers);
88
+ const [jaroWinklerScore, suggestion] = (0, jaroWinkler_1.calculateJaroWinklers)(literal, knownIdentifiers);
76
89
  unknownIdentifiers.push([
77
- identifier,
90
+ maybeIdentifierExpression !== null && maybeIdentifierExpression !== void 0 ? maybeIdentifierExpression : identifier,
91
+ literal,
78
92
  jaroWinklerScore > JaroWinklerSuggestionThreshold ? suggestion : undefined,
79
93
  ]);
80
94
  }
@@ -84,9 +98,9 @@ function findUnknownIdentifiers(validationSettings, identifiersAndTriedNodeScope
84
98
  }
85
99
  function unknownIdentifiersToDiagnostics(validationSettings, unknownIdentifiers) {
86
100
  const templates = localization_1.LocalizationUtils.getLocalizationTemplates(validationSettings.locale);
87
- return unknownIdentifiers.map(([identifier, maybeSuggestion]) => ({
101
+ return unknownIdentifiers.map(([identifier, literal, maybeSuggestion]) => ({
88
102
  code: diagnosticErrorCode_1.DiagnosticErrorCode.UnknownIdentifier,
89
- message: localization_1.Localization.error_validation_unknownIdentifier(templates, identifier.literal, maybeSuggestion),
103
+ message: localization_1.Localization.error_validation_unknownIdentifier(templates, literal, maybeSuggestion),
90
104
  range: __1.PositionUtils.createRangeFromTokenRange(identifier.tokenRange),
91
105
  severity: vscode_languageserver_types_1.DiagnosticSeverity.Error,
92
106
  source: validationSettings.source,
@@ -1 +1 @@
1
- {"version":3,"file":"validateUnknownIdentifiers.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validateUnknownIdentifiers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateUnknownIdentifiers.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validateUnknownIdentifiers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/powerquery-language-services",
3
- "version": "0.3.21",
3
+ "version": "0.3.22",
4
4
  "author": "Microsoft",
5
5
  "license": "MIT",
6
6
  "scripts": {