diff --git a/packages/language-core/lib/plugins/file-md.ts b/packages/language-core/lib/plugins/file-md.ts index 561896c28d..31abec506a 100644 --- a/packages/language-core/lib/plugins/file-md.ts +++ b/packages/language-core/lib/plugins/file-md.ts @@ -54,6 +54,7 @@ const plugin: VueLanguagePlugin = () => { const sfc = parse(toString(codes)); if (sfc.descriptor.template) { + sfc.descriptor.template.lang = 'md'; transformRange(sfc.descriptor.template); } if (sfc.descriptor.script) { diff --git a/packages/language-core/lib/plugins/vue-template-html.ts b/packages/language-core/lib/plugins/vue-template-html.ts index cf193d3aba..f6c324ae9e 100644 --- a/packages/language-core/lib/plugins/vue-template-html.ts +++ b/packages/language-core/lib/plugins/vue-template-html.ts @@ -16,7 +16,7 @@ const plugin: VueLanguagePlugin = ({ modules }) => { compileSFCTemplate(lang, template, options) { - if (lang === 'html') { + if (lang === 'html' || lang === 'md') { const compiler = modules['@vue/compiler-dom']; diff --git a/packages/language-service/lib/plugins/vue-template.ts b/packages/language-service/lib/plugins/vue-template.ts index 50aa71449e..1b5c135ae8 100644 --- a/packages/language-service/lib/plugins/vue-template.ts +++ b/packages/language-service/lib/plugins/vue-template.ts @@ -35,16 +35,26 @@ export function create( }, }; }; - const baseServicePlugin = mode === 'pug' ? createPugService : createHtmlService; - const baseService = baseServicePlugin({ - getCustomData() { - return [ - ...customData, - ...extraCustomData, - ]; - }, - onDidChangeCustomData, - }); + const baseService = mode === 'pug' + ? createPugService({ + getCustomData() { + return [ + ...customData, + ...extraCustomData, + ]; + }, + onDidChangeCustomData, + }) + : createHtmlService({ + documentSelector: ['html', 'markdown'], + getCustomData() { + return [ + ...customData, + ...extraCustomData, + ]; + }, + onDidChangeCustomData, + }); return { name: `vue-template (${mode})`,