Add -json-errors

This commit is contained in:
gingerBill
2024-03-19 16:25:09 +00:00
parent 17cc7a2c5e
commit ba428fecdb
3 changed files with 110 additions and 15 deletions

View File

@@ -292,6 +292,7 @@ enum BuildFlagKind {
BuildFlag_WarningsAsErrors,
BuildFlag_TerseErrors,
BuildFlag_VerboseErrors,
BuildFlag_JsonErrors,
BuildFlag_ErrorPosStyle,
BuildFlag_MaxErrorCount,
@@ -480,6 +481,7 @@ gb_internal bool parse_build_flags(Array<String> args) {
add_flag(&build_flags, BuildFlag_WarningsAsErrors, str_lit("warnings-as-errors"), BuildFlagParam_None, Command_all);
add_flag(&build_flags, BuildFlag_TerseErrors, str_lit("terse-errors"), BuildFlagParam_None, Command_all);
add_flag(&build_flags, BuildFlag_VerboseErrors, str_lit("verbose-errors"), BuildFlagParam_None, Command_all);
add_flag(&build_flags, BuildFlag_JsonErrors, str_lit("json-errors"), BuildFlagParam_None, Command_all);
add_flag(&build_flags, BuildFlag_ErrorPosStyle, str_lit("error-pos-style"), BuildFlagParam_String, Command_all);
add_flag(&build_flags, BuildFlag_MaxErrorCount, str_lit("max-error-count"), BuildFlagParam_Integer, Command_all);
@@ -1184,6 +1186,10 @@ gb_internal bool parse_build_flags(Array<String> args) {
build_context.terse_errors = false;
break;
case BuildFlag_JsonErrors:
build_context.json_errors = true;
break;
case BuildFlag_ErrorPosStyle:
GB_ASSERT(value.kind == ExactValue_String);
@@ -1984,6 +1990,10 @@ gb_internal void print_show_help(String const arg0, String const &command) {
print_usage_line(2, "Prints a terse error message without showing the code on that line and the location in that line.");
print_usage_line(0, "");
print_usage_line(1, "-json-errors");
print_usage_line(2, "Prints the error messages as json to stderr.");
print_usage_line(0, "");
print_usage_line(1, "-error-pos-style:<string>");
print_usage_line(2, "Available options:");
print_usage_line(3, "-error-pos-style:unix file/path:45:3:");