diff --git a/package.json b/package.json index d579c63b..a44fd3f4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vue-vine-workspace", "type": "module", "private": true, - "packageManager": "pnpm@10.13.1", + "packageManager": "pnpm@10.14.0", "description": "Yet another style to write Vue.js components", "author": "ShenQingchuan", "license": "MIT", diff --git a/packages/compiler/CHANGELOG.md b/packages/compiler/CHANGELOG.md index 23ba7905..e3bb25c4 100644 --- a/packages/compiler/CHANGELOG.md +++ b/packages/compiler/CHANGELOG.md @@ -1,5 +1,11 @@ # @vue-vine/compiler +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. + ## 1.7.1 ### Patch Changes diff --git a/packages/compiler/package.json b/packages/compiler/package.json index f2ac449b..840942eb 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -1,7 +1,7 @@ { "name": "@vue-vine/compiler", "type": "module", - "version": "1.7.1", + "version": "1.7.2", "description": "Compiler for Vue Vine", "author": "ShenQingchuan", "license": "MIT", diff --git a/packages/create-vue-vine/CHANGELOG.md b/packages/create-vue-vine/CHANGELOG.md index 8be5cebe..3e0a22fb 100644 --- a/packages/create-vue-vine/CHANGELOG.md +++ b/packages/create-vue-vine/CHANGELOG.md @@ -1,5 +1,11 @@ # create-vue-vine +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. + ## 1.7.1 ### Patch Changes diff --git a/packages/create-vue-vine/package.json b/packages/create-vue-vine/package.json index 00b2e49f..ef9e5252 100644 --- a/packages/create-vue-vine/package.json +++ b/packages/create-vue-vine/package.json @@ -1,7 +1,7 @@ { "name": "create-vue-vine", "type": "module", - "version": "1.7.1", + "version": "1.7.2", "description": "Official CLI for creating Vue Vine project.", "author": "ShenQingchuan", "license": "MIT", diff --git a/packages/create-vue-vine/template/common/package.json b/packages/create-vue-vine/template/common/package.json index 78dabc6c..3543585f 100644 --- a/packages/create-vue-vine/template/common/package.json +++ b/packages/create-vue-vine/template/common/package.json @@ -16,6 +16,6 @@ "devDependencies": { "@types/node": "^20.17.6", "vite": "^6.0.0", - "vue-vine": "^1.7.1" + "vue-vine": "^1.7.2" } } diff --git a/packages/create-vue-vine/template/config/ts/package.json b/packages/create-vue-vine/template/config/ts/package.json index 4a547fe8..08d0a59d 100644 --- a/packages/create-vue-vine/template/config/ts/package.json +++ b/packages/create-vue-vine/template/config/ts/package.json @@ -7,6 +7,6 @@ "devDependencies": { "npm-run-all": "^4.1.5", "typescript": "^5.6.3", - "vue-vine-tsc": "^1.7.1" + "vue-vine-tsc": "^1.7.2" } } diff --git a/packages/e2e-test/src/fixtures/key-cases.vine.ts b/packages/e2e-test/src/fixtures/key-cases.vine.ts index c3210ef6..c5d319b3 100644 --- a/packages/e2e-test/src/fixtures/key-cases.vine.ts +++ b/packages/e2e-test/src/fixtures/key-cases.vine.ts @@ -20,7 +20,7 @@ export function SampleOne() { const p1 = vineProp() vineOptions({ - name: 'ESLintErrsSample' + name: 'ESLintErrsSample', }) return vine` @@ -72,7 +72,7 @@ export function TestUnoCssAttributeMode() { const vBounce: Directive = { mounted(el) { el.classList.add('bounce') - } + }, } return vine` @@ -84,15 +84,18 @@ export function TestUnoCssAttributeMode() { // #endregion - // #region Fixtures for testing component reference & props check in VSCode export function TestCompOne() { /** @description zee is a string! */ const zee = vineProp() const foo = vineProp.withDefault(0) + const emits = vineEmits<{ + 'click:comp-one': [boolean] + }>() + return vine` -
This is Comp1
+
This is Comp1

foo: {{ foo }}

` } @@ -106,30 +109,33 @@ function TestCompTwo() { - + ` } // #endregion - // #region Test vineExpose and component ref function TargetComp(props: { foo: boolean }) { const count = ref(0) + const onClickCompOne = (foo: boolean) => { + console.log('onClickCompOne: ', foo) + } + watchEffect(() => { console.log('count: ', count.value) }) vineExpose({ - count + count, }) return vine`
Hello I'm target

count: {{ count }}

- + ` } @@ -148,7 +154,7 @@ export function TestCompRef() { // #region Test ESLint rule: no-v-for-key-on-child export function TestNoVforKeyOnChild() { - interface User { id: string; name: string } + interface User { id: string, name: string } const users = ref([]) return vine`
@@ -180,7 +186,7 @@ export async function TestNoLifecycleHookAfterAwait() { // #region Test generics on Vine component function export function TestGenericComp1( - props: Partial & { as: T } + props: Partial & { as: T }, ) { return vine` diff --git a/packages/language-server/CHANGELOG.md b/packages/language-server/CHANGELOG.md index 49adffb6..66d87bf8 100644 --- a/packages/language-server/CHANGELOG.md +++ b/packages/language-server/CHANGELOG.md @@ -1,5 +1,14 @@ # @vue-vine/language-server +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. +- Updated dependencies + - @vue-vine/compiler@1.7.2 + - @vue-vine/language-service@1.7.2 + ## 1.7.1 ### Patch Changes diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 081b5597..7ca13e62 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -1,7 +1,7 @@ { "name": "@vue-vine/language-server", "type": "module", - "version": "1.7.1", + "version": "1.7.2", "author": "Ray (@so1ve)", "license": "MIT", "homepage": "https://github.com/vue-vine/vue-vine#readme", diff --git a/packages/language-service/CHANGELOG.md b/packages/language-service/CHANGELOG.md index cbf6e34b..0bdd6827 100644 --- a/packages/language-service/CHANGELOG.md +++ b/packages/language-service/CHANGELOG.md @@ -1,5 +1,13 @@ # @vue-vine/language-service +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. +- Updated dependencies + - @vue-vine/compiler@1.7.2 + ## 1.7.1 ### Patch Changes diff --git a/packages/language-service/package.json b/packages/language-service/package.json index d8addb45..40d18837 100644 --- a/packages/language-service/package.json +++ b/packages/language-service/package.json @@ -1,7 +1,7 @@ { "name": "@vue-vine/language-service", "type": "module", - "version": "1.7.1", + "version": "1.7.2", "author": "ShenQingchuan", "license": "MIT", "homepage": "https://github.com/vue-vine/vue-vine#readme", diff --git a/packages/language-service/src/codegen.ts b/packages/language-service/src/codegen.ts index 6019838a..b8ae0121 100644 --- a/packages/language-service/src/codegen.ts +++ b/packages/language-service/src/codegen.ts @@ -15,6 +15,43 @@ import { _breakableTraverse, exitTraverse, VinePropsDefinitionBy } from '@vue-vi import { createLinkedCodeTag } from './injectTypes' import { parseCssClassNames, turnBackToCRLF, wrapWith } from './shared' +/** + * Convert emit event name to Vue component props name (on-prefixed camelCase) + * @param emit Original emit event name + * @returns Converted props name + * + * @example + * convertEmitToOnHandler('update:modelValue') // 'onUpdate:modelValue' + * convertEmitToOnHandler('my-event') // 'onMyEvent' + * convertEmitToOnHandler('custom_event') // 'onCustom_event' + */ +export function convertEmitToOnHandler(emit: string): string { + // Check if the emit name contains special characters that need to be quoted (colon, underscore, dot, etc., but not including hyphens) + const hasSpecialChars = /[:_.]/.test(emit) && !/^[a-z0-9\-]+$/i.test(emit) + + if (hasSpecialChars) { + // For complex property names, keep the original format, add only the on prefix and capitalize the first letter + const firstChar = emit.charAt(0).toUpperCase() + return `on${firstChar}${emit.slice(1)}` + } + else { + // For simple property names (including those with hyphens), perform camel case conversion + const camelCaseEmit = emit.replace(/-([a-z])/g, (_, c) => c.toUpperCase()) + return `on${camelCaseEmit.charAt(0).toUpperCase()}${camelCaseEmit.slice(1)}` + } +} + +/** + * Check if a property name needs to be quoted in object literal + * @param propName Property name to check + * @returns true if the property name needs quotes + */ +export function needsQuotes(propName: string): boolean { + // Check if property name is a valid JavaScript identifier + // If it contains special characters or starts with a number, it needs quotes + return !/^[a-z_$][\w$]*$/i.test(propName) +} + const FULL_FEATURES = { completion: true, format: true, @@ -121,20 +158,21 @@ export function generateEmitProps( ).filter(Boolean) ?? []) as string[] const emitParam = `{${vineCompFn.emits.map((emit) => { - // Convert `emit` to a camelCase Name - const camelCaseEmit = emit.replace(/-([a-z])/g, (_, c) => c.toUpperCase()) - const onEmit = `on${camelCaseEmit.charAt(0).toUpperCase()}${camelCaseEmit.slice(1)}` + const onEmit = convertEmitToOnHandler(emit) const isOptional = ( vineCompFn.emitsDefinitionByNames || (emitsOptionalKeys.length && emitsOptionalKeys.includes(emit)) ) + // Check if the property name needs quotes in object literal + const quotedPropName = needsQuotes(onEmit) ? `'${onEmit}'` : onEmit + return `\n${' '.repeat(tabNum + 2)}${ // '/* left linkCodeTag here ... */' vineCompFn.emitsTypeParam ? createLinkedCodeTag('left', onEmit.length) : '' - }${onEmit}${isOptional ? '?' : '' + }${quotedPropName}${isOptional ? '?' : '' }: __VLS_VINE_${vineCompFn.fnName}_emits__['${emit}']` }).filter(Boolean).join(', ') }\n}` diff --git a/packages/language-service/src/virtual-code.ts b/packages/language-service/src/virtual-code.ts index bf607152..1e0de596 100644 --- a/packages/language-service/src/virtual-code.ts +++ b/packages/language-service/src/virtual-code.ts @@ -34,6 +34,9 @@ function getLinkedCodeMappings(tsCode: string): Mapping[] { for (let i = 0; i < linkedCodeLeftFounds.length; i++) { const foundLeft = linkedCodeLeftFounds[i] const foundRight = linkedCodeRightFounds[i] + if (!foundLeft || !foundRight) { + continue + } const start = foundLeft.index + foundLeft.tagLength const end = foundRight.index + foundRight.tagLength diff --git a/packages/language-service/tests/__snapshots__/virtual-code.spec.ts.snap b/packages/language-service/tests/__snapshots__/virtual-code.spec.ts.snap index f6bd447c..a3779afa 100644 --- a/packages/language-service/tests/__snapshots__/virtual-code.spec.ts.snap +++ b/packages/language-service/tests/__snapshots__/virtual-code.spec.ts.snap @@ -312,7 +312,7 @@ const count = ref(0) const /* __LINKED_CODE_RIGHT__#2 */p1 = vineProp() vineOptions({ - name: 'ESLintErrsSample' + name: 'ESLintErrsSample', }) @@ -553,7 +553,7 @@ type TestUnoCssAttributeMode_Props = Parameters[ const vBounce: Directive = { mounted(el) { el.classList.add('bounce') - } + }, } @@ -623,13 +623,18 @@ type __VLS_VINE_TestCompOne_props__ = { /* __LINKED_CODE_LEFT__#3 */foo?: number } +type __VLS_VINE_TestCompOne_emits__ = __VLS_NormalizeEmits<__VLS_VINE_VueDefineEmits<{ + 'click:comp-one': [boolean] + }>>; -// #endregion +// #endregion // #region Fixtures for testing component reference & props check in VSCode export function TestCompOne( - props: __VLS_VINE_VineComponentCommonProps & __VLS_VINE_TestCompOne_props__, + props: __VLS_VINE_VineComponentCommonProps & __VLS_VINE_TestCompOne_props__ & { + /* __LINKED_CODE_LEFT__#16 */'onClick:comp-one': __VLS_VINE_TestCompOne_emits__['click:comp-one'] +}, context: {}) { type TestCompOne_Props = Parameters[0]; @@ -638,12 +643,17 @@ type TestCompOne_Props = Parameters[0]; const /* __LINKED_CODE_RIGHT__#3 */zee = vineProp() const /* __LINKED_CODE_RIGHT__#3 */foo = vineProp.withDefault(0) + const emits = vineEmits<{ + 'click:comp-one': [boolean] + }>() + // --- Start: Template virtual code const __VLS_ctx = __VLS_VINE_CreateVineVLSCtx({ /* __LINKED_CODE_LEFT__#3 */zee: /* __LINKED_CODE_RIGHT__#3 */zee, /* __LINKED_CODE_LEFT__#3 */foo: /* __LINKED_CODE_RIGHT__#3 */foo, + /* __LINKED_CODE_LEFT__#5 */emits: /* __LINKED_CODE_RIGHT__#5 */emits, /* __LINKED_CODE_LEFT__#9 */onMounted: /* __LINKED_CODE_RIGHT__#9 */onMounted, /* __LINKED_CODE_LEFT__#3 */ref: /* __LINKED_CODE_RIGHT__#3 */ref, /* __LINKED_CODE_LEFT__#14 */useTemplateRef: /* __LINKED_CODE_RIGHT__#14 */useTemplateRef, @@ -675,6 +685,11 @@ const __VLS_components = { type __VLS_VINE_StyleScopedClasses = {}; __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({ +...{ onClick: (...[$event]) => { +__VLS_ctx.emits('click:comp-one', true); +// @ts-ignore +[emits,]; +}}, }); __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({ }); @@ -785,7 +800,6 @@ return vine\`\` as any as __VLS_VINE_VueVineComponent; } // #endregion - // #region Test vineExpose and component ref function TargetComp(props: __VLS_VINE_VineComponentCommonProps & { foo: boolean @@ -797,11 +811,15 @@ type TargetComp_Props = Parameters[0]; const count = ref(0) + const onClickCompOne = (foo: boolean) => { + console.log('onClickCompOne: ', foo) + } + watchEffect(() => { console.log('count: ', count.value) }) const __VLS_VINE_ComponentExpose__ = { - count + count, }; vineExpose(__VLS_VINE_ComponentExpose__) @@ -811,6 +829,7 @@ vineExpose(__VLS_VINE_ComponentExpose__) const __VLS_ctx = __VLS_VINE_CreateVineVLSCtx({ /* __LINKED_CODE_LEFT__#11 */TestCompOne: /* __LINKED_CODE_RIGHT__#11 */TestCompOne, /* __LINKED_CODE_LEFT__#5 */count: /* __LINKED_CODE_RIGHT__#5 */count, + /* __LINKED_CODE_LEFT__#14 */onClickCompOne: /* __LINKED_CODE_RIGHT__#14 */onClickCompOne, /* __LINKED_CODE_LEFT__#9 */onMounted: /* __LINKED_CODE_RIGHT__#9 */onMounted, /* __LINKED_CODE_LEFT__#3 */ref: /* __LINKED_CODE_RIGHT__#3 */ref, /* __LINKED_CODE_LEFT__#14 */useTemplateRef: /* __LINKED_CODE_RIGHT__#14 */useTemplateRef, @@ -858,13 +877,23 @@ const __VLS_0 = ({} as __VLS_WithComponent<'TestCompOne', __VLS_LocalComponents, TestCompOne; // @ts-ignore const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({ +...{ 'onClick:compOne': {} as any }, zee: "123", foo: (456), })); const __VLS_2 = __VLS_1({ +...{ 'onClick:compOne': {} as any }, zee: "123", foo: (456), }, ...__VLS_functionalComponentArgsRest(__VLS_1)); +let __VLS_4!: __VLS_ResolveEmits; +let __VLS_5!: __VLS_FunctionalComponentProps; +const __VLS_6: __VLS_NormalizeComponentEvent = ( +{ 'click:compOne': {} as any } as typeof __VLS_4, +{ 'onClick:compOne': (__VLS_ctx.onClickCompOne)}); +// @ts-ignore +[onClickCompOne,]; +var __VLS_3!: __VLS_FunctionalComponentCtx; type __VLS_Slots = {}; type __VLS_InheritedAttrs = {}; type __VLS_TemplateRefs = {}; @@ -977,7 +1006,7 @@ context: {}) { type TestNoVforKeyOnChild_Props = Parameters[0]; -interface User { id: string; name: string } +interface User { id: string, name: string } const users = ref([]) // --- Start: Template virtual code @@ -1119,7 +1148,7 @@ return vine\`\` as any as __VLS_VINE_VueVineComponent; // #region Test generics on Vine component function export function TestGenericComp1( - props: __VLS_VINE_VineComponentCommonProps & Partial & { as: T },context: {} + props: __VLS_VINE_VineComponentCommonProps & Partial & { as: T },context: {}, ) { type TestGenericComp1_Props = Parameters[0]; diff --git a/packages/language-service/tests/utils.spec.ts b/packages/language-service/tests/utils.spec.ts new file mode 100644 index 00000000..33b99208 --- /dev/null +++ b/packages/language-service/tests/utils.spec.ts @@ -0,0 +1,158 @@ +import { describe, expect, it } from 'vitest' +import { convertEmitToOnHandler, needsQuotes } from '../src/codegen' + +describe('convertEmitToOnHandler', () => { + describe('complex property names (containing special characters)', () => { + it('should handle emit names containing colons', () => { + expect(convertEmitToOnHandler('update:modelValue')).toBe('onUpdate:modelValue') + expect(convertEmitToOnHandler('update:something')).toBe('onUpdate:something') + expect(convertEmitToOnHandler('change:value')).toBe('onChange:value') + }) + + it('should handle emit names containing underscores', () => { + expect(convertEmitToOnHandler('custom_event')).toBe('onCustom_event') + expect(convertEmitToOnHandler('user_login')).toBe('onUser_login') + expect(convertEmitToOnHandler('data_change')).toBe('onData_change') + }) + + it('should handle emit names containing dots', () => { + expect(convertEmitToOnHandler('namespace.event')).toBe('onNamespace.event') + expect(convertEmitToOnHandler('module.action')).toBe('onModule.action') + }) + + it('should handle emit names containing double colons', () => { + expect(convertEmitToOnHandler('event::name')).toBe('onEvent::name') + expect(convertEmitToOnHandler('module::action')).toBe('onModule::action') + }) + + it('should handle emit names containing mixed special characters', () => { + expect(convertEmitToOnHandler('update:model_value')).toBe('onUpdate:model_value') + expect(convertEmitToOnHandler('change:data.value')).toBe('onChange:data.value') + expect(convertEmitToOnHandler('ns::event_name')).toBe('onNs::event_name') + }) + + it('should handle emit names starting with special characters', () => { + expect(convertEmitToOnHandler(':special')).toBe('on:special') + expect(convertEmitToOnHandler('_private')).toBe('on_private') + expect(convertEmitToOnHandler('.dotted')).toBe('on.dotted') + }) + }) + + describe('simple property names (only containing letters and numbers)', () => { + it('should handle simple emit names', () => { + expect(convertEmitToOnHandler('click')).toBe('onClick') + expect(convertEmitToOnHandler('change')).toBe('onChange') + expect(convertEmitToOnHandler('input')).toBe('onInput') + }) + + it('should handle emit names containing hyphens (camel case conversion)', () => { + expect(convertEmitToOnHandler('my-event')).toBe('onMyEvent') + expect(convertEmitToOnHandler('user-click')).toBe('onUserClick') + expect(convertEmitToOnHandler('data-change')).toBe('onDataChange') + }) + + it('should handle multiple hyphens in emit names', () => { + expect(convertEmitToOnHandler('very-long-event-name')).toBe('onVeryLongEventName') + expect(convertEmitToOnHandler('a-b-c-d')).toBe('onABCD') + }) + + it('should handle emit names containing numbers', () => { + expect(convertEmitToOnHandler('event1')).toBe('onEvent1') + expect(convertEmitToOnHandler('data2change')).toBe('onData2change') + expect(convertEmitToOnHandler('test123')).toBe('onTest123') + }) + + it('should handle mixed case emit names', () => { + expect(convertEmitToOnHandler('myEvent')).toBe('onMyEvent') + expect(convertEmitToOnHandler('DataChange')).toBe('onDataChange') + expect(convertEmitToOnHandler('userAction')).toBe('onUserAction') + }) + }) + + describe('edge cases', () => { + it('should handle empty strings', () => { + expect(convertEmitToOnHandler('')).toBe('on') + }) + + it('should handle single character emit names', () => { + expect(convertEmitToOnHandler('a')).toBe('onA') + expect(convertEmitToOnHandler('1')).toBe('on1') + expect(convertEmitToOnHandler(':')).toBe('on:') + expect(convertEmitToOnHandler('_')).toBe('on_') + }) + + it('should handle emit names containing only special characters', () => { + expect(convertEmitToOnHandler(':::')).toBe('on:::') + expect(convertEmitToOnHandler('___')).toBe('on___') + expect(convertEmitToOnHandler('...')).toBe('on...') + }) + + it('should handle long strings', () => { + const longEmit = 'very-very-very-long-event-name-with-many-words' + const expected = 'onVeryVeryVeryLongEventNameWithManyWords' + expect(convertEmitToOnHandler(longEmit)).toBe(expected) + }) + }) +}) + +describe('needsQuotes', () => { + describe('should return true for invalid JavaScript identifiers', () => { + it('should handle property names containing special characters', () => { + expect(needsQuotes('onUpdate:modelValue')).toBe(true) + expect(needsQuotes('onChange:value')).toBe(true) + expect(needsQuotes('onNamespace.event')).toBe(true) + expect(needsQuotes('onEvent::name')).toBe(true) + }) + + it('should handle property names starting with numbers', () => { + expect(needsQuotes('123invalid')).toBe(true) + expect(needsQuotes('1event')).toBe(true) + }) + + it('should handle property names with spaces', () => { + expect(needsQuotes('on event')).toBe(true) + expect(needsQuotes('my prop')).toBe(true) + }) + + it('should handle property names with other special characters', () => { + expect(needsQuotes('on-event')).toBe(true) // hyphen is not valid in identifier + expect(needsQuotes('on@event')).toBe(true) + expect(needsQuotes('on#event')).toBe(true) + expect(needsQuotes('on%event')).toBe(true) + }) + + it('should handle empty string', () => { + expect(needsQuotes('')).toBe(true) + }) + }) + + describe('should return false for valid JavaScript identifiers', () => { + it('should handle simple camelCase property names', () => { + expect(needsQuotes('onClick')).toBe(false) + expect(needsQuotes('onChange')).toBe(false) + expect(needsQuotes('onInput')).toBe(false) + expect(needsQuotes('onMyEvent')).toBe(false) + }) + + it('should handle property names starting with valid characters', () => { + expect(needsQuotes('onEvent')).toBe(false) + expect(needsQuotes('_private')).toBe(false) + expect(needsQuotes('$special')).toBe(false) + expect(needsQuotes('a')).toBe(false) + }) + + it('should handle property names with numbers (but not starting with)', () => { + expect(needsQuotes('onEvent1')).toBe(false) + expect(needsQuotes('data2change')).toBe(false) + expect(needsQuotes('test123')).toBe(false) + }) + + it('should handle property names with underscores and dollar signs', () => { + expect(needsQuotes('on_event')).toBe(false) + expect(needsQuotes('onCustom_event')).toBe(false) + expect(needsQuotes('$onEvent')).toBe(false) + expect(needsQuotes('_on_event_')).toBe(false) + expect(needsQuotes('$$private$$')).toBe(false) + }) + }) +}) diff --git a/packages/nuxt-module/CHANGELOG.md b/packages/nuxt-module/CHANGELOG.md index ac3d5d40..013f40cb 100644 --- a/packages/nuxt-module/CHANGELOG.md +++ b/packages/nuxt-module/CHANGELOG.md @@ -1,5 +1,13 @@ # @vue-vine/nuxt +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. +- Updated dependencies + - vue-vine@1.7.2 + ## 1.7.1 ### Patch Changes diff --git a/packages/nuxt-module/package.json b/packages/nuxt-module/package.json index f4e205f9..8e6d2cc2 100644 --- a/packages/nuxt-module/package.json +++ b/packages/nuxt-module/package.json @@ -1,7 +1,7 @@ { "name": "@vue-vine/nuxt", "type": "module", - "version": "1.7.1", + "version": "1.7.2", "description": "Nuxt module for Vue Vine", "author": "ShenQingchuan", "license": "MIT", diff --git a/packages/tsc/CHANGELOG.md b/packages/tsc/CHANGELOG.md index dd6b4058..74e41022 100644 --- a/packages/tsc/CHANGELOG.md +++ b/packages/tsc/CHANGELOG.md @@ -1,5 +1,13 @@ # vue-vine-tsc +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. +- Updated dependencies + - @vue-vine/language-service@1.7.2 + ## 1.7.1 ### Patch Changes diff --git a/packages/tsc/package.json b/packages/tsc/package.json index f3fb1a9a..b8309e42 100644 --- a/packages/tsc/package.json +++ b/packages/tsc/package.json @@ -1,6 +1,6 @@ { "name": "vue-vine-tsc", - "version": "1.7.1", + "version": "1.7.2", "description": "Command line typescript checker for Vue Vine", "author": "ShenQingchuan", "license": "MIT", diff --git a/packages/vite-plugin/CHANGELOG.md b/packages/vite-plugin/CHANGELOG.md index 954bc5a6..cd92f453 100644 --- a/packages/vite-plugin/CHANGELOG.md +++ b/packages/vite-plugin/CHANGELOG.md @@ -1,5 +1,13 @@ # @vue-vine/vite-plugin +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. +- Updated dependencies + - @vue-vine/compiler@1.7.2 + ## 1.7.1 ### Patch Changes diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index dc260b74..cce5ee18 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@vue-vine/vite-plugin", "type": "module", - "version": "1.7.1", + "version": "1.7.2", "description": "Official Vite plugin for Vue Vine", "author": "ShenQingchuan", "license": "MIT", diff --git a/packages/vscode-ext/CHANGELOG.md b/packages/vscode-ext/CHANGELOG.md index 6afffda4..0f528214 100644 --- a/packages/vscode-ext/CHANGELOG.md +++ b/packages/vscode-ext/CHANGELOG.md @@ -1,5 +1,11 @@ # vue-vine-extension +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. + ## 1.7.1 ### Patch Changes diff --git a/packages/vscode-ext/package.json b/packages/vscode-ext/package.json index 39ad2f03..2839ce69 100644 --- a/packages/vscode-ext/package.json +++ b/packages/vscode-ext/package.json @@ -2,7 +2,7 @@ "publisher": "ShenQingchuan", "name": "vue-vine-extension", "displayName": "Vue Vine", - "version": "1.7.1", + "version": "1.7.2", "private": true, "description": "Vue Vine extension for syntax highlight and language features", "repository": { diff --git a/packages/vue-vine/CHANGELOG.md b/packages/vue-vine/CHANGELOG.md index 5241c198..79712cb5 100644 --- a/packages/vue-vine/CHANGELOG.md +++ b/packages/vue-vine/CHANGELOG.md @@ -1,5 +1,13 @@ # vue-vine +## 1.7.2 + +### Patch Changes + +- Fix stablity issue of language service and improve virtual code for emit event names. +- Updated dependencies + - @vue-vine/vite-plugin@1.7.2 + ## 1.7.1 ### Patch Changes diff --git a/packages/vue-vine/package.json b/packages/vue-vine/package.json index 8eeb4d5d..2a546c2a 100644 --- a/packages/vue-vine/package.json +++ b/packages/vue-vine/package.json @@ -1,7 +1,7 @@ { "name": "vue-vine", "type": "module", - "version": "1.7.1", + "version": "1.7.2", "description": "Another style to write Vue.js", "author": "ShenQingchuan", "license": "MIT",