diff --git a/__tests__/core/__fixtures__/ComponentScriptSetup.vue b/__tests__/core/__fixtures__/ComponentScriptSetup.vue
new file mode 100644
index 0000000..f5f928d
--- /dev/null
+++ b/__tests__/core/__fixtures__/ComponentScriptSetup.vue
@@ -0,0 +1,10 @@
+
+ Hello world
+
+
+
diff --git a/__tests__/core/__snapshots__/vueScriptSetupExtractor.js.snap b/__tests__/core/__snapshots__/vueScriptSetupExtractor.js.snap
new file mode 100644
index 0000000..dd25df6
--- /dev/null
+++ b/__tests__/core/__snapshots__/vueScriptSetupExtractor.js.snap
@@ -0,0 +1,10 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`core.extractVueScript extract script 1`] = `
+"
+/**
+ * @vue-event {String} foo - Emit foo event
+ */
+ const emit = defineEmits(['foo'])
+"
+`;
diff --git a/__tests__/core/vueScriptSetupExtractor.js b/__tests__/core/vueScriptSetupExtractor.js
new file mode 100644
index 0000000..32f5905
--- /dev/null
+++ b/__tests__/core/vueScriptSetupExtractor.js
@@ -0,0 +1,10 @@
+const path = require('path');
+const extractVueScript = require('../../lib/core/vueScriptExtractor');
+
+describe('core.extractVueScript', () => {
+ const filename = path.join(__dirname, '__fixtures__', 'ComponentScriptSetup.vue');
+
+ test('extract script', () => {
+ expect(extractVueScript(filename)).toMatchSnapshot();
+ });
+});
diff --git a/lib/core/seekExportDefaultLine.js b/lib/core/seekExportDefaultLine.js
index 8bbe262..3e5ad53 100644
--- a/lib/core/seekExportDefaultLine.js
+++ b/lib/core/seekExportDefaultLine.js
@@ -18,6 +18,10 @@ module.exports = function seekExportDefaultLine(source, filename) {
if (inScript && /export\s+default/.test(line)) {
return i + 1; // index starts at 0, but file's lines start at 1
}
+
+ if (inScript && /