Code index types
							parent
							
								
									a05db7f075
								
							
						
					
					
						commit
						6993c3c0d5
					
				|  | @ -41,7 +41,7 @@ code_index_push_nest(Code_Index_Nest_List *list, Code_Index_Nest *nest){ | |||
| } | ||||
| 
 | ||||
| function Code_Index_Nest_Ptr_Array | ||||
| code_index_nest_ptr_array_from_list(Arena *arena,  Code_Index_Nest_List *list){ | ||||
| code_index_nest_ptr_array_from_list(Arena *arena, Code_Index_Nest_List *list){ | ||||
|     Code_Index_Nest_Ptr_Array array = {}; | ||||
|     array.ptrs = push_array_zero(arena, Code_Index_Nest*, list->count); | ||||
|     array.count = list->count; | ||||
|  | @ -55,6 +55,21 @@ code_index_nest_ptr_array_from_list(Arena *arena,  Code_Index_Nest_List *list){ | |||
|     return(array); | ||||
| } | ||||
| 
 | ||||
| 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 | ||||
| code_index_lock(void){ | ||||
|     system_mutex_acquire(global_code_index.mutex); | ||||
|  | @ -223,6 +238,55 @@ generic_parse_init(Application_Links *app, Arena *arena, String_Const_u8 content | |||
|     state->prev_line_start = contents.str; | ||||
| } | ||||
| 
 | ||||
| ////////////////////////////////
 | ||||
| 
 | ||||
| #if 0 | ||||
| // NOTE(allen): grammar syntax
 | ||||
| (X) = X | ||||
| X Y = X and then Y | ||||
| X? = zero or one X | ||||
| $X = check for X but don't consume | ||||
| [X] = zero or more Xs | ||||
| X | Y = either X or Y | ||||
| * = anything that does not match previous options in a X | Y | ... chain | ||||
| * - X = anything that does not match X or previous options in a Y | Z | ... chain | ||||
| <X> = a token of type X | ||||
| "X" = literally the string "X" | ||||
| X{Y} = X with flag Y | ||||
| 
 | ||||
| // NOTE(allen): grammar of code index parse
 | ||||
| file: [preprocessor | scope | parens | type | * - <end-of-file>] <end-of-file> | ||||
| preprocessor: <preprocessor> [scope | parens | stmnt]{pp-body} | ||||
| scope: <scope-open> [preprocessor | scope | parens | * - <scope-close>] <scope-close> | ||||
| paren: <paren-open> [preprocessor | scope | parens | * - <paren-close>] <paren-close> | ||||
| stmnt-close-pattern: <scope-open> | <scope-close> | <paren-open> | <paren-close> | <stmnt-close> | <preprocessor> | ||||
| stmnt: [type | * - stmnt-close-pattern] stmnt-close-pattern | ||||
| type: struct | union | enum | typedef | ||||
| struct: "struct" <identifier> $(";" | "{") | ||||
| union: "union" <identifier> $(";" | "{") | ||||
| enum: "enum" <identifier> $(";" | "{") | ||||
| typedef: "typedef" [* - (<identifier> (";" | "("))] <identifier> $(";" | "(") | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| ////////////////////////////////
 | ||||
| 
 | ||||
| function Code_Index_Note* | ||||
| index_new_note(Code_Index_File *index, Generic_Parse_State *state, Range_i64 range, Code_Index_Note_Kind kind, Code_Index_Nest *parent){ | ||||
|     Code_Index_Note *result = push_array(state->arena, Code_Index_Note, 1); | ||||
|     sll_queue_push(index->note_list.first, index->note_list.last, result); | ||||
|     index->note_list.count += 1; | ||||
|     result->note_kind = kind; | ||||
|     result->pos = range; | ||||
|     result->text = push_string_copy(state->arena, string_substring(state->contents, range)); | ||||
|     result->file = index; | ||||
|     result->parent = parent; | ||||
|     return(result); | ||||
| } | ||||
| 
 | ||||
| function Code_Index_Nest* | ||||
| generic_parse_statement(Code_Index_File *index, Generic_Parse_State *state); | ||||
| 
 | ||||
| function Code_Index_Nest* | ||||
| generic_parse_preprocessor(Code_Index_File *index, Generic_Parse_State *state); | ||||
| 
 | ||||
|  | @ -268,8 +332,7 @@ generic_parse_statement(Code_Index_File *index, Generic_Parse_State *state){ | |||
|          | ||||
|         if (token->kind == TokenBaseKind_ScopeOpen || | ||||
|             token->kind == TokenBaseKind_ScopeClose || | ||||
|             token->kind == TokenBaseKind_ParentheticalOpen || | ||||
|             token->kind == TokenBaseKind_ParentheticalClose){ | ||||
|             token->kind == TokenBaseKind_ParentheticalOpen){ | ||||
|             result->is_closed = true; | ||||
|             result->close = Ii64(token->pos); | ||||
|             break; | ||||
|  | @ -495,10 +558,72 @@ generic_parse_paren(Code_Index_File *index, Generic_Parse_State *state){ | |||
|     return(result); | ||||
| } | ||||
| 
 | ||||
| function void | ||||
| cpp_parse_type_structure(Code_Index_File *index, Generic_Parse_State *state, Code_Index_Nest *parent){ | ||||
|     generic_parse_inc(state); | ||||
|     generic_parse_skip_soft_tokens(index, state); | ||||
|     Token *token = token_it_read(&state->it); | ||||
|     if (token != 0 && token->kind == TokenBaseKind_Identifier){ | ||||
|         generic_parse_inc(state); | ||||
|         generic_parse_skip_soft_tokens(index, state); | ||||
|         Token *peek = token_it_read(&state->it); | ||||
|         if (peek != 0 && peek->kind == TokenBaseKind_StatementClose || | ||||
|             peek->kind == TokenBaseKind_ScopeOpen){ | ||||
|             index_new_note(index, state, Ii64(token), CodeIndexNote_Type, parent); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function void | ||||
| cpp_parse_type_def(Code_Index_File *index, Generic_Parse_State *state, Code_Index_Nest *parent){ | ||||
|     generic_parse_inc(state); | ||||
|     generic_parse_skip_soft_tokens(index, state); | ||||
|     for (;;){ | ||||
|         b32 did_advance = false; | ||||
|         Token *token = token_it_read(&state->it); | ||||
|         if (token == 0){ | ||||
|             break; | ||||
|         } | ||||
|         if (token->kind == TokenBaseKind_Identifier){ | ||||
|             generic_parse_inc(state); | ||||
|             generic_parse_skip_soft_tokens(index, state); | ||||
|             did_advance = true; | ||||
|             Token *peek = token_it_read(&state->it); | ||||
|             if (peek != 0 && peek->kind == TokenBaseKind_StatementClose || | ||||
|                 peek->kind == TokenBaseKind_ParentheticalOpen){ | ||||
|                 index_new_note(index, state, Ii64(token), CodeIndexNote_Type, parent); | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         else if (token->kind == TokenBaseKind_StatementClose || | ||||
|                  token->kind == TokenBaseKind_ScopeOpen || | ||||
|                  token->kind == TokenBaseKind_ScopeClose || | ||||
|                  token->kind == TokenBaseKind_ScopeOpen || | ||||
|                  token->kind == TokenBaseKind_ScopeClose){ | ||||
|             break; | ||||
|         } | ||||
|         else if (token->kind == TokenBaseKind_Keyword){ | ||||
|             String_Const_u8 lexeme = string_substring(state->contents, Ii64(token)); | ||||
|             if (string_match(lexeme, string_u8_litexpr("struct")) || | ||||
|                 string_match(lexeme, string_u8_litexpr("union")) || | ||||
|                 string_match(lexeme, string_u8_litexpr("enum"))){ | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         if (!did_advance){ | ||||
|             generic_parse_inc(state); | ||||
|             generic_parse_skip_soft_tokens(index, state); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function b32 | ||||
| generic_parse_full_input_breaks(Code_Index_File *index, Generic_Parse_State *state, i32 limit){ | ||||
|     b32 result = false; | ||||
|      | ||||
|     // TODO(allen): abstract the C++ parse parts somehow?
 | ||||
|     b32 do_cpp_parse = true; | ||||
|      | ||||
|     i64 first_index = token_it_index(&state->it); | ||||
|     i64 one_past_last_index = first_index + limit; | ||||
|     for (;;){ | ||||
|  | @ -522,6 +647,21 @@ generic_parse_full_input_breaks(Code_Index_File *index, Generic_Parse_State *sta | |||
|             Code_Index_Nest *nest = generic_parse_paren(index, state); | ||||
|             code_index_push_nest(&index->nest_list, nest); | ||||
|         } | ||||
|         else if (token->kind == TokenBaseKind_Keyword && do_cpp_parse){ | ||||
|             String_Const_u8 lexeme = string_substring(state->contents, Ii64(token)); | ||||
|             if (string_match(lexeme, string_u8_litexpr("struct")) || | ||||
|                 string_match(lexeme, string_u8_litexpr("union")) || | ||||
|                 string_match(lexeme, string_u8_litexpr("enum"))){ | ||||
|                 cpp_parse_type_structure(index, state, 0); | ||||
|             } | ||||
|             else if (string_match(lexeme, string_u8_litexpr("typedef"))){ | ||||
|                 cpp_parse_type_def(index, state, 0); | ||||
|             } | ||||
|             else{ | ||||
|                 generic_parse_inc(state); | ||||
|             } | ||||
|              | ||||
|         } | ||||
|         else{ | ||||
|             generic_parse_inc(state); | ||||
|         } | ||||
|  | @ -538,6 +678,7 @@ generic_parse_full_input_breaks(Code_Index_File *index, Generic_Parse_State *sta | |||
|      | ||||
|     if (result){ | ||||
|         index->nest_array = code_index_nest_ptr_array_from_list(state->arena, &index->nest_list); | ||||
|         index->note_array = code_index_note_ptr_array_from_list(state->arena, &index->note_list); | ||||
|     } | ||||
|      | ||||
|     return(result); | ||||
|  | @ -563,10 +704,10 @@ layout_token_pair(Token_Array *tokens, i64 pos){ | |||
|     Token_Iterator_Array it = token_iterator_pos(0, tokens, pos); | ||||
|     Token *b = token_it_read(&it); | ||||
|     if (b != 0){ | ||||
|     if (b->kind == TokenBaseKind_Whitespace){ | ||||
|         token_it_inc_non_whitespace(&it); | ||||
|         b = token_it_read(&it); | ||||
|     } | ||||
|         if (b->kind == TokenBaseKind_Whitespace){ | ||||
|             token_it_inc_non_whitespace(&it); | ||||
|             b = token_it_read(&it); | ||||
|         } | ||||
|     } | ||||
|     token_it_dec_non_whitespace(&it); | ||||
|     Token *a = token_it_read(&it); | ||||
|  | @ -640,29 +781,29 @@ layout_index__emit_chunk(LefRig_TopBot_Layout_Vars *pos_vars, Arena *arena, u8 * | |||
|     for (;ptr < end;){ | ||||
|         Character_Consume_Result consume = utf8_consume(ptr, (umem)(end - ptr)); | ||||
|         if (consume.codepoint != '\r'){ | ||||
|         i64 index = layout_index_from_ptr(ptr, text_str, range_first); | ||||
|         if (consume.codepoint != max_u32){ | ||||
|             lr_tb_write(pos_vars, arena, list, index, consume.codepoint); | ||||
|         } | ||||
|         else{ | ||||
|             lr_tb_write_byte(pos_vars, arena, list, index, *ptr); | ||||
|         } | ||||
|             i64 index = layout_index_from_ptr(ptr, text_str, range_first); | ||||
|             if (consume.codepoint != max_u32){ | ||||
|                 lr_tb_write(pos_vars, arena, list, index, consume.codepoint); | ||||
|             } | ||||
|             else{ | ||||
|                 lr_tb_write_byte(pos_vars, arena, list, index, *ptr); | ||||
|             } | ||||
| 		} | ||||
|         ptr += consume.inc; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|     function i32 | ||||
|         layout_token_score_wrap_token(Token_Pair *pair, Token_Cpp_Kind kind){ | ||||
|         i32 result = 0; | ||||
|         if (pair->a.sub_kind != kind && pair->b.sub_kind == kind){ | ||||
|             result -= 1; | ||||
|         } | ||||
|         else if (pair->a.sub_kind == kind && pair->b.sub_kind != kind){ | ||||
|             result += 1; | ||||
|         } | ||||
|         return(result); | ||||
| function i32 | ||||
| layout_token_score_wrap_token(Token_Pair *pair, Token_Cpp_Kind kind){ | ||||
|     i32 result = 0; | ||||
|     if (pair->a.sub_kind != kind && pair->b.sub_kind == kind){ | ||||
|         result -= 1; | ||||
|     } | ||||
|     else if (pair->a.sub_kind == kind && pair->b.sub_kind != kind){ | ||||
|         result += 1; | ||||
|     } | ||||
|     return(result); | ||||
| } | ||||
| 
 | ||||
| function Layout_Item_List | ||||
| layout_index__inner(Application_Links *app, Arena *arena, Buffer_ID buffer, Range_i64 range, Face_ID face, f32 width, Code_Index_File *file, Layout_Wrap_Kind kind){ | ||||
|  | @ -779,8 +920,8 @@ layout_index__inner(Application_Links *app, Arena *arena, Buffer_ID buffer, Rang | |||
| #if 0 | ||||
|                 f32 shift = layout_index_x_shift(app, &reflex, file, index, metrics.space_advance); | ||||
|                 lr_tb_advance_x_without_item(&pos_vars, shift); | ||||
|                 #endif | ||||
| 
 | ||||
| #endif | ||||
|                  | ||||
|                 ptr = pending_wrap_ptr; | ||||
|                 pending_wrap_accumulated_w = 0.f; | ||||
|                 first_of_the_line = true; | ||||
|  | @ -919,15 +1060,15 @@ layout_virt_indent_index(Application_Links *app, Arena *arena, Buffer_ID buffer, | |||
|     Layout_Item_List result = {}; | ||||
|      | ||||
|     if (global_config.enable_virtual_whitespace){ | ||||
|     code_index_lock(); | ||||
|     Code_Index_File *file = code_index_get_file(buffer); | ||||
|     if (file != 0){ | ||||
|         code_index_lock(); | ||||
|         Code_Index_File *file = code_index_get_file(buffer); | ||||
|         if (file != 0){ | ||||
|             result = layout_index__inner(app, arena, buffer, range, face, width, file, kind); | ||||
|     } | ||||
|     code_index_unlock(); | ||||
|     if (file == 0){ | ||||
|         } | ||||
|         code_index_unlock(); | ||||
|         if (file == 0){ | ||||
|             result = layout_virt_indent_literal(app, arena, buffer, range, face, width, kind); | ||||
|     } | ||||
|         } | ||||
|     } | ||||
|     else{ | ||||
|         result = layout_basic(app, arena, buffer, range, face, width, kind); | ||||
|  |  | |||
|  | @ -41,9 +41,38 @@ struct Code_Index_Nest{ | |||
|     Code_Index_Nest_Ptr_Array nest_array; | ||||
| }; | ||||
| 
 | ||||
| typedef i64 Code_Index_Note_Kind; | ||||
| enum{ | ||||
|     CodeIndexNote_Type, | ||||
|     CodeIndexNote_Function, | ||||
|     CodeIndexNote_Macro, | ||||
| }; | ||||
| 
 | ||||
| struct Code_Index_Note{ | ||||
|     Code_Index_Note *next; | ||||
|     Code_Index_Note_Kind note_kind; | ||||
|     Range_i64 pos; | ||||
|     String_Const_u8 text; | ||||
|     struct Code_Index_File *file; | ||||
|     Code_Index_Nest *parent; | ||||
| }; | ||||
| 
 | ||||
| struct Code_Index_Note_List{ | ||||
|     Code_Index_Note *first; | ||||
|     Code_Index_Note *last; | ||||
|     i32 count; | ||||
| }; | ||||
| 
 | ||||
| struct Code_Index_Note_Ptr_Array{ | ||||
|     Code_Index_Note **ptrs; | ||||
|     i32 count; | ||||
| }; | ||||
| 
 | ||||
| struct Code_Index_File{ | ||||
|     Code_Index_Nest_List nest_list; | ||||
|     Code_Index_Nest_Ptr_Array nest_array; | ||||
|     Code_Index_Note_List note_list; | ||||
|     Code_Index_Note_Ptr_Array note_array; | ||||
|     Buffer_ID buffer; | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,52 @@ | |||
| /*
 | ||||
| 4coder_code_index_listers.cpp - Listers for exploring the contents of the code index. | ||||
| */ | ||||
| 
 | ||||
| // TOP
 | ||||
| 
 | ||||
| struct Tiny_Jump{ | ||||
|     Buffer_ID buffer; | ||||
|     i64 pos; | ||||
| }; | ||||
| 
 | ||||
| CUSTOM_UI_COMMAND_SIG(jump_to_type_definition) | ||||
| CUSTOM_DOC("List all types in the code index and jump to one chosen by the user.") | ||||
| { | ||||
|     char *query = "Type:"; | ||||
|      | ||||
|     Scratch_Block scratch(app, Scratch_Share); | ||||
|     Lister *lister = begin_lister(app, scratch); | ||||
|     lister_set_query(lister, query); | ||||
|     lister->handlers = lister_get_default_handlers(); | ||||
|      | ||||
|     code_index_lock(); | ||||
|     for (Buffer_ID buffer = get_buffer_next(app, 0, Access_Always); | ||||
|          buffer != 0; | ||||
|          buffer = get_buffer_next(app, buffer, Access_Always)){ | ||||
|         Code_Index_File *file = code_index_get_file(buffer); | ||||
|         if (file != 0){ | ||||
|             for (i32 i = 0; i < file->note_array.count; i += 1){ | ||||
|                 Code_Index_Note *note = file->note_array.ptrs[i]; | ||||
|                 Tiny_Jump *jump = push_array(scratch, Tiny_Jump, 1); | ||||
|                 jump->buffer = buffer; | ||||
|                 jump->pos = note->pos.first; | ||||
|                 lister_add_item(lister, note->text, string_u8_litexpr("type"), jump, 0); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     code_index_unlock(); | ||||
|      | ||||
|     Lister_Result l_result = run_lister(app, lister); | ||||
|     Tiny_Jump result = {}; | ||||
|     if (!l_result.canceled && l_result.user_data != 0){ | ||||
|         block_copy_struct(&result, (Tiny_Jump*)l_result.user_data); | ||||
|     } | ||||
|      | ||||
|     if (result.buffer != 0){ | ||||
|         View_ID view = get_this_ctx_view(app, Access_Always); | ||||
|         jump_to_location(app, view, result.buffer, result.pos); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| // BOTTOM
 | ||||
| 
 | ||||
|  | @ -98,6 +98,7 @@ | |||
| #include "4coder_jumping.cpp" | ||||
| #include "4coder_jump_sticky.cpp" | ||||
| #include "4coder_jump_lister.cpp" | ||||
| #include "4coder_code_index_listers.cpp" | ||||
| #include "4coder_log_parser.cpp" | ||||
| #include "4coder_clipboard.cpp" | ||||
| #include "4coder_keyboard_macro.cpp" | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
| 
 | ||||
| // TOP
 | ||||
| 
 | ||||
| static b32 | ||||
| function b32 | ||||
| ms_style_verify(String_Const_u8 line, umem left_paren_pos, umem right_paren_pos){ | ||||
|     i32 result = false; | ||||
|     String_Const_u8 line_part = string_skip(line, right_paren_pos); | ||||
|  | @ -31,7 +31,7 @@ ms_style_verify(String_Const_u8 line, umem left_paren_pos, umem right_paren_pos) | |||
|     return(result); | ||||
| } | ||||
| 
 | ||||
| static umem | ||||
| function umem | ||||
| try_skip_rust_arrow(String_Const_u8 line){ | ||||
|     umem pos = 0; | ||||
|     if (string_match(string_prefix(line, 3), string_u8_litexpr("-->"))){ | ||||
|  | @ -42,7 +42,7 @@ try_skip_rust_arrow(String_Const_u8 line){ | |||
|     return(pos); | ||||
| } | ||||
| 
 | ||||
| static b32 | ||||
| function b32 | ||||
| check_is_note(String_Const_u8 line, umem colon_pos){ | ||||
|     b32 is_note = false; | ||||
|     umem note_pos = colon_pos + string_find_first(string_skip(line, colon_pos), string_u8_litexpr("note")); | ||||
|  | @ -61,7 +61,7 @@ check_is_note(String_Const_u8 line, umem colon_pos){ | |||
|     return(is_note); | ||||
| } | ||||
| 
 | ||||
| static Parsed_Jump | ||||
| function Parsed_Jump | ||||
| parse_jump_location(String_Const_u8 line){ | ||||
|     Parsed_Jump jump = {}; | ||||
|     jump.sub_jump_indented = (string_get_character(line, 0) == ' '); | ||||
|  | @ -185,7 +185,7 @@ parse_jump_location(String_Const_u8 line){ | |||
|     return(jump); | ||||
| } | ||||
| 
 | ||||
| static Parsed_Jump | ||||
| function Parsed_Jump | ||||
| parse_jump_location(String_Const_u8 line, Jump_Flag flags){ | ||||
|     Parsed_Jump jump = parse_jump_location(line); | ||||
|     if (HasFlag(flags, JumpFlag_SkipSubs) && jump.is_sub_jump){ | ||||
|  | @ -194,7 +194,7 @@ parse_jump_location(String_Const_u8 line, Jump_Flag flags){ | |||
|     return(jump); | ||||
| } | ||||
| 
 | ||||
| static Parsed_Jump | ||||
| function Parsed_Jump | ||||
| parse_jump_from_buffer_line(Application_Links *app, Arena *arena, Buffer_ID buffer, i64 line, Jump_Flag flags){ | ||||
|     Parsed_Jump jump = {}; | ||||
|     String_Const_u8 line_str = push_buffer_line(app, arena, buffer, line); | ||||
|  | @ -206,23 +206,23 @@ parse_jump_from_buffer_line(Application_Links *app, Arena *arena, Buffer_ID buff | |||
| 
 | ||||
| ////////////////////////////////
 | ||||
| 
 | ||||
| static b32 | ||||
| function b32 | ||||
| get_jump_buffer(Application_Links *app, Buffer_ID *buffer, Name_Line_Column_Location *location){ | ||||
|     return(open_file(app, buffer, location->file, false, true)); | ||||
| } | ||||
| 
 | ||||
| static b32 | ||||
| function b32 | ||||
| get_jump_buffer(Application_Links *app, Buffer_ID *buffer, ID_Pos_Jump_Location *location, Access_Flag access){ | ||||
|     *buffer = location->buffer_id; | ||||
|     return(buffer_exists(app, *buffer)); | ||||
| } | ||||
| 
 | ||||
| static b32 | ||||
| function b32 | ||||
| get_jump_buffer(Application_Links *app, Buffer_ID *buffer, ID_Pos_Jump_Location *location){ | ||||
|     return(get_jump_buffer(app, buffer, location, Access_Always)); | ||||
| } | ||||
| 
 | ||||
| static View_ID | ||||
| function View_ID | ||||
| switch_to_existing_view(Application_Links *app, View_ID view, Buffer_ID buffer){ | ||||
|     Buffer_ID current_buffer = view_get_buffer(app, view, Access_Always); | ||||
|     if (view != 0 || current_buffer != buffer){ | ||||
|  | @ -234,7 +234,7 @@ switch_to_existing_view(Application_Links *app, View_ID view, Buffer_ID buffer){ | |||
|     return(view); | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| function void | ||||
| set_view_to_location(Application_Links *app, View_ID view, Buffer_ID buffer, Buffer_Seek seek){ | ||||
|     Buffer_ID current_buffer = view_get_buffer(app, view, Access_Always); | ||||
|     if (current_buffer != buffer){ | ||||
|  | @ -243,7 +243,16 @@ set_view_to_location(Application_Links *app, View_ID view, Buffer_ID buffer, Buf | |||
|     view_set_cursor_and_preferred_x(app, view, seek); | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| function void | ||||
| jump_to_location(Application_Links *app, View_ID view, Buffer_ID buffer, i64 pos){ | ||||
|     view_set_active(app, view); | ||||
|     set_view_to_location(app, view, buffer, seek_pos(pos)); | ||||
|     if (auto_center_after_jumps){ | ||||
|         center_view(app); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function void | ||||
| jump_to_location(Application_Links *app, View_ID view, Buffer_ID buffer, | ||||
|                  Name_Line_Column_Location location){ | ||||
|     view_set_active(app, view); | ||||
|  | @ -253,7 +262,7 @@ jump_to_location(Application_Links *app, View_ID view, Buffer_ID buffer, | |||
|     } | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| function void | ||||
| jump_to_location(Application_Links *app, View_ID view, | ||||
|                  Name_Line_Column_Location location){ | ||||
|     Buffer_ID buffer = 0; | ||||
|  | @ -262,7 +271,7 @@ jump_to_location(Application_Links *app, View_ID view, | |||
|     } | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| function void | ||||
| jump_to_location(Application_Links *app, View_ID view, Buffer_ID buffer, ID_Pos_Jump_Location location){ | ||||
|     view_set_active(app, view); | ||||
|     set_view_to_location(app, view, buffer, seek_pos(location.pos)); | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| #define command_id(c) (fcoder_metacmd_ID_##c) | ||||
| #define command_metadata(c) (&fcoder_metacmd_table[command_id(c)]) | ||||
| #define command_metadata_by_id(id) (&fcoder_metacmd_table[id]) | ||||
| #define command_one_past_last_id 227 | ||||
| #define command_one_past_last_id 228 | ||||
| #if defined(CUSTOM_COMMAND_SIG) | ||||
| #define PROC_LINKS(x,y) x | ||||
| #else | ||||
|  | @ -75,6 +75,7 @@ CUSTOM_COMMAND_SIG(interactive_new); | |||
| CUSTOM_COMMAND_SIG(interactive_open); | ||||
| CUSTOM_COMMAND_SIG(interactive_open_or_new); | ||||
| CUSTOM_COMMAND_SIG(interactive_switch_buffer); | ||||
| CUSTOM_COMMAND_SIG(jump_to_type_definition); | ||||
| CUSTOM_COMMAND_SIG(keyboard_macro_finish_recording); | ||||
| CUSTOM_COMMAND_SIG(keyboard_macro_replay); | ||||
| CUSTOM_COMMAND_SIG(keyboard_macro_start_recording); | ||||
|  | @ -248,7 +249,7 @@ char *source_name; | |||
| i32 source_name_len; | ||||
| i32 line_number; | ||||
| }; | ||||
| static Command_Metadata fcoder_metacmd_table[227] = { | ||||
| static Command_Metadata fcoder_metacmd_table[228] = { | ||||
| { PROC_LINKS(allow_mouse, 0), false, "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 409 }, | ||||
| { PROC_LINKS(auto_indent_line_at_cursor, 0), false, "auto_indent_line_at_cursor", 26, "Auto-indents the line on which the cursor sits.", 47, "w:\\4ed\\code\\custom\\4coder_auto_indent.cpp", 41, 375 }, | ||||
| { PROC_LINKS(auto_indent_range, 0), false, "auto_indent_range", 17, "Auto-indents the range between the cursor and the mark.", 55, "w:\\4ed\\code\\custom\\4coder_auto_indent.cpp", 41, 385 }, | ||||
|  | @ -315,6 +316,7 @@ static Command_Metadata fcoder_metacmd_table[227] = { | |||
| { PROC_LINKS(interactive_open, 0), true, "interactive_open", 16, "Interactively opens a file.", 27, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 634 }, | ||||
| { PROC_LINKS(interactive_open_or_new, 0), true, "interactive_open_or_new", 23, "Interactively open a file out of the file system.", 49, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 563 }, | ||||
| { PROC_LINKS(interactive_switch_buffer, 0), true, "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 505 }, | ||||
| { PROC_LINKS(jump_to_type_definition, 0), true, "jump_to_type_definition", 23, "List all types in the code index and jump to one chosen by the user.", 68, "w:\\4ed\\code\\custom\\4coder_code_index_listers.cpp", 48, 12 }, | ||||
| { PROC_LINKS(keyboard_macro_finish_recording, 0), false, "keyboard_macro_finish_recording", 31, "Stop macro recording, do nothing if macro recording is not already started", 74, "w:\\4ed\\code\\custom\\4coder_keyboard_macro.cpp", 44, 57 }, | ||||
| { PROC_LINKS(keyboard_macro_replay, 0), false, "keyboard_macro_replay", 21, "Replay the most recently recorded keyboard macro", 48, "w:\\4ed\\code\\custom\\4coder_keyboard_macro.cpp", 44, 80 }, | ||||
| { PROC_LINKS(keyboard_macro_start_recording, 0), false, "keyboard_macro_start_recording", 30, "Start macro recording, do nothing if macro recording is already started", 71, "w:\\4ed\\code\\custom\\4coder_keyboard_macro.cpp", 44, 44 }, | ||||
|  | @ -457,7 +459,7 @@ static Command_Metadata fcoder_metacmd_table[227] = { | |||
| { PROC_LINKS(toggle_mouse, 0), false, "toggle_mouse", 12, "Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.", 71, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 415 }, | ||||
| { PROC_LINKS(toggle_paren_matching_helper, 0), false, "toggle_paren_matching_helper", 28, "In code files matching parentheses pairs are colored with distinguishing colors.", 80, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 445 }, | ||||
| { PROC_LINKS(toggle_show_whitespace, 0), false, "toggle_show_whitespace", 22, "Toggles the current buffer's whitespace visibility status.", 58, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 712 }, | ||||
| { PROC_LINKS(toggle_virtual_whitespace, 0), false, "toggle_virtual_whitespace", 25, "Toggles the current buffer's virtual whitespace status.", 55, "w:\\4ed\\code\\custom\\4coder_code_index.cpp", 40, 957 }, | ||||
| { PROC_LINKS(toggle_virtual_whitespace, 0), false, "toggle_virtual_whitespace", 25, "Toggles the current buffer's virtual whitespace status.", 55, "w:\\4ed\\code\\custom\\4coder_code_index.cpp", 40, 1098 }, | ||||
| { PROC_LINKS(tutorial_maximize, 0), false, "tutorial_maximize", 17, "Expand the tutorial window", 26, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 20 }, | ||||
| { PROC_LINKS(tutorial_minimize, 0), false, "tutorial_minimize", 17, "Shrink the tutorial window", 26, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 34 }, | ||||
| { PROC_LINKS(uncomment_line, 0), false, "uncomment_line", 14, "If present, delete '//' at the beginning of the line after leading whitespace.", 78, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 137 }, | ||||
|  | @ -543,165 +545,166 @@ static i32 fcoder_metacmd_ID_interactive_new = 62; | |||
| static i32 fcoder_metacmd_ID_interactive_open = 63; | ||||
| static i32 fcoder_metacmd_ID_interactive_open_or_new = 64; | ||||
| static i32 fcoder_metacmd_ID_interactive_switch_buffer = 65; | ||||
| static i32 fcoder_metacmd_ID_keyboard_macro_finish_recording = 66; | ||||
| static i32 fcoder_metacmd_ID_keyboard_macro_replay = 67; | ||||
| static i32 fcoder_metacmd_ID_keyboard_macro_start_recording = 68; | ||||
| static i32 fcoder_metacmd_ID_kill_buffer = 69; | ||||
| static i32 fcoder_metacmd_ID_kill_tutorial = 70; | ||||
| static i32 fcoder_metacmd_ID_left_adjust_view = 71; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_all_buffers = 72; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 73; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_current_buffer = 74; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 75; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations = 76; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_case_insensitive = 77; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_identifier = 78; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 79; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_selection = 80; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 81; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition = 82; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 83; | ||||
| static i32 fcoder_metacmd_ID_list_all_substring_locations = 84; | ||||
| static i32 fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 85; | ||||
| static i32 fcoder_metacmd_ID_load_project = 86; | ||||
| static i32 fcoder_metacmd_ID_load_themes_default_folder = 87; | ||||
| static i32 fcoder_metacmd_ID_load_themes_hot_directory = 88; | ||||
| static i32 fcoder_metacmd_ID_make_directory_query = 89; | ||||
| static i32 fcoder_metacmd_ID_miblo_decrement_basic = 90; | ||||
| static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp = 91; | ||||
| static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 92; | ||||
| static i32 fcoder_metacmd_ID_miblo_increment_basic = 93; | ||||
| static i32 fcoder_metacmd_ID_miblo_increment_time_stamp = 94; | ||||
| static i32 fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 95; | ||||
| static i32 fcoder_metacmd_ID_mouse_wheel_change_face_size = 96; | ||||
| static i32 fcoder_metacmd_ID_mouse_wheel_scroll = 97; | ||||
| static i32 fcoder_metacmd_ID_move_down = 98; | ||||
| static i32 fcoder_metacmd_ID_move_down_10 = 99; | ||||
| static i32 fcoder_metacmd_ID_move_down_textual = 100; | ||||
| static i32 fcoder_metacmd_ID_move_down_to_blank_line = 101; | ||||
| static i32 fcoder_metacmd_ID_move_down_to_blank_line_end = 102; | ||||
| static i32 fcoder_metacmd_ID_move_down_to_blank_line_skip_whitespace = 103; | ||||
| static i32 fcoder_metacmd_ID_move_left = 104; | ||||
| static i32 fcoder_metacmd_ID_move_left_alpha_numeric_boundary = 105; | ||||
| static i32 fcoder_metacmd_ID_move_left_alpha_numeric_or_camel_boundary = 106; | ||||
| static i32 fcoder_metacmd_ID_move_left_token_boundary = 107; | ||||
| static i32 fcoder_metacmd_ID_move_left_whitespace_boundary = 108; | ||||
| static i32 fcoder_metacmd_ID_move_left_whitespace_or_token_boundary = 109; | ||||
| static i32 fcoder_metacmd_ID_move_line_down = 110; | ||||
| static i32 fcoder_metacmd_ID_move_line_up = 111; | ||||
| static i32 fcoder_metacmd_ID_move_right = 112; | ||||
| static i32 fcoder_metacmd_ID_move_right_alpha_numeric_boundary = 113; | ||||
| static i32 fcoder_metacmd_ID_move_right_alpha_numeric_or_camel_boundary = 114; | ||||
| static i32 fcoder_metacmd_ID_move_right_token_boundary = 115; | ||||
| static i32 fcoder_metacmd_ID_move_right_whitespace_boundary = 116; | ||||
| static i32 fcoder_metacmd_ID_move_right_whitespace_or_token_boundary = 117; | ||||
| static i32 fcoder_metacmd_ID_move_up = 118; | ||||
| static i32 fcoder_metacmd_ID_move_up_10 = 119; | ||||
| static i32 fcoder_metacmd_ID_move_up_to_blank_line = 120; | ||||
| static i32 fcoder_metacmd_ID_move_up_to_blank_line_end = 121; | ||||
| static i32 fcoder_metacmd_ID_move_up_to_blank_line_skip_whitespace = 122; | ||||
| static i32 fcoder_metacmd_ID_open_all_code = 123; | ||||
| static i32 fcoder_metacmd_ID_open_all_code_recursive = 124; | ||||
| static i32 fcoder_metacmd_ID_open_documentation = 125; | ||||
| static i32 fcoder_metacmd_ID_open_file_in_quotes = 126; | ||||
| static i32 fcoder_metacmd_ID_open_in_other = 127; | ||||
| static i32 fcoder_metacmd_ID_open_long_braces = 128; | ||||
| static i32 fcoder_metacmd_ID_open_long_braces_break = 129; | ||||
| static i32 fcoder_metacmd_ID_open_long_braces_semicolon = 130; | ||||
| static i32 fcoder_metacmd_ID_open_matching_file_cpp = 131; | ||||
| static i32 fcoder_metacmd_ID_open_panel_hsplit = 132; | ||||
| static i32 fcoder_metacmd_ID_open_panel_vsplit = 133; | ||||
| static i32 fcoder_metacmd_ID_page_down = 134; | ||||
| static i32 fcoder_metacmd_ID_page_up = 135; | ||||
| static i32 fcoder_metacmd_ID_paste = 136; | ||||
| static i32 fcoder_metacmd_ID_paste_and_indent = 137; | ||||
| static i32 fcoder_metacmd_ID_paste_next = 138; | ||||
| static i32 fcoder_metacmd_ID_paste_next_and_indent = 139; | ||||
| static i32 fcoder_metacmd_ID_place_in_scope = 140; | ||||
| static i32 fcoder_metacmd_ID_profile_clear = 141; | ||||
| static i32 fcoder_metacmd_ID_profile_disable = 142; | ||||
| static i32 fcoder_metacmd_ID_profile_enable = 143; | ||||
| static i32 fcoder_metacmd_ID_profile_inspect = 144; | ||||
| static i32 fcoder_metacmd_ID_project_command_lister = 145; | ||||
| static i32 fcoder_metacmd_ID_project_fkey_command = 146; | ||||
| static i32 fcoder_metacmd_ID_project_go_to_root_directory = 147; | ||||
| static i32 fcoder_metacmd_ID_query_replace = 148; | ||||
| static i32 fcoder_metacmd_ID_query_replace_identifier = 149; | ||||
| static i32 fcoder_metacmd_ID_query_replace_selection = 150; | ||||
| static i32 fcoder_metacmd_ID_redo = 151; | ||||
| static i32 fcoder_metacmd_ID_redo_all_buffers = 152; | ||||
| static i32 fcoder_metacmd_ID_rename_file_query = 153; | ||||
| static i32 fcoder_metacmd_ID_reopen = 154; | ||||
| static i32 fcoder_metacmd_ID_replace_in_all_buffers = 155; | ||||
| static i32 fcoder_metacmd_ID_replace_in_buffer = 156; | ||||
| static i32 fcoder_metacmd_ID_replace_in_range = 157; | ||||
| static i32 fcoder_metacmd_ID_reverse_search = 158; | ||||
| static i32 fcoder_metacmd_ID_reverse_search_identifier = 159; | ||||
| static i32 fcoder_metacmd_ID_save = 160; | ||||
| static i32 fcoder_metacmd_ID_save_all_dirty_buffers = 161; | ||||
| static i32 fcoder_metacmd_ID_save_to_query = 162; | ||||
| static i32 fcoder_metacmd_ID_search = 163; | ||||
| static i32 fcoder_metacmd_ID_search_identifier = 164; | ||||
| static i32 fcoder_metacmd_ID_seek_beginning_of_line = 165; | ||||
| static i32 fcoder_metacmd_ID_seek_beginning_of_textual_line = 166; | ||||
| static i32 fcoder_metacmd_ID_seek_end_of_line = 167; | ||||
| static i32 fcoder_metacmd_ID_seek_end_of_textual_line = 168; | ||||
| static i32 fcoder_metacmd_ID_select_all = 169; | ||||
| static i32 fcoder_metacmd_ID_select_next_scope_absolute = 170; | ||||
| static i32 fcoder_metacmd_ID_select_next_scope_after_current = 171; | ||||
| static i32 fcoder_metacmd_ID_select_prev_scope_absolute = 172; | ||||
| static i32 fcoder_metacmd_ID_select_prev_top_most_scope = 173; | ||||
| static i32 fcoder_metacmd_ID_select_surrounding_scope = 174; | ||||
| static i32 fcoder_metacmd_ID_select_surrounding_scope_maximal = 175; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_from_contents = 176; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_to_binary = 177; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_to_crlf = 178; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_to_lf = 179; | ||||
| static i32 fcoder_metacmd_ID_set_mark = 180; | ||||
| static i32 fcoder_metacmd_ID_set_mode_to_notepad_like = 181; | ||||
| static i32 fcoder_metacmd_ID_set_mode_to_original = 182; | ||||
| static i32 fcoder_metacmd_ID_setup_build_bat = 183; | ||||
| static i32 fcoder_metacmd_ID_setup_build_bat_and_sh = 184; | ||||
| static i32 fcoder_metacmd_ID_setup_build_sh = 185; | ||||
| static i32 fcoder_metacmd_ID_setup_new_project = 186; | ||||
| static i32 fcoder_metacmd_ID_show_filebar = 187; | ||||
| static i32 fcoder_metacmd_ID_show_scrollbar = 188; | ||||
| static i32 fcoder_metacmd_ID_show_the_log_graph = 189; | ||||
| static i32 fcoder_metacmd_ID_snipe_backward_whitespace_or_token_boundary = 190; | ||||
| static i32 fcoder_metacmd_ID_snipe_forward_whitespace_or_token_boundary = 191; | ||||
| static i32 fcoder_metacmd_ID_snippet_lister = 192; | ||||
| static i32 fcoder_metacmd_ID_suppress_mouse = 193; | ||||
| static i32 fcoder_metacmd_ID_swap_panels = 194; | ||||
| static i32 fcoder_metacmd_ID_theme_lister = 195; | ||||
| static i32 fcoder_metacmd_ID_to_lowercase = 196; | ||||
| static i32 fcoder_metacmd_ID_to_uppercase = 197; | ||||
| static i32 fcoder_metacmd_ID_toggle_filebar = 198; | ||||
| static i32 fcoder_metacmd_ID_toggle_fps_meter = 199; | ||||
| static i32 fcoder_metacmd_ID_toggle_fullscreen = 200; | ||||
| static i32 fcoder_metacmd_ID_toggle_highlight_enclosing_scopes = 201; | ||||
| static i32 fcoder_metacmd_ID_toggle_highlight_line_at_cursor = 202; | ||||
| static i32 fcoder_metacmd_ID_toggle_line_numbers = 203; | ||||
| static i32 fcoder_metacmd_ID_toggle_line_wrap = 204; | ||||
| static i32 fcoder_metacmd_ID_toggle_mouse = 205; | ||||
| static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 206; | ||||
| static i32 fcoder_metacmd_ID_toggle_show_whitespace = 207; | ||||
| static i32 fcoder_metacmd_ID_toggle_virtual_whitespace = 208; | ||||
| static i32 fcoder_metacmd_ID_tutorial_maximize = 209; | ||||
| static i32 fcoder_metacmd_ID_tutorial_minimize = 210; | ||||
| static i32 fcoder_metacmd_ID_uncomment_line = 211; | ||||
| static i32 fcoder_metacmd_ID_undo = 212; | ||||
| static i32 fcoder_metacmd_ID_undo_all_buffers = 213; | ||||
| static i32 fcoder_metacmd_ID_view_buffer_other_panel = 214; | ||||
| static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 215; | ||||
| static i32 fcoder_metacmd_ID_word_complete = 216; | ||||
| static i32 fcoder_metacmd_ID_word_complete_drop_down = 217; | ||||
| static i32 fcoder_metacmd_ID_write_block = 218; | ||||
| static i32 fcoder_metacmd_ID_write_hack = 219; | ||||
| static i32 fcoder_metacmd_ID_write_note = 220; | ||||
| static i32 fcoder_metacmd_ID_write_space = 221; | ||||
| static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 222; | ||||
| static i32 fcoder_metacmd_ID_write_text_input = 223; | ||||
| static i32 fcoder_metacmd_ID_write_todo = 224; | ||||
| static i32 fcoder_metacmd_ID_write_underscore = 225; | ||||
| static i32 fcoder_metacmd_ID_write_zero_struct = 226; | ||||
| static i32 fcoder_metacmd_ID_jump_to_type_definition = 66; | ||||
| static i32 fcoder_metacmd_ID_keyboard_macro_finish_recording = 67; | ||||
| static i32 fcoder_metacmd_ID_keyboard_macro_replay = 68; | ||||
| static i32 fcoder_metacmd_ID_keyboard_macro_start_recording = 69; | ||||
| static i32 fcoder_metacmd_ID_kill_buffer = 70; | ||||
| static i32 fcoder_metacmd_ID_kill_tutorial = 71; | ||||
| static i32 fcoder_metacmd_ID_left_adjust_view = 72; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_all_buffers = 73; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 74; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_current_buffer = 75; | ||||
| static i32 fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 76; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations = 77; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_case_insensitive = 78; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_identifier = 79; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 80; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_selection = 81; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 82; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition = 83; | ||||
| static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 84; | ||||
| static i32 fcoder_metacmd_ID_list_all_substring_locations = 85; | ||||
| static i32 fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 86; | ||||
| static i32 fcoder_metacmd_ID_load_project = 87; | ||||
| static i32 fcoder_metacmd_ID_load_themes_default_folder = 88; | ||||
| static i32 fcoder_metacmd_ID_load_themes_hot_directory = 89; | ||||
| static i32 fcoder_metacmd_ID_make_directory_query = 90; | ||||
| static i32 fcoder_metacmd_ID_miblo_decrement_basic = 91; | ||||
| static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp = 92; | ||||
| static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 93; | ||||
| static i32 fcoder_metacmd_ID_miblo_increment_basic = 94; | ||||
| static i32 fcoder_metacmd_ID_miblo_increment_time_stamp = 95; | ||||
| static i32 fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 96; | ||||
| static i32 fcoder_metacmd_ID_mouse_wheel_change_face_size = 97; | ||||
| static i32 fcoder_metacmd_ID_mouse_wheel_scroll = 98; | ||||
| static i32 fcoder_metacmd_ID_move_down = 99; | ||||
| static i32 fcoder_metacmd_ID_move_down_10 = 100; | ||||
| static i32 fcoder_metacmd_ID_move_down_textual = 101; | ||||
| static i32 fcoder_metacmd_ID_move_down_to_blank_line = 102; | ||||
| static i32 fcoder_metacmd_ID_move_down_to_blank_line_end = 103; | ||||
| static i32 fcoder_metacmd_ID_move_down_to_blank_line_skip_whitespace = 104; | ||||
| static i32 fcoder_metacmd_ID_move_left = 105; | ||||
| static i32 fcoder_metacmd_ID_move_left_alpha_numeric_boundary = 106; | ||||
| static i32 fcoder_metacmd_ID_move_left_alpha_numeric_or_camel_boundary = 107; | ||||
| static i32 fcoder_metacmd_ID_move_left_token_boundary = 108; | ||||
| static i32 fcoder_metacmd_ID_move_left_whitespace_boundary = 109; | ||||
| static i32 fcoder_metacmd_ID_move_left_whitespace_or_token_boundary = 110; | ||||
| static i32 fcoder_metacmd_ID_move_line_down = 111; | ||||
| static i32 fcoder_metacmd_ID_move_line_up = 112; | ||||
| static i32 fcoder_metacmd_ID_move_right = 113; | ||||
| static i32 fcoder_metacmd_ID_move_right_alpha_numeric_boundary = 114; | ||||
| static i32 fcoder_metacmd_ID_move_right_alpha_numeric_or_camel_boundary = 115; | ||||
| static i32 fcoder_metacmd_ID_move_right_token_boundary = 116; | ||||
| static i32 fcoder_metacmd_ID_move_right_whitespace_boundary = 117; | ||||
| static i32 fcoder_metacmd_ID_move_right_whitespace_or_token_boundary = 118; | ||||
| static i32 fcoder_metacmd_ID_move_up = 119; | ||||
| static i32 fcoder_metacmd_ID_move_up_10 = 120; | ||||
| static i32 fcoder_metacmd_ID_move_up_to_blank_line = 121; | ||||
| static i32 fcoder_metacmd_ID_move_up_to_blank_line_end = 122; | ||||
| static i32 fcoder_metacmd_ID_move_up_to_blank_line_skip_whitespace = 123; | ||||
| static i32 fcoder_metacmd_ID_open_all_code = 124; | ||||
| static i32 fcoder_metacmd_ID_open_all_code_recursive = 125; | ||||
| static i32 fcoder_metacmd_ID_open_documentation = 126; | ||||
| static i32 fcoder_metacmd_ID_open_file_in_quotes = 127; | ||||
| static i32 fcoder_metacmd_ID_open_in_other = 128; | ||||
| static i32 fcoder_metacmd_ID_open_long_braces = 129; | ||||
| static i32 fcoder_metacmd_ID_open_long_braces_break = 130; | ||||
| static i32 fcoder_metacmd_ID_open_long_braces_semicolon = 131; | ||||
| static i32 fcoder_metacmd_ID_open_matching_file_cpp = 132; | ||||
| static i32 fcoder_metacmd_ID_open_panel_hsplit = 133; | ||||
| static i32 fcoder_metacmd_ID_open_panel_vsplit = 134; | ||||
| static i32 fcoder_metacmd_ID_page_down = 135; | ||||
| static i32 fcoder_metacmd_ID_page_up = 136; | ||||
| static i32 fcoder_metacmd_ID_paste = 137; | ||||
| static i32 fcoder_metacmd_ID_paste_and_indent = 138; | ||||
| static i32 fcoder_metacmd_ID_paste_next = 139; | ||||
| static i32 fcoder_metacmd_ID_paste_next_and_indent = 140; | ||||
| static i32 fcoder_metacmd_ID_place_in_scope = 141; | ||||
| static i32 fcoder_metacmd_ID_profile_clear = 142; | ||||
| static i32 fcoder_metacmd_ID_profile_disable = 143; | ||||
| static i32 fcoder_metacmd_ID_profile_enable = 144; | ||||
| static i32 fcoder_metacmd_ID_profile_inspect = 145; | ||||
| static i32 fcoder_metacmd_ID_project_command_lister = 146; | ||||
| static i32 fcoder_metacmd_ID_project_fkey_command = 147; | ||||
| static i32 fcoder_metacmd_ID_project_go_to_root_directory = 148; | ||||
| static i32 fcoder_metacmd_ID_query_replace = 149; | ||||
| static i32 fcoder_metacmd_ID_query_replace_identifier = 150; | ||||
| static i32 fcoder_metacmd_ID_query_replace_selection = 151; | ||||
| static i32 fcoder_metacmd_ID_redo = 152; | ||||
| static i32 fcoder_metacmd_ID_redo_all_buffers = 153; | ||||
| static i32 fcoder_metacmd_ID_rename_file_query = 154; | ||||
| static i32 fcoder_metacmd_ID_reopen = 155; | ||||
| static i32 fcoder_metacmd_ID_replace_in_all_buffers = 156; | ||||
| static i32 fcoder_metacmd_ID_replace_in_buffer = 157; | ||||
| static i32 fcoder_metacmd_ID_replace_in_range = 158; | ||||
| static i32 fcoder_metacmd_ID_reverse_search = 159; | ||||
| static i32 fcoder_metacmd_ID_reverse_search_identifier = 160; | ||||
| static i32 fcoder_metacmd_ID_save = 161; | ||||
| static i32 fcoder_metacmd_ID_save_all_dirty_buffers = 162; | ||||
| static i32 fcoder_metacmd_ID_save_to_query = 163; | ||||
| static i32 fcoder_metacmd_ID_search = 164; | ||||
| static i32 fcoder_metacmd_ID_search_identifier = 165; | ||||
| static i32 fcoder_metacmd_ID_seek_beginning_of_line = 166; | ||||
| static i32 fcoder_metacmd_ID_seek_beginning_of_textual_line = 167; | ||||
| static i32 fcoder_metacmd_ID_seek_end_of_line = 168; | ||||
| static i32 fcoder_metacmd_ID_seek_end_of_textual_line = 169; | ||||
| static i32 fcoder_metacmd_ID_select_all = 170; | ||||
| static i32 fcoder_metacmd_ID_select_next_scope_absolute = 171; | ||||
| static i32 fcoder_metacmd_ID_select_next_scope_after_current = 172; | ||||
| static i32 fcoder_metacmd_ID_select_prev_scope_absolute = 173; | ||||
| static i32 fcoder_metacmd_ID_select_prev_top_most_scope = 174; | ||||
| static i32 fcoder_metacmd_ID_select_surrounding_scope = 175; | ||||
| static i32 fcoder_metacmd_ID_select_surrounding_scope_maximal = 176; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_from_contents = 177; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_to_binary = 178; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_to_crlf = 179; | ||||
| static i32 fcoder_metacmd_ID_set_eol_mode_to_lf = 180; | ||||
| static i32 fcoder_metacmd_ID_set_mark = 181; | ||||
| static i32 fcoder_metacmd_ID_set_mode_to_notepad_like = 182; | ||||
| static i32 fcoder_metacmd_ID_set_mode_to_original = 183; | ||||
| static i32 fcoder_metacmd_ID_setup_build_bat = 184; | ||||
| static i32 fcoder_metacmd_ID_setup_build_bat_and_sh = 185; | ||||
| static i32 fcoder_metacmd_ID_setup_build_sh = 186; | ||||
| static i32 fcoder_metacmd_ID_setup_new_project = 187; | ||||
| static i32 fcoder_metacmd_ID_show_filebar = 188; | ||||
| static i32 fcoder_metacmd_ID_show_scrollbar = 189; | ||||
| static i32 fcoder_metacmd_ID_show_the_log_graph = 190; | ||||
| static i32 fcoder_metacmd_ID_snipe_backward_whitespace_or_token_boundary = 191; | ||||
| static i32 fcoder_metacmd_ID_snipe_forward_whitespace_or_token_boundary = 192; | ||||
| static i32 fcoder_metacmd_ID_snippet_lister = 193; | ||||
| static i32 fcoder_metacmd_ID_suppress_mouse = 194; | ||||
| static i32 fcoder_metacmd_ID_swap_panels = 195; | ||||
| static i32 fcoder_metacmd_ID_theme_lister = 196; | ||||
| static i32 fcoder_metacmd_ID_to_lowercase = 197; | ||||
| static i32 fcoder_metacmd_ID_to_uppercase = 198; | ||||
| static i32 fcoder_metacmd_ID_toggle_filebar = 199; | ||||
| static i32 fcoder_metacmd_ID_toggle_fps_meter = 200; | ||||
| static i32 fcoder_metacmd_ID_toggle_fullscreen = 201; | ||||
| static i32 fcoder_metacmd_ID_toggle_highlight_enclosing_scopes = 202; | ||||
| static i32 fcoder_metacmd_ID_toggle_highlight_line_at_cursor = 203; | ||||
| static i32 fcoder_metacmd_ID_toggle_line_numbers = 204; | ||||
| static i32 fcoder_metacmd_ID_toggle_line_wrap = 205; | ||||
| static i32 fcoder_metacmd_ID_toggle_mouse = 206; | ||||
| static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 207; | ||||
| static i32 fcoder_metacmd_ID_toggle_show_whitespace = 208; | ||||
| static i32 fcoder_metacmd_ID_toggle_virtual_whitespace = 209; | ||||
| static i32 fcoder_metacmd_ID_tutorial_maximize = 210; | ||||
| static i32 fcoder_metacmd_ID_tutorial_minimize = 211; | ||||
| static i32 fcoder_metacmd_ID_uncomment_line = 212; | ||||
| static i32 fcoder_metacmd_ID_undo = 213; | ||||
| static i32 fcoder_metacmd_ID_undo_all_buffers = 214; | ||||
| static i32 fcoder_metacmd_ID_view_buffer_other_panel = 215; | ||||
| static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 216; | ||||
| static i32 fcoder_metacmd_ID_word_complete = 217; | ||||
| static i32 fcoder_metacmd_ID_word_complete_drop_down = 218; | ||||
| static i32 fcoder_metacmd_ID_write_block = 219; | ||||
| static i32 fcoder_metacmd_ID_write_hack = 220; | ||||
| static i32 fcoder_metacmd_ID_write_note = 221; | ||||
| static i32 fcoder_metacmd_ID_write_space = 222; | ||||
| static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 223; | ||||
| static i32 fcoder_metacmd_ID_write_text_input = 224; | ||||
| static i32 fcoder_metacmd_ID_write_todo = 225; | ||||
| static i32 fcoder_metacmd_ID_write_underscore = 226; | ||||
| static i32 fcoder_metacmd_ID_write_zero_struct = 227; | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue