visit all errors option
parent
5d633df3ba
commit
bea36e9d9e
|
@ -261,8 +261,8 @@ default_keys(Bind_Helper *context){
|
|||
|
||||
bind(context, '.', MDFR_ALT, change_to_build_panel);
|
||||
bind(context, ',', MDFR_ALT, close_build_panel);
|
||||
bind(context, 'n', MDFR_ALT, goto_next_error);
|
||||
bind(context, 'N', MDFR_ALT, goto_prev_error);
|
||||
bind(context, 'n', MDFR_ALT, goto_next_error_no_skips);
|
||||
bind(context, 'N', MDFR_ALT, goto_prev_error_no_skips);
|
||||
bind(context, 'M', MDFR_ALT, goto_first_error);
|
||||
bind(context, 'm', MDFR_ALT, build_search);
|
||||
|
||||
|
|
|
@ -196,8 +196,8 @@ next_error(Application_Links *app,
|
|||
Partition *part,
|
||||
View_Summary *comp_out, int *start_line,
|
||||
Jump_Location *location,
|
||||
int direction,
|
||||
int skip_sub_errors,
|
||||
int direction,
|
||||
int *colon_char){
|
||||
|
||||
int result = false;
|
||||
|
@ -226,8 +226,23 @@ next_error(Application_Links *app,
|
|||
return(result);
|
||||
}
|
||||
|
||||
static Prev_Jump
|
||||
jump_location_store(Application_Links *app, Jump_Location loc){
|
||||
Prev_Jump result = {0};
|
||||
Buffer_Summary buffer =
|
||||
app->get_buffer_by_name(app, loc.file.str, loc.file.size, AccessAll);
|
||||
|
||||
if (buffer.exists){
|
||||
result.buffer_id = buffer.buffer_id;
|
||||
result.line = loc.line;
|
||||
}
|
||||
|
||||
return(result);
|
||||
}
|
||||
|
||||
static int
|
||||
seek_error(Application_Links *app, Partition *part, int direction, int skip_sub_errors, Jump_Location *loc){
|
||||
seek_error_internal(Application_Links *app, Partition *part,
|
||||
int skip_sub_errors, int dir, Jump_Location *loc){
|
||||
int result = false;
|
||||
|
||||
Jump_Location location = {0};
|
||||
|
@ -238,7 +253,7 @@ seek_error(Application_Links *app, Partition *part, int direction, int skip_sub_
|
|||
|
||||
int colon_char = 0;
|
||||
if (next_error(app, part, &view, &line, &location,
|
||||
skip_sub_errors, direction, &colon_char)){
|
||||
skip_sub_errors, dir, &colon_char)){
|
||||
|
||||
View_Summary active_view = app->get_active_view(app, AccessAll);
|
||||
if (active_view.view_id == view.view_id){
|
||||
|
@ -254,23 +269,11 @@ seek_error(Application_Links *app, Partition *part, int direction, int skip_sub_
|
|||
}
|
||||
}
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
|
||||
static Prev_Jump
|
||||
jump_location_store(Application_Links *app, Jump_Location loc){
|
||||
Prev_Jump result = {0};
|
||||
Buffer_Summary buffer =
|
||||
app->get_buffer_by_name(app, loc.file.str, loc.file.size, AccessAll);
|
||||
|
||||
if (buffer.exists){
|
||||
result.buffer_id = buffer.buffer_id;
|
||||
result.line = loc.line;
|
||||
}
|
||||
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
skip_this_jump(Prev_Jump prev, Prev_Jump jump){
|
||||
int result = false;
|
||||
|
@ -289,7 +292,7 @@ seek_error_skip_repeats(Application_Links *app, Partition *part,
|
|||
Prev_Jump jump = {0};
|
||||
do{
|
||||
Temp_Memory temp = begin_temp_memory(part);
|
||||
if (seek_error(app, part, skip_sub_error, dir, &location)){
|
||||
if (seek_error_internal(app, part, skip_sub_error, dir, &location)){
|
||||
jump = jump_location_store(app, location);
|
||||
result = true;
|
||||
}
|
||||
|
@ -303,6 +306,27 @@ seek_error_skip_repeats(Application_Links *app, Partition *part,
|
|||
return(result);
|
||||
}
|
||||
|
||||
static int
|
||||
seek_error(Application_Links *app, Partition *part,
|
||||
int skip_sub_error, int dir){
|
||||
int result = true;
|
||||
Jump_Location location = {0};
|
||||
Prev_Jump jump = {0};
|
||||
|
||||
Temp_Memory temp = begin_temp_memory(part);
|
||||
if (seek_error_internal(app, part, skip_sub_error, dir, &location)){
|
||||
jump = jump_location_store(app, location);
|
||||
result = true;
|
||||
}
|
||||
else{
|
||||
result = false;
|
||||
}
|
||||
end_temp_memory(temp);
|
||||
|
||||
prev_location = jump;
|
||||
return(result);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(goto_next_error){
|
||||
seek_error_skip_repeats(app, &global_part, true, 1);
|
||||
}
|
||||
|
@ -311,13 +335,22 @@ CUSTOM_COMMAND_SIG(goto_prev_error){
|
|||
seek_error_skip_repeats(app, &global_part, true, -1);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(goto_next_error_no_skips){
|
||||
seek_error(app, &global_part, true, 1);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(goto_prev_error_no_skips){
|
||||
seek_error(app, &global_part, true, -1);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(goto_first_error){
|
||||
Temp_Memory temp = begin_temp_memory(&global_part);
|
||||
View_Summary active_view = app->get_active_view(app, AccessAll);
|
||||
app->view_set_cursor(app, &active_view, seek_pos(0), true);
|
||||
|
||||
Jump_Location location = {0};
|
||||
seek_error(app, &global_part, true, 1, &location);
|
||||
prev_location = null_location;
|
||||
seek_error_internal(app, &global_part, true, 1, &location);
|
||||
prev_location = jump_location_store(app, location);
|
||||
end_temp_memory(temp);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue