From 80b780278a4bff1a23ac47215fbbf115c20f6b0a Mon Sep 17 00:00:00 2001 From: PS Date: Sat, 10 Feb 2024 14:24:54 -0800 Subject: [PATCH] Removed custom/audio --- TODO.md | 11 +- code/custom/4coder_audio.cpp | 276 --------------- code/custom/4coder_audio.h | 56 --- code/custom/4coder_default_bindings.cpp | 3 - code/custom/4coder_default_hooks.cpp | 4 - code/custom/4coder_default_include.cpp | 2 - code/custom/4coder_examples.cpp | 55 --- code/custom/generated/command_metadata.h | 415 +++++++++++------------ code/platform_win32/win32_4ed.cpp | 1 - 9 files changed, 210 insertions(+), 613 deletions(-) delete mode 100644 code/custom/4coder_audio.cpp delete mode 100644 code/custom/4coder_audio.h diff --git a/TODO.md b/TODO.md index 25a350c1..2a00a6bf 100644 --- a/TODO.md +++ b/TODO.md @@ -3,12 +3,15 @@ ## Necessary [] fix project creation - this should just work out of the box [] remove automatic code layout for now +[] move my custom layer over +[] multi cursor editing +[] remove parser +[] fast enough to go read a node_modules folder and search on it +[] reload dirty files if there are no local edits to them automatically ## Nice to Have -[] remove audio +[] remove audio (search @Remove) [] 4coder projects should have a startup script - so you can do things like add cl to the path - -## Languages I Use -[] markdown - at the very least, this doesn't need to get any syntax highlighting (tho marks ie ## and * etc could) +[] Look into removing *keyboard* buffer - seems like over long sessions, that could get out of hand # DONE \ No newline at end of file diff --git a/code/custom/4coder_audio.cpp b/code/custom/4coder_audio.cpp deleted file mode 100644 index fa6a25b5..00000000 --- a/code/custom/4coder_audio.cpp +++ /dev/null @@ -1,276 +0,0 @@ -//////////////////////////////// -// NOTE(allen): Default Mixer Helpers - -// TODO(allen): intrinsics wrappers -#if OS_LINUX -#include -#define _InterlockedExchangeAdd __sync_fetch_and_add -#elif OS_MAC -#include -#define _InterlockedExchangeAdd __sync_fetch_and_add -#else -#include -#endif - -function u32 -AtomicAddU32AndReturnOriginal(u32 volatile *Value, u32 Addend) -{ - // NOTE(casey): Returns the original value _prior_ to adding - u32 Result = _InterlockedExchangeAdd((long volatile*)Value, (long)Addend); - return(Result); -} - -function void -def_audio_begin_ticket_mutex(Audio_System *Crunky) -{ - u32 Ticket = AtomicAddU32AndReturnOriginal(&Crunky->ticket, 1); - while(Ticket != Crunky->serving) {_mm_pause();} -} - -function void -def_audio_end_ticket_mutex(Audio_System *Crunky) -{ - AtomicAddU32AndReturnOriginal(&Crunky->serving, 1); -} - - -//////////////////////////////// -// NOTE(allen): Default Mixer - -global Audio_System def_audio_system = {}; - -function void -def_audio_init(void){ - block_zero_struct(&def_audio_system); - system_set_source_mixer(&def_audio_system, def_audio_mix_sources); - system_set_destination_mixer(def_audio_mix_destination); -} - -function void -def_audio_play_clip(Audio_Clip clip, Audio_Control *control){ - clip.control = control; - Audio_System *Crunky = &def_audio_system; - def_audio_begin_ticket_mutex(Crunky); - if (Crunky->pending_clip_count < ArrayCount(Crunky->pending_clips)) - { - Crunky->pending_clips[Crunky->pending_clip_count++] = clip; - } - def_audio_end_ticket_mutex(Crunky); -} - -internal b32 -def_audio_is_playing(Audio_Control *control){ - Audio_System *Crunky = &def_audio_system; - b32 result = (Crunky->generation - control->generation < 2); - return(result); -} - -internal void -def_audio_stop(Audio_Control *control){ - Audio_System *Crunky = &def_audio_system; - def_audio_begin_ticket_mutex(Crunky); - - Audio_Clip *clip = Crunky->playing_clips; - for(u32 i = 0; - i < ArrayCount(Crunky->playing_clips); - i += 1, clip += 1){ - if (clip->control == control){ - clip->at_sample_index = clip->sample_count; - clip->control = 0; - } - } - control->loop = false; - - def_audio_end_ticket_mutex(Crunky); -} - -function void -def_audio_mix_sources(void *ctx, f32 *mix_buffer, u32 sample_count){ - Audio_System *Crunky = (Audio_System*)ctx; - def_audio_begin_ticket_mutex(Crunky); - // NOTE(casey): Move pending sounds into the playing list - { - Crunky->generation += 1; - u32 PendIndex = 0; - Audio_Clip *clip = Crunky->playing_clips; - for(u32 DestIndex = 0; - (DestIndex < ArrayCount(Crunky->playing_clips)) && (PendIndex < Crunky->pending_clip_count); - DestIndex += 1, clip += 1) - { - if (clip->at_sample_index == clip->sample_count) - { - Audio_Control *control = clip->control; - if (control == 0 || !control->loop){ - *clip = Crunky->pending_clips[PendIndex++]; - } - } - } - Crunky->pending_clip_count = 0; - } - def_audio_end_ticket_mutex(Crunky); - - // NOTE(casey): Mix all sounds into the output buffer - { - Audio_Clip *clip = Crunky->playing_clips; - for(u32 SoundIndex = 0; - SoundIndex < ArrayCount(Crunky->playing_clips); - SoundIndex += 1, clip += 1) - { - // NOTE(allen): Determine starting point - Audio_Control *control = clip->control; - if (control != 0 && control->loop && clip->at_sample_index == clip->sample_count){ - clip->at_sample_index = 0; - } - u32 base_sample_index = clip->at_sample_index; - - // NOTE(casey): Determine how many samples are left to play in this - // sound (possible none) - u32 SamplesToMix = clamp_top((clip->sample_count - clip->at_sample_index), sample_count); - clip->at_sample_index += SamplesToMix; - - // NOTE(casey): Load the volume out of the control if there is one, - // and if there is, update the generation and sample index so - // external controllers can take action - f32 LeftVol = clip->channel_volume[0]; - f32 RightVol = clip->channel_volume[1]; - if(SamplesToMix && control != 0) - { - LeftVol *= control->channel_volume[0]; - RightVol *= control->channel_volume[1]; - control->generation = Crunky->generation; - control->last_played_sample_index = clip->at_sample_index; - } - - // NOTE(casey): Mix samples - for(u32 SampleIndex = 0; - SampleIndex < SamplesToMix; - ++SampleIndex) - { - u32 src_index = 2*(base_sample_index + SampleIndex); - f32 Left = LeftVol *(f32)clip->samples[src_index + 0]; - f32 Right = RightVol*(f32)clip->samples[src_index + 1]; - - u32 dst_index = 2*SampleIndex; - mix_buffer[dst_index + 0] += Left; - mix_buffer[dst_index + 1] += Right; - } - } - } -} - -function void -def_audio_mix_destination(i16 *dst, f32 *src, u32 sample_count){ - u32 opl = sample_count*2; - for(u32 i = 0; i < opl; i += 1){ - f32 sample = src[i]; - f32 sat_sample = clamp(-32768.f, sample, 32767.f); - dst[i] = (i16)sat_sample; - } -} - - -//////////////////////////////// -// NOTE(allen): Loading Clip - -#if !defined(FCODER_SKIP_WAV) -#define FCODER_SKIP_WAV -#pragma pack(push, 1) -struct wave_fmt_data -{ - u16 wFormatTag; - u16 wChannels; - u32 dwSamplesPerSec; - u32 dwAvgBytesPerSec; - u16 wBlockAlign; - u16 wBitsPerSample; -}; - -struct riff_header -{ - u32 ID; - u32 DataSize; -}; -#pragma pack(pop) -#endif - -function Audio_Clip -audio_clip_from_wav_data(String_Const_u8 data){ - Audio_Clip Result = {}; - - if (data.size >= 4 && *(u32 *)data.str == *(u32 *)"RIFF"){ - // NOTE(casey): This ROM is in WAV format - - riff_header *RootHeader = (riff_header *)data.str; - - wave_fmt_data *Format = 0; - u32 SampleDataSize = 0; - i16 *Samples = 0; - - u32 At = sizeof(riff_header); - u32 LastAt = At + ((RootHeader->DataSize + 1) & ~1); - if ((*(u32 *)(data.str + At) == *(u32 *)"WAVE") && - (LastAt <= data.size)){ - At += sizeof(u32); - while (At < LastAt){ - riff_header *Header = (riff_header *)(data.str + At); - u32 DataAt = At + sizeof(riff_header); - u32 EndAt = DataAt + ((Header->DataSize + 1) & ~1); - if(EndAt <= data.size) - { - void *Data = (data.str + DataAt); - if(Header->ID == *(u32 *)"fmt ") - { - Format = (wave_fmt_data *)Data; - } - else if(Header->ID == *(u32 *)"data") - { - SampleDataSize = Header->DataSize; - Samples = (i16 *)Data; - } - } - - At = EndAt; - } - } - - if (Format && - Samples && - (Format->wFormatTag == 1) && - (Format->wChannels == 2) && - (Format->wBitsPerSample == 16) && - (Format->dwSamplesPerSec == 48000)){ - for (u32 i = 0; i < 2; i += 1){ - Result.channel_volume[i] = 1.f; - } - Result.sample_count = SampleDataSize / (Format->wChannels*Format->wBitsPerSample/8); - Result.samples = (i16 *)Samples; - } - else{ - // TODO(casey): This is where you would output an error - to 4coder somehow? - } - } - else{ - // TODO(casey): This is where you would output an error - to 4coder somehow? - } - - return(Result); -} - -function Audio_Clip -audio_clip_from_wav_FILE(Arena *arena, FILE *file){ - String_Const_u8 data = data_from_file(arena, file); - Audio_Clip result = audio_clip_from_wav_data(data); - return(result); -} - -function Audio_Clip -audio_clip_from_wav_file_name(Arena *arena, char *file_name){ - Audio_Clip result = {}; - String_Const_u8 data = {}; - FILE *file = fopen(file_name, "rb"); - if (file != 0){ - result = audio_clip_from_wav_FILE(arena, file); - fclose(file); - } - return(result); -} diff --git a/code/custom/4coder_audio.h b/code/custom/4coder_audio.h deleted file mode 100644 index 1f5f4540..00000000 --- a/code/custom/4coder_audio.h +++ /dev/null @@ -1,56 +0,0 @@ -/* date = November 23rd 2020 1:18 pm */ - -#ifndef FCODER_AUDIO_H -#define FCODER_AUDIO_H - -//////////////////////////////// -// NOTE(allen): Default Mixer Types - -struct Audio_Control{ - volatile f32 channel_volume[2]; - volatile u32 generation; - volatile u32 last_played_sample_index; - volatile b32 loop; -}; - -struct Audio_Clip{ - i16 *samples; - Audio_Control *control; - f32 channel_volume[2]; - - u32 sample_count; - u32 at_sample_index; -}; - -struct Audio_System{ - volatile u32 quit; - volatile u32 ticket; - volatile u32 serving; - volatile u32 generation; - - Audio_Clip playing_clips[64]; - - // NOTE(casey): Requests to play sounds are written to a pending array to avoid long locking - volatile u32 pending_clip_count; - Audio_Clip pending_clips[64]; -}; - -//////////////////////////////// -// NOTE(allen): Default Mixer - -function void def_audio_init(void); -function void def_audio_play_clip(Audio_Clip clip, Audio_Control *control); -function b32 def_audio_is_playing(Audio_Control *control); -function void def_audio_stop(Audio_Control *control); - -function void def_audio_mix_sources(void *ctx, f32 *mix_buffer, u32 sample_count); -function void def_audio_mix_destination(i16 *dst, f32 *src, u32 sample_count); - -//////////////////////////////// -// NOTE(allen): Loading Clip - -function Audio_Clip audio_clip_from_wav_data(String_Const_u8 data); -function Audio_Clip audio_clip_from_wav_FILE(Arena *arena, FILE *file); -function Audio_Clip audio_clip_from_wav_file_name(Arena *arena, char *file_name); - -#endif //4CODER_AUDIO_H diff --git a/code/custom/4coder_default_bindings.cpp b/code/custom/4coder_default_bindings.cpp index 79a04cc4..f2c2a52d 100644 --- a/code/custom/4coder_default_bindings.cpp +++ b/code/custom/4coder_default_bindings.cpp @@ -18,11 +18,8 @@ void custom_layer_init(Application_Links *app){ Thread_Context *tctx = get_thread_context(app); - - // NOTE(allen): setup for default framework default_framework_init(app); - // NOTE(allen): default hooks and command maps set_all_default_hooks(app); mapping_init(tctx, &framework_mapping); String_ID global_map_id = vars_save_string_lit("keys_global"); diff --git a/code/custom/4coder_default_hooks.cpp b/code/custom/4coder_default_hooks.cpp index 90102e53..ddda7ab8 100644 --- a/code/custom/4coder_default_hooks.cpp +++ b/code/custom/4coder_default_hooks.cpp @@ -20,10 +20,6 @@ CUSTOM_DOC("Default command for responding to a startup event") } } - { - def_audio_init(); - } - { def_enable_virtual_whitespace = def_get_config_b32(vars_save_string_lit("enable_virtual_whitespace")); clear_all_layouts(app); diff --git a/code/custom/4coder_default_include.cpp b/code/custom/4coder_default_include.cpp index f6221dd9..1d6107b6 100644 --- a/code/custom/4coder_default_include.cpp +++ b/code/custom/4coder_default_include.cpp @@ -34,7 +34,6 @@ #include "generated/lexer_cpp.h" #include "4coder_variables.h" -#include "4coder_audio.h" #include "4coder_profile.h" #include "4coder_async_tasks.h" #include "4coder_string_match.h" @@ -139,7 +138,6 @@ #include "4coder_doc_commands.cpp" #include "4coder_docs.cpp" #include "4coder_variables.cpp" -#include "4coder_audio.cpp" #include "4coder_search_list.cpp" #include "4coder_examples.cpp" diff --git a/code/custom/4coder_examples.cpp b/code/custom/4coder_examples.cpp index 20843ce0..9f44df16 100644 --- a/code/custom/4coder_examples.cpp +++ b/code/custom/4coder_examples.cpp @@ -208,61 +208,6 @@ CUSTOM_DOC("Example of query_user_string and query_user_number") } } -global Audio_Control the_music_control = {}; - -CUSTOM_COMMAND_SIG(music_start) -CUSTOM_DOC("Starts the music.") -{ - local_persist Audio_Clip the_music_clip = {}; - if (the_music_clip.sample_count == 0){ - Scratch_Block scratch(app); - FILE *file = def_search_normal_fopen(scratch, "audio_test/chtulthu.wav", "rb"); - if (file != 0){ - the_music_clip = audio_clip_from_wav_FILE(&global_permanent_arena, file); - fclose(file); - } - } - - if (!def_audio_is_playing(&the_music_control)){ - the_music_control.loop = true; - the_music_control.channel_volume[0] = 1.f; - the_music_control.channel_volume[1] = 1.f; - def_audio_play_clip(the_music_clip, &the_music_control); - } -} - -CUSTOM_COMMAND_SIG(music_stop) -CUSTOM_DOC("Stops the music.") -{ - def_audio_stop(&the_music_control); -} - -CUSTOM_COMMAND_SIG(hit_sfx) -CUSTOM_DOC("Play the hit sound effect") -{ - local_persist Audio_Clip the_hit_clip = {}; - if (the_hit_clip.sample_count == 0){ - Scratch_Block scratch(app); - FILE *file = def_search_normal_fopen(scratch, "audio_test/hit.wav", "rb"); - if (file != 0){ - the_hit_clip = audio_clip_from_wav_FILE(&global_permanent_arena, file); - fclose(file); - } - } - - local_persist u32 index = 0; - local_persist Audio_Control controls[8] = {}; - - Audio_Control *control = &controls[index%8]; - if (!def_audio_is_playing(control)){ - control->loop = false; - control->channel_volume[0] = 1.f; - control->channel_volume[1] = 1.f; - def_audio_play_clip(the_hit_clip, control); - index += 1; - } -} - // BOTTOM diff --git a/code/custom/generated/command_metadata.h b/code/custom/generated/command_metadata.h index 09c5eed1..5b7e8216 100644 --- a/code/custom/generated/command_metadata.h +++ b/code/custom/generated/command_metadata.h @@ -2,7 +2,7 @@ #define command_id(c) (fcoder_metacmd_ID_##c) #define command_metadata(c) (&fcoder_metacmd_table[command_id(c)]) #define command_metadata_by_id(id) (&fcoder_metacmd_table[id]) -#define command_one_past_last_id 268 +#define command_one_past_last_id 265 #if defined(CUSTOM_COMMAND_SIG) #define PROC_LINKS(x,y) x #else @@ -75,7 +75,6 @@ CUSTOM_COMMAND_SIG(goto_prev_jump); CUSTOM_COMMAND_SIG(goto_prev_jump_no_skips); CUSTOM_COMMAND_SIG(hide_filebar); CUSTOM_COMMAND_SIG(hide_scrollbar); -CUSTOM_COMMAND_SIG(hit_sfx); CUSTOM_COMMAND_SIG(hms_demo_tutorial); CUSTOM_COMMAND_SIG(if0_off); CUSTOM_COMMAND_SIG(if_read_only_goto_position); @@ -150,8 +149,6 @@ CUSTOM_COMMAND_SIG(move_up_to_blank_line_skip_whitespace); CUSTOM_COMMAND_SIG(multi_paste); CUSTOM_COMMAND_SIG(multi_paste_interactive); CUSTOM_COMMAND_SIG(multi_paste_interactive_quick); -CUSTOM_COMMAND_SIG(music_start); -CUSTOM_COMMAND_SIG(music_stop); CUSTOM_COMMAND_SIG(open_all_code); CUSTOM_COMMAND_SIG(open_all_code_recursive); CUSTOM_COMMAND_SIG(open_file_in_quotes); @@ -289,7 +286,7 @@ char *source_name; i32 source_name_len; i32 line_number; }; -static Command_Metadata fcoder_metacmd_table[268] = { +static Command_Metadata fcoder_metacmd_table[265] = { { PROC_LINKS(allow_mouse, 0), false, "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "C:\\projects\\4coder_gs\\code\\custom\\4coder_default_framework.cpp", 62, 481 }, { PROC_LINKS(auto_indent_line_at_cursor, 0), false, "auto_indent_line_at_cursor", 26, "Auto-indents the line on which the cursor sits.", 47, "C:\\projects\\4coder_gs\\code\\custom\\4coder_auto_indent.cpp", 56, 420 }, { PROC_LINKS(auto_indent_range, 0), false, "auto_indent_range", 17, "Auto-indents the range between the cursor and the mark.", 55, "C:\\projects\\4coder_gs\\code\\custom\\4coder_auto_indent.cpp", 56, 430 }, @@ -327,8 +324,8 @@ static Command_Metadata fcoder_metacmd_table[268] = { { PROC_LINKS(decrease_face_size, 0), false, "decrease_face_size", 18, "Decrease the size of the face used by the current buffer.", 57, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 759 }, { PROC_LINKS(default_file_externally_modified, 0), false, "default_file_externally_modified", 32, "Notes the external modification of attached files by printing a message.", 72, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 2067 }, { PROC_LINKS(default_startup, 0), false, "default_startup", 15, "Default command for responding to a startup event", 49, "C:\\projects\\4coder_gs\\code\\custom\\4coder_default_hooks.cpp", 58, 7 }, -{ PROC_LINKS(default_try_exit, 0), false, "default_try_exit", 16, "Default command for responding to a try-exit event", 50, "C:\\projects\\4coder_gs\\code\\custom\\4coder_default_hooks.cpp", 58, 33 }, -{ PROC_LINKS(default_view_input_handler, 0), false, "default_view_input_handler", 26, "Input consumption loop for default view behavior", 48, "C:\\projects\\4coder_gs\\code\\custom\\4coder_default_hooks.cpp", 58, 77 }, +{ PROC_LINKS(default_try_exit, 0), false, "default_try_exit", 16, "Default command for responding to a try-exit event", 50, "C:\\projects\\4coder_gs\\code\\custom\\4coder_default_hooks.cpp", 58, 29 }, +{ PROC_LINKS(default_view_input_handler, 0), false, "default_view_input_handler", 26, "Input consumption loop for default view behavior", 48, "C:\\projects\\4coder_gs\\code\\custom\\4coder_default_hooks.cpp", 58, 73 }, { PROC_LINKS(delete_alpha_numeric_boundary, 0), false, "delete_alpha_numeric_boundary", 29, "Delete characters between the cursor position and the first alphanumeric boundary to the right.", 95, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 162 }, { PROC_LINKS(delete_char, 0), false, "delete_char", 11, "Deletes the character to the right of the cursor.", 49, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 79 }, { PROC_LINKS(delete_current_scope, 0), false, "delete_current_scope", 20, "Deletes the braces surrounding the currently selected scope. Leaves the contents within the scope.", 99, "C:\\projects\\4coder_gs\\code\\custom\\4coder_scope_commands.cpp", 59, 112 }, @@ -356,7 +353,6 @@ static Command_Metadata fcoder_metacmd_table[268] = { { PROC_LINKS(goto_prev_jump_no_skips, 0), false, "goto_prev_jump_no_skips", 23, "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:\\projects\\4coder_gs\\code\\custom\\4coder_jump_sticky.cpp", 56, 511 }, { PROC_LINKS(hide_filebar, 0), false, "hide_filebar", 12, "Sets the current view to hide it's filebar.", 43, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 706 }, { PROC_LINKS(hide_scrollbar, 0), false, "hide_scrollbar", 14, "Sets the current view to hide it's scrollbar.", 45, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 692 }, -{ PROC_LINKS(hit_sfx, 0), false, "hit_sfx", 7, "Play the hit sound effect", 25, "C:\\projects\\4coder_gs\\code\\custom\\4coder_examples.cpp", 53, 240 }, { PROC_LINKS(hms_demo_tutorial, 0), false, "hms_demo_tutorial", 17, "Tutorial for built in 4coder bindings and features.", 51, "C:\\projects\\4coder_gs\\code\\custom\\4coder_tutorial.cpp", 53, 869 }, { PROC_LINKS(if0_off, 0), false, "if0_off", 7, "Surround the range between the cursor and mark with an '#if 0' and an '#endif'", 78, "C:\\projects\\4coder_gs\\code\\custom\\4coder_combined_write_commands.cpp", 68, 70 }, { PROC_LINKS(if_read_only_goto_position, 0), false, "if_read_only_goto_position", 26, "If the buffer in the active view is writable, inserts a character, otherwise performs goto_jump_at_cursor.", 106, "C:\\projects\\4coder_gs\\code\\custom\\4coder_jump_sticky.cpp", 56, 564 }, @@ -431,8 +427,6 @@ static Command_Metadata fcoder_metacmd_table[268] = { { PROC_LINKS(multi_paste, 0), false, "multi_paste", 11, "Paste multiple entries from the clipboard at once", 49, "C:\\projects\\4coder_gs\\code\\custom\\4coder_clipboard.cpp", 54, 229 }, { PROC_LINKS(multi_paste_interactive, 0), false, "multi_paste_interactive", 23, "Paste multiple lines from the clipboard history, controlled with arrow keys", 75, "C:\\projects\\4coder_gs\\code\\custom\\4coder_clipboard.cpp", 54, 371 }, { PROC_LINKS(multi_paste_interactive_quick, 0), false, "multi_paste_interactive_quick", 29, "Paste multiple lines from the clipboard history, controlled by inputing the number of lines to paste", 100, "C:\\projects\\4coder_gs\\code\\custom\\4coder_clipboard.cpp", 54, 380 }, -{ PROC_LINKS(music_start, 0), false, "music_start", 11, "Starts the music.", 17, "C:\\projects\\4coder_gs\\code\\custom\\4coder_examples.cpp", 53, 213 }, -{ PROC_LINKS(music_stop, 0), false, "music_stop", 10, "Stops the music.", 16, "C:\\projects\\4coder_gs\\code\\custom\\4coder_examples.cpp", 53, 234 }, { PROC_LINKS(open_all_code, 0), false, "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:\\projects\\4coder_gs\\code\\custom\\4coder_project_commands.cpp", 61, 838 }, { PROC_LINKS(open_all_code_recursive, 0), false, "open_all_code_recursive", 23, "Works as open_all_code but also runs in all subdirectories.", 59, "C:\\projects\\4coder_gs\\code\\custom\\4coder_project_commands.cpp", 61, 847 }, { PROC_LINKS(open_file_in_quotes, 0), false, "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "C:\\projects\\4coder_gs\\code\\custom\\4coder_base_commands.cpp", 58, 1578 }, @@ -625,206 +619,203 @@ static i32 fcoder_metacmd_ID_goto_prev_jump = 62; static i32 fcoder_metacmd_ID_goto_prev_jump_no_skips = 63; static i32 fcoder_metacmd_ID_hide_filebar = 64; static i32 fcoder_metacmd_ID_hide_scrollbar = 65; -static i32 fcoder_metacmd_ID_hit_sfx = 66; -static i32 fcoder_metacmd_ID_hms_demo_tutorial = 67; -static i32 fcoder_metacmd_ID_if0_off = 68; -static i32 fcoder_metacmd_ID_if_read_only_goto_position = 69; -static i32 fcoder_metacmd_ID_if_read_only_goto_position_same_panel = 70; -static i32 fcoder_metacmd_ID_increase_face_size = 71; -static i32 fcoder_metacmd_ID_interactive_kill_buffer = 72; -static i32 fcoder_metacmd_ID_interactive_new = 73; -static i32 fcoder_metacmd_ID_interactive_open = 74; -static i32 fcoder_metacmd_ID_interactive_open_or_new = 75; -static i32 fcoder_metacmd_ID_interactive_switch_buffer = 76; -static i32 fcoder_metacmd_ID_jump_to_definition = 77; -static i32 fcoder_metacmd_ID_jump_to_definition_at_cursor = 78; -static i32 fcoder_metacmd_ID_jump_to_last_point = 79; -static i32 fcoder_metacmd_ID_keyboard_macro_finish_recording = 80; -static i32 fcoder_metacmd_ID_keyboard_macro_replay = 81; -static i32 fcoder_metacmd_ID_keyboard_macro_start_recording = 82; -static i32 fcoder_metacmd_ID_kill_buffer = 83; -static i32 fcoder_metacmd_ID_kill_tutorial = 84; -static i32 fcoder_metacmd_ID_left_adjust_view = 85; -static i32 fcoder_metacmd_ID_list_all_functions_all_buffers = 86; -static i32 fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 87; -static i32 fcoder_metacmd_ID_list_all_functions_current_buffer = 88; -static i32 fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 89; -static i32 fcoder_metacmd_ID_list_all_locations = 90; -static i32 fcoder_metacmd_ID_list_all_locations_case_insensitive = 91; -static i32 fcoder_metacmd_ID_list_all_locations_of_identifier = 92; -static i32 fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 93; -static i32 fcoder_metacmd_ID_list_all_locations_of_selection = 94; -static i32 fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 95; -static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition = 96; -static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 97; -static i32 fcoder_metacmd_ID_list_all_substring_locations = 98; -static i32 fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 99; -static i32 fcoder_metacmd_ID_load_project = 100; -static i32 fcoder_metacmd_ID_load_theme_current_buffer = 101; -static i32 fcoder_metacmd_ID_load_themes_default_folder = 102; -static i32 fcoder_metacmd_ID_load_themes_hot_directory = 103; -static i32 fcoder_metacmd_ID_make_directory_query = 104; -static i32 fcoder_metacmd_ID_miblo_decrement_basic = 105; -static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp = 106; -static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 107; -static i32 fcoder_metacmd_ID_miblo_increment_basic = 108; -static i32 fcoder_metacmd_ID_miblo_increment_time_stamp = 109; -static i32 fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 110; -static i32 fcoder_metacmd_ID_mouse_wheel_change_face_size = 111; -static i32 fcoder_metacmd_ID_mouse_wheel_scroll = 112; -static i32 fcoder_metacmd_ID_move_down = 113; -static i32 fcoder_metacmd_ID_move_down_10 = 114; -static i32 fcoder_metacmd_ID_move_down_textual = 115; -static i32 fcoder_metacmd_ID_move_down_to_blank_line = 116; -static i32 fcoder_metacmd_ID_move_down_to_blank_line_end = 117; -static i32 fcoder_metacmd_ID_move_down_to_blank_line_skip_whitespace = 118; -static i32 fcoder_metacmd_ID_move_left = 119; -static i32 fcoder_metacmd_ID_move_left_alpha_numeric_boundary = 120; -static i32 fcoder_metacmd_ID_move_left_alpha_numeric_or_camel_boundary = 121; -static i32 fcoder_metacmd_ID_move_left_token_boundary = 122; -static i32 fcoder_metacmd_ID_move_left_whitespace_boundary = 123; -static i32 fcoder_metacmd_ID_move_left_whitespace_or_token_boundary = 124; -static i32 fcoder_metacmd_ID_move_line_down = 125; -static i32 fcoder_metacmd_ID_move_line_up = 126; -static i32 fcoder_metacmd_ID_move_right = 127; -static i32 fcoder_metacmd_ID_move_right_alpha_numeric_boundary = 128; -static i32 fcoder_metacmd_ID_move_right_alpha_numeric_or_camel_boundary = 129; -static i32 fcoder_metacmd_ID_move_right_token_boundary = 130; -static i32 fcoder_metacmd_ID_move_right_whitespace_boundary = 131; -static i32 fcoder_metacmd_ID_move_right_whitespace_or_token_boundary = 132; -static i32 fcoder_metacmd_ID_move_up = 133; -static i32 fcoder_metacmd_ID_move_up_10 = 134; -static i32 fcoder_metacmd_ID_move_up_to_blank_line = 135; -static i32 fcoder_metacmd_ID_move_up_to_blank_line_end = 136; -static i32 fcoder_metacmd_ID_move_up_to_blank_line_skip_whitespace = 137; -static i32 fcoder_metacmd_ID_multi_paste = 138; -static i32 fcoder_metacmd_ID_multi_paste_interactive = 139; -static i32 fcoder_metacmd_ID_multi_paste_interactive_quick = 140; -static i32 fcoder_metacmd_ID_music_start = 141; -static i32 fcoder_metacmd_ID_music_stop = 142; -static i32 fcoder_metacmd_ID_open_all_code = 143; -static i32 fcoder_metacmd_ID_open_all_code_recursive = 144; -static i32 fcoder_metacmd_ID_open_file_in_quotes = 145; -static i32 fcoder_metacmd_ID_open_in_other = 146; -static i32 fcoder_metacmd_ID_open_long_braces = 147; -static i32 fcoder_metacmd_ID_open_long_braces_break = 148; -static i32 fcoder_metacmd_ID_open_long_braces_semicolon = 149; -static i32 fcoder_metacmd_ID_open_matching_file_cpp = 150; -static i32 fcoder_metacmd_ID_open_panel_hsplit = 151; -static i32 fcoder_metacmd_ID_open_panel_vsplit = 152; -static i32 fcoder_metacmd_ID_page_down = 153; -static i32 fcoder_metacmd_ID_page_up = 154; -static i32 fcoder_metacmd_ID_paste = 155; -static i32 fcoder_metacmd_ID_paste_and_indent = 156; -static i32 fcoder_metacmd_ID_paste_next = 157; -static i32 fcoder_metacmd_ID_paste_next_and_indent = 158; -static i32 fcoder_metacmd_ID_place_in_scope = 159; -static i32 fcoder_metacmd_ID_play_with_a_counter = 160; -static i32 fcoder_metacmd_ID_profile_clear = 161; -static i32 fcoder_metacmd_ID_profile_disable = 162; -static i32 fcoder_metacmd_ID_profile_enable = 163; -static i32 fcoder_metacmd_ID_profile_inspect = 164; -static i32 fcoder_metacmd_ID_project_command_F1 = 165; -static i32 fcoder_metacmd_ID_project_command_F10 = 166; -static i32 fcoder_metacmd_ID_project_command_F11 = 167; -static i32 fcoder_metacmd_ID_project_command_F12 = 168; -static i32 fcoder_metacmd_ID_project_command_F13 = 169; -static i32 fcoder_metacmd_ID_project_command_F14 = 170; -static i32 fcoder_metacmd_ID_project_command_F15 = 171; -static i32 fcoder_metacmd_ID_project_command_F16 = 172; -static i32 fcoder_metacmd_ID_project_command_F2 = 173; -static i32 fcoder_metacmd_ID_project_command_F3 = 174; -static i32 fcoder_metacmd_ID_project_command_F4 = 175; -static i32 fcoder_metacmd_ID_project_command_F5 = 176; -static i32 fcoder_metacmd_ID_project_command_F6 = 177; -static i32 fcoder_metacmd_ID_project_command_F7 = 178; -static i32 fcoder_metacmd_ID_project_command_F8 = 179; -static i32 fcoder_metacmd_ID_project_command_F9 = 180; -static i32 fcoder_metacmd_ID_project_command_lister = 181; -static i32 fcoder_metacmd_ID_project_fkey_command = 182; -static i32 fcoder_metacmd_ID_project_go_to_root_directory = 183; -static i32 fcoder_metacmd_ID_project_reprint = 184; -static i32 fcoder_metacmd_ID_query_replace = 185; -static i32 fcoder_metacmd_ID_query_replace_identifier = 186; -static i32 fcoder_metacmd_ID_query_replace_selection = 187; -static i32 fcoder_metacmd_ID_quick_swap_buffer = 188; -static i32 fcoder_metacmd_ID_redo = 189; -static i32 fcoder_metacmd_ID_redo_all_buffers = 190; -static i32 fcoder_metacmd_ID_rename_file_query = 191; -static i32 fcoder_metacmd_ID_reopen = 192; -static i32 fcoder_metacmd_ID_replace_in_all_buffers = 193; -static i32 fcoder_metacmd_ID_replace_in_buffer = 194; -static i32 fcoder_metacmd_ID_replace_in_range = 195; -static i32 fcoder_metacmd_ID_reverse_search = 196; -static i32 fcoder_metacmd_ID_reverse_search_identifier = 197; -static i32 fcoder_metacmd_ID_save = 198; -static i32 fcoder_metacmd_ID_save_all_dirty_buffers = 199; -static i32 fcoder_metacmd_ID_save_to_query = 200; -static i32 fcoder_metacmd_ID_search = 201; -static i32 fcoder_metacmd_ID_search_identifier = 202; -static i32 fcoder_metacmd_ID_seek_beginning_of_line = 203; -static i32 fcoder_metacmd_ID_seek_beginning_of_textual_line = 204; -static i32 fcoder_metacmd_ID_seek_end_of_line = 205; -static i32 fcoder_metacmd_ID_seek_end_of_textual_line = 206; -static i32 fcoder_metacmd_ID_select_all = 207; -static i32 fcoder_metacmd_ID_select_next_scope_absolute = 208; -static i32 fcoder_metacmd_ID_select_next_scope_after_current = 209; -static i32 fcoder_metacmd_ID_select_prev_scope_absolute = 210; -static i32 fcoder_metacmd_ID_select_prev_top_most_scope = 211; -static i32 fcoder_metacmd_ID_select_surrounding_scope = 212; -static i32 fcoder_metacmd_ID_select_surrounding_scope_maximal = 213; -static i32 fcoder_metacmd_ID_set_eol_mode_from_contents = 214; -static i32 fcoder_metacmd_ID_set_eol_mode_to_binary = 215; -static i32 fcoder_metacmd_ID_set_eol_mode_to_crlf = 216; -static i32 fcoder_metacmd_ID_set_eol_mode_to_lf = 217; -static i32 fcoder_metacmd_ID_set_face_size = 218; -static i32 fcoder_metacmd_ID_set_face_size_this_buffer = 219; -static i32 fcoder_metacmd_ID_set_mark = 220; -static i32 fcoder_metacmd_ID_set_mode_to_notepad_like = 221; -static i32 fcoder_metacmd_ID_set_mode_to_original = 222; -static i32 fcoder_metacmd_ID_setup_build_bat = 223; -static i32 fcoder_metacmd_ID_setup_build_bat_and_sh = 224; -static i32 fcoder_metacmd_ID_setup_build_sh = 225; -static i32 fcoder_metacmd_ID_setup_new_project = 226; -static i32 fcoder_metacmd_ID_show_filebar = 227; -static i32 fcoder_metacmd_ID_show_scrollbar = 228; -static i32 fcoder_metacmd_ID_show_the_log_graph = 229; -static i32 fcoder_metacmd_ID_snipe_backward_whitespace_or_token_boundary = 230; -static i32 fcoder_metacmd_ID_snipe_forward_whitespace_or_token_boundary = 231; -static i32 fcoder_metacmd_ID_snippet_lister = 232; -static i32 fcoder_metacmd_ID_string_repeat = 233; -static i32 fcoder_metacmd_ID_suppress_mouse = 234; -static i32 fcoder_metacmd_ID_swap_panels = 235; -static i32 fcoder_metacmd_ID_theme_lister = 236; -static i32 fcoder_metacmd_ID_to_lowercase = 237; -static i32 fcoder_metacmd_ID_to_uppercase = 238; -static i32 fcoder_metacmd_ID_toggle_filebar = 239; -static i32 fcoder_metacmd_ID_toggle_fps_meter = 240; -static i32 fcoder_metacmd_ID_toggle_fullscreen = 241; -static i32 fcoder_metacmd_ID_toggle_highlight_enclosing_scopes = 242; -static i32 fcoder_metacmd_ID_toggle_highlight_line_at_cursor = 243; -static i32 fcoder_metacmd_ID_toggle_line_numbers = 244; -static i32 fcoder_metacmd_ID_toggle_line_wrap = 245; -static i32 fcoder_metacmd_ID_toggle_mouse = 246; -static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 247; -static i32 fcoder_metacmd_ID_toggle_show_whitespace = 248; -static i32 fcoder_metacmd_ID_toggle_virtual_whitespace = 249; -static i32 fcoder_metacmd_ID_tutorial_maximize = 250; -static i32 fcoder_metacmd_ID_tutorial_minimize = 251; -static i32 fcoder_metacmd_ID_uncomment_line = 252; -static i32 fcoder_metacmd_ID_undo = 253; -static i32 fcoder_metacmd_ID_undo_all_buffers = 254; -static i32 fcoder_metacmd_ID_view_buffer_other_panel = 255; -static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 256; -static i32 fcoder_metacmd_ID_word_complete = 257; -static i32 fcoder_metacmd_ID_word_complete_drop_down = 258; -static i32 fcoder_metacmd_ID_write_block = 259; -static i32 fcoder_metacmd_ID_write_hack = 260; -static i32 fcoder_metacmd_ID_write_note = 261; -static i32 fcoder_metacmd_ID_write_space = 262; -static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 263; -static i32 fcoder_metacmd_ID_write_text_input = 264; -static i32 fcoder_metacmd_ID_write_todo = 265; -static i32 fcoder_metacmd_ID_write_underscore = 266; -static i32 fcoder_metacmd_ID_write_zero_struct = 267; +static i32 fcoder_metacmd_ID_hms_demo_tutorial = 66; +static i32 fcoder_metacmd_ID_if0_off = 67; +static i32 fcoder_metacmd_ID_if_read_only_goto_position = 68; +static i32 fcoder_metacmd_ID_if_read_only_goto_position_same_panel = 69; +static i32 fcoder_metacmd_ID_increase_face_size = 70; +static i32 fcoder_metacmd_ID_interactive_kill_buffer = 71; +static i32 fcoder_metacmd_ID_interactive_new = 72; +static i32 fcoder_metacmd_ID_interactive_open = 73; +static i32 fcoder_metacmd_ID_interactive_open_or_new = 74; +static i32 fcoder_metacmd_ID_interactive_switch_buffer = 75; +static i32 fcoder_metacmd_ID_jump_to_definition = 76; +static i32 fcoder_metacmd_ID_jump_to_definition_at_cursor = 77; +static i32 fcoder_metacmd_ID_jump_to_last_point = 78; +static i32 fcoder_metacmd_ID_keyboard_macro_finish_recording = 79; +static i32 fcoder_metacmd_ID_keyboard_macro_replay = 80; +static i32 fcoder_metacmd_ID_keyboard_macro_start_recording = 81; +static i32 fcoder_metacmd_ID_kill_buffer = 82; +static i32 fcoder_metacmd_ID_kill_tutorial = 83; +static i32 fcoder_metacmd_ID_left_adjust_view = 84; +static i32 fcoder_metacmd_ID_list_all_functions_all_buffers = 85; +static i32 fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 86; +static i32 fcoder_metacmd_ID_list_all_functions_current_buffer = 87; +static i32 fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 88; +static i32 fcoder_metacmd_ID_list_all_locations = 89; +static i32 fcoder_metacmd_ID_list_all_locations_case_insensitive = 90; +static i32 fcoder_metacmd_ID_list_all_locations_of_identifier = 91; +static i32 fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 92; +static i32 fcoder_metacmd_ID_list_all_locations_of_selection = 93; +static i32 fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 94; +static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition = 95; +static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 96; +static i32 fcoder_metacmd_ID_list_all_substring_locations = 97; +static i32 fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 98; +static i32 fcoder_metacmd_ID_load_project = 99; +static i32 fcoder_metacmd_ID_load_theme_current_buffer = 100; +static i32 fcoder_metacmd_ID_load_themes_default_folder = 101; +static i32 fcoder_metacmd_ID_load_themes_hot_directory = 102; +static i32 fcoder_metacmd_ID_make_directory_query = 103; +static i32 fcoder_metacmd_ID_miblo_decrement_basic = 104; +static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp = 105; +static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 106; +static i32 fcoder_metacmd_ID_miblo_increment_basic = 107; +static i32 fcoder_metacmd_ID_miblo_increment_time_stamp = 108; +static i32 fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 109; +static i32 fcoder_metacmd_ID_mouse_wheel_change_face_size = 110; +static i32 fcoder_metacmd_ID_mouse_wheel_scroll = 111; +static i32 fcoder_metacmd_ID_move_down = 112; +static i32 fcoder_metacmd_ID_move_down_10 = 113; +static i32 fcoder_metacmd_ID_move_down_textual = 114; +static i32 fcoder_metacmd_ID_move_down_to_blank_line = 115; +static i32 fcoder_metacmd_ID_move_down_to_blank_line_end = 116; +static i32 fcoder_metacmd_ID_move_down_to_blank_line_skip_whitespace = 117; +static i32 fcoder_metacmd_ID_move_left = 118; +static i32 fcoder_metacmd_ID_move_left_alpha_numeric_boundary = 119; +static i32 fcoder_metacmd_ID_move_left_alpha_numeric_or_camel_boundary = 120; +static i32 fcoder_metacmd_ID_move_left_token_boundary = 121; +static i32 fcoder_metacmd_ID_move_left_whitespace_boundary = 122; +static i32 fcoder_metacmd_ID_move_left_whitespace_or_token_boundary = 123; +static i32 fcoder_metacmd_ID_move_line_down = 124; +static i32 fcoder_metacmd_ID_move_line_up = 125; +static i32 fcoder_metacmd_ID_move_right = 126; +static i32 fcoder_metacmd_ID_move_right_alpha_numeric_boundary = 127; +static i32 fcoder_metacmd_ID_move_right_alpha_numeric_or_camel_boundary = 128; +static i32 fcoder_metacmd_ID_move_right_token_boundary = 129; +static i32 fcoder_metacmd_ID_move_right_whitespace_boundary = 130; +static i32 fcoder_metacmd_ID_move_right_whitespace_or_token_boundary = 131; +static i32 fcoder_metacmd_ID_move_up = 132; +static i32 fcoder_metacmd_ID_move_up_10 = 133; +static i32 fcoder_metacmd_ID_move_up_to_blank_line = 134; +static i32 fcoder_metacmd_ID_move_up_to_blank_line_end = 135; +static i32 fcoder_metacmd_ID_move_up_to_blank_line_skip_whitespace = 136; +static i32 fcoder_metacmd_ID_multi_paste = 137; +static i32 fcoder_metacmd_ID_multi_paste_interactive = 138; +static i32 fcoder_metacmd_ID_multi_paste_interactive_quick = 139; +static i32 fcoder_metacmd_ID_open_all_code = 140; +static i32 fcoder_metacmd_ID_open_all_code_recursive = 141; +static i32 fcoder_metacmd_ID_open_file_in_quotes = 142; +static i32 fcoder_metacmd_ID_open_in_other = 143; +static i32 fcoder_metacmd_ID_open_long_braces = 144; +static i32 fcoder_metacmd_ID_open_long_braces_break = 145; +static i32 fcoder_metacmd_ID_open_long_braces_semicolon = 146; +static i32 fcoder_metacmd_ID_open_matching_file_cpp = 147; +static i32 fcoder_metacmd_ID_open_panel_hsplit = 148; +static i32 fcoder_metacmd_ID_open_panel_vsplit = 149; +static i32 fcoder_metacmd_ID_page_down = 150; +static i32 fcoder_metacmd_ID_page_up = 151; +static i32 fcoder_metacmd_ID_paste = 152; +static i32 fcoder_metacmd_ID_paste_and_indent = 153; +static i32 fcoder_metacmd_ID_paste_next = 154; +static i32 fcoder_metacmd_ID_paste_next_and_indent = 155; +static i32 fcoder_metacmd_ID_place_in_scope = 156; +static i32 fcoder_metacmd_ID_play_with_a_counter = 157; +static i32 fcoder_metacmd_ID_profile_clear = 158; +static i32 fcoder_metacmd_ID_profile_disable = 159; +static i32 fcoder_metacmd_ID_profile_enable = 160; +static i32 fcoder_metacmd_ID_profile_inspect = 161; +static i32 fcoder_metacmd_ID_project_command_F1 = 162; +static i32 fcoder_metacmd_ID_project_command_F10 = 163; +static i32 fcoder_metacmd_ID_project_command_F11 = 164; +static i32 fcoder_metacmd_ID_project_command_F12 = 165; +static i32 fcoder_metacmd_ID_project_command_F13 = 166; +static i32 fcoder_metacmd_ID_project_command_F14 = 167; +static i32 fcoder_metacmd_ID_project_command_F15 = 168; +static i32 fcoder_metacmd_ID_project_command_F16 = 169; +static i32 fcoder_metacmd_ID_project_command_F2 = 170; +static i32 fcoder_metacmd_ID_project_command_F3 = 171; +static i32 fcoder_metacmd_ID_project_command_F4 = 172; +static i32 fcoder_metacmd_ID_project_command_F5 = 173; +static i32 fcoder_metacmd_ID_project_command_F6 = 174; +static i32 fcoder_metacmd_ID_project_command_F7 = 175; +static i32 fcoder_metacmd_ID_project_command_F8 = 176; +static i32 fcoder_metacmd_ID_project_command_F9 = 177; +static i32 fcoder_metacmd_ID_project_command_lister = 178; +static i32 fcoder_metacmd_ID_project_fkey_command = 179; +static i32 fcoder_metacmd_ID_project_go_to_root_directory = 180; +static i32 fcoder_metacmd_ID_project_reprint = 181; +static i32 fcoder_metacmd_ID_query_replace = 182; +static i32 fcoder_metacmd_ID_query_replace_identifier = 183; +static i32 fcoder_metacmd_ID_query_replace_selection = 184; +static i32 fcoder_metacmd_ID_quick_swap_buffer = 185; +static i32 fcoder_metacmd_ID_redo = 186; +static i32 fcoder_metacmd_ID_redo_all_buffers = 187; +static i32 fcoder_metacmd_ID_rename_file_query = 188; +static i32 fcoder_metacmd_ID_reopen = 189; +static i32 fcoder_metacmd_ID_replace_in_all_buffers = 190; +static i32 fcoder_metacmd_ID_replace_in_buffer = 191; +static i32 fcoder_metacmd_ID_replace_in_range = 192; +static i32 fcoder_metacmd_ID_reverse_search = 193; +static i32 fcoder_metacmd_ID_reverse_search_identifier = 194; +static i32 fcoder_metacmd_ID_save = 195; +static i32 fcoder_metacmd_ID_save_all_dirty_buffers = 196; +static i32 fcoder_metacmd_ID_save_to_query = 197; +static i32 fcoder_metacmd_ID_search = 198; +static i32 fcoder_metacmd_ID_search_identifier = 199; +static i32 fcoder_metacmd_ID_seek_beginning_of_line = 200; +static i32 fcoder_metacmd_ID_seek_beginning_of_textual_line = 201; +static i32 fcoder_metacmd_ID_seek_end_of_line = 202; +static i32 fcoder_metacmd_ID_seek_end_of_textual_line = 203; +static i32 fcoder_metacmd_ID_select_all = 204; +static i32 fcoder_metacmd_ID_select_next_scope_absolute = 205; +static i32 fcoder_metacmd_ID_select_next_scope_after_current = 206; +static i32 fcoder_metacmd_ID_select_prev_scope_absolute = 207; +static i32 fcoder_metacmd_ID_select_prev_top_most_scope = 208; +static i32 fcoder_metacmd_ID_select_surrounding_scope = 209; +static i32 fcoder_metacmd_ID_select_surrounding_scope_maximal = 210; +static i32 fcoder_metacmd_ID_set_eol_mode_from_contents = 211; +static i32 fcoder_metacmd_ID_set_eol_mode_to_binary = 212; +static i32 fcoder_metacmd_ID_set_eol_mode_to_crlf = 213; +static i32 fcoder_metacmd_ID_set_eol_mode_to_lf = 214; +static i32 fcoder_metacmd_ID_set_face_size = 215; +static i32 fcoder_metacmd_ID_set_face_size_this_buffer = 216; +static i32 fcoder_metacmd_ID_set_mark = 217; +static i32 fcoder_metacmd_ID_set_mode_to_notepad_like = 218; +static i32 fcoder_metacmd_ID_set_mode_to_original = 219; +static i32 fcoder_metacmd_ID_setup_build_bat = 220; +static i32 fcoder_metacmd_ID_setup_build_bat_and_sh = 221; +static i32 fcoder_metacmd_ID_setup_build_sh = 222; +static i32 fcoder_metacmd_ID_setup_new_project = 223; +static i32 fcoder_metacmd_ID_show_filebar = 224; +static i32 fcoder_metacmd_ID_show_scrollbar = 225; +static i32 fcoder_metacmd_ID_show_the_log_graph = 226; +static i32 fcoder_metacmd_ID_snipe_backward_whitespace_or_token_boundary = 227; +static i32 fcoder_metacmd_ID_snipe_forward_whitespace_or_token_boundary = 228; +static i32 fcoder_metacmd_ID_snippet_lister = 229; +static i32 fcoder_metacmd_ID_string_repeat = 230; +static i32 fcoder_metacmd_ID_suppress_mouse = 231; +static i32 fcoder_metacmd_ID_swap_panels = 232; +static i32 fcoder_metacmd_ID_theme_lister = 233; +static i32 fcoder_metacmd_ID_to_lowercase = 234; +static i32 fcoder_metacmd_ID_to_uppercase = 235; +static i32 fcoder_metacmd_ID_toggle_filebar = 236; +static i32 fcoder_metacmd_ID_toggle_fps_meter = 237; +static i32 fcoder_metacmd_ID_toggle_fullscreen = 238; +static i32 fcoder_metacmd_ID_toggle_highlight_enclosing_scopes = 239; +static i32 fcoder_metacmd_ID_toggle_highlight_line_at_cursor = 240; +static i32 fcoder_metacmd_ID_toggle_line_numbers = 241; +static i32 fcoder_metacmd_ID_toggle_line_wrap = 242; +static i32 fcoder_metacmd_ID_toggle_mouse = 243; +static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 244; +static i32 fcoder_metacmd_ID_toggle_show_whitespace = 245; +static i32 fcoder_metacmd_ID_toggle_virtual_whitespace = 246; +static i32 fcoder_metacmd_ID_tutorial_maximize = 247; +static i32 fcoder_metacmd_ID_tutorial_minimize = 248; +static i32 fcoder_metacmd_ID_uncomment_line = 249; +static i32 fcoder_metacmd_ID_undo = 250; +static i32 fcoder_metacmd_ID_undo_all_buffers = 251; +static i32 fcoder_metacmd_ID_view_buffer_other_panel = 252; +static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 253; +static i32 fcoder_metacmd_ID_word_complete = 254; +static i32 fcoder_metacmd_ID_word_complete_drop_down = 255; +static i32 fcoder_metacmd_ID_write_block = 256; +static i32 fcoder_metacmd_ID_write_hack = 257; +static i32 fcoder_metacmd_ID_write_note = 258; +static i32 fcoder_metacmd_ID_write_space = 259; +static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 260; +static i32 fcoder_metacmd_ID_write_text_input = 261; +static i32 fcoder_metacmd_ID_write_todo = 262; +static i32 fcoder_metacmd_ID_write_underscore = 263; +static i32 fcoder_metacmd_ID_write_zero_struct = 264; #endif diff --git a/code/platform_win32/win32_4ed.cpp b/code/platform_win32/win32_4ed.cpp index ca80a8bb..8afcd3f1 100644 --- a/code/platform_win32/win32_4ed.cpp +++ b/code/platform_win32/win32_4ed.cpp @@ -1697,7 +1697,6 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS log_os("Initializing thread context...\n"); - // NOTE(allen): This thing InitializeCriticalSection(&memory_tracker_mutex); // NOTE(allen): context setup