Skip to content

Commit 4718cc2

Browse files
authored
feat(language-core): introduce compileSFCStyle to provide style related infomation (#5548)
1 parent 2d51435 commit 4718cc2

22 files changed

+110
-86
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@ function* generateCssVars(options: ScriptCodegenOptions, ctx: TemplateCodegenCon
123123
}
124124
yield `// CSS variable injection ${newLine}`;
125125
for (const style of options.sfc.styles) {
126-
for (const cssBind of style.cssVars) {
126+
for (const binding of style.bindings) {
127127
yield* generateInterpolation(
128128
options,
129129
ctx,
130130
style.name,
131131
codeFeatures.all,
132-
cssBind.text,
133-
cssBind.offset,
132+
binding.text,
133+
binding.offset,
134134
);
135135
yield endOfLine;
136136
}

packages/language-core/lib/plugins.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import vueSfcCustomBlocks from './plugins/vue-sfc-customblocks';
77
import vueSfcScriptsFormat from './plugins/vue-sfc-scripts';
88
import vueSfcStyles from './plugins/vue-sfc-styles';
99
import vueSfcTemplate from './plugins/vue-sfc-template';
10+
import vueStyleCss from './plugins/vue-style-css';
1011
import vueTemplateHtmlPlugin from './plugins/vue-template-html';
1112
import vueTemplateInlineCssPlugin from './plugins/vue-template-inline-css';
1213
import vueTemplateInlineTsPlugin from './plugins/vue-template-inline-ts';
@@ -22,6 +23,7 @@ export function createPlugins(pluginContext: Parameters<VueLanguagePlugin>[0]) {
2223
useHtmlFilePlugin,
2324
vueRootTagsPlugin,
2425
vueScriptJsPlugin,
26+
vueStyleCss,
2527
vueTemplateHtmlPlugin,
2628
vueTemplateInlineCssPlugin,
2729
vueTemplateInlineTsPlugin,

packages/language-core/lib/plugins/file-html.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const langReg = /\blang\s*=\s*(['"]?)(\S*)\b\1/;
66

77
const plugin: VueLanguagePlugin = ({ vueCompilerOptions }) => {
88
return {
9-
version: 2.1,
9+
version: 2.2,
1010

1111
getLanguageId(fileName) {
1212
if (vueCompilerOptions.petiteVueExtensions.some(ext => fileName.endsWith(ext))) {

packages/language-core/lib/plugins/file-md.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const codeSnippetImportReg = /^\s*<<<\s*.+/gm;
1717

1818
const plugin: VueLanguagePlugin = ({ vueCompilerOptions }) => {
1919
return {
20-
version: 2.1,
20+
version: 2.2,
2121

2222
getLanguageId(fileName) {
2323
if (vueCompilerOptions.vitePressExtensions.some(ext => fileName.endsWith(ext))) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { parse } from '../utils/parseSfc';
33

44
const plugin: VueLanguagePlugin = ({ vueCompilerOptions }) => {
55
return {
6-
version: 2.1,
6+
version: 2.2,
77

88
getLanguageId(fileName) {
99
if (vueCompilerOptions.extensions.some(ext => fileName.endsWith(ext))) {

packages/language-core/lib/plugins/vue-root-tags.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { allCodeFeatures } from './shared';
44

55
const plugin: VueLanguagePlugin = () => {
66
return {
7-
version: 2.1,
7+
version: 2.2,
88

99
getEmbeddedCodes() {
1010
return [{

packages/language-core/lib/plugins/vue-script-js.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { VueLanguagePlugin } from '../types';
33

44
const plugin: VueLanguagePlugin = ({ modules }) => {
55
return {
6-
version: 2.1,
6+
version: 2.2,
77

88
compileSFCScript(lang, script) {
99
if (lang === 'js' || lang === 'ts' || lang === 'jsx' || lang === 'tsx') {

packages/language-core/lib/plugins/vue-sfc-customblocks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { allCodeFeatures } from './shared';
33

44
const plugin: VueLanguagePlugin = () => {
55
return {
6-
version: 2.1,
6+
version: 2.2,
77

88
getEmbeddedCodes(_fileName, sfc) {
99
return sfc.customBlocks.map((customBlock, i) => ({

packages/language-core/lib/plugins/vue-sfc-scripts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { VueLanguagePlugin } from '../types';
22

33
const plugin: VueLanguagePlugin = () => {
44
return {
5-
version: 2.1,
5+
version: 2.2,
66

77
getEmbeddedCodes(_fileName, sfc) {
88
const names: {

packages/language-core/lib/plugins/vue-sfc-styles.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { allCodeFeatures } from './shared';
33

44
const plugin: VueLanguagePlugin = () => {
55
return {
6-
version: 2.1,
6+
version: 2.2,
77

88
getEmbeddedCodes(_fileName, sfc) {
99
const result: {
@@ -17,7 +17,7 @@ const plugin: VueLanguagePlugin = () => {
1717
id: 'style_' + i,
1818
lang: style.lang,
1919
});
20-
if (style.cssVars.length) {
20+
if (style.bindings.length) {
2121
result.push({
2222
id: 'style_' + i + '_inline_ts',
2323
lang: 'ts',
@@ -34,13 +34,13 @@ const plugin: VueLanguagePlugin = () => {
3434
const style = sfc.styles[index];
3535
if (embeddedFile.id.endsWith('_inline_ts')) {
3636
embeddedFile.parentCodeId = 'style_' + index;
37-
for (const cssVar of style.cssVars) {
37+
for (const binding of style.bindings) {
3838
embeddedFile.content.push(
3939
'(',
4040
[
41-
cssVar.text,
41+
binding.text,
4242
style.name,
43-
cssVar.offset,
43+
binding.offset,
4444
allCodeFeatures,
4545
],
4646
');\n',

0 commit comments

Comments
 (0)