From c85d8318af798284e7f66bd971cacdbe1c86fc79 Mon Sep 17 00:00:00 2001 From: Lyu Jason Date: Thu, 5 Aug 2021 09:11:58 +0800 Subject: [PATCH] fix import statment completion hack sourcemap --- .../processInstanceScriptContent.ts | 3 +- .../samples/import-equal/input.svelte | 4 +++ .../samples/import-equal/mappings.jsx | 30 +++++++++++++++++++ .../sourcemaps/samples/import-equal/test.jsx | 2 ++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 packages/svelte2tsx/test/sourcemaps/samples/import-equal/input.svelte create mode 100644 packages/svelte2tsx/test/sourcemaps/samples/import-equal/mappings.jsx create mode 100644 packages/svelte2tsx/test/sourcemaps/samples/import-equal/test.jsx diff --git a/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts b/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts index e578d6752..12bf31685 100644 --- a/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts +++ b/packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts @@ -14,6 +14,7 @@ import { handleTypeAssertion } from './nodes/handleTypeAssertion'; import { ImplicitStoreValues } from './nodes/ImplicitStoreValues'; import { Generics } from './nodes/Generics'; import { is$$SlotsDeclaration } from './nodes/slot'; +import { preprendStr } from '../utils/magic-string'; export interface InstanceScriptProcessResult { exportedNames: ExportedNames; @@ -291,7 +292,7 @@ export function processInstanceScriptContent( const end = node.getEnd() + astOffset; if (str.original[end - 1] !== ';') { - str.appendLeft(end, ';'); + preprendStr(str, end, ';'); } } diff --git a/packages/svelte2tsx/test/sourcemaps/samples/import-equal/input.svelte b/packages/svelte2tsx/test/sourcemaps/samples/import-equal/input.svelte new file mode 100644 index 000000000..7391b7148 --- /dev/null +++ b/packages/svelte2tsx/test/sourcemaps/samples/import-equal/input.svelte @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/packages/svelte2tsx/test/sourcemaps/samples/import-equal/mappings.jsx b/packages/svelte2tsx/test/sourcemaps/samples/import-equal/mappings.jsx new file mode 100644 index 000000000..c0a9c2823 --- /dev/null +++ b/packages/svelte2tsx/test/sourcemaps/samples/import-equal/mappings.jsx @@ -0,0 +1,30 @@ +/// +//---------------------------------------------------------------------------------------------------------------------------------------------------- +<>;function render() { {/** +=# Originless mappings +<>;function•render()•{↲ [generated] line 2 + < s +↲ [original] line 1 (rest generated at line 3) +------------------------------------------------------------------------------------------------------------------------------------------------------ */} + {/** +↲ [generated] line 3 + ↲ + [original] line 4 +------------------------------------------------------------------------------------------------------------------------------------------------------ */} +() => (<>); +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/sourcemaps/samples/import-equal/test.jsx b/packages/svelte2tsx/test/sourcemaps/samples/import-equal/test.jsx new file mode 100644 index 000000000..1e7354a2b --- /dev/null +++ b/packages/svelte2tsx/test/sourcemaps/samples/import-equal/test.jsx @@ -0,0 +1,2 @@ +/** tested-ranges: [] */ +/** origin-hash: 2qcima */ \ No newline at end of file