diff --git a/server/src/embeddedSupport/vueDocumentRegionParser.ts b/server/src/embeddedSupport/vueDocumentRegionParser.ts index e26b545fe2..00f4646b77 100644 --- a/server/src/embeddedSupport/vueDocumentRegionParser.ts +++ b/server/src/embeddedSupport/vueDocumentRegionParser.ts @@ -103,7 +103,7 @@ function scanTemplateRegion(scanner: Scanner, text: string): EmbeddedRegion | nu while (unClosedTemplate !== 0) { // skip parsing on non html syntax, just search terminator if (token === TokenType.AttributeValue && languageId !== 'vue-html') { - while (token !== TokenType.StartTagClose) { + while (![TokenType.StartTagClose, TokenType.StartTagSelfClose].includes(token)) { token = scanner.scan(); } start = scanner.getTokenEnd(); diff --git a/test/lsp/features/external/basic.test.ts b/test/lsp/features/external/basic.test.ts new file mode 100644 index 0000000000..0589ccf664 --- /dev/null +++ b/test/lsp/features/external/basic.test.ts @@ -0,0 +1,11 @@ +import { testCompletion } from '../../../completionHelper'; +import { position } from '../../../util'; +import { getDocUri } from '../../path'; + +describe('Should use external file in Vue SFC', () => { + const docUri = getDocUri('external/Foo.vue'); + + it('Should work fine when template self close', async () => { + await testCompletion(docUri, position(2, 0), ['