diff --git a/code/custom/4coder_custom_hooks.cpp b/code/custom/4coder_custom_hooks.cpp index 91581f27..45eefeb1 100644 --- a/code/custom/4coder_custom_hooks.cpp +++ b/code/custom/4coder_custom_hooks.cpp @@ -132,6 +132,9 @@ BUFFER_EDIT_RANGE_SIG(custom_buffer_edit_range){ ts_tree_edit(tree_data->tree, &edit); tree_sitter_parse_incremental(app, buffer_id); + + tree_data->last_update_old_range = old_range; + tree_data->last_update_new_range = new_range; trigger_code_index_update = true; } } diff --git a/code/custom/4coder_tree_sitter.cpp b/code/custom/4coder_tree_sitter.cpp index 591e502d..a4288550 100644 --- a/code/custom/4coder_tree_sitter.cpp +++ b/code/custom/4coder_tree_sitter.cpp @@ -589,8 +589,10 @@ tree_sitter_code_index_update_tick(Application_Links* app) modified_node = modified_node->next ){ Buffer_ID buffer_id = modified_node->buffer; + Managed_Scope buffer_scope = buffer_get_managed_scope(app, buffer_id); + Buffer_Tree_Sitter_Data* tree_data = scope_attachment(app, buffer_scope, buffer_tree_sitter_data_id, Buffer_Tree_Sitter_Data); + if (!tree_data || !tree_data->tree) continue; - // TODO(PS): This should become incremental tree_sitter_code_index_update_full_file(app, buffer_id); } buffer_modified_set_clear(); diff --git a/code/custom/4coder_tree_sitter.h b/code/custom/4coder_tree_sitter.h index 1528e6e9..038744e7 100644 --- a/code/custom/4coder_tree_sitter.h +++ b/code/custom/4coder_tree_sitter.h @@ -45,6 +45,10 @@ struct Buffer_Tree_Sitter_Data { TSTree* tree; System_Mutex tree_mutex; + + // Code Index Update Requests + Range_i64 last_update_old_range; + Range_i64 last_update_new_range; }; struct Tree_Sitter_Query_Cursor