Cleaned up input, replaced all {0} with {}
This commit is contained in:
parent
c82d38d4a7
commit
1d5621f5b6
|
@ -82,16 +82,6 @@ ENUM(uint32_t, Memory_Protect_Flags){
|
|||
MemProtect_Execute = 0x4,
|
||||
};
|
||||
|
||||
/* DOC(User_Input_Type_ID specifies a type of user input event.) */
|
||||
ENUM(int32_t, User_Input_Type_ID){
|
||||
/* DOC(UserInputNone indicates that no event has occurred.) */
|
||||
UserInputNone = 0,
|
||||
/* DOC(UserInputKey indicates an event which can be described by a Key_Event_Data struct.) */
|
||||
UserInputKey = 1,
|
||||
/* DOC(UserInputMouse indicates an event which can be described by a Mouse_State struct.) */
|
||||
UserInputMouse = 2
|
||||
};
|
||||
|
||||
/* DOC(A Wrap_Indicator_Mode is used in the buffer setting BufferSetting_WrapIndicator to specify how to indicate that line has been wrapped.) */
|
||||
ENUM(int32_t, Wrap_Indicator_Mode){
|
||||
/* DOC(WrapIndicator_Hide tells the buffer rendering system not to put any indicator on wrapped lines.) */
|
||||
|
@ -290,25 +280,26 @@ ENUM(uint32_t, Set_Buffer_Flag){
|
|||
/* DOC(A Input_Type_Flag field specifies a set of input event types.) */
|
||||
ENUM(uint32_t, Input_Type_Flag){
|
||||
/* DOC(If EventOnAnyKey is set, all keyboard events are included in the set.) */
|
||||
EventOnAnyKey = 0x1,
|
||||
EventOnAnyKey = 0x1,
|
||||
/* DOC(If EventOnEsc is set, any press of the escape key is included in the set.) */
|
||||
EventOnEsc = 0x2,
|
||||
/* DOC(If EventOnLeftButton is set, left clicks are included in the set.) */
|
||||
EventOnLeftButton = 0x4,
|
||||
/* DOC(If EventOnRightButton is set, right clicks are included in the set.) */
|
||||
EventOnRightButton = 0x8,
|
||||
/* DOC(If EventOnWheel is set, any wheel movement is included in the set.) */
|
||||
EventOnWheel = 0x10,
|
||||
/* DOC(This is not totally implemented yet.) */
|
||||
EventOnMouseMove = 0x20,
|
||||
EventOnEsc = 0x2,
|
||||
|
||||
/* DOC(If EventOnButton is set, all mouse button events are included in the set.) */
|
||||
EventOnButton = (EventOnLeftButton | EventOnRightButton | EventOnWheel),
|
||||
/* DOC(This is not totally implemented yet.) */
|
||||
EventOnMouse = (EventOnButton | EventOnMouseMove),
|
||||
/* DOC(If EventOnLeftButton is set, left clicks and releases are included in the set.) */
|
||||
EventOnMouseLeftButton = 0x4,
|
||||
/* DOC(If EventOnRightButton is set, right clicks and releases are included in the set.) */
|
||||
EventOnMouseRightButton = 0x8,
|
||||
/* DOC(If EventOnWheel is set, any wheel movement is included in the set.) */
|
||||
EventOnMouseWheel = 0x10,
|
||||
/* DOC(If EventOnMouseMove is set, mouse movement events are included in the set.) */
|
||||
EventOnMouseMove = 0x20,
|
||||
|
||||
/* DOC(If EventOnAnimate is set, animate events are included in the set.) */
|
||||
EventOnAnimate = 0x40,
|
||||
/* DOC(If EventOnViewActivation is set, view activation and deactivation events are included in the set.) */
|
||||
EventOnViewActivation = 0x80,
|
||||
|
||||
/* DOC(EventAll is a catch all name for including all possible events in the set.) */
|
||||
EventAll = 0xFF
|
||||
EventAll = 0xFFFFFFFF,
|
||||
};
|
||||
|
||||
/* DOC(A Mouse_Cursor_Show_Type value specifes a mode for 4coder to handle the mouse cursor.) */
|
||||
|
@ -360,7 +351,7 @@ DOC_SEE(Key_Modifier) */
|
|||
};
|
||||
|
||||
// TODO(allen): GLOBAL_VAR meta parsing
|
||||
GLOBAL_VAR Key_Event_Data null_key_event_data = {0};
|
||||
GLOBAL_VAR Key_Event_Data null_key_event_data = {};
|
||||
|
||||
/* DOC(Mouse_State describes an entire mouse state complete with the position, left and right button states, the wheel state, and whether or not the mouse if in the window.) */
|
||||
STRUCT Mouse_State{
|
||||
|
@ -386,7 +377,7 @@ STRUCT Mouse_State{
|
|||
int32_t y;
|
||||
};
|
||||
|
||||
GLOBAL_VAR Mouse_State null_mouse_state = {0};
|
||||
GLOBAL_VAR Mouse_State null_mouse_state = {};
|
||||
|
||||
/* DOC(Range describes an integer range typically used for ranges within a buffer. Ranges are not used to pass into the API, but this struct is used for returns.
|
||||
|
||||
|
@ -640,7 +631,7 @@ STRUCT i32_Rect{
|
|||
int32_t y1;
|
||||
};
|
||||
|
||||
GLOBAL_VAR i32_Rect null_i32_rect = {0};
|
||||
GLOBAL_VAR i32_Rect null_i32_rect = {};
|
||||
|
||||
/*
|
||||
DOC(A four corner axis aligned rectangle, with floating point coordinates.)
|
||||
|
@ -652,7 +643,7 @@ STRUCT f32_Rect{
|
|||
float y1;
|
||||
};
|
||||
|
||||
GLOBAL_VAR f32_Rect null_f32_rect = {0};
|
||||
GLOBAL_VAR f32_Rect null_f32_rect = {};
|
||||
|
||||
/* DOC(View_Summary acts as a handle to a view and describes the state of the view.)
|
||||
DOC_SEE(Access_Flag)
|
||||
|
@ -1027,25 +1018,20 @@ UNION Generic_Command{
|
|||
|
||||
|
||||
/*
|
||||
DOC(User_Input describes a user input event which can be either a key press or mouse event.)
|
||||
DOC_SEE(User_Input_Type_ID)
|
||||
DOC(User_Input describes an event, such as key presses, mouse button presses, mouse moves,
|
||||
and also non-input related events like animation frames, and view activation changes.)
|
||||
DOC_SEE(Generic_Command)
|
||||
DOC_SEE(Key_Event_Data)
|
||||
DOC_SEE(Mouse_State)
|
||||
*/
|
||||
STRUCT User_Input{
|
||||
/* DOC(This field specifies whether the event was a key press or mouse event.) */
|
||||
User_Input_Type_ID type;
|
||||
/* DOC(This field indicates that an abort event has occurred and the command needs to shut down.) */
|
||||
bool32 abort;
|
||||
UNION{
|
||||
/* DOC(This field describes a key press event.) */
|
||||
Key_Event_Data key;
|
||||
/* DOC(This field describes a mouse input event.) */
|
||||
Mouse_State mouse;
|
||||
};
|
||||
/* DOC(The description of the event.) */
|
||||
Key_Event_Data key;
|
||||
/* DOC(If this event would trigger a command, this field specifies what the command would be.) */
|
||||
Generic_Command command;
|
||||
/* DOC(This field indicates that an abort event has occurred and the command needs to shut down.
|
||||
This can be set even if key and command are also set, in which case the command still needs to abort, and the key and command simply reflect
|
||||
what event triggered the abort event.) */
|
||||
bool32 abort;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -8,13 +8,13 @@ static Hard_Start_Result
|
|||
buffer_find_hard_start(Application_Links *app, Buffer_Summary *buffer, int32_t line_start, int32_t tab_width){
|
||||
tab_width -= 1;
|
||||
|
||||
Hard_Start_Result result = {0};
|
||||
Hard_Start_Result result = {};
|
||||
result.all_space = 1;
|
||||
result.indent_pos = 0;
|
||||
result.char_pos = line_start;
|
||||
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
stream.add_null = true;
|
||||
if (init_stream_chunk(&stream, app, buffer, line_start, data_chunk, sizeof(data_chunk))){
|
||||
int32_t still_looping = 1;
|
||||
|
@ -110,7 +110,7 @@ make_batch_from_indent_marks(Application_Links *app, Partition *arena, Buffer_Su
|
|||
Assert(edit_count <= edit_max);
|
||||
}
|
||||
|
||||
Buffer_Batch_Edit result = {0};
|
||||
Buffer_Batch_Edit result = {};
|
||||
result.str = str_base;
|
||||
result.str_len = (int32_t)(push_array(arena, char, 0) - str_base);
|
||||
result.edits = edits;
|
||||
|
@ -164,7 +164,7 @@ find_anchor_token(Application_Links *app, Buffer_Summary *buffer, Cpp_Token_Arra
|
|||
int32_t line_start, int32_t tab_width){
|
||||
#if 1
|
||||
// NOTE(allen): New implementation of find_anchor_token (4.0.26) revert if it is a problem.
|
||||
Indent_Anchor_Position anchor = {0};
|
||||
Indent_Anchor_Position anchor = {};
|
||||
|
||||
if (tokens.count > 0){
|
||||
Cpp_Token *first_invalid_token = get_first_token_at_line(app, buffer, tokens, line_start);
|
||||
|
@ -242,7 +242,7 @@ find_anchor_token(Application_Links *app, Buffer_Summary *buffer, Cpp_Token_Arra
|
|||
|
||||
#else
|
||||
// NOTE(allen): Old (4.0.25) implementation of find_anchor_token.
|
||||
Indent_Anchor_Position anchor = {0};
|
||||
Indent_Anchor_Position anchor = {};
|
||||
|
||||
if (tokens.count != 0){
|
||||
anchor.token = get_first_token_at_line(app, buffer, tokens, line_start);
|
||||
|
@ -352,7 +352,7 @@ get_indentation_marks(Application_Links *app, Partition *arena, Buffer_Summary *
|
|||
// Decide where to start indentation parsing.
|
||||
Indent_Anchor_Position anchor = find_anchor_token(app, buffer, tokens, first_line, tab_width);
|
||||
Cpp_Token *token_ptr = anchor.token;
|
||||
Indent_Parse_State indent = {0};
|
||||
Indent_Parse_State indent = {};
|
||||
indent.current_indent = anchor.indentation;
|
||||
|
||||
if (token_ptr == 0){
|
||||
|
@ -372,8 +372,8 @@ get_indentation_marks(Application_Links *app, Partition *arena, Buffer_Summary *
|
|||
|
||||
int32_t next_line_start_pos = buffer_get_line_start(app, buffer, line_number);
|
||||
indent.previous_line_indent = indent.current_indent;
|
||||
Cpp_Token prev_token = {0};
|
||||
Cpp_Token token = {0};
|
||||
Cpp_Token prev_token = {};
|
||||
Cpp_Token token = {};
|
||||
if (token_ptr < tokens.tokens + tokens.count){
|
||||
token = *token_ptr;
|
||||
}
|
||||
|
@ -462,7 +462,7 @@ get_indentation_marks(Application_Links *app, Partition *arena, Buffer_Summary *
|
|||
bool32 statement_complete = false;
|
||||
|
||||
Cpp_Token *prev_usable_token_ptr = token_ptr - 1;
|
||||
Cpp_Token prev_usable_token = {0};
|
||||
Cpp_Token prev_usable_token = {};
|
||||
if (prev_usable_token_ptr >= tokens.tokens){
|
||||
prev_usable_token = *prev_usable_token_ptr;
|
||||
}
|
||||
|
@ -678,7 +678,7 @@ buffer_auto_indent(Application_Links *app, Partition *part, Buffer_Summary *buff
|
|||
int32_t *indent_marks = get_indentation_marks(app, part, buffer, tokens, line_start, line_end, (flags & AutoIndent_ExactAlignBlock), tab_width);
|
||||
|
||||
// Stage 4: Set the Line Indents
|
||||
Indent_Options opts = {0};
|
||||
Indent_Options opts = {};
|
||||
opts.empty_blank_lines = (flags & AutoIndent_ClearLine);
|
||||
opts.use_tabs = (flags & AutoIndent_UseTab);
|
||||
opts.tab_width = tab_width;
|
||||
|
@ -753,7 +753,7 @@ CUSTOM_DOC("Inserts a character and auto-indents the line on which the cursor si
|
|||
|
||||
uint32_t flags = DEFAULT_INDENT_FLAGS;
|
||||
User_Input in = get_command_input(app);
|
||||
if (in.type == UserInputKey && in.key.character == '\n'){
|
||||
if (in.key.character == '\n'){
|
||||
flags |= AutoIndent_ExactAlignBlock;
|
||||
}
|
||||
buffer_auto_indent(app, &global_part, &buffer, view.cursor.pos, view.cursor.pos, DEF_TAB_WIDTH, DEFAULT_INDENT_FLAGS);
|
||||
|
|
|
@ -16,7 +16,7 @@ write_character_parameter(Application_Links *app, uint8_t *character, uint32_t l
|
|||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, access);
|
||||
int32_t pos = view.cursor.pos;
|
||||
|
||||
Marker next_cursor_marker = {0};
|
||||
Marker next_cursor_marker = {};
|
||||
next_cursor_marker.pos = character_pos_to_pos(app, &view, &buffer, view.cursor.character_pos);
|
||||
next_cursor_marker.lean_right = true;
|
||||
|
||||
|
@ -58,7 +58,7 @@ CUSTOM_DOC("Deletes the character to the right of the cursor.")
|
|||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, access);
|
||||
int32_t start = view.cursor.pos;
|
||||
if (0 <= start && start < buffer.size){
|
||||
Full_Cursor cursor = {0};
|
||||
Full_Cursor cursor = {};
|
||||
view_compute_cursor(app, &view, seek_character_pos(view.cursor.character_pos + 1), &cursor);
|
||||
int32_t end = cursor.pos;
|
||||
buffer_replace_range(app, &buffer, start, end, 0, 0);
|
||||
|
@ -76,7 +76,7 @@ CUSTOM_DOC("Deletes the character to the left of the cursor.")
|
|||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, access);
|
||||
int32_t end = view.cursor.pos;
|
||||
if (0 < end && end <= buffer.size){
|
||||
Full_Cursor cursor = {0};
|
||||
Full_Cursor cursor = {};
|
||||
view_compute_cursor(app, &view, seek_character_pos(view.cursor.character_pos - 1), &cursor);
|
||||
int32_t start = cursor.pos;
|
||||
buffer_replace_range(app, &buffer, start, end, 0, 0);
|
||||
|
@ -424,7 +424,7 @@ CUSTOM_DOC("Removes trailing whitespace from all lines in the current buffer.")
|
|||
Buffer_Edit *edits = (Buffer_Edit*)app->memory;
|
||||
|
||||
char data[1024];
|
||||
Stream_Chunk chunk = {0};
|
||||
Stream_Chunk chunk = {};
|
||||
|
||||
int32_t i = 0;
|
||||
if (init_stream_chunk(&chunk, app, &buffer, i, data, sizeof(data))){
|
||||
|
@ -630,7 +630,7 @@ CUSTOM_DOC("Queries the user for a number, and jumps the cursor to the correspon
|
|||
{
|
||||
uint32_t access = AccessProtected;
|
||||
|
||||
Query_Bar bar = {0};
|
||||
Query_Bar bar = {};
|
||||
char string_space[256];
|
||||
|
||||
bar.prompt = make_lit_string("Goto Line: ");
|
||||
|
@ -650,7 +650,7 @@ CUSTOM_COMMAND_SIG(reverse_search);
|
|||
static void
|
||||
isearch__update_highlight(Application_Links *app, View_Summary *view, Managed_Object highlight,
|
||||
int32_t start, int32_t end){
|
||||
Marker markers[4] = {0};
|
||||
Marker markers[4] = {};
|
||||
markers[0].pos = start;
|
||||
markers[1].pos = end;
|
||||
managed_object_store_data(app, highlight, 0, 2, markers);
|
||||
|
@ -665,7 +665,7 @@ isearch(Application_Links *app, bool32 start_reversed, String query_init, bool32
|
|||
return;
|
||||
}
|
||||
|
||||
Query_Bar bar = {0};
|
||||
Query_Bar bar = {};
|
||||
if (start_query_bar(app, &bar, 0) == 0){
|
||||
return;
|
||||
}
|
||||
|
@ -702,7 +702,7 @@ isearch(Application_Links *app, bool32 start_reversed, String query_init, bool32
|
|||
isearch__update_highlight(app, &view, highlight, match.start, match.end);
|
||||
cursor_is_hidden = true;
|
||||
|
||||
User_Input in = {0};
|
||||
User_Input in = {};
|
||||
for (;;){
|
||||
// NOTE(allen): Change the bar's prompt to match the current direction.
|
||||
if (reverse){
|
||||
|
@ -721,9 +721,6 @@ isearch(Application_Links *app, bool32 start_reversed, String query_init, bool32
|
|||
in = get_user_input(app, EventOnAnyKey, EventOnEsc);
|
||||
if (in.abort) break;
|
||||
|
||||
// NOTE(allen): If we're getting mouse events here it's a 4coder bug, because we only asked to intercept key events.
|
||||
Assert(in.type == UserInputKey);
|
||||
|
||||
uint8_t character[4];
|
||||
uint32_t length = to_writable_character(in, character);
|
||||
|
||||
|
@ -850,14 +847,14 @@ isearch(Application_Links *app, bool32 start_reversed, String query_init, bool32
|
|||
CUSTOM_COMMAND_SIG(search)
|
||||
CUSTOM_DOC("Begins an incremental search down through the current buffer for a user specified string.")
|
||||
{
|
||||
String query = {0};
|
||||
String query = {};
|
||||
isearch(app, false, query, false);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(reverse_search)
|
||||
CUSTOM_DOC("Begins an incremental search up through the current buffer for a user specified string.")
|
||||
{
|
||||
String query = {0};
|
||||
String query = {};
|
||||
isearch(app, true, query, false);
|
||||
}
|
||||
|
||||
|
@ -938,12 +935,12 @@ query_replace_base(Application_Links *app, View_Summary *view, Buffer_Summary *b
|
|||
marker_visual_set_view_key(app, visual, view->view_id);
|
||||
cursor_is_hidden = true;
|
||||
|
||||
User_Input in = {0};
|
||||
User_Input in = {};
|
||||
for (;new_pos < buffer->size;){
|
||||
Range match = make_range(new_pos, new_pos + r.size);
|
||||
isearch__update_highlight(app, view, highlight, match.min, match.max);
|
||||
|
||||
in = get_user_input(app, EventOnAnyKey, EventOnButton);
|
||||
in = get_user_input(app, EventOnAnyKey, EventOnMouseLeftButton|EventOnMouseRightButton);
|
||||
if (in.abort || in.key.keycode == key_esc || !key_is_unmodified(&in.key)) break;
|
||||
|
||||
if (in.key.character == 'y' || in.key.character == 'Y' ||
|
||||
|
@ -1011,7 +1008,7 @@ CUSTOM_DOC("Queries the user for two strings, and incrementally replaces every o
|
|||
return;
|
||||
}
|
||||
|
||||
Query_Bar replace = {0};
|
||||
Query_Bar replace = {};
|
||||
char replace_space[1024];
|
||||
replace.prompt = make_lit_string("Replace: ");
|
||||
replace.string = make_fixed_width_string(replace_space);
|
||||
|
@ -1035,7 +1032,7 @@ CUSTOM_DOC("Queries the user for a string, and incrementally replace every occur
|
|||
return;
|
||||
}
|
||||
|
||||
Range range = {0};
|
||||
Range range = {};
|
||||
char space[256];
|
||||
String replace = read_identifier_at_pos(app, &buffer, view.cursor.pos, space, sizeof(space), &range);
|
||||
|
||||
|
@ -1091,7 +1088,7 @@ save_all_dirty_buffers_with_postfix(Application_Links *app, String postfix){
|
|||
CUSTOM_COMMAND_SIG(save_all_dirty_buffers)
|
||||
CUSTOM_DOC("Saves all buffers marked dirty (showing the '*' indicator).")
|
||||
{
|
||||
String empty = {0};
|
||||
String empty = {};
|
||||
save_all_dirty_buffers_with_postfix(app, empty);
|
||||
}
|
||||
|
||||
|
@ -1125,7 +1122,7 @@ CUSTOM_DOC("Deletes the file of the current buffer if 4coder has the appropriate
|
|||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessAll);
|
||||
|
||||
if (buffer.file_name != 0){
|
||||
String file_name = {0};
|
||||
String file_name = {};
|
||||
file_name = make_string(buffer.file_name, buffer.file_name_len);
|
||||
|
||||
char space[4096];
|
||||
|
@ -1273,9 +1270,9 @@ CUSTOM_DOC("Swaps the line under the cursor with the line above it, and moves th
|
|||
return;
|
||||
}
|
||||
|
||||
Full_Cursor prev_line_cursor = {0};
|
||||
Full_Cursor this_line_cursor = {0};
|
||||
Full_Cursor next_line_cursor = {0};
|
||||
Full_Cursor prev_line_cursor = {};
|
||||
Full_Cursor this_line_cursor = {};
|
||||
Full_Cursor next_line_cursor = {};
|
||||
|
||||
int32_t this_line = view.cursor.line;
|
||||
int32_t prev_line = this_line - 1;
|
||||
|
@ -1336,7 +1333,7 @@ CUSTOM_DOC("Swaps the line under the cursor with the line below it, and moves th
|
|||
}
|
||||
|
||||
int32_t next_line = view.cursor.line + 1;
|
||||
Full_Cursor new_cursor = {0};
|
||||
Full_Cursor new_cursor = {};
|
||||
if (view_compute_cursor(app, &view, seek_line_char(next_line, 1), &new_cursor)){
|
||||
if (new_cursor.line == next_line){
|
||||
view_set_cursor(app, &view, seek_pos(new_cursor.pos), true);
|
||||
|
@ -1355,7 +1352,7 @@ CUSTOM_DOC("Create a copy of the line on which the cursor sits.")
|
|||
Partition *part = &global_part;
|
||||
|
||||
Temp_Memory temp = begin_temp_memory(part);
|
||||
String line_string = {0};
|
||||
String line_string = {};
|
||||
char *before_line = push_array(part, char, 1);
|
||||
if (read_line(app, part, &buffer, view.cursor.line, &line_string)){
|
||||
*before_line = '\n';
|
||||
|
@ -1406,7 +1403,7 @@ get_cpp_matching_file(Application_Links *app, Buffer_Summary buffer, Buffer_Summ
|
|||
append(&file_name, make_string(buffer.file_name, buffer.file_name_len));
|
||||
|
||||
String extension = file_extension(file_name);
|
||||
String new_extensions[2] = {0};
|
||||
String new_extensions[2] = {};
|
||||
int32_t new_extensions_count = 0;
|
||||
|
||||
if (match(extension, "cpp") || match(extension, "cc")){
|
||||
|
@ -1487,7 +1484,7 @@ CUSTOM_DOC("If the current file is a *.cpp or *.h, attempts to open the correspo
|
|||
View_Summary view = get_active_view(app, AccessAll);
|
||||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessAll);
|
||||
|
||||
Buffer_Summary new_buffer = {0};
|
||||
Buffer_Summary new_buffer = {};
|
||||
if (get_cpp_matching_file(app, buffer, &new_buffer)){
|
||||
get_next_view_looped_primary_panels(app, &view, AccessAll);
|
||||
view_set_buffer(app, &view, new_buffer.buffer_id, 0);
|
||||
|
|
|
@ -167,7 +167,7 @@ CUSTOM_DOC("Looks for a build.bat, build.sh, or makefile in the current and pare
|
|||
|
||||
static View_Summary
|
||||
get_or_open_build_panel(Application_Links *app){
|
||||
View_Summary view = {0};
|
||||
View_Summary view = {};
|
||||
Buffer_Summary buffer = GET_COMP_BUFFER(app);
|
||||
if (buffer.exists){
|
||||
view = get_first_view_with_buffer(app, buffer.buffer_id);
|
||||
|
|
|
@ -1140,7 +1140,7 @@ CUSTOM_COMMAND_SIG(casey_force_codelegal_characters)
|
|||
Buffer_Edit *edits = (Buffer_Edit*)app->memory;
|
||||
|
||||
char data[1024];
|
||||
Stream_Chunk chunk = {0};
|
||||
Stream_Chunk chunk = {};
|
||||
|
||||
int32_t i = 0;
|
||||
int32_t last_utf = 0;
|
||||
|
@ -1244,7 +1244,7 @@ casey_list_all_functions(Application_Links *app, Partition *part, Buffer_Summary
|
|||
|
||||
static const int32_t token_chunk_size = 512;
|
||||
Cpp_Token token_chunk[token_chunk_size];
|
||||
Stream_Tokens token_stream = {0};
|
||||
Stream_Tokens token_stream = {};
|
||||
|
||||
if (init_stream_tokens(&token_stream, app, buffer, 0, token_chunk, token_chunk_size)){
|
||||
Stream_Tokens start_position_stream_temp = begin_temp_stream_token(&token_stream);
|
||||
|
@ -1779,7 +1779,7 @@ struct Casey_Scroll_Velocity
|
|||
float x, y, t;
|
||||
};
|
||||
|
||||
Casey_Scroll_Velocity casey_scroll_velocity_[16] = {0};
|
||||
Casey_Scroll_Velocity casey_scroll_velocity_[16] = {};
|
||||
Casey_Scroll_Velocity *casey_scroll_velocity = casey_scroll_velocity_ - 1;
|
||||
|
||||
SCROLL_RULE_SIG(casey_smooth_scroll_rule){
|
||||
|
|
|
@ -74,7 +74,7 @@ CUSTOM_DOC("At the cursor, insert the text at the top of the clipboard.")
|
|||
view_set_cursor(app, &view, seek_pos(pos + len), true);
|
||||
|
||||
// TODO(allen): Send this to all views.
|
||||
Theme_Color paste = {0};
|
||||
Theme_Color paste = {};
|
||||
paste.tag = Stag_Paste;
|
||||
get_theme_colors(app, &paste, 1);
|
||||
view_post_fade(app, &view, 0.667f, pos, pos + len, paste.color);
|
||||
|
@ -119,7 +119,7 @@ CUSTOM_DOC("If the previous command was paste or paste_next, replaces the paste
|
|||
view_set_cursor(app, &view, seek_pos(pos + len), true);
|
||||
|
||||
// TODO(allen): Send this to all views.
|
||||
Theme_Color paste = {0};
|
||||
Theme_Color paste = {};
|
||||
paste.tag = Stag_Paste;
|
||||
get_theme_colors(app, &paste, 1);
|
||||
view_post_fade(app, &view, 0.667f, pos, pos + len, paste.color);
|
||||
|
|
|
@ -193,7 +193,7 @@ snippet_lister__parameterized(Application_Links *app, Snippet_Array snippet_arra
|
|||
CUSTOM_COMMAND_SIG(snippet_lister)
|
||||
CUSTOM_DOC("Opens a snippet lister for inserting whole pre-written snippets of text.")
|
||||
{
|
||||
Snippet_Array snippet_array = {0};
|
||||
Snippet_Array snippet_array = {};
|
||||
snippet_array.snippets = default_snippets;
|
||||
snippet_array.count = ArrayCount(default_snippets);
|
||||
snippet_lister__parameterized(app, snippet_array);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
static CString_Array
|
||||
get_code_extensions(Extension_List *list){
|
||||
CString_Array array = {0};
|
||||
CString_Array array = {};
|
||||
array.strings = default_extensions;
|
||||
array.count = ArrayCount(default_extensions);
|
||||
if (list->count != 0){
|
||||
|
@ -50,7 +50,7 @@ parse_extension_line_to_extension_list(String str, Extension_List *list){
|
|||
|
||||
static Error_Location
|
||||
get_error_location(char *base, char *pos){
|
||||
Error_Location location = {0};
|
||||
Error_Location location = {};
|
||||
location.line_number = 1;
|
||||
location.column_number = 1;
|
||||
for (char *ptr = base;
|
||||
|
@ -69,7 +69,7 @@ get_error_location(char *base, char *pos){
|
|||
|
||||
static String
|
||||
config_stringize_errors(Partition *arena, Config *parsed){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
if (parsed->errors.first != 0){
|
||||
result.str = push_array(arena, char, 0);
|
||||
result.memory_size = partition_remaining(arena);
|
||||
|
@ -104,7 +104,7 @@ config_parser__advance_to_next(Config_Parser *ctx){
|
|||
|
||||
static Config_Parser
|
||||
make_config_parser(Partition *arena, String file_name, String data, Cpp_Token_Array array){
|
||||
Config_Parser ctx = {0};
|
||||
Config_Parser ctx = {};
|
||||
ctx.start = array.tokens;
|
||||
ctx.token = ctx.start - 1;
|
||||
ctx.end = ctx.start + array.count;
|
||||
|
@ -129,7 +129,7 @@ config_parser__recognize_token(Config_Parser *ctx, Cpp_Token_Type type){
|
|||
|
||||
static String
|
||||
config_parser__get_lexeme(Config_Parser *ctx){
|
||||
String lexeme = {0};
|
||||
String lexeme = {};
|
||||
if (ctx->start <= ctx->token && ctx->token < ctx->end){
|
||||
lexeme = make_string(ctx->data.str + ctx->token->start, ctx->token->size);
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ config_parser__get_lexeme(Config_Parser *ctx){
|
|||
|
||||
static Config_Integer
|
||||
config_parser__get_int(Config_Parser *ctx){
|
||||
Config_Integer config_integer = {0};
|
||||
Config_Integer config_integer = {};
|
||||
String str = config_parser__get_lexeme(ctx);
|
||||
if (match(substr(str, 0, 2), "0x")){
|
||||
config_integer.is_signed = false;
|
||||
|
@ -512,7 +512,7 @@ config_parser__compound(Config_Parser *ctx){
|
|||
|
||||
static Config_Compound_Element*
|
||||
config_parser__element(Config_Parser *ctx){
|
||||
Config_Layout layout = {0};
|
||||
Config_Layout layout = {};
|
||||
layout.pos = config_parser__get_pos(ctx);
|
||||
if (config_parser__match_token(ctx, CPP_TOKEN_DOT)){
|
||||
if (config_parser__recognize_token(ctx, CPP_TOKEN_IDENTIFIER)){
|
||||
|
@ -568,7 +568,7 @@ config_var(Config *config, String var_name, int32_t subscript);
|
|||
|
||||
static Config_Get_Result
|
||||
config_evaluate_rvalue(Config *config, Config_Assignment *assignment, Config_RValue *r){
|
||||
Config_Get_Result result = {0};
|
||||
Config_Get_Result result = {};
|
||||
if (r != 0 && !assignment->visited){
|
||||
if (r->type == ConfigRValueType_LValue){
|
||||
assignment->visited = true;
|
||||
|
@ -613,7 +613,7 @@ config_evaluate_rvalue(Config *config, Config_Assignment *assignment, Config_RVa
|
|||
|
||||
static Config_Get_Result
|
||||
config_var(Config *config, String var_name, int32_t subscript){
|
||||
Config_Get_Result result = {0};
|
||||
Config_Get_Result result = {};
|
||||
Config_Assignment *assignment = config_lookup_assignment(config, var_name, subscript);
|
||||
if (assignment != 0){
|
||||
result = config_evaluate_rvalue(config, assignment, assignment->r);
|
||||
|
@ -623,7 +623,7 @@ config_var(Config *config, String var_name, int32_t subscript){
|
|||
|
||||
static Config_Get_Result
|
||||
config_compound_member(Config *config, Config_Compound *compound, String var_name, int32_t index){
|
||||
Config_Get_Result result = {0};
|
||||
Config_Get_Result result = {};
|
||||
int32_t implicit_index = 0;
|
||||
bool32 implicit_index_is_valid = true;
|
||||
for (Config_Compound_Element *element = compound->first;
|
||||
|
@ -655,7 +655,7 @@ config_compound_member(Config *config, Config_Compound *compound, String var_nam
|
|||
}break;
|
||||
}
|
||||
if (element_matches_query){
|
||||
Config_Assignment dummy_assignment = {0};
|
||||
Config_Assignment dummy_assignment = {};
|
||||
dummy_assignment.pos = element->l.pos;
|
||||
result = config_evaluate_rvalue(config, &dummy_assignment, element->r);
|
||||
break;
|
||||
|
@ -1207,7 +1207,7 @@ typed_no_type_array_reference_list(Partition *arena, Config *config, Config_Comp
|
|||
|
||||
static Config_Iteration_Step_Result
|
||||
typed_array_iteration_step(Config *parsed, Config_Compound *compound, Config_RValue_Type type, int32_t index){
|
||||
Config_Iteration_Step_Result result = {0};
|
||||
Config_Iteration_Step_Result result = {};
|
||||
result.step = Iteration_Quit;
|
||||
Config_Get_Result get_result = config_compound_member(parsed, compound, make_lit_string("~"), index);
|
||||
if (get_result.success){
|
||||
|
@ -1240,7 +1240,7 @@ typed_array_get_count(Config *parsed, Config_Compound *compound, Config_RValue_T
|
|||
|
||||
static Config_Get_Result_List
|
||||
typed_array_reference_list(Partition *arena, Config *parsed, Config_Compound *compound, Config_RValue_Type type){
|
||||
Config_Get_Result_List list = {0};
|
||||
Config_Get_Result_List list = {};
|
||||
for (int32_t i = 0;; ++i){
|
||||
Config_Iteration_Step_Result result = typed_array_iteration_step(parsed, compound, type, i);
|
||||
if (result.step == Iteration_Skip){
|
||||
|
@ -1295,12 +1295,12 @@ text_data_to_token_array(Partition *arena, String data){
|
|||
bool32 success = false;
|
||||
int32_t max_count = (1 << 20)/sizeof(Cpp_Token);
|
||||
Temp_Memory restore_point = begin_temp_memory(arena);
|
||||
Cpp_Token_Array array = {0};
|
||||
Cpp_Token_Array array = {};
|
||||
array.tokens = push_array(arena, Cpp_Token, max_count);
|
||||
if (array.tokens != 0){
|
||||
array.max_count = max_count;
|
||||
Cpp_Keyword_Table kw_table = {0};
|
||||
Cpp_Keyword_Table pp_table = {0};
|
||||
Cpp_Keyword_Table kw_table = {};
|
||||
Cpp_Keyword_Table pp_table = {};
|
||||
if (lexer_keywords_default_init(arena, &kw_table, &pp_table)){
|
||||
Cpp_Lex_Data S = cpp_lex_data_init(false, kw_table, pp_table);
|
||||
Cpp_Lex_Result result = cpp_lex_step(&S, data.str, data.size + 1, HAS_NULL_TERM, &array, NO_OUT_LIMIT);
|
||||
|
@ -1684,7 +1684,7 @@ load_config_and_apply(Application_Links *app, Partition *scratch, Config_Data *c
|
|||
change_theme(app, config->default_theme_name.str, config->default_theme_name.size);
|
||||
highlight_line_at_cursor = config->highlight_line_at_cursor;
|
||||
|
||||
Face_Description description = {0};
|
||||
Face_Description description = {};
|
||||
int32_t len = config->default_font_name.size;
|
||||
char *name_ptr = config->default_font_name.str;
|
||||
if (len > sizeof(description.font.name) - 1){
|
||||
|
@ -1708,7 +1708,7 @@ load_config_and_apply(Application_Links *app, Partition *scratch, Config_Data *c
|
|||
static void
|
||||
load_theme_file_into_live_set(Application_Links *app, Partition *scratch, char *file_name){
|
||||
Temp_Memory temp = begin_temp_memory(scratch);
|
||||
Theme_Data theme = {0};
|
||||
Theme_Data theme = {};
|
||||
Config *config = theme_parse__file_name(app, scratch, file_name, &theme);
|
||||
String error_text = config_stringize_errors(scratch, config);
|
||||
print_message(app, error_text.str, error_text.size);
|
||||
|
|
|
@ -27,7 +27,7 @@ lock_jump_buffer(Buffer_Summary buffer){
|
|||
|
||||
static View_Summary
|
||||
get_view_for_locked_jump_buffer(Application_Links *app){
|
||||
View_Summary view = {0};
|
||||
View_Summary view = {};
|
||||
if (locked_buffer.size > 0){
|
||||
Buffer_Summary buffer = get_buffer_by_name(app, locked_buffer.str, locked_buffer.size, AccessAll);
|
||||
if (buffer.exists){
|
||||
|
@ -290,7 +290,7 @@ CUSTOM_DOC("Toggle fullscreen mode on or off. The change(s) do not take effect
|
|||
CUSTOM_COMMAND_SIG(remap_interactive)
|
||||
CUSTOM_DOC("Switch to a named key binding map.")
|
||||
{
|
||||
Query_Bar bar = {0};
|
||||
Query_Bar bar = {};
|
||||
char space[1024];
|
||||
bar.prompt = make_lit_string("Map Name: ");
|
||||
bar.string = make_fixed_width_string(space);
|
||||
|
|
|
@ -59,12 +59,12 @@ enum{
|
|||
};
|
||||
static int32_t fcoder_mode = FCoderMode_Original;
|
||||
|
||||
static ID_Line_Column_Jump_Location prev_location = {0};
|
||||
static ID_Line_Column_Jump_Location prev_location = {};
|
||||
|
||||
|
||||
static Config_Data global_config = {0};
|
||||
static Config_Data global_config = {};
|
||||
|
||||
static char previous_isearch_query[256] = {0};
|
||||
static char previous_isearch_query[256] = {};
|
||||
|
||||
// BOTTOM
|
||||
|
||||
|
|
|
@ -107,10 +107,10 @@ sort_highlight_record(Highlight_Record *records, int32_t first, int32_t one_past
|
|||
static Range_Array
|
||||
get_enclosure_ranges(Application_Links *app, Partition *part,
|
||||
Buffer_Summary *buffer, int32_t pos, uint32_t flags){
|
||||
Range_Array array = {0};
|
||||
Range_Array array = {};
|
||||
array.ranges = push_array(part, Range, 0);
|
||||
for (;;){
|
||||
Range range = {0};
|
||||
Range range = {};
|
||||
if (find_scope_range(app, buffer, pos, &range, flags)){
|
||||
Range *r = push_array(part, Range, 1);
|
||||
*r = range;
|
||||
|
@ -147,7 +147,7 @@ mark_enclosures(Application_Links *app, Partition *scratch, Managed_Scope render
|
|||
Managed_Object o = alloc_buffer_markers_on_buffer(app, buffer->buffer_id, marker_count, &render_scope);
|
||||
managed_object_store_data(app, o, 0, marker_count, markers);
|
||||
|
||||
Marker_Visual_Take_Rule take_rule = {0};
|
||||
Marker_Visual_Take_Rule take_rule = {};
|
||||
take_rule.take_count_per_step = 2;
|
||||
take_rule.step_stride_in_marker_count = 8;
|
||||
|
||||
|
@ -263,7 +263,7 @@ RENDER_CALLER_SIG(default_render_caller){
|
|||
|
||||
// NOTE(allen): Cursor and mark
|
||||
Managed_Object cursor_and_mark = alloc_buffer_markers_on_buffer(app, buffer.buffer_id, 2, &render_scope);
|
||||
Marker cm_markers[2] = {0};
|
||||
Marker cm_markers[2] = {};
|
||||
cm_markers[0].pos = view.cursor.pos;
|
||||
cm_markers[1].pos = view.mark.pos;
|
||||
managed_object_store_data(app, cursor_and_mark, 0, 2, cm_markers);
|
||||
|
@ -272,14 +272,14 @@ RENDER_CALLER_SIG(default_render_caller){
|
|||
switch (fcoder_mode){
|
||||
case FCoderMode_Original:
|
||||
{
|
||||
Theme_Color colors[2] = {0};
|
||||
Theme_Color colors[2] = {};
|
||||
colors[0].tag = Stag_Cursor;
|
||||
colors[1].tag = Stag_Mark;
|
||||
get_theme_colors(app, colors, 2);
|
||||
uint32_t cursor_color = colors[0].color;
|
||||
uint32_t mark_color = colors[1].color;
|
||||
|
||||
Marker_Visual_Take_Rule take_rule = {0};
|
||||
Marker_Visual_Take_Rule take_rule = {};
|
||||
take_rule.first_index = 0;
|
||||
take_rule.take_count_per_step = 1;
|
||||
take_rule.step_stride_in_marker_count = 1;
|
||||
|
@ -302,14 +302,14 @@ RENDER_CALLER_SIG(default_render_caller){
|
|||
|
||||
case FCoderMode_NotepadLike:
|
||||
{
|
||||
Theme_Color colors[2] = {0};
|
||||
Theme_Color colors[2] = {};
|
||||
colors[0].tag = Stag_Cursor;
|
||||
colors[1].tag = Stag_Highlight;
|
||||
get_theme_colors(app, colors, 2);
|
||||
uint32_t cursor_color = colors[0].color;
|
||||
uint32_t highlight_color = colors[1].color;
|
||||
|
||||
Marker_Visual_Take_Rule take_rule = {0};
|
||||
Marker_Visual_Take_Rule take_rule = {};
|
||||
take_rule.first_index = 0;
|
||||
take_rule.take_count_per_step = 1;
|
||||
take_rule.step_stride_in_marker_count = 1;
|
||||
|
@ -333,14 +333,14 @@ RENDER_CALLER_SIG(default_render_caller){
|
|||
|
||||
// NOTE(allen): Line highlight setup
|
||||
if (highlight_line_at_cursor && is_active_view){
|
||||
Theme_Color color = {0};
|
||||
Theme_Color color = {};
|
||||
color.tag = Stag_Highlight_Cursor_Line;
|
||||
get_theme_colors(app, &color, 1);
|
||||
uint32_t line_color = color.color;
|
||||
Marker_Visual visual = create_marker_visual(app, cursor_and_mark);
|
||||
marker_visual_set_effect(app, visual, VisualType_LineHighlights,
|
||||
line_color, 0, 0);
|
||||
Marker_Visual_Take_Rule take_rule = {0};
|
||||
Marker_Visual_Take_Rule take_rule = {};
|
||||
take_rule.first_index = 0;
|
||||
take_rule.take_count_per_step = 1;
|
||||
take_rule.step_stride_in_marker_count = 1;
|
||||
|
@ -352,7 +352,7 @@ RENDER_CALLER_SIG(default_render_caller){
|
|||
// NOTE(allen): Token highlight setup
|
||||
bool32 do_token_highlight = false;
|
||||
if (do_token_highlight){
|
||||
Theme_Color color = {0};
|
||||
Theme_Color color = {};
|
||||
color.tag = Stag_Cursor;
|
||||
get_theme_colors(app, &color, 1);
|
||||
uint32_t token_color = (0x50 << 24) | (color.color&0xFFFFFF);
|
||||
|
@ -363,7 +363,7 @@ RENDER_CALLER_SIG(default_render_caller){
|
|||
int32_t pos2 = buffer_boundary_seek(app, &buffer, pos1, DirRight, token_flags);
|
||||
|
||||
Managed_Object token_highlight = alloc_buffer_markers_on_buffer(app, buffer.buffer_id, 2, &render_scope);
|
||||
Marker range_markers[2] = {0};
|
||||
Marker range_markers[2] = {};
|
||||
range_markers[0].pos = pos1;
|
||||
range_markers[1].pos = pos2;
|
||||
managed_object_store_data(app, token_highlight, 0, 2, range_markers);
|
||||
|
@ -811,7 +811,7 @@ struct Scroll_Velocity{
|
|||
float x, y;
|
||||
};
|
||||
|
||||
Scroll_Velocity scroll_velocity_[16] = {0};
|
||||
Scroll_Velocity scroll_velocity_[16] = {};
|
||||
Scroll_Velocity *scroll_velocity = scroll_velocity_ - 1;
|
||||
|
||||
static int32_t
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
static float
|
||||
get_line_y(Application_Links *app, View_Summary *view, int32_t line){
|
||||
Full_Cursor cursor = {0};
|
||||
Full_Cursor cursor = {};
|
||||
view_compute_cursor(app, view, seek_line_char(line, 1), &cursor);
|
||||
float y = cursor.wrapped_y;
|
||||
if (view->unwrapped_lines){
|
||||
|
@ -38,7 +38,7 @@ CUSTOM_DOC("Delete characters in a rectangular region. Range testing is done by
|
|||
int32_t end = 0;
|
||||
|
||||
bool32 success = 1;
|
||||
Full_Cursor cursor = {0};
|
||||
Full_Cursor cursor = {};
|
||||
|
||||
float y = get_line_y(app, &view, line);
|
||||
|
||||
|
@ -60,8 +60,8 @@ CUSTOM_DOC("Delete characters in a rectangular region. Range testing is done by
|
|||
|
||||
static void
|
||||
pad_buffer_line(Application_Links *app, Partition *part, Buffer_Summary *buffer, int32_t line, char padchar, int32_t target){
|
||||
Partial_Cursor start = {0};
|
||||
Partial_Cursor end = {0};
|
||||
Partial_Cursor start = {};
|
||||
Partial_Cursor end = {};
|
||||
|
||||
if (buffer_compute_cursor(app, buffer, seek_line_char(line, 1), &start)){
|
||||
if (buffer_compute_cursor(app, buffer, seek_line_char(line, 65536), &end)){
|
||||
|
@ -145,7 +145,7 @@ CUSTOM_DOC("Begin multi-line mode. In multi-line mode characters are inserted a
|
|||
Buffer_Edit *edits = edit;
|
||||
|
||||
for (int32_t i = rect.line0; i <= rect.line1; ++i){
|
||||
Partial_Cursor cursor = {0};
|
||||
Partial_Cursor cursor = {};
|
||||
|
||||
if (buffer_compute_cursor(app, &buffer, seek_line_char(i, pos+1), &cursor)){
|
||||
edit->str_start = 0;
|
||||
|
@ -173,7 +173,7 @@ CUSTOM_DOC("Begin multi-line mode. In multi-line mode characters are inserted a
|
|||
Buffer_Edit *edits = edit;
|
||||
|
||||
for (int32_t i = rect.line0; i <= rect.line1; ++i){
|
||||
Partial_Cursor cursor = {0};
|
||||
Partial_Cursor cursor = {};
|
||||
|
||||
if (buffer_compute_cursor(app, &buffer, seek_line_char(i, pos+1), &cursor)){
|
||||
edit->str_start = 0;
|
||||
|
@ -300,18 +300,18 @@ static void
|
|||
multi_paste_interactive_up_down(Application_Links *app, int32_t paste_count, int32_t clip_count){
|
||||
View_Summary view = get_active_view(app, AccessOpen);
|
||||
|
||||
Range range = {0};
|
||||
Range range = {};
|
||||
range.min = range.max = view.cursor.pos;
|
||||
|
||||
bool32 old_to_new = true;
|
||||
|
||||
range = multi_paste_range(app, &view, range, paste_count, old_to_new);
|
||||
|
||||
Query_Bar bar = {0};
|
||||
Query_Bar bar = {};
|
||||
bar.prompt = make_lit_string("Up and Down to condense and expand paste stages; R to reverse order; Return to finish; Escape to abort.");
|
||||
if (start_query_bar(app, &bar, 0) == 0) return;
|
||||
|
||||
User_Input in = {0};
|
||||
User_Input in = {};
|
||||
for (;;){
|
||||
in = get_user_input(app, EventOnAnyKey, EventOnEsc);
|
||||
if (in.abort) break;
|
||||
|
@ -360,7 +360,7 @@ CUSTOM_COMMAND_SIG(multi_paste_interactive_quick){
|
|||
int32_t clip_count = clipboard_count(app, 0);
|
||||
if (clip_count > 0){
|
||||
char string_space[256];
|
||||
Query_Bar bar = {0};
|
||||
Query_Bar bar = {};
|
||||
bar.prompt = make_lit_string("How Many Slots To Paste: ");
|
||||
bar.string = make_fixed_width_string(string_space);
|
||||
query_user_number(app, &bar);
|
||||
|
@ -397,7 +397,7 @@ CUSTOM_DOC("If the cursor is found to be on the name of a function parameter in
|
|||
if (!result.in_whitespace){
|
||||
static const int32_t stream_space_size = 512;
|
||||
Cpp_Token stream_space[stream_space_size];
|
||||
Stream_Tokens stream = {0};
|
||||
Stream_Tokens stream = {};
|
||||
|
||||
if (init_stream_tokens(&stream, app, &buffer, result.token_index, stream_space, stream_space_size)){
|
||||
int32_t token_index = result.token_index;
|
||||
|
@ -554,7 +554,7 @@ write_explicit_enum_values_parameters(Application_Links *app, Write_Explicit_Enu
|
|||
if (buffer_get_token_index(app, &buffer, view.cursor.pos, &result)){
|
||||
if (!result.in_whitespace){
|
||||
Cpp_Token stream_space[32];
|
||||
Stream_Tokens stream = {0};
|
||||
Stream_Tokens stream = {};
|
||||
|
||||
if (init_stream_tokens(&stream, app, &buffer, result.token_index, stream_space, 32)){
|
||||
int32_t token_index = result.token_index;
|
||||
|
@ -725,8 +725,8 @@ replace_all_occurrences_parameters(Application_Links *app, Heap *heap, Partition
|
|||
for (bool32 got_all_occurrences = false;
|
||||
!got_all_occurrences;){
|
||||
// Initialize a generic search all buffers
|
||||
Search_Set set = {0};
|
||||
Search_Iter iter = {0};
|
||||
Search_Set set = {};
|
||||
Search_Iter iter = {};
|
||||
initialize_generic_search_all_buffers(app, heap, &target_string, 1, SearchFlag_MatchSubstring, 0, 0, &set, &iter);
|
||||
|
||||
// Visit all locations and create replacement list
|
||||
|
|
|
@ -200,7 +200,7 @@ get_file_list(Partition *part, Filename_Character *pattern, File_Filter *filter)
|
|||
// TODO(allen): // TODO(allen): // TODO(allen): // TODO(allen): // TODO(allen):
|
||||
// Get this working with the new search by pattern structure!!!
|
||||
|
||||
WIN32_FIND_DATA find_data = {0};
|
||||
WIN32_FIND_DATA find_data = {};
|
||||
HANDLE search = FindFirstFile(pattern, &find_data);
|
||||
if (search == INVALID_HANDLE_VALUE){
|
||||
fprintf(stdout, "fatal error: could not begin a file search\n");
|
||||
|
@ -231,7 +231,7 @@ get_file_list(Partition *part, Filename_Character *pattern, File_Filter *filter)
|
|||
}while(more_files);
|
||||
FindClose(search);
|
||||
|
||||
Cross_Platform_File_List list = {0};
|
||||
Cross_Platform_File_List list = {};
|
||||
Temp_Memory part_reset = begin_temp_memory(part);
|
||||
|
||||
int32_t rounded_char_size = (character_count*sizeof(Filename_Character) + 7)&(~7);
|
||||
|
@ -311,7 +311,7 @@ static bool32
|
|||
match_pattern(Filename_Character *name, Filename_Character *pattern){
|
||||
bool32 match = false;
|
||||
if (sizeof(*name) == 1){
|
||||
Absolutes absolutes = {0};
|
||||
Absolutes absolutes = {};
|
||||
String pattern_str = make_string_slowly(pattern);
|
||||
get_absolutes(pattern_str, &absolutes, false, false);
|
||||
match = wildcard_match_c(&absolutes, name, false);
|
||||
|
@ -397,7 +397,7 @@ get_file_list(Partition *part, Filename_Character *pattern, File_Filter *filter)
|
|||
}
|
||||
}
|
||||
|
||||
Cross_Platform_File_List list = {0};
|
||||
Cross_Platform_File_List list = {};
|
||||
Temp_Memory part_reset = begin_temp_memory(part);
|
||||
|
||||
int32_t rounded_char_size = (character_count*sizeof(Filename_Character) + 7)&(~7);
|
||||
|
@ -479,7 +479,7 @@ get_file_list(Partition *part, Filename_Character *pattern, File_Filter *filter)
|
|||
|
||||
static String
|
||||
file_dump(Partition *part, char *name){
|
||||
String text = {0};
|
||||
String text = {};
|
||||
|
||||
FILE *file = fopen(name, "rb");
|
||||
if (file != 0){
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
static Face_Description
|
||||
get_buffer_face_description(Application_Links *app, Buffer_Summary *buffer){
|
||||
Face_ID current_id = get_face_id(app, buffer);
|
||||
Face_Description description = {0};
|
||||
Face_Description description = {};
|
||||
if (current_id != 0){
|
||||
description = get_face_description(app, current_id);
|
||||
}
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
|
||||
static Get_Positions_Results
|
||||
get_function_positions(Application_Links *app, Buffer_Summary *buffer, int32_t token_index, Function_Positions *positions_array, int32_t positions_max){
|
||||
Get_Positions_Results result = {0};
|
||||
Get_Positions_Results result = {};
|
||||
|
||||
static const int32_t token_chunk_size = 512;
|
||||
Cpp_Token token_chunk[token_chunk_size];
|
||||
Stream_Tokens token_stream = {0};
|
||||
Stream_Tokens token_stream = {};
|
||||
|
||||
if (init_stream_tokens(&token_stream, app, buffer, token_index, token_chunk, token_chunk_size)){
|
||||
int32_t nest_level = 0;
|
||||
|
@ -171,7 +171,7 @@ print_positions(Application_Links *app, Buffer_Summary *buffer, Function_Positio
|
|||
|
||||
static const int32_t sig_chunk_size = 64;
|
||||
Cpp_Token sig_chunk[sig_chunk_size];
|
||||
Stream_Tokens sig_stream = {0};
|
||||
Stream_Tokens sig_stream = {};
|
||||
if (init_stream_tokens(&sig_stream, app, buffer, local_index, sig_chunk, sig_chunk_size)){
|
||||
bool32 still_looping = false;
|
||||
do{
|
||||
|
|
|
@ -237,222 +237,222 @@ int32_t source_name_len;
|
|||
int32_t line_number;
|
||||
};
|
||||
static Command_Metadata fcoder_metacmd_table[216] = {
|
||||
{ PROC_LINKS(allow_mouse, 0), "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 240 },
|
||||
{ PROC_LINKS(auto_tab_line_at_cursor, 0), "auto_tab_line_at_cursor", 23, "Auto-indents the line on which the cursor sits.", 47, "c:\\4ed\\code\\4coder_auto_indent.cpp", 34, 722 },
|
||||
{ PROC_LINKS(auto_tab_range, 0), "auto_tab_range", 14, "Auto-indents the range between the cursor and the mark.", 55, "c:\\4ed\\code\\4coder_auto_indent.cpp", 34, 733 },
|
||||
{ PROC_LINKS(auto_tab_whole_file, 0), "auto_tab_whole_file", 19, "Audo-indents the entire current buffer.", 39, "c:\\4ed\\code\\4coder_auto_indent.cpp", 34, 712 },
|
||||
{ PROC_LINKS(backspace_char, 0), "backspace_char", 14, "Deletes the character to the left of the cursor.", 48, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 69 },
|
||||
{ PROC_LINKS(backspace_word, 0), "backspace_word", 14, "Delete characters between the cursor position and the first alphanumeric boundary to the left.", 94, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1258 },
|
||||
{ PROC_LINKS(basic_change_active_panel, 0), "basic_change_active_panel", 25, "Change the currently active panel, moving to the panel with the next highest view_id. Will not skipe the build panel if it is open.", 132, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 476 },
|
||||
{ PROC_LINKS(build_in_build_panel, 0), "build_in_build_panel", 20, "Looks for a build.bat, build.sh, or makefile in the current and parent directories. Runs the first that it finds and prints the output to *compilation*. Puts the *compilation* buffer in a panel at the footer of the current view.", 230, "c:\\4ed\\code\\4coder_build_commands.cpp", 37, 187 },
|
||||
{ PROC_LINKS(build_search, 0), "build_search", 12, "Looks for a build.bat, build.sh, or makefile in the current and parent directories. Runs the first that it finds and prints the output to *compilation*.", 153, "c:\\4ed\\code\\4coder_build_commands.cpp", 37, 155 },
|
||||
{ PROC_LINKS(center_view, 0), "center_view", 11, "Centers the view vertically on the line on which the cursor sits.", 65, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 118 },
|
||||
{ PROC_LINKS(change_active_panel, 0), "change_active_panel", 19, "Change the currently active panel, moving to the panel with the next highest view_id.", 85, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 144 },
|
||||
{ PROC_LINKS(change_active_panel_backwards, 0), "change_active_panel_backwards", 29, "Change the currently active panel, moving to the panel with the next lowest view_id.", 84, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 154 },
|
||||
{ PROC_LINKS(change_to_build_panel, 0), "change_to_build_panel", 21, "If the special build panel is open, makes the build panel the active panel.", 75, "c:\\4ed\\code\\4coder_build_commands.cpp", 37, 209 },
|
||||
{ PROC_LINKS(clean_all_lines, 0), "clean_all_lines", 15, "Removes trailing whitespace from all lines in the current buffer.", 65, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 411 },
|
||||
{ PROC_LINKS(click_set_cursor, 0), "click_set_cursor", 16, "Sets the cursor position to the mouse position.", 47, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 185 },
|
||||
{ PROC_LINKS(click_set_cursor_and_mark, 0), "click_set_cursor_and_mark", 25, "Sets the cursor position and mark to the mouse position.", 56, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 172 },
|
||||
{ PROC_LINKS(click_set_cursor_if_lbutton, 0), "click_set_cursor_if_lbutton", 27, "If the mouse left button is pressed, sets the cursor position to the mouse position.", 84, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 198 },
|
||||
{ PROC_LINKS(click_set_mark, 0), "click_set_mark", 14, "Sets the mark position to the mouse position.", 45, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 213 },
|
||||
{ PROC_LINKS(close_all_code, 0), "close_all_code", 14, "Closes any buffer with a filename ending with an extension configured to be recognized as a code file type.", 107, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1060 },
|
||||
{ PROC_LINKS(close_build_panel, 0), "close_build_panel", 17, "If the special build panel is open, closes it.", 46, "c:\\4ed\\code\\4coder_build_commands.cpp", 37, 203 },
|
||||
{ PROC_LINKS(close_panel, 0), "close_panel", 11, "Closes the currently active panel if it is not the only panel open.", 67, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 484 },
|
||||
{ PROC_LINKS(command_lister, 0), "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "c:\\4ed\\code\\4coder_lists.cpp", 28, 938 },
|
||||
{ PROC_LINKS(copy, 0), "copy", 4, "Copy the text in the range from the cursor to the mark onto the clipboard.", 74, "c:\\4ed\\code\\4coder_clipboard.cpp", 32, 26 },
|
||||
{ PROC_LINKS(cursor_mark_swap, 0), "cursor_mark_swap", 16, "Swaps the position of the cursor and the mark.", 46, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 96 },
|
||||
{ PROC_LINKS(cut, 0), "cut", 3, "Cut the text in the range from the cursor to the mark onto the clipboard.", 73, "c:\\4ed\\code\\4coder_clipboard.cpp", 32, 35 },
|
||||
{ PROC_LINKS(decrease_face_size, 0), "decrease_face_size", 18, "Decrease the size of the face used by the current buffer.", 57, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 574 },
|
||||
{ PROC_LINKS(decrease_line_wrap, 0), "decrease_line_wrap", 18, "Decrases the current buffer's width for line wrapping.", 54, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 551 },
|
||||
{ PROC_LINKS(delete_char, 0), "delete_char", 11, "Deletes the character to the right of the cursor.", 49, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 51 },
|
||||
{ PROC_LINKS(delete_current_scope, 0), "delete_current_scope", 20, "Deletes the braces surrounding the currently selected scope. Leaves the contents within the scope.", 99, "c:\\4ed\\code\\4coder_scope_commands.cpp", 37, 526 },
|
||||
{ PROC_LINKS(delete_file_query, 0), "delete_file_query", 17, "Deletes the file of the current buffer if 4coder has the appropriate access rights. Will ask the user for confirmation first.", 125, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1121 },
|
||||
{ PROC_LINKS(delete_line, 0), "delete_line", 11, "Delete the line the on which the cursor sits.", 45, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1371 },
|
||||
{ PROC_LINKS(delete_range, 0), "delete_range", 12, "Deletes the text in the range between the cursor and the mark.", 62, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 106 },
|
||||
{ PROC_LINKS(delete_word, 0), "delete_word", 11, "Delete characters between the cursor position and the first alphanumeric boundary to the right.", 95, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1264 },
|
||||
{ PROC_LINKS(duplicate_line, 0), "duplicate_line", 14, "Create a copy of the line on which the cursor sits.", 51, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1349 },
|
||||
{ PROC_LINKS(eol_dosify, 0), "eol_dosify", 10, "Puts the buffer in DOS line ending mode.", 40, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 604 },
|
||||
{ PROC_LINKS(eol_nixify, 0), "eol_nixify", 10, "Puts the buffer in NIX line ending mode.", 40, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 612 },
|
||||
{ PROC_LINKS(execute_any_cli, 0), "execute_any_cli", 15, "Queries for an output buffer name and system command, runs the system command as a CLI and prints the output to the specified buffer.", 133, "c:\\4ed\\code\\4coder_system_command.cpp", 37, 23 },
|
||||
{ PROC_LINKS(execute_previous_cli, 0), "execute_previous_cli", 20, "If the command execute_any_cli has already been used, this will execute a CLI reusing the most recent buffer name and command.", 126, "c:\\4ed\\code\\4coder_system_command.cpp", 37, 7 },
|
||||
{ PROC_LINKS(exit_4coder, 0), "exit_4coder", 11, "Attempts to close 4coder.", 25, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 620 },
|
||||
{ PROC_LINKS(goto_beginning_of_file, 0), "goto_beginning_of_file", 22, "Sets the cursor to the beginning of the file.", 45, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1177 },
|
||||
{ PROC_LINKS(goto_end_of_file, 0), "goto_end_of_file", 16, "Sets the cursor to the end of the file.", 39, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1185 },
|
||||
{ PROC_LINKS(goto_first_jump_direct, 0), "goto_first_jump_direct", 22, "If a buffer containing jump locations has been locked in, goes to the first jump in the buffer.", 95, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 84 },
|
||||
{ PROC_LINKS(goto_first_jump_same_panel_sticky, 0), "goto_first_jump_same_panel_sticky", 33, "If a buffer containing jump locations has been locked in, goes to the first jump in the buffer and views the buffer in the panel where the jump list was.", 153, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 550 },
|
||||
{ PROC_LINKS(goto_first_jump_sticky, 0), "goto_first_jump_sticky", 22, "If a buffer containing jump locations has been locked in, goes to the first jump in the buffer.", 95, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 532 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_direct, 0), "goto_jump_at_cursor_direct", 26, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in another view and changes the active panel to the view containing the jump.", 187, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 8 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_same_panel_direct, 0), "goto_jump_at_cursor_same_panel_direct", 37, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in this view, losing the compilation output or jump list..", 168, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 29 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_same_panel_sticky, 0), "goto_jump_at_cursor_same_panel_sticky", 37, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in this view, losing the compilation output or jump list.", 167, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 376 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_sticky, 0), "goto_jump_at_cursor_sticky", 26, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in another view and changes the active panel to the view containing the jump.", 187, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 348 },
|
||||
{ PROC_LINKS(goto_line, 0), "goto_line", 9, "Queries the user for a number, and jumps the cursor to the corresponding line.", 78, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 628 },
|
||||
{ PROC_LINKS(goto_next_jump_direct, 0), "goto_next_jump_direct", 21, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, skipping sub jump locations.", 123, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 48 },
|
||||
{ PROC_LINKS(goto_next_jump_no_skips_direct, 0), "goto_next_jump_no_skips_direct", 30, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, and does not skip sub jump locations.", 132, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 66 },
|
||||
{ PROC_LINKS(goto_next_jump_no_skips_sticky, 0), "goto_next_jump_no_skips_sticky", 30, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, and does not skip sub jump locations.", 132, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 501 },
|
||||
{ PROC_LINKS(goto_next_jump_sticky, 0), "goto_next_jump_sticky", 21, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, skipping sub jump locations.", 123, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 471 },
|
||||
{ PROC_LINKS(goto_prev_jump_direct, 0), "goto_prev_jump_direct", 21, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, skipping sub jump locations.", 127, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 57 },
|
||||
{ PROC_LINKS(goto_prev_jump_no_skips_direct, 0), "goto_prev_jump_no_skips_direct", 30, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, and does not skip sub jump locations.", 136, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 75 },
|
||||
{ PROC_LINKS(goto_prev_jump_no_skips_sticky, 0), "goto_prev_jump_no_skips_sticky", 30, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, and does not skip sub jump locations.", 136, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 517 },
|
||||
{ PROC_LINKS(goto_prev_jump_sticky, 0), "goto_prev_jump_sticky", 21, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, skipping sub jump locations.", 127, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 487 },
|
||||
{ PROC_LINKS(hide_filebar, 0), "hide_filebar", 12, "Sets the current view to hide it's filebar.", 43, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 514 },
|
||||
{ PROC_LINKS(hide_scrollbar, 0), "hide_scrollbar", 14, "Sets the current view to hide it's scrollbar.", 45, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 500 },
|
||||
{ PROC_LINKS(if0_off, 0), "if0_off", 7, "Surround the range between the cursor and mark with an '#if 0' and an '#endif'", 78, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 81 },
|
||||
{ PROC_LINKS(increase_face_size, 0), "increase_face_size", 18, "Increase the size of the face used by the current buffer.", 57, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 562 },
|
||||
{ PROC_LINKS(increase_line_wrap, 0), "increase_line_wrap", 18, "Increases the current buffer's width for line wrapping.", 55, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 540 },
|
||||
{ PROC_LINKS(interactive_kill_buffer, 0), "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "c:\\4ed\\code\\4coder_lists.cpp", 28, 751 },
|
||||
{ PROC_LINKS(interactive_new, 0), "interactive_new", 15, "Interactively creates a new file.", 33, "c:\\4ed\\code\\4coder_lists.cpp", 28, 856 },
|
||||
{ PROC_LINKS(interactive_open, 0), "interactive_open", 16, "Interactively opens a file.", 27, "c:\\4ed\\code\\4coder_lists.cpp", 28, 884 },
|
||||
{ PROC_LINKS(interactive_open_or_new, 0), "interactive_open_or_new", 23, "Interactively open a file out of the file system.", 49, "c:\\4ed\\code\\4coder_lists.cpp", 28, 822 },
|
||||
{ PROC_LINKS(interactive_switch_buffer, 0), "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "c:\\4ed\\code\\4coder_lists.cpp", 28, 732 },
|
||||
{ PROC_LINKS(kill_buffer, 0), "kill_buffer", 11, "Kills the current buffer.", 25, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1541 },
|
||||
{ PROC_LINKS(left_adjust_view, 0), "left_adjust_view", 16, "Sets the left size of the view near the x position of the cursor.", 65, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 133 },
|
||||
{ PROC_LINKS(list_all_functions_all_buffers, 0), "list_all_functions_all_buffers", 30, "Creates a jump list of lines from all buffers that appear to define or declare functions.", 89, "c:\\4ed\\code\\4coder_function_list.cpp", 36, 358 },
|
||||
{ PROC_LINKS(list_all_functions_all_buffers_lister, 0), "list_all_functions_all_buffers_lister", 37, "Creates a lister of locations that look like function definitions and declarations all buffers.", 95, "c:\\4ed\\code\\4coder_function_list.cpp", 36, 364 },
|
||||
{ PROC_LINKS(list_all_functions_current_buffer, 0), "list_all_functions_current_buffer", 33, "Creates a jump list of lines of the current buffer that appear to define or declare functions.", 94, "c:\\4ed\\code\\4coder_function_list.cpp", 36, 335 },
|
||||
{ PROC_LINKS(list_all_functions_current_buffer_lister, 0), "list_all_functions_current_buffer_lister", 40, "Creates a lister of locations that look like function definitions and declarations in the buffer.", 97, "c:\\4ed\\code\\4coder_function_list.cpp", 36, 345 },
|
||||
{ PROC_LINKS(list_all_locations, 0), "list_all_locations", 18, "Queries the user for a string and lists all exact case-sensitive matches found in all open buffers.", 99, "c:\\4ed\\code\\4coder_search.cpp", 29, 769 },
|
||||
{ PROC_LINKS(list_all_locations_case_insensitive, 0), "list_all_locations_case_insensitive", 35, "Queries the user for a string and lists all exact case-insensitive matches found in all open buffers.", 101, "c:\\4ed\\code\\4coder_search.cpp", 29, 783 },
|
||||
{ PROC_LINKS(list_all_locations_of_identifier, 0), "list_all_locations_of_identifier", 32, "Reads a token or word under the cursor and lists all exact case-sensitive mathces in all open buffers.", 102, "c:\\4ed\\code\\4coder_search.cpp", 29, 797 },
|
||||
{ PROC_LINKS(list_all_locations_of_identifier_case_insensitive, 0), "list_all_locations_of_identifier_case_insensitive", 49, "Reads a token or word under the cursor and lists all exact case-insensitive mathces in all open buffers.", 104, "c:\\4ed\\code\\4coder_search.cpp", 29, 804 },
|
||||
{ PROC_LINKS(list_all_locations_of_selection, 0), "list_all_locations_of_selection", 31, "Reads the string in the selected range and lists all exact case-sensitive mathces in all open buffers.", 102, "c:\\4ed\\code\\4coder_search.cpp", 29, 811 },
|
||||
{ PROC_LINKS(list_all_locations_of_selection_case_insensitive, 0), "list_all_locations_of_selection_case_insensitive", 48, "Reads the string in the selected range and lists all exact case-insensitive mathces in all open buffers.", 104, "c:\\4ed\\code\\4coder_search.cpp", 29, 818 },
|
||||
{ PROC_LINKS(list_all_locations_of_type_definition, 0), "list_all_locations_of_type_definition", 37, "Queries user for string, lists all locations of strings that appear to define a type whose name matches the input string.", 121, "c:\\4ed\\code\\4coder_search.cpp", 29, 825 },
|
||||
{ PROC_LINKS(list_all_locations_of_type_definition_of_identifier, 0), "list_all_locations_of_type_definition_of_identifier", 51, "Reads a token or word under the cursor and lists all locations of strings that appear to define a type whose name matches it.", 125, "c:\\4ed\\code\\4coder_search.cpp", 29, 836 },
|
||||
{ PROC_LINKS(list_all_substring_locations, 0), "list_all_substring_locations", 28, "Queries the user for a string and lists all case-sensitive substring matches found in all open buffers.", 103, "c:\\4ed\\code\\4coder_search.cpp", 29, 776 },
|
||||
{ PROC_LINKS(list_all_substring_locations_case_insensitive, 0), "list_all_substring_locations_case_insensitive", 45, "Queries the user for a string and lists all case-insensitive substring matches found in all open buffers.", 105, "c:\\4ed\\code\\4coder_search.cpp", 29, 790 },
|
||||
{ PROC_LINKS(lister__activate, 0), "lister__activate", 16, "A lister mode command that activates the list's action on the highlighted item.", 79, "c:\\4ed\\code\\4coder_lists.cpp", 28, 15 },
|
||||
{ PROC_LINKS(lister__backspace_text_field, 0), "lister__backspace_text_field", 28, "A lister mode command that dispatches to the lister's backspace text field handler.", 83, "c:\\4ed\\code\\4coder_lists.cpp", 28, 41 },
|
||||
{ PROC_LINKS(lister__backspace_text_field__default, 0), "lister__backspace_text_field__default", 37, "A lister mode command that backspaces one character from the text field.", 72, "c:\\4ed\\code\\4coder_lists.cpp", 28, 146 },
|
||||
{ PROC_LINKS(lister__backspace_text_field__file_path, 0), "lister__backspace_text_field__file_path", 39, "A lister mode command that backspaces one character from the text field of a file system list.", 94, "c:\\4ed\\code\\4coder_lists.cpp", 28, 218 },
|
||||
{ PROC_LINKS(lister__mouse_press, 0), "lister__mouse_press", 19, "A lister mode command that beings a click interaction with a list item under the mouse.", 87, "c:\\4ed\\code\\4coder_lists.cpp", 28, 86 },
|
||||
{ PROC_LINKS(lister__mouse_release, 0), "lister__mouse_release", 21, "A lister mode command that ends a click interaction with a list item under the mouse, possibly activating it.", 109, "c:\\4ed\\code\\4coder_lists.cpp", 28, 98 },
|
||||
{ PROC_LINKS(lister__move_down, 0), "lister__move_down", 17, "A lister mode command that dispatches to the lister's navigate down handler.", 76, "c:\\4ed\\code\\4coder_lists.cpp", 28, 61 },
|
||||
{ PROC_LINKS(lister__move_down__default, 0), "lister__move_down__default", 26, "A lister mode command that moves the highlighted item one down in the list.", 75, "c:\\4ed\\code\\4coder_lists.cpp", 28, 177 },
|
||||
{ PROC_LINKS(lister__move_up, 0), "lister__move_up", 15, "A lister mode command that dispatches to the lister's navigate up handler.", 74, "c:\\4ed\\code\\4coder_lists.cpp", 28, 51 },
|
||||
{ PROC_LINKS(lister__move_up__default, 0), "lister__move_up__default", 24, "A lister mode command that moves the highlighted item one up in the list.", 73, "c:\\4ed\\code\\4coder_lists.cpp", 28, 161 },
|
||||
{ PROC_LINKS(lister__quit, 0), "lister__quit", 12, "A lister mode command that quits the list without executing any actions.", 72, "c:\\4ed\\code\\4coder_lists.cpp", 28, 8 },
|
||||
{ PROC_LINKS(lister__repaint, 0), "lister__repaint", 15, "A lister mode command that updates the lists UI data.", 53, "c:\\4ed\\code\\4coder_lists.cpp", 28, 115 },
|
||||
{ PROC_LINKS(lister__wheel_scroll, 0), "lister__wheel_scroll", 20, "A lister mode command that scrolls the list in response to the mouse wheel.", 75, "c:\\4ed\\code\\4coder_lists.cpp", 28, 71 },
|
||||
{ PROC_LINKS(lister__write_character, 0), "lister__write_character", 23, "A lister mode command that dispatches to the lister's write character handler.", 78, "c:\\4ed\\code\\4coder_lists.cpp", 28, 31 },
|
||||
{ PROC_LINKS(lister__write_character__default, 0), "lister__write_character__default", 32, "A lister mode command that inserts a new character to the text field.", 69, "c:\\4ed\\code\\4coder_lists.cpp", 28, 126 },
|
||||
{ PROC_LINKS(lister__write_character__file_path, 0), "lister__write_character__file_path", 34, "A lister mode command that inserts a character into the text field of a file system list.", 89, "c:\\4ed\\code\\4coder_lists.cpp", 28, 193 },
|
||||
{ PROC_LINKS(lister__write_character__fixed_list, 0), "lister__write_character__fixed_list", 35, "A lister mode command that handles input for the fixed sure to kill list.", 73, "c:\\4ed\\code\\4coder_lists.cpp", 28, 253 },
|
||||
{ PROC_LINKS(load_project, 0), "load_project", 12, "Looks for a project.4coder file in the current directory and tries to load it. Looks in parent directories until a project file is found or there are no more parents.", 167, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1083 },
|
||||
{ PROC_LINKS(make_directory_query, 0), "make_directory_query", 20, "Queries the user for a name and creates a new directory with the given name.", 76, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1229 },
|
||||
{ PROC_LINKS(mouse_wheel_scroll, 0), "mouse_wheel_scroll", 18, "Reads the scroll wheel value from the mouse state and scrolls accordingly.", 74, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 226 },
|
||||
{ PROC_LINKS(move_down, 0), "move_down", 9, "Moves the cursor down one line.", 31, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 290 },
|
||||
{ PROC_LINKS(move_down_10, 0), "move_down_10", 12, "Moves the cursor down ten lines.", 32, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 302 },
|
||||
{ PROC_LINKS(move_down_textual, 0), "move_down_textual", 17, "Moves down to the next line of actual text, regardless of line wrapping.", 72, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 308 },
|
||||
{ PROC_LINKS(move_left, 0), "move_left", 9, "Moves the cursor one character to the left.", 43, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 339 },
|
||||
{ PROC_LINKS(move_line_down, 0), "move_line_down", 14, "Swaps the line under the cursor with the line below it, and moves the cursor down with it.", 90, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1326 },
|
||||
{ PROC_LINKS(move_line_up, 0), "move_line_up", 12, "Swaps the line under the cursor with the line above it, and moves the cursor up with it.", 88, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1262 },
|
||||
{ PROC_LINKS(move_right, 0), "move_right", 10, "Moves the cursor one character to the right.", 44, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 349 },
|
||||
{ PROC_LINKS(move_up, 0), "move_up", 7, "Moves the cursor up one line.", 29, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 284 },
|
||||
{ PROC_LINKS(move_up_10, 0), "move_up_10", 10, "Moves the cursor up ten lines.", 30, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 296 },
|
||||
{ PROC_LINKS(newline_or_goto_position_direct, 0), "newline_or_goto_position_direct", 31, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor.", 106, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 101 },
|
||||
{ PROC_LINKS(newline_or_goto_position_same_panel_direct, 0), "newline_or_goto_position_same_panel_direct", 42, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor_same_panel.", 117, "c:\\4ed\\code\\4coder_jump_direct.cpp", 34, 116 },
|
||||
{ PROC_LINKS(newline_or_goto_position_same_panel_sticky, 0), "newline_or_goto_position_same_panel_sticky", 42, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor_same_panel.", 117, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 588 },
|
||||
{ PROC_LINKS(newline_or_goto_position_sticky, 0), "newline_or_goto_position_sticky", 31, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor.", 106, "c:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 573 },
|
||||
{ PROC_LINKS(open_all_code, 0), "open_all_code", 13, "Open all code in the current directory. File types are determined by extensions. An extension is considered code based on the extensions specified in 4coder.config.", 164, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1067 },
|
||||
{ PROC_LINKS(open_all_code_recursive, 0), "open_all_code_recursive", 23, "Works as open_all_code but also runs in all subdirectories.", 59, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1074 },
|
||||
{ PROC_LINKS(open_color_tweaker, 0), "open_color_tweaker", 18, "Opens the 4coder theme selector list.", 37, "c:\\4ed\\code\\4coder_lists.cpp", 28, 900 },
|
||||
{ PROC_LINKS(open_file_in_quotes, 0), "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1448 },
|
||||
{ PROC_LINKS(open_in_other, 0), "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1599 },
|
||||
{ PROC_LINKS(open_long_braces, 0), "open_long_braces", 16, "At the cursor, insert a '{' and '}' separated by a blank line.", 62, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 57 },
|
||||
{ PROC_LINKS(open_long_braces_break, 0), "open_long_braces_break", 22, "At the cursor, insert a '{' and '}break;' separated by a blank line.", 68, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 73 },
|
||||
{ PROC_LINKS(open_long_braces_semicolon, 0), "open_long_braces_semicolon", 26, "At the cursor, insert a '{' and '};' separated by a blank line.", 63, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 65 },
|
||||
{ PROC_LINKS(open_matching_file_cpp, 0), "open_matching_file_cpp", 22, "If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.", 110, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1484 },
|
||||
{ PROC_LINKS(open_panel_hsplit, 0), "open_panel_hsplit", 17, "Create a new panel by horizontally splitting the active panel.", 62, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 173 },
|
||||
{ PROC_LINKS(open_panel_vsplit, 0), "open_panel_vsplit", 17, "Create a new panel by vertically splitting the active panel.", 60, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 164 },
|
||||
{ PROC_LINKS(page_down, 0), "page_down", 9, "Scrolls the view down one view height and moves the cursor down one view height.", 80, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 328 },
|
||||
{ PROC_LINKS(page_up, 0), "page_up", 7, "Scrolls the view up one view height and moves the cursor up one view height.", 76, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 319 },
|
||||
{ PROC_LINKS(paste, 0), "paste", 5, "At the cursor, insert the text at the top of the clipboard.", 59, "c:\\4ed\\code\\4coder_clipboard.cpp", 32, 46 },
|
||||
{ PROC_LINKS(paste_and_indent, 0), "paste_and_indent", 16, "Paste from the top of clipboard and run auto-indent on the newly pasted text.", 77, "c:\\4ed\\code\\4coder_clipboard.cpp", 32, 134 },
|
||||
{ PROC_LINKS(paste_next, 0), "paste_next", 10, "If the previous command was paste or paste_next, replaces the paste range with the next text down on the clipboard, otherwise operates as the paste command.", 156, "c:\\4ed\\code\\4coder_clipboard.cpp", 32, 85 },
|
||||
{ PROC_LINKS(paste_next_and_indent, 0), "paste_next_and_indent", 21, "Paste the next item on the clipboard and run auto-indent on the newly pasted text.", 82, "c:\\4ed\\code\\4coder_clipboard.cpp", 32, 141 },
|
||||
{ PROC_LINKS(place_in_scope, 0), "place_in_scope", 14, "Wraps the code contained in the range between cursor and mark with a new curly brace scope.", 91, "c:\\4ed\\code\\4coder_scope_commands.cpp", 37, 520 },
|
||||
{ PROC_LINKS(project_command_lister, 0), "project_command_lister", 22, "Open a lister of all commands in the currently loaded project.", 62, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1529 },
|
||||
{ PROC_LINKS(project_fkey_command, 0), "project_fkey_command", 20, "Run an 'fkey command' configured in a project.4coder file. Determines the index of the 'fkey command' by which function key or numeric key was pressed to trigger the command.", 175, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1090 },
|
||||
{ PROC_LINKS(project_go_to_root_directory, 0), "project_go_to_root_directory", 28, "Changes 4coder's hot directory to the root directory of the currently loaded project. With no loaded project nothing hapepns.", 125, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1115 },
|
||||
{ PROC_LINKS(query_replace, 0), "query_replace", 13, "Queries the user for two strings, and incrementally replaces every occurence of the first string with the second string.", 120, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1005 },
|
||||
{ PROC_LINKS(query_replace_identifier, 0), "query_replace_identifier", 24, "Queries the user for a string, and incrementally replace every occurence of the word or token found at the cursor with the specified string.", 140, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1029 },
|
||||
{ PROC_LINKS(query_replace_selection, 0), "query_replace_selection", 23, "Queries the user for a string, and incrementally replace every occurence of the string found in the selected range with the specified string.", 141, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1047 },
|
||||
{ PROC_LINKS(redo, 0), "redo", 4, "Advances forewards through the undo history.", 44, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1556 },
|
||||
{ PROC_LINKS(reload_themes, 0), "reload_themes", 13, "Loads all the theme files in the theme folder, replacing duplicates with the new theme data.", 92, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1576 },
|
||||
{ PROC_LINKS(remap_interactive, 0), "remap_interactive", 17, "Switch to a named key binding map.", 34, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 290 },
|
||||
{ PROC_LINKS(rename_file_query, 0), "rename_file_query", 17, "Queries the user for a new name and renames the file of the current buffer, altering the buffer's name too.", 107, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1187 },
|
||||
{ PROC_LINKS(reopen, 0), "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1562 },
|
||||
{ PROC_LINKS(replace_in_range, 0), "replace_in_range", 16, "Queries the user for two strings, and replaces all occurences of the first string in the range between the cursor and the mark with the second string.", 150, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 886 },
|
||||
{ PROC_LINKS(reverse_search, 0), "reverse_search", 14, "Begins an incremental search up through the current buffer for a user specified string.", 87, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 857 },
|
||||
{ PROC_LINKS(reverse_search_identifier, 0), "reverse_search_identifier", 25, "Begins an incremental search up through the current buffer for the word or token under the cursor.", 98, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 875 },
|
||||
{ PROC_LINKS(save, 0), "save", 4, "Saves the current buffer.", 25, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1568 },
|
||||
{ PROC_LINKS(save_all_dirty_buffers, 0), "save_all_dirty_buffers", 22, "Saves all buffers marked dirty (showing the '*' indicator).", 59, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1091 },
|
||||
{ PROC_LINKS(save_to_query, 0), "save_to_query", 13, "Queries the user for a file name and saves the contents of the current buffer, altering the buffer's name too.", 110, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1147 },
|
||||
{ PROC_LINKS(scope_absorb_down, 0), "scope_absorb_down", 17, "If a scope is currently selected, and a statement or block statement is present below the current scope, the statement is moved into the scope.", 143, "c:\\4ed\\code\\4coder_scope_commands.cpp", 37, 777 },
|
||||
{ PROC_LINKS(search, 0), "search", 6, "Begins an incremental search down through the current buffer for a user specified string.", 89, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 850 },
|
||||
{ PROC_LINKS(search_identifier, 0), "search_identifier", 17, "Begins an incremental search down through the current buffer for the word or token under the cursor.", 100, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 864 },
|
||||
{ PROC_LINKS(seek_alphanumeric_left, 0), "seek_alphanumeric_left", 22, "Seek left for boundary between alphanumeric characters and non-alphanumeric characters.", 87, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1238 },
|
||||
{ PROC_LINKS(seek_alphanumeric_or_camel_left, 0), "seek_alphanumeric_or_camel_left", 31, "Seek left for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 106, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1250 },
|
||||
{ PROC_LINKS(seek_alphanumeric_or_camel_right, 0), "seek_alphanumeric_or_camel_right", 32, "Seek right for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 107, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1244 },
|
||||
{ PROC_LINKS(seek_alphanumeric_right, 0), "seek_alphanumeric_right", 23, "Seek right for boundary between alphanumeric characters and non-alphanumeric characters.", 88, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1232 },
|
||||
{ PROC_LINKS(seek_beginning_of_line, 0), "seek_beginning_of_line", 22, "Seeks the cursor to the beginning of the visual line.", 53, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1131 },
|
||||
{ PROC_LINKS(seek_beginning_of_textual_line, 0), "seek_beginning_of_textual_line", 30, "Seeks the cursor to the beginning of the line across all text.", 62, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1111 },
|
||||
{ PROC_LINKS(seek_end_of_line, 0), "seek_end_of_line", 16, "Seeks the cursor to the end of the visual line.", 47, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1143 },
|
||||
{ PROC_LINKS(seek_end_of_textual_line, 0), "seek_end_of_textual_line", 24, "Seeks the cursor to the end of the line across all text.", 56, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1121 },
|
||||
{ PROC_LINKS(seek_token_left, 0), "seek_token_left", 15, "Seek left for the next beginning of a token.", 44, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1214 },
|
||||
{ PROC_LINKS(seek_token_right, 0), "seek_token_right", 16, "Seek right for the next end of a token.", 39, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1208 },
|
||||
{ PROC_LINKS(seek_white_or_token_left, 0), "seek_white_or_token_left", 24, "Seek left for the next end of a token or boundary between whitespace and non-whitespace.", 88, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1226 },
|
||||
{ PROC_LINKS(seek_white_or_token_right, 0), "seek_white_or_token_right", 25, "Seek right for the next end of a token or boundary between whitespace and non-whitespace.", 89, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1220 },
|
||||
{ PROC_LINKS(seek_whitespace_down, 0), "seek_whitespace_down", 20, "Seeks the cursor down to the next blank line.", 45, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1101 },
|
||||
{ PROC_LINKS(seek_whitespace_down_end_line, 0), "seek_whitespace_down_end_line", 29, "Seeks the cursor down to the next blank line and places it at the end of the line.", 82, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1166 },
|
||||
{ PROC_LINKS(seek_whitespace_left, 0), "seek_whitespace_left", 20, "Seek left for the next boundary between whitespace and non-whitespace.", 70, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1202 },
|
||||
{ PROC_LINKS(seek_whitespace_right, 0), "seek_whitespace_right", 21, "Seek right for the next boundary between whitespace and non-whitespace.", 71, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1196 },
|
||||
{ PROC_LINKS(seek_whitespace_up, 0), "seek_whitespace_up", 18, "Seeks the cursor up to the next blank line.", 43, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1091 },
|
||||
{ PROC_LINKS(seek_whitespace_up_end_line, 0), "seek_whitespace_up_end_line", 27, "Seeks the cursor up to the next blank line and places it at the end of the line.", 80, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1155 },
|
||||
{ PROC_LINKS(select_all, 0), "select_all", 10, "Puts the cursor at the top of the file, and the mark at the bottom of the file.", 79, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 359 },
|
||||
{ PROC_LINKS(select_next_scope_absolute, 0), "select_next_scope_absolute", 26, "Finds the first scope started by '{' after the cursor and puts the cursor and mark on the '{' and '}'.", 102, "c:\\4ed\\code\\4coder_scope_commands.cpp", 37, 401 },
|
||||
{ PROC_LINKS(select_prev_scope_absolute, 0), "select_prev_scope_absolute", 26, "Finds the first scope started by '{' before the cursor and puts the cursor and mark on the '{' and '}'.", 103, "c:\\4ed\\code\\4coder_scope_commands.cpp", 37, 421 },
|
||||
{ PROC_LINKS(select_surrounding_scope, 0), "select_surrounding_scope", 24, "Finds the scope enclosed by '{' '}' surrounding the cursor and puts the cursor and mark on the '{' and '}'.", 107, "c:\\4ed\\code\\4coder_scope_commands.cpp", 37, 385 },
|
||||
{ PROC_LINKS(set_bindings_choose, 0), "set_bindings_choose", 19, "Remap keybindings using the 'choose' mapping rule.", 50, "c:\\4ed\\code\\4coder_remapping_commands.cpp", 41, 47 },
|
||||
{ PROC_LINKS(set_bindings_default, 0), "set_bindings_default", 20, "Remap keybindings using the 'default' mapping rule.", 51, "c:\\4ed\\code\\4coder_remapping_commands.cpp", 41, 61 },
|
||||
{ PROC_LINKS(set_bindings_mac_default, 0), "set_bindings_mac_default", 24, "Remap keybindings using the 'mac-default' mapping rule.", 55, "c:\\4ed\\code\\4coder_remapping_commands.cpp", 41, 75 },
|
||||
{ PROC_LINKS(set_mark, 0), "set_mark", 8, "Sets the mark to the current position of the cursor.", 52, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 88 },
|
||||
{ PROC_LINKS(set_mode_to_notepad_like, 0), "set_mode_to_notepad_like", 24, "Sets the edit mode to Notepad like.", 35, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 258 },
|
||||
{ PROC_LINKS(set_mode_to_original, 0), "set_mode_to_original", 20, "Sets the edit mode to 4coder original.", 38, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 252 },
|
||||
{ PROC_LINKS(setup_build_bat, 0), "setup_build_bat", 15, "Queries the user for several configuration options and initializes a new build batch script.", 92, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1500 },
|
||||
{ PROC_LINKS(setup_build_bat_and_sh, 0), "setup_build_bat_and_sh", 22, "Queries the user for several configuration options and initializes a new build batch script.", 92, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1512 },
|
||||
{ PROC_LINKS(setup_build_sh, 0), "setup_build_sh", 14, "Queries the user for several configuration options and initializes a new build shell script.", 92, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1506 },
|
||||
{ PROC_LINKS(setup_new_project, 0), "setup_new_project", 17, "Queries the user for several configuration options and initializes a new 4coder project with build scripts for every OS.", 120, "c:\\4ed\\code\\4coder_project_commands.cpp", 39, 1493 },
|
||||
{ PROC_LINKS(show_filebar, 0), "show_filebar", 12, "Sets the current view to show it's filebar.", 43, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 507 },
|
||||
{ PROC_LINKS(show_scrollbar, 0), "show_scrollbar", 14, "Sets the current view to show it's scrollbar.", 45, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 493 },
|
||||
{ PROC_LINKS(snipe_token_or_word, 0), "snipe_token_or_word", 19, "Delete a single, whole token on or to the left of the cursor and post it to the clipboard.", 90, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1270 },
|
||||
{ PROC_LINKS(snipe_token_or_word_right, 0), "snipe_token_or_word_right", 25, "Delete a single, whole token on or to the right of the cursor and post it to the clipboard.", 91, "c:\\4ed\\code\\4coder_seek.cpp", 27, 1276 },
|
||||
{ PROC_LINKS(snippet_lister, 0), "snippet_lister", 14, "Opens a snippet lister for inserting whole pre-written snippets of text.", 72, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 193 },
|
||||
{ PROC_LINKS(suppress_mouse, 0), "suppress_mouse", 14, "Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.", 83, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 234 },
|
||||
{ PROC_LINKS(swap_buffers_between_panels, 0), "swap_buffers_between_panels", 27, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1508 },
|
||||
{ PROC_LINKS(to_lowercase, 0), "to_lowercase", 12, "Converts all ascii text in the range between the cursor and the mark to lowercase.", 82, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 391 },
|
||||
{ PROC_LINKS(to_uppercase, 0), "to_uppercase", 12, "Converts all ascii text in the range between the cursor and the mark to uppercase.", 82, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 371 },
|
||||
{ PROC_LINKS(toggle_filebar, 0), "toggle_filebar", 14, "Toggles the visibility status of the current view's filebar.", 60, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 521 },
|
||||
{ PROC_LINKS(toggle_fullscreen, 0), "toggle_fullscreen", 17, "Toggle fullscreen mode on or off. The change(s) do not take effect until the next frame.", 89, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 282 },
|
||||
{ PROC_LINKS(toggle_highlight_enclosing_scopes, 0), "toggle_highlight_enclosing_scopes", 33, "In code files scopes surrounding the cursor are highlighted with distinguishing colors.", 87, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 270 },
|
||||
{ PROC_LINKS(toggle_highlight_line_at_cursor, 0), "toggle_highlight_line_at_cursor", 31, "Toggles the line highlight at the cursor.", 41, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 264 },
|
||||
{ PROC_LINKS(toggle_line_wrap, 0), "toggle_line_wrap", 16, "Toggles the current buffer's line wrapping status.", 50, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 530 },
|
||||
{ PROC_LINKS(toggle_mouse, 0), "toggle_mouse", 12, "Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.", 71, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 246 },
|
||||
{ PROC_LINKS(toggle_paren_matching_helper, 0), "toggle_paren_matching_helper", 28, "In code files matching parentheses pairs are colored with distinguishing colors.", 80, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 276 },
|
||||
{ PROC_LINKS(toggle_show_whitespace, 0), "toggle_show_whitespace", 22, "Toggles the current buffer's whitespace visibility status.", 58, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 597 },
|
||||
{ PROC_LINKS(toggle_virtual_whitespace, 0), "toggle_virtual_whitespace", 25, "Toggles the current buffer's virtual whitespace status.", 55, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 586 },
|
||||
{ PROC_LINKS(undo, 0), "undo", 4, "Advances backwards through the undo history.", 44, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1550 },
|
||||
{ PROC_LINKS(view_buffer_other_panel, 0), "view_buffer_other_panel", 23, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1498 },
|
||||
{ PROC_LINKS(view_jump_list_with_lister, 0), "view_jump_list_with_lister", 26, "When executed on a buffer with jumps, creates a persistent lister for all the jumps", 83, "c:\\4ed\\code\\4coder_jump_lister.cpp", 34, 108 },
|
||||
{ PROC_LINKS(word_complete, 0), "word_complete", 13, "Iteratively tries completing the word to the left of the cursor with other words in open buffers that have the same prefix string.", 130, "c:\\4ed\\code\\4coder_search.cpp", 29, 856 },
|
||||
{ PROC_LINKS(write_and_auto_tab, 0), "write_and_auto_tab", 18, "Inserts a character and auto-indents the line on which the cursor sits.", 71, "c:\\4ed\\code\\4coder_auto_indent.cpp", 34, 745 },
|
||||
{ PROC_LINKS(write_block, 0), "write_block", 11, "At the cursor, insert a block comment.", 38, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 105 },
|
||||
{ PROC_LINKS(write_character, 0), "write_character", 15, "Inserts whatever character was used to trigger this command.", 60, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 35 },
|
||||
{ PROC_LINKS(write_hack, 0), "write_hack", 10, "At the cursor, insert a '// HACK' comment, includes user name if it was specified in config.4coder.", 99, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 93 },
|
||||
{ PROC_LINKS(write_note, 0), "write_note", 10, "At the cursor, insert a '// NOTE' comment, includes user name if it was specified in config.4coder.", 99, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 99 },
|
||||
{ PROC_LINKS(write_todo, 0), "write_todo", 10, "At the cursor, insert a '// TODO' comment, includes user name if it was specified in config.4coder.", 99, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 87 },
|
||||
{ PROC_LINKS(write_underscore, 0), "write_underscore", 16, "Inserts an underscore.", 22, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 44 },
|
||||
{ PROC_LINKS(write_zero_struct, 0), "write_zero_struct", 17, "At the cursor, insert a ' = {};'.", 33, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 111 },
|
||||
{ PROC_LINKS(allow_mouse, 0), "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 240 },
|
||||
{ PROC_LINKS(auto_tab_line_at_cursor, 0), "auto_tab_line_at_cursor", 23, "Auto-indents the line on which the cursor sits.", 47, "w:\\4ed\\code\\4coder_auto_indent.cpp", 34, 722 },
|
||||
{ PROC_LINKS(auto_tab_range, 0), "auto_tab_range", 14, "Auto-indents the range between the cursor and the mark.", 55, "w:\\4ed\\code\\4coder_auto_indent.cpp", 34, 733 },
|
||||
{ PROC_LINKS(auto_tab_whole_file, 0), "auto_tab_whole_file", 19, "Audo-indents the entire current buffer.", 39, "w:\\4ed\\code\\4coder_auto_indent.cpp", 34, 712 },
|
||||
{ PROC_LINKS(backspace_char, 0), "backspace_char", 14, "Deletes the character to the left of the cursor.", 48, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 69 },
|
||||
{ PROC_LINKS(backspace_word, 0), "backspace_word", 14, "Delete characters between the cursor position and the first alphanumeric boundary to the left.", 94, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1258 },
|
||||
{ PROC_LINKS(basic_change_active_panel, 0), "basic_change_active_panel", 25, "Change the currently active panel, moving to the panel with the next highest view_id. Will not skipe the build panel if it is open.", 132, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 476 },
|
||||
{ PROC_LINKS(build_in_build_panel, 0), "build_in_build_panel", 20, "Looks for a build.bat, build.sh, or makefile in the current and parent directories. Runs the first that it finds and prints the output to *compilation*. Puts the *compilation* buffer in a panel at the footer of the current view.", 230, "w:\\4ed\\code\\4coder_build_commands.cpp", 37, 187 },
|
||||
{ PROC_LINKS(build_search, 0), "build_search", 12, "Looks for a build.bat, build.sh, or makefile in the current and parent directories. Runs the first that it finds and prints the output to *compilation*.", 153, "w:\\4ed\\code\\4coder_build_commands.cpp", 37, 155 },
|
||||
{ PROC_LINKS(center_view, 0), "center_view", 11, "Centers the view vertically on the line on which the cursor sits.", 65, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 118 },
|
||||
{ PROC_LINKS(change_active_panel, 0), "change_active_panel", 19, "Change the currently active panel, moving to the panel with the next highest view_id.", 85, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 144 },
|
||||
{ PROC_LINKS(change_active_panel_backwards, 0), "change_active_panel_backwards", 29, "Change the currently active panel, moving to the panel with the next lowest view_id.", 84, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 154 },
|
||||
{ PROC_LINKS(change_to_build_panel, 0), "change_to_build_panel", 21, "If the special build panel is open, makes the build panel the active panel.", 75, "w:\\4ed\\code\\4coder_build_commands.cpp", 37, 209 },
|
||||
{ PROC_LINKS(clean_all_lines, 0), "clean_all_lines", 15, "Removes trailing whitespace from all lines in the current buffer.", 65, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 411 },
|
||||
{ PROC_LINKS(click_set_cursor, 0), "click_set_cursor", 16, "Sets the cursor position to the mouse position.", 47, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 185 },
|
||||
{ PROC_LINKS(click_set_cursor_and_mark, 0), "click_set_cursor_and_mark", 25, "Sets the cursor position and mark to the mouse position.", 56, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 172 },
|
||||
{ PROC_LINKS(click_set_cursor_if_lbutton, 0), "click_set_cursor_if_lbutton", 27, "If the mouse left button is pressed, sets the cursor position to the mouse position.", 84, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 198 },
|
||||
{ PROC_LINKS(click_set_mark, 0), "click_set_mark", 14, "Sets the mark position to the mouse position.", 45, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 213 },
|
||||
{ PROC_LINKS(close_all_code, 0), "close_all_code", 14, "Closes any buffer with a filename ending with an extension configured to be recognized as a code file type.", 107, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1060 },
|
||||
{ PROC_LINKS(close_build_panel, 0), "close_build_panel", 17, "If the special build panel is open, closes it.", 46, "w:\\4ed\\code\\4coder_build_commands.cpp", 37, 203 },
|
||||
{ PROC_LINKS(close_panel, 0), "close_panel", 11, "Closes the currently active panel if it is not the only panel open.", 67, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 484 },
|
||||
{ PROC_LINKS(command_lister, 0), "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "w:\\4ed\\code\\4coder_lists.cpp", 28, 938 },
|
||||
{ PROC_LINKS(copy, 0), "copy", 4, "Copy the text in the range from the cursor to the mark onto the clipboard.", 74, "w:\\4ed\\code\\4coder_clipboard.cpp", 32, 26 },
|
||||
{ PROC_LINKS(cursor_mark_swap, 0), "cursor_mark_swap", 16, "Swaps the position of the cursor and the mark.", 46, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 96 },
|
||||
{ PROC_LINKS(cut, 0), "cut", 3, "Cut the text in the range from the cursor to the mark onto the clipboard.", 73, "w:\\4ed\\code\\4coder_clipboard.cpp", 32, 35 },
|
||||
{ PROC_LINKS(decrease_face_size, 0), "decrease_face_size", 18, "Decrease the size of the face used by the current buffer.", 57, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 574 },
|
||||
{ PROC_LINKS(decrease_line_wrap, 0), "decrease_line_wrap", 18, "Decrases the current buffer's width for line wrapping.", 54, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 551 },
|
||||
{ PROC_LINKS(delete_char, 0), "delete_char", 11, "Deletes the character to the right of the cursor.", 49, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 51 },
|
||||
{ PROC_LINKS(delete_current_scope, 0), "delete_current_scope", 20, "Deletes the braces surrounding the currently selected scope. Leaves the contents within the scope.", 99, "w:\\4ed\\code\\4coder_scope_commands.cpp", 37, 526 },
|
||||
{ PROC_LINKS(delete_file_query, 0), "delete_file_query", 17, "Deletes the file of the current buffer if 4coder has the appropriate access rights. Will ask the user for confirmation first.", 125, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1118 },
|
||||
{ PROC_LINKS(delete_line, 0), "delete_line", 11, "Delete the line the on which the cursor sits.", 45, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1368 },
|
||||
{ PROC_LINKS(delete_range, 0), "delete_range", 12, "Deletes the text in the range between the cursor and the mark.", 62, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 106 },
|
||||
{ PROC_LINKS(delete_word, 0), "delete_word", 11, "Delete characters between the cursor position and the first alphanumeric boundary to the right.", 95, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1264 },
|
||||
{ PROC_LINKS(duplicate_line, 0), "duplicate_line", 14, "Create a copy of the line on which the cursor sits.", 51, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1346 },
|
||||
{ PROC_LINKS(eol_dosify, 0), "eol_dosify", 10, "Puts the buffer in DOS line ending mode.", 40, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 604 },
|
||||
{ PROC_LINKS(eol_nixify, 0), "eol_nixify", 10, "Puts the buffer in NIX line ending mode.", 40, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 612 },
|
||||
{ PROC_LINKS(execute_any_cli, 0), "execute_any_cli", 15, "Queries for an output buffer name and system command, runs the system command as a CLI and prints the output to the specified buffer.", 133, "w:\\4ed\\code\\4coder_system_command.cpp", 37, 23 },
|
||||
{ PROC_LINKS(execute_previous_cli, 0), "execute_previous_cli", 20, "If the command execute_any_cli has already been used, this will execute a CLI reusing the most recent buffer name and command.", 126, "w:\\4ed\\code\\4coder_system_command.cpp", 37, 7 },
|
||||
{ PROC_LINKS(exit_4coder, 0), "exit_4coder", 11, "Attempts to close 4coder.", 25, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 620 },
|
||||
{ PROC_LINKS(goto_beginning_of_file, 0), "goto_beginning_of_file", 22, "Sets the cursor to the beginning of the file.", 45, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1177 },
|
||||
{ PROC_LINKS(goto_end_of_file, 0), "goto_end_of_file", 16, "Sets the cursor to the end of the file.", 39, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1185 },
|
||||
{ PROC_LINKS(goto_first_jump_direct, 0), "goto_first_jump_direct", 22, "If a buffer containing jump locations has been locked in, goes to the first jump in the buffer.", 95, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 84 },
|
||||
{ PROC_LINKS(goto_first_jump_same_panel_sticky, 0), "goto_first_jump_same_panel_sticky", 33, "If a buffer containing jump locations has been locked in, goes to the first jump in the buffer and views the buffer in the panel where the jump list was.", 153, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 550 },
|
||||
{ PROC_LINKS(goto_first_jump_sticky, 0), "goto_first_jump_sticky", 22, "If a buffer containing jump locations has been locked in, goes to the first jump in the buffer.", 95, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 532 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_direct, 0), "goto_jump_at_cursor_direct", 26, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in another view and changes the active panel to the view containing the jump.", 187, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 8 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_same_panel_direct, 0), "goto_jump_at_cursor_same_panel_direct", 37, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in this view, losing the compilation output or jump list..", 168, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 29 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_same_panel_sticky, 0), "goto_jump_at_cursor_same_panel_sticky", 37, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in this view, losing the compilation output or jump list.", 167, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 376 },
|
||||
{ PROC_LINKS(goto_jump_at_cursor_sticky, 0), "goto_jump_at_cursor_sticky", 26, "If the cursor is found to be on a jump location, parses the jump location and brings up the file and position in another view and changes the active panel to the view containing the jump.", 187, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 348 },
|
||||
{ PROC_LINKS(goto_line, 0), "goto_line", 9, "Queries the user for a number, and jumps the cursor to the corresponding line.", 78, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 628 },
|
||||
{ PROC_LINKS(goto_next_jump_direct, 0), "goto_next_jump_direct", 21, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, skipping sub jump locations.", 123, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 48 },
|
||||
{ PROC_LINKS(goto_next_jump_no_skips_direct, 0), "goto_next_jump_no_skips_direct", 30, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, and does not skip sub jump locations.", 132, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 66 },
|
||||
{ PROC_LINKS(goto_next_jump_no_skips_sticky, 0), "goto_next_jump_no_skips_sticky", 30, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, and does not skip sub jump locations.", 132, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 501 },
|
||||
{ PROC_LINKS(goto_next_jump_sticky, 0), "goto_next_jump_sticky", 21, "If a buffer containing jump locations has been locked in, goes to the next jump in the buffer, skipping sub jump locations.", 123, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 471 },
|
||||
{ PROC_LINKS(goto_prev_jump_direct, 0), "goto_prev_jump_direct", 21, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, skipping sub jump locations.", 127, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 57 },
|
||||
{ PROC_LINKS(goto_prev_jump_no_skips_direct, 0), "goto_prev_jump_no_skips_direct", 30, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, and does not skip sub jump locations.", 136, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 75 },
|
||||
{ PROC_LINKS(goto_prev_jump_no_skips_sticky, 0), "goto_prev_jump_no_skips_sticky", 30, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, and does not skip sub jump locations.", 136, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 517 },
|
||||
{ PROC_LINKS(goto_prev_jump_sticky, 0), "goto_prev_jump_sticky", 21, "If a buffer containing jump locations has been locked in, goes to the previous jump in the buffer, skipping sub jump locations.", 127, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 487 },
|
||||
{ PROC_LINKS(hide_filebar, 0), "hide_filebar", 12, "Sets the current view to hide it's filebar.", 43, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 514 },
|
||||
{ PROC_LINKS(hide_scrollbar, 0), "hide_scrollbar", 14, "Sets the current view to hide it's scrollbar.", 45, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 500 },
|
||||
{ PROC_LINKS(if0_off, 0), "if0_off", 7, "Surround the range between the cursor and mark with an '#if 0' and an '#endif'", 78, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 81 },
|
||||
{ PROC_LINKS(increase_face_size, 0), "increase_face_size", 18, "Increase the size of the face used by the current buffer.", 57, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 562 },
|
||||
{ PROC_LINKS(increase_line_wrap, 0), "increase_line_wrap", 18, "Increases the current buffer's width for line wrapping.", 55, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 540 },
|
||||
{ PROC_LINKS(interactive_kill_buffer, 0), "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "w:\\4ed\\code\\4coder_lists.cpp", 28, 751 },
|
||||
{ PROC_LINKS(interactive_new, 0), "interactive_new", 15, "Interactively creates a new file.", 33, "w:\\4ed\\code\\4coder_lists.cpp", 28, 856 },
|
||||
{ PROC_LINKS(interactive_open, 0), "interactive_open", 16, "Interactively opens a file.", 27, "w:\\4ed\\code\\4coder_lists.cpp", 28, 884 },
|
||||
{ PROC_LINKS(interactive_open_or_new, 0), "interactive_open_or_new", 23, "Interactively open a file out of the file system.", 49, "w:\\4ed\\code\\4coder_lists.cpp", 28, 822 },
|
||||
{ PROC_LINKS(interactive_switch_buffer, 0), "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "w:\\4ed\\code\\4coder_lists.cpp", 28, 732 },
|
||||
{ PROC_LINKS(kill_buffer, 0), "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1538 },
|
||||
{ PROC_LINKS(left_adjust_view, 0), "left_adjust_view", 16, "Sets the left size of the view near the x position of the cursor.", 65, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 133 },
|
||||
{ PROC_LINKS(list_all_functions_all_buffers, 0), "list_all_functions_all_buffers", 30, "Creates a jump list of lines from all buffers that appear to define or declare functions.", 89, "w:\\4ed\\code\\4coder_function_list.cpp", 36, 358 },
|
||||
{ PROC_LINKS(list_all_functions_all_buffers_lister, 0), "list_all_functions_all_buffers_lister", 37, "Creates a lister of locations that look like function definitions and declarations all buffers.", 95, "w:\\4ed\\code\\4coder_function_list.cpp", 36, 364 },
|
||||
{ PROC_LINKS(list_all_functions_current_buffer, 0), "list_all_functions_current_buffer", 33, "Creates a jump list of lines of the current buffer that appear to define or declare functions.", 94, "w:\\4ed\\code\\4coder_function_list.cpp", 36, 335 },
|
||||
{ PROC_LINKS(list_all_functions_current_buffer_lister, 0), "list_all_functions_current_buffer_lister", 40, "Creates a lister of locations that look like function definitions and declarations in the buffer.", 97, "w:\\4ed\\code\\4coder_function_list.cpp", 36, 345 },
|
||||
{ PROC_LINKS(list_all_locations, 0), "list_all_locations", 18, "Queries the user for a string and lists all exact case-sensitive matches found in all open buffers.", 99, "w:\\4ed\\code\\4coder_search.cpp", 29, 769 },
|
||||
{ PROC_LINKS(list_all_locations_case_insensitive, 0), "list_all_locations_case_insensitive", 35, "Queries the user for a string and lists all exact case-insensitive matches found in all open buffers.", 101, "w:\\4ed\\code\\4coder_search.cpp", 29, 783 },
|
||||
{ PROC_LINKS(list_all_locations_of_identifier, 0), "list_all_locations_of_identifier", 32, "Reads a token or word under the cursor and lists all exact case-sensitive mathces in all open buffers.", 102, "w:\\4ed\\code\\4coder_search.cpp", 29, 797 },
|
||||
{ PROC_LINKS(list_all_locations_of_identifier_case_insensitive, 0), "list_all_locations_of_identifier_case_insensitive", 49, "Reads a token or word under the cursor and lists all exact case-insensitive mathces in all open buffers.", 104, "w:\\4ed\\code\\4coder_search.cpp", 29, 804 },
|
||||
{ PROC_LINKS(list_all_locations_of_selection, 0), "list_all_locations_of_selection", 31, "Reads the string in the selected range and lists all exact case-sensitive mathces in all open buffers.", 102, "w:\\4ed\\code\\4coder_search.cpp", 29, 811 },
|
||||
{ PROC_LINKS(list_all_locations_of_selection_case_insensitive, 0), "list_all_locations_of_selection_case_insensitive", 48, "Reads the string in the selected range and lists all exact case-insensitive mathces in all open buffers.", 104, "w:\\4ed\\code\\4coder_search.cpp", 29, 818 },
|
||||
{ PROC_LINKS(list_all_locations_of_type_definition, 0), "list_all_locations_of_type_definition", 37, "Queries user for string, lists all locations of strings that appear to define a type whose name matches the input string.", 121, "w:\\4ed\\code\\4coder_search.cpp", 29, 825 },
|
||||
{ PROC_LINKS(list_all_locations_of_type_definition_of_identifier, 0), "list_all_locations_of_type_definition_of_identifier", 51, "Reads a token or word under the cursor and lists all locations of strings that appear to define a type whose name matches it.", 125, "w:\\4ed\\code\\4coder_search.cpp", 29, 836 },
|
||||
{ PROC_LINKS(list_all_substring_locations, 0), "list_all_substring_locations", 28, "Queries the user for a string and lists all case-sensitive substring matches found in all open buffers.", 103, "w:\\4ed\\code\\4coder_search.cpp", 29, 776 },
|
||||
{ PROC_LINKS(list_all_substring_locations_case_insensitive, 0), "list_all_substring_locations_case_insensitive", 45, "Queries the user for a string and lists all case-insensitive substring matches found in all open buffers.", 105, "w:\\4ed\\code\\4coder_search.cpp", 29, 790 },
|
||||
{ PROC_LINKS(lister__activate, 0), "lister__activate", 16, "A lister mode command that activates the list's action on the highlighted item.", 79, "w:\\4ed\\code\\4coder_lists.cpp", 28, 15 },
|
||||
{ PROC_LINKS(lister__backspace_text_field, 0), "lister__backspace_text_field", 28, "A lister mode command that dispatches to the lister's backspace text field handler.", 83, "w:\\4ed\\code\\4coder_lists.cpp", 28, 41 },
|
||||
{ PROC_LINKS(lister__backspace_text_field__default, 0), "lister__backspace_text_field__default", 37, "A lister mode command that backspaces one character from the text field.", 72, "w:\\4ed\\code\\4coder_lists.cpp", 28, 146 },
|
||||
{ PROC_LINKS(lister__backspace_text_field__file_path, 0), "lister__backspace_text_field__file_path", 39, "A lister mode command that backspaces one character from the text field of a file system list.", 94, "w:\\4ed\\code\\4coder_lists.cpp", 28, 218 },
|
||||
{ PROC_LINKS(lister__mouse_press, 0), "lister__mouse_press", 19, "A lister mode command that beings a click interaction with a list item under the mouse.", 87, "w:\\4ed\\code\\4coder_lists.cpp", 28, 86 },
|
||||
{ PROC_LINKS(lister__mouse_release, 0), "lister__mouse_release", 21, "A lister mode command that ends a click interaction with a list item under the mouse, possibly activating it.", 109, "w:\\4ed\\code\\4coder_lists.cpp", 28, 98 },
|
||||
{ PROC_LINKS(lister__move_down, 0), "lister__move_down", 17, "A lister mode command that dispatches to the lister's navigate down handler.", 76, "w:\\4ed\\code\\4coder_lists.cpp", 28, 61 },
|
||||
{ PROC_LINKS(lister__move_down__default, 0), "lister__move_down__default", 26, "A lister mode command that moves the highlighted item one down in the list.", 75, "w:\\4ed\\code\\4coder_lists.cpp", 28, 177 },
|
||||
{ PROC_LINKS(lister__move_up, 0), "lister__move_up", 15, "A lister mode command that dispatches to the lister's navigate up handler.", 74, "w:\\4ed\\code\\4coder_lists.cpp", 28, 51 },
|
||||
{ PROC_LINKS(lister__move_up__default, 0), "lister__move_up__default", 24, "A lister mode command that moves the highlighted item one up in the list.", 73, "w:\\4ed\\code\\4coder_lists.cpp", 28, 161 },
|
||||
{ PROC_LINKS(lister__quit, 0), "lister__quit", 12, "A lister mode command that quits the list without executing any actions.", 72, "w:\\4ed\\code\\4coder_lists.cpp", 28, 8 },
|
||||
{ PROC_LINKS(lister__repaint, 0), "lister__repaint", 15, "A lister mode command that updates the lists UI data.", 53, "w:\\4ed\\code\\4coder_lists.cpp", 28, 115 },
|
||||
{ PROC_LINKS(lister__wheel_scroll, 0), "lister__wheel_scroll", 20, "A lister mode command that scrolls the list in response to the mouse wheel.", 75, "w:\\4ed\\code\\4coder_lists.cpp", 28, 71 },
|
||||
{ PROC_LINKS(lister__write_character, 0), "lister__write_character", 23, "A lister mode command that dispatches to the lister's write character handler.", 78, "w:\\4ed\\code\\4coder_lists.cpp", 28, 31 },
|
||||
{ PROC_LINKS(lister__write_character__default, 0), "lister__write_character__default", 32, "A lister mode command that inserts a new character to the text field.", 69, "w:\\4ed\\code\\4coder_lists.cpp", 28, 126 },
|
||||
{ PROC_LINKS(lister__write_character__file_path, 0), "lister__write_character__file_path", 34, "A lister mode command that inserts a character into the text field of a file system list.", 89, "w:\\4ed\\code\\4coder_lists.cpp", 28, 193 },
|
||||
{ PROC_LINKS(lister__write_character__fixed_list, 0), "lister__write_character__fixed_list", 35, "A lister mode command that handles input for the fixed sure to kill list.", 73, "w:\\4ed\\code\\4coder_lists.cpp", 28, 253 },
|
||||
{ PROC_LINKS(load_project, 0), "load_project", 12, "Looks for a project.4coder file in the current directory and tries to load it. Looks in parent directories until a project file is found or there are no more parents.", 167, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1083 },
|
||||
{ PROC_LINKS(make_directory_query, 0), "make_directory_query", 20, "Queries the user for a name and creates a new directory with the given name.", 76, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1226 },
|
||||
{ PROC_LINKS(mouse_wheel_scroll, 0), "mouse_wheel_scroll", 18, "Reads the scroll wheel value from the mouse state and scrolls accordingly.", 74, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 226 },
|
||||
{ PROC_LINKS(move_down, 0), "move_down", 9, "Moves the cursor down one line.", 31, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 290 },
|
||||
{ PROC_LINKS(move_down_10, 0), "move_down_10", 12, "Moves the cursor down ten lines.", 32, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 302 },
|
||||
{ PROC_LINKS(move_down_textual, 0), "move_down_textual", 17, "Moves down to the next line of actual text, regardless of line wrapping.", 72, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 308 },
|
||||
{ PROC_LINKS(move_left, 0), "move_left", 9, "Moves the cursor one character to the left.", 43, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 339 },
|
||||
{ PROC_LINKS(move_line_down, 0), "move_line_down", 14, "Swaps the line under the cursor with the line below it, and moves the cursor down with it.", 90, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1323 },
|
||||
{ PROC_LINKS(move_line_up, 0), "move_line_up", 12, "Swaps the line under the cursor with the line above it, and moves the cursor up with it.", 88, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1259 },
|
||||
{ PROC_LINKS(move_right, 0), "move_right", 10, "Moves the cursor one character to the right.", 44, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 349 },
|
||||
{ PROC_LINKS(move_up, 0), "move_up", 7, "Moves the cursor up one line.", 29, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 284 },
|
||||
{ PROC_LINKS(move_up_10, 0), "move_up_10", 10, "Moves the cursor up ten lines.", 30, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 296 },
|
||||
{ PROC_LINKS(newline_or_goto_position_direct, 0), "newline_or_goto_position_direct", 31, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor.", 106, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 101 },
|
||||
{ PROC_LINKS(newline_or_goto_position_same_panel_direct, 0), "newline_or_goto_position_same_panel_direct", 42, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor_same_panel.", 117, "w:\\4ed\\code\\4coder_jump_direct.cpp", 34, 116 },
|
||||
{ PROC_LINKS(newline_or_goto_position_same_panel_sticky, 0), "newline_or_goto_position_same_panel_sticky", 42, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor_same_panel.", 117, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 588 },
|
||||
{ PROC_LINKS(newline_or_goto_position_sticky, 0), "newline_or_goto_position_sticky", 31, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor.", 106, "w:\\4ed\\code\\4coder_jump_sticky.cpp", 34, 573 },
|
||||
{ PROC_LINKS(open_all_code, 0), "open_all_code", 13, "Open all code in the current directory. File types are determined by extensions. An extension is considered code based on the extensions specified in 4coder.config.", 164, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1067 },
|
||||
{ PROC_LINKS(open_all_code_recursive, 0), "open_all_code_recursive", 23, "Works as open_all_code but also runs in all subdirectories.", 59, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1074 },
|
||||
{ PROC_LINKS(open_color_tweaker, 0), "open_color_tweaker", 18, "Opens the 4coder theme selector list.", 37, "w:\\4ed\\code\\4coder_lists.cpp", 28, 900 },
|
||||
{ PROC_LINKS(open_file_in_quotes, 0), "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1445 },
|
||||
{ PROC_LINKS(open_in_other, 0), "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1596 },
|
||||
{ PROC_LINKS(open_long_braces, 0), "open_long_braces", 16, "At the cursor, insert a '{' and '}' separated by a blank line.", 62, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 57 },
|
||||
{ PROC_LINKS(open_long_braces_break, 0), "open_long_braces_break", 22, "At the cursor, insert a '{' and '}break;' separated by a blank line.", 68, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 73 },
|
||||
{ PROC_LINKS(open_long_braces_semicolon, 0), "open_long_braces_semicolon", 26, "At the cursor, insert a '{' and '};' separated by a blank line.", 63, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 65 },
|
||||
{ PROC_LINKS(open_matching_file_cpp, 0), "open_matching_file_cpp", 22, "If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.", 110, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1481 },
|
||||
{ PROC_LINKS(open_panel_hsplit, 0), "open_panel_hsplit", 17, "Create a new panel by horizontally splitting the active panel.", 62, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 173 },
|
||||
{ PROC_LINKS(open_panel_vsplit, 0), "open_panel_vsplit", 17, "Create a new panel by vertically splitting the active panel.", 60, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 164 },
|
||||
{ PROC_LINKS(page_down, 0), "page_down", 9, "Scrolls the view down one view height and moves the cursor down one view height.", 80, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 328 },
|
||||
{ PROC_LINKS(page_up, 0), "page_up", 7, "Scrolls the view up one view height and moves the cursor up one view height.", 76, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 319 },
|
||||
{ PROC_LINKS(paste, 0), "paste", 5, "At the cursor, insert the text at the top of the clipboard.", 59, "w:\\4ed\\code\\4coder_clipboard.cpp", 32, 46 },
|
||||
{ PROC_LINKS(paste_and_indent, 0), "paste_and_indent", 16, "Paste from the top of clipboard and run auto-indent on the newly pasted text.", 77, "w:\\4ed\\code\\4coder_clipboard.cpp", 32, 134 },
|
||||
{ PROC_LINKS(paste_next, 0), "paste_next", 10, "If the previous command was paste or paste_next, replaces the paste range with the next text down on the clipboard, otherwise operates as the paste command.", 156, "w:\\4ed\\code\\4coder_clipboard.cpp", 32, 85 },
|
||||
{ PROC_LINKS(paste_next_and_indent, 0), "paste_next_and_indent", 21, "Paste the next item on the clipboard and run auto-indent on the newly pasted text.", 82, "w:\\4ed\\code\\4coder_clipboard.cpp", 32, 141 },
|
||||
{ PROC_LINKS(place_in_scope, 0), "place_in_scope", 14, "Wraps the code contained in the range between cursor and mark with a new curly brace scope.", 91, "w:\\4ed\\code\\4coder_scope_commands.cpp", 37, 520 },
|
||||
{ PROC_LINKS(project_command_lister, 0), "project_command_lister", 22, "Open a lister of all commands in the currently loaded project.", 62, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1527 },
|
||||
{ PROC_LINKS(project_fkey_command, 0), "project_fkey_command", 20, "Run an 'fkey command' configured in a project.4coder file. Determines the index of the 'fkey command' by which function key or numeric key was pressed to trigger the command.", 175, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1090 },
|
||||
{ PROC_LINKS(project_go_to_root_directory, 0), "project_go_to_root_directory", 28, "Changes 4coder's hot directory to the root directory of the currently loaded project. With no loaded project nothing hapepns.", 125, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1113 },
|
||||
{ PROC_LINKS(query_replace, 0), "query_replace", 13, "Queries the user for two strings, and incrementally replaces every occurence of the first string with the second string.", 120, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1002 },
|
||||
{ PROC_LINKS(query_replace_identifier, 0), "query_replace_identifier", 24, "Queries the user for a string, and incrementally replace every occurence of the word or token found at the cursor with the specified string.", 140, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1026 },
|
||||
{ PROC_LINKS(query_replace_selection, 0), "query_replace_selection", 23, "Queries the user for a string, and incrementally replace every occurence of the string found in the selected range with the specified string.", 141, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1044 },
|
||||
{ PROC_LINKS(redo, 0), "redo", 4, "Advances forewards through the undo history.", 44, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1553 },
|
||||
{ PROC_LINKS(reload_themes, 0), "reload_themes", 13, "Loads all the theme files in the theme folder, replacing duplicates with the new theme data.", 92, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1573 },
|
||||
{ PROC_LINKS(remap_interactive, 0), "remap_interactive", 17, "Switch to a named key binding map.", 34, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 290 },
|
||||
{ PROC_LINKS(rename_file_query, 0), "rename_file_query", 17, "Queries the user for a new name and renames the file of the current buffer, altering the buffer's name too.", 107, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1184 },
|
||||
{ PROC_LINKS(reopen, 0), "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1559 },
|
||||
{ PROC_LINKS(replace_in_range, 0), "replace_in_range", 16, "Queries the user for two strings, and replaces all occurences of the first string in the range between the cursor and the mark with the second string.", 150, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 883 },
|
||||
{ PROC_LINKS(reverse_search, 0), "reverse_search", 14, "Begins an incremental search up through the current buffer for a user specified string.", 87, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 854 },
|
||||
{ PROC_LINKS(reverse_search_identifier, 0), "reverse_search_identifier", 25, "Begins an incremental search up through the current buffer for the word or token under the cursor.", 98, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 872 },
|
||||
{ PROC_LINKS(save, 0), "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1565 },
|
||||
{ PROC_LINKS(save_all_dirty_buffers, 0), "save_all_dirty_buffers", 22, "Saves all buffers marked dirty (showing the '*' indicator).", 59, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1088 },
|
||||
{ PROC_LINKS(save_to_query, 0), "save_to_query", 13, "Queries the user for a file name and saves the contents of the current buffer, altering the buffer's name too.", 110, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1144 },
|
||||
{ PROC_LINKS(scope_absorb_down, 0), "scope_absorb_down", 17, "If a scope is currently selected, and a statement or block statement is present below the current scope, the statement is moved into the scope.", 143, "w:\\4ed\\code\\4coder_scope_commands.cpp", 37, 777 },
|
||||
{ PROC_LINKS(search, 0), "search", 6, "Begins an incremental search down through the current buffer for a user specified string.", 89, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 847 },
|
||||
{ PROC_LINKS(search_identifier, 0), "search_identifier", 17, "Begins an incremental search down through the current buffer for the word or token under the cursor.", 100, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 861 },
|
||||
{ PROC_LINKS(seek_alphanumeric_left, 0), "seek_alphanumeric_left", 22, "Seek left for boundary between alphanumeric characters and non-alphanumeric characters.", 87, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1238 },
|
||||
{ PROC_LINKS(seek_alphanumeric_or_camel_left, 0), "seek_alphanumeric_or_camel_left", 31, "Seek left for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 106, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1250 },
|
||||
{ PROC_LINKS(seek_alphanumeric_or_camel_right, 0), "seek_alphanumeric_or_camel_right", 32, "Seek right for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 107, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1244 },
|
||||
{ PROC_LINKS(seek_alphanumeric_right, 0), "seek_alphanumeric_right", 23, "Seek right for boundary between alphanumeric characters and non-alphanumeric characters.", 88, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1232 },
|
||||
{ PROC_LINKS(seek_beginning_of_line, 0), "seek_beginning_of_line", 22, "Seeks the cursor to the beginning of the visual line.", 53, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1131 },
|
||||
{ PROC_LINKS(seek_beginning_of_textual_line, 0), "seek_beginning_of_textual_line", 30, "Seeks the cursor to the beginning of the line across all text.", 62, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1111 },
|
||||
{ PROC_LINKS(seek_end_of_line, 0), "seek_end_of_line", 16, "Seeks the cursor to the end of the visual line.", 47, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1143 },
|
||||
{ PROC_LINKS(seek_end_of_textual_line, 0), "seek_end_of_textual_line", 24, "Seeks the cursor to the end of the line across all text.", 56, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1121 },
|
||||
{ PROC_LINKS(seek_token_left, 0), "seek_token_left", 15, "Seek left for the next beginning of a token.", 44, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1214 },
|
||||
{ PROC_LINKS(seek_token_right, 0), "seek_token_right", 16, "Seek right for the next end of a token.", 39, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1208 },
|
||||
{ PROC_LINKS(seek_white_or_token_left, 0), "seek_white_or_token_left", 24, "Seek left for the next end of a token or boundary between whitespace and non-whitespace.", 88, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1226 },
|
||||
{ PROC_LINKS(seek_white_or_token_right, 0), "seek_white_or_token_right", 25, "Seek right for the next end of a token or boundary between whitespace and non-whitespace.", 89, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1220 },
|
||||
{ PROC_LINKS(seek_whitespace_down, 0), "seek_whitespace_down", 20, "Seeks the cursor down to the next blank line.", 45, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1101 },
|
||||
{ PROC_LINKS(seek_whitespace_down_end_line, 0), "seek_whitespace_down_end_line", 29, "Seeks the cursor down to the next blank line and places it at the end of the line.", 82, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1166 },
|
||||
{ PROC_LINKS(seek_whitespace_left, 0), "seek_whitespace_left", 20, "Seek left for the next boundary between whitespace and non-whitespace.", 70, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1202 },
|
||||
{ PROC_LINKS(seek_whitespace_right, 0), "seek_whitespace_right", 21, "Seek right for the next boundary between whitespace and non-whitespace.", 71, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1196 },
|
||||
{ PROC_LINKS(seek_whitespace_up, 0), "seek_whitespace_up", 18, "Seeks the cursor up to the next blank line.", 43, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1091 },
|
||||
{ PROC_LINKS(seek_whitespace_up_end_line, 0), "seek_whitespace_up_end_line", 27, "Seeks the cursor up to the next blank line and places it at the end of the line.", 80, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1155 },
|
||||
{ PROC_LINKS(select_all, 0), "select_all", 10, "Puts the cursor at the top of the file, and the mark at the bottom of the file.", 79, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 359 },
|
||||
{ PROC_LINKS(select_next_scope_absolute, 0), "select_next_scope_absolute", 26, "Finds the first scope started by '{' after the cursor and puts the cursor and mark on the '{' and '}'.", 102, "w:\\4ed\\code\\4coder_scope_commands.cpp", 37, 401 },
|
||||
{ PROC_LINKS(select_prev_scope_absolute, 0), "select_prev_scope_absolute", 26, "Finds the first scope started by '{' before the cursor and puts the cursor and mark on the '{' and '}'.", 103, "w:\\4ed\\code\\4coder_scope_commands.cpp", 37, 421 },
|
||||
{ PROC_LINKS(select_surrounding_scope, 0), "select_surrounding_scope", 24, "Finds the scope enclosed by '{' '}' surrounding the cursor and puts the cursor and mark on the '{' and '}'.", 107, "w:\\4ed\\code\\4coder_scope_commands.cpp", 37, 385 },
|
||||
{ PROC_LINKS(set_bindings_choose, 0), "set_bindings_choose", 19, "Remap keybindings using the 'choose' mapping rule.", 50, "w:\\4ed\\code\\4coder_remapping_commands.cpp", 41, 47 },
|
||||
{ PROC_LINKS(set_bindings_default, 0), "set_bindings_default", 20, "Remap keybindings using the 'default' mapping rule.", 51, "w:\\4ed\\code\\4coder_remapping_commands.cpp", 41, 61 },
|
||||
{ PROC_LINKS(set_bindings_mac_default, 0), "set_bindings_mac_default", 24, "Remap keybindings using the 'mac-default' mapping rule.", 55, "w:\\4ed\\code\\4coder_remapping_commands.cpp", 41, 75 },
|
||||
{ PROC_LINKS(set_mark, 0), "set_mark", 8, "Sets the mark to the current position of the cursor.", 52, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 88 },
|
||||
{ PROC_LINKS(set_mode_to_notepad_like, 0), "set_mode_to_notepad_like", 24, "Sets the edit mode to Notepad like.", 35, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 258 },
|
||||
{ PROC_LINKS(set_mode_to_original, 0), "set_mode_to_original", 20, "Sets the edit mode to 4coder original.", 38, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 252 },
|
||||
{ PROC_LINKS(setup_build_bat, 0), "setup_build_bat", 15, "Queries the user for several configuration options and initializes a new build batch script.", 92, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1498 },
|
||||
{ PROC_LINKS(setup_build_bat_and_sh, 0), "setup_build_bat_and_sh", 22, "Queries the user for several configuration options and initializes a new build batch script.", 92, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1510 },
|
||||
{ PROC_LINKS(setup_build_sh, 0), "setup_build_sh", 14, "Queries the user for several configuration options and initializes a new build shell script.", 92, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1504 },
|
||||
{ PROC_LINKS(setup_new_project, 0), "setup_new_project", 17, "Queries the user for several configuration options and initializes a new 4coder project with build scripts for every OS.", 120, "w:\\4ed\\code\\4coder_project_commands.cpp", 39, 1491 },
|
||||
{ PROC_LINKS(show_filebar, 0), "show_filebar", 12, "Sets the current view to show it's filebar.", 43, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 507 },
|
||||
{ PROC_LINKS(show_scrollbar, 0), "show_scrollbar", 14, "Sets the current view to show it's scrollbar.", 45, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 493 },
|
||||
{ PROC_LINKS(snipe_token_or_word, 0), "snipe_token_or_word", 19, "Delete a single, whole token on or to the left of the cursor and post it to the clipboard.", 90, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1270 },
|
||||
{ PROC_LINKS(snipe_token_or_word_right, 0), "snipe_token_or_word_right", 25, "Delete a single, whole token on or to the right of the cursor and post it to the clipboard.", 91, "w:\\4ed\\code\\4coder_seek.cpp", 27, 1276 },
|
||||
{ PROC_LINKS(snippet_lister, 0), "snippet_lister", 14, "Opens a snippet lister for inserting whole pre-written snippets of text.", 72, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 193 },
|
||||
{ PROC_LINKS(suppress_mouse, 0), "suppress_mouse", 14, "Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.", 83, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 234 },
|
||||
{ PROC_LINKS(swap_buffers_between_panels, 0), "swap_buffers_between_panels", 27, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1505 },
|
||||
{ PROC_LINKS(to_lowercase, 0), "to_lowercase", 12, "Converts all ascii text in the range between the cursor and the mark to lowercase.", 82, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 391 },
|
||||
{ PROC_LINKS(to_uppercase, 0), "to_uppercase", 12, "Converts all ascii text in the range between the cursor and the mark to uppercase.", 82, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 371 },
|
||||
{ PROC_LINKS(toggle_filebar, 0), "toggle_filebar", 14, "Toggles the visibility status of the current view's filebar.", 60, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 521 },
|
||||
{ PROC_LINKS(toggle_fullscreen, 0), "toggle_fullscreen", 17, "Toggle fullscreen mode on or off. The change(s) do not take effect until the next frame.", 89, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 282 },
|
||||
{ PROC_LINKS(toggle_highlight_enclosing_scopes, 0), "toggle_highlight_enclosing_scopes", 33, "In code files scopes surrounding the cursor are highlighted with distinguishing colors.", 87, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 270 },
|
||||
{ PROC_LINKS(toggle_highlight_line_at_cursor, 0), "toggle_highlight_line_at_cursor", 31, "Toggles the line highlight at the cursor.", 41, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 264 },
|
||||
{ PROC_LINKS(toggle_line_wrap, 0), "toggle_line_wrap", 16, "Toggles the current buffer's line wrapping status.", 50, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 530 },
|
||||
{ PROC_LINKS(toggle_mouse, 0), "toggle_mouse", 12, "Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.", 71, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 246 },
|
||||
{ PROC_LINKS(toggle_paren_matching_helper, 0), "toggle_paren_matching_helper", 28, "In code files matching parentheses pairs are colored with distinguishing colors.", 80, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 276 },
|
||||
{ PROC_LINKS(toggle_show_whitespace, 0), "toggle_show_whitespace", 22, "Toggles the current buffer's whitespace visibility status.", 58, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 597 },
|
||||
{ PROC_LINKS(toggle_virtual_whitespace, 0), "toggle_virtual_whitespace", 25, "Toggles the current buffer's virtual whitespace status.", 55, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 586 },
|
||||
{ PROC_LINKS(undo, 0), "undo", 4, "Advances backwards through the undo history.", 44, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1547 },
|
||||
{ PROC_LINKS(view_buffer_other_panel, 0), "view_buffer_other_panel", 23, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1495 },
|
||||
{ PROC_LINKS(view_jump_list_with_lister, 0), "view_jump_list_with_lister", 26, "When executed on a buffer with jumps, creates a persistent lister for all the jumps", 83, "w:\\4ed\\code\\4coder_jump_lister.cpp", 34, 108 },
|
||||
{ PROC_LINKS(word_complete, 0), "word_complete", 13, "Iteratively tries completing the word to the left of the cursor with other words in open buffers that have the same prefix string.", 130, "w:\\4ed\\code\\4coder_search.cpp", 29, 856 },
|
||||
{ PROC_LINKS(write_and_auto_tab, 0), "write_and_auto_tab", 18, "Inserts a character and auto-indents the line on which the cursor sits.", 71, "w:\\4ed\\code\\4coder_auto_indent.cpp", 34, 745 },
|
||||
{ PROC_LINKS(write_block, 0), "write_block", 11, "At the cursor, insert a block comment.", 38, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 105 },
|
||||
{ PROC_LINKS(write_character, 0), "write_character", 15, "Inserts whatever character was used to trigger this command.", 60, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 35 },
|
||||
{ PROC_LINKS(write_hack, 0), "write_hack", 10, "At the cursor, insert a '// HACK' comment, includes user name if it was specified in config.4coder.", 99, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 93 },
|
||||
{ PROC_LINKS(write_note, 0), "write_note", 10, "At the cursor, insert a '// NOTE' comment, includes user name if it was specified in config.4coder.", 99, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 99 },
|
||||
{ PROC_LINKS(write_todo, 0), "write_todo", 10, "At the cursor, insert a '// TODO' comment, includes user name if it was specified in config.4coder.", 99, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 87 },
|
||||
{ PROC_LINKS(write_underscore, 0), "write_underscore", 16, "Inserts an underscore.", 22, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 44 },
|
||||
{ PROC_LINKS(write_zero_struct, 0), "write_zero_struct", 17, "At the cursor, insert a ' = {};'.", 33, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 111 },
|
||||
};
|
||||
static int32_t fcoder_metacmd_ID_allow_mouse = 0;
|
||||
static int32_t fcoder_metacmd_ID_auto_tab_line_at_cursor = 1;
|
||||
|
|
|
@ -18,23 +18,24 @@ key_mouse_right_release = 55311,
|
|||
key_mouse_wheel = 55312,
|
||||
key_mouse_move = 55313,
|
||||
key_animate = 55314,
|
||||
key_view_activate = 55315,
|
||||
key_f1 = 55316,
|
||||
key_f2 = 55317,
|
||||
key_f3 = 55318,
|
||||
key_f4 = 55319,
|
||||
key_f5 = 55320,
|
||||
key_f6 = 55321,
|
||||
key_f7 = 55322,
|
||||
key_f8 = 55323,
|
||||
key_f9 = 55324,
|
||||
key_f10 = 55325,
|
||||
key_f11 = 55326,
|
||||
key_f12 = 55327,
|
||||
key_f13 = 55328,
|
||||
key_f14 = 55329,
|
||||
key_f15 = 55330,
|
||||
key_f16 = 55331,
|
||||
key_click_activate_view = 55315,
|
||||
key_click_deactivate_view = 55316,
|
||||
key_f1 = 55317,
|
||||
key_f2 = 55318,
|
||||
key_f3 = 55319,
|
||||
key_f4 = 55320,
|
||||
key_f5 = 55321,
|
||||
key_f6 = 55322,
|
||||
key_f7 = 55323,
|
||||
key_f8 = 55324,
|
||||
key_f9 = 55325,
|
||||
key_f10 = 55326,
|
||||
key_f11 = 55327,
|
||||
key_f12 = 55328,
|
||||
key_f13 = 55329,
|
||||
key_f14 = 55330,
|
||||
key_f15 = 55331,
|
||||
key_f16 = 55332,
|
||||
};
|
||||
static char*
|
||||
global_key_name(uint32_t key_code, int32_t *size){
|
||||
|
@ -59,7 +60,8 @@ case key_mouse_right_release: result = "key_mouse_right_release"; *size = sizeof
|
|||
case key_mouse_wheel: result = "key_mouse_wheel"; *size = sizeof("key_mouse_wheel")-1; break;
|
||||
case key_mouse_move: result = "key_mouse_move"; *size = sizeof("key_mouse_move")-1; break;
|
||||
case key_animate: result = "key_animate"; *size = sizeof("key_animate")-1; break;
|
||||
case key_view_activate: result = "key_view_activate"; *size = sizeof("key_view_activate")-1; break;
|
||||
case key_click_activate_view: result = "key_click_activate_view"; *size = sizeof("key_click_activate_view")-1; break;
|
||||
case key_click_deactivate_view: result = "key_click_deactivate_view"; *size = sizeof("key_click_deactivate_view")-1; break;
|
||||
case key_f1: result = "key_f1"; *size = sizeof("key_f1")-1; break;
|
||||
case key_f2: result = "key_f2"; *size = sizeof("key_f2")-1; break;
|
||||
case key_f3: result = "key_f3"; *size = sizeof("key_f3")-1; break;
|
||||
|
|
|
@ -44,7 +44,7 @@ end_map(context);
|
|||
begin_map(context, mapid_file);
|
||||
bind_vanilla_keys(context, write_character);
|
||||
bind(context, key_mouse_left, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(context, key_view_activate, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(context, key_click_activate_view, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(context, key_mouse_left_release, MDFR_NONE, click_set_cursor);
|
||||
bind(context, key_mouse_move, MDFR_NONE, click_set_cursor_if_lbutton);
|
||||
bind(context, key_del, MDFR_NONE, delete_char);
|
||||
|
@ -167,7 +167,6 @@ bind(context, key_down, MDFR_NONE, lister__move_down);
|
|||
bind(context, key_page_down, MDFR_NONE, lister__move_down);
|
||||
bind(context, key_mouse_wheel, MDFR_NONE, lister__wheel_scroll);
|
||||
bind(context, key_mouse_left, MDFR_NONE, lister__mouse_press);
|
||||
bind(context, key_view_activate, MDFR_NONE, lister__mouse_press);
|
||||
bind(context, key_mouse_left_release, MDFR_NONE, lister__mouse_release);
|
||||
bind(context, key_mouse_move, MDFR_NONE, lister__repaint);
|
||||
bind(context, key_animate, MDFR_NONE, lister__repaint);
|
||||
|
@ -219,7 +218,7 @@ begin_map(context, mapid_file);
|
|||
bind_vanilla_keys(context, write_character);
|
||||
bind_vanilla_keys(context, MDFR_ALT, write_character);
|
||||
bind(context, key_mouse_left, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(context, key_view_activate, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(context, key_click_activate_view, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(context, key_mouse_left_release, MDFR_NONE, click_set_cursor);
|
||||
bind(context, key_mouse_move, MDFR_NONE, click_set_cursor_if_lbutton);
|
||||
bind(context, key_del, MDFR_NONE, delete_char);
|
||||
|
@ -340,7 +339,6 @@ bind(context, key_down, MDFR_NONE, lister__move_down);
|
|||
bind(context, key_page_down, MDFR_NONE, lister__move_down);
|
||||
bind(context, key_mouse_wheel, MDFR_NONE, lister__wheel_scroll);
|
||||
bind(context, key_mouse_left, MDFR_NONE, lister__mouse_press);
|
||||
bind(context, key_view_activate, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(context, key_mouse_left_release, MDFR_NONE, lister__mouse_release);
|
||||
bind(context, key_mouse_move, MDFR_NONE, lister__repaint);
|
||||
bind(context, key_animate, MDFR_NONE, lister__repaint);
|
||||
|
@ -402,7 +400,6 @@ static Meta_Key_Bind fcoder_binds_for_default_mapid_global[39] = {
|
|||
{0, 88, 2, "project_command_lister", 22, LINK_PROCS(project_command_lister)},
|
||||
{0, 73, 1, "list_all_functions_current_buffer_lister", 40, LINK_PROCS(list_all_functions_current_buffer_lister)},
|
||||
{0, 69, 2, "exit_4coder", 11, LINK_PROCS(exit_4coder)},
|
||||
{0, 55316, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55317, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55318, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55319, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
|
@ -418,6 +415,7 @@ static Meta_Key_Bind fcoder_binds_for_default_mapid_global[39] = {
|
|||
{0, 55329, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55330, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55331, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55332, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55312, 0, "mouse_wheel_scroll", 18, LINK_PROCS(mouse_wheel_scroll)},
|
||||
};
|
||||
static Meta_Key_Bind fcoder_binds_for_default_mapid_file[78] = {
|
||||
|
@ -533,7 +531,7 @@ static Meta_Key_Bind fcoder_binds_for_default_default_code_map[31] = {
|
|||
{0, 50, 2, "open_matching_file_cpp", 22, LINK_PROCS(open_matching_file_cpp)},
|
||||
{0, 48, 1, "write_zero_struct", 17, LINK_PROCS(write_zero_struct)},
|
||||
};
|
||||
static Meta_Key_Bind fcoder_binds_for_default_default_lister_ui_map[15] = {
|
||||
static Meta_Key_Bind fcoder_binds_for_default_default_lister_ui_map[14] = {
|
||||
{1, 0, 0, "lister__write_character", 23, LINK_PROCS(lister__write_character)},
|
||||
{0, 55307, 0, "lister__quit", 12, LINK_PROCS(lister__quit)},
|
||||
{0, 10, 0, "lister__activate", 16, LINK_PROCS(lister__activate)},
|
||||
|
@ -545,7 +543,6 @@ static Meta_Key_Bind fcoder_binds_for_default_default_lister_ui_map[15] = {
|
|||
{0, 55306, 0, "lister__move_down", 17, LINK_PROCS(lister__move_down)},
|
||||
{0, 55312, 0, "lister__wheel_scroll", 20, LINK_PROCS(lister__wheel_scroll)},
|
||||
{0, 55308, 0, "lister__mouse_press", 19, LINK_PROCS(lister__mouse_press)},
|
||||
{0, 55315, 0, "lister__mouse_press", 19, LINK_PROCS(lister__mouse_press)},
|
||||
{0, 55310, 0, "lister__mouse_release", 21, LINK_PROCS(lister__mouse_release)},
|
||||
{0, 55313, 0, "lister__repaint", 15, LINK_PROCS(lister__repaint)},
|
||||
{0, 55314, 0, "lister__repaint", 15, LINK_PROCS(lister__repaint)},
|
||||
|
@ -554,7 +551,7 @@ static Meta_Sub_Map fcoder_submaps_for_default[4] = {
|
|||
{"mapid_global", 12, "The following bindings apply in all situations.", 47, 0, 0, fcoder_binds_for_default_mapid_global, 39},
|
||||
{"mapid_file", 10, "The following bindings apply in general text files and most apply in code files, but some are overriden by other commands specific to code files.", 145, 0, 0, fcoder_binds_for_default_mapid_file, 78},
|
||||
{"default_code_map", 16, "The following commands only apply in files where the lexer (syntax highlighting) is turned on.", 94, "mapid_file", 10, fcoder_binds_for_default_default_code_map, 31},
|
||||
{"default_lister_ui_map", 21, "These commands apply in 'lister mode' such as when you open a file.", 67, 0, 0, fcoder_binds_for_default_default_lister_ui_map, 15},
|
||||
{"default_lister_ui_map", 21, "These commands apply in 'lister mode' such as when you open a file.", 67, 0, 0, fcoder_binds_for_default_default_lister_ui_map, 14},
|
||||
};
|
||||
static Meta_Key_Bind fcoder_binds_for_mac_default_mapid_global[39] = {
|
||||
{0, 44, 4, "change_active_panel", 19, LINK_PROCS(change_active_panel)},
|
||||
|
@ -579,7 +576,6 @@ static Meta_Key_Bind fcoder_binds_for_mac_default_mapid_global[39] = {
|
|||
{0, 88, 1, "project_command_lister", 22, LINK_PROCS(project_command_lister)},
|
||||
{0, 73, 4, "list_all_functions_current_buffer_lister", 40, LINK_PROCS(list_all_functions_current_buffer_lister)},
|
||||
{0, 69, 1, "exit_4coder", 11, LINK_PROCS(exit_4coder)},
|
||||
{0, 55316, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55317, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55318, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55319, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
|
@ -595,6 +591,7 @@ static Meta_Key_Bind fcoder_binds_for_mac_default_mapid_global[39] = {
|
|||
{0, 55329, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55330, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55331, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55332, 0, "project_fkey_command", 20, LINK_PROCS(project_fkey_command)},
|
||||
{0, 55312, 0, "mouse_wheel_scroll", 18, LINK_PROCS(mouse_wheel_scroll)},
|
||||
};
|
||||
static Meta_Key_Bind fcoder_binds_for_mac_default_mapid_file[77] = {
|
||||
|
@ -709,7 +706,7 @@ static Meta_Key_Bind fcoder_binds_for_mac_default_default_code_map[31] = {
|
|||
{0, 50, 1, "open_matching_file_cpp", 22, LINK_PROCS(open_matching_file_cpp)},
|
||||
{0, 48, 4, "write_zero_struct", 17, LINK_PROCS(write_zero_struct)},
|
||||
};
|
||||
static Meta_Key_Bind fcoder_binds_for_mac_default_default_lister_ui_map[15] = {
|
||||
static Meta_Key_Bind fcoder_binds_for_mac_default_default_lister_ui_map[14] = {
|
||||
{1, 0, 0, "lister__write_character", 23, LINK_PROCS(lister__write_character)},
|
||||
{0, 55307, 0, "lister__quit", 12, LINK_PROCS(lister__quit)},
|
||||
{0, 10, 0, "lister__activate", 16, LINK_PROCS(lister__activate)},
|
||||
|
@ -721,7 +718,6 @@ static Meta_Key_Bind fcoder_binds_for_mac_default_default_lister_ui_map[15] = {
|
|||
{0, 55306, 0, "lister__move_down", 17, LINK_PROCS(lister__move_down)},
|
||||
{0, 55312, 0, "lister__wheel_scroll", 20, LINK_PROCS(lister__wheel_scroll)},
|
||||
{0, 55308, 0, "lister__mouse_press", 19, LINK_PROCS(lister__mouse_press)},
|
||||
{0, 55315, 0, "click_set_cursor_and_mark", 25, LINK_PROCS(click_set_cursor_and_mark)},
|
||||
{0, 55310, 0, "lister__mouse_release", 21, LINK_PROCS(lister__mouse_release)},
|
||||
{0, 55313, 0, "lister__repaint", 15, LINK_PROCS(lister__repaint)},
|
||||
{0, 55314, 0, "lister__repaint", 15, LINK_PROCS(lister__repaint)},
|
||||
|
@ -730,7 +726,7 @@ static Meta_Sub_Map fcoder_submaps_for_mac_default[4] = {
|
|||
{"mapid_global", 12, "The following bindings apply in all situations.", 47, 0, 0, fcoder_binds_for_mac_default_mapid_global, 39},
|
||||
{"mapid_file", 10, "The following bindings apply in general text files and most apply in code files, but some are overriden by other commands specific to code files.", 145, 0, 0, fcoder_binds_for_mac_default_mapid_file, 77},
|
||||
{"default_code_map", 16, "The following commands only apply in files where the lexer (syntax highlighting) is turned on.", 94, "mapid_file", 10, fcoder_binds_for_mac_default_default_code_map, 31},
|
||||
{"default_lister_ui_map", 21, "These commands apply in 'lister mode' such as when you open a file.", 67, 0, 0, fcoder_binds_for_mac_default_default_lister_ui_map, 15},
|
||||
{"default_lister_ui_map", 21, "These commands apply in 'lister mode' such as when you open a file.", 67, 0, 0, fcoder_binds_for_mac_default_default_lister_ui_map, 14},
|
||||
};
|
||||
static Meta_Mapping fcoder_meta_maps[2] = {
|
||||
{"default", 7, "The default 4coder bindings - typically good for Windows and Linux", 66, fcoder_submaps_for_default, 4, LINK_PROCS(fill_keys_default)},
|
||||
|
|
|
@ -17,11 +17,11 @@ write_unit(Bind_Helper *helper, Binding_Unit unit){
|
|||
|
||||
inline Bind_Helper
|
||||
begin_bind_helper(void *data, int32_t size){
|
||||
Bind_Helper result = {0};
|
||||
Bind_Helper result = {};
|
||||
result.cursor = (Binding_Unit*)data;
|
||||
result.start = result.cursor;
|
||||
result.end = result.start + size / sizeof(*result.cursor);
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_header;
|
||||
unit.header.total_size = sizeof(*result.header);
|
||||
result.header = write_unit(&result, unit);
|
||||
|
@ -134,7 +134,7 @@ inline void
|
|||
inherit_map(Bind_Helper *helper, int32_t mapid){
|
||||
if (helper->group == 0 && helper->error == 0) helper->error = BH_ERR_MISSING_BEGIN;
|
||||
if (!helper->error && mapid < mapid_global) ++helper->header->header.user_map_count;
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_inherit;
|
||||
unit.map_inherit.mapid = mapid;
|
||||
write_unit(helper, unit);
|
||||
|
@ -142,7 +142,7 @@ inherit_map(Bind_Helper *helper, int32_t mapid){
|
|||
|
||||
inline void
|
||||
set_hook(Bind_Helper *helper, int32_t hook_id, Hook_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = hook_id;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -151,7 +151,7 @@ set_hook(Bind_Helper *helper, int32_t hook_id, Hook_Function *func){
|
|||
|
||||
inline void
|
||||
set_scroll_rule(Bind_Helper *helper, Scroll_Rule_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_scroll_rule;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -160,7 +160,7 @@ set_scroll_rule(Bind_Helper *helper, Scroll_Rule_Function *func){
|
|||
|
||||
inline void
|
||||
set_buffer_name_resolver(Bind_Helper *helper, Buffer_Name_Resolver_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_buffer_name_resolver;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -169,7 +169,7 @@ set_buffer_name_resolver(Bind_Helper *helper, Buffer_Name_Resolver_Function *fun
|
|||
|
||||
inline void
|
||||
set_new_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_new_file;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -178,7 +178,7 @@ set_new_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
|||
|
||||
inline void
|
||||
set_start_hook(Bind_Helper *helper, Start_Hook_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_start;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -187,7 +187,7 @@ set_start_hook(Bind_Helper *helper, Start_Hook_Function *func){
|
|||
|
||||
inline void
|
||||
set_open_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_open_file;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -196,7 +196,7 @@ set_open_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
|||
|
||||
inline void
|
||||
set_save_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_save_file;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -205,7 +205,7 @@ set_save_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
|||
|
||||
inline void
|
||||
set_end_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_end_file;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -214,7 +214,7 @@ set_end_file_hook(Bind_Helper *helper, Open_File_Hook_Function *func){
|
|||
|
||||
inline void
|
||||
set_command_caller(Bind_Helper *helper, Command_Caller_Hook_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_command_caller;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -223,7 +223,7 @@ set_command_caller(Bind_Helper *helper, Command_Caller_Hook_Function *func){
|
|||
|
||||
inline void
|
||||
set_render_caller(Bind_Helper *helper, Render_Caller_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_render_caller;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -232,7 +232,7 @@ set_render_caller(Bind_Helper *helper, Render_Caller_Function *func){
|
|||
|
||||
inline void
|
||||
set_input_filter(Bind_Helper *helper, Input_Filter_Function *func){
|
||||
Binding_Unit unit = {0};
|
||||
Binding_Unit unit = {};
|
||||
unit.type = unit_hook;
|
||||
unit.hook.hook_id = special_hook_input_filter;
|
||||
unit.hook.func = (void*)func;
|
||||
|
@ -252,7 +252,7 @@ end_bind_helper(Bind_Helper *helper){
|
|||
inline Bind_Buffer
|
||||
end_bind_helper_get_buffer(Bind_Helper *helper){
|
||||
int32_t size = end_bind_helper(helper);
|
||||
Bind_Buffer result = {0};
|
||||
Bind_Buffer result = {};
|
||||
result.data = helper->start;
|
||||
result.size = size;
|
||||
return(result);
|
||||
|
@ -310,10 +310,8 @@ key_is_unmodified(Key_Event_Data *key){
|
|||
static uint32_t
|
||||
to_writable_character(User_Input in, uint8_t *character){
|
||||
uint32_t result = 0;
|
||||
if (in.type == UserInputKey){
|
||||
if (in.key.character != 0){
|
||||
u32_to_utf8_unchecked(in.key.character, character, &result);
|
||||
}
|
||||
if (in.key.character != 0){
|
||||
u32_to_utf8_unchecked(in.key.character, character, &result);
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
|
@ -362,7 +360,7 @@ query_user_general(Application_Links *app, Query_Bar *bar, bool32 force_number){
|
|||
// types specified in the flags. The first set of flags are inputs you'd like to intercept
|
||||
// that you don't want to abort on. The second set are inputs that you'd like to cause
|
||||
// the command to abort. If an event satisfies both flags, it is treated as an abort.
|
||||
User_Input in = get_user_input(app, EventOnAnyKey, EventOnEsc | EventOnButton);
|
||||
User_Input in = get_user_input(app, EventOnAnyKey, EventOnEsc|EventOnMouseLeftButton|EventOnMouseRightButton);
|
||||
|
||||
// NOTE(allen|a3.4.4): The responsible thing to do on abort is to end the command
|
||||
// without waiting on get_user_input again.
|
||||
|
@ -392,16 +390,14 @@ query_user_general(Application_Links *app, Query_Bar *bar, bool32 force_number){
|
|||
// NOTE(allen|a3.4.4): All we have to do to update the query bar is edit our
|
||||
// local Query_Bar struct! This is handy because it means our Query_Bar
|
||||
// is always correct for typical use without extra work updating the bar.
|
||||
if (in.type == UserInputKey){
|
||||
if (in.key.keycode == '\n' || in.key.keycode == '\t'){
|
||||
break;
|
||||
}
|
||||
else if (in.key.keycode == key_back){
|
||||
backspace_utf8(&bar->string);
|
||||
}
|
||||
else if (good_character){
|
||||
append(&bar->string, make_string(character, length));
|
||||
}
|
||||
if (in.key.keycode == '\n' || in.key.keycode == '\t'){
|
||||
break;
|
||||
}
|
||||
else if (in.key.keycode == key_back){
|
||||
backspace_utf8(&bar->string);
|
||||
}
|
||||
else if (good_character){
|
||||
append(&bar->string, make_string(character, length));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -474,7 +470,7 @@ adjust_all_buffer_wrap_widths(Application_Links *app, int32_t wrap_width, int32_
|
|||
|
||||
static Buffer_Rect
|
||||
get_rect(View_Summary *view){
|
||||
Buffer_Rect rect = {0};
|
||||
Buffer_Rect rect = {};
|
||||
|
||||
rect.char0 = view->mark.character;
|
||||
rect.line0 = view->mark.line;
|
||||
|
@ -494,7 +490,7 @@ get_rect(View_Summary *view){
|
|||
|
||||
static i32_Rect
|
||||
get_line_x_rect(View_Summary *view){
|
||||
i32_Rect rect = {0};
|
||||
i32_Rect rect = {};
|
||||
|
||||
if (view->unwrapped_lines){
|
||||
rect.x0 = (int32_t)view->mark.unwrapped_x;
|
||||
|
@ -519,8 +515,8 @@ get_line_x_rect(View_Summary *view){
|
|||
|
||||
static View_Summary
|
||||
get_first_view_with_buffer(Application_Links *app, int32_t buffer_id){
|
||||
View_Summary result = {0};
|
||||
View_Summary test = {0};
|
||||
View_Summary result = {};
|
||||
View_Summary test = {};
|
||||
|
||||
if (buffer_id != 0){
|
||||
uint32_t access = AccessAll;
|
||||
|
@ -591,7 +587,7 @@ buffer_identifier_to_id(Application_Links *app, Buffer_Identifier identifier){
|
|||
|
||||
static Buffer_Summary
|
||||
buffer_identifier_to_buffer_summary(Application_Links *app, Buffer_Identifier identifier, Access_Flag access){
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (identifier.id != 0){
|
||||
buffer = get_buffer(app, identifier.id, access);
|
||||
}
|
||||
|
@ -610,7 +606,7 @@ view_open_file(Application_Links *app, View_Summary *view,
|
|||
bool32 result = false;
|
||||
|
||||
if (view != 0){
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (open_file(app, &buffer, filename, filename_len, false, never_new)){
|
||||
view_set_buffer(app, view, buffer.buffer_id, 0);
|
||||
result = true;
|
||||
|
@ -626,7 +622,7 @@ get_view_prev(Application_Links *app, View_Summary *view, uint32_t access){
|
|||
View_ID original_id = view->view_id;
|
||||
View_ID check_id = original_id;
|
||||
|
||||
View_Summary new_view = {0};
|
||||
View_Summary new_view = {};
|
||||
|
||||
for (;;){
|
||||
--check_id;
|
||||
|
@ -660,7 +656,7 @@ kill_buffer(Application_Links *app, Buffer_Identifier identifier, View_ID gui_vi
|
|||
|
||||
static View_Summary
|
||||
get_view_last(Application_Links *app, uint32_t access){
|
||||
View_Summary view = {0};
|
||||
View_Summary view = {};
|
||||
view.exists = true;
|
||||
get_view_prev(app, &view, access);
|
||||
if (view.view_id < 1 || view.view_id > 16){
|
||||
|
@ -699,7 +695,7 @@ refresh_view(Application_Links *app, View_Summary *view){
|
|||
static int32_t
|
||||
character_pos_to_pos(Application_Links *app, View_Summary *view, Buffer_Summary *buffer, int32_t character_pos){
|
||||
int32_t result = 0;
|
||||
Full_Cursor cursor = {0};
|
||||
Full_Cursor cursor = {};
|
||||
if (view_compute_cursor(app, view, seek_character_pos(character_pos), &cursor)){
|
||||
result = cursor.pos;
|
||||
}
|
||||
|
@ -731,8 +727,8 @@ get_view_range(View_Summary *view){
|
|||
|
||||
static bool32
|
||||
read_line(Application_Links *app, Partition *part, Buffer_Summary *buffer, int32_t line, String *str){
|
||||
Partial_Cursor begin = {0};
|
||||
Partial_Cursor end = {0};
|
||||
Partial_Cursor begin = {};
|
||||
Partial_Cursor end = {};
|
||||
|
||||
bool32 success = false;
|
||||
if (buffer_compute_cursor(app, buffer, seek_line_char(line, 1), &begin)){
|
||||
|
@ -761,7 +757,7 @@ static int32_t
|
|||
buffer_get_line_start(Application_Links *app, Buffer_Summary *buffer, int32_t line){
|
||||
int32_t result = buffer->size;
|
||||
if (line <= buffer->line_count){
|
||||
Partial_Cursor partial_cursor = {0};
|
||||
Partial_Cursor partial_cursor = {};
|
||||
buffer_compute_cursor(app, buffer, seek_line_char(line, 1), &partial_cursor);
|
||||
result = partial_cursor.pos;
|
||||
}
|
||||
|
@ -772,7 +768,7 @@ static int32_t
|
|||
buffer_get_line_end(Application_Links *app, Buffer_Summary *buffer, int32_t line){
|
||||
int32_t result = buffer->size;
|
||||
if (line <= buffer->line_count){
|
||||
Partial_Cursor partial_cursor = {0};
|
||||
Partial_Cursor partial_cursor = {};
|
||||
buffer_compute_cursor(app, buffer, seek_line_char(line, -1), &partial_cursor);
|
||||
result = partial_cursor.pos;
|
||||
}
|
||||
|
@ -781,7 +777,7 @@ buffer_get_line_end(Application_Links *app, Buffer_Summary *buffer, int32_t line
|
|||
|
||||
static int32_t
|
||||
buffer_get_line_number(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
Partial_Cursor partial_cursor = {0};
|
||||
Partial_Cursor partial_cursor = {};
|
||||
buffer_compute_cursor(app, buffer, seek_pos(pos), &partial_cursor);
|
||||
return(partial_cursor.line);
|
||||
}
|
||||
|
@ -1029,7 +1025,7 @@ get_query_string(Application_Links *app, char *query_str, char *string_space, in
|
|||
|
||||
static String
|
||||
get_string_in_view_range(Application_Links *app, Partition *arena, View_Summary *view){
|
||||
String str = {0};
|
||||
String str = {};
|
||||
Buffer_Summary buffer = get_buffer(app, view->buffer_id, AccessProtected);
|
||||
if (!buffer.exists) return(str);
|
||||
Range range = get_view_range(view);
|
||||
|
@ -1045,8 +1041,8 @@ get_string_in_view_range(Application_Links *app, Partition *arena, View_Summary
|
|||
|
||||
static String
|
||||
get_token_or_word_under_pos(Application_Links *app, Buffer_Summary *buffer, int32_t pos, char *space, int32_t capacity){
|
||||
String result = {0};
|
||||
Cpp_Get_Token_Result get_result = {0};
|
||||
String result = {};
|
||||
Cpp_Get_Token_Result get_result = {};
|
||||
bool32 success = buffer_get_token_index(app, buffer, pos, &get_result);
|
||||
if (success && !get_result.in_whitespace){
|
||||
int32_t size = get_result.token_end - get_result.token_start;
|
||||
|
@ -1062,7 +1058,7 @@ get_token_or_word_under_pos(Application_Links *app, Buffer_Summary *buffer, int3
|
|||
|
||||
static String
|
||||
build_string(Partition *part, char *s0, char *s1, char *s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = str_size(s0) + str_size(s1) + str_size(s2) + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1075,7 +1071,7 @@ build_string(Partition *part, char *s0, char *s1, char *s2){
|
|||
|
||||
static String
|
||||
build_string(Partition *part, char *s0, char *s1, String s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = str_size(s0) + str_size(s1) + s2.size + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1089,7 +1085,7 @@ build_string(Partition *part, char *s0, char *s1, String s2){
|
|||
|
||||
static String
|
||||
build_string(Partition *part, char *s0, String s1, char *s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = str_size(s0) + s1.size + str_size(s2) + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1103,7 +1099,7 @@ build_string(Partition *part, char *s0, String s1, char *s2){
|
|||
|
||||
static String
|
||||
build_string(Partition *part, char *s0, String s1, String s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = str_size(s0) + s1.size + s2.size + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1117,7 +1113,7 @@ build_string(Partition *part, char *s0, String s1, String s2){
|
|||
|
||||
static String
|
||||
build_string(Partition *part, String s0, char *s1, char *s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = s0.size + str_size(s1) + str_size(s2) + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1131,7 +1127,7 @@ build_string(Partition *part, String s0, char *s1, char *s2){
|
|||
|
||||
static String
|
||||
build_string(Partition *part, String s0, char *s1, String s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = s0.size + str_size(s1) + s2.size + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1145,7 +1141,7 @@ build_string(Partition *part, String s0, char *s1, String s2){
|
|||
|
||||
static String
|
||||
build_string(Partition *part, String s0, String s1, char *s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = s0.size + s1.size + str_size(s2) + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1159,7 +1155,7 @@ build_string(Partition *part, String s0, String s1, char *s2){
|
|||
|
||||
static String
|
||||
build_string(Partition *part, String s0, String s1, String s2){
|
||||
String sr = {0};
|
||||
String sr = {};
|
||||
sr.memory_size = s0.size + s1.size + s2.size + 1;
|
||||
sr.str = push_array(part, char, sr.memory_size);
|
||||
if (sr.str != 0){
|
||||
|
@ -1205,7 +1201,7 @@ get_hot_directory(Application_Links *app, Partition *arena){
|
|||
|
||||
static String
|
||||
dump_file_handle(Partition *arena, FILE *file){
|
||||
String str = {0};
|
||||
String str = {};
|
||||
if (file != 0){
|
||||
fseek(file, 0, SEEK_END);
|
||||
int32_t size = ftell(file);
|
||||
|
@ -1223,7 +1219,7 @@ dump_file_handle(Partition *arena, FILE *file){
|
|||
|
||||
static File_Handle_Path
|
||||
open_file_search_up_path(Partition *arena, String path, String file_name){
|
||||
File_Handle_Path result = {0};
|
||||
File_Handle_Path result = {};
|
||||
|
||||
int32_t cap = path.size + file_name.size + 2;
|
||||
char *space = push_array(arena, char, cap);
|
||||
|
@ -1301,7 +1297,7 @@ open_file(Partition *scratch, String name){
|
|||
|
||||
static File_Name_Data
|
||||
dump_file(Partition *arena, String file_name){
|
||||
File_Name_Data result = {0};
|
||||
File_Name_Data result = {};
|
||||
FILE *file = open_file(arena, file_name);
|
||||
if (file != 0){
|
||||
result.file_name = file_name;
|
||||
|
@ -1313,7 +1309,7 @@ dump_file(Partition *arena, String file_name){
|
|||
|
||||
static File_Name_Path_Data
|
||||
dump_file_search_up_path(Partition *arena, String path, String file_name){
|
||||
File_Name_Path_Data result = {0};
|
||||
File_Name_Path_Data result = {};
|
||||
File_Handle_Path file = open_file_search_up_path(arena, path, file_name);
|
||||
if (file.file != 0){
|
||||
result.file_name = file_name;
|
||||
|
@ -1327,7 +1323,7 @@ dump_file_search_up_path(Partition *arena, String path, String file_name){
|
|||
static String
|
||||
push_string(Partition *arena, int32_t cap){
|
||||
char *mem = push_array(arena, char, cap);
|
||||
String result = {0};
|
||||
String result = {};
|
||||
if (mem != 0){
|
||||
result = make_string_cap(mem, 0, cap);
|
||||
}
|
||||
|
@ -1336,7 +1332,7 @@ push_string(Partition *arena, int32_t cap){
|
|||
|
||||
static String
|
||||
push_string_copy(Partition *arena, String str){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
if (str.str != 0){
|
||||
result = push_string(arena, str.size + 1);
|
||||
push_align(arena, 8);
|
||||
|
@ -1396,7 +1392,7 @@ sort_pairs_by_key(Sort_Pair_i32 *pairs, int32_t count){
|
|||
|
||||
static Range_Array
|
||||
get_ranges_of_duplicate_keys(Partition *arena, int32_t *keys, int32_t stride, int32_t count){
|
||||
Range_Array result = {0};
|
||||
Range_Array result = {};
|
||||
result.ranges = push_array(arena, Range, 0);
|
||||
uint8_t *ptr = (uint8_t*)keys;
|
||||
int32_t start_i = 0;
|
||||
|
@ -1433,7 +1429,7 @@ no_mark_snap_to_cursor(Application_Links *app, View_ID view_id){
|
|||
static void
|
||||
no_mark_snap_to_cursor_if_shift(Application_Links *app, View_ID view_id){
|
||||
User_Input in = get_command_input(app);
|
||||
if (in.type == UserInputKey && in.key.modifiers[MDFR_SHIFT_INDEX]){
|
||||
if (in.key.modifiers[MDFR_SHIFT_INDEX]){
|
||||
no_mark_snap_to_cursor(app, view_id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,12 +11,12 @@ CUSTOM_DOC("If the cursor is found to be on a jump location, parses the jump loc
|
|||
Temp_Memory temp = begin_temp_memory(&global_part);
|
||||
View_Summary view = get_active_view(app, AccessProtected);
|
||||
|
||||
Name_Line_Column_Location location = {0};
|
||||
Name_Line_Column_Location location = {};
|
||||
if (parse_jump_from_buffer_line(app, &global_part, view.buffer_id, view.cursor.line, false, &location)){
|
||||
change_active_panel(app);
|
||||
View_Summary target_view = get_active_view(app, AccessAll);
|
||||
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
switch_to_existing_view(app, &target_view, &buffer);
|
||||
jump_to_location(app, &target_view, &buffer, location);
|
||||
|
@ -32,11 +32,11 @@ CUSTOM_DOC("If the cursor is found to be on a jump location, parses the jump loc
|
|||
Temp_Memory temp = begin_temp_memory(&global_part);
|
||||
View_Summary view = get_active_view(app, AccessProtected);
|
||||
|
||||
Name_Line_Column_Location location = {0};
|
||||
Name_Line_Column_Location location = {};
|
||||
if (parse_jump_from_buffer_line(app, &global_part, view.buffer_id, view.cursor.line, false, &location)){
|
||||
View_Summary target_view = view;
|
||||
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
jump_to_location(app, &target_view, &buffer, location);
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ activate_jump(Application_Links *app, Partition *scratch, Heap *heap,
|
|||
Jump_Lister_Parameters *params = (Jump_Lister_Parameters*)state->lister.user_data;
|
||||
Marker_List *list = get_marker_list_for_buffer(params->list_buffer_id);
|
||||
if (list != 0){
|
||||
View_Summary target_view = {0};
|
||||
View_Summary target_view = {};
|
||||
switch (params->activation_rule){
|
||||
case JumpListerActivation_OpenInUIView:
|
||||
{
|
||||
|
@ -48,9 +48,9 @@ activate_jump(Application_Links *app, Partition *scratch, Heap *heap,
|
|||
}break;
|
||||
}
|
||||
|
||||
ID_Pos_Jump_Location location = {0};
|
||||
ID_Pos_Jump_Location location = {};
|
||||
if (get_jump_from_list(app, list, list_index, &location)){
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
set_active_view(app, &target_view);
|
||||
jump_to_location(app, &target_view, &buffer, location);
|
||||
|
@ -77,9 +77,9 @@ open_jump_lister(Application_Links *app, Partition *scratch, Heap *heap,
|
|||
Lister_Option *options = push_array(scratch, Lister_Option, option_count);
|
||||
Managed_Object stored_jumps = list->jump_array;
|
||||
for (int32_t i = 0; i < option_count; i += 1){
|
||||
Sticky_Jump_Stored stored = {0};
|
||||
Sticky_Jump_Stored stored = {};
|
||||
managed_object_load_data(app, stored_jumps, i, 1, &stored);
|
||||
String line = {0};
|
||||
String line = {};
|
||||
read_line(app, scratch, &list_buffer, stored.list_line, &line);
|
||||
options[i].string = line.str;
|
||||
options[i].status = 0;
|
||||
|
@ -89,7 +89,7 @@ open_jump_lister(Application_Links *app, Partition *scratch, Heap *heap,
|
|||
estimated_string_space_size += aligned_size;
|
||||
}
|
||||
|
||||
Jump_Lister_Parameters jump_lister_params = {0};
|
||||
Jump_Lister_Parameters jump_lister_params = {};
|
||||
jump_lister_params.list_buffer_id = list_buffer_id;
|
||||
jump_lister_params.activation_rule = activation_rule;
|
||||
if (optional_target_view != 0){
|
||||
|
|
|
@ -40,7 +40,7 @@ binary_search(uint32_t *array, int32_t stride, int32_t count, uint32_t x){
|
|||
|
||||
static Sticky_Jump_Array
|
||||
parse_buffer_to_jump_array(Application_Links *app, Partition *arena, Buffer_Summary buffer){
|
||||
Sticky_Jump_Array result = {0};
|
||||
Sticky_Jump_Array result = {};
|
||||
result.jumps = push_array(arena, Sticky_Jump, 0);
|
||||
|
||||
for (int32_t line = 1;; line += 1){
|
||||
|
@ -51,14 +51,14 @@ parse_buffer_to_jump_array(Application_Links *app, Partition *arena, Buffer_Summ
|
|||
int32_t out_pos = 0;
|
||||
|
||||
Temp_Memory temp = begin_temp_memory(arena);
|
||||
String line_str = {0};
|
||||
String line_str = {};
|
||||
if (read_line(app, arena, &buffer, line, &line_str)){
|
||||
Name_Line_Column_Location location = {0};
|
||||
Name_Line_Column_Location location = {};
|
||||
if (parse_jump_location(line_str, &location, &colon_index, &is_sub_error)){
|
||||
Buffer_Summary jump_buffer = {0};
|
||||
Buffer_Summary jump_buffer = {};
|
||||
if (open_file(app, &jump_buffer, location.file.str, location.file.size, false, true)){
|
||||
if (jump_buffer.exists){
|
||||
Partial_Cursor cursor = {0};
|
||||
Partial_Cursor cursor = {};
|
||||
if (buffer_compute_cursor(app, &jump_buffer,
|
||||
seek_line_char(location.line, location.column),
|
||||
&cursor)){
|
||||
|
@ -117,7 +117,7 @@ init_marker_list(Application_Links *app, Partition *scratch, Heap *heap, Buffer_
|
|||
|
||||
Sticky_Jump_Stored *stored = push_array(scratch, Sticky_Jump_Stored, jumps.count);
|
||||
|
||||
Managed_Scope scope_array[2] = {0};
|
||||
Managed_Scope scope_array[2] = {};
|
||||
scope_array[0] = buffer_get_managed_scope(app, buffer_id);
|
||||
|
||||
for (int32_t i = 0; i < scoped_buffer_ranges.count; i += 1){
|
||||
|
@ -240,7 +240,7 @@ get_or_make_list_for_buffer(Application_Links *app, Partition *scratch, Heap *he
|
|||
static bool32
|
||||
get_stored_jump_from_list(Application_Links *app, Marker_List *list, int32_t index,
|
||||
Sticky_Jump_Stored *stored_out){
|
||||
Sticky_Jump_Stored stored = {0};
|
||||
Sticky_Jump_Stored stored = {};
|
||||
if (list != 0){
|
||||
if (managed_object_load_data(app, list->jump_array, index, 1, &stored)){
|
||||
*stored_out = stored;
|
||||
|
@ -268,11 +268,11 @@ get_all_stored_jumps_from_list(Application_Links *app, Partition *arena, Marker_
|
|||
|
||||
static bool32
|
||||
get_jump_from_list(Application_Links *app, Marker_List *list, int32_t index, ID_Pos_Jump_Location *location){
|
||||
Sticky_Jump_Stored stored = {0};
|
||||
Sticky_Jump_Stored stored = {};
|
||||
if (get_stored_jump_from_list(app, list, index, &stored)){
|
||||
Buffer_ID target_buffer_id = stored.jump_buffer_id;
|
||||
|
||||
Managed_Scope scope_array[2] = {0};
|
||||
Managed_Scope scope_array[2] = {};
|
||||
scope_array[0] = buffer_get_managed_scope(app, list->buffer_id);
|
||||
scope_array[1] = buffer_get_managed_scope(app, target_buffer_id);
|
||||
Managed_Scope scope = get_managed_scope_with_multiple_dependencies(app, scope_array, ArrayCount(scope_array));
|
||||
|
@ -280,7 +280,7 @@ get_jump_from_list(Application_Links *app, Marker_List *list, int32_t index, ID_
|
|||
sticky_jump_marker_handle_loc = managed_variable_create_or_get_id(app, sticky_jump_marker_handle_var, 0);
|
||||
Managed_Object marker_array = 0;
|
||||
if (managed_variable_get(app, scope, sticky_jump_marker_handle_loc, &marker_array)){
|
||||
Marker marker = {0};
|
||||
Marker marker = {};
|
||||
managed_object_load_data(app, marker_array, stored.index_into_marker_array, 1, &marker);
|
||||
location->buffer_id = target_buffer_id;
|
||||
location->pos = marker.pos;
|
||||
|
@ -294,7 +294,7 @@ static int32_t
|
|||
get_line_from_list(Application_Links *app, Marker_List *list, int32_t index){
|
||||
int32_t result = 0;
|
||||
if (list != 0){
|
||||
Sticky_Jump_Stored stored = {0};
|
||||
Sticky_Jump_Stored stored = {};
|
||||
if (get_stored_jump_from_list(app, list, index, &stored)){
|
||||
result = stored.list_line;
|
||||
}
|
||||
|
@ -306,7 +306,7 @@ static bool32
|
|||
get_is_sub_error_from_list(Application_Links *app, Marker_List *list, int32_t index){
|
||||
bool32 result = false;
|
||||
if (list != 0){
|
||||
Sticky_Jump_Stored stored = {0};
|
||||
Sticky_Jump_Stored stored = {};
|
||||
if (get_stored_jump_from_list(app, list, index, &stored)){
|
||||
result = stored.is_sub_error;
|
||||
}
|
||||
|
@ -358,9 +358,9 @@ CUSTOM_DOC("If the cursor is found to be on a jump location, parses the jump loc
|
|||
int32_t list_index = get_index_exact_from_list(app, part, list, view.cursor.line);
|
||||
|
||||
if (list_index >= 0){
|
||||
ID_Pos_Jump_Location location = {0};
|
||||
ID_Pos_Jump_Location location = {};
|
||||
if (get_jump_from_list(app, list, list_index, &location)){
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
change_active_panel(app);
|
||||
View_Summary target_view = get_active_view(app, AccessAll);
|
||||
|
@ -385,9 +385,9 @@ CUSTOM_DOC("If the cursor is found to be on a jump location, parses the jump loc
|
|||
int32_t list_index = get_index_exact_from_list(app, part, list, view.cursor.line);
|
||||
|
||||
if (list_index >= 0){
|
||||
ID_Pos_Jump_Location location = {0};
|
||||
ID_Pos_Jump_Location location = {};
|
||||
if (get_jump_from_list(app, list, list_index, &location)){
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
View_Summary target_view = view;
|
||||
jump_to_location(app, &target_view, &buffer, location);
|
||||
|
@ -400,7 +400,7 @@ CUSTOM_DOC("If the cursor is found to be on a jump location, parses the jump loc
|
|||
|
||||
static void
|
||||
goto_jump_in_order(Application_Links *app, Marker_List *list, View_Summary *jump_view, ID_Pos_Jump_Location location){
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
View_Summary target_view = get_active_view(app, AccessAll);
|
||||
if (target_view.view_id == jump_view->view_id){
|
||||
|
@ -434,7 +434,7 @@ goto_next_filtered_jump(Application_Links *app, Marker_List *list, View_Summary
|
|||
|
||||
if (list != 0){
|
||||
for (;list_index >= 0 && list_index < list->jump_count;){
|
||||
ID_Pos_Jump_Location location = {0};
|
||||
ID_Pos_Jump_Location location = {};
|
||||
if (get_jump_from_list(app, list, list_index, &location)){
|
||||
bool32 skip_this = false;
|
||||
if (skip_repeats && jump_is_repeat(prev_location, location)){
|
||||
|
@ -459,7 +459,7 @@ goto_next_filtered_jump(Application_Links *app, Marker_List *list, View_Summary
|
|||
|
||||
static Locked_Jump_State
|
||||
get_locked_jump_state(Application_Links *app, Partition *part, Heap *heap){
|
||||
Locked_Jump_State result = {0};
|
||||
Locked_Jump_State result = {};
|
||||
result.view = get_view_for_locked_jump_buffer(app);
|
||||
if (result.view.exists){
|
||||
result.list = get_or_make_list_for_buffer(app, part, heap, result.view.buffer_id);
|
||||
|
@ -538,7 +538,7 @@ CUSTOM_DOC("If a buffer containing jump locations has been locked in, goes to th
|
|||
Locked_Jump_State jump_state = get_locked_jump_state(app, part, heap);
|
||||
if (jump_state.view.exists){
|
||||
int32_t list_index = 0;
|
||||
ID_Pos_Jump_Location location = {0};
|
||||
ID_Pos_Jump_Location location = {};
|
||||
if (get_jump_from_list(app, jump_state.list, list_index, &location)){
|
||||
goto_jump_in_order(app, jump_state.list, &jump_state.view, location);
|
||||
int32_t updated_line = get_line_from_list(app, jump_state.list, list_index);
|
||||
|
@ -556,9 +556,9 @@ CUSTOM_DOC("If a buffer containing jump locations has been locked in, goes to th
|
|||
Locked_Jump_State jump_state = get_locked_jump_state(app, part, heap);
|
||||
if (jump_state.view.exists){
|
||||
int32_t list_index = 0;
|
||||
ID_Pos_Jump_Location location = {0};
|
||||
ID_Pos_Jump_Location location = {};
|
||||
if (get_jump_from_list(app, jump_state.list, list_index, &location)){
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
jump_to_location(app, &jump_state.view, &buffer, location);
|
||||
}
|
||||
|
|
|
@ -175,7 +175,7 @@ parse_jump_from_buffer_line(Application_Links *app, Partition *arena,
|
|||
int32_t buffer_id, int32_t line,
|
||||
bool32 skip_sub_errors, Name_Line_Column_Location *location){
|
||||
int32_t result = false;
|
||||
String line_str = {0};
|
||||
String line_str = {};
|
||||
Buffer_Summary buffer = get_buffer(app, buffer_id, AccessAll);
|
||||
if (read_line(app, arena, &buffer, line, &line_str)){
|
||||
int32_t colon_char = 0;
|
||||
|
@ -252,7 +252,7 @@ seek_next_jump_in_buffer(Application_Links *app, Partition *part,
|
|||
|
||||
bool32 result = false;
|
||||
int32_t line = first_line;
|
||||
String line_str = {0};
|
||||
String line_str = {};
|
||||
Buffer_Summary buffer = get_buffer(app, buffer_id, AccessAll);
|
||||
for (;;){
|
||||
if (read_line(app, part, &buffer, line, &line_str)){
|
||||
|
@ -278,7 +278,7 @@ seek_next_jump_in_buffer(Application_Links *app, Partition *part,
|
|||
|
||||
static ID_Line_Column_Jump_Location
|
||||
convert_name_based_to_id_based(Application_Links *app, Name_Line_Column_Location loc){
|
||||
ID_Line_Column_Jump_Location result = {0};
|
||||
ID_Line_Column_Jump_Location result = {};
|
||||
Buffer_Summary buffer = get_buffer_by_name(app, loc.file.str, loc.file.size, AccessAll);
|
||||
|
||||
if (buffer.exists){
|
||||
|
@ -294,7 +294,7 @@ static int32_t
|
|||
seek_next_jump_in_view(Application_Links *app, Partition *part, View_Summary *view, int32_t skip_sub_errors, int32_t direction, int32_t *line_out, int32_t *colon_index_out, Name_Line_Column_Location *location_out){
|
||||
int32_t result = false;
|
||||
|
||||
Name_Line_Column_Location location = {0};
|
||||
Name_Line_Column_Location location = {};
|
||||
int32_t line = view->cursor.line;
|
||||
int32_t colon_index = 0;
|
||||
if (seek_next_jump_in_buffer(app, part, view->buffer_id, line+direction, skip_sub_errors, direction, &line, &colon_index, &location)){
|
||||
|
@ -320,8 +320,8 @@ static bool32
|
|||
advance_cursor_in_jump_view(Application_Links *app, Partition *part, View_Summary *view, int32_t skip_repeats, int32_t skip_sub_error, int32_t direction, Name_Line_Column_Location *location_out){
|
||||
bool32 result = true;
|
||||
|
||||
Name_Line_Column_Location location = {0};
|
||||
ID_Line_Column_Jump_Location jump = {0};
|
||||
Name_Line_Column_Location location = {};
|
||||
ID_Line_Column_Jump_Location jump = {};
|
||||
int32_t line = 0;
|
||||
int32_t colon_index = 0;
|
||||
|
||||
|
@ -355,10 +355,10 @@ seek_jump(Application_Links *app, Partition *part, bool32 skip_repeats, bool32 s
|
|||
|
||||
View_Summary view = get_view_for_locked_jump_buffer(app);
|
||||
if (view.exists){
|
||||
Name_Line_Column_Location location = {0};
|
||||
Name_Line_Column_Location location = {};
|
||||
if (advance_cursor_in_jump_view(app, &global_part, &view, skip_repeats, skip_sub_errors, direction, &location)){
|
||||
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
if (get_jump_buffer(app, &buffer, &location)){
|
||||
View_Summary target_view = get_active_view(app, AccessAll);
|
||||
if (target_view.view_id == view.view_id){
|
||||
|
|
|
@ -11,7 +11,7 @@ distribute, and modify this file as you see fit.
|
|||
|
||||
inline Partition
|
||||
make_part(void *memory, i32_4tech size){
|
||||
Partition partition = {0};
|
||||
Partition partition = {};
|
||||
partition.base = (char*)memory;
|
||||
partition.pos = 0;
|
||||
partition.max = size;
|
||||
|
@ -65,9 +65,7 @@ partition_sub_part(Partition *data, i32_4tech size){
|
|||
return(result);
|
||||
}
|
||||
|
||||
#define push_struct(part, T) (T*)partition_allocate(part, sizeof(T))
|
||||
#define push_array(part, T, size) (T*)partition_allocate(part, sizeof(T)*(size))
|
||||
#define push_block(part, size) partition_allocate(part, size)
|
||||
#define push_align(part, b) partition_align(part, b)
|
||||
|
||||
inline Temp_Memory
|
||||
|
@ -85,7 +83,7 @@ end_temp_memory(Temp_Memory temp){
|
|||
|
||||
inline Tail_Temp_Partition
|
||||
begin_tail_part(Partition *data, i32_4tech size){
|
||||
Tail_Temp_Partition result = {0};
|
||||
Tail_Temp_Partition result = {};
|
||||
if (data->pos + size <= data->max){
|
||||
result.handle = data;
|
||||
result.old_max = data->max;
|
||||
|
|
|
@ -65,7 +65,7 @@ typedef struct String{
|
|||
i32_4tech memory_size;
|
||||
} String;
|
||||
|
||||
static String null_string = {0};
|
||||
static String null_string = {};
|
||||
#endif
|
||||
|
||||
#if !defined(FCODER_STRING_H)
|
||||
|
@ -551,7 +551,7 @@ substr(String str, i32_4tech start, i32_4tech size)
|
|||
FSTRING_LINK String
|
||||
skip_whitespace(String str)
|
||||
{
|
||||
String result = {0};
|
||||
String result = {};
|
||||
i32_4tech i = 0;
|
||||
for (; i < str.size && char_is_whitespace(str.str[i]); ++i);
|
||||
result = substr(str, i, str.size - i);
|
||||
|
@ -564,7 +564,7 @@ skip_whitespace(String str)
|
|||
FSTRING_LINK String
|
||||
skip_whitespace_measure(String str, i32_4tech *skip_length)
|
||||
{
|
||||
String result = {0};
|
||||
String result = {};
|
||||
i32_4tech i = 0;
|
||||
for (; i < str.size && char_is_whitespace(str.str[i]); ++i);
|
||||
result = substr(str, i, str.size - i);
|
||||
|
@ -577,7 +577,7 @@ skip_whitespace_measure(String str, i32_4tech *skip_length)
|
|||
FSTRING_LINK String
|
||||
chop_whitespace(String str)
|
||||
{
|
||||
String result = {0};
|
||||
String result = {};
|
||||
i32_4tech i = str.size;
|
||||
for (; i > 0 && char_is_whitespace(str.str[i-1]); --i);
|
||||
result = substr(str, 0, i);
|
||||
|
@ -1863,7 +1863,7 @@ typedef struct Float_To_Str_Variables{
|
|||
|
||||
static Float_To_Str_Variables
|
||||
get_float_vars(float x){
|
||||
Float_To_Str_Variables vars = {0};
|
||||
Float_To_Str_Variables vars = {};
|
||||
|
||||
if (x < 0){
|
||||
vars.negative = 1;
|
||||
|
@ -2219,7 +2219,7 @@ string_set_match(String *str_set, i32_4tech count, String str, i32_4tech *match_
|
|||
#if defined(FSTRING_IMPLEMENTATION)
|
||||
FSTRING_LINK String
|
||||
get_first_double_line(String source){
|
||||
String line = {0};
|
||||
String line = {};
|
||||
i32_4tech pos0 = find_substr_s(source, 0, make_lit_string("\n\n"));
|
||||
i32_4tech pos1 = find_substr_s(source, 0, make_lit_string("\r\n\r\n"));
|
||||
if (pos1 < pos0){
|
||||
|
@ -2233,7 +2233,7 @@ get_first_double_line(String source){
|
|||
#if defined(FSTRING_IMPLEMENTATION)
|
||||
FSTRING_LINK String
|
||||
get_next_double_line(String source, String line){
|
||||
String next = {0};
|
||||
String next = {};
|
||||
i32_4tech pos = (i32_4tech)(line.str - source.str) + line.size;
|
||||
i32_4tech start = 0, pos0 = 0, pos1 = 0;
|
||||
|
||||
|
@ -2259,7 +2259,7 @@ get_next_double_line(String source, String line){
|
|||
FSTRING_LINK String
|
||||
get_next_word(String source, String prev_word){
|
||||
|
||||
String word = {0};
|
||||
String word = {};
|
||||
i32_4tech pos0 = (i32_4tech)(prev_word.str - source.str) + prev_word.size;
|
||||
i32_4tech pos1 = 0;
|
||||
char c = 0;
|
||||
|
|
|
@ -201,7 +201,7 @@ DOC(This call reads in an array of strings, either null terminated or not, and o
|
|||
DOC_SEE(cpp_get_table_memory_size_null_terminated)
|
||||
DOC_SEE(cpp_get_table_memory_size_string_lengths)
|
||||
*/{
|
||||
Cpp_Keyword_Table table = {0};
|
||||
Cpp_Keyword_Table table = {};
|
||||
table.mem = memory;
|
||||
table.memsize = memsize;
|
||||
table.keywords = (u64_4tech*)memory;
|
||||
|
@ -1326,7 +1326,7 @@ File_Data file = read_whole_file(file_name);
|
|||
|
||||
Cpp_Lex_Data lex_state = cpp_lex_data_init(false);
|
||||
|
||||
Cpp_Token_Array array = {0};
|
||||
Cpp_Token_Array array = {};
|
||||
array.tokens = (Cpp_Token*)malloc(1 << 20); // hopefully big enough
|
||||
array.max_count = (1 << 20)/sizeof(Cpp_Token);
|
||||
|
||||
|
@ -1370,7 +1370,7 @@ DOC_RETURN(A brand new lex state setup to lex from the beginning of the file.)
|
|||
|
||||
DOC(Creates a new lex state in the form of a Cpp_Lex_Data struct and returns the struct.)
|
||||
*/{
|
||||
Cpp_Lex_Data data = {0};
|
||||
Cpp_Lex_Data data = {};
|
||||
data.ignore_string_delims = (b8_4tech)ignore_string_delims;
|
||||
data.keyword_table = keywords;
|
||||
data.preprops_table = preprocessor_words;
|
||||
|
@ -1434,8 +1434,8 @@ DOC_PARAM(start_pos, The start position of the edited region of the file.
|
|||
The start and end points are based on the edited region of the file before the edit.)
|
||||
DOC_PARAM(end_pos, The end position of the edited region of the file. In particular, end_pos is the first character after the edited region not effected by the edit. Thus if the edited region contained one character end_pos - start_pos should equal 1. The start and end points are based on the edited region of the file before the edit.)
|
||||
*/{
|
||||
Cpp_Relex_Range range = {0};
|
||||
Cpp_Get_Token_Result get_result = {0};
|
||||
Cpp_Relex_Range range = {};
|
||||
Cpp_Get_Token_Result get_result = {};
|
||||
|
||||
get_result = cpp_get_token(*array, start_pos);
|
||||
range.start_token_index = get_result.token_index-1;
|
||||
|
@ -1477,7 +1477,7 @@ DOC_SEE(cpp_relex_declare_first_chunk_position)
|
|||
DOC_SEE(cpp_relex_is_start_chunk)
|
||||
|
||||
*/{
|
||||
Cpp_Relex_Data state = {0};
|
||||
Cpp_Relex_Data state = {};
|
||||
|
||||
Cpp_Relex_Range range = cpp_get_relex_range(array, start_pos, end_pos);
|
||||
state.start_token_index = range.start_token_index;
|
||||
|
@ -1832,7 +1832,7 @@ DOC_SEE(cpp_free_table)
|
|||
DOC_SEE(Cpp_Word_Table_Type)
|
||||
DOC_SEE(cpp_make_table)
|
||||
*/{
|
||||
Cpp_Keyword_Table result = {0};
|
||||
Cpp_Keyword_Table result = {};
|
||||
umem_4tech size = cpp_get_table_memory_size_default(type);
|
||||
if (size > 0){
|
||||
void *mem = malloc((size_t)size);
|
||||
|
|
|
@ -279,7 +279,7 @@ STRUCT Cpp_Token_Array{
|
|||
int32_t max_count;
|
||||
};
|
||||
|
||||
static Cpp_Token_Array null_cpp_token_array = {0};
|
||||
static Cpp_Token_Array null_cpp_token_array = {};
|
||||
|
||||
/* DOC(Cpp_Get_Token_Result is the return result of the cpp_get_token call.)
|
||||
DOC_SEE(cpp_get_token) */
|
||||
|
@ -312,7 +312,7 @@ struct Cpp_Lex_FSM{
|
|||
uint8_t emit_token;
|
||||
uint8_t flags;
|
||||
};
|
||||
static Cpp_Lex_FSM null_lex_fsm = {0};
|
||||
static Cpp_Lex_FSM null_lex_fsm = {};
|
||||
|
||||
/* DOC(A Cpp_Keyword_Table contains a list of keywords and a hashed lookup table for the keywords. They are used to setup a parse context.)
|
||||
DOC_SEE(cpp_make_token_array)
|
||||
|
|
|
@ -287,7 +287,7 @@ CUSTOM_DOC("A lister mode command that handles input for the fixed sure to kill
|
|||
|
||||
static Lister_Handlers
|
||||
lister_get_default_handlers(void){
|
||||
Lister_Handlers handlers = {0};
|
||||
Lister_Handlers handlers = {};
|
||||
handlers.write_character = lister__write_character__default;
|
||||
handlers.backspace = lister__backspace_text_field__default;
|
||||
handlers.navigate_up = lister__move_up__default;
|
||||
|
@ -297,7 +297,7 @@ lister_get_default_handlers(void){
|
|||
|
||||
static Lister_Handlers
|
||||
lister_get_fixed_list_handlers(void){
|
||||
Lister_Handlers handlers = {0};
|
||||
Lister_Handlers handlers = {};
|
||||
handlers.write_character = lister__write_character__fixed_list;
|
||||
handlers.backspace = 0;
|
||||
handlers.navigate_up = lister__move_up__default;
|
||||
|
@ -452,7 +452,7 @@ begin_integrated_lister__ui_list(Application_Links *app, char *query_string,
|
|||
|
||||
static void
|
||||
generate_all_buffers_list__output_buffer(Partition *arena, Lister *lister, Buffer_Summary buffer){
|
||||
String status = {0};
|
||||
String status = {};
|
||||
switch (buffer.dirty){
|
||||
case DirtyState_UnsavedChanges: status = make_lit_string("*"); break;
|
||||
case DirtyState_UnloadedChanges: status = make_lit_string("!"); break;
|
||||
|
@ -536,7 +536,7 @@ generate_hot_directory_file_list(Application_Links *app, Partition *arena, Liste
|
|||
lister_begin_new_item_set(lister);
|
||||
String hot = get_hot_directory(app, arena);
|
||||
push_align(arena, 8);
|
||||
File_List file_list = {0};
|
||||
File_List file_list = {};
|
||||
if (hot.str != 0){
|
||||
file_list = get_file_list(app, hot.str, hot.size);
|
||||
}
|
||||
|
@ -561,7 +561,7 @@ generate_hot_directory_file_list(Application_Links *app, Partition *arena, Liste
|
|||
char *status_flag = "";
|
||||
|
||||
Temp_Memory path_temp = begin_temp_memory(arena);
|
||||
String full_file_path = {0};
|
||||
String full_file_path = {};
|
||||
full_file_path.size = 0;
|
||||
full_file_path.memory_size = hot.size + 1 + info->filename_len + 1;
|
||||
full_file_path.str = push_array(arena, char, full_file_path.memory_size);
|
||||
|
@ -801,7 +801,7 @@ activate_open_or_new(Application_Links *app, Partition *scratch, Heap *heap,
|
|||
View_Summary *view, struct Lister_State *state,
|
||||
String text_field, void *user_data, bool32 clicked){
|
||||
Lister_Activation_Code result = 0;
|
||||
String file_name = {0};
|
||||
String file_name = {};
|
||||
if (user_data == 0){
|
||||
file_name = front_of_directory(text_field);
|
||||
}
|
||||
|
@ -866,7 +866,7 @@ activate_open(Application_Links *app, Partition *scratch, Heap *heap,
|
|||
View_Summary *view, struct Lister_State *state,
|
||||
String text_field, void *user_data, bool32 clicked){
|
||||
Lister_Activation_Code result = 0;
|
||||
String file_name = {0};
|
||||
String file_name = {};
|
||||
if (user_data != 0){
|
||||
file_name = make_string_slowly((char*)user_data);
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ line_column_coordinates(String text, int32_t pos){
|
|||
pos = text.size;
|
||||
}
|
||||
|
||||
Line_Column_Coordinates coords = {0};
|
||||
Line_Column_Coordinates coords = {};
|
||||
coords.line = 1;
|
||||
coords.column = 1;
|
||||
char *end = text.str + pos;
|
||||
|
@ -79,7 +79,7 @@ struct Temp_Read{
|
|||
|
||||
static Reader
|
||||
make_reader(Cpp_Token_Array array, char *source_name, String text){
|
||||
Reader reader = {0};
|
||||
Reader reader = {};
|
||||
reader.tokens = array;
|
||||
reader.ptr = array.tokens;
|
||||
reader.source_name = source_name;
|
||||
|
@ -89,7 +89,7 @@ make_reader(Cpp_Token_Array array, char *source_name, String text){
|
|||
|
||||
static Cpp_Token
|
||||
prev_token(Reader *reader){
|
||||
Cpp_Token result = {0};
|
||||
Cpp_Token result = {};
|
||||
|
||||
for (;;){
|
||||
if (reader->ptr > reader->tokens.tokens + reader->tokens.count){
|
||||
|
@ -116,7 +116,7 @@ prev_token(Reader *reader){
|
|||
|
||||
static Cpp_Token
|
||||
get_token(Reader *reader){
|
||||
Cpp_Token result = {0};
|
||||
Cpp_Token result = {};
|
||||
|
||||
for (;;){
|
||||
if (reader->ptr < reader->tokens.tokens){
|
||||
|
@ -144,7 +144,7 @@ get_token(Reader *reader){
|
|||
|
||||
static Cpp_Token
|
||||
peek_token(Reader *reader){
|
||||
Cpp_Token result = {0};
|
||||
Cpp_Token result = {};
|
||||
|
||||
if (reader->ptr < reader->tokens.tokens){
|
||||
reader->ptr = reader->tokens.tokens;
|
||||
|
@ -179,7 +179,7 @@ error(Reader *reader, int32_t pos, char *msg){
|
|||
|
||||
static Temp_Read
|
||||
begin_temp_read(Reader *reader){
|
||||
Temp_Read temp = {0};
|
||||
Temp_Read temp = {};
|
||||
temp.reader = reader;
|
||||
temp.pos = reader->ptr;
|
||||
return(temp);
|
||||
|
@ -466,10 +466,10 @@ extract_string(Reader *reader, String *str_out, int32_t *opt_pos_out = 0){
|
|||
|
||||
static bool32
|
||||
parse_documented_command(Partition *part, Meta_Command_Entry_Arrays *arrays, Reader *reader){
|
||||
String name = {0};
|
||||
String file_name = {0};
|
||||
String line_number = {0};
|
||||
String doc = {0};
|
||||
String name = {};
|
||||
String file_name = {};
|
||||
String line_number = {};
|
||||
String doc = {};
|
||||
|
||||
// Getting the command's name
|
||||
int32_t start_pos = 0;
|
||||
|
@ -552,8 +552,8 @@ parse_documented_command(Partition *part, Meta_Command_Entry_Arrays *arrays, Rea
|
|||
|
||||
static bool32
|
||||
parse_alias(Partition *part, Meta_Command_Entry_Arrays *arrays, Reader *reader){
|
||||
String name = {0};
|
||||
String potential = {0};
|
||||
String name = {};
|
||||
String potential = {};
|
||||
|
||||
// Getting the alias's name
|
||||
int32_t start_pos = 0;
|
||||
|
@ -765,7 +765,7 @@ main(int argc, char **argv){
|
|||
start_i = 3;
|
||||
}
|
||||
|
||||
Meta_Command_Entry_Arrays entry_arrays = {0};
|
||||
Meta_Command_Entry_Arrays entry_arrays = {};
|
||||
for (int32_t i = start_i; i < argc; ++i){
|
||||
Filename_Character *pattern_name = encode(part, argv[i]);
|
||||
parse_files_by_pattern(part, &entry_arrays, pattern_name, recursive);
|
||||
|
|
|
@ -14,7 +14,7 @@ get_numeric_string_at_cursor(Application_Links *app, Buffer_Summary *buffer, int
|
|||
if (char_is_numeric(current)){
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
int32_t pos = start_pos;
|
||||
|
||||
|
@ -97,7 +97,7 @@ CUSTOM_DOC("Increment an integer under the cursor by one.")
|
|||
View_Summary view = get_active_view(app, AccessOpen);
|
||||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessOpen);
|
||||
|
||||
Miblo_Number_Info number = {0};
|
||||
Miblo_Number_Info number = {};
|
||||
if (get_numeric_at_cursor(app, &buffer, view.cursor.pos, &number)){
|
||||
char str_space[1024];
|
||||
String str = make_fixed_width_string(str_space);
|
||||
|
@ -113,7 +113,7 @@ CUSTOM_DOC("Decrement an integer under the cursor by one.")
|
|||
View_Summary view = get_active_view(app, AccessOpen);
|
||||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessOpen);
|
||||
|
||||
Miblo_Number_Info number = {0};
|
||||
Miblo_Number_Info number = {};
|
||||
if (get_numeric_at_cursor(app, &buffer, view.cursor.pos, &number)){
|
||||
char str_space[1024];
|
||||
String str = make_fixed_width_string(str_space);
|
||||
|
@ -135,7 +135,7 @@ get_timestamp_string_at_cursor(Application_Links *app, Buffer_Summary *buffer, i
|
|||
if (char_is_numeric(current) || current == ':'){
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
int32_t pos = start_pos;
|
||||
|
||||
|
@ -188,7 +188,7 @@ struct Miblo_Timestamp{
|
|||
int32_t minute;
|
||||
int32_t hour;
|
||||
};
|
||||
static Miblo_Timestamp null_miblo_timestamp = {0};
|
||||
static Miblo_Timestamp null_miblo_timestamp = {};
|
||||
|
||||
enum{
|
||||
MIBLO_SECOND,
|
||||
|
@ -298,7 +298,7 @@ get_timestamp_at_cursor(Application_Links *app, Buffer_Summary *buffer, int32_t
|
|||
}
|
||||
|
||||
if (count_colons == 1 || count_colons == 2){
|
||||
Miblo_Timestamp t = {0};
|
||||
Miblo_Timestamp t = {};
|
||||
|
||||
int32_t success = 0;
|
||||
|
||||
|
@ -362,7 +362,7 @@ miblo_time_stamp_alter(Application_Links *app, int32_t unit_type, int32_t amt){
|
|||
View_Summary view = get_active_view(app, AccessOpen);
|
||||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessOpen);
|
||||
|
||||
Miblo_Timestamp_Info timestamp = {0};
|
||||
Miblo_Timestamp_Info timestamp = {};
|
||||
if (get_timestamp_at_cursor(app, &buffer, view.cursor.pos, ×tamp)){
|
||||
char str_space[1024];
|
||||
String str = make_fixed_width_string(str_space);
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
|
||||
// TOP
|
||||
|
||||
static Project current_project = {0};
|
||||
static Partition current_project_arena = {0};
|
||||
static Project current_project = {};
|
||||
static Partition current_project_arena = {};
|
||||
|
||||
///////////////////////////////
|
||||
|
||||
static Project_File_Pattern_Array
|
||||
get_pattern_array_from_cstring_array(Partition *arena, CString_Array list){
|
||||
Project_File_Pattern_Array array = {0};
|
||||
Project_File_Pattern_Array array = {};
|
||||
int32_t count = list.count;
|
||||
array.patterns = push_array(arena, Project_File_Pattern, count);
|
||||
array.count = count;
|
||||
|
@ -28,7 +28,7 @@ get_pattern_array_from_cstring_array(Partition *arena, CString_Array list){
|
|||
|
||||
static Project_File_Pattern_Array
|
||||
get_pattern_array_from_extension_list(Partition *arena, Extension_List extension_list){
|
||||
CString_Array list = {0};
|
||||
CString_Array list = {};
|
||||
list.strings = extension_list.exts;
|
||||
list.count = extension_list.count;
|
||||
return(get_pattern_array_from_cstring_array(arena, list));
|
||||
|
@ -51,7 +51,7 @@ close_all_files_with_extension(Application_Links *app, Partition *scratch_part,
|
|||
do_repeat = 0;
|
||||
|
||||
uint32_t access = AccessAll;
|
||||
Buffer_Summary buffer = {0};
|
||||
Buffer_Summary buffer = {};
|
||||
for (buffer = get_buffer_first(app, access);
|
||||
buffer.exists;
|
||||
get_buffer_next(app, &buffer, access)){
|
||||
|
@ -145,7 +145,7 @@ open_all_files_in_directory_pattern_match__inner(Application_Links *app, String
|
|||
static Project_File_Pattern_Array
|
||||
get_standard_blacklist(Partition *arena){
|
||||
static char *dot_str = ".*";
|
||||
CString_Array black_array = {0};
|
||||
CString_Array black_array = {};
|
||||
black_array.strings = &dot_str;
|
||||
black_array.count = 1;
|
||||
return(get_pattern_array_from_cstring_array(arena, black_array));
|
||||
|
@ -234,7 +234,7 @@ parse_project__config_data__version_0(Partition *arena, String file_dir, Config
|
|||
}
|
||||
|
||||
// Read the settings from project.4coder
|
||||
String str = {0};
|
||||
String str = {};
|
||||
if (config_string_var(parsed, "extensions", 0, &str)){
|
||||
Extension_List extension_list;
|
||||
parse_extension_line_to_extension_list(str, &extension_list);
|
||||
|
@ -263,12 +263,12 @@ parse_project__config_data__version_0(Partition *arena, String file_dir, Config
|
|||
append_int_to_str(&command->name, j);
|
||||
terminate_with_null(&command->name);
|
||||
|
||||
String cmd = {0};
|
||||
String cmd = {};
|
||||
if (config_compound_string_member(parsed, compound, "cmd", 0, &cmd)){
|
||||
command->cmd = push_string_copy(arena, cmd);
|
||||
}
|
||||
|
||||
String out = {0};
|
||||
String out = {};
|
||||
if (config_compound_string_member(parsed, compound, "out", 1, &out)){
|
||||
command->out = push_string_copy(arena, out);
|
||||
}
|
||||
|
@ -344,7 +344,7 @@ parse_project__config_data__version_1(Partition *arena, String root_dir, Config
|
|||
|
||||
// project_name
|
||||
{
|
||||
String str = {0};
|
||||
String str = {};
|
||||
if (config_string_var(parsed, "project_name", 0, &str)){
|
||||
project->name = push_string_copy(arena, str);
|
||||
}
|
||||
|
@ -378,7 +378,7 @@ parse_project__config_data__version_1(Partition *arena, String root_dir, Config
|
|||
|
||||
Config_Compound *paths = 0;
|
||||
if (config_compound_compound_member(parsed, paths_option, "paths", 0, &paths)){
|
||||
String str = {0};
|
||||
String str = {};
|
||||
if (config_compound_string_member(parsed, paths_option, "os", 1, &str)){
|
||||
Project_OS_Match_Level r = parse_project__version_1__os_match(str, make_lit_string(PlatformName));
|
||||
if (r == ProjectOSMatchLevel_ActiveMatch){
|
||||
|
@ -411,7 +411,7 @@ parse_project__config_data__version_1(Partition *arena, String root_dir, Config
|
|||
dst->recursive = true;
|
||||
dst->relative = true;
|
||||
|
||||
String str = {0};
|
||||
String str = {};
|
||||
if (config_compound_string_member(parsed, src, "path", 0, &str)){
|
||||
dst->path = push_string_copy(arena, str);
|
||||
}
|
||||
|
@ -442,12 +442,12 @@ parse_project__config_data__version_1(Partition *arena, String root_dir, Config
|
|||
|
||||
bool32 can_emit_command = true;
|
||||
|
||||
String name = {0};
|
||||
Config_Get_Result cmd_result = {0};
|
||||
String name = {};
|
||||
Config_Get_Result cmd_result = {};
|
||||
Config_Compound *cmd_set = 0;
|
||||
char *cmd_pos = 0;
|
||||
String cmd_str = {0};
|
||||
String out = {0};
|
||||
String cmd_str = {};
|
||||
String out = {};
|
||||
bool32 footer_panel = false;
|
||||
bool32 save_dirty_files = true;
|
||||
bool32 cursor_at_end = false;
|
||||
|
@ -481,9 +481,9 @@ parse_project__config_data__version_1(Partition *arena, String root_dir, Config
|
|||
}
|
||||
Config_Compound *cmd_option = result.get.compound;
|
||||
|
||||
String cmd = {0};
|
||||
String cmd = {};
|
||||
if (config_compound_string_member(parsed, cmd_option, "cmd", 0, &cmd)){
|
||||
String str = {0};
|
||||
String str = {};
|
||||
if (config_compound_string_member(parsed, cmd_option, "os", 1, &str)){
|
||||
Project_OS_Match_Level r = parse_project__version_1__os_match(str, make_lit_string(PlatformName));
|
||||
if (r == ProjectOSMatchLevel_ActiveMatch){
|
||||
|
@ -528,7 +528,7 @@ parse_project__config_data__version_1(Partition *arena, String root_dir, Config
|
|||
// fkey_command
|
||||
{
|
||||
for (int32_t i = 1; i <= 16; ++i){
|
||||
String name = {0};
|
||||
String name = {};
|
||||
int32_t index = -1;
|
||||
if (config_string_var(parsed, "fkey_command", i, &name)){
|
||||
int32_t count = project->command_array.count;
|
||||
|
@ -575,7 +575,7 @@ parse_project__config_data(Partition *arena, String file_dir, Config *parsed){
|
|||
|
||||
static Project_Parse_Result
|
||||
parse_project__data(Partition *arena, String file_name, String data, String file_dir){
|
||||
Project_Parse_Result result = {0};
|
||||
Project_Parse_Result result = {};
|
||||
Cpp_Token_Array array = text_data_to_token_array(arena, data);
|
||||
if (array.tokens != 0){
|
||||
result.parsed = text_data_and_token_array_to_parse_data(arena, file_name, data, array);
|
||||
|
@ -588,10 +588,10 @@ parse_project__data(Partition *arena, String file_name, String data, String file
|
|||
|
||||
static Project_Parse_Result
|
||||
parse_project__nearest_file(Application_Links *app, Partition *arena){
|
||||
Project_Parse_Result result = {0};
|
||||
Project_Parse_Result result = {};
|
||||
|
||||
Temp_Memory restore_point = begin_temp_memory(arena);
|
||||
String project_path = {0};
|
||||
String project_path = {};
|
||||
int32_t size = 32 << 10;
|
||||
char *space = push_array(arena, char, size);
|
||||
if (space != 0){
|
||||
|
@ -664,7 +664,7 @@ project_deep_copy__pattern_array(Partition *arena, Project_File_Pattern_Array *s
|
|||
|
||||
static Project
|
||||
project_deep_copy__inner(Partition *arena, Project *project){
|
||||
Project result = {0};
|
||||
Project result = {};
|
||||
|
||||
result.dir = push_string_copy(arena, project->dir);
|
||||
if (result.dir.str == 0){
|
||||
|
@ -971,9 +971,9 @@ exec_project_command(Application_Links *app, Project_Command *command){
|
|||
save_all_dirty_buffers(app);
|
||||
}
|
||||
|
||||
View_Summary view = {0};
|
||||
View_Summary view = {};
|
||||
View_Summary *view_ptr = 0;
|
||||
Buffer_Identifier buffer_id = {0};
|
||||
Buffer_Identifier buffer_id = {};
|
||||
uint32_t flags = CLI_OverlapWithConflict;
|
||||
if (cursor_at_end){
|
||||
flags |= CLI_CursorAtEnd;
|
||||
|
@ -1091,24 +1091,22 @@ CUSTOM_COMMAND_SIG(project_fkey_command)
|
|||
CUSTOM_DOC("Run an 'fkey command' configured in a project.4coder file. Determines the index of the 'fkey command' by which function key or numeric key was pressed to trigger the command.")
|
||||
{
|
||||
User_Input input = get_command_input(app);
|
||||
if (input.type == UserInputKey){
|
||||
bool32 got_ind = false;
|
||||
int32_t ind = 0;
|
||||
if (input.key.keycode >= key_f1 && input.key.keycode <= key_f16){
|
||||
ind = (input.key.keycode - key_f1);
|
||||
got_ind = true;
|
||||
}
|
||||
else if (input.key.character_no_caps_lock >= '1' && input.key.character_no_caps_lock >= '9'){
|
||||
ind = (input.key.character_no_caps_lock - '1');
|
||||
got_ind = true;
|
||||
}
|
||||
else if (input.key.character_no_caps_lock == '0'){
|
||||
ind = 9;
|
||||
got_ind = true;
|
||||
}
|
||||
if (got_ind){
|
||||
exec_project_fkey_command(app, ind);
|
||||
}
|
||||
bool32 got_ind = false;
|
||||
int32_t ind = 0;
|
||||
if (input.key.keycode >= key_f1 && input.key.keycode <= key_f16){
|
||||
ind = (input.key.keycode - key_f1);
|
||||
got_ind = true;
|
||||
}
|
||||
else if (input.key.character_no_caps_lock >= '1' && input.key.character_no_caps_lock >= '9'){
|
||||
ind = (input.key.character_no_caps_lock - '1');
|
||||
got_ind = true;
|
||||
}
|
||||
else if (input.key.character_no_caps_lock == '0'){
|
||||
ind = 9;
|
||||
got_ind = true;
|
||||
}
|
||||
if (got_ind){
|
||||
exec_project_fkey_command(app, ind);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1125,7 +1123,7 @@ CUSTOM_DOC("Changes 4coder's hot directory to the root directory of the currentl
|
|||
|
||||
static Project_Setup_Status
|
||||
project_is_setup(Application_Links *app, Partition *scratch, String script_path, String script_file){
|
||||
Project_Setup_Status result = {0};
|
||||
Project_Setup_Status result = {};
|
||||
|
||||
Temp_Memory temp = begin_temp_memory(scratch);
|
||||
|
||||
|
@ -1164,12 +1162,12 @@ project_key_strings_query_user(Application_Links *app,
|
|||
char *code_file_space, int32_t code_file_cap,
|
||||
char *output_dir_space, int32_t output_dir_cap,
|
||||
char *binary_file_space, int32_t binary_file_cap){
|
||||
Project_Key_Strings keys = {0};
|
||||
Project_Key_Strings keys = {};
|
||||
|
||||
Query_Bar script_file_bar = {0};
|
||||
Query_Bar code_file_bar = {0};
|
||||
Query_Bar output_dir_bar = {0};
|
||||
Query_Bar binary_file_bar = {0};
|
||||
Query_Bar script_file_bar = {};
|
||||
Query_Bar code_file_bar = {};
|
||||
Query_Bar output_dir_bar = {};
|
||||
Query_Bar binary_file_bar = {};
|
||||
|
||||
if (get_script_file){
|
||||
script_file_bar.prompt = make_lit_string("Script Name: ");
|
||||
|
@ -1394,7 +1392,7 @@ project_setup_scripts__generic(Application_Links *app, Partition *scratch,
|
|||
String script_path = get_hot_directory(app, scratch);
|
||||
|
||||
bool32 needs_to_do_work = false;
|
||||
Project_Setup_Status status = {0};
|
||||
Project_Setup_Status status = {};
|
||||
if (do_project_file){
|
||||
status = project_is_setup(app, scratch, script_path, make_lit_string("build"));
|
||||
needs_to_do_work =
|
||||
|
|
|
@ -31,7 +31,7 @@ mac_default_keys(Bind_Helper *context){
|
|||
|
||||
static Bind_Helper
|
||||
get_context_on_global_part(void){
|
||||
Bind_Helper result = {0};
|
||||
Bind_Helper result = {};
|
||||
int32_t size = (1 << 20);
|
||||
for (;;){
|
||||
void *data = push_array(&global_part, char, size);
|
||||
|
|
|
@ -41,7 +41,7 @@ find_scope_get_token_type(uint32_t flags, Cpp_Token_Type token_type){
|
|||
|
||||
static bool32
|
||||
find_scope_top(Application_Links *app, Buffer_Summary *buffer, int32_t start_pos, uint32_t flags, int32_t *end_pos_out){
|
||||
Cpp_Get_Token_Result get_result = {0};
|
||||
Cpp_Get_Token_Result get_result = {};
|
||||
|
||||
bool32 success = false;
|
||||
int32_t position = 0;
|
||||
|
@ -58,7 +58,7 @@ find_scope_top(Application_Links *app, Buffer_Summary *buffer, int32_t start_pos
|
|||
if (token_index >= 0){
|
||||
static const int32_t chunk_cap = 512;
|
||||
Cpp_Token chunk[chunk_cap];
|
||||
Stream_Tokens stream = {0};
|
||||
Stream_Tokens stream = {};
|
||||
|
||||
if (init_stream_tokens(&stream, app, buffer, token_index, chunk, chunk_cap)){int32_t nest_level = 0;
|
||||
bool32 still_looping = false;
|
||||
|
@ -100,7 +100,7 @@ find_scope_top(Application_Links *app, Buffer_Summary *buffer, int32_t start_pos
|
|||
|
||||
static bool32
|
||||
find_scope_bottom(Application_Links *app, Buffer_Summary *buffer, int32_t start_pos, uint32_t flags, int32_t *end_pos_out){
|
||||
Cpp_Get_Token_Result get_result = {0};
|
||||
Cpp_Get_Token_Result get_result = {};
|
||||
|
||||
bool32 success = false;
|
||||
int32_t position = 0;
|
||||
|
@ -117,7 +117,7 @@ find_scope_bottom(Application_Links *app, Buffer_Summary *buffer, int32_t start_
|
|||
if (token_index >= 0){
|
||||
static const int32_t chunk_cap = 512;
|
||||
Cpp_Token chunk[chunk_cap];
|
||||
Stream_Tokens stream = {0};
|
||||
Stream_Tokens stream = {};
|
||||
|
||||
if (init_stream_tokens(&stream, app, buffer, token_index, chunk, chunk_cap)){
|
||||
int32_t nest_level = 0;
|
||||
|
@ -160,7 +160,7 @@ find_scope_bottom(Application_Links *app, Buffer_Summary *buffer, int32_t start_
|
|||
|
||||
static bool32
|
||||
find_next_scope(Application_Links *app, Buffer_Summary *buffer, int32_t start_pos, uint32_t flags, int32_t *end_pos_out){
|
||||
Cpp_Get_Token_Result get_result = {0};
|
||||
Cpp_Get_Token_Result get_result = {};
|
||||
|
||||
bool32 success = 0;
|
||||
int32_t position = 0;
|
||||
|
@ -171,7 +171,7 @@ find_next_scope(Application_Links *app, Buffer_Summary *buffer, int32_t start_po
|
|||
if (token_index >= 0){
|
||||
static const int32_t chunk_cap = 512;
|
||||
Cpp_Token chunk[chunk_cap];
|
||||
Stream_Tokens stream = {0};
|
||||
Stream_Tokens stream = {};
|
||||
|
||||
if (init_stream_tokens(&stream, app, buffer, token_index, chunk, chunk_cap)){
|
||||
if (flags & FindScope_NextSibling){
|
||||
|
@ -239,7 +239,7 @@ find_next_scope(Application_Links *app, Buffer_Summary *buffer, int32_t start_po
|
|||
|
||||
static bool32
|
||||
find_prev_scope(Application_Links *app, Buffer_Summary *buffer, int32_t start_pos, uint32_t flags, int32_t *end_pos_out){
|
||||
Cpp_Get_Token_Result get_result = {0};
|
||||
Cpp_Get_Token_Result get_result = {};
|
||||
|
||||
bool32 success = 0;
|
||||
int32_t position = 0;
|
||||
|
@ -250,7 +250,7 @@ find_prev_scope(Application_Links *app, Buffer_Summary *buffer, int32_t start_po
|
|||
if (token_index >= 0){
|
||||
static const int32_t chunk_cap = 512;
|
||||
Cpp_Token chunk[chunk_cap];
|
||||
Stream_Tokens stream = {0};
|
||||
Stream_Tokens stream = {};
|
||||
|
||||
if (init_stream_tokens(&stream, app, buffer, token_index, chunk, chunk_cap)){
|
||||
if (flags & FindScope_NextSibling){
|
||||
|
@ -318,7 +318,7 @@ find_prev_scope(Application_Links *app, Buffer_Summary *buffer, int32_t start_po
|
|||
static bool32
|
||||
find_scope_range(Application_Links *app, Buffer_Summary *buffer, int32_t start_pos, Range *range_out,
|
||||
uint32_t flags){
|
||||
Range range = {0};
|
||||
Range range = {};
|
||||
if (find_scope_top(app, buffer, start_pos,
|
||||
FindScope_Parent|flags,
|
||||
&range.start)){
|
||||
|
@ -340,8 +340,8 @@ view_set_to_region(Application_Links *app, View_Summary *view, int32_t major_pos
|
|||
bottom_major = true;
|
||||
}
|
||||
|
||||
Full_Cursor top = {0};
|
||||
Full_Cursor bottom = {0};
|
||||
Full_Cursor top = {};
|
||||
Full_Cursor bottom = {};
|
||||
if (view_compute_cursor(app, view, seek_pos(range.min), &top)){
|
||||
if (view_compute_cursor(app, view, seek_pos(range.max), &bottom)){
|
||||
float top_y = top.wrapped_y;
|
||||
|
@ -389,7 +389,7 @@ CUSTOM_DOC("Finds the scope enclosed by '{' '}' surrounding the cursor and puts
|
|||
View_Summary view = get_active_view(app, access);
|
||||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, access);
|
||||
|
||||
Range range = {0};
|
||||
Range range = {};
|
||||
if (find_scope_range(app, &buffer, view.cursor.pos, &range, FindScope_Brace)){
|
||||
view_set_cursor(app, &view, seek_pos(range.first), true);
|
||||
view_set_mark(app, &view, seek_pos(range.end));
|
||||
|
@ -442,7 +442,7 @@ place_begin_and_end_on_own_lines(Application_Links *app, Partition *scratch, cha
|
|||
View_Summary view = get_active_view(app, AccessOpen);
|
||||
Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessOpen);
|
||||
|
||||
Range lines = {0};
|
||||
Range lines = {};
|
||||
Range range = get_view_range(&view);
|
||||
lines.min = buffer_get_line_number(app, &buffer, range.min);
|
||||
lines.max = buffer_get_line_number(app, &buffer, range.max);
|
||||
|
@ -742,10 +742,10 @@ find_whole_statement_down(Application_Links *app, Buffer_Summary *buffer, int32_
|
|||
int32_t start = pos;
|
||||
int32_t end = start;
|
||||
|
||||
Cpp_Get_Token_Result get_result = {0};
|
||||
Cpp_Get_Token_Result get_result = {};
|
||||
|
||||
if (buffer_get_token_index(app, buffer, pos, &get_result)){
|
||||
Statement_Parser parser = {0};
|
||||
Statement_Parser parser = {};
|
||||
parser.token_index = get_result.token_index;
|
||||
|
||||
if (parser.token_index < 0){
|
||||
|
@ -761,7 +761,7 @@ find_whole_statement_down(Application_Links *app, Buffer_Summary *buffer, int32_
|
|||
if (init_stream_tokens(&parser.stream, app, buffer, parser.token_index, chunk, chunk_cap)){
|
||||
parser.buffer = buffer;
|
||||
|
||||
Cpp_Token end_token = {0};
|
||||
Cpp_Token end_token = {};
|
||||
if (parse_statement_down(app, &parser, &end_token)){
|
||||
end = end_token.start + end_token.size;
|
||||
result = true;
|
||||
|
@ -794,7 +794,7 @@ CUSTOM_DOC("If a scope is currently selected, and a statement or block statement
|
|||
|
||||
Temp_Memory temp = begin_temp_memory(part);
|
||||
if (buffer_get_char(app, &buffer, top) == '{' && buffer_get_char(app, &buffer, bottom-1) == '}'){
|
||||
Range range = {0};
|
||||
Range range = {};
|
||||
if (find_whole_statement_down(app, &buffer, bottom, &range.start, &range.end)){
|
||||
char *string_space = push_array(part, char, range.end - range.start);
|
||||
buffer_read_range(app, &buffer, range.start, range.end, string_space);
|
||||
|
|
|
@ -137,7 +137,7 @@ search_hit_add(Heap *heap, Table *hits, String_Space *space, char *str, int32_t
|
|||
Assert(ostring.size != 0);
|
||||
|
||||
if (table_at_capacity(hits)){
|
||||
Table new_hits = {0};
|
||||
Table new_hits = {};
|
||||
search_hits_table_alloc(heap, &new_hits, hits->max*2);
|
||||
table_clear(&new_hits);
|
||||
table_rehash(hits, &new_hits, space->space, tbl_offset_string_hash, tbl_offset_string_compare);
|
||||
|
@ -200,7 +200,7 @@ seek_potential_match(Application_Links *app, Search_Range *range, Search_Key key
|
|||
static int32_t
|
||||
buffer_seek_alpha_numeric_end(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char space[1024];
|
||||
Stream_Chunk chunk = {0};
|
||||
Stream_Chunk chunk = {};
|
||||
if (init_stream_chunk(&chunk, app, buffer, pos, space, sizeof(space))){
|
||||
int32_t still_looping = true;
|
||||
do{
|
||||
|
@ -378,7 +378,7 @@ search_iter_next_range(Search_Iter *it){
|
|||
|
||||
static Search_Match
|
||||
search_next_match(Application_Links *app, Search_Set *set, Search_Iter *it_ptr){
|
||||
Search_Match result = {0};
|
||||
Search_Match result = {};
|
||||
Search_Iter iter = *it_ptr;
|
||||
|
||||
int32_t count = set->count;
|
||||
|
@ -416,8 +416,8 @@ search_next_match(Application_Links *app, Search_Set *set, Search_Iter *it_ptr){
|
|||
|
||||
case SearchRange_Wave:
|
||||
{
|
||||
Search_Match forward_match = {0};
|
||||
Search_Match backward_match = {0};
|
||||
Search_Match forward_match = {};
|
||||
Search_Match backward_match = {};
|
||||
|
||||
int32_t forward_result = FindResult_PastEnd;
|
||||
int32_t backward_result = FindResult_PastEnd;
|
||||
|
@ -488,7 +488,7 @@ initialize_generic_search_all_buffers(Application_Links *app, Heap *heap, String
|
|||
memset(set, 0, sizeof(*set));
|
||||
memset(iter, 0, sizeof(*iter));
|
||||
|
||||
Search_Key key = {0};
|
||||
Search_Key key = {};
|
||||
int32_t sizes[ArrayCount(key.words)];
|
||||
memset(sizes, 0, sizeof(sizes));
|
||||
|
||||
|
@ -598,7 +598,7 @@ buffered_print_match_jump_line(Application_Links *app, Partition *part, Temp_Mem
|
|||
int32_t column_num_len = int_to_str_size(word_pos.character);
|
||||
|
||||
Temp_Memory line_temp = begin_temp_memory(line_part);
|
||||
String line_str = {0};
|
||||
String line_str = {};
|
||||
if (read_line(app, line_part, match_buffer, word_pos.line, &line_str)){
|
||||
line_str = skip_chop_whitespace(line_str);
|
||||
|
||||
|
@ -633,8 +633,8 @@ list__parameters(Application_Links *app, Heap *heap, Partition *scratch,
|
|||
Buffer_Summary search_buffer = get_buffer(app, search_buffer_id, AccessAll);
|
||||
|
||||
// Initialize a generic search all buffers
|
||||
Search_Set set = {0};
|
||||
Search_Iter iter = {0};
|
||||
Search_Set set = {};
|
||||
Search_Iter iter = {};
|
||||
initialize_generic_search_all_buffers(app, heap, strings, count, match_flags, &search_buffer.buffer_id, 1, &set, &iter);
|
||||
|
||||
// List all locations into search buffer
|
||||
|
@ -646,7 +646,7 @@ list__parameters(Application_Links *app, Heap *heap, Partition *scratch,
|
|||
for (Search_Match match = search_next_match(app, &set, &iter);
|
||||
match.found_match;
|
||||
match = search_next_match(app, &set, &iter)){
|
||||
Partial_Cursor word_pos = {0};
|
||||
Partial_Cursor word_pos = {};
|
||||
if (buffer_compute_cursor(app, &match.buffer, seek_pos(match.start), &word_pos)){
|
||||
if (prev_match_id != match.buffer.buffer_id){
|
||||
if (prev_match_id != 0){
|
||||
|
@ -851,7 +851,7 @@ CUSTOM_DOC("Reads a token or word under the cursor and lists all locations of st
|
|||
// Word Complete Command
|
||||
//
|
||||
|
||||
static Word_Complete_State complete_state = {0};
|
||||
static Word_Complete_State complete_state = {};
|
||||
|
||||
CUSTOM_COMMAND_SIG(word_complete)
|
||||
CUSTOM_DOC("Iteratively tries completing the word to the left of the cursor with other words in open buffers that have the same prefix string.")
|
||||
|
@ -889,7 +889,7 @@ CUSTOM_DOC("Iteratively tries completing the word to the left of the cursor with
|
|||
cursor_pos = word_end - 1;
|
||||
|
||||
char space[1024];
|
||||
Stream_Chunk chunk = {0};
|
||||
Stream_Chunk chunk = {};
|
||||
if (init_stream_chunk(&chunk, app, &buffer, cursor_pos, space, sizeof(space))){
|
||||
int32_t still_looping = true;
|
||||
do{
|
||||
|
@ -916,7 +916,7 @@ CUSTOM_DOC("Iteratively tries completing the word to the left of the cursor with
|
|||
|
||||
// NOTE(allen): Initialize the search iterator with the partial word.
|
||||
complete_state.initialized = true;
|
||||
Search_Key key = {0};
|
||||
Search_Key key = {};
|
||||
search_key_alloc(&global_heap, &key, &size, 1);
|
||||
buffer_read_range(app, &buffer, word_start, word_end, key.words[0].str);
|
||||
key.words[0].size = size;
|
||||
|
|
|
@ -8,7 +8,7 @@ static int32_t
|
|||
seek_line_end(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
int32_t still_looping;
|
||||
char at_pos;
|
||||
|
@ -38,7 +38,7 @@ static int32_t
|
|||
seek_line_beginning(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
int32_t still_looping;
|
||||
char at_pos;
|
||||
|
@ -74,7 +74,7 @@ move_past_lead_whitespace(Application_Links *app, View_Summary *view, Buffer_Sum
|
|||
|
||||
int32_t new_pos = seek_line_beginning(app, buffer, view->cursor.pos);
|
||||
char space[1024];
|
||||
Stream_Chunk chunk = {0};
|
||||
Stream_Chunk chunk = {};
|
||||
int32_t still_looping = false;
|
||||
|
||||
int32_t i = new_pos;
|
||||
|
@ -100,7 +100,7 @@ static int32_t
|
|||
buffer_seek_whitespace_up(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
char at_pos;
|
||||
|
||||
|
@ -157,7 +157,7 @@ static int32_t
|
|||
buffer_seek_whitespace_down(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, chunk, chunk_size)){
|
||||
// step 1: find the first non-whitespace character
|
||||
|
@ -215,7 +215,7 @@ buffer_seek_whitespace_down(Application_Links *app, Buffer_Summary *buffer, int3
|
|||
static int32_t
|
||||
buffer_seek_whitespace_right(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, data_chunk, sizeof(data_chunk))){
|
||||
|
||||
|
@ -248,7 +248,7 @@ buffer_seek_whitespace_right(Application_Links *app, Buffer_Summary *buffer, int
|
|||
static int32_t
|
||||
buffer_seek_whitespace_left(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
--pos;
|
||||
if (pos > 0){
|
||||
|
@ -289,7 +289,7 @@ buffer_seek_whitespace_left(Application_Links *app, Buffer_Summary *buffer, int3
|
|||
static int32_t
|
||||
buffer_seek_alphanumeric_right(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, data_chunk, sizeof(data_chunk))){
|
||||
|
||||
|
@ -322,7 +322,7 @@ buffer_seek_alphanumeric_right(Application_Links *app, Buffer_Summary *buffer, i
|
|||
static int32_t
|
||||
buffer_seek_alphanumeric_left(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
--pos;
|
||||
if (pos > 0){
|
||||
|
@ -361,7 +361,7 @@ buffer_seek_alphanumeric_left(Application_Links *app, Buffer_Summary *buffer, in
|
|||
static int32_t
|
||||
buffer_seek_alphanumeric_or_underscore_right(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, data_chunk, sizeof(data_chunk))){
|
||||
bool32 still_looping = true;
|
||||
|
@ -393,7 +393,7 @@ buffer_seek_alphanumeric_or_underscore_right(Application_Links *app, Buffer_Summ
|
|||
static int32_t
|
||||
buffer_seek_alphanumeric_or_underscore_left(Application_Links *app, Buffer_Summary *buffer, int32_t pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
--pos;
|
||||
if (pos > 0){
|
||||
|
@ -433,7 +433,7 @@ buffer_seek_alphanumeric_or_underscore_left(Application_Links *app, Buffer_Summa
|
|||
static int32_t
|
||||
buffer_seek_range_camel_right(Application_Links *app, Buffer_Summary *buffer, int32_t pos, int32_t an_pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
++pos;
|
||||
if (pos < an_pos){
|
||||
|
@ -467,7 +467,7 @@ buffer_seek_range_camel_right(Application_Links *app, Buffer_Summary *buffer, in
|
|||
static int32_t
|
||||
buffer_seek_range_camel_left(Application_Links *app, Buffer_Summary *buffer, int32_t pos, int32_t an_pos){
|
||||
char data_chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
--pos;
|
||||
if (pos > 0){
|
||||
|
@ -542,7 +542,7 @@ seek_token_right(Cpp_Token_Array *tokens, int32_t pos){
|
|||
|
||||
static Cpp_Token_Array
|
||||
buffer_get_all_tokens(Application_Links *app, Partition *part, Buffer_Summary *buffer){
|
||||
Cpp_Token_Array array = {0};
|
||||
Cpp_Token_Array array = {};
|
||||
|
||||
if (buffer->exists && buffer->is_lexed){
|
||||
array.count = buffer_token_count(app, buffer);
|
||||
|
@ -674,7 +674,7 @@ buffer_seek_delimiter_forward(Application_Links *app, Buffer_Summary *buffer, in
|
|||
if (buffer->exists){
|
||||
char chunk[1024];
|
||||
int32_t size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, chunk, size)){
|
||||
int32_t still_looping = 1;
|
||||
|
@ -701,7 +701,7 @@ buffer_seek_delimiter_backward(Application_Links *app, Buffer_Summary *buffer, i
|
|||
if (buffer->exists){
|
||||
char chunk[1024];
|
||||
int32_t size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, chunk, size)){
|
||||
int32_t still_looping = 1;
|
||||
|
@ -746,7 +746,7 @@ buffer_seek_string_forward(Application_Links *app, Buffer_Summary *buffer, int32
|
|||
read_str.size = size;
|
||||
|
||||
char chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
stream.max_end = end;
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, chunk, sizeof(chunk))){
|
||||
|
@ -795,7 +795,7 @@ buffer_seek_string_backward(Application_Links *app, Buffer_Summary *buffer, int3
|
|||
read_str.size = size;
|
||||
|
||||
char chunk[1024];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
stream.min_start = min;
|
||||
|
||||
if (init_stream_chunk(&stream, app, buffer, pos, chunk, sizeof(chunk))){
|
||||
|
@ -828,7 +828,7 @@ buffer_seek_string_insensitive_forward(Application_Links *app, Buffer_Summary *b
|
|||
char read_buffer[512];
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
stream.max_end = end;
|
||||
|
||||
if (buffer->size > end){
|
||||
|
@ -876,7 +876,7 @@ buffer_seek_string_insensitive_backward(Application_Links *app, Buffer_Summary *
|
|||
char read_buffer[512];
|
||||
char chunk[1024];
|
||||
int32_t chunk_size = sizeof(chunk);
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
stream.min_start = min;
|
||||
|
||||
*result = min-1;
|
||||
|
@ -941,8 +941,8 @@ buffer_seek_string(Application_Links *app, Buffer_Summary *buffer, int32_t pos,
|
|||
|
||||
static bool32
|
||||
buffer_line_is_blank(Application_Links *app, Buffer_Summary *buffer, int32_t line){
|
||||
Partial_Cursor start = {0};
|
||||
Partial_Cursor end = {0};
|
||||
Partial_Cursor start = {};
|
||||
Partial_Cursor end = {};
|
||||
bool32 result = false;
|
||||
if (line <= buffer->line_count){
|
||||
buffer_compute_cursor(app, buffer, seek_line_char(line, 1), &start);
|
||||
|
@ -950,7 +950,7 @@ buffer_line_is_blank(Application_Links *app, Buffer_Summary *buffer, int32_t lin
|
|||
|
||||
static const int32_t chunk_size = 1024;
|
||||
char chunk[chunk_size];
|
||||
Stream_Chunk stream = {0};
|
||||
Stream_Chunk stream = {};
|
||||
int32_t i = start.pos;
|
||||
stream.max_end = end.pos;
|
||||
|
||||
|
@ -975,7 +975,7 @@ buffer_line_is_blank(Application_Links *app, Buffer_Summary *buffer, int32_t lin
|
|||
|
||||
static String
|
||||
read_identifier_at_pos(Application_Links *app, Buffer_Summary *buffer, int32_t pos, char *space, int32_t max, Range *range_out){
|
||||
String query = {0};
|
||||
String query = {};
|
||||
|
||||
int32_t start = buffer_seek_alphanumeric_or_underscore_left(app, buffer, pos);
|
||||
int32_t end = buffer_seek_alphanumeric_or_underscore_right(app, buffer, start);
|
||||
|
|
|
@ -22,8 +22,8 @@ CUSTOM_DOC("If the command execute_any_cli has already been used, this will exec
|
|||
|
||||
CUSTOM_COMMAND_SIG(execute_any_cli)
|
||||
CUSTOM_DOC("Queries for an output buffer name and system command, runs the system command as a CLI and prints the output to the specified buffer."){
|
||||
Query_Bar bar_out = {0};
|
||||
Query_Bar bar_cmd = {0};
|
||||
Query_Bar bar_out = {};
|
||||
Query_Bar bar_cmd = {};
|
||||
|
||||
bar_out.prompt = make_lit_string("Output Buffer: ");
|
||||
bar_out.string = make_fixed_width_string(out_buffer_space);
|
||||
|
|
|
@ -36,9 +36,9 @@ ui__rect_union(i32_Rect a, i32_Rect b){
|
|||
|
||||
static UI_Control
|
||||
ui_list_to_ui_control(Partition *arena, UI_List *list){
|
||||
UI_Control control = {0};
|
||||
UI_Control control = {};
|
||||
control.items = push_array(arena, UI_Item, list->count);
|
||||
i32_Rect neg_inf_rect = {0};
|
||||
i32_Rect neg_inf_rect = {};
|
||||
neg_inf_rect.x0 = INT32_MAX;
|
||||
neg_inf_rect.y0 = INT32_MAX;
|
||||
neg_inf_rect.x1 = INT32_MIN;
|
||||
|
@ -100,7 +100,7 @@ ui_control_get_mouse_hit(UI_Control *control,
|
|||
|
||||
static void
|
||||
view_zero_scroll(Application_Links *app, View_Summary *view){
|
||||
GUI_Scroll_Vars zero_scroll = {0};
|
||||
GUI_Scroll_Vars zero_scroll = {};
|
||||
view_set_scroll(app, view, zero_scroll);
|
||||
}
|
||||
|
||||
|
@ -232,7 +232,7 @@ lister_get_clicked_item(Application_Links *app, View_Summary *view, Partition *s
|
|||
int32_t myu = 0;
|
||||
get_view_relative_mouse_positions(mouse, *view, &mxs, &mys, &mxu, &myu);
|
||||
UI_Item *clicked = ui_control_get_mouse_hit(&control, mxs, mys, mxu, myu);
|
||||
UI_Item result = {0};
|
||||
UI_Item result = {};
|
||||
if (clicked != 0){
|
||||
result = *clicked;
|
||||
}
|
||||
|
@ -268,15 +268,15 @@ lister_update_ui(Application_Links *app, Partition *scratch, View_Summary *view,
|
|||
state->raw_item_index = -1;
|
||||
|
||||
int32_t node_count = state->lister.options.count;
|
||||
Lister_Node_Ptr_Array exact_matches = {0};
|
||||
Lister_Node_Ptr_Array exact_matches = {};
|
||||
exact_matches.node_ptrs = push_array(scratch, Lister_Node*, 1);
|
||||
Lister_Node_Ptr_Array before_extension_matches = {0};
|
||||
Lister_Node_Ptr_Array before_extension_matches = {};
|
||||
before_extension_matches.node_ptrs = push_array(scratch, Lister_Node*, node_count);
|
||||
Lister_Node_Ptr_Array substring_matches = {0};
|
||||
Lister_Node_Ptr_Array substring_matches = {};
|
||||
substring_matches.node_ptrs = push_array(scratch, Lister_Node*, node_count);
|
||||
|
||||
String key = state->lister.key_string;
|
||||
Absolutes absolutes = {0};
|
||||
Absolutes absolutes = {};
|
||||
get_absolutes(key, &absolutes, true, true);
|
||||
bool32 has_wildcard = (absolutes.count > 3);
|
||||
|
||||
|
@ -306,7 +306,7 @@ lister_update_ui(Application_Links *app, Partition *scratch, View_Summary *view,
|
|||
substring_matches,
|
||||
};
|
||||
|
||||
UI_List list = {0};
|
||||
UI_List list = {};
|
||||
UI_Item *highlighted_item = 0;
|
||||
UI_Item *hot_item = 0;
|
||||
UI_Item *hovered_item = 0;
|
||||
|
@ -316,14 +316,14 @@ lister_update_ui(Application_Links *app, Partition *scratch, View_Summary *view,
|
|||
for (int32_t node_index = 0; node_index < node_ptr_array.count; node_index += 1){
|
||||
Lister_Node *node = node_ptr_array.node_ptrs[node_index];
|
||||
|
||||
i32_Rect item_rect = {0};
|
||||
i32_Rect item_rect = {};
|
||||
item_rect.x0 = x0;
|
||||
item_rect.y0 = y_pos;
|
||||
item_rect.x1 = x1;
|
||||
item_rect.y1 = y_pos + block_height;
|
||||
y_pos = item_rect.y1;
|
||||
|
||||
UI_Item item = {0};
|
||||
UI_Item item = {};
|
||||
if (!is_theme_list){
|
||||
item.type = UIType_Option;
|
||||
item.option.string = node->string;
|
||||
|
@ -380,14 +380,14 @@ lister_update_ui(Application_Links *app, Partition *scratch, View_Summary *view,
|
|||
}
|
||||
|
||||
{
|
||||
i32_Rect item_rect = {0};
|
||||
i32_Rect item_rect = {};
|
||||
item_rect.x0 = x0;
|
||||
item_rect.y0 = 0;
|
||||
item_rect.x1 = x1;
|
||||
item_rect.y1 = item_rect.y0 + line_height;
|
||||
y_pos = item_rect.y1;
|
||||
|
||||
UI_Item item = {0};
|
||||
UI_Item item = {};
|
||||
item.type = UIType_TextField;
|
||||
item.activation_level = UIActivation_Active;
|
||||
item.coordinates = UICoordinates_ViewRelative;
|
||||
|
@ -406,7 +406,7 @@ lister_update_ui(Application_Links *app, Partition *scratch, View_Summary *view,
|
|||
|
||||
static Lister_Prealloced_String
|
||||
lister_prealloced(String string){
|
||||
Lister_Prealloced_String result = {0};
|
||||
Lister_Prealloced_String result = {};
|
||||
result.string = string;
|
||||
return(result);
|
||||
}
|
||||
|
|
181
4ed.cpp
181
4ed.cpp
|
@ -9,25 +9,23 @@
|
|||
|
||||
// TOP
|
||||
|
||||
// App Structs
|
||||
|
||||
#define DEFAULT_DISPLAY_WIDTH 672
|
||||
#define DEFAULT_MINIMUM_BASE_DISPLAY_WIDTH 550
|
||||
|
||||
inline App_Coroutine_State
|
||||
internal App_Coroutine_State
|
||||
get_state(Application_Links *app){
|
||||
App_Coroutine_State state = {0};
|
||||
App_Coroutine_State state = {};
|
||||
state.co = app->current_coroutine;
|
||||
state.type = app->type_coroutine;
|
||||
return(state);
|
||||
}
|
||||
inline void
|
||||
internal void
|
||||
restore_state(Application_Links *app, App_Coroutine_State state){
|
||||
app->current_coroutine = state.co;
|
||||
app->type_coroutine = state.type;
|
||||
}
|
||||
|
||||
inline Coroutine_Head*
|
||||
internal Coroutine_Head*
|
||||
app_launch_coroutine(System_Functions *system, Application_Links *app, Coroutine_Type type, Coroutine_Head *co, void *in, void *out){
|
||||
Coroutine_Head *result = 0;
|
||||
|
||||
|
@ -41,7 +39,7 @@ app_launch_coroutine(System_Functions *system, Application_Links *app, Coroutine
|
|||
return(result);
|
||||
}
|
||||
|
||||
inline Coroutine_Head*
|
||||
internal Coroutine_Head*
|
||||
app_resume_coroutine(System_Functions *system, Application_Links *app, Coroutine_Type type, Coroutine_Head *co, void *in, void *out){
|
||||
Coroutine_Head *result = 0;
|
||||
|
||||
|
@ -55,7 +53,7 @@ app_resume_coroutine(System_Functions *system, Application_Links *app, Coroutine
|
|||
return(result);
|
||||
}
|
||||
|
||||
inline void
|
||||
internal void
|
||||
output_file_append(System_Functions *system, Models *models, Editing_File *file, String value){
|
||||
if (!file->is_dummy){
|
||||
i32 end = buffer_size(&file->state.buffer);
|
||||
|
@ -79,7 +77,7 @@ file_cursor_to_end(System_Functions *system, Models *models, Editing_File *file)
|
|||
}
|
||||
}
|
||||
|
||||
inline void
|
||||
internal void
|
||||
do_feedback_message(System_Functions *system, Models *models, String value){
|
||||
Editing_File *file = models->message_buffer;
|
||||
if (file != 0){
|
||||
|
@ -306,9 +304,9 @@ interpret_binding_buffer(Models *models, void *buffer, i32 size){
|
|||
Partition *part = &models->mem.part;
|
||||
Temp_Memory temp = begin_temp_memory(part);
|
||||
|
||||
Partition local_part = {0};
|
||||
Partition local_part = {};
|
||||
|
||||
Mapping new_mapping = {0};
|
||||
Mapping new_mapping = {};
|
||||
|
||||
models->scroll_rule = fallback_scroll_rule;
|
||||
models->hook_open_file = 0;
|
||||
|
@ -649,7 +647,7 @@ setup_command_table(void){
|
|||
|
||||
internal void
|
||||
app_hardcode_default_style(Models *models){
|
||||
Interactive_Style file_info_style = {0};
|
||||
Interactive_Style file_info_style = {};
|
||||
Style *styles = models->styles.styles;
|
||||
Style *style = styles + 1;
|
||||
|
||||
|
@ -873,7 +871,7 @@ init_command_line_settings(App_Settings *settings, Plat_Settings *plat_settings,
|
|||
internal App_Vars*
|
||||
app_setup_memory(System_Functions *system, Application_Memory *memory){
|
||||
Partition _partition = make_part(memory->vars_memory, memory->vars_memory_size);
|
||||
App_Vars *vars = push_struct(&_partition, App_Vars);
|
||||
App_Vars *vars = push_array(&_partition, App_Vars, 1);
|
||||
Assert(vars != 0);
|
||||
memset(vars, 0, sizeof(*vars));
|
||||
vars->models.mem.part = _partition;
|
||||
|
@ -889,29 +887,23 @@ get_event_flags(Key_Code keycode){
|
|||
event_flags |= EventOnEsc;
|
||||
event_flags |= EventOnAnyKey;
|
||||
}
|
||||
else if (keycode == key_mouse_left){
|
||||
// TODO(allen):
|
||||
else if (keycode == key_mouse_left || keycode == key_mouse_left_release){
|
||||
event_flags |= EventOnMouseLeftButton;
|
||||
}
|
||||
else if (keycode == key_mouse_right){
|
||||
// TODO(allen):
|
||||
}
|
||||
else if (keycode == key_mouse_left_release){
|
||||
// TODO(allen):
|
||||
}
|
||||
else if (keycode == key_mouse_right_release){
|
||||
// TODO(allen):
|
||||
else if (keycode == key_mouse_right || keycode == key_mouse_right_release){
|
||||
event_flags |= EventOnMouseRightButton;
|
||||
}
|
||||
else if (keycode == key_mouse_wheel){
|
||||
// TODO(allen):
|
||||
event_flags |= EventOnMouseWheel;
|
||||
}
|
||||
else if (keycode == key_mouse_move){
|
||||
// TODO(allen):
|
||||
event_flags |= EventOnMouseMove;
|
||||
}
|
||||
else if (keycode == key_animate){
|
||||
// TODO(allen):
|
||||
event_flags |= EventOnAnimate;
|
||||
}
|
||||
else if (keycode == key_view_activate){
|
||||
// TODO(allen):
|
||||
else if (keycode == key_click_activate_view || keycode == key_click_deactivate_view){
|
||||
event_flags |= EventOnViewActivation;
|
||||
}
|
||||
else{
|
||||
event_flags |= EventOnAnyKey;
|
||||
|
@ -919,6 +911,50 @@ get_event_flags(Key_Code keycode){
|
|||
return(event_flags);
|
||||
}
|
||||
|
||||
internal void
|
||||
force_abort_coroutine(System_Functions *system, Models *models, View *view){
|
||||
User_Input user_in = {};
|
||||
user_in.abort = true;
|
||||
for (u32 j = 0; j < 10 && models->command_coroutine != 0; ++j){
|
||||
models->command_coroutine = app_resume_coroutine(system, &models->app_links, Co_Command, models->command_coroutine, &user_in, models->command_coroutine_flags);
|
||||
}
|
||||
if (models->command_coroutine != 0){
|
||||
// TODO(allen): post grave warning
|
||||
models->command_coroutine = 0;
|
||||
}
|
||||
init_query_set(&view->transient.query_set);
|
||||
}
|
||||
|
||||
internal void
|
||||
launch_command_via_event(System_Functions *system, Application_Step_Result *app_result, Models *models, View *view, Key_Event_Data event){
|
||||
models->key = event;
|
||||
|
||||
i32 map = view_get_map(view);
|
||||
Command_Binding cmd_bind = map_extract_recursive(&models->mapping, map, event);
|
||||
|
||||
if (cmd_bind.function != 0){
|
||||
Assert(models->command_coroutine == 0);
|
||||
Coroutine_Head *command_coroutine = system->create_coroutine(command_caller);
|
||||
models->command_coroutine = command_coroutine;
|
||||
|
||||
Command_In cmd_in;
|
||||
cmd_in.models = models;
|
||||
cmd_in.bind = cmd_bind;
|
||||
|
||||
models->command_coroutine = app_launch_coroutine(system, &models->app_links, Co_Command, models->command_coroutine, &cmd_in, models->command_coroutine_flags);
|
||||
|
||||
models->prev_command = cmd_bind;
|
||||
app_result->animating = true;
|
||||
}
|
||||
}
|
||||
|
||||
internal void
|
||||
launch_command_via_keycode(System_Functions *system, Application_Step_Result *app_result, Models *models, View *view, Key_Code keycode){
|
||||
Key_Event_Data event = {};
|
||||
event.keycode = keycode;
|
||||
launch_command_via_event(system, app_result, models, view, event);
|
||||
}
|
||||
|
||||
App_Read_Command_Line_Sig(app_read_command_line){
|
||||
i32 out_size = 0;
|
||||
App_Vars *vars = app_setup_memory(system, memory);
|
||||
|
@ -1027,7 +1063,7 @@ App_Init_Sig(app_init){
|
|||
models->working_set.clipboard_current = 0;
|
||||
models->working_set.clipboard_rolling = 0;
|
||||
|
||||
// TODO(allen): more robust allocation solution for the clipboard
|
||||
// TODO(allen): do(better clipboard allocation)
|
||||
if (clipboard.str != 0){
|
||||
String *dest = working_set_next_clipboard_string(&models->mem.heap, &models->working_set, clipboard.size);
|
||||
copy(dest, make_string((char*)clipboard.str, clipboard.size));
|
||||
|
@ -1096,7 +1132,7 @@ App_Step_Sig(app_step){
|
|||
App_Vars *vars = (App_Vars*)memory->vars_memory;
|
||||
Models *models = &vars->models;
|
||||
|
||||
Application_Step_Result app_result = {0};
|
||||
Application_Step_Result app_result = {};
|
||||
app_result.mouse_cursor_type = APP_MOUSE_CURSOR_DEFAULT;
|
||||
app_result.lctrl_lalt_is_altgr = models->settings.lctrl_lalt_is_altgr;
|
||||
|
||||
|
@ -1124,7 +1160,7 @@ App_Step_Sig(app_step){
|
|||
|
||||
for (;system->get_file_change(buffer, buffer_size, &mem_too_small, &size);){
|
||||
Assert(!mem_too_small);
|
||||
Editing_File_Name canon = {0};
|
||||
Editing_File_Name canon = {};
|
||||
if (get_canon_name(system, make_string(buffer, size),
|
||||
&canon)){
|
||||
Editing_File *file = working_set_contains_canon(working_set, canon.name);
|
||||
|
@ -1262,7 +1298,7 @@ App_Step_Sig(app_step){
|
|||
models->input_filter(&input->mouse);
|
||||
}
|
||||
|
||||
Key_Event_Data mouse_event = {0};
|
||||
Key_Event_Data mouse_event = {};
|
||||
if (input->mouse.press_l){
|
||||
mouse_event.keycode = key_mouse_left;
|
||||
input->keys.keys[input->keys.count++] = mouse_event;
|
||||
|
@ -1376,9 +1412,7 @@ App_Step_Sig(app_step){
|
|||
Panel *active_panel = &models->layout.panels[models->layout.active_panel];
|
||||
View *view = active_panel->view;
|
||||
Assert(view != 0);
|
||||
models->key = *key_ptr;
|
||||
|
||||
// NOTE(allen): execute a command or resize panels
|
||||
switch (vars->state){
|
||||
case APP_STATE_EDIT:
|
||||
{
|
||||
|
@ -1456,68 +1490,45 @@ App_Step_Sig(app_step){
|
|||
|
||||
case EventConsume_ClickChangeView:
|
||||
{
|
||||
// NOTE(allen): kill coroutine if we have one
|
||||
if (models->command_coroutine != 0){
|
||||
User_Input user_in = {0};
|
||||
user_in.abort = true;
|
||||
|
||||
for (u32 j = 0; j < 10 && models->command_coroutine != 0; ++j){
|
||||
models->command_coroutine = app_resume_coroutine(system, &models->app_links, Co_Command, models->command_coroutine, &user_in, models->command_coroutine_flags);
|
||||
}
|
||||
|
||||
if (models->command_coroutine != 0){
|
||||
// TODO(allen): post grave warning
|
||||
models->command_coroutine = 0;
|
||||
}
|
||||
|
||||
init_query_set(&view->transient.query_set);
|
||||
force_abort_coroutine(system, models, view);
|
||||
}
|
||||
|
||||
// NOTE(allen): run deactivate command
|
||||
launch_command_via_keycode(system, &app_result, models, view, key_click_deactivate_view);
|
||||
|
||||
// NOTE(allen): kill coroutine if we have one (again because we just launched a command)
|
||||
if (models->command_coroutine != 0){
|
||||
force_abort_coroutine(system, models, view);
|
||||
}
|
||||
|
||||
models->layout.active_panel = (i32)(mouse_panel - models->layout.panels);
|
||||
app_result.animating = true;
|
||||
active_panel = mouse_panel;
|
||||
view = active_panel->view;
|
||||
|
||||
{
|
||||
Key_Event_Data key = {};
|
||||
key.keycode = key_view_activate;
|
||||
models->key = key;
|
||||
|
||||
i32 map = view_get_map(view);
|
||||
Command_Binding cmd_bind = map_extract_recursive(&models->mapping, map, key);
|
||||
|
||||
if (cmd_bind.function != 0){
|
||||
Assert(models->command_coroutine == 0);
|
||||
Coroutine_Head *command_coroutine = system->create_coroutine(command_caller);
|
||||
models->command_coroutine = command_coroutine;
|
||||
|
||||
Command_In cmd_in;
|
||||
cmd_in.models = models;
|
||||
cmd_in.bind = cmd_bind;
|
||||
|
||||
models->command_coroutine = app_launch_coroutine(system, &models->app_links, Co_Command, models->command_coroutine, &cmd_in, models->command_coroutine_flags);
|
||||
|
||||
models->prev_command = cmd_bind;
|
||||
app_result.animating = true;
|
||||
}
|
||||
}
|
||||
// NOTE(allen): run activate command
|
||||
launch_command_via_keycode(system, &app_result, models, view, key_click_activate_view);
|
||||
}break;
|
||||
|
||||
case EventConsume_Command:
|
||||
{
|
||||
|
||||
// NOTE(allen): update command coroutine
|
||||
if (models->command_coroutine != 0){
|
||||
models->key = *key_ptr;
|
||||
|
||||
Coroutine_Head *command_coroutine = models->command_coroutine;
|
||||
u32 abort_flags = models->command_coroutine_flags[1];
|
||||
u32 get_flags = models->command_coroutine_flags[0] | abort_flags;
|
||||
|
||||
Partition *part = &models->mem.part;
|
||||
Temp_Memory temp = begin_temp_memory(part);
|
||||
|
||||
u32 event_flags = get_event_flags(key_ptr->keycode);
|
||||
if ((get_flags & event_flags) != 0){
|
||||
i32 map = view_get_map(view);
|
||||
Command_Binding cmd_bind = map_extract_recursive(&models->mapping, map, *key_ptr);
|
||||
|
||||
User_Input user_in = {};
|
||||
user_in.type = UserInputKey;
|
||||
user_in.key = *key_ptr;
|
||||
user_in.command.command = cmd_bind.custom;
|
||||
user_in.abort = ((abort_flags & event_flags) != 0);
|
||||
|
@ -1530,27 +1541,9 @@ App_Step_Sig(app_step){
|
|||
}
|
||||
}
|
||||
|
||||
// NOTE(allen): launch command
|
||||
else{
|
||||
i32 map = view_get_map(view);
|
||||
Command_Binding cmd_bind = map_extract_recursive(&models->mapping, map, *key_ptr);
|
||||
|
||||
if (cmd_bind.function != 0){
|
||||
Assert(models->command_coroutine == 0);
|
||||
Coroutine_Head *command_coroutine = system->create_coroutine(command_caller);
|
||||
models->command_coroutine = command_coroutine;
|
||||
|
||||
Command_In cmd_in;
|
||||
cmd_in.models = models;
|
||||
cmd_in.bind = cmd_bind;
|
||||
|
||||
models->command_coroutine = app_launch_coroutine(system, &models->app_links, Co_Command, models->command_coroutine, &cmd_in, models->command_coroutine_flags);
|
||||
|
||||
models->prev_command = cmd_bind;
|
||||
|
||||
if (keycode != key_animate){
|
||||
app_result.animating = true;
|
||||
}
|
||||
}
|
||||
launch_command_via_event(system, &app_result, models, view, *key_ptr);
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ view_quit_ui(System_Functions *system, Models *models, View *view){
|
|||
Assert(view != 0);
|
||||
view->transient.ui_mode = false;
|
||||
if (view->transient.ui_quit != 0){
|
||||
View_Summary view_summary = {0};
|
||||
View_Summary view_summary = {};
|
||||
fill_view_summary(system, &view_summary, view, models);
|
||||
view->transient.ui_quit(&models->app_links, view_summary);
|
||||
}
|
||||
|
@ -345,7 +345,7 @@ DOC_SEE(Command_Line_Interface_Flag)
|
|||
}
|
||||
|
||||
// NOTE(allen): Figure out the root path for the command.
|
||||
String path_string = {0};
|
||||
String path_string = {};
|
||||
if (path == 0){
|
||||
terminate_with_null(&models->hot_directory.string);
|
||||
path_string = models->hot_directory.string;
|
||||
|
@ -355,7 +355,7 @@ DOC_SEE(Command_Line_Interface_Flag)
|
|||
}
|
||||
|
||||
// NOTE(allen): Figure out the command string.
|
||||
String command_string = {0};
|
||||
String command_string = {};
|
||||
if (command == 0){
|
||||
command_string = make_lit_string(" echo no script specified");
|
||||
}
|
||||
|
@ -604,7 +604,7 @@ DOC_SEE(Access_Flag)
|
|||
Working_Set *working_set = &models->working_set;
|
||||
Buffer_Summary buffer = {};
|
||||
String fname = make_string(name, len);
|
||||
Editing_File_Name canon = {0};
|
||||
Editing_File_Name canon = {};
|
||||
if (get_canon_name(system, fname, &canon)){
|
||||
Editing_File *file = working_set_contains_canon(working_set, canon.name);
|
||||
if (file != 0){
|
||||
|
@ -1151,7 +1151,7 @@ DOC_SEE(Buffer_Create_Flag)
|
|||
Heap *heap = &models->mem.heap;
|
||||
Partition *part = &models->mem.part;
|
||||
|
||||
Buffer_Summary result = {0};
|
||||
Buffer_Summary result = {};
|
||||
b32 buffer_is_for_new_file = false;
|
||||
|
||||
if (filename_len > 0){
|
||||
|
@ -1160,7 +1160,7 @@ DOC_SEE(Buffer_Create_Flag)
|
|||
String fname = make_string(filename, filename_len);
|
||||
Editing_File *file = 0;
|
||||
b32 do_empty_buffer = false;
|
||||
Editing_File_Name canon = {0};
|
||||
Editing_File_Name canon = {};
|
||||
b32 has_canon_name = false;
|
||||
|
||||
// NOTE(allen): Try to get the file by canon name.
|
||||
|
@ -1183,7 +1183,7 @@ DOC_SEE(Buffer_Create_Flag)
|
|||
|
||||
// NOTE(allen): If there is still no file, create a new buffer.
|
||||
if (file == 0){
|
||||
Plat_Handle handle = {0};
|
||||
Plat_Handle handle = {};
|
||||
|
||||
// NOTE(allen): Figure out whether this is a new file, or an existing file.
|
||||
if (!do_empty_buffer){
|
||||
|
@ -1493,7 +1493,7 @@ DOC_SEE(Access_Flag)
|
|||
System_Functions *system = models->system;
|
||||
Panel *panel = models->layout.panels + models->layout.active_panel;
|
||||
Assert(panel->view != 0);
|
||||
View_Summary view = {0};
|
||||
View_Summary view = {};
|
||||
fill_view_summary(system, &view, panel->view, &models->live_set, &models->working_set);
|
||||
if (!access_test(view.lock_flags, access)){
|
||||
memset(&view, 0, sizeof(view));
|
||||
|
@ -1515,7 +1515,7 @@ DOC_SEE(View_Split_Position)
|
|||
System_Functions *system = models->system;
|
||||
View *vptr = imp_get_view(models, view_location);
|
||||
Panel *panel = vptr->transient.panel;
|
||||
View_Summary result = {0};
|
||||
View_Summary result = {};
|
||||
|
||||
if (models->layout.panel_count < models->layout.panel_max_count){
|
||||
b32 vsplit = ((position == ViewSplit_Left) || (position == ViewSplit_Right));
|
||||
|
@ -2197,7 +2197,7 @@ DOC_SEE(view_set_ui)
|
|||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
View *vptr = imp_get_view(models, view);
|
||||
UI_Control result = {0};
|
||||
UI_Control result = {};
|
||||
if (vptr != 0 && part != 0){
|
||||
UI_Control *control = &vptr->transient.ui_control;
|
||||
result.items = push_array(part, UI_Item, control->count);
|
||||
|
@ -2576,7 +2576,7 @@ DOC_SEE(Marker)
|
|||
|
||||
internal Managed_Object_Ptr_And_Workspace
|
||||
get_dynamic_object_ptrs(Models *models, Managed_Object object){
|
||||
Managed_Object_Ptr_And_Workspace result = {0};
|
||||
Managed_Object_Ptr_And_Workspace result = {};
|
||||
u32 hi_id = (object >> 32)&max_u32;
|
||||
Dynamic_Workspace *workspace = get_dynamic_workspace(models, hi_id);
|
||||
if (workspace != 0){
|
||||
|
@ -2602,7 +2602,7 @@ DOC_SEE(destroy_marker_visuals)
|
|||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
Managed_Object_Ptr_And_Workspace object_ptrs = get_dynamic_object_ptrs(models, object);
|
||||
Marker_Visual visual = {0};
|
||||
Marker_Visual visual = {};
|
||||
if (object_ptrs.header != 0 && object_ptrs.header->type == ManagedObjectType_Markers){
|
||||
Heap *heap = &models->mem.heap;
|
||||
Dynamic_Workspace *workspace = object_ptrs.workspace;
|
||||
|
@ -2982,7 +2982,7 @@ DOC_SEE(User_Input)
|
|||
Models *models = (Models*)app->cmd_context;
|
||||
System_Functions *system = models->system;
|
||||
Coroutine_Head *coroutine = (Coroutine_Head*)app->current_coroutine;
|
||||
User_Input result = {0};
|
||||
User_Input result = {};
|
||||
|
||||
if (app->type_coroutine == Co_Command){
|
||||
Assert(coroutine != 0);
|
||||
|
@ -3003,10 +3003,7 @@ DOC_SEE(User_Input)
|
|||
*/{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
User_Input result = {};
|
||||
result.type = UserInputKey;
|
||||
result.abort = 0;
|
||||
result.key = models->key;
|
||||
result.command.cmdid = 0;
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
@ -3101,7 +3098,7 @@ DOC_RETURN(On success this call returns a string allocated on arena that is the
|
|||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
Style_Library *library = &models->styles;
|
||||
String str = {0};
|
||||
String str = {};
|
||||
if (0 <= index && index < library->count){
|
||||
Style *style = &library->styles[index];
|
||||
char *mem = push_array(arena, char, style->name.size + 1);
|
||||
|
@ -3274,7 +3271,7 @@ face_description_to_settings(System_Functions *system, Face_Description descript
|
|||
if (description.font.in_local_font_folder){
|
||||
i32 count = system->font.get_loadable_count();
|
||||
for (i32 i = 0; i < count; ++i){
|
||||
Font_Loadable_Description loadable = {0};
|
||||
Font_Loadable_Description loadable = {};
|
||||
system->font.get_loadable(i, &loadable);
|
||||
|
||||
if (loadable.valid){
|
||||
|
@ -3325,7 +3322,7 @@ DOC_SEE(Face_Description)
|
|||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
System_Functions *system = models->system;
|
||||
Face_Description description = {0};
|
||||
Face_Description description = {};
|
||||
if (id != 0){
|
||||
Font_Pointers font = system->font.get_pointers_by_id(id);
|
||||
if (font.valid){
|
||||
|
|
|
@ -508,7 +508,7 @@ buffer_edit_provide_memory(Gap_Buffer *buffer, void *new_data, i32 new_max){
|
|||
|
||||
inline void
|
||||
buffer_stringify(Gap_Buffer *buffer, i32 start, i32 end, char *out){
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
|
||||
i32 i = start;
|
||||
if (buffer_stringify_loop(&stream, buffer, i, end)){
|
||||
|
@ -525,7 +525,7 @@ buffer_stringify(Gap_Buffer *buffer, i32 start, i32 end, char *out){
|
|||
|
||||
internal i32
|
||||
buffer_convert_out(Gap_Buffer *buffer, char *dest, i32 max){
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
i32 i = 0;
|
||||
i32 size = buffer_size(buffer);
|
||||
Assert(size + buffer->line_count <= max);
|
||||
|
@ -549,7 +549,7 @@ buffer_convert_out(Gap_Buffer *buffer, char *dest, i32 max){
|
|||
|
||||
internal i32
|
||||
buffer_count_newlines(Gap_Buffer *buffer, i32 start, i32 end){
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
i32 i = start;
|
||||
i32 count = 0;
|
||||
|
||||
|
@ -575,7 +575,7 @@ buffer_count_newlines(Gap_Buffer *buffer, i32 start, i32 end){
|
|||
// and stores the size in the extra spot.
|
||||
internal i32
|
||||
buffer_measure_starts(Buffer_Measure_Starts *state, Gap_Buffer *buffer){
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
i32 size = buffer_size(buffer);
|
||||
i32 start = state->start, i = state->i;
|
||||
i32 *start_ptr = buffer->line_starts + state->count;
|
||||
|
@ -624,7 +624,7 @@ internal void
|
|||
buffer_measure_character_starts(System_Functions *system, Font_Pointers font, Gap_Buffer *buffer, i32 *character_starts, i32 mode, i32 virtual_white){
|
||||
Assert(mode == 0);
|
||||
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
i32 i = 0;
|
||||
i32 size = buffer_size(buffer);
|
||||
|
||||
|
@ -639,8 +639,8 @@ buffer_measure_character_starts(System_Functions *system, Font_Pointers font, Ga
|
|||
skipping_whitespace = 1;
|
||||
}
|
||||
|
||||
Translation_State tran = {0};
|
||||
Translation_Emits emits = {0};
|
||||
Translation_State tran = {};
|
||||
Translation_Emits emits = {};
|
||||
|
||||
stream.use_termination_character = 1;
|
||||
stream.terminator = '\n';
|
||||
|
@ -846,7 +846,7 @@ buffer_remeasure_starts(Gap_Buffer *buffer, i32 line_start, i32 line_end, i32 li
|
|||
}
|
||||
|
||||
// Iteration data (yikes! Need better loop system)
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
i32 size = buffer_size(buffer);
|
||||
i32 char_i = starts[line_start];
|
||||
i32 line_i = line_start;
|
||||
|
@ -909,7 +909,7 @@ buffer_remeasure_character_starts(System_Functions *system, Font_Pointers font,
|
|||
}
|
||||
|
||||
// Iteration data
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
i32 size = buffer_size(buffer);
|
||||
i32 char_i = buffer->line_starts[line_start];
|
||||
i32 line_i = line_start;
|
||||
|
@ -925,8 +925,8 @@ buffer_remeasure_character_starts(System_Functions *system, Font_Pointers font,
|
|||
}
|
||||
|
||||
// Translation
|
||||
Translation_State tran = {0};
|
||||
Translation_Emits emits = {0};
|
||||
Translation_State tran = {};
|
||||
Translation_Emits emits = {};
|
||||
|
||||
stream.use_termination_character = 1;
|
||||
stream.terminator = '\n';
|
||||
|
@ -1006,7 +1006,7 @@ buffer_remeasure_wrap_y(Gap_Buffer *buffer, i32 line_start, i32 line_end, i32 li
|
|||
}
|
||||
|
||||
// Iteration data (yikes! Need better loop system)
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
i32 size = buffer_size(buffer);
|
||||
i32 char_i = buffer->line_starts[line_start];
|
||||
i32 line_i = line_start;
|
||||
|
@ -1130,7 +1130,7 @@ buffer_get_line_index_from_wrapped_y(i32 *wrap_line_index, f32 y, i32 line_heigh
|
|||
|
||||
internal Partial_Cursor
|
||||
buffer_partial_from_pos(Gap_Buffer *buffer, i32 pos){
|
||||
Partial_Cursor result = {0};
|
||||
Partial_Cursor result = {};
|
||||
|
||||
int32_t size = buffer_size(buffer);
|
||||
if (pos > size){
|
||||
|
@ -1150,7 +1150,7 @@ buffer_partial_from_pos(Gap_Buffer *buffer, i32 pos){
|
|||
|
||||
internal Partial_Cursor
|
||||
buffer_partial_from_line_character(Gap_Buffer *buffer, i32 line, i32 character){
|
||||
Partial_Cursor result = {0};
|
||||
Partial_Cursor result = {};
|
||||
|
||||
i32 line_index = line - 1;
|
||||
if (line_index >= buffer->line_count){
|
||||
|
|
|
@ -45,7 +45,7 @@ struct Gap_Buffer_Stream{
|
|||
b32 use_termination_character;
|
||||
char terminator;
|
||||
};
|
||||
global Gap_Buffer_Stream null_buffer_stream = {0};
|
||||
global Gap_Buffer_Stream null_buffer_stream = {};
|
||||
|
||||
struct Buffer_Batch_State{
|
||||
i32 i;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
inline CLI_List
|
||||
make_cli_list(Partition *part, u32 max){
|
||||
CLI_List list = {0};
|
||||
CLI_List list = {};
|
||||
partition_align(part, 8);
|
||||
list.procs = push_array(part, CLI_Process, max);
|
||||
list.max = max;
|
||||
|
|
|
@ -42,12 +42,12 @@ wrap_state_set_top(Code_Wrap_State *state, f32 line_shift){
|
|||
|
||||
internal Code_Wrap_Step
|
||||
wrap_state_consume_token(System_Functions *system, Font_Pointers font, Code_Wrap_State *state, i32 fixed_end_point){
|
||||
Code_Wrap_Step result = {0};
|
||||
Code_Wrap_Step result = {};
|
||||
i32 i = state->i;
|
||||
|
||||
result.position_start = i;
|
||||
|
||||
Cpp_Token token = {0};
|
||||
Cpp_Token token = {};
|
||||
|
||||
token.start = state->size;
|
||||
if (state->token_ptr < state->end_token){
|
||||
|
@ -374,11 +374,11 @@ stickieness_guess(Cpp_Token_Type type, Cpp_Token_Type other_type, u16 flags, u16
|
|||
|
||||
internal Wrap_Current_Shift
|
||||
get_current_shift(Code_Wrap_State *wrap_state, i32 next_line_start){
|
||||
Wrap_Current_Shift result = {0};
|
||||
Wrap_Current_Shift result = {};
|
||||
|
||||
result.shift = wrap_state->wrap_x.paren_nesting[wrap_state->wrap_x.paren_safe_top];
|
||||
|
||||
Cpp_Token next_token = {0};
|
||||
Cpp_Token next_token = {};
|
||||
if (wrap_state->token_ptr < wrap_state->end_token){
|
||||
next_token = *wrap_state->token_ptr;
|
||||
}
|
||||
|
@ -456,8 +456,8 @@ file_measure_wraps(System_Functions *system, Mem_Options *mem, Editing_File *fil
|
|||
|
||||
i32 size = buffer_size(params.buffer);
|
||||
|
||||
Buffer_Measure_Wrap_State state = {0};
|
||||
Buffer_Layout_Stop stop = {0};
|
||||
Buffer_Measure_Wrap_State state = {};
|
||||
Buffer_Layout_Stop stop = {};
|
||||
|
||||
f32 edge_tolerance = 50.f;
|
||||
edge_tolerance = clamp_top(edge_tolerance, 50.f);
|
||||
|
@ -469,7 +469,7 @@ file_measure_wraps(System_Functions *system, Mem_Options *mem, Editing_File *fil
|
|||
i32 wrap_position_index = 0;
|
||||
file->state.wrap_positions[wrap_position_index++] = 0;
|
||||
|
||||
Code_Wrap_State wrap_state = {0};
|
||||
Code_Wrap_State wrap_state = {};
|
||||
|
||||
b32 use_tokens = false;
|
||||
|
||||
|
@ -511,9 +511,9 @@ file_measure_wraps(System_Functions *system, Mem_Options *mem, Editing_File *fil
|
|||
}
|
||||
}
|
||||
else{
|
||||
Translation_State tran = {0};
|
||||
Translation_Emits emits = {0};
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Translation_State tran = {};
|
||||
Translation_Emits emits = {};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
|
||||
i32 word_stage = 0;
|
||||
i32 i = stop.pos;
|
||||
|
@ -614,7 +614,7 @@ file_measure_wraps(System_Functions *system, Mem_Options *mem, Editing_File *fil
|
|||
wrap_state.wrap_x.base_x = wrap_state.wrap_x.paren_nesting[0];
|
||||
|
||||
for (; wrap_state.token_ptr < wrap_state.end_token; ){
|
||||
Code_Wrap_Step step = {0};
|
||||
Code_Wrap_Step step = {};
|
||||
b32 emit_comment_position = false;
|
||||
b32 first_word = true;
|
||||
|
||||
|
@ -636,11 +636,11 @@ file_measure_wraps(System_Functions *system, Mem_Options *mem, Editing_File *fil
|
|||
step.start_x = x;
|
||||
step.this_token = wrap_state.token_ptr;
|
||||
|
||||
Gap_Buffer_Stream stream = {0};
|
||||
Translation_State tran = {0};
|
||||
Translation_Emits emits = {0};
|
||||
Gap_Buffer_Stream stream = {};
|
||||
Translation_State tran = {};
|
||||
Translation_Emits emits = {};
|
||||
|
||||
Potential_Wrap_Indent_Pair potential_wrap = {0};
|
||||
Potential_Wrap_Indent_Pair potential_wrap = {};
|
||||
potential_wrap.wrap_position = i;
|
||||
potential_wrap.line_shift = x;
|
||||
potential_wrap.wrappable_score = 5;
|
||||
|
|
|
@ -18,7 +18,7 @@ struct Code_Wrap_X{
|
|||
i32 paren_safe_top;
|
||||
i32 paren_top;
|
||||
};
|
||||
global Code_Wrap_X null_wrap_x = {0};
|
||||
global Code_Wrap_X null_wrap_x = {};
|
||||
|
||||
struct Code_Wrap_State{
|
||||
Cpp_Token_Array token_array;
|
||||
|
|
|
@ -105,7 +105,7 @@ map_add(Command_Map *map, Key_Code event_code, u8 modifiers, Command_Function *f
|
|||
entry = map->commands[index];
|
||||
}
|
||||
|
||||
Command_Binding bind = {0};
|
||||
Command_Binding bind = {};
|
||||
bind.function = function;
|
||||
bind.custom = custom;
|
||||
bind.hash = hash;
|
||||
|
@ -205,7 +205,7 @@ map_get_vanilla_keyboard_default(Command_Map *map, u8 command, Command_Binding *
|
|||
|
||||
internal Command_Binding
|
||||
map_extract(Command_Map *map, Key_Event_Data key){
|
||||
Command_Binding bind = {0};
|
||||
Command_Binding bind = {};
|
||||
|
||||
b32 ctrl = key.modifiers[MDFR_CONTROL_INDEX];
|
||||
b32 alt = key.modifiers[MDFR_ALT_INDEX];
|
||||
|
@ -243,10 +243,10 @@ map_extract_recursive(Mapping *mapping, i32 map_id, Key_Event_Data key){
|
|||
map = &mapping->map_top;
|
||||
}
|
||||
|
||||
Command_Map *visited_maps[16] = {0};
|
||||
Command_Map *visited_maps[16] = {};
|
||||
i32 visited_top = 0;
|
||||
|
||||
Command_Binding cmd_bind = {0};
|
||||
Command_Binding cmd_bind = {};
|
||||
for (; map != 0; ){
|
||||
cmd_bind = map_extract(map, key);
|
||||
if (cmd_bind.function == 0){
|
||||
|
|
|
@ -442,7 +442,7 @@ lifetime__key_table_erase(Lifetime_Key_Table *table, Lifetime_Key *erase_key){
|
|||
|
||||
internal Lifetime_Key_Table
|
||||
lifetime__key_table_copy(Heap *heap, Lifetime_Key_Table table, u32 new_max){
|
||||
Lifetime_Key_Table new_table = {0};
|
||||
Lifetime_Key_Table new_table = {};
|
||||
new_table.max = clamp_bottom(table.max, new_max);
|
||||
new_table.max = clamp_bottom(307, new_table.max);
|
||||
i32 item_size = sizeof(*new_table.hashes) + sizeof(*new_table.keys);
|
||||
|
|
|
@ -272,7 +272,7 @@ edit_single__inner(System_Functions *system, Models *models, Editing_File *file,
|
|||
file_measure_wraps(system, &models->mem, file, font);
|
||||
|
||||
// NOTE(allen): cursor fixing
|
||||
Cursor_Fix_Descriptor desc = {0};
|
||||
Cursor_Fix_Descriptor desc = {};
|
||||
desc.start = start;
|
||||
desc.end = end;
|
||||
desc.shift_amount = shift_amount;
|
||||
|
@ -425,7 +425,7 @@ edit_batch(System_Functions *system, Models *models, Editing_File *file,
|
|||
file_measure_wraps(system, &models->mem, file, font);
|
||||
|
||||
// NOTE(allen): cursor fixing
|
||||
Cursor_Fix_Descriptor desc = {0};
|
||||
Cursor_Fix_Descriptor desc = {};
|
||||
desc.is_batch = 1;
|
||||
desc.batch = batch;
|
||||
desc.batch_size = batch_size;
|
||||
|
@ -456,7 +456,7 @@ edit_clear(System_Functions *system, Models *models, Editing_File *file){
|
|||
panel = panel->next){
|
||||
View *view = panel->view;
|
||||
if (view->transient.file_data.file == file){
|
||||
Full_Cursor cursor = {0};
|
||||
Full_Cursor cursor = {};
|
||||
cursor.line = 1;
|
||||
cursor.character = 1;
|
||||
cursor.wrap_line = 1;
|
||||
|
|
|
@ -308,7 +308,7 @@ file_compute_cursor(System_Functions *system, Editing_File *file, Buffer_Seek se
|
|||
Font_Pointers font = system->font.get_pointers_by_id(file->settings.font_id);
|
||||
Assert(font.valid);
|
||||
|
||||
Full_Cursor result = {0};
|
||||
Full_Cursor result = {};
|
||||
|
||||
Buffer_Cursor_Seek_Params params;
|
||||
params.buffer = &file->state.buffer;
|
||||
|
@ -321,8 +321,8 @@ file_compute_cursor(System_Functions *system, Editing_File *file, Buffer_Seek se
|
|||
params.return_hint = return_hint;
|
||||
params.cursor_out = &result;
|
||||
|
||||
Buffer_Cursor_Seek_State state = {0};
|
||||
Buffer_Layout_Stop stop = {0};
|
||||
Buffer_Cursor_Seek_State state = {};
|
||||
Buffer_Layout_Stop stop = {};
|
||||
|
||||
i32 size = buffer_size(params.buffer);
|
||||
|
||||
|
@ -409,7 +409,7 @@ file_measure_starts(Heap *heap, Gap_Buffer *buffer){
|
|||
Assert(buffer->line_starts != 0);
|
||||
}
|
||||
|
||||
Buffer_Measure_Starts state = {0};
|
||||
Buffer_Measure_Starts state = {};
|
||||
for (;buffer_measure_starts(&state, buffer);){
|
||||
i32 count = state.count;
|
||||
i32 max = ((buffer->line_max + 1) << 1);
|
||||
|
|
|
@ -36,7 +36,7 @@ Job_Callback_Sig(job_full_lex){
|
|||
data_ptr += parse_context.memory_size;
|
||||
data_size -= parse_context.memory_size;
|
||||
|
||||
Cpp_Token_Array tokens = {0};
|
||||
Cpp_Token_Array tokens = {};
|
||||
tokens.tokens = (Cpp_Token*)(data_ptr);
|
||||
tokens.max_count = (u32)(data_size / sizeof(Cpp_Token));
|
||||
tokens.count = 0;
|
||||
|
@ -191,7 +191,7 @@ file_first_lex_serial(Models *models, Editing_File *file){
|
|||
|
||||
Parse_Context parse_context = parse_context_get(&models->parse_context_memory, file->settings.parse_context_id, partition_current(part), partition_remaining(part));
|
||||
Assert(parse_context.valid);
|
||||
push_block(part, (i32)parse_context.memory_size);
|
||||
push_array(part, char, (i32)parse_context.memory_size);
|
||||
|
||||
Gap_Buffer *buffer = &file->state.buffer;
|
||||
i32 text_size = buffer_size(buffer);
|
||||
|
@ -312,7 +312,7 @@ file_relex_parallel(System_Functions *system, Models *models, Editing_File *file
|
|||
Temp_Memory temp = begin_temp_memory(part);
|
||||
Parse_Context parse_context = parse_context_get(&models->parse_context_memory, file->settings.parse_context_id, partition_current(part), partition_remaining(part));
|
||||
Assert(parse_context.valid);
|
||||
push_block(part, (i32)parse_context.memory_size);
|
||||
push_array(part, char, (i32)parse_context.memory_size);
|
||||
|
||||
Cpp_Token_Array relex_array;
|
||||
relex_array.count = 0;
|
||||
|
@ -443,7 +443,7 @@ file_relex_serial(Models *models, Editing_File *file, i32 start_i, i32 end_i, i3
|
|||
Temp_Memory temp = begin_temp_memory(part);
|
||||
Parse_Context parse_context = parse_context_get(&models->parse_context_memory, file->settings.parse_context_id, partition_current(part), partition_remaining(part));
|
||||
Assert(parse_context.valid);
|
||||
push_block(part, (i32)parse_context.memory_size);
|
||||
push_array(part, char, (i32)parse_context.memory_size);
|
||||
|
||||
Cpp_Token_Array relex_array;
|
||||
relex_array.count = 0;
|
||||
|
|
|
@ -22,7 +22,7 @@ struct File_Track_Entry{
|
|||
File_Index hash;
|
||||
u32 opaque[4];
|
||||
};
|
||||
global_const File_Track_Entry null_file_track_entry = {0};
|
||||
global_const File_Track_Entry null_file_track_entry = {};
|
||||
|
||||
struct File_Track_Tables{
|
||||
i32 size;
|
||||
|
@ -38,7 +38,7 @@ struct DLL_Node {
|
|||
|
||||
internal File_Index
|
||||
zero_file_index(){
|
||||
File_Index a = {0};
|
||||
File_Index a = {};
|
||||
return(a);
|
||||
}
|
||||
|
||||
|
|
|
@ -170,7 +170,7 @@ struct Font_Cached_Lookup_Result{
|
|||
|
||||
internal Font_Cached_Lookup_Result
|
||||
font_cached_lookup(Font_Page_Storage *pages, u32 page_number){
|
||||
Font_Cached_Lookup_Result result = {0};
|
||||
Font_Cached_Lookup_Result result = {};
|
||||
|
||||
result.index = page_number % ArrayCount(pages->cache);
|
||||
if (pages->cache[result.index].page_number == page_number){
|
||||
|
|
|
@ -68,7 +68,7 @@ struct Glyph_Bounds{
|
|||
f32 xoff, yoff;
|
||||
f32 xoff2, yoff2;
|
||||
};
|
||||
global_const Glyph_Bounds null_glyph_bounds = {0};
|
||||
global_const Glyph_Bounds null_glyph_bounds = {};
|
||||
|
||||
struct Glyph_Page{
|
||||
u32 page_number;
|
||||
|
|
|
@ -603,7 +603,7 @@ Sys_Font_Get_Count_Sig(system_font_get_count){
|
|||
|
||||
internal Font_Slot_Page_And_Index
|
||||
system_font_get_active_location(Face_ID font_id){
|
||||
Font_Slot_Page_And_Index result = {0};
|
||||
Font_Slot_Page_And_Index result = {};
|
||||
|
||||
for (Font_Slot_Page *page = fontvars.slot_pages_sentinel.next;
|
||||
page != &fontvars.slot_pages_sentinel;
|
||||
|
@ -640,8 +640,8 @@ Sys_Font_Face_Change_Settings_Sig(system_font_face_change_settings, font_id, new
|
|||
|
||||
b32 made_change = false;
|
||||
|
||||
Font_Metrics temp_metrics = {0};
|
||||
Font_Page_Storage temp_pages = {0};
|
||||
Font_Metrics temp_metrics = {};
|
||||
Font_Page_Storage temp_pages = {};
|
||||
|
||||
if (font_load(&sysfunc, new_settings, &temp_metrics, &temp_pages)){
|
||||
Font_Metrics *metrics_ptr = &page_and_index.page->metrics[page_and_index.index];
|
||||
|
@ -699,7 +699,7 @@ Sys_Font_Get_Name_By_ID_Sig(system_font_get_name_by_id, font_id, str_out, capaci
|
|||
|
||||
internal
|
||||
Sys_Font_Get_Pointers_By_ID_Sig(system_font_get_pointers_by_id, font_id){
|
||||
Font_Pointers font = {0};
|
||||
Font_Pointers font = {};
|
||||
if (font_id == 0){
|
||||
return(font);
|
||||
}
|
||||
|
@ -725,7 +725,7 @@ Sys_Font_Load_Page_Sig(system_font_load_page, settings, metrics, page, page_numb
|
|||
|
||||
internal Font_Setup_List
|
||||
system_font_get_local_stubs(Partition *part){
|
||||
Font_Setup_List list = {0};
|
||||
Font_Setup_List list = {};
|
||||
|
||||
u32 dir_max = KB(32);
|
||||
u8 *directory = push_array(part, u8, dir_max);
|
||||
|
@ -740,7 +740,7 @@ system_font_get_local_stubs(Partition *part){
|
|||
partition_reduce(part, dir_max - dir_len - 1);
|
||||
partition_align(part, 8);
|
||||
|
||||
File_List file_list = {0};
|
||||
File_List file_list = {};
|
||||
system_set_file_list(&file_list, (char*)directory, 0, 0, 0);
|
||||
|
||||
for (u32 i = 0; i < file_list.count; ++i){
|
||||
|
@ -751,7 +751,7 @@ system_font_get_local_stubs(Partition *part){
|
|||
for (;filename[len];++len);
|
||||
|
||||
if (dir_len + len + 1 <= sizeof(list.first->stub.name)){
|
||||
Font_Setup *setup = push_struct(part, Font_Setup);
|
||||
Font_Setup *setup = push_array(part, Font_Setup, 1);
|
||||
memset(setup, 0, sizeof(*setup));
|
||||
partition_align(part, 8);
|
||||
|
||||
|
@ -846,7 +846,7 @@ system_font_init(Font_Functions *font_links, u32 pt_size, b32 use_hinting, Font_
|
|||
|
||||
// Force load one font.
|
||||
Font_Setup *first_setup = list.first;
|
||||
Font_Settings first_settings = {0};
|
||||
Font_Settings first_settings = {};
|
||||
memcpy(&first_settings.stub, &first_setup->stub, sizeof(first_setup->stub));
|
||||
first_settings.parameters.pt_size = pt_size;
|
||||
first_settings.parameters.use_hinting = use_hinting;
|
||||
|
|
|
@ -59,7 +59,7 @@ struct Font_Vars{
|
|||
b32 use_hinting;
|
||||
};
|
||||
|
||||
global Font_Vars fontvars = {0};
|
||||
global Font_Vars fontvars = {};
|
||||
|
||||
struct Font_Setup{
|
||||
Font_Setup *next;
|
||||
|
@ -100,14 +100,14 @@ internal Sys_Font_Path(name, parameters);
|
|||
|
||||
#define Sys_Font_Path_Not_Used \
|
||||
internal Sys_Font_Path(n,p){ \
|
||||
Font_Path path = {0}; LOG("there is no font path retrieval procedure available\n"); return(path);}
|
||||
Font_Path path = {}; LOG("there is no font path retrieval procedure available\n"); return(path);}
|
||||
|
||||
#define Sys_Font_Data(name, parameters) Font_Raw_Data system_font_data(char *name, Font_Parameters *parameters)
|
||||
internal Sys_Font_Data(name, parameters);
|
||||
|
||||
#define Sys_Font_Data_Not_Used \
|
||||
internal Sys_Font_Data(n,p){ \
|
||||
Font_Raw_Data data = {0}; LOG("there is no font data retrieval procedure available\n"); return(data);}
|
||||
Font_Raw_Data data = {}; LOG("there is no font data retrieval procedure available\n"); return(data);}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ panel_init(Panel *panel){
|
|||
|
||||
inline Panel_Divider
|
||||
panel_divider_zero(){
|
||||
Panel_Divider divider={0};
|
||||
Panel_Divider divider={};
|
||||
return(divider);
|
||||
}
|
||||
|
||||
|
|
|
@ -565,7 +565,7 @@ rgba_to_hsla(Vec4 rgba){
|
|||
internal Vec4
|
||||
hsla_to_rgba(Vec4 hsla){
|
||||
if (hsla.h >= 1.f) hsla.h = 0.f;
|
||||
Vec4 rgba = {0};
|
||||
Vec4 rgba = {};
|
||||
f32 C = (1.f - ABS(2*hsla.z - 1.f))*hsla.y;
|
||||
f32 X = C*(1.f-ABS(MOD(hsla.x*6.f, 2)-1.f));
|
||||
f32 m = hsla.z - C*.5f;
|
||||
|
@ -591,7 +591,7 @@ hsla_to_rgba(Vec4 hsla){
|
|||
|
||||
internal i32_Rect
|
||||
i32R(int32_t l, int32_t t, int32_t r, int32_t b){
|
||||
i32_Rect rect = {0};
|
||||
i32_Rect rect = {};
|
||||
rect.x0 = l;
|
||||
rect.y0 = t;
|
||||
rect.x1 = r;
|
||||
|
|
|
@ -111,7 +111,7 @@ parse_context_add_default(Parse_Context_Memory *parse_mem, Heap *heap){
|
|||
|
||||
internal Parse_Context
|
||||
parse_context_get(Parse_Context_Memory *parse_mem, Parse_Context_ID id, void *mem, umem memsize){
|
||||
Parse_Context result = {0};
|
||||
Parse_Context result = {};
|
||||
|
||||
Stored_Parse_Context_Slot *slot = 0;
|
||||
if (id == 0){
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
internal Ptr_Table
|
||||
make_Ptr_table(void *mem, umem size){
|
||||
Ptr_Table table = {0};
|
||||
Ptr_Table table = {};
|
||||
i32 max = (i32)(size/8);
|
||||
if (max > 0){
|
||||
table.mem = mem;
|
||||
|
@ -173,7 +173,7 @@ insert_Ptr_table(Heap *heap, Ptr_Table *table, void* key){
|
|||
|
||||
internal u32_Ptr_Table
|
||||
make_u32_Ptr_table(void *mem, umem size){
|
||||
u32_Ptr_Table table = {0};
|
||||
u32_Ptr_Table table = {};
|
||||
i32 max = (i32)(size/16);
|
||||
if (max > 0){
|
||||
table.mem = mem;
|
||||
|
@ -234,7 +234,7 @@ insert_u32_Ptr_table(u32_Ptr_Table *table, u32*key, void**val){
|
|||
|
||||
internal u32_Ptr_Lookup_Result
|
||||
lookup_u32_Ptr_table(u32_Ptr_Table *table, u32*key){
|
||||
u32_Ptr_Lookup_Result result = {0};
|
||||
u32_Ptr_Lookup_Result result = {};
|
||||
i32 max = table->max;
|
||||
if (max > 0){
|
||||
u64 hash = 0;
|
||||
|
|
|
@ -46,7 +46,7 @@ end_render_section(Render_Target *target, System_Functions *system){
|
|||
|
||||
internal void
|
||||
draw_rectangle(Render_Target *target, f32_Rect rect, u32 color){
|
||||
Render_Command_Rectangle cmd = {0};
|
||||
Render_Command_Rectangle cmd = {};
|
||||
CmdHeader(RenCom_Rectangle);
|
||||
cmd.rect = rect;
|
||||
cmd.color = color;
|
||||
|
@ -61,7 +61,7 @@ draw_rectangle(Render_Target *target, i32_Rect rect, u32 color){
|
|||
|
||||
internal void
|
||||
draw_rectangle_outline(Render_Target *target, f32_Rect rect, u32 color){
|
||||
Render_Command_Rectangle cmd = {0};
|
||||
Render_Command_Rectangle cmd = {};
|
||||
CmdHeader(RenCom_Outline);
|
||||
cmd.rect = rect;
|
||||
cmd.color = color;
|
||||
|
@ -130,8 +130,8 @@ draw_string_base(System_Functions *system, Render_Target *target, Face_ID font_i
|
|||
u8 *str = (u8*)str_.str;
|
||||
u8 *str_end = str + str_.size;
|
||||
|
||||
Translation_State tran = {0};
|
||||
Translation_Emits emits = {0};
|
||||
Translation_State tran = {};
|
||||
Translation_Emits emits = {};
|
||||
|
||||
for (u32 i = 0; str < str_end; ++str, ++i){
|
||||
translating_fully_process_byte(system, font, &tran, *str, i, str_.size, &emits);
|
||||
|
|
|
@ -45,7 +45,7 @@ render_internal_push_clip(Render_Target *t, i32_Rect clip_box){
|
|||
|
||||
// TODO(allen): If the previous command was also a push clip should
|
||||
// undo that one and just do this one. (OPTIMIZATION).
|
||||
Render_Command_Change_Clip cmd = {0};
|
||||
Render_Command_Change_Clip cmd = {};
|
||||
cmd.header.size = sizeof(cmd);
|
||||
cmd.header.type = RenCom_ChangeClip;
|
||||
cmd.box = clip_box;
|
||||
|
|
|
@ -17,7 +17,7 @@ struct Plat_Handle{
|
|||
u32 d[4];
|
||||
};
|
||||
|
||||
static Plat_Handle null_plat_handle = {0};
|
||||
static Plat_Handle null_plat_handle = {};
|
||||
|
||||
inline b32
|
||||
handle_equal(Plat_Handle a, Plat_Handle b){
|
||||
|
@ -137,7 +137,7 @@ struct Thread_Memory{
|
|||
u32 size;
|
||||
u32 id;
|
||||
};
|
||||
global Thread_Memory null_thread_memory = {0};
|
||||
global Thread_Memory null_thread_memory = {};
|
||||
|
||||
struct Thread_Exchange;
|
||||
struct System_Functions;
|
||||
|
|
|
@ -179,9 +179,9 @@ translating_generate_emits(Translation_State *tran, Translation_Emit_Rule emit_r
|
|||
|
||||
internal void
|
||||
translating_fully_process_byte(System_Functions *system, Font_Pointers font, Translation_State *tran, u8 ch, u32 i, u32 size, Translation_Emits *emits_out){
|
||||
Translation_Byte_Description description = {0};
|
||||
Translation_Byte_Description description = {};
|
||||
translating_consume_byte(tran, ch, i, size, &description);
|
||||
Translation_Emit_Rule emit_rule = {0};
|
||||
Translation_Emit_Rule emit_rule = {};
|
||||
translating_select_emit_rule_with_font(system, font, tran, description, &emit_rule);
|
||||
translating_generate_emits(tran, emit_rule, ch, i, emits_out);
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ struct Translation_State{
|
|||
u8 fill_i;
|
||||
u8 fill_expected;
|
||||
};
|
||||
global_const Translation_State null_buffer_translating_state = {0};
|
||||
global_const Translation_State null_buffer_translating_state = {};
|
||||
|
||||
enum{
|
||||
TranLBH_None,
|
||||
|
|
30
4ed_view.cpp
30
4ed_view.cpp
|
@ -101,7 +101,7 @@ view_get_cursor_xy(View *view){
|
|||
|
||||
inline Cursor_Limits
|
||||
view_cursor_limits(View *view){
|
||||
Cursor_Limits limits = {0};
|
||||
Cursor_Limits limits = {};
|
||||
|
||||
f32 line_height = (f32)view->transient.line_height;
|
||||
f32 visible_height = view_height(view);
|
||||
|
@ -287,7 +287,7 @@ view_set_cursor_and_scroll(View *view, Full_Cursor cursor, b32 set_preferred_x,
|
|||
|
||||
internal Relative_Scrolling
|
||||
view_get_relative_scrolling(View *view){
|
||||
Relative_Scrolling result = {0};
|
||||
Relative_Scrolling result = {};
|
||||
if (view->transient.edit_pos != 0){
|
||||
Vec2 cursor = view_get_cursor_xy(view);
|
||||
result.scroll_y = cursor.y - view->transient.edit_pos->scroll.scroll_y;
|
||||
|
@ -563,7 +563,7 @@ get_visual_markers(Partition *arena, Dynamic_Workspace *workspace,
|
|||
case VisualType_CharacterHighlightRanges:
|
||||
case VisualType_LineHighlightRanges:
|
||||
{
|
||||
i32 pos_pair[2] = {0};
|
||||
i32 pos_pair[2] = {};
|
||||
i32 pair_index = 0;
|
||||
|
||||
for (;marker < marker_one_past_last; marker += stride_size_from_last){
|
||||
|
@ -574,7 +574,7 @@ get_visual_markers(Partition *arena, Dynamic_Workspace *workspace,
|
|||
if (pair_index == 2){
|
||||
pair_index = 0;
|
||||
|
||||
Range range_b = {0};
|
||||
Range range_b = {};
|
||||
range_b.first = pos_pair[0];
|
||||
range_b.one_past_last = pos_pair[1];
|
||||
|
||||
|
@ -774,7 +774,7 @@ render_loaded_file_in_view__inner(Models *models, Render_Target *target, View *v
|
|||
Face_ID font_id = file->settings.font_id;
|
||||
|
||||
// NOTE(allen): Get visual markers
|
||||
Render_Marker_Array markers = {0};
|
||||
Render_Marker_Array markers = {};
|
||||
markers.markers = push_array(part, Render_Marker, 0);
|
||||
{
|
||||
Lifetime_Object *lifetime_object = file->lifetime_object;
|
||||
|
@ -806,19 +806,19 @@ render_loaded_file_in_view__inner(Models *models, Render_Target *target, View *v
|
|||
visual_markers_quick_sort(markers.markers, marker_segments[i].first, marker_segments[i].one_past_last);
|
||||
}
|
||||
|
||||
Render_Marker_Array character_markers = {0};
|
||||
Render_Marker_Array character_markers = {};
|
||||
character_markers.markers = markers.markers + marker_segments[0].first;
|
||||
character_markers.count = marker_segments[0].one_past_last - marker_segments[0].first;
|
||||
|
||||
Render_Marker_Array line_markers = {0};
|
||||
Render_Marker_Array line_markers = {};
|
||||
line_markers.markers = markers.markers + marker_segments[1].first;
|
||||
line_markers.count = marker_segments[1].one_past_last - marker_segments[1].first;
|
||||
|
||||
Render_Marker_Array range_markers = {0};
|
||||
Render_Marker_Array range_markers = {};
|
||||
range_markers.markers = markers.markers + marker_segments[2].first;
|
||||
range_markers.count = marker_segments[2].one_past_last - marker_segments[2].first;
|
||||
|
||||
Render_Marker_Array line_range_markers = {0};
|
||||
Render_Marker_Array line_range_markers = {};
|
||||
line_range_markers.markers = markers.markers + marker_segments[3].first;
|
||||
line_range_markers.count = marker_segments[3].one_past_last - marker_segments[3].first;
|
||||
|
||||
|
@ -982,7 +982,7 @@ render_loaded_file_in_view__inner(Models *models, Render_Target *target, View *v
|
|||
line_range_markers.markers[visual_line_range_markers_scan_index].pos <= ind;
|
||||
visual_line_range_markers_scan_index += 1){
|
||||
Render_Marker *marker = &line_range_markers.markers[visual_line_range_markers_scan_index];
|
||||
Render_Range_Record range_record = {0};
|
||||
Render_Range_Record range_record = {};
|
||||
range_record.color = marker->color;
|
||||
range_record.text_color = marker->text_color;
|
||||
range_record.one_past_last = marker->one_past_last;
|
||||
|
@ -1059,7 +1059,7 @@ render_loaded_file_in_view__inner(Models *models, Render_Target *target, View *v
|
|||
range_markers.markers[visual_range_markers_scan_index].pos <= ind;
|
||||
visual_range_markers_scan_index += 1){
|
||||
Render_Marker *marker = &range_markers.markers[visual_range_markers_scan_index];
|
||||
Render_Range_Record range_record = {0};
|
||||
Render_Range_Record range_record = {};
|
||||
range_record.color = marker->color;
|
||||
range_record.text_color = marker->text_color;
|
||||
range_record.one_past_last = marker->one_past_last;
|
||||
|
@ -1194,7 +1194,7 @@ render_loaded_file_in_view(System_Functions *system, View *view, Models *models,
|
|||
// to the gui system.
|
||||
scroll_y += view->transient.widget_height;
|
||||
|
||||
Full_Cursor render_cursor = {0};
|
||||
Full_Cursor render_cursor = {};
|
||||
if (!file->settings.unwrapped_lines){
|
||||
render_cursor = file_compute_cursor(system, file, seek_wrapped_xy(0, scroll_y, 0), true);
|
||||
}
|
||||
|
@ -1226,8 +1226,8 @@ render_loaded_file_in_view(System_Functions *system, View *view, Models *models,
|
|||
params.virtual_white = file->settings.virtual_white;
|
||||
params.wrap_slashes = file->settings.wrap_indicator;
|
||||
|
||||
Buffer_Render_State state = {0};
|
||||
Buffer_Layout_Stop stop = {0};
|
||||
Buffer_Render_State state = {};
|
||||
Buffer_Layout_Stop stop = {};
|
||||
|
||||
f32 line_shift = 0.f;
|
||||
b32 do_wrap = false;
|
||||
|
@ -1274,7 +1274,7 @@ render_loaded_file_in_view(System_Functions *system, View *view, Models *models,
|
|||
}
|
||||
push_array(part, Buffer_Render_Item, item_count);
|
||||
|
||||
Range on_screen_range = {0};
|
||||
Range on_screen_range = {};
|
||||
on_screen_range.first = render_cursor.pos;
|
||||
on_screen_range.one_past_last = end_pos;
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ struct File_Viewing_Data{
|
|||
b32 show_whitespace;
|
||||
b32 file_locked;
|
||||
};
|
||||
global File_Viewing_Data null_file_viewing_data = {0};
|
||||
global File_Viewing_Data null_file_viewing_data = {};
|
||||
|
||||
struct View_Transient{
|
||||
struct View *next;
|
||||
|
|
|
@ -50,13 +50,13 @@ internal Input_Process_Result
|
|||
do_step_file_view(System_Functions *system, View *view, Models *models, i32_Rect rect, b32 is_active, f32 dt, GUI_Scroll_Vars scroll, i32 max_y){
|
||||
scroll.target_y = clamp(0, scroll.target_y, max_y);
|
||||
|
||||
Input_Process_Result result = {0};
|
||||
Input_Process_Result result = {};
|
||||
result.scroll = scroll;
|
||||
|
||||
i32 line_height = view->transient.line_height;
|
||||
|
||||
if (!view->transient.hide_file_bar){
|
||||
i32_Rect top_bar_rect = {0};
|
||||
i32_Rect top_bar_rect = {};
|
||||
top_bar_rect.x0 = rect.x0;
|
||||
top_bar_rect.y0 = rect.y0;
|
||||
top_bar_rect.x1 = rect.x1;
|
||||
|
@ -240,7 +240,7 @@ do_render_file_view(System_Functions *system, View *view, Models *models, GUI_Sc
|
|||
Font_Pointers font = system->font.get_pointers_by_id(font_id);
|
||||
|
||||
if (!view->transient.hide_file_bar){
|
||||
i32_Rect top_bar_rect = {0};
|
||||
i32_Rect top_bar_rect = {};
|
||||
top_bar_rect.x0 = rect.x0;
|
||||
top_bar_rect.y0 = rect.y0;
|
||||
top_bar_rect.x1 = rect.x1;
|
||||
|
@ -253,7 +253,7 @@ do_render_file_view(System_Functions *system, View *view, Models *models, GUI_Sc
|
|||
for (Query_Slot *slot = view->transient.query_set.used_slot;
|
||||
slot != 0;
|
||||
slot = slot->next, ++bar_count){
|
||||
i32_Rect query_bar_rect = {0};
|
||||
i32_Rect query_bar_rect = {};
|
||||
query_bar_rect.x0 = rect.x0;
|
||||
query_bar_rect.y0 = rect.y0;
|
||||
query_bar_rect.x1 = rect.x1;
|
||||
|
|
|
@ -53,7 +53,7 @@ working_set_extend_memory(Working_Set *working_set, Editing_File *new_space, i16
|
|||
|
||||
working_set->file_max += number_of_files;
|
||||
|
||||
Buffer_Slot_ID id = {0};
|
||||
Buffer_Slot_ID id = {};
|
||||
id.part[1] = high_part;
|
||||
|
||||
Editing_File *file_ptr = new_space;
|
||||
|
@ -191,7 +191,7 @@ working_set_init(Working_Set *working_set, Partition *partition, Heap *heap){
|
|||
inline void
|
||||
working_set__grow_if_needed(Table *table, Heap *heap, void *arg, Hash_Function *hash_func, Compare_Function *comp_func){
|
||||
if (table_at_capacity(table)){
|
||||
Table btable = {0};
|
||||
Table btable = {};
|
||||
i32 new_max = table->max * 2;
|
||||
i32 mem_size = table_required_mem_size(new_max, table->item_size);
|
||||
void *mem = heap_allocate(heap, mem_size);
|
||||
|
@ -456,7 +456,7 @@ buffer_bind_name_low_level(Heap *heap, Working_Set *working_set, Editing_File *f
|
|||
Assert(file->base_name.name.size == 0);
|
||||
Assert(file->unique_name.name.size == 0);
|
||||
|
||||
Editing_File_Name new_name = {0};
|
||||
Editing_File_Name new_name = {};
|
||||
new_name.name = make_fixed_width_string(new_name.name_);
|
||||
buffer_resolve_name_low_level(working_set, &new_name, name);
|
||||
|
||||
|
@ -560,7 +560,7 @@ buffer_bind_name(Models *models, Heap *heap, Partition *scratch,
|
|||
internal Editing_File*
|
||||
open_file(System_Functions *system, Models *models, String filename){
|
||||
Editing_File *file = 0;
|
||||
Editing_File_Name canon_name = {0};
|
||||
Editing_File_Name canon_name = {};
|
||||
|
||||
if (terminate_with_null(&filename) &&
|
||||
get_canon_name(system, filename, &canon_name)){
|
||||
|
|
|
@ -321,7 +321,7 @@ fm_init_system(){
|
|||
|
||||
internal Temp_Dir
|
||||
fm_pushdir(char *dir){
|
||||
Temp_Dir temp = {0};
|
||||
Temp_Dir temp = {};
|
||||
GetCurrentDirectoryA(sizeof(temp.dir), temp.dir);
|
||||
SetCurrentDirectoryA(dir);
|
||||
return(temp);
|
||||
|
|
|
@ -828,11 +828,11 @@ do_table_reduction(FSM_Tables *table, uint16_t state_count){
|
|||
static FSM_Tables
|
||||
generate_whitespace_skip_table(){
|
||||
uint8_t state_count = LSPP_count;
|
||||
FSM_Tables table = {0};
|
||||
FSM_Tables table = {};
|
||||
allocate_full_tables(&table, state_count);
|
||||
|
||||
int32_t i = 0;
|
||||
Whitespace_FSM wfsm = {0};
|
||||
Whitespace_FSM wfsm = {};
|
||||
Whitespace_FSM new_wfsm;
|
||||
for (uint16_t c = 0; c < 256; ++c){
|
||||
for (uint8_t state = 0; state < state_count; ++state){
|
||||
|
@ -850,12 +850,12 @@ generate_whitespace_skip_table(){
|
|||
|
||||
static FSM_Tables
|
||||
generate_table(u8_4tech state_count, FSM_Function *fsm_call){
|
||||
FSM_Tables table = {0};
|
||||
FSM_Tables table = {};
|
||||
allocate_full_tables(&table, state_count);
|
||||
|
||||
i32_4tech i = 0;
|
||||
Cpp_Lex_FSM fsm = {0};
|
||||
Cpp_Lex_FSM new_fsm = {0};
|
||||
Cpp_Lex_FSM fsm = {};
|
||||
Cpp_Lex_FSM new_fsm = {};
|
||||
for (uint16_t c = 0; c < 256; ++c){
|
||||
for (u8_4tech state = 0; state < state_count; ++state){
|
||||
fsm.state = state;
|
||||
|
@ -887,12 +887,12 @@ generate_table(u8_4tech state_count, FSM_Function *fsm_call){
|
|||
static FSM_Tables
|
||||
generate_fsm_table(uint8_t pp_state, bool32 ignore_string_delims){
|
||||
uint8_t state_count = LS_count;
|
||||
FSM_Tables table = {0};
|
||||
FSM_Tables table = {};
|
||||
allocate_full_tables(&table, state_count);
|
||||
|
||||
int32_t i = 0;
|
||||
Cpp_Lex_FSM fsm = {0};
|
||||
Cpp_Lex_FSM new_fsm = {0};
|
||||
Cpp_Lex_FSM fsm = {};
|
||||
Cpp_Lex_FSM new_fsm = {};
|
||||
for (uint16_t c = 0; c < 256; ++c){
|
||||
for (uint8_t state = 0; state < state_count; ++state){
|
||||
fsm.state = state;
|
||||
|
|
|
@ -101,7 +101,7 @@ struct Used_Links{
|
|||
i32 count, max;
|
||||
};
|
||||
|
||||
internal Item_Node null_item_node = {0};
|
||||
internal Item_Node null_item_node = {};
|
||||
|
||||
internal String
|
||||
str_start_end(char *data, i32 start, i32 end){
|
||||
|
@ -192,7 +192,7 @@ str_alloc(i32 cap){
|
|||
|
||||
internal Item_Set
|
||||
allocate_item_set(i32 count){
|
||||
Item_Set item_set = {0};
|
||||
Item_Set item_set = {};
|
||||
if (count > 0){
|
||||
item_set.items = fm_push_array(Item_Node, count);
|
||||
item_set.count = count;
|
||||
|
@ -203,7 +203,7 @@ allocate_item_set(i32 count){
|
|||
|
||||
internal String
|
||||
file_dump(char *filename){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
FILE *file = fopen(filename, "rb");
|
||||
|
||||
if (file){
|
||||
|
@ -225,7 +225,7 @@ file_dump(char *filename){
|
|||
|
||||
internal Parse
|
||||
meta_lex(char *filename){
|
||||
Parse result = {0};
|
||||
Parse result = {};
|
||||
result.code = file_dump(filename);
|
||||
if (result.code.str != 0){
|
||||
result.tokens = cpp_make_token_array(1024);
|
||||
|
@ -236,7 +236,7 @@ meta_lex(char *filename){
|
|||
|
||||
internal String
|
||||
get_first_line(String source){
|
||||
String line = {0};
|
||||
String line = {};
|
||||
i32 pos = find_s_char(source, 0, '\n');
|
||||
line = substr(source, 0, pos);
|
||||
return(line);
|
||||
|
@ -244,7 +244,7 @@ get_first_line(String source){
|
|||
|
||||
internal String
|
||||
get_next_line(String source, String line){
|
||||
String next = {0};
|
||||
String next = {};
|
||||
i32 pos = (i32)(line.str - source.str) + line.size;
|
||||
i32 start = 0;
|
||||
|
||||
|
@ -335,7 +335,7 @@ get_doc_string_from_prev(Parse_Context *context, String *doc_string){
|
|||
|
||||
internal String
|
||||
doc_parse_note(String source, i32 *pos){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
|
||||
i32 p = *pos;
|
||||
i32 start = p;
|
||||
|
@ -355,7 +355,7 @@ doc_parse_note(String source, i32 *pos){
|
|||
|
||||
internal String
|
||||
doc_parse_note_string(String source, i32 *pos){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
|
||||
Assert(source.str[*pos] == '(');
|
||||
|
||||
|
@ -389,7 +389,7 @@ doc_parse_note_string(String source, i32 *pos){
|
|||
|
||||
internal String
|
||||
doc_parse_parameter(String source, i32 *pos){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
|
||||
i32 p = *pos;
|
||||
i32 start = p;
|
||||
|
@ -411,7 +411,7 @@ doc_parse_parameter(String source, i32 *pos){
|
|||
|
||||
internal String
|
||||
doc_parse_last_parameter(String source, i32 *pos){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
|
||||
i32 p = *pos;
|
||||
i32 start = p;
|
||||
|
@ -528,7 +528,7 @@ struct_parse_member(Parse_Context *context, Item_Node *member){
|
|||
|
||||
Cpp_Token *token = get_token(context);
|
||||
|
||||
String doc_string = {0};
|
||||
String doc_string = {};
|
||||
get_doc_string_from_prev(context, &doc_string);
|
||||
|
||||
Cpp_Token *start_token = token;
|
||||
|
@ -540,7 +540,7 @@ struct_parse_member(Parse_Context *context, Item_Node *member){
|
|||
}
|
||||
|
||||
if (token){
|
||||
String name = {0};
|
||||
String name = {};
|
||||
Cpp_Token *token_j = 0;
|
||||
i32 nest_level = 0;
|
||||
|
||||
|
@ -639,7 +639,7 @@ struct_parse(i32 is_struct, Parse_Context *context, Item_Node *top_member){
|
|||
Cpp_Token *start_token = get_token(context);
|
||||
Cpp_Token *token = 0;
|
||||
|
||||
String doc_string = {0};
|
||||
String doc_string = {};
|
||||
get_doc_string_from_prev(context, &doc_string);
|
||||
|
||||
for (; (token = get_token(context)) != 0; get_next_token(context)){
|
||||
|
@ -657,12 +657,12 @@ struct_parse(i32 is_struct, Parse_Context *context, Item_Node *top_member){
|
|||
}
|
||||
}
|
||||
|
||||
String name = {0};
|
||||
String name = {};
|
||||
if (token_j != start_token){
|
||||
name = skip_chop_whitespace(get_lexeme(*token_j, context->data));
|
||||
}
|
||||
|
||||
String type = {0};
|
||||
String type = {};
|
||||
if (is_struct){
|
||||
type = make_lit_string("struct");
|
||||
}
|
||||
|
@ -718,7 +718,7 @@ typedef_parse(Parse_Context *context, Item_Node *item){
|
|||
i32 result = false;
|
||||
|
||||
Cpp_Token *token = get_token(context);
|
||||
String doc_string = {0};
|
||||
String doc_string = {};
|
||||
get_doc_string_from_prev(context, &doc_string);
|
||||
|
||||
Cpp_Token *start_token = token;
|
||||
|
@ -758,7 +758,7 @@ internal i32
|
|||
enum_parse(Parse_Context *context, Item_Node *item){
|
||||
i32 result = false;
|
||||
|
||||
String parent_doc_string = {0};
|
||||
String parent_doc_string = {};
|
||||
get_doc_string_from_prev(context, &parent_doc_string);
|
||||
|
||||
Cpp_Token *parent_start_token = get_token(context);
|
||||
|
@ -771,7 +771,7 @@ enum_parse(Parse_Context *context, Item_Node *item){
|
|||
}
|
||||
|
||||
if (token){
|
||||
String parent_name = {0};
|
||||
String parent_name = {};
|
||||
Cpp_Token *token_j = 0;
|
||||
|
||||
for (; (token_j = get_token(context)) != 0; get_prev_token(context)){
|
||||
|
@ -798,9 +798,9 @@ enum_parse(Parse_Context *context, Item_Node *item){
|
|||
break;
|
||||
}
|
||||
else if (token->type == CPP_TOKEN_IDENTIFIER){
|
||||
String doc_string = {0};
|
||||
String name = {0};
|
||||
String value = {0};
|
||||
String doc_string = {};
|
||||
String name = {};
|
||||
String value = {};
|
||||
get_doc_string_from_prev(context, &doc_string);
|
||||
|
||||
name = get_lexeme(*token, context->data);
|
||||
|
@ -866,7 +866,7 @@ enum_parse(Parse_Context *context, Item_Node *item){
|
|||
|
||||
internal Argument_Breakdown
|
||||
allocate_argument_breakdown(i32 count){
|
||||
Argument_Breakdown breakdown = {0};
|
||||
Argument_Breakdown breakdown = {};
|
||||
if (count > 0){
|
||||
breakdown.count = count;
|
||||
breakdown.args = fm_push_array(Argument, count);
|
||||
|
@ -970,7 +970,7 @@ function_get_doc(Parse_Context *context, char *data, String *doc_string){
|
|||
i32 result = false;
|
||||
|
||||
Cpp_Token *token = get_token(context);
|
||||
String lexeme = {0};
|
||||
String lexeme = {};
|
||||
|
||||
if (function_parse_goto_name(context)){
|
||||
if (token->type == CPP_TOKEN_IDENTIFIER){
|
||||
|
@ -1068,7 +1068,7 @@ internal i32
|
|||
function_parse(Parse_Context *context, Item_Node *item, String cpp_name){
|
||||
i32 result = false;
|
||||
|
||||
String doc_string = {0};
|
||||
String doc_string = {};
|
||||
Cpp_Token *token = get_token(context);
|
||||
|
||||
item->marker = get_lexeme(*token, context->data);
|
||||
|
@ -1125,7 +1125,7 @@ macro_parse(Parse_Context *context, Item_Node *item){
|
|||
Cpp_Token *doc_token = 0;
|
||||
Cpp_Token *args_start_token = 0;
|
||||
|
||||
String doc_string = {0};
|
||||
String doc_string = {};
|
||||
|
||||
if (macro_parse_check(context)){
|
||||
token = get_token(context);
|
||||
|
@ -1189,7 +1189,7 @@ macro_parse(Parse_Context *context, Item_Node *item){
|
|||
|
||||
internal Meta_Unit
|
||||
compile_meta_unit(char *code_directory, char **files, Meta_Keywords *meta_keywords, i32 key_count){
|
||||
Meta_Unit unit = {0};
|
||||
Meta_Unit unit = {};
|
||||
|
||||
i32 file_count = 0;
|
||||
for (char **file_ptr = files; *file_ptr; ++file_ptr, ++file_count);
|
||||
|
@ -1255,7 +1255,7 @@ compile_meta_unit(char *code_directory, char **files, Meta_Keywords *meta_keywor
|
|||
Parse_Context context_ = setup_parse_context(unit.parse[J]);
|
||||
Parse_Context *context = &context_;
|
||||
|
||||
String cpp_name = {0};
|
||||
String cpp_name = {};
|
||||
i32 has_cpp_name = 0;
|
||||
|
||||
for (; (token = get_token(context)) != 0; get_next_token(context)){
|
||||
|
|
|
@ -54,7 +54,8 @@ M(mouse_right_release) \
|
|||
M(mouse_wheel) \
|
||||
M(mouse_move) \
|
||||
M(animate) \
|
||||
M(view_activate) \
|
||||
M(click_activate_view) \
|
||||
M(click_deactivate_view) \
|
||||
M(f1) \
|
||||
M(f2) \
|
||||
M(f3) \
|
||||
|
@ -326,7 +327,7 @@ struct App_API{
|
|||
|
||||
internal App_API
|
||||
allocate_app_api(i32 count){
|
||||
App_API app_api = {0};
|
||||
App_API app_api = {};
|
||||
app_api.names = fm_push_array(App_API_Name, count);
|
||||
memset(app_api.names, 0, sizeof(App_API_Name)*count);
|
||||
return(app_api);
|
||||
|
@ -678,7 +679,7 @@ generate_remapping_code_and_data(){
|
|||
Temp temp = fm_begin_temp();
|
||||
|
||||
// Generate mapping array data structure
|
||||
Mapping_Array mappings_ = {0};
|
||||
Mapping_Array mappings_ = {};
|
||||
Mapping_Array *mappings = &mappings_;
|
||||
|
||||
begin_mapping(mappings, default, "The default 4coder bindings - typically good for Windows and Linux");
|
||||
|
@ -691,7 +692,7 @@ generate_remapping_code_and_data(){
|
|||
|
||||
bind(mappings, 'n', MDFR_CTRL, interactive_new);
|
||||
bind(mappings, 'o', MDFR_CTRL, interactive_open_or_new);
|
||||
bind(mappings, 'o', MDFR_ALT, open_in_other);
|
||||
bind(mappings, 'o', MDFR_ALT , open_in_other);
|
||||
bind(mappings, 'k', MDFR_CTRL, interactive_kill_buffer);
|
||||
bind(mappings, 'i', MDFR_CTRL, interactive_switch_buffer);
|
||||
bind(mappings, 'h', MDFR_CTRL, project_go_to_root_directory);
|
||||
|
@ -744,7 +745,7 @@ generate_remapping_code_and_data(){
|
|||
bind_vanilla_keys(mappings, MDFR_NONE, write_character);
|
||||
|
||||
bind(mappings, key_mouse_left, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(mappings, key_view_activate, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(mappings, key_click_activate_view, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(mappings, key_mouse_left_release, MDFR_NONE, click_set_cursor);
|
||||
bind(mappings, key_mouse_move, MDFR_NONE, click_set_cursor_if_lbutton);
|
||||
|
||||
|
@ -894,7 +895,6 @@ generate_remapping_code_and_data(){
|
|||
bind(mappings, key_page_down, MDFR_NONE, lister__move_down);
|
||||
bind(mappings, key_mouse_wheel , MDFR_NONE, lister__wheel_scroll);
|
||||
bind(mappings, key_mouse_left , MDFR_NONE, lister__mouse_press);
|
||||
bind(mappings, key_view_activate , MDFR_NONE, lister__mouse_press);
|
||||
bind(mappings, key_mouse_left_release, MDFR_NONE, lister__mouse_release);
|
||||
bind(mappings, key_mouse_move, MDFR_NONE, lister__repaint);
|
||||
bind(mappings, key_animate , MDFR_NONE, lister__repaint);
|
||||
|
@ -967,7 +967,7 @@ generate_remapping_code_and_data(){
|
|||
bind_vanilla_keys(mappings, MDFR_ALT, write_character);
|
||||
|
||||
bind(mappings, key_mouse_left, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(mappings, key_view_activate, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(mappings, key_click_activate_view, MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(mappings, key_mouse_left_release, MDFR_NONE, click_set_cursor);
|
||||
bind(mappings, key_mouse_move, MDFR_NONE, click_set_cursor_if_lbutton);
|
||||
|
||||
|
@ -1115,7 +1115,6 @@ generate_remapping_code_and_data(){
|
|||
bind(mappings, key_page_down, MDFR_NONE, lister__move_down);
|
||||
bind(mappings, key_mouse_wheel , MDFR_NONE, lister__wheel_scroll);
|
||||
bind(mappings, key_mouse_left , MDFR_NONE, lister__mouse_press);
|
||||
bind(mappings, key_view_activate , MDFR_NONE, click_set_cursor_and_mark);
|
||||
bind(mappings, key_mouse_left_release, MDFR_NONE, lister__mouse_release);
|
||||
bind(mappings, key_mouse_move, MDFR_NONE, lister__repaint);
|
||||
bind(mappings, key_animate , MDFR_NONE, lister__repaint);
|
||||
|
|
|
@ -191,7 +191,7 @@ interpret_render_buffer(Render_Target *t, Partition *growable_scratch){
|
|||
f32 x = glyph->pos.x;
|
||||
f32 y = glyph->pos.y;
|
||||
|
||||
f32_Rect xy = {0};
|
||||
f32_Rect xy = {};
|
||||
xy.x0 = x + bounds.xoff;
|
||||
xy.y0 = y + bounds.yoff;
|
||||
xy.x1 = x + bounds.xoff2;
|
||||
|
@ -201,7 +201,7 @@ interpret_render_buffer(Render_Target *t, Partition *growable_scratch){
|
|||
f32 unit_u = 1.f/tex_width;
|
||||
f32 unit_v = 1.f/tex_height;
|
||||
|
||||
f32_Rect uv = {0};
|
||||
f32_Rect uv = {};
|
||||
uv.x0 = bounds.x0*unit_u;
|
||||
uv.y0 = bounds.y0*unit_v;
|
||||
uv.x1 = bounds.x1*unit_u;
|
||||
|
|
|
@ -79,7 +79,7 @@ load_custom_code(){
|
|||
LoadLibrary_BinaryDirectory,
|
||||
};
|
||||
|
||||
char *custom_files[3] = {0};
|
||||
char *custom_files[3] = {};
|
||||
if (plat_settings.custom_dll != 0){
|
||||
custom_files[0] = plat_settings.custom_dll;
|
||||
if (!plat_settings.custom_dll_is_strict){
|
||||
|
|
|
@ -128,9 +128,9 @@ Sys_Get_File_Change_Sig(system_get_file_change){
|
|||
|
||||
internal File_Data
|
||||
sysshared_load_file(char *filename){
|
||||
File_Data result = {0};
|
||||
File_Data result = {};
|
||||
|
||||
Plat_Handle handle = {0};
|
||||
Plat_Handle handle = {};
|
||||
if (system_load_handle(filename, &handle)){
|
||||
u32 size = system_load_size(handle);
|
||||
|
||||
|
@ -193,10 +193,10 @@ sysshared_partition_grow(Partition *part, i32 new_size){
|
|||
|
||||
internal void*
|
||||
sysshared_push_block(Partition *part, i32 size){
|
||||
void *result = push_block(part, size);
|
||||
void *result = push_array(part, i8, size);
|
||||
if (result == 0){
|
||||
sysshared_partition_grow(part, size + part->max);
|
||||
result = push_block(part, size);
|
||||
result = push_array(part, i8, size);
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ struct File_Data{
|
|||
u32 size;
|
||||
b32 got_file;
|
||||
};
|
||||
global File_Data null_file_data = {0};
|
||||
global File_Data null_file_data = {};
|
||||
|
||||
#define Sys_File_Can_Be_Made_Sig(name) b32 name(u8 *filename)
|
||||
internal Sys_File_Can_Be_Made_Sig(system_file_can_be_made);
|
||||
|
|
|
@ -258,7 +258,7 @@ Sys_Post_Job_Sig(system_post_job){
|
|||
queue->max = new_max;
|
||||
}
|
||||
|
||||
Full_Job_Data full_job = {0};
|
||||
Full_Job_Data full_job = {};
|
||||
full_job.job = job;
|
||||
full_job.running_thread = THREAD_NOT_ASSIGNED;
|
||||
full_job.id = result;
|
||||
|
|
|
@ -466,7 +466,7 @@ Sys_Font_Path(name, parameters){
|
|||
fc_config = FcInitLoadConfigAndFonts();
|
||||
}
|
||||
|
||||
Font_Path path = {0};
|
||||
Font_Path path = {};
|
||||
|
||||
FcPattern *pattern_regular = FcPatternBuild(
|
||||
0,
|
||||
|
@ -833,7 +833,7 @@ struct glx_config_result{
|
|||
internal glx_config_result
|
||||
ChooseGLXConfig(Display *XDisplay, int XScreenIndex)
|
||||
{
|
||||
glx_config_result Result = {0};
|
||||
glx_config_result Result = {};
|
||||
|
||||
int DesiredAttributes[] = {
|
||||
GLX_X_RENDERABLE , True,
|
||||
|
@ -881,7 +881,7 @@ struct Init_Input_Result{
|
|||
XIMStyle best_style;
|
||||
XIC xic;
|
||||
};
|
||||
static Init_Input_Result null_init_input_result = {0};
|
||||
static Init_Input_Result null_init_input_result = {};
|
||||
|
||||
internal Init_Input_Result
|
||||
LinuxInputInit(Display *dpy, Window XWindow){
|
||||
|
@ -1385,7 +1385,7 @@ LinuxHandleX11Events(void)
|
|||
u32 key_no_caps = key;
|
||||
|
||||
if (mods[MDFR_CAPS_INDEX] && status == XLookupBoth && event.xkey.keycode){
|
||||
u8 buff_no_caps[32] = {0};
|
||||
u8 buff_no_caps[32] = {};
|
||||
event.xkey.state &= ~(LockMask);
|
||||
|
||||
Xutf8LookupString(linuxvars.input_context, &event.xkey, (char*)buff_no_caps, sizeof(buff_no_caps) - 1, NULL, &status);
|
||||
|
@ -2087,7 +2087,7 @@ main(int argc, char **argv){
|
|||
|
||||
// NOTE(allen): Application Core Update
|
||||
target.buffer.pos = 0;
|
||||
Application_Step_Result result = {0};
|
||||
Application_Step_Result result = {};
|
||||
if (app.step != 0){
|
||||
result = app.step(&sysfunc, &target, &memory_vars, &frame_input);
|
||||
}
|
||||
|
|
|
@ -358,7 +358,7 @@ Sys_Font_Path(name, parameters){
|
|||
|
||||
OSX_Font_Match match = osx_get_font_match(name, pt_size, italic, bold);
|
||||
|
||||
Font_Path path = {0};
|
||||
Font_Path path = {};
|
||||
Partition *part = &shared_vars.font_scratch;
|
||||
path.temp = begin_temp_memory(part);
|
||||
|
||||
|
@ -513,7 +513,7 @@ osx_character_input(u32 code, OSX_Keyboard_Modifiers modifier_flags){
|
|||
case 0xF713: c = key_f16; break;
|
||||
}
|
||||
|
||||
b8 mods[MDFR_INDEX_COUNT] = {0};
|
||||
b8 mods[MDFR_INDEX_COUNT] = {};
|
||||
|
||||
if (modifier_flags.shift) mods[MDFR_SHIFT_INDEX] = true;
|
||||
if (modifier_flags.control) mods[MDFR_CONTROL_INDEX] = true;
|
||||
|
@ -761,7 +761,7 @@ osx_init(){
|
|||
|
||||
|
||||
|
||||
String clipboard_string = {0};
|
||||
String clipboard_string = {};
|
||||
if (osx_objc.has_clipboard_item){
|
||||
clipboard_string = make_string(osx_objc.clipboard_data, osx_objc.clipboard_size);
|
||||
}
|
||||
|
|
|
@ -96,7 +96,7 @@ static DISPLINK_SIG(osx_display_link);
|
|||
is_dead_key = true;
|
||||
}
|
||||
|
||||
OSX_Keyboard_Modifiers mods = {0};
|
||||
OSX_Keyboard_Modifiers mods = {};
|
||||
NSEventModifierFlags flags = [NSEvent modifierFlags];
|
||||
mods.shift = ((flags & NSEventModifierFlagShift) != 0);
|
||||
mods.command = ((flags & NSEventModifierFlagCommand) != 0);
|
||||
|
@ -334,7 +334,7 @@ typedef struct{
|
|||
volatile i64 lock;
|
||||
} File_Change_Queue;
|
||||
|
||||
static File_Change_Queue file_queue = {0};
|
||||
static File_Change_Queue file_queue = {};
|
||||
|
||||
File_Change_Node*
|
||||
file_change_node(char *name){
|
||||
|
@ -376,7 +376,7 @@ typedef struct{
|
|||
|
||||
File_Watching_Handle
|
||||
schedule_file_watching(char *f){
|
||||
File_Watching_Handle handle = {0};
|
||||
File_Watching_Handle handle = {};
|
||||
|
||||
CFStringRef arg = CFStringCreateWithCString(0, f, kCFStringEncodingUTF8);
|
||||
|
||||
|
@ -416,7 +416,7 @@ typedef struct File_Change_Table{
|
|||
i32 size;
|
||||
} File_Change_Table;
|
||||
|
||||
static File_Change_Table file_change_table = {0};
|
||||
static File_Change_Table file_change_table = {};
|
||||
|
||||
void*
|
||||
osx_file_name_prefixed_length(char *name){
|
||||
|
@ -774,7 +774,7 @@ osx_get_font_match(char *name, i32 pt_size, b32 italic, b32 bold){
|
|||
used_base_file = true;
|
||||
}
|
||||
|
||||
OSX_Font_Match match = {0};
|
||||
OSX_Font_Match match = {};
|
||||
if (font != nil){
|
||||
NSString *path = get_font_path(font);
|
||||
char *path_c = 0;
|
||||
|
@ -798,7 +798,7 @@ osx_list_loadable_fonts(void){
|
|||
|
||||
NSArray<NSString*> *fonts = [font_manager availableFontFamilies];
|
||||
|
||||
OSX_Loadable_Fonts result = {0};
|
||||
OSX_Loadable_Fonts result = {};
|
||||
NSUInteger count_u = [fonts count];
|
||||
int count = (int)count_u;
|
||||
|
||||
|
|
|
@ -329,7 +329,7 @@ Sys_Load_Size_Sig(system_load_size){
|
|||
u32 result = 0;
|
||||
|
||||
i32 fd = *(i32*)&handle;
|
||||
struct stat st = {0};
|
||||
struct stat st = {};
|
||||
|
||||
if (fstat(fd, &st) == -1){
|
||||
LOGF("unable to stat a file\n");
|
||||
|
|
|
@ -84,7 +84,7 @@ struct Control_Keys{
|
|||
b8 l_alt;
|
||||
b8 r_alt;
|
||||
};
|
||||
global Control_Keys null_control_keys = {0};
|
||||
global Control_Keys null_control_keys = {};
|
||||
|
||||
struct Win32_Input_Chunk_Transient{
|
||||
Key_Input_Data key_data;
|
||||
|
@ -94,7 +94,7 @@ struct Win32_Input_Chunk_Transient{
|
|||
i8 mouse_wheel;
|
||||
b8 trying_to_kill;
|
||||
};
|
||||
global Win32_Input_Chunk_Transient null_input_chunk_transient = {0};
|
||||
global Win32_Input_Chunk_Transient null_input_chunk_transient = {};
|
||||
|
||||
struct Win32_Input_Chunk_Persistent{
|
||||
i32 mouse_x, mouse_y;
|
||||
|
@ -207,7 +207,7 @@ handle_type(Plat_Handle h){
|
|||
|
||||
internal Plat_Handle
|
||||
handle_type(HANDLE h){
|
||||
Plat_Handle result = {0};
|
||||
Plat_Handle result = {};
|
||||
memcpy(&result, &h, sizeof(h));
|
||||
return(result);
|
||||
}
|
||||
|
@ -563,7 +563,7 @@ Sys_Font_Path_Not_Used;
|
|||
|
||||
internal
|
||||
Sys_Font_Data(name, parameters){
|
||||
Font_Raw_Data data = {0};
|
||||
Font_Raw_Data data = {};
|
||||
|
||||
int weight = FW_REGULAR;
|
||||
if (parameters->bold){
|
||||
|
@ -678,11 +678,11 @@ internal void
|
|||
win32_get_loadable_fonts(Partition *part, Font_Setup_List *list){
|
||||
HDC hdc= GetDC(0);
|
||||
|
||||
LOGFONT log_font = {0};
|
||||
LOGFONT log_font = {};
|
||||
log_font.lfCharSet = ANSI_CHARSET;
|
||||
log_font.lfFaceName[0] = 0;
|
||||
|
||||
Win32_Font_Enum p = {0};
|
||||
Win32_Font_Enum p = {};
|
||||
p.part = part;
|
||||
p.list = list;
|
||||
|
||||
|
@ -762,7 +762,7 @@ win32_init_gl(HDC hdc){
|
|||
#define GLInitFail(s) system_error_box(FNLN "\nOpenGL init fail - " s )
|
||||
|
||||
// Init First Context
|
||||
WNDCLASSA wglclass = {0};
|
||||
WNDCLASSA wglclass = {};
|
||||
wglclass.lpfnWndProc = DefWindowProcA;
|
||||
wglclass.hInstance = GetModuleHandle(0);
|
||||
wglclass.lpszClassName = "4ed-wgl-loader";
|
||||
|
@ -777,7 +777,7 @@ win32_init_gl(HDC hdc){
|
|||
|
||||
HDC hwgldc = GetDC(hwglwnd);
|
||||
|
||||
PIXELFORMATDESCRIPTOR format = {0};
|
||||
PIXELFORMATDESCRIPTOR format = {};
|
||||
format.nSize = sizeof(format);
|
||||
format.nVersion = 1;
|
||||
//format.dwFlags = PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER;
|
||||
|
@ -1242,7 +1242,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS
|
|||
// Window and GL Initialization
|
||||
//
|
||||
|
||||
WNDCLASS window_class = {0};
|
||||
WNDCLASS window_class = {};
|
||||
window_class.style = CS_HREDRAW|CS_VREDRAW;
|
||||
window_class.lpfnWndProc = (WNDPROC)(win32_proc);
|
||||
window_class.hInstance = hInstance;
|
||||
|
@ -1253,7 +1253,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS
|
|||
exit(1);
|
||||
}
|
||||
|
||||
RECT window_rect = {0};
|
||||
RECT window_rect = {};
|
||||
if (plat_settings.set_window_size){
|
||||
window_rect.right = plat_settings.window_w;
|
||||
window_rect.bottom = plat_settings.window_h;
|
||||
|
@ -1530,7 +1530,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS
|
|||
|
||||
input_chunk.pers.control_keys[MDFR_CAPS_INDEX] = GetKeyState(VK_CAPITAL) & 0x1;
|
||||
|
||||
Application_Step_Input input = {0};
|
||||
Application_Step_Input input = {};
|
||||
|
||||
input.first_step = win32vars.first;
|
||||
input.dt = frame_useconds/1000000.f;
|
||||
|
@ -1588,7 +1588,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS
|
|||
|
||||
// NOTE(allen): Application Core Update
|
||||
target.buffer.pos = 0;
|
||||
Application_Step_Result result = {0};
|
||||
Application_Step_Result result = {};
|
||||
if (app.step != 0){
|
||||
result = app.step(&sysfunc, &target, &memory_vars, &input);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ struct Win32_Directory_Listener{
|
|||
HANDLE dir;
|
||||
i32 user_count;
|
||||
};
|
||||
global_const OVERLAPPED null_overlapped = {0};
|
||||
global_const OVERLAPPED null_overlapped = {};
|
||||
|
||||
struct Win32_Directory_Listener_Node{
|
||||
DLL_Node node;
|
||||
|
@ -135,7 +135,7 @@ add_listener(File_Track_System *system, Partition *scratch, u8 *filename){
|
|||
HANDLE dir = CreateFile_utf8(dir_name, FILE_LIST_DIRECTORY, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, 0);
|
||||
|
||||
if (dir != INVALID_HANDLE_VALUE){
|
||||
BY_HANDLE_FILE_INFORMATION dir_info = {0};
|
||||
BY_HANDLE_FILE_INFORMATION dir_info = {};
|
||||
DWORD getinfo_result = GetFileInformationByHandle(dir, &dir_info);
|
||||
|
||||
if (getinfo_result){
|
||||
|
@ -217,7 +217,7 @@ remove_listener(File_Track_System *system, Partition *scratch, u8 *filename){
|
|||
HANDLE dir = CreateFile_utf8(dir_name, FILE_LIST_DIRECTORY, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, 0);
|
||||
|
||||
if (dir != INVALID_HANDLE_VALUE){
|
||||
BY_HANDLE_FILE_INFORMATION dir_info = {0};
|
||||
BY_HANDLE_FILE_INFORMATION dir_info = {};
|
||||
DWORD getinfo_result = GetFileInformationByHandle(dir, &dir_info);
|
||||
|
||||
if (getinfo_result){
|
||||
|
@ -297,7 +297,7 @@ get_change_event(File_Track_System *system, Partition *scratch, u8 *buffer, i32
|
|||
|
||||
local_persist i32 has_buffered_event = 0;
|
||||
local_persist DWORD offset = 0;
|
||||
local_persist Win32_Directory_Listener listener = {0};
|
||||
local_persist Win32_Directory_Listener listener = {};
|
||||
|
||||
EnterCriticalSection(&vars->table_lock);
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
internal Win32_UTF16
|
||||
input_8_to_16(Partition *scratch, u8 *in){
|
||||
Win32_UTF16 r = {0};
|
||||
Win32_UTF16 r = {};
|
||||
|
||||
u32 utf8_len = 0;
|
||||
for (;in[utf8_len];++utf8_len);
|
||||
|
|
|
@ -35,7 +35,7 @@ struct Enriched_Text{
|
|||
|
||||
internal Enriched_Text
|
||||
load_enriched_text(char *directory, char *filename){
|
||||
Enriched_Text result = {0};
|
||||
Enriched_Text result = {};
|
||||
char *fname = fm_str(directory, "/", filename);
|
||||
result.fname = str_alloc(str_size(fname) + 1);
|
||||
fm_align();
|
||||
|
@ -68,7 +68,7 @@ get_mangle_rule(String mangle){
|
|||
|
||||
internal String
|
||||
apply_mangle_rule(String name, u32 mangle_rule){
|
||||
String result = {0};
|
||||
String result = {};
|
||||
switch (mangle_rule){
|
||||
case MangleRule_MacroSig:
|
||||
{
|
||||
|
@ -154,7 +154,7 @@ struct Document_Item{
|
|||
} include;
|
||||
};
|
||||
};
|
||||
global Document_Item null_document_item = {0};
|
||||
global Document_Item null_document_item = {};
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
|
@ -235,7 +235,7 @@ struct Abstract_Item{
|
|||
// Meta parse members
|
||||
Meta_Unit *unit;
|
||||
};
|
||||
global Abstract_Item null_abstract_item = {0};
|
||||
global Abstract_Item null_abstract_item = {};
|
||||
|
||||
internal Abstract_Item*
|
||||
get_item_by_name(Basic_List list, String name){
|
||||
|
@ -271,7 +271,7 @@ struct Abstract_Item_Array{
|
|||
|
||||
internal Abstract_Item_Array
|
||||
get_abstract_item_array(Basic_List *list){
|
||||
Abstract_Item_Array result = {0};
|
||||
Abstract_Item_Array result = {};
|
||||
|
||||
result.items = (Abstract_Item**)fm_push_array(Abstract_Item*, list->count);
|
||||
result.count = list->count;
|
||||
|
@ -303,7 +303,7 @@ struct Document_System{
|
|||
|
||||
internal Document_System
|
||||
create_document_system(char *code_dir, char *asset_dir, char *src_dir){
|
||||
Document_System system = {0};
|
||||
Document_System system = {};
|
||||
system.code_dir = code_dir;
|
||||
system.asset_dir = asset_dir;
|
||||
system.src_dir = src_dir;
|
||||
|
@ -434,7 +434,7 @@ struct Document_Builder{
|
|||
|
||||
internal Document_Builder
|
||||
begin_document_description(Document_System *system, char *title, char *name, b32 show_title){
|
||||
Document_Builder builder = {0};
|
||||
Document_Builder builder = {};
|
||||
Abstract_Item *doc = create_abstract_item(&system->doc_list, name);
|
||||
if (doc != 0){
|
||||
builder.doc = doc;
|
||||
|
@ -753,9 +753,9 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
|
||||
case Cmd_Section:
|
||||
{
|
||||
String body_text = {0};
|
||||
String body_text = {};
|
||||
if (extract_command_body(l, &i, &body_text)){
|
||||
String extra_text = {0};
|
||||
String extra_text = {};
|
||||
extract_command_body(l, &i, &extra_text);
|
||||
|
||||
char *title = get_null_terminated_version(body_text);
|
||||
|
@ -770,7 +770,7 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
|
||||
case Cmd_Style:
|
||||
{
|
||||
String body_text = {0};
|
||||
String body_text = {};
|
||||
if (extract_command_body(l, &i, &body_text)){
|
||||
begin_style(&builder, body_text);
|
||||
}
|
||||
|
@ -795,7 +795,7 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
|
||||
case Cmd_Link:
|
||||
{
|
||||
String body_text = {0};
|
||||
String body_text = {};
|
||||
if (extract_command_body(l, &i, &body_text)){
|
||||
begin_link(&builder, body_text);
|
||||
}
|
||||
|
@ -807,7 +807,7 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
// TODO(allen): upgrade this bs
|
||||
case Cmd_DocumentLink:
|
||||
{
|
||||
String body_text = {0};
|
||||
String body_text = {};
|
||||
if (extract_command_body(l, &i, &body_text)){
|
||||
add_document_link(&builder, body_text);
|
||||
}
|
||||
|
@ -818,9 +818,9 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
|
||||
case Cmd_Image:
|
||||
{
|
||||
String body_text = {0};
|
||||
String body_text = {};
|
||||
if (extract_command_body(l, &i, &body_text)){
|
||||
String size_parameter = {0};
|
||||
String size_parameter = {};
|
||||
extract_command_body(l, &i, &size_parameter);
|
||||
add_image(&builder, body_text, size_parameter);
|
||||
}
|
||||
|
@ -831,7 +831,7 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
|
||||
case Cmd_Video:
|
||||
{
|
||||
String body_text = {0};
|
||||
String body_text = {};
|
||||
if (extract_command_body(l, &i, &body_text)){
|
||||
add_video(&builder, body_text);
|
||||
}
|
||||
|
@ -857,7 +857,7 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
|
||||
case Cmd_Include:
|
||||
{
|
||||
String body_text = {0};
|
||||
String body_text = {};
|
||||
if (extract_command_body(l, &i, &body_text)){
|
||||
add_include(doc_system, &builder, body_text);
|
||||
}
|
||||
|
@ -868,8 +868,8 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
|
||||
case Cmd_MetaParse:
|
||||
{
|
||||
String name = {0};
|
||||
String file = {0};
|
||||
String name = {};
|
||||
String file = {};
|
||||
if (extract_command_body(l, &i, &name)){
|
||||
if (extract_command_body(l, &i, &file)){
|
||||
u32 result = create_meta_unit(doc_system, name, file);
|
||||
|
@ -893,9 +893,9 @@ make_document_from_text(Document_System *doc_system, char *title, char *name, En
|
|||
case Cmd_DocList:
|
||||
case Cmd_DocFull:
|
||||
{
|
||||
String name = {0};
|
||||
String name = {};
|
||||
if (extract_command_body(l, &i, &name)){
|
||||
String mangle = {0};
|
||||
String mangle = {};
|
||||
extract_command_body(l, &i, &mangle);
|
||||
|
||||
u32 mangle_rule = MangleRule_None;
|
||||
|
@ -953,7 +953,7 @@ struct Unresolved_Include_Array{
|
|||
|
||||
internal Unresolved_Include_Array
|
||||
get_unresolved_includes(Document_System *doc_system){
|
||||
Unresolved_Include_Array result = {0};
|
||||
Unresolved_Include_Array result = {};
|
||||
|
||||
Basic_List *list = &doc_system->unresolved_includes;
|
||||
result.items = (Document_Item**)fm_push_array(Document_Item*, list->count);
|
||||
|
@ -1460,8 +1460,8 @@ global String doc_chunk_headers[] = {
|
|||
|
||||
internal String
|
||||
get_next_doc_chunk(String source, String prev_chunk, Doc_Chunk_Type *type){
|
||||
String chunk = {0};
|
||||
String word = {0};
|
||||
String chunk = {};
|
||||
String word = {};
|
||||
i32 pos = source.size;
|
||||
i32 word_index = 0;
|
||||
Doc_Chunk_Type t = DocChunk_PlainText;
|
||||
|
@ -1604,7 +1604,7 @@ print_struct_docs(String *out, Item_Node *member){
|
|||
print_struct_docs(out, member_iter);
|
||||
}
|
||||
else{
|
||||
Documentation doc = {0};
|
||||
Documentation doc = {};
|
||||
perform_doc_parse(member_iter->doc_string, &doc);
|
||||
|
||||
append(out, "<div>");
|
||||
|
@ -1648,7 +1648,7 @@ print_function_docs(String *out, String name, String doc_string){
|
|||
|
||||
Temp temp = fm_begin_temp();
|
||||
|
||||
Documentation doc = {0};
|
||||
Documentation doc = {};
|
||||
|
||||
perform_doc_parse(doc_string, &doc);
|
||||
|
||||
|
@ -1767,7 +1767,7 @@ print_item_html(String *out, Used_Links *used, Item_Node *item, char *id_postfix
|
|||
|
||||
// NOTE(allen): Descriptive section
|
||||
String doc_string = item->doc_string;
|
||||
Documentation doc = {0};
|
||||
Documentation doc = {};
|
||||
perform_doc_parse(doc_string, &doc);
|
||||
|
||||
String main_doc = doc.main_doc;
|
||||
|
@ -1798,7 +1798,7 @@ print_item_html(String *out, Used_Links *used, Item_Node *item, char *id_postfix
|
|||
|
||||
// NOTE(allen): Descriptive section
|
||||
String doc_string = item->doc_string;
|
||||
Documentation doc = {0};
|
||||
Documentation doc = {};
|
||||
perform_doc_parse(doc_string, &doc);
|
||||
|
||||
String main_doc = doc.main_doc;
|
||||
|
@ -1819,7 +1819,7 @@ print_item_html(String *out, Used_Links *used, Item_Node *item, char *id_postfix
|
|||
for (Item_Node *member = item->first_child;
|
||||
member;
|
||||
member = member->next_sibling){
|
||||
Documentation doc = {0};
|
||||
Documentation doc = {};
|
||||
perform_doc_parse(member->doc_string, &doc);
|
||||
|
||||
append(out, "<div>");
|
||||
|
@ -1876,7 +1876,7 @@ print_item_html(String *out, Used_Links *used, Item_Node *item, char *id_postfix
|
|||
|
||||
// NOTE(allen): Descriptive section
|
||||
{
|
||||
Documentation doc = {0};
|
||||
Documentation doc = {};
|
||||
perform_doc_parse(doc_string, &doc);
|
||||
|
||||
String main_doc = doc.main_doc;
|
||||
|
@ -1973,7 +1973,7 @@ struct Document_Output_System{
|
|||
|
||||
internal Document_Output_System
|
||||
make_output_system(String *out, Document_System *doc_system, Used_Links *used_links, Section_Counter *section_counter, Include_Stack *inc_stack){
|
||||
Document_Output_System sys = {0};
|
||||
Document_Output_System sys = {};
|
||||
sys.out = out;
|
||||
sys.doc_system = doc_system;
|
||||
sys.used_links = used_links;
|
||||
|
@ -2239,7 +2239,7 @@ generate_item_html(Document_Output_System sys, Document_Item *item){
|
|||
|
||||
if (duplicate){
|
||||
String error = make_lit_string("recursive inclusion, halted here");
|
||||
Document_Item temp_item = {0};
|
||||
Document_Item temp_item = {};
|
||||
temp_item.type = Doc_Error;
|
||||
set_item_string(&temp_item.string.string, error);
|
||||
generate_item_html(sys, &temp_item);
|
||||
|
@ -2265,13 +2265,13 @@ internal void
|
|||
generate_document_html(String *out, Document_System *doc_system, Abstract_Item *doc){
|
||||
Assert(doc->root_item != 0);
|
||||
|
||||
Used_Links used_links = {0};
|
||||
Used_Links used_links = {};
|
||||
init_used_links(&used_links, 4000);
|
||||
|
||||
Section_Counter section_counter = {0};
|
||||
Section_Counter section_counter = {};
|
||||
section_counter.counter[section_counter.nest_level] = 1;
|
||||
|
||||
Include_Stack inc_stack = {0};
|
||||
Include_Stack inc_stack = {};
|
||||
|
||||
Document_Output_System sys = make_output_system(out, doc_system, &used_links, §ion_counter, &inc_stack);
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ The following commands only apply in files where the lexer (syntax highlighting)
|
|||
\ITEM \STYLE{code} <alt i> \END Surround the range between the cursor and mark with an '#if 0' and an '#endif'
|
||||
\ITEM \STYLE{code} <alt 1> \END Reads a filename from surrounding '"' characters and attempts to open the corresponding file.
|
||||
\ITEM \STYLE{code} <alt 2> \END If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.
|
||||
\ITEM \STYLE{code} <ctrl 0> \END At the cursor, insert a ' = {0};'.
|
||||
\ITEM \STYLE{code} <ctrl 0> \END At the cursor, insert a ' = {};'.
|
||||
\END
|
||||
\END
|
||||
\SECTION{default-lister-ui-map}
|
||||
|
@ -347,7 +347,7 @@ The following commands only apply in files where the lexer (syntax highlighting)
|
|||
\ITEM \STYLE{code} <ctrl i> \END Surround the range between the cursor and mark with an '#if 0' and an '#endif'
|
||||
\ITEM \STYLE{code} <ctrl 1> \END Reads a filename from surrounding '"' characters and attempts to open the corresponding file.
|
||||
\ITEM \STYLE{code} <ctrl 2> \END If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.
|
||||
\ITEM \STYLE{code} <cmnd 0> \END At the cursor, insert a ' = {0};'.
|
||||
\ITEM \STYLE{code} <cmnd 0> \END At the cursor, insert a ' = {};'.
|
||||
\END
|
||||
\END
|
||||
\SECTION{default-lister-ui-map}
|
||||
|
|
|
@ -96,7 +96,7 @@ save_build_number(char *file_name, i32 major, i32 minor, i32 build){
|
|||
|
||||
internal void
|
||||
print_function_body_code(String *out, Parse_Context *context, i32 start){
|
||||
String pstr = {0}, lexeme = {0};
|
||||
String pstr = {}, lexeme = {};
|
||||
Cpp_Token *token = 0;
|
||||
|
||||
i32 do_print = 0;
|
||||
|
@ -223,7 +223,7 @@ int main(){
|
|||
|
||||
append(&out, "*/\n");
|
||||
|
||||
String pstr = {0};
|
||||
String pstr = {};
|
||||
i32 do_whitespace_print = true;
|
||||
|
||||
for(;(token = get_next_token(&pcontext)) != 0;){
|
||||
|
|
|
@ -42,7 +42,7 @@ typedef struct String{
|
|||
i32_4tech memory_size;
|
||||
} String;
|
||||
|
||||
static String null_string = {0};
|
||||
static String null_string = {};
|
||||
#endif
|
||||
|
||||
FSTRING_DECLS
|
||||
|
@ -277,7 +277,7 @@ skip_whitespace(String str)
|
|||
/* DOC(This call creates a substring that starts with the first non-whitespace character of str.
|
||||
Like other substr calls, the new string uses the underlying memory and so should usually be
|
||||
considered immutable.) DOC_SEE(substr) */{
|
||||
String result = {0};
|
||||
String result = {};
|
||||
i32_4tech i = 0;
|
||||
for (; i < str.size && char_is_whitespace(str.str[i]); ++i);
|
||||
result = substr(str, i, str.size - i);
|
||||
|
@ -290,7 +290,7 @@ skip_whitespace_measure(String str, i32_4tech *skip_length)
|
|||
/* DOC(This call creates a substring that starts with the first non-whitespace character of str.
|
||||
Like other substr calls, the new string uses the underlying memory and so should usually be
|
||||
considered immutable.) DOC_SEE(substr) */{
|
||||
String result = {0};
|
||||
String result = {};
|
||||
i32_4tech i = 0;
|
||||
for (; i < str.size && char_is_whitespace(str.str[i]); ++i);
|
||||
result = substr(str, i, str.size - i);
|
||||
|
@ -303,7 +303,7 @@ chop_whitespace(String str)
|
|||
/* DOC(This call creates a substring that ends with the last non-whitespace character of str.
|
||||
Like other substr calls, the new string uses the underlying memory and so should usually be
|
||||
considered immutable.) DOC_SEE(substr) */{
|
||||
String result = {0};
|
||||
String result = {};
|
||||
i32_4tech i = str.size;
|
||||
for (; i > 0 && char_is_whitespace(str.str[i-1]); --i);
|
||||
result = substr(str, 0, i);
|
||||
|
@ -1674,7 +1674,7 @@ typedef struct Float_To_Str_Variables{
|
|||
|
||||
static Float_To_Str_Variables
|
||||
get_float_vars(float x){
|
||||
Float_To_Str_Variables vars = {0};
|
||||
Float_To_Str_Variables vars = {};
|
||||
|
||||
if (x < 0){
|
||||
vars.negative = 1;
|
||||
|
@ -2042,7 +2042,7 @@ DOC_RETURN(The returned value is the first 'double line' in the source string.)
|
|||
DOC(A 'double line' is a string of characters delimited by two new line characters. This call begins an iteration over all the double lines in the given source string.)
|
||||
DOC_SEE(get_next_double_line)
|
||||
*/{
|
||||
String line = {0};
|
||||
String line = {};
|
||||
i32_4tech pos0 = find_substr_s(source, 0, make_lit_string("\n\n"));
|
||||
i32_4tech pos1 = find_substr_s(source, 0, make_lit_string("\r\n\r\n"));
|
||||
if (pos1 < pos0){
|
||||
|
@ -2059,7 +2059,7 @@ DOC_PARAM(line, the value returned from the previous call of get_first_double_li
|
|||
DOC_RETURN(The returned value is the first 'double line' in the source string.)
|
||||
DOC_SEE(get_first_double_line)
|
||||
*/{
|
||||
String next = {0};
|
||||
String next = {};
|
||||
i32_4tech pos = (i32_4tech)(line.str - source.str) + line.size;
|
||||
i32_4tech start = 0, pos0 = 0, pos1 = 0;
|
||||
|
||||
|
@ -2088,7 +2088,7 @@ DOC_RETURN(The returned value is the first 'word' in the source string.)
|
|||
DOC_SEE(get_first_word)
|
||||
*/{
|
||||
|
||||
String word = {0};
|
||||
String word = {};
|
||||
i32_4tech pos0 = (i32_4tech)(prev_word.str - source.str) + prev_word.size;
|
||||
i32_4tech pos1 = 0;
|
||||
char c = 0;
|
||||
|
|
Loading…
Reference in New Issue