Skip to content

Commit 0b2e1d1

Browse files
authored
refactor(language-core): rename style related configurations for consistency (#5414)
1 parent eb31c4a commit 0b2e1d1

File tree

9 files changed

+32
-27
lines changed

9 files changed

+32
-27
lines changed

packages/language-core/lib/codegen/style/externalStylesheets.ts renamed to packages/language-core/lib/codegen/style/imports.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Code, Sfc, VueCodeInformation } from '../../types';
22
import { combineLastMapping, newLine } from '../utils';
33
import { wrapWith } from '../utils/wrapWith';
44

5-
export function* generateExternalStylesheets(
5+
export function* generateStyleImports(
66
style: Sfc['styles'][number]
77
): Generator<Code> {
88
const features: VueCodeInformation = {

packages/language-core/lib/codegen/style/modules.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { codeFeatures } from '../codeFeatures';
33
import type { ScriptCodegenOptions } from '../script';
44
import { endOfLine, newLine } from '../utils';
55
import { generateClassProperty } from './classProperty';
6-
import { generateExternalStylesheets } from './externalStylesheets';
6+
import { generateStyleImports } from './imports';
77

88
export function* generateStyleModules(
99
options: ScriptCodegenOptions
@@ -31,8 +31,8 @@ export function* generateStyleModules(
3131
yield `Record<string, string> & `;
3232
}
3333
yield `__VLS_PrettifyGlobal<{}`;
34-
if (options.vueCompilerOptions.resolveExternalStylesheets) {
35-
yield* generateExternalStylesheets(style);
34+
if (options.vueCompilerOptions.resolveStyleImports) {
35+
yield* generateStyleImports(style);
3636
}
3737
for (const className of style.classNames) {
3838
yield* generateClassProperty(

packages/language-core/lib/codegen/style/scopedClasses.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,25 @@ import type { ScriptCodegenOptions } from '../script';
33
import type { TemplateCodegenContext } from '../template/context';
44
import { endOfLine } from '../utils';
55
import { generateClassProperty } from './classProperty';
6-
import { generateExternalStylesheets } from './externalStylesheets';
6+
import { generateStyleImports } from './imports';
77

88
export function* generateStyleScopedClasses(
99
options: ScriptCodegenOptions,
1010
ctx: TemplateCodegenContext
1111
): Generator<Code> {
12-
const option = options.vueCompilerOptions.experimentalResolveStyleCssClasses;
12+
const option = options.vueCompilerOptions.resolveStyleClassNames;
1313
const styles = options.sfc.styles
1414
.map((style, i) => [style, i] as const)
15-
.filter(([style]) => option === 'always' || (option === 'scoped' && style.scoped));
15+
.filter(([style]) => option === true || (option === 'scoped' && style.scoped));
1616
if (!styles.length) {
1717
return;
1818
}
1919

2020
const firstClasses = new Set<string>();
2121
yield `type __VLS_StyleScopedClasses = {}`;
2222
for (const [style, i] of styles) {
23-
if (options.vueCompilerOptions.resolveExternalStylesheets) {
24-
yield* generateExternalStylesheets(style);
23+
if (options.vueCompilerOptions.resolveStyleImports) {
24+
yield* generateStyleImports(style);
2525
}
2626
for (const className of style.classNames) {
2727
if (firstClasses.has(className.text)) {

packages/language-core/lib/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ export interface VueCompilerOptions {
4444
inferTemplateDollarSlots: boolean;
4545
skipTemplateCodegen: boolean;
4646
fallthroughAttributes: boolean;
47-
resolveExternalStylesheets: boolean;
47+
resolveStyleImports: boolean;
48+
resolveStyleClassNames: boolean | 'scoped';
4849
fallthroughComponentNames: string[];
4950
dataAttributes: string[];
5051
htmlAttributes: string[];
@@ -68,7 +69,6 @@ export interface VueCompilerOptions {
6869

6970
// experimental
7071
experimentalDefinePropProposal: 'kevinEdition' | 'johnsonEdition' | false;
71-
experimentalResolveStyleCssClasses: 'scoped' | 'always' | 'never';
7272
experimentalModelPropName: Record<string, Record<string, boolean | Record<string, string> | Record<string, string>[]>>;
7373

7474
// internal

packages/language-core/lib/utils/ts.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,8 @@ export function getDefaultCompilerOptions(target = 99, lib = 'vue', strictTempla
282282
inferTemplateDollarSlots: false,
283283
skipTemplateCodegen: false,
284284
fallthroughAttributes: false,
285-
resolveExternalStylesheets: false,
285+
resolveStyleImports: false,
286+
resolveStyleClassNames: 'scoped',
286287
fallthroughComponentNames: [
287288
'Transition',
288289
'KeepAlive',
@@ -309,7 +310,6 @@ export function getDefaultCompilerOptions(target = 99, lib = 'vue', strictTempla
309310
},
310311
plugins: [],
311312
experimentalDefinePropProposal: false,
312-
experimentalResolveStyleCssClasses: 'scoped',
313313
experimentalModelPropName: {
314314
'': {
315315
input: true

packages/language-core/schemas/vue-tsconfig.schema.json

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,23 @@
120120
"default": false,
121121
"markdownDescription": "Enable to support typed fallthrough attributes. Please note that enabling may significantly slow down type checking."
122122
},
123-
"resolveExternalStylesheets": {
123+
"resolveStyleImports": {
124124
"type": "boolean",
125125
"default": false,
126-
"markdownDescription": "https://github.com/vuejs/language-tools/pull/5136"
126+
"markdownDescription": "Enable to generate type imports for external CSS files by `<style src=\"...\">` or `@import \"...\"`.\n\nSee: https://github.com/vuejs/language-tools/pull/5136"
127+
},
128+
"resolveStyleClassNames": {
129+
"type": [
130+
"boolean",
131+
"string"
132+
],
133+
"default": "scoped",
134+
"enum": [
135+
true,
136+
false,
137+
"scoped"
138+
],
139+
"markdownDescription": "Enable to apply completions and document links for CSS class names used in templates."
127140
},
128141
"fallthroughComponentNames": {
129142
"type": "array",
@@ -179,14 +192,6 @@
179192
"default": [ ],
180193
"markdownDescription": "Plugins to be used in the SFC compiler."
181194
},
182-
"experimentalResolveStyleCssClasses": {
183-
"enum": [
184-
"scoped",
185-
"always",
186-
"never"
187-
],
188-
"markdownDescription": "https://github.com/vuejs/language-tools/issues/1038, https://github.com/vuejs/language-tools/issues/1121"
189-
},
190195
"experimentalModelPropName": {
191196
"type": "object",
192197
"default": {

packages/language-service/lib/plugins/vue-document-links.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ export function create(): LanguageServicePlugin {
3737
style: Sfc['styles'][number];
3838
classOffset: number;
3939
}[]>();
40-
const option = root.vueCompilerOptions.experimentalResolveStyleCssClasses;
40+
const option = root.vueCompilerOptions.resolveStyleClassNames;
4141

4242
for (let i = 0; i < sfc.styles.length; i++) {
4343
const style = sfc.styles[i];
44-
if (option === 'always' || (option === 'scoped' && style.scoped)) {
44+
if (option === true || (option === 'scoped' && style.scoped)) {
4545
for (const className of style.classNames) {
4646
if (!styleClasses.has(className.text.slice(1))) {
4747
styleClasses.set(className.text.slice(1), []);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"extends": "../../../tsconfig.base.json",
33
"vueCompilerOptions": {
4-
"resolveExternalStylesheets": true
4+
"resolveStyleImports": true
55
},
66
"include": [ "**/*" ]
77
}

test-workspace/tsc/passedFixtures/vue3/#3688/main.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- @experimentalResolveStyleCssClasses "always" -->
1+
<!-- @resolveStyleClassNames true -->
22

33
<template>
44
{{ () => {

0 commit comments

Comments
 (0)