3838#include " bant/types-bazel.h"
3939#include " bant/types.h"
4040#include " bant/util/file-utils.h"
41+ #include " bant/util/grep-highlighter.h"
4142#include " bant/util/stat.h"
4243#include " bant/util/table-printer.h"
4344#include " bant/workspace.h"
@@ -84,8 +85,13 @@ enum class Command {
8485void PrintOneToN (bant::Session &session, const BazelTargetMatcher &pattern,
8586 const OneToN<BazelTarget, BazelTarget> &table,
8687 const std::string &header1, const std::string &header2) {
87- auto printer = TablePrinter::Create (
88- session.out (), session.flags ().output_format , {header1, header2});
88+ GrepHighlighter highlighter (session.flags ().do_color );
89+ highlighter.AddExpressions (session.flags ().grep_expressions ,
90+ session.flags ().regex_case_insesitive ,
91+ session.error ());
92+ auto printer =
93+ TablePrinter::Create (session.out (), session.flags ().output_format ,
94+ highlighter, {header1, header2});
8995 std::vector<std::string> repeat_print;
9096 for (const auto &d : table) {
9197 if (!pattern.Match (d.first )) continue ;
@@ -329,8 +335,14 @@ CliStatus RunCommand(Session &session, Command cmd,
329335 break ;
330336
331337 case Command::kListPackages : {
332- auto printer = TablePrinter::Create (
333- session.out (), session.flags ().output_format , {" bazel-file" , " package" });
338+ GrepHighlighter highlighter (session.flags ().do_color );
339+ highlighter.AddExpressions (session.flags ().grep_expressions ,
340+ session.flags ().regex_case_insesitive ,
341+ session.error ());
342+
343+ auto printer =
344+ TablePrinter::Create (session.out (), session.flags ().output_format ,
345+ highlighter, {" bazel-file" , " package" });
334346 for (const auto &[package, parsed] : project.ParsedFiles ()) {
335347 printer->AddRow ({std::string (parsed->name ()), package.ToString ()});
336348 }
@@ -339,9 +351,14 @@ CliStatus RunCommand(Session &session, Command cmd,
339351
340352 case Command::kListLeafs :
341353 case Command::kListTargets : {
354+ GrepHighlighter highlighter (session.flags ().do_color );
355+ highlighter.AddExpressions (session.flags ().grep_expressions ,
356+ session.flags ().regex_case_insesitive ,
357+ session.error ());
358+
342359 auto printer =
343360 TablePrinter::Create (session.out (), session.flags ().output_format ,
344- {" file-location" , " rule" , " target" });
361+ highlighter, {" file-location" , " rule" , " target" });
345362 for (const auto &[package, parsed] : project.ParsedFiles ()) {
346363 FindTargets (parsed->ast , {}, [&](const Result &target) {
347364 auto target_name =
0 commit comments