yaml-language-server 1.10.1-e564235.0 → 1.11.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 +24 -0
- package/README.md +9 -0
- package/eslint-result.sarif +4397 -0
- package/lib/esm/languageserver/handlers/languageHandlers.js +4 -1
- package/lib/esm/languageserver/handlers/languageHandlers.js.map +1 -1
- package/lib/esm/languageserver/handlers/schemaSelectionHandlers.js +44 -60
- package/lib/esm/languageserver/handlers/schemaSelectionHandlers.js.map +1 -1
- package/lib/esm/languageserver/handlers/settingsHandlers.d.ts +1 -1
- package/lib/esm/languageserver/handlers/settingsHandlers.js +161 -183
- package/lib/esm/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/lib/esm/languageserver/telemetry.d.ts +2 -12
- package/lib/esm/languageserver/telemetry.js +1 -1
- package/lib/esm/languageserver/telemetry.js.map +1 -1
- package/lib/esm/languageservice/jsonSchema.d.ts +1 -0
- package/lib/esm/languageservice/parser/jsonParser07.d.ts +17 -1
- package/lib/esm/languageservice/parser/jsonParser07.js +66 -24
- package/lib/esm/languageservice/parser/jsonParser07.js.map +1 -1
- package/lib/esm/languageservice/parser/yaml-documents.js +6 -5
- package/lib/esm/languageservice/parser/yaml-documents.js.map +1 -1
- package/lib/esm/languageservice/parser/yamlParser07.js +1 -2
- package/lib/esm/languageservice/parser/yamlParser07.js.map +1 -1
- package/lib/esm/languageservice/services/documentSymbols.d.ts +1 -1
- package/lib/esm/languageservice/services/validation/yaml-style.js +2 -3
- package/lib/esm/languageservice/services/validation/yaml-style.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCodeActions.js +2 -3
- package/lib/esm/languageservice/services/yamlCodeActions.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCodeLens.d.ts +1 -1
- package/lib/esm/languageservice/services/yamlCodeLens.js +23 -34
- package/lib/esm/languageservice/services/yamlCodeLens.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCommands.js +3 -12
- package/lib/esm/languageservice/services/yamlCommands.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCompletion.d.ts +4 -3
- package/lib/esm/languageservice/services/yamlCompletion.js +444 -418
- package/lib/esm/languageservice/services/yamlCompletion.js.map +1 -1
- package/lib/esm/languageservice/services/yamlDefinition.d.ts +1 -1
- package/lib/esm/languageservice/services/yamlFolding.js +1 -2
- package/lib/esm/languageservice/services/yamlFolding.js.map +1 -1
- package/lib/esm/languageservice/services/yamlHover.d.ts +1 -1
- package/lib/esm/languageservice/services/yamlHover.js +40 -0
- package/lib/esm/languageservice/services/yamlHover.js.map +1 -1
- package/lib/esm/languageservice/services/yamlLinks.d.ts +1 -1
- package/lib/esm/languageservice/services/yamlOnTypeFormatting.js +0 -1
- package/lib/esm/languageservice/services/yamlOnTypeFormatting.js.map +1 -1
- package/lib/esm/languageservice/services/yamlSchemaService.js +202 -218
- package/lib/esm/languageservice/services/yamlSchemaService.js.map +1 -1
- package/lib/esm/languageservice/services/yamlValidation.d.ts +1 -1
- package/lib/esm/languageservice/services/yamlValidation.js +61 -71
- package/lib/esm/languageservice/services/yamlValidation.js.map +1 -1
- package/lib/esm/languageservice/telemetry.d.ts +16 -0
- package/lib/esm/languageservice/telemetry.js +6 -0
- package/lib/esm/languageservice/telemetry.js.map +1 -0
- package/lib/esm/languageservice/utils/astUtils.js +2 -6
- package/lib/esm/languageservice/utils/astUtils.js.map +1 -1
- package/lib/esm/languageservice/utils/indentationGuesser.js +0 -1
- package/lib/esm/languageservice/utils/indentationGuesser.js.map +1 -1
- package/lib/esm/languageservice/utils/objects.js +1 -2
- package/lib/esm/languageservice/utils/objects.js.map +1 -1
- package/lib/esm/languageservice/utils/schemaUrls.d.ts +1 -1
- package/lib/esm/languageservice/utils/schemaUrls.js +2 -4
- package/lib/esm/languageservice/utils/schemaUrls.js.map +1 -1
- package/lib/esm/languageservice/utils/schemaUtils.d.ts +2 -0
- package/lib/esm/languageservice/utils/schemaUtils.js +10 -7
- package/lib/esm/languageservice/utils/schemaUtils.js.map +1 -1
- package/lib/esm/languageservice/yamlLanguageService.d.ts +2 -3
- package/lib/esm/languageservice/yamlLanguageService.js +0 -1
- package/lib/esm/languageservice/yamlLanguageService.js.map +1 -1
- package/lib/esm/server.js +5 -4
- package/lib/esm/server.js.map +1 -1
- package/lib/esm/webworker/yamlServerMain.js +2 -2
- package/lib/esm/webworker/yamlServerMain.js.map +1 -1
- package/lib/esm/yamlServerInit.d.ts +1 -1
- package/lib/umd/languageserver/handlers/languageHandlers.js +4 -1
- package/lib/umd/languageserver/handlers/languageHandlers.js.map +1 -1
- package/lib/umd/languageserver/handlers/schemaSelectionHandlers.js +44 -60
- package/lib/umd/languageserver/handlers/schemaSelectionHandlers.js.map +1 -1
- package/lib/umd/languageserver/handlers/settingsHandlers.d.ts +1 -1
- package/lib/umd/languageserver/handlers/settingsHandlers.js +161 -183
- package/lib/umd/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/lib/umd/languageserver/telemetry.d.ts +2 -12
- package/lib/umd/languageserver/telemetry.js +3 -3
- package/lib/umd/languageserver/telemetry.js.map +1 -1
- package/lib/umd/languageservice/jsonSchema.d.ts +1 -0
- package/lib/umd/languageservice/parser/jsonParser07.d.ts +17 -1
- package/lib/umd/languageservice/parser/jsonParser07.js +67 -25
- package/lib/umd/languageservice/parser/jsonParser07.js.map +1 -1
- package/lib/umd/languageservice/parser/yaml-documents.js +6 -5
- package/lib/umd/languageservice/parser/yaml-documents.js.map +1 -1
- package/lib/umd/languageservice/parser/yamlParser07.js +1 -2
- package/lib/umd/languageservice/parser/yamlParser07.js.map +1 -1
- package/lib/umd/languageservice/services/documentSymbols.d.ts +1 -1
- package/lib/umd/languageservice/services/validation/yaml-style.js +2 -3
- package/lib/umd/languageservice/services/validation/yaml-style.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCodeActions.js +2 -3
- package/lib/umd/languageservice/services/yamlCodeActions.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCodeLens.d.ts +1 -1
- package/lib/umd/languageservice/services/yamlCodeLens.js +23 -34
- package/lib/umd/languageservice/services/yamlCodeLens.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCommands.js +3 -12
- package/lib/umd/languageservice/services/yamlCommands.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCompletion.d.ts +4 -3
- package/lib/umd/languageservice/services/yamlCompletion.js +443 -417
- package/lib/umd/languageservice/services/yamlCompletion.js.map +1 -1
- package/lib/umd/languageservice/services/yamlDefinition.d.ts +1 -1
- package/lib/umd/languageservice/services/yamlFolding.js +1 -2
- package/lib/umd/languageservice/services/yamlFolding.js.map +1 -1
- package/lib/umd/languageservice/services/yamlHover.d.ts +1 -1
- package/lib/umd/languageservice/services/yamlHover.js +40 -0
- package/lib/umd/languageservice/services/yamlHover.js.map +1 -1
- package/lib/umd/languageservice/services/yamlLinks.d.ts +1 -1
- package/lib/umd/languageservice/services/yamlOnTypeFormatting.js +0 -1
- package/lib/umd/languageservice/services/yamlOnTypeFormatting.js.map +1 -1
- package/lib/umd/languageservice/services/yamlSchemaService.js +202 -218
- package/lib/umd/languageservice/services/yamlSchemaService.js.map +1 -1
- package/lib/umd/languageservice/services/yamlValidation.d.ts +1 -1
- package/lib/umd/languageservice/services/yamlValidation.js +61 -71
- package/lib/umd/languageservice/services/yamlValidation.js.map +1 -1
- package/lib/umd/languageservice/telemetry.d.ts +16 -0
- package/lib/umd/languageservice/telemetry.js +17 -0
- package/lib/umd/languageservice/telemetry.js.map +1 -0
- package/lib/umd/languageservice/utils/astUtils.js +2 -6
- package/lib/umd/languageservice/utils/astUtils.js.map +1 -1
- package/lib/umd/languageservice/utils/indentationGuesser.js +0 -1
- package/lib/umd/languageservice/utils/indentationGuesser.js.map +1 -1
- package/lib/umd/languageservice/utils/objects.js +1 -2
- package/lib/umd/languageservice/utils/objects.js.map +1 -1
- package/lib/umd/languageservice/utils/schemaUrls.d.ts +1 -1
- package/lib/umd/languageservice/utils/schemaUrls.js +2 -4
- package/lib/umd/languageservice/utils/schemaUrls.js.map +1 -1
- package/lib/umd/languageservice/utils/schemaUtils.d.ts +2 -0
- package/lib/umd/languageservice/utils/schemaUtils.js +13 -8
- package/lib/umd/languageservice/utils/schemaUtils.js.map +1 -1
- package/lib/umd/languageservice/yamlLanguageService.d.ts +2 -3
- package/lib/umd/languageservice/yamlLanguageService.js +0 -1
- package/lib/umd/languageservice/yamlLanguageService.js.map +1 -1
- package/lib/umd/server.js +4 -3
- package/lib/umd/server.js.map +1 -1
- package/lib/umd/webworker/yamlServerMain.js +1 -1
- package/lib/umd/webworker/yamlServerMain.js.map +1 -1
- package/lib/umd/yamlServerInit.d.ts +1 -1
- package/out/server/src/languageserver/handlers/languageHandlers.js +4 -1
- package/out/server/src/languageserver/handlers/languageHandlers.js.map +1 -1
- package/out/server/src/languageserver/handlers/schemaSelectionHandlers.js +44 -60
- package/out/server/src/languageserver/handlers/schemaSelectionHandlers.js.map +1 -1
- package/out/server/src/languageserver/handlers/settingsHandlers.d.ts +1 -1
- package/out/server/src/languageserver/handlers/settingsHandlers.js +161 -183
- package/out/server/src/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/out/server/src/languageserver/telemetry.d.ts +2 -12
- package/out/server/src/languageserver/telemetry.js +3 -3
- package/out/server/src/languageserver/telemetry.js.map +1 -1
- package/out/server/src/languageservice/jsonSchema.d.ts +1 -0
- package/out/server/src/languageservice/parser/jsonParser07.d.ts +17 -1
- package/out/server/src/languageservice/parser/jsonParser07.js +66 -24
- package/out/server/src/languageservice/parser/jsonParser07.js.map +1 -1
- package/out/server/src/languageservice/parser/yaml-documents.js +6 -5
- package/out/server/src/languageservice/parser/yaml-documents.js.map +1 -1
- package/out/server/src/languageservice/parser/yamlParser07.js +1 -2
- package/out/server/src/languageservice/parser/yamlParser07.js.map +1 -1
- package/out/server/src/languageservice/services/documentSymbols.d.ts +1 -1
- package/out/server/src/languageservice/services/validation/yaml-style.js +2 -3
- package/out/server/src/languageservice/services/validation/yaml-style.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCodeActions.js +2 -3
- package/out/server/src/languageservice/services/yamlCodeActions.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCodeLens.d.ts +1 -1
- package/out/server/src/languageservice/services/yamlCodeLens.js +23 -34
- package/out/server/src/languageservice/services/yamlCodeLens.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCommands.js +3 -12
- package/out/server/src/languageservice/services/yamlCommands.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCompletion.d.ts +4 -3
- package/out/server/src/languageservice/services/yamlCompletion.js +443 -417
- package/out/server/src/languageservice/services/yamlCompletion.js.map +1 -1
- package/out/server/src/languageservice/services/yamlDefinition.d.ts +1 -1
- package/out/server/src/languageservice/services/yamlFolding.js +1 -2
- package/out/server/src/languageservice/services/yamlFolding.js.map +1 -1
- package/out/server/src/languageservice/services/yamlHover.d.ts +1 -1
- package/out/server/src/languageservice/services/yamlHover.js +40 -0
- package/out/server/src/languageservice/services/yamlHover.js.map +1 -1
- package/out/server/src/languageservice/services/yamlLinks.d.ts +1 -1
- package/out/server/src/languageservice/services/yamlOnTypeFormatting.js +0 -1
- package/out/server/src/languageservice/services/yamlOnTypeFormatting.js.map +1 -1
- package/out/server/src/languageservice/services/yamlSchemaService.js +202 -218
- package/out/server/src/languageservice/services/yamlSchemaService.js.map +1 -1
- package/out/server/src/languageservice/services/yamlValidation.d.ts +1 -1
- package/out/server/src/languageservice/services/yamlValidation.js +61 -71
- package/out/server/src/languageservice/services/yamlValidation.js.map +1 -1
- package/out/server/src/languageservice/telemetry.d.ts +16 -0
- package/out/server/src/languageservice/telemetry.js +7 -0
- package/out/server/src/languageservice/telemetry.js.map +1 -0
- package/out/server/src/languageservice/utils/astUtils.js +2 -6
- package/out/server/src/languageservice/utils/astUtils.js.map +1 -1
- package/out/server/src/languageservice/utils/indentationGuesser.js +0 -1
- package/out/server/src/languageservice/utils/indentationGuesser.js.map +1 -1
- package/out/server/src/languageservice/utils/objects.js +1 -2
- package/out/server/src/languageservice/utils/objects.js.map +1 -1
- package/out/server/src/languageservice/utils/schemaUrls.d.ts +1 -1
- package/out/server/src/languageservice/utils/schemaUrls.js +2 -4
- package/out/server/src/languageservice/utils/schemaUrls.js.map +1 -1
- package/out/server/src/languageservice/utils/schemaUtils.d.ts +2 -0
- package/out/server/src/languageservice/utils/schemaUtils.js +13 -8
- package/out/server/src/languageservice/utils/schemaUtils.js.map +1 -1
- package/out/server/src/languageservice/yamlLanguageService.d.ts +2 -3
- package/out/server/src/languageservice/yamlLanguageService.js +0 -1
- package/out/server/src/languageservice/yamlLanguageService.js.map +1 -1
- package/out/server/src/server.js +4 -3
- package/out/server/src/server.js.map +1 -1
- package/out/server/src/webworker/yamlServerMain.js +1 -1
- package/out/server/src/webworker/yamlServerMain.js.map +1 -1
- package/out/server/src/yamlServerInit.d.ts +1 -1
- package/out/server/test/autoCompletion.test.js +267 -178
- package/out/server/test/autoCompletion.test.js.map +1 -1
- package/out/server/test/autoCompletionFix.test.js +380 -119
- package/out/server/test/autoCompletionFix.test.js.map +1 -1
- package/out/server/test/code-action-schema.test.js +6 -15
- package/out/server/test/code-action-schema.test.js.map +1 -1
- package/out/server/test/defaultSnippets.test.js +11 -19
- package/out/server/test/defaultSnippets.test.js.map +1 -1
- package/out/server/test/findLinks.test.js +3 -12
- package/out/server/test/findLinks.test.js.map +1 -1
- package/out/server/test/hover.test.js +138 -68
- package/out/server/test/hover.test.js.map +1 -1
- package/out/server/test/integration.test.js +3 -12
- package/out/server/test/integration.test.js.map +1 -1
- package/out/server/test/jsonParser.test.js +15 -26
- package/out/server/test/jsonParser.test.js.map +1 -1
- package/out/server/test/multipleDocuments.test.js +3 -12
- package/out/server/test/multipleDocuments.test.js.map +1 -1
- package/out/server/test/schema.test.js +71 -85
- package/out/server/test/schema.test.js.map +1 -1
- package/out/server/test/schemaRequestHandler.test.js +9 -18
- package/out/server/test/schemaRequestHandler.test.js.map +1 -1
- package/out/server/test/schemaSelectionHandlers.test.js +12 -21
- package/out/server/test/schemaSelectionHandlers.test.js.map +1 -1
- package/out/server/test/schemaValidation.test.js +247 -94
- package/out/server/test/schemaValidation.test.js.map +1 -1
- package/out/server/test/settingsHandlers.test.js +44 -55
- package/out/server/test/settingsHandlers.test.js.map +1 -1
- package/out/server/test/telemetry.test.js +1 -1
- package/out/server/test/telemetry.test.js.map +1 -1
- package/out/server/test/utils/testsTypes.d.ts +3 -2
- package/out/server/test/utils/testsTypes.js +1 -1
- package/out/server/test/utils/testsTypes.js.map +1 -1
- package/out/server/test/utils/verifyError.d.ts +1 -1
- package/out/server/test/utils/verifyError.js +22 -20
- package/out/server/test/utils/verifyError.js.map +1 -1
- package/out/server/test/yamlCodeLens.test.js +34 -31
- package/out/server/test/yamlCodeLens.test.js.map +1 -1
- package/out/server/test/yamlCommands.test.js +6 -15
- package/out/server/test/yamlCommands.test.js.map +1 -1
- package/out/server/test/yamlSchema.test.js +9 -18
- package/out/server/test/yamlSchema.test.js.map +1 -1
- package/out/server/test/yamlSchemaService.test.js +9 -18
- package/out/server/test/yamlSchemaService.test.js.map +1 -1
- package/out/server/test/yamlValidation.test.js +30 -39
- package/out/server/test/yamlValidation.test.js.map +1 -1
- package/package.json +10 -9
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { Connection } from 'vscode-languageserver';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
export interface TelemetryEvent {
|
|
6
|
-
name: string;
|
|
7
|
-
type?: string;
|
|
8
|
-
properties?: unknown;
|
|
9
|
-
measures?: unknown;
|
|
10
|
-
traits?: unknown;
|
|
11
|
-
context?: unknown;
|
|
12
|
-
}
|
|
13
|
-
export declare class Telemetry {
|
|
2
|
+
import { TelemetryEvent, Telemetry } from '../languageservice/telemetry';
|
|
3
|
+
export declare class TelemetryImpl implements Telemetry {
|
|
14
4
|
private readonly connection;
|
|
15
5
|
constructor(connection: Connection);
|
|
16
6
|
send(event: TelemetryEvent): void;
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
class
|
|
7
|
+
exports.TelemetryImpl = void 0;
|
|
8
|
+
class TelemetryImpl {
|
|
9
9
|
constructor(connection) {
|
|
10
10
|
this.connection = connection;
|
|
11
11
|
}
|
|
@@ -19,5 +19,5 @@ class Telemetry {
|
|
|
19
19
|
this.send({ name, type: 'track', properties: properties });
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
exports.
|
|
22
|
+
exports.TelemetryImpl = TelemetryImpl;
|
|
23
23
|
//# sourceMappingURL=telemetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../src/languageserver/telemetry.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../src/languageserver/telemetry.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAKhG,MAAa,aAAa;IACxB,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,IAAI,CAAC,KAAqB;QACxB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,UAAmB;QACzC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,UAAmB;QACzC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAdD,sCAcC"}
|
|
@@ -46,6 +46,7 @@ export interface IProblem {
|
|
|
46
46
|
problemType?: ProblemType;
|
|
47
47
|
problemArgs?: string[];
|
|
48
48
|
schemaUri?: string[];
|
|
49
|
+
data?: Record<string, unknown>;
|
|
49
50
|
}
|
|
50
51
|
export declare abstract class ASTNodeImpl {
|
|
51
52
|
abstract readonly type: 'object' | 'property' | 'array' | 'number' | 'boolean' | 'null' | 'string';
|
|
@@ -152,10 +153,25 @@ export declare class JSONDocument {
|
|
|
152
153
|
readonly comments: Range[];
|
|
153
154
|
isKubernetes: boolean;
|
|
154
155
|
disableAdditionalProperties: boolean;
|
|
156
|
+
uri: string;
|
|
155
157
|
constructor(root: ASTNode, syntaxErrors?: Diagnostic[], comments?: Range[]);
|
|
156
158
|
getNodeFromOffset(offset: number, includeRightBound?: boolean): ASTNode | undefined;
|
|
157
159
|
getNodeFromOffsetEndInclusive(offset: number): ASTNode;
|
|
158
160
|
visit(visitor: (node: ASTNode) => boolean): void;
|
|
159
161
|
validate(textDocument: TextDocument, schema: JSONSchema): Diagnostic[];
|
|
160
|
-
|
|
162
|
+
/**
|
|
163
|
+
* This method returns the list of applicable schemas
|
|
164
|
+
*
|
|
165
|
+
* currently used @param didCallFromAutoComplete flag to differentiate the method call, when it is from auto complete
|
|
166
|
+
* then user still types something and skip the validation for timebeing untill completed.
|
|
167
|
+
* On https://github.com/redhat-developer/yaml-language-server/pull/719 the auto completes need to populate the list of enum string which matches to the enum
|
|
168
|
+
* and on https://github.com/redhat-developer/vscode-yaml/issues/803 the validation should throw the error based on the enum string.
|
|
169
|
+
*
|
|
170
|
+
* @param schema schema
|
|
171
|
+
* @param focusOffset offsetValue
|
|
172
|
+
* @param exclude excluded Node
|
|
173
|
+
* @param didCallFromAutoComplete true if method called from AutoComplete
|
|
174
|
+
* @returns array of applicable schemas
|
|
175
|
+
*/
|
|
176
|
+
getMatchingSchemas(schema: JSONSchema, focusOffset?: number, exclude?: ASTNode, didCallFromAutoComplete?: boolean): IApplicableSchema[];
|
|
161
177
|
}
|
|
@@ -14,7 +14,9 @@ const vscode_uri_1 = require("vscode-uri");
|
|
|
14
14
|
const vscode_languageserver_types_1 = require("vscode-languageserver-types");
|
|
15
15
|
const arrUtils_1 = require("../utils/arrUtils");
|
|
16
16
|
const strings_1 = require("../utils/strings");
|
|
17
|
+
const yamlSchemaService_1 = require("../services/yamlSchemaService");
|
|
17
18
|
const localize = nls.loadMessageBundle();
|
|
19
|
+
const MSG_PROPERTY_NOT_ALLOWED = 'Property {0} is not allowed.';
|
|
18
20
|
exports.formats = {
|
|
19
21
|
'color-hex': {
|
|
20
22
|
errorMessage: localize('colorHexFormatWarning', 'Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.'),
|
|
@@ -275,12 +277,11 @@ class ValidationResult {
|
|
|
275
277
|
* @param subValidationResult another possible result
|
|
276
278
|
*/
|
|
277
279
|
mergeWarningGeneric(subValidationResult, problemTypesToMerge) {
|
|
278
|
-
|
|
279
|
-
if ((_b = this.problems) === null || _b === void 0 ? void 0 : _b.length) {
|
|
280
|
+
if (this.problems?.length) {
|
|
280
281
|
for (const problemType of problemTypesToMerge) {
|
|
281
282
|
const bestResults = this.problems.filter((p) => p.problemType === problemType);
|
|
282
283
|
for (const bestResult of bestResults) {
|
|
283
|
-
const mergingResult =
|
|
284
|
+
const mergingResult = subValidationResult.problems?.find((p) => p.problemType === problemType &&
|
|
284
285
|
bestResult.location.offset === p.location.offset &&
|
|
285
286
|
(problemType !== ProblemType.missingRequiredPropWarning || (0, arrUtils_1.isArrayEqual)(p.problemArgs, bestResult.problemArgs)) // missingProp is merged only with same problemArg
|
|
286
287
|
);
|
|
@@ -443,22 +444,39 @@ class JSONDocument {
|
|
|
443
444
|
validate(this.root, schema, schema, validationResult, NoOpSchemaCollector.instance, {
|
|
444
445
|
isKubernetes: this.isKubernetes,
|
|
445
446
|
disableAdditionalProperties: this.disableAdditionalProperties,
|
|
447
|
+
uri: this.uri,
|
|
446
448
|
});
|
|
447
449
|
return validationResult.problems.map((p) => {
|
|
448
450
|
const range = vscode_languageserver_types_1.Range.create(textDocument.positionAt(p.location.offset), textDocument.positionAt(p.location.offset + p.location.length));
|
|
449
451
|
const diagnostic = vscode_languageserver_types_1.Diagnostic.create(range, p.message, p.severity, p.code ? p.code : vscode_json_languageservice_1.ErrorCode.Undefined, p.source);
|
|
450
|
-
diagnostic.data = { schemaUri: p.schemaUri };
|
|
452
|
+
diagnostic.data = { schemaUri: p.schemaUri, ...p.data };
|
|
451
453
|
return diagnostic;
|
|
452
454
|
});
|
|
453
455
|
}
|
|
454
456
|
return null;
|
|
455
457
|
}
|
|
456
|
-
|
|
458
|
+
/**
|
|
459
|
+
* This method returns the list of applicable schemas
|
|
460
|
+
*
|
|
461
|
+
* currently used @param didCallFromAutoComplete flag to differentiate the method call, when it is from auto complete
|
|
462
|
+
* then user still types something and skip the validation for timebeing untill completed.
|
|
463
|
+
* On https://github.com/redhat-developer/yaml-language-server/pull/719 the auto completes need to populate the list of enum string which matches to the enum
|
|
464
|
+
* and on https://github.com/redhat-developer/vscode-yaml/issues/803 the validation should throw the error based on the enum string.
|
|
465
|
+
*
|
|
466
|
+
* @param schema schema
|
|
467
|
+
* @param focusOffset offsetValue
|
|
468
|
+
* @param exclude excluded Node
|
|
469
|
+
* @param didCallFromAutoComplete true if method called from AutoComplete
|
|
470
|
+
* @returns array of applicable schemas
|
|
471
|
+
*/
|
|
472
|
+
getMatchingSchemas(schema, focusOffset = -1, exclude = null, didCallFromAutoComplete) {
|
|
457
473
|
const matchingSchemas = new SchemaCollector(focusOffset, exclude);
|
|
458
474
|
if (this.root && schema) {
|
|
459
475
|
validate(this.root, schema, schema, new ValidationResult(this.isKubernetes), matchingSchemas, {
|
|
460
476
|
isKubernetes: this.isKubernetes,
|
|
461
477
|
disableAdditionalProperties: this.disableAdditionalProperties,
|
|
478
|
+
uri: this.uri,
|
|
479
|
+
callFromAutoComplete: didCallFromAutoComplete,
|
|
462
480
|
});
|
|
463
481
|
}
|
|
464
482
|
return matchingSchemas.schemas;
|
|
@@ -468,7 +486,7 @@ exports.JSONDocument = JSONDocument;
|
|
|
468
486
|
function validate(node, schema, originalSchema, validationResult, matchingSchemas, options
|
|
469
487
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
470
488
|
) {
|
|
471
|
-
const { isKubernetes } = options;
|
|
489
|
+
const { isKubernetes, callFromAutoComplete } = options;
|
|
472
490
|
if (!node) {
|
|
473
491
|
return;
|
|
474
492
|
}
|
|
@@ -555,19 +573,24 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
555
573
|
}
|
|
556
574
|
const testAlternatives = (alternatives, maxOneMatch) => {
|
|
557
575
|
const matches = [];
|
|
576
|
+
const subMatches = [];
|
|
558
577
|
const noPropertyMatches = [];
|
|
559
578
|
// remember the best match that is used for error messages
|
|
560
579
|
let bestMatch = null;
|
|
561
580
|
for (const subSchemaRef of alternatives) {
|
|
562
|
-
const subSchema = asSchema(subSchemaRef);
|
|
581
|
+
const subSchema = { ...asSchema(subSchemaRef) };
|
|
563
582
|
const subValidationResult = new ValidationResult(isKubernetes);
|
|
564
583
|
const subMatchingSchemas = matchingSchemas.newSub();
|
|
565
584
|
validate(node, subSchema, schema, subValidationResult, subMatchingSchemas, options);
|
|
566
|
-
if (!subValidationResult.hasProblems()) {
|
|
585
|
+
if (!subValidationResult.hasProblems() || callFromAutoComplete) {
|
|
567
586
|
matches.push(subSchema);
|
|
587
|
+
subMatches.push(subSchema);
|
|
568
588
|
if (subValidationResult.propertiesMatches === 0) {
|
|
569
589
|
noPropertyMatches.push(subSchema);
|
|
570
590
|
}
|
|
591
|
+
if (subSchema.format) {
|
|
592
|
+
subMatches.pop();
|
|
593
|
+
}
|
|
571
594
|
}
|
|
572
595
|
if (!bestMatch) {
|
|
573
596
|
bestMatch = {
|
|
@@ -583,11 +606,11 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
583
606
|
bestMatch = genericComparison(node, maxOneMatch, subValidationResult, bestMatch, subSchema, subMatchingSchemas);
|
|
584
607
|
}
|
|
585
608
|
}
|
|
586
|
-
if (
|
|
609
|
+
if (subMatches.length > 1 && (subMatches.length > 1 || noPropertyMatches.length === 0) && maxOneMatch) {
|
|
587
610
|
validationResult.problems.push({
|
|
588
611
|
location: { offset: node.offset, length: 1 },
|
|
589
612
|
severity: vscode_languageserver_types_1.DiagnosticSeverity.Warning,
|
|
590
|
-
message: localize('oneOfWarning', '
|
|
613
|
+
message: localize('oneOfWarning', 'Matches multiple schemas when only one must validate.'),
|
|
591
614
|
source: getSchemaSource(schema, originalSchema),
|
|
592
615
|
schemaUri: getSchemaUri(schema, originalSchema),
|
|
593
616
|
});
|
|
@@ -621,6 +644,21 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
621
644
|
const subMatchingSchemas = matchingSchemas.newSub();
|
|
622
645
|
validate(node, subSchema, originalSchema, subValidationResult, subMatchingSchemas, options);
|
|
623
646
|
matchingSchemas.merge(subMatchingSchemas);
|
|
647
|
+
const { filePatternAssociation } = subSchema;
|
|
648
|
+
if (filePatternAssociation) {
|
|
649
|
+
const association = new yamlSchemaService_1.FilePatternAssociation(filePatternAssociation);
|
|
650
|
+
if (!association.matchesPattern(options.uri)) {
|
|
651
|
+
subValidationResult.problems.push({
|
|
652
|
+
location: { offset: node.offset, length: node.length },
|
|
653
|
+
severity: vscode_languageserver_types_1.DiagnosticSeverity.Warning,
|
|
654
|
+
message: localize('ifFilePatternAssociation', `filePatternAssociation '${filePatternAssociation}' does not match with doc uri '${options.uri}'.`),
|
|
655
|
+
source: getSchemaSource(schema, originalSchema),
|
|
656
|
+
schemaUri: getSchemaUri(schema, originalSchema),
|
|
657
|
+
});
|
|
658
|
+
// don't want to expose the error up to code-completion results
|
|
659
|
+
// validationResult.merge(subValidationResult);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
624
662
|
if (!subValidationResult.hasProblems()) {
|
|
625
663
|
if (thenSchema) {
|
|
626
664
|
testBranch(thenSchema, originalSchema);
|
|
@@ -638,7 +676,7 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
638
676
|
const val = getNodeValue(node);
|
|
639
677
|
let enumValueMatch = false;
|
|
640
678
|
for (const e of schema.enum) {
|
|
641
|
-
if ((0, objects_1.equals)(val, e) || ((0, objects_1.isString)(val) && (0, objects_1.isString)(e) && val && e.startsWith(val))) {
|
|
679
|
+
if ((0, objects_1.equals)(val, e) || (callFromAutoComplete && (0, objects_1.isString)(val) && (0, objects_1.isString)(e) && val && e.startsWith(val))) {
|
|
642
680
|
enumValueMatch = true;
|
|
643
681
|
break;
|
|
644
682
|
}
|
|
@@ -893,7 +931,7 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
893
931
|
node.items.forEach((item) => {
|
|
894
932
|
if (itemSchema.oneOf && itemSchema.oneOf.length === 1) {
|
|
895
933
|
const subSchemaRef = itemSchema.oneOf[0];
|
|
896
|
-
const subSchema =
|
|
934
|
+
const subSchema = { ...asSchema(subSchemaRef) };
|
|
897
935
|
subSchema.title = schema.title;
|
|
898
936
|
subSchema.closestTitle = schema.closestTitle;
|
|
899
937
|
validate(item, subSchema, schema, itemValidationResult, matchingSchemas, options);
|
|
@@ -960,7 +998,6 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
960
998
|
}
|
|
961
999
|
}
|
|
962
1000
|
function _validateObjectNode(node, schema, validationResult, matchingSchemas) {
|
|
963
|
-
var _b;
|
|
964
1001
|
const seenKeys = Object.create(null);
|
|
965
1002
|
const unprocessedProperties = [];
|
|
966
1003
|
const unprocessedNodes = [...node.properties];
|
|
@@ -1031,7 +1068,7 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
1031
1068
|
length: propertyNode.keyNode.length,
|
|
1032
1069
|
},
|
|
1033
1070
|
severity: vscode_languageserver_types_1.DiagnosticSeverity.Warning,
|
|
1034
|
-
message: schema.errorMessage || localize('DisallowedExtraPropWarning',
|
|
1071
|
+
message: schema.errorMessage || localize('DisallowedExtraPropWarning', MSG_PROPERTY_NOT_ALLOWED, propertyName),
|
|
1035
1072
|
source: getSchemaSource(schema, originalSchema),
|
|
1036
1073
|
schemaUri: getSchemaUri(schema, originalSchema),
|
|
1037
1074
|
});
|
|
@@ -1042,7 +1079,7 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
1042
1079
|
}
|
|
1043
1080
|
}
|
|
1044
1081
|
else {
|
|
1045
|
-
propertySchema.url =
|
|
1082
|
+
propertySchema.url = schema.url ?? originalSchema.url;
|
|
1046
1083
|
const propertyValidationResult = new ValidationResult(isKubernetes);
|
|
1047
1084
|
validate(child, propertySchema, schema, propertyValidationResult, matchingSchemas, options);
|
|
1048
1085
|
validationResult.mergePropertyMatch(propertyValidationResult);
|
|
@@ -1069,7 +1106,7 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
1069
1106
|
length: propertyNode.keyNode.length,
|
|
1070
1107
|
},
|
|
1071
1108
|
severity: vscode_languageserver_types_1.DiagnosticSeverity.Warning,
|
|
1072
|
-
message: schema.errorMessage || localize('DisallowedExtraPropWarning',
|
|
1109
|
+
message: schema.errorMessage || localize('DisallowedExtraPropWarning', MSG_PROPERTY_NOT_ALLOWED, propertyName),
|
|
1073
1110
|
source: getSchemaSource(schema, originalSchema),
|
|
1074
1111
|
schemaUri: getSchemaUri(schema, originalSchema),
|
|
1075
1112
|
});
|
|
@@ -1105,6 +1142,7 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
1105
1142
|
else if (schema.additionalProperties === false ||
|
|
1106
1143
|
(schema.type === 'object' && schema.additionalProperties === undefined && options.disableAdditionalProperties === true)) {
|
|
1107
1144
|
if (unprocessedProperties.length > 0) {
|
|
1145
|
+
const possibleProperties = schema.properties && Object.keys(schema.properties).filter((prop) => !seenKeys[prop]);
|
|
1108
1146
|
for (const propertyName of unprocessedProperties) {
|
|
1109
1147
|
const child = seenKeys[propertyName];
|
|
1110
1148
|
if (child) {
|
|
@@ -1118,16 +1156,20 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
1118
1156
|
else {
|
|
1119
1157
|
propertyNode = child;
|
|
1120
1158
|
}
|
|
1121
|
-
|
|
1159
|
+
const problem = {
|
|
1122
1160
|
location: {
|
|
1123
1161
|
offset: propertyNode.keyNode.offset,
|
|
1124
1162
|
length: propertyNode.keyNode.length,
|
|
1125
1163
|
},
|
|
1126
1164
|
severity: vscode_languageserver_types_1.DiagnosticSeverity.Warning,
|
|
1127
|
-
message: schema.errorMessage || localize('DisallowedExtraPropWarning',
|
|
1165
|
+
message: schema.errorMessage || localize('DisallowedExtraPropWarning', MSG_PROPERTY_NOT_ALLOWED, propertyName),
|
|
1128
1166
|
source: getSchemaSource(schema, originalSchema),
|
|
1129
1167
|
schemaUri: getSchemaUri(schema, originalSchema),
|
|
1130
|
-
}
|
|
1168
|
+
};
|
|
1169
|
+
if (possibleProperties?.length) {
|
|
1170
|
+
problem.data = { properties: possibleProperties };
|
|
1171
|
+
}
|
|
1172
|
+
validationResult.problems.push(problem);
|
|
1131
1173
|
}
|
|
1132
1174
|
}
|
|
1133
1175
|
}
|
|
@@ -1218,7 +1260,9 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
1218
1260
|
}
|
|
1219
1261
|
//genericComparison tries to find the best matching schema using a generic comparison
|
|
1220
1262
|
function genericComparison(node, maxOneMatch, subValidationResult, bestMatch, subSchema, subMatchingSchemas) {
|
|
1221
|
-
if (!maxOneMatch &&
|
|
1263
|
+
if (!maxOneMatch &&
|
|
1264
|
+
!subValidationResult.hasProblems() &&
|
|
1265
|
+
(!bestMatch.validationResult.hasProblems() || callFromAutoComplete)) {
|
|
1222
1266
|
// no errors, both are equally good matches
|
|
1223
1267
|
bestMatch.matchingSchemas.merge(subMatchingSchemas);
|
|
1224
1268
|
bestMatch.validationResult.propertiesMatches += subValidationResult.propertiesMatches;
|
|
@@ -1254,7 +1298,6 @@ function validate(node, schema, originalSchema, validationResult, matchingSchema
|
|
|
1254
1298
|
}
|
|
1255
1299
|
}
|
|
1256
1300
|
function getSchemaSource(schema, originalSchema) {
|
|
1257
|
-
var _b;
|
|
1258
1301
|
if (schema) {
|
|
1259
1302
|
let label;
|
|
1260
1303
|
if (schema.title) {
|
|
@@ -1267,7 +1310,7 @@ function getSchemaSource(schema, originalSchema) {
|
|
|
1267
1310
|
label = originalSchema.closestTitle;
|
|
1268
1311
|
}
|
|
1269
1312
|
else {
|
|
1270
|
-
const uriString =
|
|
1313
|
+
const uriString = schema.url ?? originalSchema.url;
|
|
1271
1314
|
if (uriString) {
|
|
1272
1315
|
const url = vscode_uri_1.URI.parse(uriString);
|
|
1273
1316
|
if (url.scheme === 'file') {
|
|
@@ -1283,8 +1326,7 @@ function getSchemaSource(schema, originalSchema) {
|
|
|
1283
1326
|
return exports.YAML_SOURCE;
|
|
1284
1327
|
}
|
|
1285
1328
|
function getSchemaUri(schema, originalSchema) {
|
|
1286
|
-
|
|
1287
|
-
const uriString = (_b = schema.url) !== null && _b !== void 0 ? _b : originalSchema.url;
|
|
1329
|
+
const uriString = schema.url ?? originalSchema.url;
|
|
1288
1330
|
return uriString ? [uriString] : [];
|
|
1289
1331
|
}
|
|
1290
1332
|
function getWarningMessage(problemType, args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonParser07.js","sourceRoot":"","sources":["../../../../../src/languageservice/parser/jsonParser07.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsonParser07.js","sourceRoot":"","sources":["../../../../../src/languageservice/parser/jsonParser07.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ class SingleYAMLDocument extends jsonParser07_1.JSONDocument {
|
|
|
29
29
|
const copy = new SingleYAMLDocument(this.lineCounter);
|
|
30
30
|
copy.isKubernetes = this.isKubernetes;
|
|
31
31
|
copy.disableAdditionalProperties = this.disableAdditionalProperties;
|
|
32
|
+
copy.uri = this.uri;
|
|
32
33
|
copy.currentDocIndex = this.currentDocIndex;
|
|
33
34
|
copy._lineComments = this.lineComments.slice();
|
|
34
35
|
// this will re-create root node
|
|
@@ -42,11 +43,11 @@ class SingleYAMLDocument extends jsonParser07_1.JSONDocument {
|
|
|
42
43
|
comments.forEach((comment) => this._lineComments.push(`#${comment}`));
|
|
43
44
|
}
|
|
44
45
|
(0, yaml_1.visit)(this.internalDocument, (_key, node) => {
|
|
45
|
-
if (node
|
|
46
|
-
const comments = node
|
|
46
|
+
if (node?.commentBefore) {
|
|
47
|
+
const comments = node?.commentBefore.split('\n');
|
|
47
48
|
comments.forEach((comment) => this._lineComments.push(`#${comment}`));
|
|
48
49
|
}
|
|
49
|
-
if (node
|
|
50
|
+
if (node?.comment) {
|
|
50
51
|
this._lineComments.push(`#${node.comment}`);
|
|
51
52
|
}
|
|
52
53
|
});
|
|
@@ -85,7 +86,7 @@ class SingleYAMLDocument extends jsonParser07_1.JSONDocument {
|
|
|
85
86
|
const textAfterPosition = lineContent.substring(position.character);
|
|
86
87
|
const spacesAfterPositionMatch = textAfterPosition.match(/^([ ]+)\n?$/);
|
|
87
88
|
const areOnlySpacesAfterPosition = !!spacesAfterPositionMatch;
|
|
88
|
-
const countOfSpacesAfterPosition = spacesAfterPositionMatch
|
|
89
|
+
const countOfSpacesAfterPosition = spacesAfterPositionMatch?.[1].length;
|
|
89
90
|
let closestNode;
|
|
90
91
|
(0, yaml_1.visit)(this.internalDocument, (key, node) => {
|
|
91
92
|
if (!node) {
|
|
@@ -207,7 +208,7 @@ class YamlDocuments {
|
|
|
207
208
|
* @returns the YAMLDocument
|
|
208
209
|
*/
|
|
209
210
|
getYamlDocument(document, parserOptions, addRootObject = false) {
|
|
210
|
-
this.ensureCache(document, parserOptions
|
|
211
|
+
this.ensureCache(document, parserOptions ?? yamlParser07_1.defaultOptions, addRootObject);
|
|
211
212
|
return this.cache.get(document.uri).document;
|
|
212
213
|
}
|
|
213
214
|
/**
|