Remove Code_Index_Note_Ptr_Array from the codebase, use Code_Index_Note_List instead
This commit is contained in:
parent
76863fc03a
commit
69dc4f8e04
|
@ -109,21 +109,6 @@ code_index_push_nest(Code_Index_Nest_List *list, Code_Index_Nest *nest){
|
||||||
list->count += 1;
|
list->count += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Code_Index_Note_Ptr_Array
|
|
||||||
code_index_note_ptr_array_from_list(Arena *arena, Code_Index_Note_List *list){
|
|
||||||
Code_Index_Note_Ptr_Array array = {};
|
|
||||||
array.ptrs = push_array_zero(arena, Code_Index_Note*, list->count);
|
|
||||||
array.count = list->count;
|
|
||||||
i32 counter = 0;
|
|
||||||
for (Code_Index_Note *node = list->first;
|
|
||||||
node != 0;
|
|
||||||
node = node->next){
|
|
||||||
array.ptrs[counter] = node;
|
|
||||||
counter += 1;
|
|
||||||
}
|
|
||||||
return(array);
|
|
||||||
}
|
|
||||||
|
|
||||||
function void
|
function void
|
||||||
code_index_lock(void){
|
code_index_lock(void){
|
||||||
system_mutex_acquire(global_code_index.mutex);
|
system_mutex_acquire(global_code_index.mutex);
|
||||||
|
@ -805,10 +790,6 @@ generic_parse_full_input_breaks(Code_Index_File *index, Generic_Parse_State *sta
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result){
|
|
||||||
index->note_array = code_index_note_ptr_array_from_list(state->arena, &index->note_list);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,17 +93,11 @@ struct Code_Index_Note_List{
|
||||||
i32 count;
|
i32 count;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Code_Index_Note_Ptr_Array{
|
|
||||||
Code_Index_Note **ptrs;
|
|
||||||
i32 count;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Code_Index_File{
|
struct Code_Index_File{
|
||||||
Code_Index_Scope_Delim_List scope_delim_list;
|
Code_Index_Scope_Delim_List scope_delim_list;
|
||||||
Code_Index_Scope_Delim_Ptr_Array scope_delim_array;
|
Code_Index_Scope_Delim_Ptr_Array scope_delim_array;
|
||||||
Code_Index_Nest_List nest_list;
|
Code_Index_Nest_List nest_list;
|
||||||
Code_Index_Note_List note_list;
|
Code_Index_Note_List note_list;
|
||||||
Code_Index_Note_Ptr_Array note_array;
|
|
||||||
Buffer_ID buffer;
|
Buffer_ID buffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,8 @@ CUSTOM_DOC("List all definitions in the code index and jump to one chosen by the
|
||||||
buffer = get_buffer_next(app, buffer, Access_Always)){
|
buffer = get_buffer_next(app, buffer, Access_Always)){
|
||||||
Code_Index_File *file = code_index_get_file(buffer);
|
Code_Index_File *file = code_index_get_file(buffer);
|
||||||
if (file != 0){
|
if (file != 0){
|
||||||
for (i32 i = 0; i < file->note_array.count; i += 1){
|
Code_Index_Note* note = file->note_list.first;
|
||||||
Code_Index_Note *note = file->note_array.ptrs[i];
|
for (i32 i = 0; i < file->note_list.count; i += 1, note = note->next){
|
||||||
Tiny_Jump *jump = push_array(scratch, Tiny_Jump, 1);
|
Tiny_Jump *jump = push_array(scratch, Tiny_Jump, 1);
|
||||||
jump->buffer = buffer;
|
jump->buffer = buffer;
|
||||||
jump->pos = note->pos.first;
|
jump->pos = note->pos.first;
|
||||||
|
@ -68,31 +68,36 @@ CUSTOM_DOC("List all definitions in the code index and jump to one chosen by the
|
||||||
CUSTOM_UI_COMMAND_SIG(jump_to_definition_at_cursor)
|
CUSTOM_UI_COMMAND_SIG(jump_to_definition_at_cursor)
|
||||||
CUSTOM_DOC("Jump to the first definition in the code index matching an identifier at the cursor")
|
CUSTOM_DOC("Jump to the first definition in the code index matching an identifier at the cursor")
|
||||||
{
|
{
|
||||||
View_ID view = get_active_view(app, Access_Visible);
|
View_ID view = get_active_view(app, Access_Visible);
|
||||||
|
|
||||||
if (view != 0){
|
if (view != 0)
|
||||||
Scratch_Block scratch(app);
|
{
|
||||||
String_Const_u8 query = push_token_or_word_under_active_cursor(app, scratch);
|
Scratch_Block scratch(app);
|
||||||
|
String_Const_u8 query = push_token_or_word_under_active_cursor(app, scratch);
|
||||||
|
|
||||||
code_index_lock();
|
code_index_lock();
|
||||||
for (Buffer_ID buffer = get_buffer_next(app, 0, Access_Always);
|
for (Buffer_ID buffer = get_buffer_next(app, 0, Access_Always);
|
||||||
buffer != 0;
|
buffer != 0;
|
||||||
buffer = get_buffer_next(app, buffer, Access_Always)){
|
buffer = get_buffer_next(app, buffer, Access_Always)
|
||||||
Code_Index_File *file = code_index_get_file(buffer);
|
){
|
||||||
if (file != 0){
|
Code_Index_File *file = code_index_get_file(buffer);
|
||||||
for (i32 i = 0; i < file->note_array.count; i += 1){
|
if (file != 0)
|
||||||
Code_Index_Note *note = file->note_array.ptrs[i];
|
{
|
||||||
if (string_match(note->text, query)){
|
Code_Index_Note *note = file->note_list.first;
|
||||||
point_stack_push_view_cursor(app, view);
|
for (i32 i = 0; i < file->note_list.count; i += 1, note = note->next)
|
||||||
jump_to_location(app, view, buffer, note->pos.first);
|
{
|
||||||
goto done;
|
if (string_match(note->text, query))
|
||||||
}
|
{
|
||||||
}
|
point_stack_push_view_cursor(app, view);
|
||||||
}
|
jump_to_location(app, view, buffer, note->pos.first);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
done:;
|
}
|
||||||
code_index_unlock();
|
|
||||||
}
|
}
|
||||||
|
done:;
|
||||||
|
code_index_unlock();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
global String_Const_u8 code_index_note_strs[] = {
|
global String_Const_u8 code_index_note_strs[] = {
|
||||||
|
|
|
@ -552,9 +552,6 @@ tree_sitter_code_index_update_complete(
|
||||||
note->text = push_string_copy(&state->index_arena, string_substring(state->buffer_contents, note->pos));
|
note->text = push_string_copy(&state->index_arena, string_substring(state->buffer_contents, note->pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finish the Index
|
|
||||||
state->index->note_array = code_index_note_ptr_array_from_list(&state->index_arena, &state->index->note_list);
|
|
||||||
|
|
||||||
code_index_lock();
|
code_index_lock();
|
||||||
code_index_set_file(state->buffer_id, state->index_arena, state->index);
|
code_index_set_file(state->buffer_id, state->index_arena, state->index);
|
||||||
code_index_unlock();
|
code_index_unlock();
|
||||||
|
@ -891,9 +888,9 @@ tree_sitter_list_all_query_results(
|
||||||
Code_Index_File* file = code_index_get_file(buffer);
|
Code_Index_File* file = code_index_get_file(buffer);
|
||||||
if (file != 0)
|
if (file != 0)
|
||||||
{
|
{
|
||||||
for (i32 i = 0; i < file->note_array.count; i += 1)
|
Code_Index_Note *note = file->note_list.first;
|
||||||
|
for (i32 i = 0; i < file->note_list.count; i += 1, note = note->next)
|
||||||
{
|
{
|
||||||
Code_Index_Note *note = file->note_array.ptrs[i];
|
|
||||||
if (note->note_kind == note_kind)
|
if (note->note_kind == note_kind)
|
||||||
{
|
{
|
||||||
print_position(
|
print_position(
|
||||||
|
|
Loading…
Reference in New Issue