}, SourceText: true, } if decorSpan != "" { start, end, err := parseSpan(decorSpan) if err != nil { return fmt.Errorf("invalid --span %q: %v", decorSpan, err) } req.Location.Kind = xpb.Location_SPAN req.Location.Start = start req.Location.End = end } logRequest(req) reply, err := xs.Decorations(ctx, req) if err != nil { return err } return displaySource(reply) }) cmdDecor = newCommand("decor", "[--format spec] [--dirty file] [--span span] <file-ticket>", "List a file's anchor decorations", func(flag *flag.FlagSet) { // TODO(schroederc): add option to look for dirty files based on file-ticket path and a directory root flag.StringVar(&dirtyFile, "dirty", "", "Send the given file as the dirty buffer for patching references") flag.StringVar(&refFormat, "format", "@edgeKind@\t@^line@:@^col@-@$line@:@$col@\t@nodeKind@\t@target@", `Format for each decoration result. Format Markers: @source@ -- ticket of anchor source node