@@ -44,18 +44,24 @@ const resetFG = ansi.DefaultFG + "\033[m"
4444
4545// defaultPalette is the default recommended palette.
4646var defaultPalette = Palette {
47- EOLReset : resetFG ,
48- RoutineFirst : ansi .ColorCode ("magenta+b" ),
49- CreatedBy : ansi .LightBlack ,
50- Race : ansi .LightRed ,
51- Package : ansi .ColorCode ("default+b" ),
52- SrcFile : resetFG ,
53- FuncStdLib : ansi .Green ,
54- FuncStdLibExported : ansi .ColorCode ("green+b" ),
55- FuncMain : ansi .ColorCode ("yellow+b" ),
56- FuncOther : ansi .Red ,
57- FuncOtherExported : ansi .ColorCode ("red+b" ),
58- Arguments : resetFG ,
47+ EOLReset : resetFG ,
48+ RoutineFirst : ansi .ColorCode ("magenta+b" ),
49+ CreatedBy : ansi .LightBlack ,
50+ Race : ansi .LightRed ,
51+ Package : ansi .ColorCode ("default+b" ),
52+ SrcFile : resetFG ,
53+ FuncMain : ansi .ColorCode ("yellow+b" ),
54+ FuncLocationUnknown : ansi .Red ,
55+ FuncLocationUnknownExported : ansi .ColorCode ("red+b" ),
56+ FuncGoMod : ansi .Red ,
57+ FuncGoModExported : ansi .ColorCode ("red+b" ),
58+ FuncGOPATH : ansi .Red ,
59+ FuncGOPATHExported : ansi .ColorCode ("red+b" ),
60+ FuncGoPkg : ansi .Red ,
61+ FuncGoPkgExported : ansi .ColorCode ("red+b" ),
62+ FuncStdLib : ansi .Green ,
63+ FuncStdLibExported : ansi .ColorCode ("green+b" ),
64+ Arguments : resetFG ,
5965}
6066
6167func writeBucketsToConsole (out io.Writer , p * Palette , a * stack.Aggregated , pf pathFormat , needsEnv bool , filter , match * regexp.Regexp ) error {
@@ -200,6 +206,39 @@ func Main() error {
200206 forceColor := flag .Bool ("force-color" , false , "Forcibly enable coloring when with stdout is redirected" )
201207 // HTML only.
202208 html := flag .String ("html" , "" , "Output an HTML file" )
209+
210+ var out io.Writer = os .Stdout
211+ p := & defaultPalette
212+
213+ flag .CommandLine .Usage = func () {
214+ if * noColor && ! * forceColor {
215+ p = & Palette {}
216+ } else {
217+ out = colorable .NewColorableStdout ()
218+ }
219+ fmt .Fprintf (out , "Usage of %s:\n " , os .Args [0 ])
220+ flag .CommandLine .PrintDefaults ()
221+ fmt .Fprintf (out , "\n Legend:\n " )
222+ fmt .Fprintf (out , " Type Exported Private\n " )
223+ fmt .Fprintf (out , " main %smain.Foo()%s %smain.foo()%s\n " ,
224+ p .funcColor (stack .LocationUnknown , true , false ), p .EOLReset ,
225+ p .funcColor (stack .LocationUnknown , true , true ), p .EOLReset )
226+ fmt .Fprintf (out , " <unknown> %spkg.Foo()%s %spkg.foo()%s\n " ,
227+ p .funcColor (stack .LocationUnknown , false , false ), p .EOLReset ,
228+ p .funcColor (stack .LocationUnknown , false , true ), p .EOLReset )
229+ fmt .Fprintf (out , " go.mod %spkg.Foo()%s %spkg.foo()%s\n " ,
230+ p .funcColor (stack .GoMod , false , false ), p .EOLReset ,
231+ p .funcColor (stack .GoMod , false , true ), p .EOLReset )
232+ fmt .Fprintf (out , " $GOPATH/src %spkg.Foo()%s %spkg.foo()%s\n " ,
233+ p .funcColor (stack .GOPATH , false , false ), p .EOLReset ,
234+ p .funcColor (stack .GOPATH , false , true ), p .EOLReset )
235+ fmt .Fprintf (out , " $GOPATH/pkg/mod %spkg.Foo()%s %spkg.foo()%s\n " ,
236+ p .funcColor (stack .GoPkg , false , false ), p .EOLReset ,
237+ p .funcColor (stack .GoPkg , false , true ), p .EOLReset )
238+ fmt .Fprintf (out , " $GOROOT/src %spkg.Foo()%s %spkg.Foo()%s\n " ,
239+ p .funcColor (stack .Stdlib , false , false ), p .EOLReset ,
240+ p .funcColor (stack .Stdlib , false , true ), p .EOLReset )
241+ }
203242 flag .Parse ()
204243
205244 log .SetFlags (log .Lmicroseconds )
@@ -227,8 +266,6 @@ func Main() error {
227266 s = stack .AnyValue
228267 }
229268
230- var out io.Writer = os .Stdout
231- p := & defaultPalette
232269 if * html == "" {
233270 if * noColor && ! * forceColor {
234271 p = & Palette {}
0 commit comments