diff --git a/src/utils/vue.ts b/src/utils/vue.ts index 1146c441..c1bd6f09 100644 --- a/src/utils/vue.ts +++ b/src/utils/vue.ts @@ -50,7 +50,7 @@ export function isVueEventBinding(name: string): boolean { * @returns `true` if `name` passes the vue expression check, otherwise `false`. */ export function isVueExpression(name: string): boolean { - return /^((v-(bind|slot))?:|v-(model|if|for|else-if|text|html)).*/.test(name); + return /^((v-(bind|slot))?:|v-(model|slot|if|for|else-if|text|html)).*/.test(name); } /** diff --git a/tests/issues/issue-180/formatted.pug b/tests/issues/issue-180/formatted.pug new file mode 100644 index 00000000..607ae50f --- /dev/null +++ b/tests/issues/issue-180/formatted.pug @@ -0,0 +1,7 @@ +v-slide-group(v-model="model") + v-slide-item(v-slot="{ active, toggle }") + v-card + //- ... + v-slide-item(v-slot="{ active, toggle }") + v-card + //- ... diff --git a/tests/issues/issue-180/issue-180.test.ts b/tests/issues/issue-180/issue-180.test.ts new file mode 100644 index 00000000..b30544ea --- /dev/null +++ b/tests/issues/issue-180/issue-180.test.ts @@ -0,0 +1,14 @@ +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import { format } from 'prettier'; +import { plugin } from './../../../src/index'; + +describe('Issues', () => { + test('should handle v-slot expression', () => { + const expected: string = readFileSync(resolve(__dirname, 'formatted.pug'), 'utf8'); + const code: string = readFileSync(resolve(__dirname, 'unformatted.pug'), 'utf8'); + const actual: string = format(code, { parser: 'pug', plugins: [plugin] }); + + expect(actual).toBe(expected); + }); +}); diff --git a/tests/issues/issue-180/unformatted.pug b/tests/issues/issue-180/unformatted.pug new file mode 100644 index 00000000..1196e91f --- /dev/null +++ b/tests/issues/issue-180/unformatted.pug @@ -0,0 +1,7 @@ +v-slide-group(v-model="model") + v-slide-item(v-slot="{ active , toggle }") + v-card + //- ... + v-slide-item(v-slot="{ active, toggle }") + v-card + //- ...