diff --git a/src/services/jsonCompletion.ts b/src/services/jsonCompletion.ts index 190defdf..61946ccd 100644 --- a/src/services/jsonCompletion.ts +++ b/src/services/jsonCompletion.ts @@ -289,6 +289,11 @@ export class JSONCompletion { propertyNameCompletionItem(schemaPropertyNames.enum[i], enumDescription, enumDetails, enumSortText); } } + if (schemaPropertyNames.examples) { + for (let i = 0; i < schemaPropertyNames.examples.length; i++) { + propertyNameCompletionItem(schemaPropertyNames.examples[i], undefined, undefined, undefined); + } + } if (schemaPropertyNames.const) { propertyNameCompletionItem(schemaPropertyNames.const, undefined, schemaPropertyNames.completionDetail, schemaPropertyNames.suggestSortText); } diff --git a/src/test/completion.test.ts b/src/test/completion.test.ts index 53c6adc8..b9bd3764 100644 --- a/src/test/completion.test.ts +++ b/src/test/completion.test.ts @@ -333,6 +333,12 @@ suite('JSON Completion', () => { enum: ['a', 'b'], enumSortTexts: ['2', '1'], }, + }, + examples: { + type: 'object', + propertyNames: { + examples: ['a', 'b'], + }, } } }; @@ -381,6 +387,12 @@ suite('JSON Completion', () => { { label: 'b', sortText: "1" }, ] }); + await testCompletionsFor('{"examples":{|}}', schema, { + items: [ + { label: 'a' }, + { label: 'b' }, + ] + }); }); test('Complete value with schema', async function () {