From 86c6780a5dd0a01aa966eff85d4e3f1580fcc6c8 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Sat, 11 Jun 2016 10:46:00 -0400 Subject: [PATCH] a4.0.7 --- 4ed.cpp | 5 +++++ README_body.txt | 14 ++++++++++++ SUPERREADME_body.txt | 16 +++++++++++++ TODO.txt | 1 + buildsuper.bat | 8 ++++++- power/4coder_casey.cpp | 51 ++++++++++++++++++++++++------------------ 6 files changed, 72 insertions(+), 23 deletions(-) diff --git a/4ed.cpp b/4ed.cpp index aa9f6b1e..06237dbf 100644 --- a/4ed.cpp +++ b/4ed.cpp @@ -4056,6 +4056,11 @@ App_Step_Sig(app_step){ "and if you load README.txt you'll find all the key combos there are.\n" "\n" "Newest features:\n" + "-Right click sets the mark\n" + "-Clicks are now have key codes so they can have event bound in customizations\n" + "- opens a debug view, see more in README.txt\n" + "\n" + "New in alpha 4.0.6:\n" "-Tied the view scrolling and the list arrow navigation together\n" "-Scroll bars are now toggleable with ALT-s for show and ALT-w for hide\n" "\n" diff --git a/README_body.txt b/README_body.txt index e23e22a1..49e18046 100644 --- a/README_body.txt +++ b/README_body.txt @@ -19,6 +19,20 @@ if you start digging and pressing hard enough. INSTRUCTIONS FOR USE ----------------------------------------------------- +****Changes in 4.0.7**** +Right clicking in a buffer now sets the mark. + +alt + d: brings up the debug view from which there are several options: + i - input + m - memory and threads + v - views +more debug features coming in the future. This is mostly here so that +I can help everyone gather better data for bug reports and get them +fixed more easily. + +****Changes in 4.0.5**** +Improved indentation rule + ****Changes in 4.0.3**** 4coder now uses 0% CPU when you are not using it. diff --git a/SUPERREADME_body.txt b/SUPERREADME_body.txt index 67a100e6..245dff31 100644 --- a/SUPERREADME_body.txt +++ b/SUPERREADME_body.txt @@ -19,6 +19,22 @@ See comments in 4coder_default_bindings.cpp for more detailed information. Functions to implement (optional in the dll, but required if you are using buildsuper.bat): get_bindings +NEW IN 4.0.7 +================ +Moved a lot of commands to the custom side. Almost all of them have the same name +they use to have just without cmdid_ on the front. Other than that cmdid_backspace +became backspace_char, and cmdid_delete became delete_char. + +Left and right clicks are now associated to key codes for bindings + +app->get_mouse_state returns the current mouse + +NEW IN 4.0.5: +================ +app->buffer_compute_cursor to get cursor position info without moving the cursor + +can now use f keys for bindings + NEW IN 4.0.3: ================ The build system for customizations has been changed. There is no longer a 4coder_custom.cpp. diff --git a/TODO.txt b/TODO.txt index 956be7f9..bf123c30 100644 --- a/TODO.txt +++ b/TODO.txt @@ -101,6 +101,7 @@ ; [X] kill rect ; [X] add high DPI support ; +; [] generate documentation for custom API ; [] OS font rendering ; [] support full length unicode file names ; diff --git a/buildsuper.bat b/buildsuper.bat index 105a74b3..ff61e173 100644 --- a/buildsuper.bat +++ b/buildsuper.bat @@ -16,7 +16,13 @@ SET EXPORTS=/EXPORT:get_bindings /EXPORT:get_alpha_4coder_version REM SET LINKS=user32.lib gdi32.lib SET LINKS= -cl %OPTS% %DEBUG% %SRC% %LINKS% /Fe4coder_custom %BUILD_DLL% %EXPORTS% +REM This stores the path of the buildsuper.bat script +REM in CODE_HOME. This way you can always include the +REM default files no matter where you store your code. +REM And no matter how you call buildsuper.bat. +SET CODE_HOME=%~dp0 + +cl /I%CODE_HOME% %OPTS% %DEBUG% %SRC% %LINKS% /Fe4coder_custom %BUILD_DLL% %EXPORTS% REM file spammation preventation del *.exp diff --git a/power/4coder_casey.cpp b/power/4coder_casey.cpp index cbb0992c..aab5054b 100644 --- a/power/4coder_casey.cpp +++ b/power/4coder_casey.cpp @@ -107,7 +107,7 @@ #include #include -#include "../4coder_default_include.cpp" +#include "4coder_default_include.cpp" #ifndef Assert #define internal static @@ -297,38 +297,40 @@ PeekToken(tokenizer *Tokenizer) return(Result); } -inline bool +#define casey_bool int + +inline casey_bool IsH(String extension) { - bool Result = (match(extension, make_lit_string("h")) || + casey_bool Result = (match(extension, make_lit_string("h")) || match(extension, make_lit_string("hpp")) || match(extension, make_lit_string("hin"))); return(Result); } -inline bool +inline casey_bool IsCPP(String extension) { - bool Result = (match(extension, make_lit_string("c")) || + casey_bool Result = (match(extension, make_lit_string("c")) || match(extension, make_lit_string("cpp")) || match(extension, make_lit_string("cin"))); return(Result); } -inline bool +inline casey_bool IsINL(String extension) { - bool Result = (match(extension, make_lit_string("inl"))); + casey_bool Result = (match(extension, make_lit_string("inl"))); return(Result); } -inline bool +inline casey_bool IsCode(String extension) { - bool Result = (IsH(extension) || IsCPP(extension) || IsINL(extension)); + casey_bool Result = (IsH(extension) || IsCPP(extension) || IsINL(extension)); return(Result); } @@ -401,7 +403,7 @@ CUSTOM_COMMAND_SIG(casey_kill_to_end_of_line) View_Summary view = app->get_active_view(app); int pos2 = view.cursor.pos; - exec_command(app, cmdid_seek_end_of_line); + exec_command(app, seek_end_of_line); app->refresh_view(app, &view); int pos1 = view.cursor.pos; @@ -426,20 +428,20 @@ CUSTOM_COMMAND_SIG(casey_paste_and_tab) CUSTOM_COMMAND_SIG(casey_seek_beginning_of_line_and_tab) { - exec_command(app, cmdid_seek_beginning_of_line); + exec_command(app, seek_beginning_of_line); exec_command(app, auto_tab_line_at_cursor); } CUSTOM_COMMAND_SIG(casey_seek_beginning_of_line) { exec_command(app, auto_tab_line_at_cursor); - exec_command(app, cmdid_seek_beginning_of_line); + exec_command(app, seek_beginning_of_line); } struct switch_to_result { - bool Switched; - bool Loaded; + casey_bool Switched; + casey_bool Loaded; View_Summary view; Buffer_Summary buffer; }; @@ -459,7 +461,7 @@ SanitizeSlashes(String Value) } inline switch_to_result -SwitchToOrLoadFile(struct Application_Links *app, String FileName, bool CreateIfNotFound = false) +SwitchToOrLoadFile(struct Application_Links *app, String FileName, casey_bool CreateIfNotFound = false) { switch_to_result Result = {}; @@ -645,10 +647,10 @@ CUSTOM_COMMAND_SIG(casey_save_and_make_without_asking) } } -internal bool +internal casey_bool casey_errors_are_the_same(Parsed_Error a, Parsed_Error b) { - bool result = ((a.exists == b.exists) && compare(a.target_file_name, b.target_file_name) && (a.target_line_number == b.target_line_number)); + casey_bool result = ((a.exists == b.exists) && compare(a.target_file_name, b.target_file_name) && (a.target_line_number == b.target_line_number)); return(result); } @@ -1189,7 +1191,7 @@ DEFINE_MODAL_KEY(modal_single_quote, casey_call_keyboard_macro); DEFINE_MODAL_KEY(modal_comma, casey_goto_previous_error); DEFINE_MODAL_KEY(modal_period, casey_fill_paragraph); DEFINE_MODAL_KEY(modal_forward_slash, cmdid_change_active_panel); -DEFINE_MODAL_KEY(modal_semicolon, cmdid_cursor_mark_swap); // TODO(casey): Maybe cmdid_history_backward? +DEFINE_MODAL_KEY(modal_semicolon, cursor_mark_swap); // TODO(casey): Maybe cmdid_history_backward? DEFINE_BIMODAL_KEY(modal_open_bracket, casey_begin_keyboard_macro_recording, write_and_auto_tab); DEFINE_BIMODAL_KEY(modal_close_bracket, casey_end_keyboard_macro_recording, write_and_auto_tab); DEFINE_MODAL_KEY(modal_a, write_character); // TODO(casey): Arbitrary command + casey_quick_calc @@ -1239,7 +1241,7 @@ DEFINE_BIMODAL_KEY(modal_left, seek_white_or_token_left, move_left); DEFINE_BIMODAL_KEY(modal_right, seek_white_or_token_right, move_right); DEFINE_BIMODAL_KEY(modal_delete, casey_delete_token_right, delete_char); DEFINE_BIMODAL_KEY(modal_home, casey_seek_beginning_of_line, casey_seek_beginning_of_line_and_tab); -DEFINE_BIMODAL_KEY(modal_end, cmdid_seek_end_of_line, cmdid_seek_end_of_line); +DEFINE_BIMODAL_KEY(modal_end, seek_end_of_line, seek_end_of_line); DEFINE_BIMODAL_KEY(modal_page_up, cmdid_page_up, seek_whitespace_up); DEFINE_BIMODAL_KEY(modal_page_down, cmdid_page_down, seek_whitespace_down); DEFINE_BIMODAL_KEY(modal_tab, cmdid_word_complete, cmdid_word_complete); @@ -1279,10 +1281,10 @@ HOOK_SIG(casey_file_settings) return(0); } -bool +casey_bool CubicUpdateFixedDuration1(float *P0, float *V0, float P1, float V1, float Duration, float dt) { - bool Result = false; + casey_bool Result = false; if(dt > 0) { @@ -1488,6 +1490,11 @@ extern "C" GET_BINDING_DATA(get_bindings) bind(context, key_page_up, MDFR_NONE, search); bind(context, key_page_down, MDFR_NONE, reverse_search); bind(context, 'm', MDFR_NONE, casey_save_and_make_without_asking); + + // NOTE(allen): Added this so mouse would keep working rougly as before. + // Of course now there could be a modal click behavior if that will be useful. + // As well as right click. + bind(context, key_mouse_left, MDFR_NONE, click_set_cursor); } end_map(context); @@ -1587,7 +1594,7 @@ extern "C" GET_BINDING_DATA(get_bindings) bind(context, '\t', MDFR_NONE, modal_tab); bind(context, '\t', MDFR_SHIFT, modal_tab); - + end_map(context); end_bind_helper(context);