From 4a79cf542179fefbda6f397fbee10cdb80aa5e40 Mon Sep 17 00:00:00 2001 From: eeelin <3581248+eeelin@users.noreply.github.com> Date: Tue, 27 Aug 2024 04:23:42 +0000 Subject: [PATCH 1/2] bzl gazelle support overwrite resolve --- gazelle/bzl/gazelle.go | 7 +++++++ gazelle/bzl/testdata/resolve_overwrite/BUILD.in | 8 ++++++++ .../bzl/testdata/resolve_overwrite/BUILD.out | 17 +++++++++++++++++ .../bzl/testdata/resolve_overwrite/WORKSPACE | 0 gazelle/bzl/testdata/resolve_overwrite/foo.bzl | 7 +++++++ .../testdata/resolve_overwrite/internal/BUILD | 7 +++++++ .../resolve_overwrite/internal/defs.bzl | 6 ++++++ 7 files changed, 52 insertions(+) create mode 100644 gazelle/bzl/testdata/resolve_overwrite/BUILD.in create mode 100644 gazelle/bzl/testdata/resolve_overwrite/BUILD.out create mode 100644 gazelle/bzl/testdata/resolve_overwrite/WORKSPACE create mode 100644 gazelle/bzl/testdata/resolve_overwrite/foo.bzl create mode 100644 gazelle/bzl/testdata/resolve_overwrite/internal/BUILD create mode 100644 gazelle/bzl/testdata/resolve_overwrite/internal/defs.bzl diff --git a/gazelle/bzl/gazelle.go b/gazelle/bzl/gazelle.go index 94c32e95..e5aa803f 100644 --- a/gazelle/bzl/gazelle.go +++ b/gazelle/bzl/gazelle.go @@ -152,6 +152,13 @@ func (*bzlLibraryLang) Resolve(c *config.Config, ix *resolve.RuleIndex, rc *repo deps := make([]string, 0, len(imports)) for _, imp := range imports { + + if l, ok := resolve.FindRuleWithOverride(c, resolve.ImportSpec{Lang: languageName, Imp: imp}, languageName); ok { + depLabel := l.Rel(from.Repo, from.Pkg) + deps = append(deps, depLabel.String()) + continue + } + impLabel, err := label.Parse(imp) if err != nil { log.Printf("%s: import of %q is invalid: %v", from.String(), imp, err) diff --git a/gazelle/bzl/testdata/resolve_overwrite/BUILD.in b/gazelle/bzl/testdata/resolve_overwrite/BUILD.in new file mode 100644 index 00000000..3b8de119 --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/BUILD.in @@ -0,0 +1,8 @@ +# Some comment to be preserved + +# gazelle:resolve starlark starlark //internal:defs.bzl //internal:defs_bzl + +filegroup( + name = "allfiles", + srcs = glob(["**"]), +) diff --git a/gazelle/bzl/testdata/resolve_overwrite/BUILD.out b/gazelle/bzl/testdata/resolve_overwrite/BUILD.out new file mode 100644 index 00000000..5f54f19b --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/BUILD.out @@ -0,0 +1,17 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +# Some comment to be preserved + +# gazelle:resolve starlark starlark //internal:defs.bzl //internal:defs_bzl + +filegroup( + name = "allfiles", + srcs = glob(["**"]), +) + +bzl_library( + name = "foo", + srcs = ["foo.bzl"], + visibility = ["//visibility:public"], + deps = ["//internal:defs_bzl"], +) diff --git a/gazelle/bzl/testdata/resolve_overwrite/WORKSPACE b/gazelle/bzl/testdata/resolve_overwrite/WORKSPACE new file mode 100644 index 00000000..e69de29b diff --git a/gazelle/bzl/testdata/resolve_overwrite/foo.bzl b/gazelle/bzl/testdata/resolve_overwrite/foo.bzl new file mode 100644 index 00000000..de044be0 --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/foo.bzl @@ -0,0 +1,7 @@ +""" +Doc string +""" + +load("//internal:defs.bzl", "deps") + +deps() diff --git a/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD b/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD new file mode 100644 index 00000000..29b4aeba --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD @@ -0,0 +1,7 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +bzl_library( + name = "deps_bzl", + srcs = ["deps.bzl"], + visibility = ["//:__subpackages__"], +) diff --git a/gazelle/bzl/testdata/resolve_overwrite/internal/defs.bzl b/gazelle/bzl/testdata/resolve_overwrite/internal/defs.bzl new file mode 100644 index 00000000..066b74d6 --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/internal/defs.bzl @@ -0,0 +1,6 @@ +""" +Simple deps +""" + +def deps(): + pass From 15419e4926a32c40003334c8b045e3955552efbb Mon Sep 17 00:00:00 2001 From: eeelin <3581248+eeelin@users.noreply.github.com> Date: Tue, 27 Aug 2024 04:40:14 +0000 Subject: [PATCH 2/2] fix typo --- gazelle/bzl/testdata/resolve_overwrite/internal/BUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD b/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD index 29b4aeba..5daf2005 100644 --- a/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD +++ b/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD @@ -1,7 +1,7 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") bzl_library( - name = "deps_bzl", - srcs = ["deps.bzl"], + name = "defs_bzl", + srcs = ["defs.bzl"], visibility = ["//:__subpackages__"], )