From e3ba01570a854f15dab4c14b6dcc0fe5182a5f3f Mon Sep 17 00:00:00 2001 From: PS Date: Sat, 10 Feb 2024 15:54:29 -0800 Subject: [PATCH] Backspace in file search deletes whole word --- TODO.md | 9 ++++----- code/custom/4coder_lists.cpp | 7 +------ code/custom/generated/command_metadata.h | 14 +++++++------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/TODO.md b/TODO.md index 7e60f282..c8a97f80 100644 --- a/TODO.md +++ b/TODO.md @@ -4,20 +4,19 @@ PRIME DIRECTIVE: SIMPLIFY ## Necessary [] fix project creation - this should just work out of the box [] remove automatic code layout for now -[] move my custom layer over -[] multi cursor editing [] remove parser [] fast enough to go read a node_modules folder and search on it -[] backspace through entire filename in navigation strip at top ## Nice to Have [] 4coder projects should have a startup script - so you can do things like add cl to the path [] Look into removing *keyboard* buffer - seems like over long sessions, that could get out of hand - - good first step: print out the memory footprint of this buffer when we exit 4coder, just so we can see what it's taking up +- good first step: print out the memory footprint of this buffer when we exit 4coder, just so we can see what it's taking up +[] multi cursor editing ## Investigations [] What are fade ranges? Do we need them? # DONE [x] reload dirty files if there are no local edits to them automatically -[x] remove audio (search @Remove) \ No newline at end of file +[x] remove audio (search @Remove) +[x] backspace through entire filename in navigation strip at top \ No newline at end of file diff --git a/code/custom/4coder_lists.cpp b/code/custom/4coder_lists.cpp index 056381ce..19b5fc1a 100644 --- a/code/custom/4coder_lists.cpp +++ b/code/custom/4coder_lists.cpp @@ -274,12 +274,7 @@ lister__backspace_text_field__file_path(Application_Links *app){ User_Input input = get_current_input(app); String_Const_u8 text_field = lister->text_field.string; String_Const_u8 new_hot = string_remove_last_folder(text_field); - b32 is_modified = has_modifier(&input, KeyCode_Control); - b32 whole_word_when_mod = def_get_config_b32(vars_save_string_lit("lister_whole_word_backspace_when_modified")); - b32 whole_word_backspace = (is_modified == whole_word_when_mod); - if (whole_word_backspace){ - lister->text_field.size = new_hot.size; - } + lister->text_field.size = new_hot.size; set_hot_directory(app, new_hot); // TODO(allen): We have to protect against lister_call_refresh_handler // changing the text_field here. Clean this up. diff --git a/code/custom/generated/command_metadata.h b/code/custom/generated/command_metadata.h index 4371eb46..57441fd7 100644 --- a/code/custom/generated/command_metadata.h +++ b/code/custom/generated/command_metadata.h @@ -320,7 +320,7 @@ static Command_Metadata fcoder_metacmd_table[269] = { { PROC_LINKS(close_build_panel, 0), false, "close_build_panel", 17, "If the special build panel is open, closes it.", 46, "C:\\projects\\4coder_gs\\code\\custom\\4coder_build_commands.cpp", 59, 175 }, { PROC_LINKS(close_panel, 0), false, "close_panel", 11, "Closes the currently active panel if it is not the only panel open.", 67, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 809 }, { PROC_LINKS(command_documentation, 0), true, "command_documentation", 21, "Prompts the user to select a command then loads a doc buffer for that item", 74, "C:\\projects\\4coder_gs\\code\\custom\\4coder_docs.cpp", 49, 190 }, -{ PROC_LINKS(command_lister, 0), true, "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 761 }, +{ PROC_LINKS(command_lister, 0), true, "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 756 }, { PROC_LINKS(comment_line, 0), false, "comment_line", 12, "Insert '//' at the beginning of the line after leading whitespace.", 66, "C:\\projects\\4coder_gs\\code\\custom\\4coder_combined_write_commands.cpp", 68, 125 }, { PROC_LINKS(comment_line_toggle, 0), false, "comment_line_toggle", 19, "Turns uncommented lines into commented lines and vice versa for comments starting with '//'.", 92, "C:\\projects\\4coder_gs\\code\\custom\\4coder_combined_write_commands.cpp", 68, 149 }, { PROC_LINKS(copy, 0), false, "copy", 4, "Copy the text in the range from the cursor to the mark onto the clipboard.", 74, "C:\\projects\\4coder_gs\\code\\custom\\4coder_clipboard.cpp", 54, 110 }, @@ -365,11 +365,11 @@ static Command_Metadata fcoder_metacmd_table[269] = { { PROC_LINKS(if_read_only_goto_position, 0), false, "if_read_only_goto_position", 26, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor.", 106, "C:\\projects\\4coder_gs\\code\\custom\\4coder_jump_sticky.cpp", 56, 564 }, { PROC_LINKS(if_read_only_goto_position_same_panel, 0), false, "if_read_only_goto_position_same_panel", 37, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor_same_panel.", 117, "C:\\projects\\4coder_gs\\code\\custom\\4coder_jump_sticky.cpp", 56, 581 }, { PROC_LINKS(increase_face_size, 0), false, "increase_face_size", 18, "Increase the size of the face used by the current buffer.", 57, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 881 }, -{ PROC_LINKS(interactive_kill_buffer, 0), true, "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 521 }, -{ PROC_LINKS(interactive_new, 0), true, "interactive_new", 15, "Interactively creates a new file.", 33, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 661 }, -{ PROC_LINKS(interactive_open, 0), true, "interactive_open", 16, "Interactively opens a file.", 27, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 715 }, -{ PROC_LINKS(interactive_open_or_new, 0), true, "interactive_open_or_new", 23, "Interactively open a file out of the file system.", 49, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 612 }, -{ PROC_LINKS(interactive_switch_buffer, 0), true, "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 511 }, +{ PROC_LINKS(interactive_kill_buffer, 0), true, "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 516 }, +{ PROC_LINKS(interactive_new, 0), true, "interactive_new", 15, "Interactively creates a new file.", 33, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 656 }, +{ PROC_LINKS(interactive_open, 0), true, "interactive_open", 16, "Interactively opens a file.", 27, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 710 }, +{ PROC_LINKS(interactive_open_or_new, 0), true, "interactive_open_or_new", 23, "Interactively open a file out of the file system.", 49, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 607 }, +{ PROC_LINKS(interactive_switch_buffer, 0), true, "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 506 }, { PROC_LINKS(jump_to_definition, 0), true, "jump_to_definition", 18, "List all definitions in the code index and jump to one chosen by the user.", 74, "C:\\projects\\4coder_gs\\code\\custom\\4coder_code_index_listers.cpp", 63, 12 }, { PROC_LINKS(jump_to_definition_at_cursor, 0), true, "jump_to_definition_at_cursor", 28, "Jump to the first definition in the code index matching an identifier at the cursor", 83, "C:\\projects\\4coder_gs\\code\\custom\\4coder_code_index_listers.cpp", 63, 68 }, { PROC_LINKS(jump_to_last_point, 0), false, "jump_to_last_point", 18, "Read from the top of the point stack and jump there; if already there pop the top and go to the next option", 107, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 1471 }, @@ -528,7 +528,7 @@ static Command_Metadata fcoder_metacmd_table[269] = { { PROC_LINKS(string_repeat, 0), false, "string_repeat", 13, "Example of query_user_string and query_user_number", 50, "C:\\projects\\4coder_gs\\code\\custom\\4coder_examples.cpp", 53, 179 }, { PROC_LINKS(suppress_mouse, 0), false, "suppress_mouse", 14, "Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.", 83, "C:\\projects\\4coder_gs\\code\\custom\\4coder_default_framework.cpp", 62, 475 }, { PROC_LINKS(swap_panels, 0), false, "swap_panels", 11, "Swaps the active panel with it's sibling.", 41, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 1844 }, -{ PROC_LINKS(theme_lister, 0), true, "theme_lister", 12, "Opens an interactive list of all registered themes.", 51, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 785 }, +{ PROC_LINKS(theme_lister, 0), true, "theme_lister", 12, "Opens an interactive list of all registered themes.", 51, "C:\\projects\\4coder_gs\\code\\custom\\4coder_lists.cpp", 50, 780 }, { PROC_LINKS(to_lowercase, 0), false, "to_lowercase", 12, "Converts all ascii text in the range between the cursor and the mark to lowercase.", 82, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 702 }, { PROC_LINKS(to_uppercase, 0), false, "to_uppercase", 12, "Converts all ascii text in the range between the cursor and the mark to uppercase.", 82, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 689 }, { PROC_LINKS(toggle_filebar, 0), false, "toggle_filebar", 14, "Toggles the visibility status of the current view's filebar.", 60, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 846 },