From d3d1bc08c01fd9178f48cf909d9d345500157260 Mon Sep 17 00:00:00 2001 From: Turiiya <34311583+ttytm@users.noreply.github.com> Date: Tue, 19 Mar 2024 10:31:03 +0100 Subject: [PATCH] fmt: fix formatting for imports of submodule from module `src` dir (#21060) --- vlib/v/fmt/fmt.v | 10 ++++++++-- .../tests/import_submod_from_vmodule_src_dir_keep.vv | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 vlib/v/fmt/tests/import_submod_from_vmodule_src_dir_keep.vv diff --git a/vlib/v/fmt/fmt.v b/vlib/v/fmt/fmt.v index 219301f58..b06af4d46 100644 --- a/vlib/v/fmt/fmt.v +++ b/vlib/v/fmt/fmt.v @@ -382,9 +382,15 @@ pub fn (mut f Fmt) imports(imports []ast.Import) { pub fn (f Fmt) imp_stmt_str(imp ast.Import) string { normalized_mod := if f.inside_vmodules { imp.source_name + } else if imp.mod.len == 0 { + imp.alias } else { - mod := if imp.mod.len == 0 { imp.alias } else { imp.mod } - mod.all_after('src.') // Ignore the 'src.' folder prefix since src/ folder is root of code + mod_last := imp.mod.all_after_last('.') + if imp.source_name == mod_last { + mod_last + } else { + imp.mod + } } is_diff := imp.alias != normalized_mod && !normalized_mod.ends_with('.' + imp.alias) mut imp_alias_suffix := if is_diff { ' as ${imp.alias}' } else { '' } diff --git a/vlib/v/fmt/tests/import_submod_from_vmodule_src_dir_keep.vv b/vlib/v/fmt/tests/import_submod_from_vmodule_src_dir_keep.vv new file mode 100644 index 000000000..d7bd9604b --- /dev/null +++ b/vlib/v/fmt/tests/import_submod_from_vmodule_src_dir_keep.vv @@ -0,0 +1 @@ +import foo.bar.src.baz -- 2.39.5