yaml-language-server 1.20.1-410cff9.0 → 1.20.1-53d0a34.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.
Files changed (67) hide show
  1. package/eslint-result.sarif +113 -108
  2. package/lib/esm/languageserver/handlers/settingsHandlers.js +2 -2
  3. package/lib/esm/languageserver/handlers/settingsHandlers.js.map +1 -1
  4. package/lib/esm/languageservice/parser/jsonParser07.js +1 -1
  5. package/lib/esm/languageservice/parser/jsonParser07.js.map +1 -1
  6. package/lib/esm/languageservice/services/yamlCodeActions.js +3 -1
  7. package/lib/esm/languageservice/services/yamlCodeActions.js.map +1 -1
  8. package/lib/esm/languageservice/services/yamlCompletion.d.ts +0 -2
  9. package/lib/esm/languageservice/services/yamlCompletion.js +39 -79
  10. package/lib/esm/languageservice/services/yamlCompletion.js.map +1 -1
  11. package/lib/esm/languageservice/services/yamlHover.js +3 -4
  12. package/lib/esm/languageservice/services/yamlHover.js.map +1 -1
  13. package/lib/esm/languageservice/utils/objects.js +3 -2
  14. package/lib/esm/languageservice/utils/objects.js.map +1 -1
  15. package/lib/esm/languageservice/utils/yamlScalar.d.ts +1 -0
  16. package/lib/esm/languageservice/utils/yamlScalar.js +69 -0
  17. package/lib/esm/languageservice/utils/yamlScalar.js.map +1 -0
  18. package/lib/umd/languageserver/handlers/settingsHandlers.js +2 -2
  19. package/lib/umd/languageserver/handlers/settingsHandlers.js.map +1 -1
  20. package/lib/umd/languageservice/parser/jsonParser07.js +1 -1
  21. package/lib/umd/languageservice/parser/jsonParser07.js.map +1 -1
  22. package/lib/umd/languageservice/services/yamlCodeActions.js +4 -2
  23. package/lib/umd/languageservice/services/yamlCodeActions.js.map +1 -1
  24. package/lib/umd/languageservice/services/yamlCompletion.d.ts +0 -2
  25. package/lib/umd/languageservice/services/yamlCompletion.js +40 -80
  26. package/lib/umd/languageservice/services/yamlCompletion.js.map +1 -1
  27. package/lib/umd/languageservice/services/yamlHover.js +4 -5
  28. package/lib/umd/languageservice/services/yamlHover.js.map +1 -1
  29. package/lib/umd/languageservice/utils/objects.js +4 -3
  30. package/lib/umd/languageservice/utils/objects.js.map +1 -1
  31. package/lib/umd/languageservice/utils/yamlScalar.d.ts +1 -0
  32. package/lib/umd/languageservice/utils/yamlScalar.js +83 -0
  33. package/lib/umd/languageservice/utils/yamlScalar.js.map +1 -0
  34. package/out/server/src/languageserver/handlers/settingsHandlers.js +2 -2
  35. package/out/server/src/languageserver/handlers/settingsHandlers.js.map +1 -1
  36. package/out/server/src/languageservice/parser/jsonParser07.js +1 -1
  37. package/out/server/src/languageservice/parser/jsonParser07.js.map +1 -1
  38. package/out/server/src/languageservice/services/yamlCodeActions.js +3 -1
  39. package/out/server/src/languageservice/services/yamlCodeActions.js.map +1 -1
  40. package/out/server/src/languageservice/services/yamlCompletion.d.ts +0 -2
  41. package/out/server/src/languageservice/services/yamlCompletion.js +39 -79
  42. package/out/server/src/languageservice/services/yamlCompletion.js.map +1 -1
  43. package/out/server/src/languageservice/services/yamlHover.js +3 -4
  44. package/out/server/src/languageservice/services/yamlHover.js.map +1 -1
  45. package/out/server/src/languageservice/utils/objects.js +3 -2
  46. package/out/server/src/languageservice/utils/objects.js.map +1 -1
  47. package/out/server/src/languageservice/utils/yamlScalar.d.ts +1 -0
  48. package/out/server/src/languageservice/utils/yamlScalar.js +73 -0
  49. package/out/server/src/languageservice/utils/yamlScalar.js.map +1 -0
  50. package/out/server/test/autoCompletion.test.js +45 -4
  51. package/out/server/test/autoCompletion.test.js.map +1 -1
  52. package/out/server/test/autoCompletionFix.test.js +120 -18
  53. package/out/server/test/autoCompletionFix.test.js.map +1 -1
  54. package/out/server/test/hover.test.js +191 -7
  55. package/out/server/test/hover.test.js.map +1 -1
  56. package/out/server/test/schemaValidation.test.js +102 -0
  57. package/out/server/test/schemaValidation.test.js.map +1 -1
  58. package/out/server/test/settingsHandlers.test.js +2 -2
  59. package/out/server/test/settingsHandlers.test.js.map +1 -1
  60. package/out/server/test/utils/serviceSetup.d.ts +2 -0
  61. package/out/server/test/utils/serviceSetup.js +4 -0
  62. package/out/server/test/utils/serviceSetup.js.map +1 -1
  63. package/out/server/test/yamlCodeActions.test.js +15 -0
  64. package/out/server/test/yamlCodeActions.test.js.map +1 -1
  65. package/out/server/test/yamlLanguageService.test.js +1 -1
  66. package/out/server/test/yamlLanguageService.test.js.map +1 -1
  67. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../../../../src/languageservice/utils/objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../../../../src/languageservice/utils/objects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function toYamlStringScalar(s: string, preferSingleQuote?: boolean): string;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) IBM Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.toYamlStringScalar = void 0;
8
+ function toYamlStringScalar(s, preferSingleQuote = false) {
9
+ const quote = preferSingleQuote ? "'" : '"';
10
+ // empty string
11
+ if (s.length === 0) {
12
+ return `${quote}${quote}`;
13
+ }
14
+ // single quote character
15
+ if (s.length === 1 && s === '"') {
16
+ return '"\\""';
17
+ }
18
+ // literal quote strings like "" or ''
19
+ if (s.length === 2 && ((s[0] === '"' && s[1] === '"') || (s[0] === "'" && s[1] === "'"))) {
20
+ return s[0] === '"' ? '"\\"\\""' : `"''"`;
21
+ }
22
+ // check if the string is already a properly quoted YAML string
23
+ if (s.length >= 2) {
24
+ const firstChar = s[0];
25
+ const lastChar = s[s.length - 1];
26
+ if ((firstChar === '"' && lastChar === '"') || (firstChar === "'" && lastChar === "'")) {
27
+ return s;
28
+ }
29
+ }
30
+ // strings containing quotes or backslashes
31
+ if (/["\\]/.test(s)) {
32
+ return JSON.stringify(s);
33
+ }
34
+ // support YAML spec 1.1 boolean values and null
35
+ if (/^(?:on|off|true|false|yes|no|null|~)$/i.test(s)) {
36
+ return `${quote}${s}${quote}`;
37
+ }
38
+ // numeric values: integer/float, hex (0x), and octal (0o or YAML 1.1 style 0[0-7]+)
39
+ if (/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/.test(s) ||
40
+ /^0x[0-9a-fA-F]+$/.test(s) ||
41
+ /^0o[0-7]+$/.test(s) ||
42
+ /^0[0-7]+$/.test(s)) {
43
+ return `"${s}"`;
44
+ }
45
+ // leading/trailing whitespaces need quoting
46
+ if (/^\s|\s$/.test(s)) {
47
+ return preferSingleQuote ? `'${s.replace(/'/g, "''")}'` : JSON.stringify(s);
48
+ }
49
+ // comment indicator
50
+ if (/(?:^|\s)#/.test(s)) {
51
+ return preferSingleQuote ? `'${s.replace(/'/g, "''")}'` : JSON.stringify(s);
52
+ }
53
+ // reserved indicators that cannot start a plain scalar
54
+ if (/^[\][{}#&*!|>'"%@`]/.test(s)) {
55
+ return preferSingleQuote ? `'${s.replace(/'/g, "''")}'` : JSON.stringify(s);
56
+ }
57
+ // -, ?, or : followed by space or end
58
+ if (/^[-?:](\s|$)/.test(s)) {
59
+ return preferSingleQuote ? `'${s.replace(/'/g, "''")}'` : JSON.stringify(s);
60
+ }
61
+ // colon in middle (mapping key indicator)
62
+ // e.g. `foo: bar` or `foo : bar` needs quoting, but `foo:bar` does not
63
+ if (/(?:^|[^:]):(?:\s|$)/.test(s)) {
64
+ return preferSingleQuote ? `'${s.replace(/'/g, "''")}'` : JSON.stringify(s);
65
+ }
66
+ // newlines, tabs, or carriage return
67
+ if (/[\n\t\r]/.test(s)) {
68
+ return JSON.stringify(s);
69
+ }
70
+ return s;
71
+ }
72
+ exports.toYamlStringScalar = toYamlStringScalar;
73
+ //# sourceMappingURL=yamlScalar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yamlScalar.js","sourceRoot":"","sources":["../../../../../src/languageservice/utils/yamlScalar.ts"],"names":[],"mappings":"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"}
@@ -1630,7 +1630,7 @@ describe('Auto Completion Tests', () => {
1630
1630
  const content = 'from: ';
1631
1631
  const completion = await parseSetup(content, content.length);
1632
1632
  (0, chai_1.expect)(completion.items.length).equal(1);
1633
- (0, chai_1.expect)(completion.items[0]).to.deep.equal((0, verifyError_1.createExpectedCompletion)('@test', '"@test"', 0, 6, 0, 6, 12, 2, {
1633
+ (0, chai_1.expect)(completion.items[0]).to.deep.equal((0, verifyError_1.createExpectedCompletion)('"@test"', '"@test"', 0, 6, 0, 6, 12, 2, {
1634
1634
  documentation: undefined,
1635
1635
  }));
1636
1636
  });
@@ -2024,10 +2024,10 @@ describe('Auto Completion Tests', () => {
2024
2024
  const testItem = completion.items.find((i) => i.label === 'test');
2025
2025
  (0, chai_1.expect)(testItem).to.not.undefined;
2026
2026
  (0, chai_1.expect)(testItem.textEdit.newText).equal('test');
2027
- const oneItem = completion.items.find((i) => i.label === '1');
2027
+ const oneItem = completion.items.find((i) => i.label === '"1"');
2028
2028
  (0, chai_1.expect)(oneItem).to.not.undefined;
2029
2029
  (0, chai_1.expect)(oneItem.textEdit.newText).equal('"1"');
2030
- const trueItem = completion.items.find((i) => i.label === 'true');
2030
+ const trueItem = completion.items.find((i) => i.label === '"true"');
2031
2031
  (0, chai_1.expect)(trueItem).to.not.undefined;
2032
2032
  (0, chai_1.expect)(trueItem.textEdit.newText).equal('"true"');
2033
2033
  });
@@ -2267,7 +2267,48 @@ describe('Auto Completion Tests', () => {
2267
2267
  const completion = await parseSetup(content, 9);
2268
2268
  (0, chai_1.expect)(completion.items).lengthOf(2);
2269
2269
  (0, chai_1.expect)(completion.items[0]).eql((0, verifyError_1.createExpectedCompletion)('2', '2', 0, 9, 0, 9, 12, vscode_languageserver_types_1.InsertTextFormat.Snippet, { documentation: undefined }));
2270
- (0, chai_1.expect)(completion.items[1]).eql((0, verifyError_1.createExpectedCompletion)('2.1', '2.1', 0, 9, 0, 9, 12, vscode_languageserver_types_1.InsertTextFormat.Snippet, { documentation: undefined }));
2270
+ (0, chai_1.expect)(completion.items[1]).eql((0, verifyError_1.createExpectedCompletion)('2.1', '2.1', 0, 9, 0, 9, 12, vscode_languageserver_types_1.InsertTextFormat.Snippet, {
2271
+ documentation: undefined,
2272
+ detail: 'Default value',
2273
+ }));
2274
+ });
2275
+ it('required enum property completes with default value', async () => {
2276
+ schemaProvider.addSchema(testHelper_1.SCHEMA_ID, {
2277
+ type: 'object',
2278
+ properties: {
2279
+ Mode: {
2280
+ type: 'integer',
2281
+ enum: [0, 1],
2282
+ default: 1,
2283
+ },
2284
+ },
2285
+ required: ['Mode'],
2286
+ });
2287
+ const completion = await parseSetup('', 0);
2288
+ (0, chai_1.expect)(completion.items[0]).eql((0, verifyError_1.createExpectedCompletion)('Mode', 'Mode: 1', 0, 0, 0, 0, 10, vscode_languageserver_types_1.InsertTextFormat.Snippet, { documentation: '' }));
2289
+ });
2290
+ it('enum completion should label the default value', async () => {
2291
+ schemaProvider.addSchema(testHelper_1.SCHEMA_ID, {
2292
+ type: 'object',
2293
+ properties: {
2294
+ Mode: {
2295
+ type: 'integer',
2296
+ enum: [0, 1],
2297
+ default: 1,
2298
+ },
2299
+ },
2300
+ });
2301
+ const content = 'Mode: ';
2302
+ const completion = await parseSetup(content, content.length);
2303
+ const zero = completion.items.find((i) => i.label === '0');
2304
+ const one = completion.items.find((i) => i.label === '1');
2305
+ (0, chai_1.expect)(zero, 'Expected enum option 0').to.not.be.undefined;
2306
+ (0, chai_1.expect)(one, 'Expected enum option 1').to.not.be.undefined;
2307
+ (0, chai_1.expect)(zero).eql((0, verifyError_1.createExpectedCompletion)('0', '0', 0, 6, 0, 6, 12, 2, { documentation: undefined }));
2308
+ (0, chai_1.expect)(one).eql((0, verifyError_1.createExpectedCompletion)('1', '1', 0, 6, 0, 6, 12, 2, {
2309
+ documentation: undefined,
2310
+ detail: 'Default value',
2311
+ }));
2271
2312
  });
2272
2313
  });
2273
2314
  describe('Array completion', () => {