a4.0.7
parent
180b4016d1
commit
86c6780a5d
5
4ed.cpp
5
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"
|
"and if you load README.txt you'll find all the key combos there are.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Newest features:\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"
|
||||||
|
"-<alt d> 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"
|
"-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"
|
"-Scroll bars are now toggleable with ALT-s for show and ALT-w for hide\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
|
@ -19,6 +19,20 @@ if you start digging and pressing hard enough.
|
||||||
INSTRUCTIONS FOR USE
|
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****
|
****Changes in 4.0.3****
|
||||||
4coder now uses 0% CPU when you are not using it.
|
4coder now uses 0% CPU when you are not using it.
|
||||||
|
|
||||||
|
|
|
@ -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):
|
Functions to implement (optional in the dll, but required if you are using buildsuper.bat):
|
||||||
get_bindings
|
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:
|
NEW IN 4.0.3:
|
||||||
================
|
================
|
||||||
The build system for customizations has been changed. There is no longer a 4coder_custom.cpp.
|
The build system for customizations has been changed. There is no longer a 4coder_custom.cpp.
|
||||||
|
|
1
TODO.txt
1
TODO.txt
|
@ -101,6 +101,7 @@
|
||||||
; [X] kill rect
|
; [X] kill rect
|
||||||
; [X] add high DPI support
|
; [X] add high DPI support
|
||||||
;
|
;
|
||||||
|
; [] generate documentation for custom API
|
||||||
; [] OS font rendering
|
; [] OS font rendering
|
||||||
; [] support full length unicode file names
|
; [] support full length unicode file names
|
||||||
;
|
;
|
||||||
|
|
|
@ -16,7 +16,13 @@ SET EXPORTS=/EXPORT:get_bindings /EXPORT:get_alpha_4coder_version
|
||||||
REM SET LINKS=user32.lib gdi32.lib
|
REM SET LINKS=user32.lib gdi32.lib
|
||||||
SET LINKS=
|
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
|
REM file spammation preventation
|
||||||
del *.exp
|
del *.exp
|
||||||
|
|
|
@ -107,7 +107,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "../4coder_default_include.cpp"
|
#include "4coder_default_include.cpp"
|
||||||
|
|
||||||
#ifndef Assert
|
#ifndef Assert
|
||||||
#define internal static
|
#define internal static
|
||||||
|
@ -297,38 +297,40 @@ PeekToken(tokenizer *Tokenizer)
|
||||||
return(Result);
|
return(Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool
|
#define casey_bool int
|
||||||
|
|
||||||
|
inline casey_bool
|
||||||
IsH(String extension)
|
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("hpp")) ||
|
||||||
match(extension, make_lit_string("hin")));
|
match(extension, make_lit_string("hin")));
|
||||||
|
|
||||||
return(Result);
|
return(Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool
|
inline casey_bool
|
||||||
IsCPP(String extension)
|
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("cpp")) ||
|
||||||
match(extension, make_lit_string("cin")));
|
match(extension, make_lit_string("cin")));
|
||||||
|
|
||||||
return(Result);
|
return(Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool
|
inline casey_bool
|
||||||
IsINL(String extension)
|
IsINL(String extension)
|
||||||
{
|
{
|
||||||
bool Result = (match(extension, make_lit_string("inl")));
|
casey_bool Result = (match(extension, make_lit_string("inl")));
|
||||||
|
|
||||||
return(Result);
|
return(Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool
|
inline casey_bool
|
||||||
IsCode(String extension)
|
IsCode(String extension)
|
||||||
{
|
{
|
||||||
bool Result = (IsH(extension) || IsCPP(extension) || IsINL(extension));
|
casey_bool Result = (IsH(extension) || IsCPP(extension) || IsINL(extension));
|
||||||
|
|
||||||
return(Result);
|
return(Result);
|
||||||
}
|
}
|
||||||
|
@ -401,7 +403,7 @@ CUSTOM_COMMAND_SIG(casey_kill_to_end_of_line)
|
||||||
View_Summary view = app->get_active_view(app);
|
View_Summary view = app->get_active_view(app);
|
||||||
|
|
||||||
int pos2 = view.cursor.pos;
|
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);
|
app->refresh_view(app, &view);
|
||||||
int pos1 = view.cursor.pos;
|
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)
|
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);
|
exec_command(app, auto_tab_line_at_cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
CUSTOM_COMMAND_SIG(casey_seek_beginning_of_line)
|
CUSTOM_COMMAND_SIG(casey_seek_beginning_of_line)
|
||||||
{
|
{
|
||||||
exec_command(app, auto_tab_line_at_cursor);
|
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
|
struct switch_to_result
|
||||||
{
|
{
|
||||||
bool Switched;
|
casey_bool Switched;
|
||||||
bool Loaded;
|
casey_bool Loaded;
|
||||||
View_Summary view;
|
View_Summary view;
|
||||||
Buffer_Summary buffer;
|
Buffer_Summary buffer;
|
||||||
};
|
};
|
||||||
|
@ -459,7 +461,7 @@ SanitizeSlashes(String Value)
|
||||||
}
|
}
|
||||||
|
|
||||||
inline switch_to_result
|
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 = {};
|
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)
|
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);
|
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_comma, casey_goto_previous_error);
|
||||||
DEFINE_MODAL_KEY(modal_period, casey_fill_paragraph);
|
DEFINE_MODAL_KEY(modal_period, casey_fill_paragraph);
|
||||||
DEFINE_MODAL_KEY(modal_forward_slash, cmdid_change_active_panel);
|
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_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_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
|
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_right, seek_white_or_token_right, move_right);
|
||||||
DEFINE_BIMODAL_KEY(modal_delete, casey_delete_token_right, delete_char);
|
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_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_up, cmdid_page_up, seek_whitespace_up);
|
||||||
DEFINE_BIMODAL_KEY(modal_page_down, cmdid_page_down, seek_whitespace_down);
|
DEFINE_BIMODAL_KEY(modal_page_down, cmdid_page_down, seek_whitespace_down);
|
||||||
DEFINE_BIMODAL_KEY(modal_tab, cmdid_word_complete, cmdid_word_complete);
|
DEFINE_BIMODAL_KEY(modal_tab, cmdid_word_complete, cmdid_word_complete);
|
||||||
|
@ -1279,10 +1281,10 @@ HOOK_SIG(casey_file_settings)
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
casey_bool
|
||||||
CubicUpdateFixedDuration1(float *P0, float *V0, float P1, float V1, float Duration, float dt)
|
CubicUpdateFixedDuration1(float *P0, float *V0, float P1, float V1, float Duration, float dt)
|
||||||
{
|
{
|
||||||
bool Result = false;
|
casey_bool Result = false;
|
||||||
|
|
||||||
if(dt > 0)
|
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_up, MDFR_NONE, search);
|
||||||
bind(context, key_page_down, MDFR_NONE, reverse_search);
|
bind(context, key_page_down, MDFR_NONE, reverse_search);
|
||||||
bind(context, 'm', MDFR_NONE, casey_save_and_make_without_asking);
|
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);
|
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_NONE, modal_tab);
|
||||||
bind(context, '\t', MDFR_SHIFT, modal_tab);
|
bind(context, '\t', MDFR_SHIFT, modal_tab);
|
||||||
|
|
||||||
end_map(context);
|
end_map(context);
|
||||||
|
|
||||||
end_bind_helper(context);
|
end_bind_helper(context);
|
||||||
|
|
Loading…
Reference in New Issue