@volar/vue-typescript
Advanced tools
Comparing version
@@ -49,4 +49,4 @@ "use strict"; | ||
codeGen.addText(';\n'); | ||
codeGen.addText(`const __VLS_ctx = (await import('vue')).defineComponent({});\n`); | ||
codeGen.addText(`declare const __VLS_export: new () => typeof __VLS_scope & import('./__VLS_types').PickNotAny<InstanceType<typeof __VLS_ctx>, {}>;\n`); | ||
codeGen.addText(`const __VLS_component = (await import('vue')).defineComponent({});\n`); | ||
codeGen.addText(`declare const __VLS_export: new () => typeof __VLS_scope & import('./__VLS_types').PickNotAny<InstanceType<typeof __VLS_component>, {}>;\n`); | ||
codeGen.addText('export default __VLS_export;\n'); | ||
@@ -53,0 +53,0 @@ const file = { |
@@ -5,3 +5,3 @@ import * as templateGen from '@volar/vue-code-gen/out/generators/template'; | ||
import { VueCompilerOptions } from '../types'; | ||
import { useCssModuleClasses, useCssScopedClasses, useCssVars, VueLanguagePlugin } from '../sourceFile'; | ||
export default function (ts: typeof import('typescript/lib/tsserverlibrary'), cssModuleClasses: ReturnType<typeof useCssModuleClasses>, cssScopedClasses: ReturnType<typeof useCssScopedClasses>, templateCodeGens: ComputedRef<ReturnType<typeof templateGen['generate']> | undefined>, cssVars: ReturnType<typeof useCssVars>, scriptSetupRanges: ComputedRef<ReturnType<typeof parseScriptSetupRanges> | undefined>, scriptLang: ComputedRef<string>, compilerOptions: VueCompilerOptions, disableTemplateScript: boolean, useGlobalThisTypeInCtx: boolean): VueLanguagePlugin; | ||
import { useStyleCssClasses, useCssVars, VueLanguagePlugin } from '../sourceFile'; | ||
export default function (ts: typeof import('typescript/lib/tsserverlibrary'), cssModuleClasses: ReturnType<typeof useStyleCssClasses>, cssScopedClasses: ReturnType<typeof useStyleCssClasses>, templateCodeGens: ComputedRef<ReturnType<typeof templateGen['generate']> | undefined>, cssVars: ReturnType<typeof useCssVars>, scriptSetupRanges: ComputedRef<ReturnType<typeof parseScriptSetupRanges> | undefined>, scriptLang: ComputedRef<string>, compilerOptions: VueCompilerOptions, disableTemplateScript: boolean, useGlobalThisTypeInCtx: boolean): VueLanguagePlugin; |
@@ -43,3 +43,3 @@ "use strict"; | ||
writeImportTypes(); | ||
tsxCodeGen.addText(`declare var __VLS_ctx: ${useGlobalThisTypeInCtx ? 'typeof globalThis &' : ''} __VLS_types.PickNotAny<InstanceType<typeof __VLS_component>, {}> & {\n`); | ||
tsxCodeGen.addText(`declare var __VLS_ctx: ${useGlobalThisTypeInCtx ? 'typeof globalThis &' : ''} InstanceType<__VLS_types.PickNotAny<typeof __VLS_component, new () => {}>> & {\n`); | ||
/* CSS Module */ | ||
@@ -46,0 +46,0 @@ for (const cssModule of cssModuleClasses.value) { |
@@ -137,12 +137,8 @@ import { EmbeddedFileMappingData, TeleportMappingData, TextRange } from '@volar/vue-code-gen'; | ||
}; | ||
export declare function useCssModuleClasses(sfc: Sfc): ComputedRef<{ | ||
export declare function useStyleCssClasses(sfc: Sfc, condition: (style: Sfc['styles'][number]) => boolean): ComputedRef<{ | ||
style: (typeof sfc.styles)[number]; | ||
index: number; | ||
classNameRanges: TextRange[]; | ||
classNames: string[]; | ||
}[]>; | ||
export declare function useCssScopedClasses(sfc: Sfc, compilerOptions: VueCompilerOptions): ComputedRef<{ | ||
style: (typeof sfc.styles)[number]; | ||
index: number; | ||
classNameRanges: TextRange[]; | ||
}[]>; | ||
export declare function useCssVars(sfc: Sfc): ComputedRef<{ | ||
@@ -149,0 +145,0 @@ style: (typeof sfc.styles)[number]; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.useCssVars = exports.useCssScopedClasses = exports.useCssModuleClasses = exports.createSourceFile = void 0; | ||
exports.useCssVars = exports.useStyleCssClasses = exports.createSourceFile = void 0; | ||
const vue_code_gen_1 = require("@volar/vue-code-gen"); | ||
@@ -76,4 +76,8 @@ const refSugarRanges_1 = require("@volar/vue-code-gen/out/parsers/refSugarRanges"); | ||
}); | ||
const cssModuleClasses = useCssModuleClasses(sfc); | ||
const cssScopedClasses = useCssScopedClasses(sfc, vueCompilerOptions); | ||
const cssModuleClasses = useStyleCssClasses(sfc, style => !!style.module); | ||
const cssScopedClasses = useStyleCssClasses(sfc, style => { | ||
var _a; | ||
const setting = (_a = compilerOptions.experimentalResolveStyleCssClasses) !== null && _a !== void 0 ? _a : 'scoped'; | ||
return (setting === 'scoped' && style.scoped) || setting === 'always'; | ||
}); | ||
const templateCodeGens = (0, reactivity_1.computed)(() => { | ||
@@ -90,3 +94,3 @@ var _a, _b, _c, _d, _e, _f; | ||
experimentalSuppressInvalidJsxElementTypeErrors: (_d = vueCompilerOptions.experimentalSuppressInvalidJsxElementTypeErrors) !== null && _d !== void 0 ? _d : true, | ||
}, (_f = (_e = sfc.template) === null || _e === void 0 ? void 0 : _e.lang) !== null && _f !== void 0 ? _f : 'html', templateAstCompiled.value.ast, !!sfc.scriptSetup, Object.values(cssScopedClasses.value).map(map => Object.keys(map)).flat(), computedHtmlTemplate.value.mapping, { | ||
}, (_f = (_e = sfc.template) === null || _e === void 0 ? void 0 : _e.lang) !== null && _f !== void 0 ? _f : 'html', templateAstCompiled.value.ast, !!sfc.scriptSetup, Object.values(cssScopedClasses.value).map(style => style.classNames).flat(), computedHtmlTemplate.value.mapping, { | ||
getEmitCompletion: string_1.SearchTexts.EmitCompletion, | ||
@@ -123,3 +127,3 @@ getPropsCompletion: string_1.SearchTexts.PropsCompletion, | ||
const scriptLang = (0, reactivity_1.computed)(() => { | ||
return !sfc.script && !sfc.scriptSetup ? 'js' | ||
return !sfc.script && !sfc.scriptSetup ? 'ts' | ||
: sfc.scriptSetup && sfc.scriptSetup.lang !== 'js' ? sfc.scriptSetup.lang | ||
@@ -611,3 +615,3 @@ : sfc.script && sfc.script.lang !== 'js' ? sfc.script.lang | ||
exports.createSourceFile = createSourceFile; | ||
function useCssModuleClasses(sfc) { | ||
function useStyleCssClasses(sfc, condition) { | ||
return (0, reactivity_1.computed)(() => { | ||
@@ -617,7 +621,9 @@ const result = []; | ||
const style = sfc.styles[i]; | ||
if (style.module) { | ||
if (condition(style)) { | ||
const classNameRanges = [...(0, parseCssClassNames_1.parseCssClassNames)(style.content)]; | ||
result.push({ | ||
style: style, | ||
index: i, | ||
classNameRanges: [...(0, parseCssClassNames_1.parseCssClassNames)(style.content)], | ||
classNameRanges: classNameRanges, | ||
classNames: classNameRanges.map(range => style.content.substring(range.start + 1, range.end)), | ||
}); | ||
@@ -629,22 +635,3 @@ } | ||
} | ||
exports.useCssModuleClasses = useCssModuleClasses; | ||
function useCssScopedClasses(sfc, compilerOptions) { | ||
return (0, reactivity_1.computed)(() => { | ||
var _a; | ||
const result = []; | ||
const setting = (_a = compilerOptions.experimentalResolveStyleCssClasses) !== null && _a !== void 0 ? _a : 'scoped'; | ||
for (let i = 0; i < sfc.styles.length; i++) { | ||
const style = sfc.styles[i]; | ||
if ((setting === 'scoped' && style.scoped) || setting === 'always') { | ||
result.push({ | ||
style: style, | ||
index: i, | ||
classNameRanges: [...(0, parseCssClassNames_1.parseCssClassNames)(style.content)], | ||
}); | ||
} | ||
} | ||
return result; | ||
}); | ||
} | ||
exports.useCssScopedClasses = useCssScopedClasses; | ||
exports.useStyleCssClasses = useStyleCssClasses; | ||
function useCssVars(sfc) { | ||
@@ -651,0 +638,0 @@ return (0, reactivity_1.computed)(() => { |
{ | ||
"name": "@volar/vue-typescript", | ||
"version": "0.37.8", | ||
"version": "0.37.9", | ||
"main": "out/index.js", | ||
@@ -16,9 +16,9 @@ "license": "MIT", | ||
"devDependencies": { | ||
"@volar/pug-language-service": "0.37.8", | ||
"@volar/pug-language-service": "0.37.9", | ||
"typescript": "latest" | ||
}, | ||
"dependencies": { | ||
"@volar/code-gen": "0.37.8", | ||
"@volar/source-map": "0.37.8", | ||
"@volar/vue-code-gen": "0.37.8", | ||
"@volar/code-gen": "0.37.9", | ||
"@volar/source-map": "0.37.9", | ||
"@volar/vue-code-gen": "0.37.9", | ||
"@vue/compiler-sfc": "^3.2.37", | ||
@@ -30,3 +30,3 @@ "@vue/reactivity": "^3.2.37" | ||
}, | ||
"gitHead": "22fce979edb8cb2473ee46c2059b95611cf97e64" | ||
"gitHead": "56098c12f8af63604f4266bac7288a4d44f091ec" | ||
} |
112408
-0.44%2405
-0.7%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
Updated
Updated
Updated