yaml-language-server 1.20.1-86a61da.0 → 1.20.1-a38caf0.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/CHANGELOG.md +9 -0
- package/bin/yaml-language-server +24 -0
- package/eslint-result.sarif +140 -125
- package/lib/esm/languageserver/handlers/languageHandlers.d.ts +4 -2
- package/lib/esm/languageserver/handlers/languageHandlers.js +16 -0
- package/lib/esm/languageserver/handlers/languageHandlers.js.map +1 -1
- package/lib/esm/languageserver/handlers/settingsHandlers.js +2 -2
- package/lib/esm/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/lib/esm/languageservice/parser/jsonParser07.js +1 -1
- package/lib/esm/languageservice/parser/jsonParser07.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCodeActions.js +3 -1
- package/lib/esm/languageservice/services/yamlCodeActions.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCompletion.d.ts +1 -2
- package/lib/esm/languageservice/services/yamlCompletion.js +95 -85
- package/lib/esm/languageservice/services/yamlCompletion.js.map +1 -1
- package/lib/esm/languageservice/services/yamlHover.js +3 -4
- package/lib/esm/languageservice/services/yamlHover.js.map +1 -1
- package/lib/esm/languageservice/services/yamlRename.d.ts +18 -0
- package/lib/esm/languageservice/services/yamlRename.js +184 -0
- package/lib/esm/languageservice/services/yamlRename.js.map +1 -0
- package/lib/esm/languageservice/utils/objects.js +3 -2
- package/lib/esm/languageservice/utils/objects.js.map +1 -1
- package/lib/esm/languageservice/utils/yamlScalar.d.ts +1 -0
- package/lib/esm/languageservice/utils/yamlScalar.js +69 -0
- package/lib/esm/languageservice/utils/yamlScalar.js.map +1 -0
- package/lib/esm/languageservice/yamlLanguageService.d.ts +4 -2
- package/lib/esm/languageservice/yamlLanguageService.js +4 -0
- package/lib/esm/languageservice/yamlLanguageService.js.map +1 -1
- package/lib/esm/yamlServerInit.js +5 -0
- package/lib/esm/yamlServerInit.js.map +1 -1
- package/lib/umd/languageserver/handlers/languageHandlers.d.ts +4 -2
- package/lib/umd/languageserver/handlers/languageHandlers.js +16 -0
- package/lib/umd/languageserver/handlers/languageHandlers.js.map +1 -1
- package/lib/umd/languageserver/handlers/settingsHandlers.js +2 -2
- package/lib/umd/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/lib/umd/languageservice/parser/jsonParser07.js +1 -1
- package/lib/umd/languageservice/parser/jsonParser07.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCodeActions.js +4 -2
- package/lib/umd/languageservice/services/yamlCodeActions.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCompletion.d.ts +1 -2
- package/lib/umd/languageservice/services/yamlCompletion.js +96 -86
- package/lib/umd/languageservice/services/yamlCompletion.js.map +1 -1
- package/lib/umd/languageservice/services/yamlHover.js +4 -5
- package/lib/umd/languageservice/services/yamlHover.js.map +1 -1
- package/lib/umd/languageservice/services/yamlRename.d.ts +18 -0
- package/lib/umd/languageservice/services/yamlRename.js +198 -0
- package/lib/umd/languageservice/services/yamlRename.js.map +1 -0
- package/lib/umd/languageservice/utils/objects.js +4 -3
- package/lib/umd/languageservice/utils/objects.js.map +1 -1
- package/lib/umd/languageservice/utils/yamlScalar.d.ts +1 -0
- package/lib/umd/languageservice/utils/yamlScalar.js +83 -0
- package/lib/umd/languageservice/utils/yamlScalar.js.map +1 -0
- package/lib/umd/languageservice/yamlLanguageService.d.ts +4 -2
- package/lib/umd/languageservice/yamlLanguageService.js +5 -1
- package/lib/umd/languageservice/yamlLanguageService.js.map +1 -1
- package/lib/umd/yamlServerInit.js +5 -0
- package/lib/umd/yamlServerInit.js.map +1 -1
- package/out/server/src/languageserver/handlers/languageHandlers.d.ts +4 -2
- package/out/server/src/languageserver/handlers/languageHandlers.js +16 -0
- package/out/server/src/languageserver/handlers/languageHandlers.js.map +1 -1
- package/out/server/src/languageserver/handlers/settingsHandlers.js +2 -2
- package/out/server/src/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/out/server/src/languageservice/parser/jsonParser07.js +1 -1
- package/out/server/src/languageservice/parser/jsonParser07.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCodeActions.js +3 -1
- package/out/server/src/languageservice/services/yamlCodeActions.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCompletion.d.ts +1 -2
- package/out/server/src/languageservice/services/yamlCompletion.js +95 -85
- package/out/server/src/languageservice/services/yamlCompletion.js.map +1 -1
- package/out/server/src/languageservice/services/yamlHover.js +3 -4
- package/out/server/src/languageservice/services/yamlHover.js.map +1 -1
- package/out/server/src/languageservice/services/yamlRename.d.ts +18 -0
- package/out/server/src/languageservice/services/yamlRename.js +188 -0
- package/out/server/src/languageservice/services/yamlRename.js.map +1 -0
- package/out/server/src/languageservice/utils/objects.js +3 -2
- package/out/server/src/languageservice/utils/objects.js.map +1 -1
- package/out/server/src/languageservice/utils/yamlScalar.d.ts +1 -0
- package/out/server/src/languageservice/utils/yamlScalar.js +73 -0
- package/out/server/src/languageservice/utils/yamlScalar.js.map +1 -0
- package/out/server/src/languageservice/yamlLanguageService.d.ts +4 -2
- package/out/server/src/languageservice/yamlLanguageService.js +4 -0
- package/out/server/src/languageservice/yamlLanguageService.js.map +1 -1
- package/out/server/src/yamlServerInit.js +5 -0
- package/out/server/src/yamlServerInit.js.map +1 -1
- package/out/server/test/autoCompletion.test.js +45 -4
- package/out/server/test/autoCompletion.test.js.map +1 -1
- package/out/server/test/autoCompletionFix.test.js +206 -14
- package/out/server/test/autoCompletionFix.test.js.map +1 -1
- package/out/server/test/hover.test.js +191 -7
- package/out/server/test/hover.test.js.map +1 -1
- package/out/server/test/schemaValidation.test.js +102 -0
- package/out/server/test/schemaValidation.test.js.map +1 -1
- package/out/server/test/settingsHandlers.test.js +2 -2
- package/out/server/test/settingsHandlers.test.js.map +1 -1
- package/out/server/test/utils/serviceSetup.d.ts +2 -0
- package/out/server/test/utils/serviceSetup.js +4 -0
- package/out/server/test/utils/serviceSetup.js.map +1 -1
- package/out/server/test/yamlCodeActions.test.js +15 -0
- package/out/server/test/yamlCodeActions.test.js.map +1 -1
- package/out/server/test/yamlLanguageService.test.js +1 -1
- package/out/server/test/yamlLanguageService.test.js.map +1 -1
- package/out/server/test/yamlRename.test.d.ts +1 -0
- package/out/server/test/yamlRename.test.js +106 -0
- package/out/server/test/yamlRename.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chai_1 = require("chai");
|
|
4
|
+
const vscode_languageserver_types_1 = require("vscode-languageserver-types");
|
|
5
|
+
const testHelper_1 = require("./utils/testHelper");
|
|
6
|
+
function applyEdits(document, edits) {
|
|
7
|
+
const sorted = [...edits].sort((a, b) => document.offsetAt(b.range.start) - document.offsetAt(a.range.start));
|
|
8
|
+
let content = document.getText();
|
|
9
|
+
for (const edit of sorted) {
|
|
10
|
+
const start = document.offsetAt(edit.range.start);
|
|
11
|
+
const end = document.offsetAt(edit.range.end);
|
|
12
|
+
content = content.slice(0, start) + edit.newText + content.slice(end);
|
|
13
|
+
}
|
|
14
|
+
return content;
|
|
15
|
+
}
|
|
16
|
+
describe('YAML Rename', () => {
|
|
17
|
+
it('renames anchor and aliases when invoked on alias', () => {
|
|
18
|
+
const { languageService } = (0, testHelper_1.setupLanguageService)({});
|
|
19
|
+
const document = (0, testHelper_1.setupTextDocument)('foo: &a value\nbar: *a\nbaz: *a\n');
|
|
20
|
+
const result = languageService.doRename(document, {
|
|
21
|
+
position: vscode_languageserver_types_1.Position.create(1, 6),
|
|
22
|
+
textDocument: { uri: testHelper_1.TEST_URI },
|
|
23
|
+
newName: 'renamed',
|
|
24
|
+
});
|
|
25
|
+
(0, chai_1.expect)(result).to.not.equal(null);
|
|
26
|
+
const edits = result?.changes?.[testHelper_1.TEST_URI];
|
|
27
|
+
(0, chai_1.expect)(edits).to.have.length(3);
|
|
28
|
+
const updated = applyEdits(document, edits);
|
|
29
|
+
(0, chai_1.expect)(updated).to.equal('foo: &renamed value\nbar: *renamed\nbaz: *renamed\n');
|
|
30
|
+
});
|
|
31
|
+
it('renames when cursor is on anchor token', () => {
|
|
32
|
+
const { languageService } = (0, testHelper_1.setupLanguageService)({});
|
|
33
|
+
const document = (0, testHelper_1.setupTextDocument)('foo: &bar value\nbar: *bar\n');
|
|
34
|
+
const result = languageService.doRename(document, {
|
|
35
|
+
position: vscode_languageserver_types_1.Position.create(0, 6),
|
|
36
|
+
textDocument: { uri: testHelper_1.TEST_URI },
|
|
37
|
+
newName: 'newName',
|
|
38
|
+
});
|
|
39
|
+
(0, chai_1.expect)(result).to.not.equal(null);
|
|
40
|
+
const edits = result?.changes?.[testHelper_1.TEST_URI];
|
|
41
|
+
(0, chai_1.expect)(edits).to.have.length(2);
|
|
42
|
+
const updated = applyEdits(document, edits);
|
|
43
|
+
(0, chai_1.expect)(updated).to.equal('foo: &newName value\nbar: *newName\n');
|
|
44
|
+
});
|
|
45
|
+
it('limits rename to current YAML document', () => {
|
|
46
|
+
const { languageService } = (0, testHelper_1.setupLanguageService)({});
|
|
47
|
+
const document = (0, testHelper_1.setupTextDocument)('---\nfoo: &a 1\nbar: *a\n---\nfoo: &b 1\nbar: *b\n');
|
|
48
|
+
const result = languageService.doRename(document, {
|
|
49
|
+
position: vscode_languageserver_types_1.Position.create(5, 6),
|
|
50
|
+
textDocument: { uri: testHelper_1.TEST_URI },
|
|
51
|
+
newName: 'c',
|
|
52
|
+
});
|
|
53
|
+
(0, chai_1.expect)(result).to.not.equal(null);
|
|
54
|
+
const edits = result?.changes?.[testHelper_1.TEST_URI];
|
|
55
|
+
const updated = applyEdits(document, edits);
|
|
56
|
+
(0, chai_1.expect)(updated).to.equal('---\nfoo: &a 1\nbar: *a\n---\nfoo: &c 1\nbar: *c\n');
|
|
57
|
+
});
|
|
58
|
+
it('returns null for unresolved alias', () => {
|
|
59
|
+
const { languageService } = (0, testHelper_1.setupLanguageService)({});
|
|
60
|
+
const document = (0, testHelper_1.setupTextDocument)('*missing\n');
|
|
61
|
+
const result = languageService.doRename(document, {
|
|
62
|
+
position: vscode_languageserver_types_1.Position.create(0, 1),
|
|
63
|
+
textDocument: { uri: testHelper_1.TEST_URI },
|
|
64
|
+
newName: 'new',
|
|
65
|
+
});
|
|
66
|
+
(0, chai_1.expect)(result).to.equal(null);
|
|
67
|
+
});
|
|
68
|
+
it('prepareRename rejects non-alias/anchor positions', () => {
|
|
69
|
+
const { languageService } = (0, testHelper_1.setupLanguageService)({});
|
|
70
|
+
const document = (0, testHelper_1.setupTextDocument)('foo: bar\n');
|
|
71
|
+
const range = languageService.prepareRename(document, {
|
|
72
|
+
position: vscode_languageserver_types_1.Position.create(0, 1),
|
|
73
|
+
textDocument: { uri: testHelper_1.TEST_URI },
|
|
74
|
+
});
|
|
75
|
+
(0, chai_1.expect)(range).to.equal(null);
|
|
76
|
+
});
|
|
77
|
+
it('rejects invalid anchor names with flow indicator or whitespace characters', () => {
|
|
78
|
+
const { languageService } = (0, testHelper_1.setupLanguageService)({});
|
|
79
|
+
const document = (0, testHelper_1.setupTextDocument)('foo: &bar value\n');
|
|
80
|
+
const invalidNames = ['name[0]', 'name]', 'name{key}', 'name}', 'name,other', 'has space', 'has\ttab'];
|
|
81
|
+
for (const invalidName of invalidNames) {
|
|
82
|
+
(0, chai_1.expect)(() => {
|
|
83
|
+
languageService.doRename(document, {
|
|
84
|
+
position: vscode_languageserver_types_1.Position.create(0, 6),
|
|
85
|
+
textDocument: { uri: testHelper_1.TEST_URI },
|
|
86
|
+
newName: invalidName,
|
|
87
|
+
});
|
|
88
|
+
}).to.throw();
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
it('allows anchor names with valid special characters', () => {
|
|
92
|
+
const { languageService } = (0, testHelper_1.setupLanguageService)({});
|
|
93
|
+
const document = (0, testHelper_1.setupTextDocument)('foo: &bar value\nref: *bar\n');
|
|
94
|
+
const result = languageService.doRename(document, {
|
|
95
|
+
position: vscode_languageserver_types_1.Position.create(0, 6),
|
|
96
|
+
textDocument: { uri: testHelper_1.TEST_URI },
|
|
97
|
+
newName: '*anchor&name',
|
|
98
|
+
});
|
|
99
|
+
(0, chai_1.expect)(result).to.not.equal(null);
|
|
100
|
+
const edits = result?.changes?.[testHelper_1.TEST_URI];
|
|
101
|
+
(0, chai_1.expect)(edits).to.have.length(2);
|
|
102
|
+
const updated = applyEdits(document, edits);
|
|
103
|
+
(0, chai_1.expect)(updated).to.equal('foo: &*anchor&name value\nref: **anchor&name\n');
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=yamlRename.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yamlRename.test.js","sourceRoot":"","sources":["../../../test/yamlRename.test.ts"],"names":[],"mappings":"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"}
|