yaml-language-server 1.9.1-eae5206.0 → 1.10.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 +21 -0
- package/CONTRIBUTING.md +8 -0
- package/DCO +37 -0
- package/README.md +2 -0
- package/lib/esm/languageserver/handlers/settingsHandlers.js +8 -1
- package/lib/esm/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/lib/esm/languageservice/jsonASTTypes.js +1 -0
- package/lib/esm/languageservice/jsonSchema.js +1 -0
- package/lib/esm/languageservice/parser/jsonParser07.d.ts +15 -1
- package/lib/esm/languageservice/parser/jsonParser07.js +25 -8
- package/lib/esm/languageservice/parser/jsonParser07.js.map +1 -1
- package/lib/esm/languageservice/parser/yaml-documents.js +10 -2
- package/lib/esm/languageservice/parser/yaml-documents.js.map +1 -1
- package/lib/esm/languageservice/parser/yamlParser07.js.map +1 -1
- package/lib/esm/languageservice/services/validation/types.js +1 -0
- package/lib/esm/languageservice/services/validation/yaml-style.d.ts +12 -0
- package/lib/esm/languageservice/services/validation/yaml-style.js +25 -0
- package/lib/esm/languageservice/services/validation/yaml-style.js.map +1 -0
- package/lib/esm/languageservice/services/yamlCodeActions.d.ts +1 -0
- package/lib/esm/languageservice/services/yamlCodeActions.js +22 -0
- package/lib/esm/languageservice/services/yamlCodeActions.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCodeLens.js +2 -17
- package/lib/esm/languageservice/services/yamlCodeLens.js.map +1 -1
- package/lib/esm/languageservice/services/yamlCompletion.d.ts +1 -1
- package/lib/esm/languageservice/services/yamlCompletion.js +41 -41
- package/lib/esm/languageservice/services/yamlCompletion.js.map +1 -1
- package/lib/esm/languageservice/services/yamlFolding.js.map +1 -1
- package/lib/esm/languageservice/services/yamlHover.js +1 -1
- package/lib/esm/languageservice/services/yamlHover.js.map +1 -1
- package/lib/esm/languageservice/services/yamlSchemaService.js +14 -0
- package/lib/esm/languageservice/services/yamlSchemaService.js.map +1 -1
- package/lib/esm/languageservice/services/yamlValidation.d.ts +2 -1
- package/lib/esm/languageservice/services/yamlValidation.js +10 -9
- package/lib/esm/languageservice/services/yamlValidation.js.map +1 -1
- package/lib/esm/languageservice/utils/astUtils.js.map +1 -1
- package/lib/esm/languageservice/utils/charCode.js +1 -0
- package/lib/esm/languageservice/utils/flow-style-rewriter.d.ts +6 -0
- package/lib/esm/languageservice/utils/flow-style-rewriter.js +53 -0
- package/lib/esm/languageservice/utils/flow-style-rewriter.js.map +1 -0
- package/lib/esm/languageservice/utils/indentationGuesser.js +6 -6
- package/lib/esm/languageservice/utils/indentationGuesser.js.map +1 -1
- package/lib/esm/languageservice/utils/objects.js.map +1 -1
- package/lib/esm/languageservice/utils/schemaUtils.d.ts +1 -0
- package/lib/esm/languageservice/utils/schemaUtils.js +16 -0
- package/lib/esm/languageservice/utils/schemaUtils.js.map +1 -1
- package/lib/esm/languageservice/utils/strings.js +1 -1
- package/lib/esm/languageservice/utils/strings.js.map +1 -1
- package/lib/esm/languageservice/utils/textBuffer.js +1 -1
- package/lib/esm/languageservice/utils/textBuffer.js.map +1 -1
- package/lib/esm/languageservice/yamlLanguageService.d.ts +8 -0
- package/lib/esm/languageservice/yamlLanguageService.js.map +1 -1
- package/lib/esm/languageservice/yamlTypes.js +1 -0
- package/lib/esm/yamlSettings.d.ts +8 -0
- package/lib/esm/yamlSettings.js.map +1 -1
- package/lib/umd/index.js +7 -2
- package/lib/umd/index.js.map +1 -1
- package/lib/umd/languageserver/handlers/languageHandlers.js +1 -1
- package/lib/umd/languageserver/handlers/languageHandlers.js.map +1 -1
- package/lib/umd/languageserver/handlers/schemaSelectionHandlers.js +1 -1
- package/lib/umd/languageserver/handlers/schemaSelectionHandlers.js.map +1 -1
- package/lib/umd/languageserver/handlers/settingsHandlers.js +15 -8
- package/lib/umd/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/lib/umd/languageserver/handlers/validationHandlers.js +2 -2
- package/lib/umd/languageserver/handlers/validationHandlers.js.map +1 -1
- package/lib/umd/languageservice/parser/ast-converter.js +11 -11
- package/lib/umd/languageservice/parser/ast-converter.js.map +1 -1
- package/lib/umd/languageservice/parser/custom-tag-provider.js +3 -3
- package/lib/umd/languageservice/parser/custom-tag-provider.js.map +1 -1
- package/lib/umd/languageservice/parser/jsonParser07.d.ts +15 -1
- package/lib/umd/languageservice/parser/jsonParser07.js +50 -33
- package/lib/umd/languageservice/parser/jsonParser07.js.map +1 -1
- package/lib/umd/languageservice/parser/yaml-documents.js +23 -15
- package/lib/umd/languageservice/parser/yaml-documents.js.map +1 -1
- package/lib/umd/languageservice/parser/yamlParser07.js +1 -1
- package/lib/umd/languageservice/parser/yamlParser07.js.map +1 -1
- package/lib/umd/languageservice/services/documentSymbols.js +4 -4
- package/lib/umd/languageservice/services/documentSymbols.js.map +1 -1
- package/lib/umd/languageservice/services/schemaRequestHandler.js +6 -5
- package/lib/umd/languageservice/services/schemaRequestHandler.js.map +1 -1
- package/lib/umd/languageservice/services/validation/unused-anchors.js +5 -5
- package/lib/umd/languageservice/services/validation/unused-anchors.js.map +1 -1
- package/lib/umd/languageservice/services/validation/yaml-style.d.ts +12 -0
- package/lib/umd/languageservice/services/validation/yaml-style.js +39 -0
- package/lib/umd/languageservice/services/validation/yaml-style.js.map +1 -0
- package/lib/umd/languageservice/services/yamlCodeActions.d.ts +1 -0
- package/lib/umd/languageservice/services/yamlCodeActions.js +24 -2
- package/lib/umd/languageservice/services/yamlCodeActions.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCodeLens.js +5 -20
- package/lib/umd/languageservice/services/yamlCodeLens.js.map +1 -1
- package/lib/umd/languageservice/services/yamlCompletion.d.ts +1 -1
- package/lib/umd/languageservice/services/yamlCompletion.js +91 -91
- package/lib/umd/languageservice/services/yamlCompletion.js.map +1 -1
- package/lib/umd/languageservice/services/yamlDefinition.js +3 -3
- package/lib/umd/languageservice/services/yamlDefinition.js.map +1 -1
- package/lib/umd/languageservice/services/yamlFolding.js.map +1 -1
- package/lib/umd/languageservice/services/yamlHover.js +5 -5
- package/lib/umd/languageservice/services/yamlHover.js.map +1 -1
- package/lib/umd/languageservice/services/yamlLinks.js +2 -2
- package/lib/umd/languageservice/services/yamlLinks.js.map +1 -1
- package/lib/umd/languageservice/services/yamlSchemaService.js +18 -4
- package/lib/umd/languageservice/services/yamlSchemaService.js.map +1 -1
- package/lib/umd/languageservice/services/yamlValidation.d.ts +2 -1
- package/lib/umd/languageservice/services/yamlValidation.js +16 -14
- package/lib/umd/languageservice/services/yamlValidation.js.map +1 -1
- package/lib/umd/languageservice/utils/astUtils.js +3 -3
- package/lib/umd/languageservice/utils/astUtils.js.map +1 -1
- package/lib/umd/languageservice/utils/flow-style-rewriter.d.ts +6 -0
- package/lib/umd/languageservice/utils/flow-style-rewriter.js +67 -0
- package/lib/umd/languageservice/utils/flow-style-rewriter.js.map +1 -0
- package/lib/umd/languageservice/utils/indentationGuesser.js +6 -6
- package/lib/umd/languageservice/utils/indentationGuesser.js.map +1 -1
- package/lib/umd/languageservice/utils/objects.js.map +1 -1
- package/lib/umd/languageservice/utils/paths.js +9 -6
- package/lib/umd/languageservice/utils/paths.js.map +1 -1
- package/lib/umd/languageservice/utils/schemaUrls.js +3 -3
- package/lib/umd/languageservice/utils/schemaUrls.js.map +1 -1
- package/lib/umd/languageservice/utils/schemaUtils.d.ts +1 -0
- package/lib/umd/languageservice/utils/schemaUtils.js +19 -2
- package/lib/umd/languageservice/utils/schemaUtils.js.map +1 -1
- package/lib/umd/languageservice/utils/strings.js +1 -1
- package/lib/umd/languageservice/utils/strings.js.map +1 -1
- package/lib/umd/languageservice/utils/textBuffer.js +1 -1
- package/lib/umd/languageservice/utils/textBuffer.js.map +1 -1
- package/lib/umd/languageservice/yamlLanguageService.d.ts +8 -0
- package/lib/umd/languageservice/yamlLanguageService.js +1 -1
- package/lib/umd/languageservice/yamlLanguageService.js.map +1 -1
- package/lib/umd/server.js +4 -4
- package/lib/umd/server.js.map +1 -1
- package/lib/umd/webworker/yamlServerMain.js +2 -2
- package/lib/umd/webworker/yamlServerMain.js.map +1 -1
- package/lib/umd/yamlServerInit.js +2 -2
- package/lib/umd/yamlServerInit.js.map +1 -1
- package/lib/umd/yamlSettings.d.ts +8 -0
- package/lib/umd/yamlSettings.js.map +1 -1
- package/out/server/src/index.js +7 -2
- package/out/server/src/index.js.map +1 -1
- package/out/server/src/languageserver/handlers/languageHandlers.js +1 -1
- package/out/server/src/languageserver/handlers/languageHandlers.js.map +1 -1
- package/out/server/src/languageserver/handlers/schemaSelectionHandlers.js +1 -1
- package/out/server/src/languageserver/handlers/schemaSelectionHandlers.js.map +1 -1
- package/out/server/src/languageserver/handlers/settingsHandlers.js +15 -8
- package/out/server/src/languageserver/handlers/settingsHandlers.js.map +1 -1
- package/out/server/src/languageserver/handlers/validationHandlers.js +2 -2
- package/out/server/src/languageserver/handlers/validationHandlers.js.map +1 -1
- package/out/server/src/languageservice/parser/ast-converter.js +11 -11
- package/out/server/src/languageservice/parser/ast-converter.js.map +1 -1
- package/out/server/src/languageservice/parser/custom-tag-provider.js +3 -3
- package/out/server/src/languageservice/parser/custom-tag-provider.js.map +1 -1
- package/out/server/src/languageservice/parser/jsonParser07.d.ts +15 -1
- package/out/server/src/languageservice/parser/jsonParser07.js +50 -33
- package/out/server/src/languageservice/parser/jsonParser07.js.map +1 -1
- package/out/server/src/languageservice/parser/yaml-documents.js +23 -15
- package/out/server/src/languageservice/parser/yaml-documents.js.map +1 -1
- package/out/server/src/languageservice/parser/yamlParser07.js +1 -1
- package/out/server/src/languageservice/parser/yamlParser07.js.map +1 -1
- package/out/server/src/languageservice/services/documentSymbols.js +4 -4
- package/out/server/src/languageservice/services/documentSymbols.js.map +1 -1
- package/out/server/src/languageservice/services/schemaRequestHandler.js +6 -5
- package/out/server/src/languageservice/services/schemaRequestHandler.js.map +1 -1
- package/out/server/src/languageservice/services/validation/unused-anchors.js +5 -5
- package/out/server/src/languageservice/services/validation/unused-anchors.js.map +1 -1
- package/out/server/src/languageservice/services/validation/yaml-style.d.ts +12 -0
- package/out/server/src/languageservice/services/validation/yaml-style.js +29 -0
- package/out/server/src/languageservice/services/validation/yaml-style.js.map +1 -0
- package/out/server/src/languageservice/services/yamlCodeActions.d.ts +1 -0
- package/out/server/src/languageservice/services/yamlCodeActions.js +23 -1
- package/out/server/src/languageservice/services/yamlCodeActions.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCodeLens.js +4 -19
- package/out/server/src/languageservice/services/yamlCodeLens.js.map +1 -1
- package/out/server/src/languageservice/services/yamlCompletion.d.ts +1 -1
- package/out/server/src/languageservice/services/yamlCompletion.js +91 -91
- package/out/server/src/languageservice/services/yamlCompletion.js.map +1 -1
- package/out/server/src/languageservice/services/yamlDefinition.js +3 -3
- package/out/server/src/languageservice/services/yamlDefinition.js.map +1 -1
- package/out/server/src/languageservice/services/yamlFolding.js.map +1 -1
- package/out/server/src/languageservice/services/yamlHover.js +5 -5
- package/out/server/src/languageservice/services/yamlHover.js.map +1 -1
- package/out/server/src/languageservice/services/yamlLinks.js +2 -2
- package/out/server/src/languageservice/services/yamlLinks.js.map +1 -1
- package/out/server/src/languageservice/services/yamlSchemaService.js +17 -3
- package/out/server/src/languageservice/services/yamlSchemaService.js.map +1 -1
- package/out/server/src/languageservice/services/yamlValidation.d.ts +2 -1
- package/out/server/src/languageservice/services/yamlValidation.js +15 -13
- package/out/server/src/languageservice/services/yamlValidation.js.map +1 -1
- package/out/server/src/languageservice/utils/astUtils.js +3 -3
- package/out/server/src/languageservice/utils/astUtils.js.map +1 -1
- package/out/server/src/languageservice/utils/flow-style-rewriter.d.ts +6 -0
- package/out/server/src/languageservice/utils/flow-style-rewriter.js +57 -0
- package/out/server/src/languageservice/utils/flow-style-rewriter.js.map +1 -0
- package/out/server/src/languageservice/utils/indentationGuesser.js +6 -6
- package/out/server/src/languageservice/utils/indentationGuesser.js.map +1 -1
- package/out/server/src/languageservice/utils/objects.js.map +1 -1
- package/out/server/src/languageservice/utils/paths.js +9 -6
- package/out/server/src/languageservice/utils/paths.js.map +1 -1
- package/out/server/src/languageservice/utils/schemaUrls.js +3 -3
- package/out/server/src/languageservice/utils/schemaUrls.js.map +1 -1
- package/out/server/src/languageservice/utils/schemaUtils.d.ts +1 -0
- package/out/server/src/languageservice/utils/schemaUtils.js +18 -1
- package/out/server/src/languageservice/utils/schemaUtils.js.map +1 -1
- package/out/server/src/languageservice/utils/strings.js +1 -1
- package/out/server/src/languageservice/utils/strings.js.map +1 -1
- package/out/server/src/languageservice/utils/textBuffer.js +1 -1
- package/out/server/src/languageservice/utils/textBuffer.js.map +1 -1
- package/out/server/src/languageservice/yamlLanguageService.d.ts +8 -0
- package/out/server/src/languageservice/yamlLanguageService.js +1 -1
- package/out/server/src/languageservice/yamlLanguageService.js.map +1 -1
- package/out/server/src/server.js +4 -4
- package/out/server/src/server.js.map +1 -1
- package/out/server/src/webworker/yamlServerMain.js +2 -2
- package/out/server/src/webworker/yamlServerMain.js.map +1 -1
- package/out/server/src/yamlServerInit.js +2 -2
- package/out/server/src/yamlServerInit.js.map +1 -1
- package/out/server/src/yamlSettings.d.ts +8 -0
- package/out/server/src/yamlSettings.js.map +1 -1
- package/out/server/test/arrUtils.test.js +6 -6
- package/out/server/test/arrUtils.test.js.map +1 -1
- package/out/server/test/astUtils.test.js +18 -18
- package/out/server/test/astUtils.test.js.map +1 -1
- package/out/server/test/autoCompletion.test.js +158 -158
- package/out/server/test/autoCompletion.test.js.map +1 -1
- package/out/server/test/autoCompletionFix.test.js +513 -60
- package/out/server/test/autoCompletionFix.test.js.map +1 -1
- package/out/server/test/code-action-schema.test.js +12 -12
- package/out/server/test/code-action-schema.test.js.map +1 -1
- package/out/server/test/customTags.test.js +3 -3
- package/out/server/test/customTags.test.js.map +1 -1
- package/out/server/test/defaultSnippets.test.js +17 -7
- package/out/server/test/defaultSnippets.test.js.map +1 -1
- package/out/server/test/documentPositionCalculator.test.js +10 -10
- package/out/server/test/documentPositionCalculator.test.js.map +1 -1
- package/out/server/test/documentSymbols.test.js +62 -62
- package/out/server/test/documentSymbols.test.js.map +1 -1
- package/out/server/test/findLinks.test.js +2 -2
- package/out/server/test/findLinks.test.js.map +1 -1
- package/out/server/test/flow-style-rewriter.test.d.ts +1 -0
- package/out/server/test/flow-style-rewriter.test.js +79 -0
- package/out/server/test/flow-style-rewriter.test.js.map +1 -0
- package/out/server/test/formatter.test.js +2 -2
- package/out/server/test/formatter.test.js.map +1 -1
- package/out/server/test/hover.test.js +49 -7
- package/out/server/test/hover.test.js.map +1 -1
- package/out/server/test/integration.test.js +4 -4
- package/out/server/test/integration.test.js.map +1 -1
- package/out/server/test/jsonParser.test.js +6 -6
- package/out/server/test/jsonParser.test.js.map +1 -1
- package/out/server/test/multipleDocuments.test.js +4 -4
- package/out/server/test/multipleDocuments.test.js.map +1 -1
- package/out/server/test/objects.test.js +14 -14
- package/out/server/test/objects.test.js.map +1 -1
- package/out/server/test/paths.test.js +26 -26
- package/out/server/test/paths.test.js.map +1 -1
- package/out/server/test/schema.test.js +9 -9
- package/out/server/test/schema.test.js.map +1 -1
- package/out/server/test/schemaRequestHandler.test.js +3 -3
- package/out/server/test/schemaRequestHandler.test.js.map +1 -1
- package/out/server/test/schemaSelectionHandlers.test.js +4 -4
- package/out/server/test/schemaSelectionHandlers.test.js.map +1 -1
- package/out/server/test/schemaValidation.test.js +122 -47
- package/out/server/test/schemaValidation.test.js.map +1 -1
- package/out/server/test/settingsHandlers.test.js +23 -5
- package/out/server/test/settingsHandlers.test.js.map +1 -1
- package/out/server/test/strings.test.js +19 -19
- package/out/server/test/strings.test.js.map +1 -1
- package/out/server/test/telemetry.test.js +2 -2
- package/out/server/test/telemetry.test.js.map +1 -1
- package/out/server/test/textBuffer.test.js +1 -1
- package/out/server/test/utils/serviceSetup.d.ts +2 -0
- package/out/server/test/utils/serviceSetup.js +10 -0
- package/out/server/test/utils/serviceSetup.js.map +1 -1
- package/out/server/test/utils/testHelper.js +2 -2
- package/out/server/test/utils/testHelper.js.map +1 -1
- package/out/server/test/utils/verifyError.d.ts +1 -2
- package/out/server/test/utils/verifyError.js.map +1 -1
- package/out/server/test/yaml-documents.test.js +29 -29
- package/out/server/test/yaml-documents.test.js.map +1 -1
- package/out/server/test/yamlCodeActions.test.js +42 -15
- package/out/server/test/yamlCodeActions.test.js.map +1 -1
- package/out/server/test/yamlCodeLens.test.js +7 -7
- package/out/server/test/yamlCodeLens.test.js.map +1 -1
- package/out/server/test/yamlCommands.test.js +3 -3
- package/out/server/test/yamlCommands.test.js.map +1 -1
- package/out/server/test/yamlDefinition.test.js +5 -5
- package/out/server/test/yamlDefinition.test.js.map +1 -1
- package/out/server/test/yamlFolding.test.js +44 -44
- package/out/server/test/yamlFolding.test.js.map +1 -1
- package/out/server/test/yamlOnTypeFormatting.test.js +22 -22
- package/out/server/test/yamlOnTypeFormatting.test.js.map +1 -1
- package/out/server/test/yamlParser.test.js +24 -24
- package/out/server/test/yamlParser.test.js.map +1 -1
- package/out/server/test/yamlSchemaService.test.js +7 -7
- package/out/server/test/yamlSchemaService.test.js.map +1 -1
- package/out/server/test/yamlValidation.test.js +98 -22
- package/out/server/test/yamlValidation.test.js.map +1 -1
- package/package.json +5 -4
- package/lib/esm/languageservice/utils/ranges.d.ts +0 -7
- package/lib/esm/languageservice/utils/ranges.js +0 -31
- package/lib/esm/languageservice/utils/ranges.js.map +0 -1
- package/lib/umd/languageservice/utils/ranges.d.ts +0 -7
- package/lib/umd/languageservice/utils/ranges.js +0 -45
- package/lib/umd/languageservice/utils/ranges.js.map +0 -1
- package/out/server/src/languageservice/utils/ranges.d.ts +0 -7
- package/out/server/src/languageservice/utils/ranges.js +0 -35
- package/out/server/src/languageservice/utils/ranges.js.map +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TextDocument } from 'vscode-languageserver-textdocument';
|
|
2
|
+
import { Diagnostic } from 'vscode-languageserver-types';
|
|
3
|
+
import { SingleYAMLDocument } from '../../parser/yaml-documents';
|
|
4
|
+
import { LanguageSettings } from '../../yamlLanguageService';
|
|
5
|
+
import { AdditionalValidator } from './types';
|
|
6
|
+
export declare class YAMLStyleValidator implements AdditionalValidator {
|
|
7
|
+
private forbidSequence;
|
|
8
|
+
private forbidMapping;
|
|
9
|
+
constructor(settings: LanguageSettings);
|
|
10
|
+
validate(document: TextDocument, yamlDoc: SingleYAMLDocument): Diagnostic[];
|
|
11
|
+
private getRangeOf;
|
|
12
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Diagnostic, DiagnosticSeverity, Range } from 'vscode-languageserver-types';
|
|
2
|
+
import { isMap, isSeq, visit } from 'yaml';
|
|
3
|
+
export class YAMLStyleValidator {
|
|
4
|
+
constructor(settings) {
|
|
5
|
+
this.forbidMapping = settings.flowMapping === 'forbid';
|
|
6
|
+
this.forbidSequence = settings.flowSequence === 'forbid';
|
|
7
|
+
}
|
|
8
|
+
validate(document, yamlDoc) {
|
|
9
|
+
const result = [];
|
|
10
|
+
visit(yamlDoc.internalDocument, (key, node) => {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
if (this.forbidMapping && isMap(node) && ((_a = node.srcToken) === null || _a === void 0 ? void 0 : _a.type) === 'flow-collection') {
|
|
13
|
+
result.push(Diagnostic.create(this.getRangeOf(document, node.srcToken), 'Flow style mapping is forbidden', DiagnosticSeverity.Error, 'flowMap'));
|
|
14
|
+
}
|
|
15
|
+
if (this.forbidSequence && isSeq(node) && ((_b = node.srcToken) === null || _b === void 0 ? void 0 : _b.type) === 'flow-collection') {
|
|
16
|
+
result.push(Diagnostic.create(this.getRangeOf(document, node.srcToken), 'Flow style sequence is forbidden', DiagnosticSeverity.Error, 'flowSeq'));
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
getRangeOf(document, node) {
|
|
22
|
+
return Range.create(document.positionAt(node.start.offset), document.positionAt(node.end.pop().offset));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=yaml-style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-style.js","sourceRoot":"","sources":["../../../../../src/languageservice/services/validation/yaml-style.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAM3C,MAAM,OAAO,kBAAkB;IAI7B,YAAY,QAA0B;QACpC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC;IAC3D,CAAC;IACD,QAAQ,CAAC,QAAsB,EAAE,OAA2B;QAC1D,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;;YAC5C,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,MAAK,iBAAiB,EAAE;gBAClF,MAAM,CAAC,IAAI,CACT,UAAU,CAAC,MAAM,CACf,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EACxC,iCAAiC,EACjC,kBAAkB,CAAC,KAAK,EACxB,SAAS,CACV,CACF,CAAC;aACH;YACD,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,MAAK,iBAAiB,EAAE;gBACnF,MAAM,CAAC,IAAI,CACT,UAAU,CAAC,MAAM,CACf,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EACxC,kCAAkC,EAClC,kBAAkB,CAAC,KAAK,EACxB,SAAS,CACV,CACF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,UAAU,CAAC,QAAsB,EAAE,IAAoB;QAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1G,CAAC;CACF"}
|
|
@@ -8,6 +8,10 @@ import * as path from 'path';
|
|
|
8
8
|
import { TextBuffer } from '../utils/textBuffer';
|
|
9
9
|
import { YAML_SOURCE } from '../parser/jsonParser07';
|
|
10
10
|
import { getFirstNonWhitespaceCharacterAfterOffset } from '../utils/strings';
|
|
11
|
+
import { matchOffsetToDocument } from '../utils/arrUtils';
|
|
12
|
+
import { isMap, isSeq } from 'yaml';
|
|
13
|
+
import { yamlDocumentsCache } from '../parser/yaml-documents';
|
|
14
|
+
import { FlowStyleRewriter } from '../utils/flow-style-rewriter';
|
|
11
15
|
export class YamlCodeActions {
|
|
12
16
|
constructor(clientCapabilities) {
|
|
13
17
|
this.clientCapabilities = clientCapabilities;
|
|
@@ -25,6 +29,7 @@ export class YamlCodeActions {
|
|
|
25
29
|
result.push(...this.getJumpToSchemaActions(params.context.diagnostics));
|
|
26
30
|
result.push(...this.getTabToSpaceConverting(params.context.diagnostics, document));
|
|
27
31
|
result.push(...this.getUnusedAnchorsDelete(params.context.diagnostics, document));
|
|
32
|
+
result.push(...this.getConvertToBlockStyleActions(params.context.diagnostics, document));
|
|
28
33
|
return result;
|
|
29
34
|
}
|
|
30
35
|
getJumpToSchemaActions(diagnostics) {
|
|
@@ -149,6 +154,23 @@ export class YamlCodeActions {
|
|
|
149
154
|
}
|
|
150
155
|
return results;
|
|
151
156
|
}
|
|
157
|
+
getConvertToBlockStyleActions(diagnostics, document) {
|
|
158
|
+
const results = [];
|
|
159
|
+
for (const diagnostic of diagnostics) {
|
|
160
|
+
if (diagnostic.code === 'flowMap' || diagnostic.code === 'flowSeq') {
|
|
161
|
+
const yamlDocuments = yamlDocumentsCache.getYamlDocument(document);
|
|
162
|
+
const startOffset = document.offsetAt(diagnostic.range.start);
|
|
163
|
+
const yamlDoc = matchOffsetToDocument(startOffset, yamlDocuments);
|
|
164
|
+
const node = yamlDoc.getNodeFromOffset(startOffset);
|
|
165
|
+
if (isMap(node.internalNode) || isSeq(node.internalNode)) {
|
|
166
|
+
const blockTypeDescription = isMap(node.internalNode) ? 'map' : 'sequence';
|
|
167
|
+
const rewriter = new FlowStyleRewriter(this.indentation);
|
|
168
|
+
results.push(CodeAction.create(`Convert to block style ${blockTypeDescription}`, createWorkspaceEdit(document.uri, [TextEdit.replace(diagnostic.range, rewriter.write(node))]), CodeActionKind.QuickFix));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return results;
|
|
173
|
+
}
|
|
152
174
|
}
|
|
153
175
|
function createWorkspaceEdit(uri, edits) {
|
|
154
176
|
const changes = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yamlCodeActions.js","sourceRoot":"","sources":["../../../../src/languageservice/services/yamlCodeActions.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,EACL,UAAU,EACV,cAAc,EACd,OAAO,EAEP,QAAQ,EACR,KAAK,EACL,QAAQ,GAET,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yCAAyC,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"yamlCodeActions.js","sourceRoot":"","sources":["../../../../src/languageservice/services/yamlCodeActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
14
14
|
import { CodeLens, Range } from 'vscode-languageserver-types';
|
|
15
15
|
import { YamlCommands } from '../../commands';
|
|
16
16
|
import { yamlDocumentsCache } from '../parser/yaml-documents';
|
|
17
|
-
import { URI } from 'vscode-uri';
|
|
18
|
-
import * as path from 'path';
|
|
19
17
|
import { getSchemaUrls } from '../utils/schemaUrls';
|
|
20
18
|
import { convertErrorToTelemetryMsg } from '../utils/objects';
|
|
19
|
+
import { getSchemaTitle } from '../utils/schemaUtils';
|
|
21
20
|
export class YamlCodeLens {
|
|
22
21
|
constructor(schemaService, telemetry) {
|
|
23
22
|
this.schemaService = schemaService;
|
|
@@ -39,7 +38,7 @@ export class YamlCodeLens {
|
|
|
39
38
|
for (const urlToSchema of schemaUrls) {
|
|
40
39
|
const lens = CodeLens.create(Range.create(0, 0, 0, 0));
|
|
41
40
|
lens.command = {
|
|
42
|
-
title:
|
|
41
|
+
title: getSchemaTitle(urlToSchema[1], urlToSchema[0]),
|
|
43
42
|
command: YamlCommands.JUMP_TO_SCHEMA,
|
|
44
43
|
arguments: [urlToSchema[0]],
|
|
45
44
|
};
|
|
@@ -56,18 +55,4 @@ export class YamlCodeLens {
|
|
|
56
55
|
return param;
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
|
-
function getCommandTitle(url, schema) {
|
|
60
|
-
const uri = URI.parse(url);
|
|
61
|
-
let baseName = path.basename(uri.fsPath);
|
|
62
|
-
if (!path.extname(uri.fsPath)) {
|
|
63
|
-
baseName += '.json';
|
|
64
|
-
}
|
|
65
|
-
if (Object.getOwnPropertyDescriptor(schema, 'name')) {
|
|
66
|
-
return Object.getOwnPropertyDescriptor(schema, 'name').value + ` (${baseName})`;
|
|
67
|
-
}
|
|
68
|
-
else if (schema.title) {
|
|
69
|
-
return schema.title + ` (${baseName})`;
|
|
70
|
-
}
|
|
71
|
-
return baseName;
|
|
72
|
-
}
|
|
73
58
|
//# sourceMappingURL=yamlCodeLens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yamlCodeLens.js","sourceRoot":"","sources":["../../../../src/languageservice/services/yamlCodeLens.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;AAGhG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"yamlCodeLens.js","sourceRoot":"","sources":["../../../../src/languageservice/services/yamlCodeLens.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;AAGhG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,YAAY;IACvB,YAAoB,aAAgC,EAAmB,SAAoB;QAAvE,kBAAa,GAAb,aAAa,CAAmB;QAAmB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEzF,WAAW,CAAC,QAAsB;;YACtC,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,IAAI;gBACF,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;gBAC/C,KAAK,MAAM,cAAc,IAAI,YAAY,CAAC,SAAS,EAAE;oBACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;oBAC3F,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;wBAClB,kDAAkD;wBAClD,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;qBACzE;iBACF;gBACD,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE;oBACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,OAAO,GAAG;wBACb,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;wBACrD,OAAO,EAAE,YAAY,CAAC,cAAc;wBACpC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;qBAC5B,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC7F;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IACD,eAAe,CAAC,KAAe;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -30,7 +30,7 @@ export declare class YamlCompletion {
|
|
|
30
30
|
private parentSkeletonSelectedFirst;
|
|
31
31
|
constructor(schemaService: YAMLSchemaService, clientCapabilities: ClientCapabilities, yamlDocument: YamlDocuments, telemetry: Telemetry);
|
|
32
32
|
configure(languageSettings: LanguageSettings): void;
|
|
33
|
-
doComplete(document: TextDocument, position: Position, isKubernetes?: boolean): Promise<CompletionList>;
|
|
33
|
+
doComplete(document: TextDocument, position: Position, isKubernetes?: boolean, doComplete?: boolean): Promise<CompletionList>;
|
|
34
34
|
updateCompletionText(completionItem: CompletionItem, text: string): void;
|
|
35
35
|
mergeSimpleInsertTexts(label: string, existingText: string, addingText: string): string | undefined;
|
|
36
36
|
getValuesFromInsertText(insertText: string): string[];
|
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
|
-
import { CompletionItem as CompletionItemBase, CompletionItemKind, CompletionList, InsertTextFormat, InsertTextMode, MarkupKind, Range, TextEdit, } from 'vscode-languageserver-types';
|
|
14
|
+
import { CompletionItem as CompletionItemBase, CompletionItemKind, CompletionList, InsertTextFormat, InsertTextMode, MarkupKind, Position, Range, TextEdit, } from 'vscode-languageserver-types';
|
|
15
15
|
import { isPair, isScalar, isMap, isSeq, isNode } from 'yaml';
|
|
16
16
|
import { filterInvalidCustomTags, matchOffsetToDocument } from '../utils/arrUtils';
|
|
17
17
|
import { guessIndentation } from '../utils/indentationGuesser';
|
|
@@ -46,7 +46,7 @@ export class YamlCompletion {
|
|
|
46
46
|
this.disableDefaultProperties = languageSettings.disableDefaultProperties;
|
|
47
47
|
this.parentSkeletonSelectedFirst = languageSettings.parentSkeletonSelectedFirst;
|
|
48
48
|
}
|
|
49
|
-
doComplete(document, position, isKubernetes = false) {
|
|
49
|
+
doComplete(document, position, isKubernetes = false, doComplete = true) {
|
|
50
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
51
|
const result = CompletionList.create([], false);
|
|
52
52
|
if (!this.completionEnabled) {
|
|
@@ -75,9 +75,24 @@ export class YamlCompletion {
|
|
|
75
75
|
currentDoc = currentDoc.clone();
|
|
76
76
|
let [node, foundByClosest] = currentDoc.getNodeFromPosition(offset, textBuffer, this.indentation.length);
|
|
77
77
|
const currentWord = this.getCurrentWord(document, offset);
|
|
78
|
+
let lineContent = textBuffer.getLineContent(position.line);
|
|
79
|
+
const lineAfterPosition = lineContent.substring(position.character);
|
|
80
|
+
const areOnlySpacesAfterPosition = /^[ ]+\n?$/.test(lineAfterPosition);
|
|
78
81
|
this.arrayPrefixIndentation = '';
|
|
79
82
|
let overwriteRange = null;
|
|
80
|
-
if (
|
|
83
|
+
if (areOnlySpacesAfterPosition) {
|
|
84
|
+
overwriteRange = Range.create(position, Position.create(position.line, lineContent.length));
|
|
85
|
+
const isOnlyWhitespace = lineContent.trim().length === 0;
|
|
86
|
+
const isOnlyDash = lineContent.match(/^\s*(-)\s*$/);
|
|
87
|
+
if (node && isScalar(node) && !isOnlyWhitespace && !isOnlyDash) {
|
|
88
|
+
// line contains part of a key with trailing spaces, adjust the overwrite range to include only the text
|
|
89
|
+
const matches = lineContent.match(/^([\s-]*)[^:]+[ \t]+\n?$/);
|
|
90
|
+
if (matches === null || matches === void 0 ? void 0 : matches.length) {
|
|
91
|
+
overwriteRange = Range.create(Position.create(position.line, matches[1].length), Position.create(position.line, lineContent.length));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (node && isScalar(node) && node.value === 'null') {
|
|
81
96
|
const nodeStartPos = document.positionAt(node.range[0]);
|
|
82
97
|
nodeStartPos.character += 1;
|
|
83
98
|
const nodeEndPos = document.positionAt(node.range[2]);
|
|
@@ -199,7 +214,6 @@ export class YamlCompletion {
|
|
|
199
214
|
if (this.customTags.length > 0) {
|
|
200
215
|
this.getCustomTagValueCompletions(collector);
|
|
201
216
|
}
|
|
202
|
-
let lineContent = textBuffer.getLineContent(position.line);
|
|
203
217
|
if (lineContent.endsWith('\n')) {
|
|
204
218
|
lineContent = lineContent.substr(0, lineContent.length - 1);
|
|
205
219
|
}
|
|
@@ -252,32 +266,8 @@ export class YamlCompletion {
|
|
|
252
266
|
foundByClosest = true;
|
|
253
267
|
}
|
|
254
268
|
}
|
|
255
|
-
|
|
269
|
+
const originalNode = node;
|
|
256
270
|
if (node) {
|
|
257
|
-
// when the value is null but the cursor is between prop name and null value (cursor is not at the end of the line)
|
|
258
|
-
if (isMap(node) && node.items.length && isPair(node.items[0])) {
|
|
259
|
-
const pairNode = node.items[0];
|
|
260
|
-
if (isScalar(pairNode.value) &&
|
|
261
|
-
isScalar(pairNode.key) &&
|
|
262
|
-
pairNode.value.value === null && // value is null
|
|
263
|
-
pairNode.key.range[2] < offset && // cursor is after colon
|
|
264
|
-
pairNode.value.range[0] > offset // cursor is before null
|
|
265
|
-
) {
|
|
266
|
-
node = pairNode.value;
|
|
267
|
-
overwriteRange.end.character += pairNode.value.range[2] - offset; // extend range to the end of the null element
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
// when the array item value is null but the cursor is between '-' and null value (cursor is not at the end of the line)
|
|
271
|
-
if (isSeq(node) && node.items.length && isScalar(node.items[0]) && lineContent.includes('-')) {
|
|
272
|
-
const nullNode = node.items[0];
|
|
273
|
-
if (nullNode.value === null && // value is null
|
|
274
|
-
nullNode.range[0] > offset // cursor is before null
|
|
275
|
-
) {
|
|
276
|
-
node = nullNode;
|
|
277
|
-
originalNode = node;
|
|
278
|
-
overwriteRange.end.character += nullNode.range[2] - offset; // extend range to the end of the null element
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
271
|
if (lineContent.length === 0) {
|
|
282
272
|
node = currentDoc.internalDocument.contents;
|
|
283
273
|
}
|
|
@@ -290,6 +280,7 @@ export class YamlCompletion {
|
|
|
290
280
|
if (parent.value === node) {
|
|
291
281
|
if (lineContent.trim().length > 0 && lineContent.indexOf(':') < 0) {
|
|
292
282
|
const map = this.createTempObjNode(currentWord, node, currentDoc);
|
|
283
|
+
const parentParent = currentDoc.getParent(parent);
|
|
293
284
|
if (isSeq(currentDoc.internalDocument.contents)) {
|
|
294
285
|
const index = indexOf(currentDoc.internalDocument.contents, parent);
|
|
295
286
|
if (typeof index === 'number') {
|
|
@@ -298,6 +289,11 @@ export class YamlCompletion {
|
|
|
298
289
|
currentDoc.internalDocument = currentDoc.internalDocument;
|
|
299
290
|
}
|
|
300
291
|
}
|
|
292
|
+
else if (parentParent && (isMap(parentParent) || isSeq(parentParent))) {
|
|
293
|
+
parentParent.set(parent.key, map);
|
|
294
|
+
// eslint-disable-next-line no-self-assign
|
|
295
|
+
currentDoc.internalDocument = currentDoc.internalDocument;
|
|
296
|
+
}
|
|
301
297
|
else {
|
|
302
298
|
currentDoc.internalDocument.set(parent.key, map);
|
|
303
299
|
// eslint-disable-next-line no-self-assign
|
|
@@ -433,7 +429,7 @@ export class YamlCompletion {
|
|
|
433
429
|
}
|
|
434
430
|
}
|
|
435
431
|
}
|
|
436
|
-
this.addPropertyCompletions(schema, currentDoc, node, originalNode, '', collector, textBuffer, overwriteRange);
|
|
432
|
+
this.addPropertyCompletions(schema, currentDoc, node, originalNode, '', collector, textBuffer, overwriteRange, doComplete);
|
|
437
433
|
if (!schema && currentWord.length > 0 && text.charAt(offset - currentWord.length - 1) !== '"') {
|
|
438
434
|
collector.add({
|
|
439
435
|
kind: CompletionItemKind.Property,
|
|
@@ -445,7 +441,7 @@ export class YamlCompletion {
|
|
|
445
441
|
}
|
|
446
442
|
// proposals for values
|
|
447
443
|
const types = {};
|
|
448
|
-
this.getValueCompletions(schema, currentDoc, node, offset, document, collector, types);
|
|
444
|
+
this.getValueCompletions(schema, currentDoc, node, offset, document, collector, types, doComplete);
|
|
449
445
|
}
|
|
450
446
|
catch (err) {
|
|
451
447
|
this.telemetry.sendError('yaml.completion.error', { error: convertErrorToTelemetryMsg(err) });
|
|
@@ -544,22 +540,23 @@ export class YamlCompletion {
|
|
|
544
540
|
map.items[0].value.range = node.range;
|
|
545
541
|
return map;
|
|
546
542
|
}
|
|
547
|
-
addPropertyCompletions(schema, doc, node, originalNode, separatorAfter, collector, textBuffer, overwriteRange) {
|
|
543
|
+
addPropertyCompletions(schema, doc, node, originalNode, separatorAfter, collector, textBuffer, overwriteRange, doComplete) {
|
|
548
544
|
var _a, _b;
|
|
549
|
-
const matchingSchemas = doc.getMatchingSchemas(schema.schema);
|
|
545
|
+
const matchingSchemas = doc.getMatchingSchemas(schema.schema, -1, null, doComplete);
|
|
550
546
|
const existingKey = textBuffer.getText(overwriteRange);
|
|
551
547
|
const lineContent = textBuffer.getLineContent(overwriteRange.start.line);
|
|
552
548
|
const hasOnlyWhitespace = lineContent.trim().length === 0;
|
|
553
549
|
const hasColon = lineContent.indexOf(':') !== -1;
|
|
550
|
+
const isInArray = lineContent.trimLeft().indexOf('-') === 0;
|
|
554
551
|
const nodeParent = doc.getParent(node);
|
|
555
552
|
const matchOriginal = matchingSchemas.find((it) => it.node.internalNode === originalNode && it.schema.properties);
|
|
556
553
|
for (const schema of matchingSchemas) {
|
|
557
|
-
if (((schema.node.internalNode === node && !matchOriginal) || schema.node.internalNode === originalNode) &&
|
|
554
|
+
if (((schema.node.internalNode === node && !matchOriginal) || (schema.node.internalNode === originalNode && !hasColon)) &&
|
|
558
555
|
!schema.inverted) {
|
|
559
556
|
this.collectDefaultSnippets(schema.schema, separatorAfter, collector, {
|
|
560
557
|
newLineFirst: false,
|
|
561
558
|
indentFirstObject: false,
|
|
562
|
-
shouldIndentWithTab:
|
|
559
|
+
shouldIndentWithTab: isInArray,
|
|
563
560
|
});
|
|
564
561
|
const schemaProperties = schema.schema.properties;
|
|
565
562
|
if (schemaProperties) {
|
|
@@ -685,7 +682,7 @@ export class YamlCompletion {
|
|
|
685
682
|
}
|
|
686
683
|
}
|
|
687
684
|
}
|
|
688
|
-
getValueCompletions(schema, doc, node, offset, document, collector, types) {
|
|
685
|
+
getValueCompletions(schema, doc, node, offset, document, collector, types, doComplete) {
|
|
689
686
|
let parentKey = null;
|
|
690
687
|
if (node && isScalar(node)) {
|
|
691
688
|
node = doc.getParent(node);
|
|
@@ -704,7 +701,7 @@ export class YamlCompletion {
|
|
|
704
701
|
}
|
|
705
702
|
if (node && (parentKey !== null || isSeq(node))) {
|
|
706
703
|
const separatorAfter = '';
|
|
707
|
-
const matchingSchemas = doc.getMatchingSchemas(schema.schema);
|
|
704
|
+
const matchingSchemas = doc.getMatchingSchemas(schema.schema, -1, null, doComplete);
|
|
708
705
|
for (const s of matchingSchemas) {
|
|
709
706
|
if (s.node.internalNode === node && !s.inverted && s.schema) {
|
|
710
707
|
if (s.schema.items) {
|
|
@@ -925,7 +922,7 @@ export class YamlCompletion {
|
|
|
925
922
|
if (arrayInsertLines.length > 1) {
|
|
926
923
|
for (let index = 1; index < arrayInsertLines.length; index++) {
|
|
927
924
|
const element = arrayInsertLines[index];
|
|
928
|
-
arrayInsertLines[index] =
|
|
925
|
+
arrayInsertLines[index] = ` ${element}`;
|
|
929
926
|
}
|
|
930
927
|
arrayTemplate = arrayInsertLines.join('\n');
|
|
931
928
|
}
|
|
@@ -1031,13 +1028,16 @@ export class YamlCompletion {
|
|
|
1031
1028
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1032
1029
|
getInsertTextForValue(value, separatorAfter, type) {
|
|
1033
1030
|
if (value === null) {
|
|
1034
|
-
|
|
1031
|
+
return 'null'; // replace type null with string 'null'
|
|
1035
1032
|
}
|
|
1036
1033
|
switch (typeof value) {
|
|
1037
1034
|
case 'object': {
|
|
1038
1035
|
const indent = this.indentation;
|
|
1039
1036
|
return this.getInsertTemplateForValue(value, indent, { index: 1 }, separatorAfter);
|
|
1040
1037
|
}
|
|
1038
|
+
case 'number':
|
|
1039
|
+
case 'boolean':
|
|
1040
|
+
return this.getInsertTextForPlainText(value + separatorAfter);
|
|
1041
1041
|
}
|
|
1042
1042
|
type = Array.isArray(type) ? type[0] : type;
|
|
1043
1043
|
if (type === 'string') {
|
|
@@ -1183,7 +1183,7 @@ export class YamlCompletion {
|
|
|
1183
1183
|
collector.add({
|
|
1184
1184
|
kind: this.getSuggestionKind(schema.type),
|
|
1185
1185
|
label: this.getLabelForValue(enm),
|
|
1186
|
-
insertText: this.getInsertTextForValue(enm, separatorAfter,
|
|
1186
|
+
insertText: this.getInsertTextForValue(enm, separatorAfter, schema.type),
|
|
1187
1187
|
insertTextFormat: InsertTextFormat.Snippet,
|
|
1188
1188
|
documentation: documentation,
|
|
1189
1189
|
});
|
|
@@ -1401,7 +1401,7 @@ function convertToStringValue(param) {
|
|
|
1401
1401
|
if (value.indexOf('"') !== -1) {
|
|
1402
1402
|
value = value.replace(doubleQuotesEscapeRegExp, '"');
|
|
1403
1403
|
}
|
|
1404
|
-
let doQuote = value.charAt(0) === '@';
|
|
1404
|
+
let doQuote = !isNaN(parseInt(value)) || value.charAt(0) === '@';
|
|
1405
1405
|
if (!doQuote) {
|
|
1406
1406
|
// need to quote value if in `foo: bar`, `foo : bar` (mapping) or `foo:` (partial map) format
|
|
1407
1407
|
// but `foo:bar` and `:bar` (colon without white-space after it) are just plain string
|