From 937d41ba9ae1d58fcaf93c1ac26acf10abf4ebc9 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Thu, 2 Jun 2022 19:02:03 +0800 Subject: [PATCH] feat: improve slots auto-complete close #1251 --- .../vue-code-gen/src/generators/template.ts | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/vue-code-gen/src/generators/template.ts b/packages/vue-code-gen/src/generators/template.ts index 4182e5d71..2e3cb0ee5 100644 --- a/packages/vue-code-gen/src/generators/template.ts +++ b/packages/vue-code-gen/src/generators/template.ts @@ -1322,7 +1322,10 @@ export function generate( argRange, { vueTag: 'template', - capabilities: capabilitiesSet.slotName, + capabilities: { + ...capabilitiesSet.slotName, + completion: !!prop.arg, + }, }, false, ); @@ -1355,6 +1358,31 @@ export function generate( }, }); tsCodeGen.addText(`;\n`); + + if (isStatic && !prop.arg) { + + let offset = prop.loc.start.offset; + + if (prop.loc.source.startsWith('#')) + offset += '#'.length; + else if (prop.loc.source.startsWith('v-slot:')) + offset += 'v-slot:'.length; + + tsCodeGen.addText(varSlots); + tsCodeGen.addText(`['`); + writeCode( + '', + { start: offset, end: offset }, + SourceMaps.Mode.Offset, + { + vueTag: 'template', + capabilities: { + completion: true, + }, + }, + ); + tsCodeGen.addText(`'];\n`); + } } } }