Skip to content

Commit 0a25c4c

Browse files
committed
fix(language-core): combine dollar variable keys from the upper level interface
partial-revert #5185
1 parent e36b3f0 commit 0a25c4c

File tree

4 files changed

+7
-39
lines changed

4 files changed

+7
-39
lines changed

packages/language-core/lib/codegen/template/index.ts

+1-9
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ export interface TemplateCodegenOptions {
2121
hasDefineSlots?: boolean;
2222
slotsAssignName?: string;
2323
propsAssignName?: string;
24-
slotsReferenceNames: Set<string>;
25-
attrsReferenceNames: Set<string>;
2624
inheritAttrs: boolean;
2725
selfComponentName?: string;
2826
}
@@ -36,12 +34,6 @@ export function* generateTemplate(options: TemplateCodegenOptions): Generator<Co
3634
if (options.propsAssignName) {
3735
ctx.addLocalVariable(options.propsAssignName);
3836
}
39-
for (const name of options.slotsReferenceNames) {
40-
ctx.addLocalVariable(name);
41-
}
42-
for (const name of options.attrsReferenceNames) {
43-
ctx.addLocalVariable(name);
44-
}
4537
const slotsPropertyName = getSlotsPropertyName(options.vueCompilerOptions.target);
4638
ctx.specialVars.add(slotsPropertyName);
4739
ctx.specialVars.add('$attrs');
@@ -64,7 +56,7 @@ export function* generateTemplate(options: TemplateCodegenOptions): Generator<Co
6456
for (const [name, type] of speicalTypes) {
6557
yield `${name}: ${type}${endOfLine}`;
6658
}
67-
yield `} & { [K in keyof typeof __VLS_ctx]: unknown }${endOfLine}`;
59+
yield `} & { [K in keyof import('${options.vueCompilerOptions.lib}').ComponentPublicInstance]: unknown }${endOfLine}`;
6860

6961
yield* ctx.generateAutoImportCompletion();
7062
return ctx;

packages/language-core/lib/codegen/template/slotOutlet.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ export function* generateSlotOutlet(
8080
else {
8181
yield* wrapWith(
8282
startTagOffset,
83-
startTagEndOffset,
83+
startTagEndOffset,
8484
ctx.codeFeatures.verification,
8585
`${options.slotsAssignName ?? '__VLS_slots'}[`,
8686
...wrapWith(
8787
startTagOffset,
88-
startTagEndOffset,
88+
startTagEndOffset,
8989
ctx.codeFeatures.verification,
9090
`'default'`
9191
),

packages/language-core/lib/parsers/scriptSetupRanges.ts

+4-8
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,11 @@ type DefineOptions = {
5454
inheritAttrs?: string;
5555
};
5656

57-
type UseAttrs = CallExpressionRange & {
58-
name?: string;
59-
};
57+
type UseAttrs = CallExpressionRange;
6058

6159
type UseCssModule = CallExpressionRange;
6260

63-
type UseSlots = CallExpressionRange & {
64-
name?: string;
65-
};
61+
type UseSlots = CallExpressionRange;
6662

6763
type UseTemplateRef = CallExpressionRange & {
6864
name?: string;
@@ -370,13 +366,13 @@ export function parseScriptSetupRanges(
370366
}
371367
}
372368
else if (vueCompilerOptions.composables.useAttrs.includes(callText)) {
373-
useAttrs.push(parseCallExpressionAssignment(node, parent));
369+
useAttrs.push(parseCallExpression(node));
374370
}
375371
else if (vueCompilerOptions.composables.useCssModule.includes(callText)) {
376372
useCssModule.push(parseCallExpression(node));
377373
}
378374
else if (vueCompilerOptions.composables.useSlots.includes(callText)) {
379-
useSlots.push(parseCallExpressionAssignment(node, parent));
375+
useSlots.push(parseCallExpression(node));
380376
}
381377
else if (
382378
vueCompilerOptions.composables.useTemplateRef.includes(callText)

packages/language-core/lib/plugins/vue-tsx.ts

-20
Original file line numberDiff line numberDiff line change
@@ -170,24 +170,6 @@ function createTsx(
170170
return value !== 'false';
171171
});
172172

173-
const getSetupSlotsReferenceName = computedSet(
174-
computed(() => {
175-
const newNames = new Set(
176-
getScriptSetupRanges()?.useSlots.map(({ name }) => name).filter(name => name !== undefined)
177-
);
178-
return newNames;
179-
})
180-
);
181-
182-
const getSetupAttrsReferenceName = computedSet(
183-
computed(() => {
184-
const newNames = new Set(
185-
getScriptSetupRanges()?.useAttrs.map(({ name }) => name).filter(name => name !== undefined)
186-
);
187-
return newNames;
188-
})
189-
);
190-
191173
const getComponentSelfName = computed(() => {
192174
const { exportDefault } = getScriptRanges() ?? {};
193175
if (sfc.script && exportDefault?.nameOption) {
@@ -221,8 +203,6 @@ function createTsx(
221203
hasDefineSlots: setupHasDefineSlots(),
222204
slotsAssignName: getSetupSlotsAssignName(),
223205
propsAssignName: getSetupPropsAssignName(),
224-
slotsReferenceNames: getSetupSlotsReferenceName(),
225-
attrsReferenceNames: getSetupAttrsReferenceName(),
226206
inheritAttrs: getSetupInheritAttrs(),
227207
selfComponentName: getComponentSelfName(),
228208
});

0 commit comments

Comments
 (0)