Skip to content

Commit d8802fc

Browse files
authored
feat: support build-flag for golang (#178)
1 parent 6c6f76b commit d8802fc

File tree

7 files changed

+10
-68
lines changed

7 files changed

+10
-68
lines changed

go.sum

Lines changed: 0 additions & 63 deletions
Large diffs are not rendered by default.

lang/collect/collect.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type CollectOption struct {
4747
NotNeedTest bool
4848
Excludes []string
4949
LoadByPackages bool
50+
BuildFlags []string
5051
}
5152

5253
type Collector struct {

lang/golang/parser/option.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ type Options struct {
2626
CollectComment bool
2727
NeedTest bool
2828
LoadByPackages bool
29+
BuildFlags []string
2930
}
3031

3132
// type Option func(options *Options)

lang/golang/parser/pkg.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,11 @@ func (p *GoParser) loadPackages(mod *Module, dir string, pkgPath PkgPath) (err e
182182
}
183183

184184
cfg := &packages.Config{
185-
Mode: baseOpts,
186-
Fset: fset,
187-
Dir: dir,
188-
Env: append(os.Environ(), "GOSUMDB=off"),
185+
Mode: baseOpts,
186+
Fset: fset,
187+
Dir: dir,
188+
Env: append(os.Environ(), "GOSUMDB=off"),
189+
BuildFlags: p.opts.BuildFlags,
189190
}
190191

191192
if p.opts.NeedTest {

lang/parse.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ func callGoParser(ctx context.Context, repoPath string, opts collect.CollectOpti
214214
goopts.LoadByPackages = true
215215
}
216216
goopts.Excludes = opts.Excludes
217+
goopts.BuildFlags = opts.BuildFlags
217218
p := parser.NewParser(repoPath, repoPath, goopts)
218219
repo, err := p.ParseRepo()
219220
if err != nil {

main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ Language Support:
188188
cmd.Flags().BoolVar(&opts.LoadByPackages, "load-by-packages", false, "Load packages one by one instead of all at once (only works for Go, uses more memory).")
189189
cmd.Flags().StringSliceVar(&opts.Excludes, "exclude", []string{}, "Files or directories to exclude from parsing (can be specified multiple times).")
190190
cmd.Flags().StringVar(&opts.RepoID, "repo-id", "", "Custom identifier for this repository (useful for multi-repo scenarios).")
191+
cmd.Flags().StringArrayVar(&opts.BuildFlags, "build-flag", []string{}, "Pass build flags to the Go parser (e.g. -tags=xxx).")
191192
cmd.Flags().StringVar(&opts.TSConfig, "tsconfig", "", "Path to tsconfig.json file for TypeScript project configuration.")
192193
cmd.Flags().StringSliceVar(&opts.TSSrcDir, "ts-src-dir", []string{}, "Additional TypeScript source directories (can be specified multiple times).")
193194

testdata/asts/localsession_g.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)