diff --git a/packages/language-server/src/plugins/typescript/features/CodeActionsProvider.ts b/packages/language-server/src/plugins/typescript/features/CodeActionsProvider.ts index 11cafb8de..78104ae9f 100644 --- a/packages/language-server/src/plugins/typescript/features/CodeActionsProvider.ts +++ b/packages/language-server/src/plugins/typescript/features/CodeActionsProvider.ts @@ -118,6 +118,9 @@ export class CodeActionsProviderImpl implements CodeActionsProvider { } ) ).semi ?? true; + const documentUseLf = + document.getText().includes('\n') && !document.getText().includes('\r\n'); + const changes = lang.organizeImports( { fileName: tsDoc.filePath, @@ -125,6 +128,7 @@ export class CodeActionsProviderImpl implements CodeActionsProvider { skipDestructiveCodeActions }, { + newLineCharacter: documentUseLf ? '\n' : ts.sys.newLine, semicolons: useSemicolons ? ts.SemicolonPreference.Insert : ts.SemicolonPreference.Remove @@ -184,11 +188,16 @@ export class CodeActionsProviderImpl implements CodeActionsProvider { ); if (range.end.character > 0) { - const endLine = getLineAtPosition(range.start, document.getText()); - const isIndent = !endLine.substring(0, range.start.character).trim(); + const endLine = getLineAtPosition(range.end, document.getText()); + const isIndent = !endLine.substring(0, range.end.character).trim(); - if (isIndent && endLine.trim()) { - range.end.character = 0; + if (isIndent) { + const trimmedEndLine = endLine.trim(); + + // imports that would be removed by the next delete edit + if (trimmedEndLine && !trimmedEndLine.startsWith('import')) { + range.end.character = 0; + } } } diff --git a/packages/language-server/test/plugins/typescript/features/CodeActionsProvider.test.ts b/packages/language-server/test/plugins/typescript/features/CodeActionsProvider.test.ts index e78f48bed..6ec54e4d9 100644 --- a/packages/language-server/test/plugins/typescript/features/CodeActionsProvider.test.ts +++ b/packages/language-server/test/plugins/typescript/features/CodeActionsProvider.test.ts @@ -589,9 +589,7 @@ function test(useNewTransformation: boolean) { { edits: [ { - // eslint-disable-next-line max-len - newText: - "import A from './A';\n import { c } from './c';\n", + newText: "import { c } from './c';\n", range: { start: { line: 1, @@ -604,7 +602,7 @@ function test(useNewTransformation: boolean) { } }, { - newText: '', + newText: "import A from './A';\n", range: { start: { line: 6, @@ -666,20 +664,7 @@ function test(useNewTransformation: boolean) { edits: [ { newText: - "import { _,_d } from 'svelte-i18n';\n import { _e } from 'svelte-i18n1';\n", - range: { - end: { - character: 0, - line: 2 - }, - start: { - character: 2, - line: 1 - } - } - }, - { - newText: '', + "import { _d } from 'svelte-i18n';\n import { _e } from 'svelte-i18n1';\n", range: { end: { character: 2, @@ -917,6 +902,70 @@ function test(useNewTransformation: boolean) { assert.deepStrictEqual(codeActions, []); }); + it('organize imports aware of groups', async () => { + const { provider, document } = setup('organize-imports-group.svelte'); + + const codeActions = await provider.getCodeActions( + document, + Range.create(Position.create(1, 4), Position.create(1, 5)), + { + diagnostics: [], + only: [CodeActionKind.SourceOrganizeImports] + } + ); + + (codeActions[0]?.edit?.documentChanges?.[0])?.edits.forEach( + (edit) => (edit.newText = harmonizeNewLines(edit.newText)) + ); + + assert.deepStrictEqual(codeActions, [ + { + edit: { + documentChanges: [ + { + edits: [ + { + newText: + "import { } from 'svelte/transition';\n" + + " import { } from './codeaction-checkJs.svelte';\n", + range: { + end: { + character: 4, + line: 4 + }, + start: { + character: 4, + line: 3 + } + } + }, + { + newText: '', + range: { + end: { + character: 0, + line: 5 + }, + start: { + character: 4, + line: 4 + } + } + } + ], + textDocument: { + uri: getUri('organize-imports-group.svelte'), + version: null + } + } + ] + }, + kind: 'source.organizeImports', + title: 'Organize Imports' + } + ]); + }); + it('should do extract into const refactor', async () => { const { provider, document } = setup('codeactions.svelte'); diff --git a/packages/language-server/test/plugins/typescript/testfiles/code-actions/organize-imports-group.svelte b/packages/language-server/test/plugins/typescript/testfiles/code-actions/organize-imports-group.svelte new file mode 100644 index 000000000..88b9263fd --- /dev/null +++ b/packages/language-server/test/plugins/typescript/testfiles/code-actions/organize-imports-group.svelte @@ -0,0 +1,6 @@ + diff --git a/packages/svelte2tsx/src/svelte2tsx/index.ts b/packages/svelte2tsx/src/svelte2tsx/index.ts index 5073f1c4e..6d347a246 100644 --- a/packages/svelte2tsx/src/svelte2tsx/index.ts +++ b/packages/svelte2tsx/src/svelte2tsx/index.ts @@ -372,7 +372,8 @@ export function svelte2tsx( scriptTag, events, implicitStoreValues, - options.mode + options.mode, + /**hasModuleScripts */ !!moduleScriptTag ); uses$$props = uses$$props || res.uses$$props; uses$$restProps = uses$$restProps || res.uses$$restProps; diff --git a/packages/svelte2tsx/src/svelte2tsx/nodes/handleImportDeclaration.ts b/packages/svelte2tsx/src/svelte2tsx/nodes/handleImportDeclaration.ts index 258f7ca3f..e82f0a2f9 100644 --- a/packages/svelte2tsx/src/svelte2tsx/nodes/handleImportDeclaration.ts +++ b/packages/svelte2tsx/src/svelte2tsx/nodes/handleImportDeclaration.ts @@ -8,9 +8,23 @@ export function handleImportDeclaration( node: ts.ImportDeclaration, str: MagicString, astOffset: number, - scriptStart: number + scriptStart: number, + sourceFile: ts.SourceFile ) { + const scanner = ts.createScanner( + sourceFile.languageVersion, + /*skipTrivia*/ false, + sourceFile.languageVariant + ); + const comments = ts.getLeadingCommentRanges(node.getFullText(), 0) ?? []; + if ( + !comments.some((comment) => comment.hasTrailingNewLine) && + isNewGroup(sourceFile, node, scanner) + ) { + str.appendRight(node.getStart() + astOffset, '\n'); + } + for (const comment of comments) { const commentEnd = node.pos + comment.end + astOffset; str.move(node.pos + comment.pos + astOffset, commentEnd, scriptStart + 1); @@ -23,5 +37,34 @@ export function handleImportDeclaration( str.move(node.getStart() + astOffset, node.end + astOffset, scriptStart + 1); //add in a \n const originalEndChar = str.original[node.end + astOffset - 1]; + str.overwrite(node.end + astOffset - 1, node.end + astOffset, originalEndChar + '\n'); } + +/** + * adopted from https://github.com/microsoft/TypeScript/blob/6e0447fdf165b1cec9fc80802abcc15bd23a268f/src/services/organizeImports.ts#L111 + */ +function isNewGroup( + sourceFile: ts.SourceFile, + topLevelImportDecl: ts.ImportDeclaration, + scanner: ts.Scanner +) { + const startPos = topLevelImportDecl.getFullStart(); + const endPos = topLevelImportDecl.getStart(); + scanner.setText(sourceFile.text, startPos, endPos - startPos); + + let numberOfNewLines = 0; + while (scanner.getTokenPos() < endPos) { + const tokenKind = scanner.scan(); + + if (tokenKind === ts.SyntaxKind.NewLineTrivia) { + numberOfNewLines++; + + if (numberOfNewLines >= 2) { + return true; + } + } + } + + return false; +} diff --git a/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts b/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts index 6fe43bb10..7847d168f 100644 --- a/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts +++ b/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts @@ -38,7 +38,8 @@ export function processInstanceScriptContent( script: Node, events: ComponentEvents, implicitStoreValues: ImplicitStoreValues, - mode: 'ts' | 'tsx' | 'dts' + mode: 'ts' | 'tsx' | 'dts', + hasModuleScript: boolean ): InstanceScriptProcessResult { const htmlx = str.original; const scriptContent = htmlx.substring(script.content.start, script.content.end); @@ -284,7 +285,7 @@ export function processInstanceScriptContent( } if (ts.isImportDeclaration(node)) { - handleImportDeclaration(node, str, astOffset, script.start); + handleImportDeclaration(node, str, astOffset, script.start, tsAst); // Check if import is the event dispatcher events.checkIfImportIsEventDispatcher(node); @@ -376,7 +377,9 @@ export function processInstanceScriptContent( .filter(ts.isImportDeclaration) .sort((a, b) => a.end - b.end)[0]; if (firstImport) { - str.appendRight(firstImport.getStart() + astOffset, '\n'); + // ensure it's in a newline. + // if file has module script ensure an empty line to separate imports + str.appendRight(firstImport.getStart() + astOffset, '\n' + (hasModuleScript ? '\n' : '')); } if (mode === 'dts') { diff --git a/packages/svelte2tsx/test/sourcemaps/samples/large-sample-1/mappings.jsx b/packages/svelte2tsx/test/sourcemaps/samples/large-sample-1/mappings.jsx index 20f5b55f8..16d25dfa6 100644 --- a/packages/svelte2tsx/test/sourcemaps/samples/large-sample-1/mappings.jsx +++ b/packages/svelte2tsx/test/sourcemaps/samples/large-sample-1/mappings.jsx @@ -24,108 +24,117 @@ ;<>;↲ [generated] line 15 ;<> [generated] subset < -↲ [original] line 14 (rest generated at line 116) +↲ [original] line 14 (rest generated at line 119) ;<>;↲ [generated] line 15 ;↲ [generated] subset < < -↲ [original] line 109 (rest generated at line 118) +↲ [original] line 109 (rest generated at line 121) ------------------------------------------------------------------------------------------------------------------------------------------------------ */} () => (<> {/** ========# Originless mappings -()•=>•(<>↲ [generated] line 116 +()•=>•(<>↲ [generated] line 119 ↲ ↲ [original] line 14 (rest generated at line 15) ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** -↲ [generated] line 118 +↲ [generated] line 121 ↲ -↲ [original] line 109 (rest generated at line 115) +↲ [original] line 109 (rest generated at line 118) ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** -↲ [generated] line 120 +↲ [generated] line 123 ↲ ↲ [original] line 259 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** -↲ [generated] line 122 +↲ [generated] line 125 ↲ [original] line 261 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} @@ -276,32 +285,32 @@ s {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** - ╚↲ [generated] line 125 + ╚↲ [generated] line 128 ╚↲ ╚↲ ╚↲ [original] line 264 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** - ╚↲ [generated] line 126 + ╚↲ [generated] line 129 ╚↲ ╚↲ ╚↲ [original] line 265 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** - ╚↲ [generated] line 127 + ╚↲ [generated] line 130 ╚↲ ╚↲ ╚↲ [original] line 266 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** -↲ [generated] line 128 +↲ [generated] line 131 ↲ ↲ [original] line 267 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** -↲ [generated] line 130 +↲ [generated] line 133 ↲ [original] line 269 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} @@ -309,7 +318,7 @@ s
{/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */}
{/** - ╚↲ [generated] line 133 + ╚↲ [generated] line 136 ╚↲ ╚↲ ╚↲ [original] line 272 @@ -318,7 +327,7 @@ s
{/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** - ╚╚╚╚↲ [generated] line 136 + ╚╚╚╚↲ [generated] line 139 ╚╚╚╚↲ ╚╚╚╚↲ [original] line 275 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} @@ -326,13 +335,13 @@ s {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */}
{/** - ╚╚╚↲ [generated] line 139 + ╚╚╚↲ [generated] line 142 ╚╚╚↲ ╚╚╚↲ ╚╚╚↲ [original] line 278 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} { chapter.html} {/** - ╚╚╚╚{•chapter.html}↲ [generated] line 140 + ╚╚╚╚{•chapter.html}↲ [generated] line 143 ╚╚╚╚{ •chapter.html}↲ ╚╚╚╚{@html•chapter.html}↲ [original] line 279 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} @@ -340,24 +349,24 @@ s
{/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {(chapter.app_b) ? <> {/** - ╚╚╚╚╚{(chapter.app_b)•?•<>↲ [generated] line 143 + ╚╚╚╚╚{(chapter.app_b)•?•<>↲ [generated] line 146 ╚╚╚╚╚{ chapter.app_b} ↲ ╚╚╚╚╚{ chapter.app_b}↲ ╚╚╚╚╚{#if•chapter.app_b}↲ [original] line 282 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** - ╚╚╚╚╚╚↲ [generated] line 144 + ╚╚╚╚╚╚↲ [generated] line 147 ╚╚╚╚╚╚ [generated] subset ╚╚╚╚╚╚ ╚╚╚╚╚╚↲ [original] line 284 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} : <>} {/** - ╚╚╚╚╚•:•<>}↲ [generated] line 148 + ╚╚╚╚╚•:•<>}↲ [generated] line 151 ╚╚╚╚╚{ ↲ ╚╚╚╚╚{ ↲ ╚╚╚╚╚{/if}↲ [original] line 288 @@ -374,19 +383,19 @@ s {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {(selected.next) ? <> {/** - ╚╚╚╚╚{(selected.next)•?•<>↲ [generated] line 150 + ╚╚╚╚╚{(selected.next)•?•<>↲ [generated] line 153 ╚╚╚╚╚{ selected.next} ↲ ╚╚╚╚╚{ selected.next}↲ ╚╚╚╚╚{#if•selected.next}↲ [original] line 290 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** - ╚╚╚╚╚╚Next↲ [generated] line 151 + ╚╚╚╚╚╚Next↲ [generated] line 154 ╚╚╚╚╚╚Next↲ ╚╚╚╚╚╚Next↲ ╚╚╚╚╚╚Next↲ [original] line 291 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} : <>} {/** - ╚╚╚╚╚•:•<>}↲ [generated] line 152 + ╚╚╚╚╚•:•<>}↲ [generated] line 155 ╚╚╚╚╚{ ↲ ╚╚╚╚╚{ ↲ ╚╚╚╚╚{/if}↲ [original] line 292 @@ -403,7 +412,7 @@ s {/*Ωignore_startΩ*/new Repl({target: __sveltets_1_any(''), props: {'workersUrl':"workers", 'svelteUrl':svelteUrl, 'rollupUrl':rollupUrl, 'orientation':mobile ? 'columns' : 'rows', 'fixed':mobile, 'injectedJS':mapbox_setup, 'relaxed':true}})/*Ωignore_endΩ*/.$on('change', handle_change)}{/** - ╚╚╚/>{/*Ωignore_startΩ*/new•Repl({target:•__sveltets_1_any(''),•props:•{'workersUrl':"workers",•'svelteUrl':svelteUrl,•'rollupUrl':rollupUrl,•'orientation':mobile•?•'columns'•:•'rows',•'fixed':mobile,•'injectedJS':mapbox_setup,•'relaxed':true}})/*Ωignore_endΩ*/.$on('change',•handle_change)}↲ [generated] line 172 + ╚╚╚/>{/*Ωignore_startΩ*/new•Repl({target:•__sveltets_1_any(''),•props:•{'workersUrl':"workers",•'svelteUrl':svelteUrl,•'rollupUrl':rollupUrl,•'orientation':mobile•?•'columns'•:•'rows',•'fixed':mobile,•'injectedJS':mapbox_setup,•'relaxed':true}})/*Ωignore_endΩ*/.$on('change',•handle_change)}↲ [generated] line 175 on('change',•handle_change)} [generated] subset on: change= handle_change} on:change= handle_change} - ╚╚╚╚on:change={handle_change}↲ [original] line 309 (rest generated at line 169) + ╚╚╚╚on:change={handle_change}↲ [original] line 309 (rest generated at line 172) - ╚╚╚/>{/*Ωignore_startΩ*/new•Repl({target:•__sveltets_1_any(''),•props:•{'workersUrl':"workers",•'svelteUrl':svelteUrl,•'rollupUrl':rollupUrl,•'orientation':mobile•?•'columns'•:•'rows',•'fixed':mobile,•'injectedJS':mapbox_setup,•'relaxed':true}})/*Ωignore_endΩ*/.$on('change',•handle_change)}↲ [generated] line 172 + ╚╚╚/>{/*Ωignore_startΩ*/new•Repl({target:•__sveltets_1_any(''),•props:•{'workersUrl':"workers",•'svelteUrl':svelteUrl,•'rollupUrl':rollupUrl,•'orientation':mobile•?•'columns'•:•'rows',•'fixed':mobile,•'injectedJS':mapbox_setup,•'relaxed':true}})/*Ωignore_endΩ*/.$on('change',•handle_change)}↲ [generated] line 175 ╚╚╚/>{/*Ωignore_startΩ*/new•Repl({target:•__sveltets_1_any(''),•props:•{'workersUrl':"workers",•'svelteUrl':svelteUrl,•'rollupUrl':rollupUrl,•'orientation':mobile•?•'columns'•:•'rows',•'fixed':mobile,•'injectedJS':mapbox_setup,•'relaxed':true}})/*Ωignore_endΩ*/.$ ↲ [generated] subset ╚╚╚/> ↲ ╚╚╚/>↲ [original] line 312 @@ -448,25 +457,25 @@ s {/** ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {(mobile) ? <> {/** - ╚{(mobile)•?•<>↲ [generated] line 176 + ╚{(mobile)•?•<>↲ [generated] line 179 ╚{ mobile} ↲ ╚{ mobile}↲ ╚{#if•mobile}↲ [original] line 316 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} {/** - ╚╚↲ [generated] line 177 + ╚╚↲ [generated] line 180 ╚╚↲ ╚╚↲ ╚╚↲ [original] line 317 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} : <>} {/** - ╚•:•<>}↲ [generated] line 178 + ╚•:•<>}↲ [generated] line 181 ╚{ ↲ ╚{ ↲ ╚{/if}↲ [original] line 318 ------------------------------------------------------------------------------------------------------------------------------------------------------ */}
); {/** -
);↲ [generated] line 179 +
);↲ [generated] line 182
[original] line 319 ------------------------------------------------------------------------------------------------------------------------------------------------------ */} return { props: {slug: slug , chapter: chapter}, slots: {}, getters: {}, events: {} }} diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expected.tsx index ccafdc92d..b0718b9bc 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expected.tsx +++ b/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expected.tsx @@ -7,6 +7,7 @@ declare function __sveltets_1_createSvelteComponentTyped( export const foo = 'foo'; ; + import { createEventDispatcher } from 'svelte'; function render() { diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expectedv2.ts b/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expectedv2.ts index ccafdc92d..b0718b9bc 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expectedv2.ts +++ b/packages/svelte2tsx/test/svelte2tsx/samples/creates-dts/expectedv2.ts @@ -7,6 +7,7 @@ declare function __sveltets_1_createSvelteComponentTyped( export const foo = 'foo'; ; + import { createEventDispatcher } from 'svelte'; function render() { diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/expected.tsx new file mode 100644 index 000000000..78246dba1 --- /dev/null +++ b/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/expected.tsx @@ -0,0 +1,17 @@ +/// +<>; + import { } from 'svelte/action'; +;<>; + +import { } from 'svelte'; +function render() { + + +; +() => (<> + +); +return { props: {}, slots: {}, getters: {}, events: {} }} + +export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) { +} \ No newline at end of file diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/expectedv2.ts b/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/expectedv2.ts new file mode 100644 index 000000000..3a6f85117 --- /dev/null +++ b/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/expectedv2.ts @@ -0,0 +1,17 @@ +/// +; + import { } from 'svelte/action'; +;; + +import { } from 'svelte'; +function render() { + + +; +async () => { + +}; +return { props: {}, slots: {}, getters: {}, events: {} }} + +export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) { +} \ No newline at end of file diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/input.svelte b/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/input.svelte new file mode 100644 index 000000000..552511512 --- /dev/null +++ b/packages/svelte2tsx/test/svelte2tsx/samples/imports-module-instance/input.svelte @@ -0,0 +1,7 @@ + + + diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/imports/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/imports/expected.tsx index d87eb2b73..b9c610456 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/imports/expected.tsx +++ b/packages/svelte2tsx/test/svelte2tsx/samples/imports/expected.tsx @@ -1,6 +1,7 @@ /// <>; import { a as b } from "./test.svelte" + import * as c from "b.ts" function render() { diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/imports/expectedv2.ts b/packages/svelte2tsx/test/svelte2tsx/samples/imports/expectedv2.ts index 3729b1e60..acb68dcf6 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/imports/expectedv2.ts +++ b/packages/svelte2tsx/test/svelte2tsx/samples/imports/expectedv2.ts @@ -1,6 +1,7 @@ /// ; import { a as b } from "./test.svelte" + import * as c from "b.ts" function render() { diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expected.tsx index afb7bd22b..17f59ae8c 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expected.tsx +++ b/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expected.tsx @@ -3,6 +3,7 @@ import { SvelteComponentTyped } from "svelte" export const foo = 'foo'; ; + import Bar from './bar'; import { createEventDispatcher } from 'svelte'; function render() { diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expectedv2.ts b/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expectedv2.ts index afb7bd22b..17f59ae8c 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expectedv2.ts +++ b/packages/svelte2tsx/test/svelte2tsx/samples/ts-creates-dts/expectedv2.ts @@ -3,6 +3,7 @@ import { SvelteComponentTyped } from "svelte" export const foo = 'foo'; ; + import Bar from './bar'; import { createEventDispatcher } from 'svelte'; function render() {