Deprecated old table and arena code
parent
ac633ebbe5
commit
a7c5be3e02
|
@ -12,7 +12,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "4coder_base_types.h"
|
#include "4coder_base_types.h"
|
||||||
#include "4coder_lib/4coder_arena.h"
|
|
||||||
#include "4coder_lib/4coder_heap.h"
|
#include "4coder_lib/4coder_heap.h"
|
||||||
#include "4coder_lib/4coder_string.h"
|
#include "4coder_lib/4coder_string.h"
|
||||||
#include "4coder_lib/4cpp_lexer_types.h"
|
#include "4coder_lib/4cpp_lexer_types.h"
|
||||||
|
|
|
@ -924,31 +924,11 @@ get_prev_view_looped_primary_panels(Application_Links *app, View_Summary *view_s
|
||||||
get_view_summary(app, new_id, AccessAll, view_start);
|
get_view_summary(app, new_id, AccessAll, view_start);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
list__parameters(Application_Links *app, Heap *heap, String_Const_u8 *strings, i32 count, Search_Range_Flag match_flags, View_Summary default_target_view){
|
|
||||||
list__parameters(app, heap, strings, count, match_flags, default_target_view.view_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
list_query__parameters(Application_Links *app, Heap *heap, b32 substrings, b32 case_insensitive, View_Summary default_target_view){
|
|
||||||
list_query__parameters(app, heap, substrings, case_insensitive, default_target_view.view_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Buffer_ID
|
static Buffer_ID
|
||||||
create_or_switch_to_buffer_by_name(Application_Links *app, char *name, i32 name_length, View_Summary default_target_view){
|
create_or_switch_to_buffer_by_name(Application_Links *app, char *name, i32 name_length, View_Summary default_target_view){
|
||||||
return(create_or_switch_to_buffer_and_clear_by_name(app, SCu8(name, name_length), default_target_view.view_id));
|
return(create_or_switch_to_buffer_and_clear_by_name(app, SCu8(name, name_length), default_target_view.view_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
list_identifier__parameters(Application_Links *app, Heap *heap, b32 substrings, b32 case_insensitive, View_Summary default_target_view){
|
|
||||||
list_identifier__parameters(app, heap, substrings, case_insensitive, default_target_view.view_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
list_type_definition__parameters(Application_Links *app, Heap *heap, String str, View_Summary default_target_view){
|
|
||||||
list_type_definition__parameters(app, heap, string_new_u8_from_old(str), default_target_view.view_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static b32
|
static b32
|
||||||
backspace_utf8(String *str){
|
backspace_utf8(String *str){
|
||||||
b32 result = false;
|
b32 result = false;
|
||||||
|
|
|
@ -1109,9 +1109,14 @@ CUSTOM_DOC("Begins an incremental search up through the current buffer for the w
|
||||||
isearch(app, true, query, true);
|
isearch(app, true, query, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
CUSTOM_COMMAND_SIG(replace_in_range)
|
struct String_Pair{
|
||||||
CUSTOM_DOC("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.")
|
b32 valid;
|
||||||
{
|
String_Const_u8 a;
|
||||||
|
String_Const_u8 b;
|
||||||
|
};
|
||||||
|
|
||||||
|
internal String_Pair
|
||||||
|
query_user_replace_pair(Application_Links *app, Arena *arena){
|
||||||
Query_Bar replace = {};
|
Query_Bar replace = {};
|
||||||
u8 replace_space[1024];
|
u8 replace_space[1024];
|
||||||
replace.prompt = string_u8_litexpr("Replace: ");
|
replace.prompt = string_u8_litexpr("Replace: ");
|
||||||
|
@ -1124,14 +1129,57 @@ CUSTOM_DOC("Queries the user for two strings, and replaces all occurences of the
|
||||||
with.string = SCu8(with_space, (umem)0);
|
with.string = SCu8(with_space, (umem)0);
|
||||||
with.string_capacity = sizeof(with_space);
|
with.string_capacity = sizeof(with_space);
|
||||||
|
|
||||||
|
String_Pair result = {};
|
||||||
if (query_user_string(app, &replace) && replace.string.size != 0 && query_user_string(app, &with)){
|
if (query_user_string(app, &replace) && replace.string.size != 0 && query_user_string(app, &with)){
|
||||||
String_Const_u8 r = replace.string;
|
result.valid = true;
|
||||||
String_Const_u8 w = with.string;
|
result.a = push_string_copy(arena, replace.string);
|
||||||
View_ID view = get_active_view(app, AccessOpen);
|
result.b = push_string_copy(arena, with.string);
|
||||||
Buffer_ID buffer = view_get_buffer(app, view, AccessOpen);
|
|
||||||
Range_i64 range = get_view_range(app, view);
|
|
||||||
replace_in_range(app, buffer, range, r, w);
|
|
||||||
}
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void
|
||||||
|
replace_in_range_query_user(Application_Links *app, Buffer_ID buffer, Range_i64 range){
|
||||||
|
Scratch_Block scratch(app);
|
||||||
|
String_Pair pair = query_user_replace_pair(app, scratch);
|
||||||
|
if (pair.valid){
|
||||||
|
replace_in_range(app, buffer, range, pair.a, pair.b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(replace_in_range)
|
||||||
|
CUSTOM_DOC("Queries the user for a needle and string. Replaces all occurences of needle with string in the range between cursor and the mark in the active buffer.")
|
||||||
|
{
|
||||||
|
View_ID view = get_active_view(app, AccessOpen);
|
||||||
|
Buffer_ID buffer = view_get_buffer(app, view, AccessOpen);
|
||||||
|
Range_i64 range = get_view_range(app, view);
|
||||||
|
replace_in_range_query_user(app, buffer, range);
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(replace_in_buffer)
|
||||||
|
CUSTOM_DOC("Queries the user for a needle and string. Replaces all occurences of needle with string in the active buffer.")
|
||||||
|
{
|
||||||
|
View_ID view = get_active_view(app, AccessOpen);
|
||||||
|
Buffer_ID buffer = view_get_buffer(app, view, AccessOpen);
|
||||||
|
Range_i64 range = buffer_range(app, buffer);
|
||||||
|
replace_in_range_query_user(app, buffer, range);
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(replace_in_all_buffers)
|
||||||
|
CUSTOM_DOC("Queries the user for a needle and string. Replaces all occurences of needle with string in all editable buffers.")
|
||||||
|
{
|
||||||
|
global_history_edit_group_begin(app);
|
||||||
|
|
||||||
|
Scratch_Block scratch(app);
|
||||||
|
String_Pair pair = query_user_replace_pair(app, scratch);
|
||||||
|
for (Buffer_ID buffer = get_buffer_next(app, 0, AccessOpen);
|
||||||
|
buffer != 0;
|
||||||
|
buffer = get_buffer_next(app, buffer, AccessOpen)){
|
||||||
|
Range_i64 range = buffer_range(app, buffer);
|
||||||
|
replace_in_range(app, buffer, range, pair.a, pair.b);
|
||||||
|
}
|
||||||
|
|
||||||
|
global_history_edit_group_end(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -2125,8 +2125,6 @@ flip_side(Side side){
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|
||||||
#if defined(Migrating__Arena)
|
|
||||||
|
|
||||||
static void*
|
static void*
|
||||||
base_reserve__noop(void *user_data, umem size, umem *size_out){
|
base_reserve__noop(void *user_data, umem size, umem *size_out){
|
||||||
*size_out = 0;
|
*size_out = 0;
|
||||||
|
@ -4374,7 +4372,7 @@ string_const_any_push(Arena *arena, umem size, String_Encoding encoding){
|
||||||
}
|
}
|
||||||
|
|
||||||
static String_Const_char
|
static String_Const_char
|
||||||
string_copy(Arena *arena, String_Const_char src){
|
push_string_copy(Arena *arena, String_Const_char src){
|
||||||
String_Const_char string = {};
|
String_Const_char string = {};
|
||||||
string.str = push_array(arena, char, src.size + 1);
|
string.str = push_array(arena, char, src.size + 1);
|
||||||
string.size = src.size;
|
string.size = src.size;
|
||||||
|
@ -4383,7 +4381,7 @@ string_copy(Arena *arena, String_Const_char src){
|
||||||
return(string);
|
return(string);
|
||||||
}
|
}
|
||||||
static String_Const_u8
|
static String_Const_u8
|
||||||
string_copy(Arena *arena, String_Const_u8 src){
|
push_string_copy(Arena *arena, String_Const_u8 src){
|
||||||
String_Const_u8 string = {};
|
String_Const_u8 string = {};
|
||||||
string.str = push_array(arena, u8, src.size + 1);
|
string.str = push_array(arena, u8, src.size + 1);
|
||||||
string.size = src.size;
|
string.size = src.size;
|
||||||
|
@ -4392,7 +4390,7 @@ string_copy(Arena *arena, String_Const_u8 src){
|
||||||
return(string);
|
return(string);
|
||||||
}
|
}
|
||||||
static String_Const_u16
|
static String_Const_u16
|
||||||
string_copy(Arena *arena, String_Const_u16 src){
|
push_string_copy(Arena *arena, String_Const_u16 src){
|
||||||
String_Const_u16 string = {};
|
String_Const_u16 string = {};
|
||||||
string.str = push_array(arena, u16, src.size + 1);
|
string.str = push_array(arena, u16, src.size + 1);
|
||||||
string.size = src.size;
|
string.size = src.size;
|
||||||
|
@ -4401,7 +4399,7 @@ string_copy(Arena *arena, String_Const_u16 src){
|
||||||
return(string);
|
return(string);
|
||||||
}
|
}
|
||||||
static String_Const_u32
|
static String_Const_u32
|
||||||
string_copy(Arena *arena, String_Const_u32 src){
|
push_string_copy(Arena *arena, String_Const_u32 src){
|
||||||
String_Const_u32 string = {};
|
String_Const_u32 string = {};
|
||||||
string.str = push_array(arena, u32, src.size + 1);
|
string.str = push_array(arena, u32, src.size + 1);
|
||||||
string.size = src.size;
|
string.size = src.size;
|
||||||
|
@ -4411,13 +4409,13 @@ string_copy(Arena *arena, String_Const_u32 src){
|
||||||
}
|
}
|
||||||
|
|
||||||
static String_Const_Any
|
static String_Const_Any
|
||||||
string_copy(Arena *arena, umem size, String_Const_Any src){
|
push_string_copy(Arena *arena, umem size, String_Const_Any src){
|
||||||
String_Const_Any string = {};
|
String_Const_Any string = {};
|
||||||
switch (src.encoding){
|
switch (src.encoding){
|
||||||
case StringEncoding_ASCII: string.s_char = string_copy(arena, src.s_char); break;
|
case StringEncoding_ASCII: string.s_char = push_string_copy(arena, src.s_char); break;
|
||||||
case StringEncoding_UTF8: string.s_u8 = string_copy(arena, src.s_u8 ); break;
|
case StringEncoding_UTF8: string.s_u8 = push_string_copy(arena, src.s_u8 ); break;
|
||||||
case StringEncoding_UTF16: string.s_u16 = string_copy(arena, src.s_u16 ); break;
|
case StringEncoding_UTF16: string.s_u16 = push_string_copy(arena, src.s_u16 ); break;
|
||||||
case StringEncoding_UTF32: string.s_u32 = string_copy(arena, src.s_u32 ); break;
|
case StringEncoding_UTF32: string.s_u32 = push_string_copy(arena, src.s_u32 ); break;
|
||||||
}
|
}
|
||||||
return(string);
|
return(string);
|
||||||
}
|
}
|
||||||
|
@ -4519,7 +4517,7 @@ string_list_push_overlap(Arena *arena, List_String_Const_char *list, char overla
|
||||||
}
|
}
|
||||||
if (tail_has_overlap == string_has_overlap){
|
if (tail_has_overlap == string_has_overlap){
|
||||||
if (!tail_has_overlap){
|
if (!tail_has_overlap){
|
||||||
string_list_push(arena, list, string_copy(arena, SCchar(&overlap, 1)));
|
string_list_push(arena, list, push_string_copy(arena, SCchar(&overlap, 1)));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
string = string_skip(string, 1);
|
string = string_skip(string, 1);
|
||||||
|
@ -4544,7 +4542,7 @@ string_list_push_overlap(Arena *arena, List_String_Const_u8 *list, u8 overlap, S
|
||||||
}
|
}
|
||||||
if (tail_has_overlap == string_has_overlap){
|
if (tail_has_overlap == string_has_overlap){
|
||||||
if (!tail_has_overlap){
|
if (!tail_has_overlap){
|
||||||
string_list_push(arena, list, string_copy(arena, SCu8(&overlap, 1)));
|
string_list_push(arena, list, push_string_copy(arena, SCu8(&overlap, 1)));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
string = string_skip(string, 1);
|
string = string_skip(string, 1);
|
||||||
|
@ -4569,7 +4567,7 @@ string_list_push_overlap(Arena *arena, List_String_Const_u16 *list, u16 overlap,
|
||||||
}
|
}
|
||||||
if (tail_has_overlap == string_has_overlap){
|
if (tail_has_overlap == string_has_overlap){
|
||||||
if (!tail_has_overlap){
|
if (!tail_has_overlap){
|
||||||
string_list_push(arena, list, string_copy(arena, SCu16(&overlap, 1)));
|
string_list_push(arena, list, push_string_copy(arena, SCu16(&overlap, 1)));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
string = string_skip(string, 1);
|
string = string_skip(string, 1);
|
||||||
|
@ -4594,7 +4592,7 @@ string_list_push_overlap(Arena *arena, List_String_Const_u32 *list, u32 overlap,
|
||||||
}
|
}
|
||||||
if (tail_has_overlap == string_has_overlap){
|
if (tail_has_overlap == string_has_overlap){
|
||||||
if (!tail_has_overlap){
|
if (!tail_has_overlap){
|
||||||
string_list_push(arena, list, string_copy(arena, SCu32(&overlap, 1)));
|
string_list_push(arena, list, push_string_copy(arena, SCu32(&overlap, 1)));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
string = string_skip(string, 1);
|
string = string_skip(string, 1);
|
||||||
|
@ -5959,7 +5957,7 @@ string_from_integer(Arena *arena, u64 x, u32 radix){
|
||||||
String_Const_u8 result = {};
|
String_Const_u8 result = {};
|
||||||
if (radix >= 2 && radix <= 16){
|
if (radix >= 2 && radix <= 16){
|
||||||
if (x == 0){
|
if (x == 0){
|
||||||
result = string_copy(arena, string_u8_litexpr("0"));
|
result = push_string_copy(arena, string_u8_litexpr("0"));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
u8 string_space[64];
|
u8 string_space[64];
|
||||||
|
@ -5974,7 +5972,7 @@ string_from_integer(Arena *arena, u64 x, u32 radix){
|
||||||
j += 1, i -= 1){
|
j += 1, i -= 1){
|
||||||
Swap(u8, string_space[i], string_space[j]);
|
Swap(u8, string_space[i], string_space[j]);
|
||||||
}
|
}
|
||||||
result = string_copy(arena, SCu8(string_space, length));
|
result = push_string_copy(arena, SCu8(string_space, length));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
|
@ -6108,8 +6106,6 @@ data_decode_from_base64(Arena *arena, u8 *str, umem size){
|
||||||
return(data);
|
return(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|
||||||
#if defined(FSTRING_GUARD)
|
#if defined(FSTRING_GUARD)
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
#if !defined(FCODER_BASE_TYPES)
|
#if !defined(FCODER_BASE_TYPES)
|
||||||
#define FCODER_BASE_TYPES
|
#define FCODER_BASE_TYPES
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
|
|
||||||
# define COMPILER_CL 1
|
# define COMPILER_CL 1
|
||||||
|
@ -1034,9 +1036,6 @@ enum{
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|
||||||
#define Migrating__Arena
|
|
||||||
#if defined(Migrating__Arena)
|
|
||||||
|
|
||||||
typedef void *Base_Allocator_Reserve_Signature(void *user_data, umem size, umem *size_out);
|
typedef void *Base_Allocator_Reserve_Signature(void *user_data, umem size, umem *size_out);
|
||||||
typedef void Base_Allocator_Commit_Signature(void *user_data, void *ptr, umem size);
|
typedef void Base_Allocator_Commit_Signature(void *user_data, void *ptr, umem size);
|
||||||
typedef void Base_Allocator_Uncommit_Signature(void *user_data, void *ptr, umem size);
|
typedef void Base_Allocator_Uncommit_Signature(void *user_data, void *ptr, umem size);
|
||||||
|
@ -1101,7 +1100,7 @@ struct Scratch_Block{
|
||||||
Temp_Memory temp;
|
Temp_Memory temp;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
////////////////////////////////
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ push_build_directory_at_file(Application_Links *app, Arena *arena, Buffer_ID buf
|
||||||
b32 is_match = string_match(file_name, base_name);
|
b32 is_match = string_match(file_name, base_name);
|
||||||
end_temp(restore_point);
|
end_temp(restore_point);
|
||||||
if (!is_match){
|
if (!is_match){
|
||||||
result = string_copy(arena, string_remove_last_folder(file_name));
|
result = push_string_copy(arena, string_remove_last_folder(file_name));
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ parse_extension_line_to_extension_list(Arena *arena, String_Const_u8 str){
|
||||||
umem next_period = string_find_first(str, '.');
|
umem next_period = string_find_first(str, '.');
|
||||||
String_Const_u8 extension = string_prefix(str, next_period);
|
String_Const_u8 extension = string_prefix(str, next_period);
|
||||||
str = string_skip(str, next_period + 1);
|
str = string_skip(str, next_period + 1);
|
||||||
array.strings[i] = string_copy(arena, extension);
|
array.strings[i] = push_string_copy(arena, extension);
|
||||||
}
|
}
|
||||||
push_align(arena, 8);
|
push_align(arena, 8);
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ config_error_push(Arena *arena, Config_Error_List *list, String_Const_u8 file_na
|
||||||
list->count += 1;
|
list->count += 1;
|
||||||
error->file_name = file_name;
|
error->file_name = file_name;
|
||||||
error->pos = pos;
|
error->pos = pos;
|
||||||
error->text = string_copy(arena, SCu8(error_text));
|
error->text = push_string_copy(arena, SCu8(error_text));
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,12 +26,10 @@
|
||||||
#include "4coder_stringf.cpp"
|
#include "4coder_stringf.cpp"
|
||||||
#include "4coder_app_links_allocator.cpp"
|
#include "4coder_app_links_allocator.cpp"
|
||||||
|
|
||||||
#include "4coder_lib/4coder_arena.cpp"
|
|
||||||
#include "4coder_lib/4coder_heap.cpp"
|
#include "4coder_lib/4coder_heap.cpp"
|
||||||
|
|
||||||
#define FSTRING_IMPLEMENTATION
|
#define FSTRING_IMPLEMENTATION
|
||||||
#include "4coder_lib/4coder_string.h"
|
#include "4coder_lib/4coder_string.h"
|
||||||
#include "4coder_lib/4coder_table.h"
|
|
||||||
#include "4coder_lib/4coder_utf8.h"
|
#include "4coder_lib/4coder_utf8.h"
|
||||||
#include "4coder_lib/4cpp_lexer.h"
|
#include "4coder_lib/4cpp_lexer.h"
|
||||||
|
|
||||||
|
|
|
@ -712,82 +712,6 @@ struct Replace_Target{
|
||||||
i32 start_pos;
|
i32 start_pos;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
|
||||||
replace_all_occurrences_parameters(Application_Links *app, Heap *heap, String_Const_u8 target_string, String_Const_u8 new_string){
|
|
||||||
if (target_string.size > 0){
|
|
||||||
global_history_edit_group_begin(app);
|
|
||||||
|
|
||||||
// Initialize a generic search all buffers
|
|
||||||
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
|
|
||||||
Arena *scratch = context_get_arena(app);
|
|
||||||
Temp_Memory temp = begin_temp(scratch);
|
|
||||||
|
|
||||||
Replace_Target *target_first = 0;
|
|
||||||
Replace_Target *target_last = 0;
|
|
||||||
i32 target_count = 0;
|
|
||||||
|
|
||||||
for (Search_Match match = search_next_match(app, &set, &iter);
|
|
||||||
match.found_match;
|
|
||||||
match = search_next_match(app, &set, &iter)){
|
|
||||||
|
|
||||||
Replace_Target *new_target = push_array(scratch, Replace_Target, 1);
|
|
||||||
sll_queue_push(target_first, target_last, new_target);
|
|
||||||
++target_count;
|
|
||||||
new_target->buffer_id = match.buffer;
|
|
||||||
new_target->start_pos = match.start;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use replacement list to do replacements
|
|
||||||
i64 shift_per_replacement = new_string.size - target_string.size;
|
|
||||||
i64 current_offset = 0;
|
|
||||||
Buffer_ID current_buffer_id = 0;
|
|
||||||
for (Replace_Target *target = target_first;
|
|
||||||
target != 0;
|
|
||||||
target = target->next){
|
|
||||||
if (target->buffer_id != current_buffer_id){
|
|
||||||
current_buffer_id = target->buffer_id;
|
|
||||||
current_offset = 0;
|
|
||||||
}
|
|
||||||
i64 pos = target->start_pos + current_offset;
|
|
||||||
buffer_replace_range(app, target->buffer_id, Ii64(pos, pos + target_string.size), new_string);
|
|
||||||
current_offset += shift_per_replacement;
|
|
||||||
}
|
|
||||||
|
|
||||||
end_temp(temp);
|
|
||||||
|
|
||||||
global_history_edit_group_end(app);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CUSTOM_COMMAND_SIG(replace_all_occurrences)
|
|
||||||
CUSTOM_DOC("Queries the user for two strings, and replaces all occurrences of the first string with the second string in all open buffers.")
|
|
||||||
{
|
|
||||||
u8 replace_space[1024];
|
|
||||||
Query_Bar replace = {};
|
|
||||||
replace.prompt = string_u8_litexpr("Replace (In All Buffers): ");
|
|
||||||
replace.string = SCu8(replace_space, (umem)0);
|
|
||||||
replace.string_capacity = sizeof(replace_space);
|
|
||||||
|
|
||||||
u8 with_space[1024];
|
|
||||||
Query_Bar with = {};
|
|
||||||
with.prompt = string_u8_litexpr("With: ");
|
|
||||||
with.string = SCu8(with_space, (umem)0);
|
|
||||||
with.string_capacity = sizeof(with_space);
|
|
||||||
|
|
||||||
if (!query_user_string(app, &replace)) return;
|
|
||||||
if (replace.string.size == 0) return;
|
|
||||||
|
|
||||||
if (!query_user_string(app, &with)) return;
|
|
||||||
|
|
||||||
String_Const_u8 r = replace.string;
|
|
||||||
String_Const_u8 w = with.string;
|
|
||||||
replace_all_occurrences_parameters(app, &global_heap, r, w);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" i32
|
extern "C" i32
|
||||||
get_bindings(void *data, i32 size){
|
get_bindings(void *data, i32 size){
|
||||||
Bind_Helper context_ = begin_bind_helper(data, size);
|
Bind_Helper context_ = begin_bind_helper(data, size);
|
||||||
|
@ -828,7 +752,7 @@ get_bindings(void *data, i32 size){
|
||||||
bind(context, key_end, MDFR_ALT, miblo_decrement_time_stamp_minute);
|
bind(context, key_end, MDFR_ALT, miblo_decrement_time_stamp_minute);
|
||||||
|
|
||||||
bind(context, 'b', MDFR_CTRL, multi_paste_interactive_quick);
|
bind(context, 'b', MDFR_CTRL, multi_paste_interactive_quick);
|
||||||
bind(context, 'A', MDFR_CTRL, replace_all_occurrences);
|
bind(context, 'A', MDFR_CTRL, replace_in_all_buffers);
|
||||||
end_map(context);
|
end_map(context);
|
||||||
|
|
||||||
begin_map(context, default_code_map);
|
begin_map(context, default_code_map);
|
||||||
|
|
|
@ -92,7 +92,7 @@ fancy_string_list_push(Fancy_String_List *list, Fancy_String *string){
|
||||||
static Fancy_String *
|
static Fancy_String *
|
||||||
push_fancy_string(Arena *arena, Fancy_String_List *list, Fancy_Color fore, Fancy_Color back, String_Const_u8 value){
|
push_fancy_string(Arena *arena, Fancy_String_List *list, Fancy_Color fore, Fancy_Color back, String_Const_u8 value){
|
||||||
Fancy_String *result = push_array_zero(arena, Fancy_String, 1);
|
Fancy_String *result = push_array_zero(arena, Fancy_String, 1);
|
||||||
result->value = string_copy(arena, value);
|
result->value = push_string_copy(arena, value);
|
||||||
result->fore = fore;
|
result->fore = fore;
|
||||||
result->back = back;
|
result->back = back;
|
||||||
if (list != 0){
|
if (list != 0){
|
||||||
|
|
|
@ -7,9 +7,6 @@
|
||||||
#if !defined(FCODER_FILE_ENUMERATOR_CPP)
|
#if !defined(FCODER_FILE_ENUMERATOR_CPP)
|
||||||
#define FCODER_FILE_ENUMERATOR_CPP
|
#define FCODER_FILE_ENUMERATOR_CPP
|
||||||
|
|
||||||
#include "4coder_lib/4coder_arena.h"
|
|
||||||
#include "4coder_lib/4coder_arena.cpp"
|
|
||||||
|
|
||||||
#include "4coder_base_types.h"
|
#include "4coder_base_types.h"
|
||||||
#define FSTRING_IMPLEMENTATION
|
#define FSTRING_IMPLEMENTATION
|
||||||
#include "4coder_lib/4coder_string.h"
|
#include "4coder_lib/4coder_string.h"
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
#define command_id(c) (fcoder_metacmd_ID_##c)
|
#define command_id(c) (fcoder_metacmd_ID_##c)
|
||||||
#define command_metadata(c) (&fcoder_metacmd_table[command_id(c)])
|
#define command_metadata(c) (&fcoder_metacmd_table[command_id(c)])
|
||||||
#define command_metadata_by_id(id) (&fcoder_metacmd_table[id])
|
#define command_metadata_by_id(id) (&fcoder_metacmd_table[id])
|
||||||
#define command_one_past_last_id 236
|
#define command_one_past_last_id 237
|
||||||
#if defined(CUSTOM_COMMAND_SIG)
|
#if defined(CUSTOM_COMMAND_SIG)
|
||||||
#define PROC_LINKS(x,y) x
|
#define PROC_LINKS(x,y) x
|
||||||
#else
|
#else
|
||||||
#define PROC_LINKS(x,y) y
|
#define PROC_LINKS(x,y) y
|
||||||
#endif
|
#endif
|
||||||
#if defined(CUSTOM_COMMAND_SIG)
|
#if defined(CUSTOM_COMMAND_SIG)
|
||||||
CUSTOM_COMMAND_SIG(replace_all_occurrences);
|
CUSTOM_COMMAND_SIG(write_explicit_enum_flags);
|
||||||
CUSTOM_COMMAND_SIG(seek_beginning_of_textual_line);
|
CUSTOM_COMMAND_SIG(seek_beginning_of_textual_line);
|
||||||
CUSTOM_COMMAND_SIG(seek_end_of_textual_line);
|
CUSTOM_COMMAND_SIG(seek_end_of_textual_line);
|
||||||
CUSTOM_COMMAND_SIG(seek_beginning_of_line);
|
CUSTOM_COMMAND_SIG(seek_beginning_of_line);
|
||||||
|
@ -103,6 +103,8 @@ CUSTOM_COMMAND_SIG(reverse_search);
|
||||||
CUSTOM_COMMAND_SIG(search_identifier);
|
CUSTOM_COMMAND_SIG(search_identifier);
|
||||||
CUSTOM_COMMAND_SIG(reverse_search_identifier);
|
CUSTOM_COMMAND_SIG(reverse_search_identifier);
|
||||||
CUSTOM_COMMAND_SIG(replace_in_range);
|
CUSTOM_COMMAND_SIG(replace_in_range);
|
||||||
|
CUSTOM_COMMAND_SIG(replace_in_buffer);
|
||||||
|
CUSTOM_COMMAND_SIG(replace_in_all_buffers);
|
||||||
CUSTOM_COMMAND_SIG(query_replace);
|
CUSTOM_COMMAND_SIG(query_replace);
|
||||||
CUSTOM_COMMAND_SIG(query_replace_identifier);
|
CUSTOM_COMMAND_SIG(query_replace_identifier);
|
||||||
CUSTOM_COMMAND_SIG(query_replace_selection);
|
CUSTOM_COMMAND_SIG(query_replace_selection);
|
||||||
|
@ -244,7 +246,6 @@ CUSTOM_COMMAND_SIG(kill_rect);
|
||||||
CUSTOM_COMMAND_SIG(multi_line_edit);
|
CUSTOM_COMMAND_SIG(multi_line_edit);
|
||||||
CUSTOM_COMMAND_SIG(rename_parameter);
|
CUSTOM_COMMAND_SIG(rename_parameter);
|
||||||
CUSTOM_COMMAND_SIG(write_explicit_enum_values);
|
CUSTOM_COMMAND_SIG(write_explicit_enum_values);
|
||||||
CUSTOM_COMMAND_SIG(write_explicit_enum_flags);
|
|
||||||
#endif
|
#endif
|
||||||
struct Command_Metadata{
|
struct Command_Metadata{
|
||||||
PROC_LINKS(Custom_Command_Function, void) *proc;
|
PROC_LINKS(Custom_Command_Function, void) *proc;
|
||||||
|
@ -256,245 +257,246 @@ char *source_name;
|
||||||
int32_t source_name_len;
|
int32_t source_name_len;
|
||||||
int32_t line_number;
|
int32_t line_number;
|
||||||
};
|
};
|
||||||
static Command_Metadata fcoder_metacmd_table[236] = {
|
static Command_Metadata fcoder_metacmd_table[237] = {
|
||||||
{ PROC_LINKS(replace_all_occurrences, 0), "replace_all_occurrences", 23, "Queries the user for two strings, and replaces all occurrences of the first string with the second string in all open buffers.", 126, "c:\\4ed\\code\\4coder_experiments.cpp", 34, 766 },
|
{ PROC_LINKS(write_explicit_enum_flags, 0), "write_explicit_enum_flags", 25, "If the cursor is found to be on the '{' of an enum definition, the values of the enum will be filled in to give each a unique power of 2 value, starting from 1. Existing values are overwritten.", 194, "w:\\4ed\\code\\4coder_experiments.cpp", 34, 699 },
|
||||||
{ 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, 28 },
|
{ 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, 28 },
|
||||||
{ 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, 34 },
|
{ 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, 34 },
|
||||||
{ 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, 40 },
|
{ 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, 40 },
|
||||||
{ 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, 46 },
|
{ 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, 46 },
|
||||||
{ 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, 52 },
|
{ 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, 52 },
|
||||||
{ 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, 60 },
|
{ 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, 60 },
|
||||||
{ 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, 197 },
|
{ 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, 197 },
|
||||||
{ 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, 207 },
|
{ 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, 207 },
|
||||||
{ 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, 217 },
|
{ 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, 217 },
|
||||||
{ 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, 227 },
|
{ 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, 227 },
|
||||||
{ 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, 288 },
|
{ 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, 288 },
|
||||||
{ 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, 294 },
|
{ 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, 294 },
|
||||||
{ 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, 300 },
|
{ 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, 300 },
|
||||||
{ 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, 306 },
|
{ 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, 306 },
|
||||||
{ 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, 312 },
|
{ 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, 312 },
|
||||||
{ 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, 318 },
|
{ 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, 318 },
|
||||||
{ 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, 324 },
|
{ 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, 324 },
|
||||||
{ 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, 330 },
|
{ 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, 330 },
|
||||||
{ 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, 336 },
|
{ 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, 336 },
|
||||||
{ PROC_LINKS(remap_interactive, 0), "remap_interactive", 17, "Switch to a named key binding map.", 34, "c:\\4ed\\code\\4coder_default_framework.cpp", 40, 344 },
|
{ PROC_LINKS(remap_interactive, 0), "remap_interactive", 17, "Switch to a named key binding map.", 34, "w:\\4ed\\code\\4coder_default_framework.cpp", 40, 344 },
|
||||||
{ 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, 66 },
|
{ 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, 66 },
|
||||||
{ PROC_LINKS(write_underscore, 0), "write_underscore", 16, "Inserts an underscore.", 22, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 75 },
|
{ PROC_LINKS(write_underscore, 0), "write_underscore", 16, "Inserts an underscore.", 22, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 75 },
|
||||||
{ 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, 82 },
|
{ 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, 82 },
|
||||||
{ 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, 99 },
|
{ 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, 99 },
|
||||||
{ 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, 118 },
|
{ 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, 118 },
|
||||||
{ 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, 127 },
|
{ 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, 127 },
|
||||||
{ 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, 137 },
|
{ 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, 137 },
|
||||||
{ PROC_LINKS(backspace_alpha_numeric_boundary, 0), "backspace_alpha_numeric_boundary", 32, "Delete characters between the cursor position and the first alphanumeric boundary to the left.", 94, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 157 },
|
{ PROC_LINKS(backspace_alpha_numeric_boundary, 0), "backspace_alpha_numeric_boundary", 32, "Delete characters between the cursor position and the first alphanumeric boundary to the left.", 94, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 157 },
|
||||||
{ PROC_LINKS(delete_alpha_numeric_boundary, 0), "delete_alpha_numeric_boundary", 29, "Delete characters between the cursor position and the first alphanumeric boundary to the right.", 95, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 165 },
|
{ PROC_LINKS(delete_alpha_numeric_boundary, 0), "delete_alpha_numeric_boundary", 29, "Delete characters between the cursor position and the first alphanumeric boundary to the right.", 95, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 165 },
|
||||||
{ PROC_LINKS(snipe_backward_whitespace_or_token_boundary, 0), "snipe_backward_whitespace_or_token_boundary", 43, "Delete a single, whole token on or to the left of the cursor and post it to the clipboard.", 90, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 185 },
|
{ PROC_LINKS(snipe_backward_whitespace_or_token_boundary, 0), "snipe_backward_whitespace_or_token_boundary", 43, "Delete a single, whole token on or to the left of the cursor and post it to the clipboard.", 90, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 185 },
|
||||||
{ PROC_LINKS(snipe_forward_whitespace_or_token_boundary, 0), "snipe_forward_whitespace_or_token_boundary", 42, "Delete a single, whole token on or to the right of the cursor and post it to the clipboard.", 91, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 193 },
|
{ PROC_LINKS(snipe_forward_whitespace_or_token_boundary, 0), "snipe_forward_whitespace_or_token_boundary", 42, "Delete a single, whole token on or to the right of the cursor and post it to the clipboard.", 91, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 193 },
|
||||||
{ 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, 206 },
|
{ 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, 206 },
|
||||||
{ 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, 221 },
|
{ 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, 221 },
|
||||||
{ 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, 244 },
|
{ 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, 244 },
|
||||||
{ 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, 259 },
|
{ 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, 259 },
|
||||||
{ 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, 273 },
|
{ 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, 273 },
|
||||||
{ 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, 289 },
|
{ 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, 289 },
|
||||||
{ 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, 303 },
|
{ 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, 303 },
|
||||||
{ PROC_LINKS(move_up, 0), "move_up", 7, "Moves the cursor up one line.", 29, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 364 },
|
{ PROC_LINKS(move_up, 0), "move_up", 7, "Moves the cursor up one line.", 29, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 364 },
|
||||||
{ PROC_LINKS(move_down, 0), "move_down", 9, "Moves the cursor down one line.", 31, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 370 },
|
{ PROC_LINKS(move_down, 0), "move_down", 9, "Moves the cursor down one line.", 31, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 370 },
|
||||||
{ 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, 376 },
|
{ 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, 376 },
|
||||||
{ 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, 382 },
|
{ 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, 382 },
|
||||||
{ 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, 388 },
|
{ 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, 388 },
|
||||||
{ 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, 398 },
|
{ 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, 398 },
|
||||||
{ 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, 406 },
|
{ 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, 406 },
|
||||||
{ PROC_LINKS(move_up_to_blank_line, 0), "move_up_to_blank_line", 21, "Seeks the cursor up to the next blank line.", 43, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 435 },
|
{ PROC_LINKS(move_up_to_blank_line, 0), "move_up_to_blank_line", 21, "Seeks the cursor up to the next blank line.", 43, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 435 },
|
||||||
{ PROC_LINKS(move_down_to_blank_line, 0), "move_down_to_blank_line", 23, "Seeks the cursor down to the next blank line.", 45, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 441 },
|
{ PROC_LINKS(move_down_to_blank_line, 0), "move_down_to_blank_line", 23, "Seeks the cursor down to the next blank line.", 45, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 441 },
|
||||||
{ PROC_LINKS(move_up_to_blank_line_skip_whitespace, 0), "move_up_to_blank_line_skip_whitespace", 37, "Seeks the cursor up to the next blank line and places it at the end of the line.", 80, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 447 },
|
{ PROC_LINKS(move_up_to_blank_line_skip_whitespace, 0), "move_up_to_blank_line_skip_whitespace", 37, "Seeks the cursor up to the next blank line and places it at the end of the line.", 80, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 447 },
|
||||||
{ PROC_LINKS(move_down_to_blank_line_skip_whitespace, 0), "move_down_to_blank_line_skip_whitespace", 39, "Seeks the cursor down to the next blank line and places it at the end of the line.", 82, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 453 },
|
{ PROC_LINKS(move_down_to_blank_line_skip_whitespace, 0), "move_down_to_blank_line_skip_whitespace", 39, "Seeks the cursor down to the next blank line and places it at the end of the line.", 82, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 453 },
|
||||||
{ PROC_LINKS(move_up_to_blank_line_end, 0), "move_up_to_blank_line_end", 25, "Seeks the cursor up to the next blank line and places it at the end of the line.", 80, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 459 },
|
{ PROC_LINKS(move_up_to_blank_line_end, 0), "move_up_to_blank_line_end", 25, "Seeks the cursor up to the next blank line and places it at the end of the line.", 80, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 459 },
|
||||||
{ PROC_LINKS(move_down_to_blank_line_end, 0), "move_down_to_blank_line_end", 27, "Seeks the cursor down to the next blank line and places it at the end of the line.", 82, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 465 },
|
{ PROC_LINKS(move_down_to_blank_line_end, 0), "move_down_to_blank_line_end", 27, "Seeks the cursor down to the next blank line and places it at the end of the line.", 82, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 465 },
|
||||||
{ 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, 476 },
|
{ 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, 476 },
|
||||||
{ 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, 487 },
|
{ 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, 487 },
|
||||||
{ PROC_LINKS(move_right_whitespace_boundary, 0), "move_right_whitespace_boundary", 30, "Seek right for the next boundary between whitespace and non-whitespace.", 71, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 508 },
|
{ PROC_LINKS(move_right_whitespace_boundary, 0), "move_right_whitespace_boundary", 30, "Seek right for the next boundary between whitespace and non-whitespace.", 71, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 508 },
|
||||||
{ PROC_LINKS(move_left_whitespace_boundary, 0), "move_left_whitespace_boundary", 29, "Seek left for the next boundary between whitespace and non-whitespace.", 70, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 516 },
|
{ PROC_LINKS(move_left_whitespace_boundary, 0), "move_left_whitespace_boundary", 29, "Seek left for the next boundary between whitespace and non-whitespace.", 70, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 516 },
|
||||||
{ PROC_LINKS(move_right_token_boundary, 0), "move_right_token_boundary", 25, "Seek right for the next end of a token.", 39, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 524 },
|
{ PROC_LINKS(move_right_token_boundary, 0), "move_right_token_boundary", 25, "Seek right for the next end of a token.", 39, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 524 },
|
||||||
{ PROC_LINKS(move_left_token_boundary, 0), "move_left_token_boundary", 24, "Seek left for the next beginning of a token.", 44, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 532 },
|
{ PROC_LINKS(move_left_token_boundary, 0), "move_left_token_boundary", 24, "Seek left for the next beginning of a token.", 44, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 532 },
|
||||||
{ PROC_LINKS(move_right_whitespace_or_token_boundary, 0), "move_right_whitespace_or_token_boundary", 39, "Seek right for the next end of a token or boundary between whitespace and non-whitespace.", 89, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 540 },
|
{ PROC_LINKS(move_right_whitespace_or_token_boundary, 0), "move_right_whitespace_or_token_boundary", 39, "Seek right for the next end of a token or boundary between whitespace and non-whitespace.", 89, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 540 },
|
||||||
{ PROC_LINKS(move_left_whitespace_or_token_boundary, 0), "move_left_whitespace_or_token_boundary", 38, "Seek left for the next end of a token or boundary between whitespace and non-whitespace.", 88, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 548 },
|
{ PROC_LINKS(move_left_whitespace_or_token_boundary, 0), "move_left_whitespace_or_token_boundary", 38, "Seek left for the next end of a token or boundary between whitespace and non-whitespace.", 88, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 548 },
|
||||||
{ PROC_LINKS(move_right_alpha_numeric_boundary, 0), "move_right_alpha_numeric_boundary", 33, "Seek right for boundary between alphanumeric characters and non-alphanumeric characters.", 88, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 556 },
|
{ PROC_LINKS(move_right_alpha_numeric_boundary, 0), "move_right_alpha_numeric_boundary", 33, "Seek right for boundary between alphanumeric characters and non-alphanumeric characters.", 88, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 556 },
|
||||||
{ PROC_LINKS(move_left_alpha_numeric_boundary, 0), "move_left_alpha_numeric_boundary", 32, "Seek left for boundary between alphanumeric characters and non-alphanumeric characters.", 87, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 564 },
|
{ PROC_LINKS(move_left_alpha_numeric_boundary, 0), "move_left_alpha_numeric_boundary", 32, "Seek left for boundary between alphanumeric characters and non-alphanumeric characters.", 87, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 564 },
|
||||||
{ PROC_LINKS(move_right_alpha_numeric_or_camel_boundary, 0), "move_right_alpha_numeric_or_camel_boundary", 42, "Seek right for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 107, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 572 },
|
{ PROC_LINKS(move_right_alpha_numeric_or_camel_boundary, 0), "move_right_alpha_numeric_or_camel_boundary", 42, "Seek right for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 107, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 572 },
|
||||||
{ PROC_LINKS(move_left_alpha_numeric_or_camel_boundary, 0), "move_left_alpha_numeric_or_camel_boundary", 41, "Seek left for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 106, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 580 },
|
{ PROC_LINKS(move_left_alpha_numeric_or_camel_boundary, 0), "move_left_alpha_numeric_or_camel_boundary", 41, "Seek left for boundary between alphanumeric characters or camel case word and non-alphanumeric characters.", 106, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 580 },
|
||||||
{ 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, 601 },
|
{ 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, 601 },
|
||||||
{ 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, 614 },
|
{ 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, 614 },
|
||||||
{ 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, 627 },
|
{ 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, 627 },
|
||||||
{ 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, 640 },
|
{ 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, 640 },
|
||||||
{ 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, 678 },
|
{ 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, 678 },
|
||||||
{ 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, 686 },
|
{ 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, 686 },
|
||||||
{ 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, 695 },
|
{ 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, 695 },
|
||||||
{ 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, 702 },
|
{ 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, 702 },
|
||||||
{ 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, 709 },
|
{ 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, 709 },
|
||||||
{ 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, 716 },
|
{ 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, 716 },
|
||||||
{ 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, 723 },
|
{ 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, 723 },
|
||||||
{ 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, 732 },
|
{ 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, 732 },
|
||||||
{ PROC_LINKS(toggle_fps_meter, 0), "toggle_fps_meter", 16, "Toggles the visibility of the FPS performance meter", 51, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 742 },
|
{ PROC_LINKS(toggle_fps_meter, 0), "toggle_fps_meter", 16, "Toggles the visibility of the FPS performance meter", 51, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 742 },
|
||||||
{ 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, 748 },
|
{ 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, 748 },
|
||||||
{ 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, 758 },
|
{ 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, 758 },
|
||||||
{ 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, 768 },
|
{ 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, 768 },
|
||||||
{ 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, 779 },
|
{ 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, 779 },
|
||||||
{ PROC_LINKS(mouse_wheel_change_face_size, 0), "mouse_wheel_change_face_size", 28, "Reads the state of the mouse wheel and uses it to either increase or decrease the face size.", 92, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 790 },
|
{ PROC_LINKS(mouse_wheel_change_face_size, 0), "mouse_wheel_change_face_size", 28, "Reads the state of the mouse wheel and uses it to either increase or decrease the face size.", 92, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 790 },
|
||||||
{ 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, 807 },
|
{ 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, 807 },
|
||||||
{ 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, 817 },
|
{ 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, 817 },
|
||||||
{ PROC_LINKS(toggle_line_numbers, 0), "toggle_line_numbers", 19, "Toggles the left margin line numbers.", 37, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 826 },
|
{ PROC_LINKS(toggle_line_numbers, 0), "toggle_line_numbers", 19, "Toggles the left margin line numbers.", 37, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 826 },
|
||||||
{ 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, 832 },
|
{ 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, 832 },
|
||||||
{ 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, 840 },
|
{ 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, 840 },
|
||||||
{ PROC_LINKS(exit_4coder, 0), "exit_4coder", 11, "Attempts to close 4coder.", 25, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 848 },
|
{ PROC_LINKS(exit_4coder, 0), "exit_4coder", 11, "Attempts to close 4coder.", 25, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 848 },
|
||||||
{ 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, 856 },
|
{ 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, 856 },
|
||||||
{ 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, 1078 },
|
{ 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, 1078 },
|
||||||
{ 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, 1084 },
|
{ 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, 1084 },
|
||||||
{ 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, 1090 },
|
{ 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, 1090 },
|
||||||
{ 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, 1101 },
|
{ 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, 1101 },
|
||||||
{ 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, 1112 },
|
{ PROC_LINKS(replace_in_range, 0), "replace_in_range", 16, "Queries the user for a needle and string. Replaces all occurences of needle with string in the range between cursor and the mark in the active buffer.", 150, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1150 },
|
||||||
{ 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, 1213 },
|
{ PROC_LINKS(replace_in_buffer, 0), "replace_in_buffer", 17, "Queries the user for a needle and string. Replaces all occurences of needle with string in the active buffer.", 109, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1159 },
|
||||||
{ 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, 1233 },
|
{ PROC_LINKS(replace_in_all_buffers, 0), "replace_in_all_buffers", 22, "Queries the user for a needle and string. Replaces all occurences of needle with string in all editable buffers.", 112, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1168 },
|
||||||
{ 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, 1249 },
|
{ 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, 1261 },
|
||||||
{ 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, 1284 },
|
{ 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, 1281 },
|
||||||
{ 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, 1309 },
|
{ 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, 1297 },
|
||||||
{ 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, 1347 },
|
{ 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, 1332 },
|
||||||
{ 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, 1382 },
|
{ 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, 1357 },
|
||||||
{ 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, 1422 },
|
{ 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, 1395 },
|
||||||
{ 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, 1455 },
|
{ 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, 1430 },
|
||||||
{ 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, 1461 },
|
{ 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, 1470 },
|
||||||
{ 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, 1467 },
|
{ 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, 1503 },
|
||||||
{ 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, 1481 },
|
{ 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, 1509 },
|
||||||
{ 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, 1546 },
|
{ 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, 1515 },
|
||||||
{ 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, 1578 },
|
{ 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, 1529 },
|
||||||
{ 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, 1591 },
|
{ 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, 1594 },
|
||||||
{ 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, 1603 },
|
{ 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, 1626 },
|
||||||
{ PROC_LINKS(kill_buffer, 0), "kill_buffer", 11, "Kills the current buffer.", 25, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1637 },
|
{ 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, 1639 },
|
||||||
{ PROC_LINKS(save, 0), "save", 4, "Saves the current buffer.", 25, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1645 },
|
{ 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, 1651 },
|
||||||
{ PROC_LINKS(reopen, 0), "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1657 },
|
{ PROC_LINKS(kill_buffer, 0), "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1685 },
|
||||||
{ PROC_LINKS(undo, 0), "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1715 },
|
{ PROC_LINKS(save, 0), "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1693 },
|
||||||
{ PROC_LINKS(redo, 0), "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1728 },
|
{ PROC_LINKS(reopen, 0), "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1705 },
|
||||||
{ PROC_LINKS(undo_all_buffers, 0), "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1742 },
|
{ PROC_LINKS(undo, 0), "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1763 },
|
||||||
{ PROC_LINKS(redo_all_buffers, 0), "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "c:\\4ed\\code\\4coder_base_commands.cpp", 36, 1816 },
|
{ PROC_LINKS(redo, 0), "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1776 },
|
||||||
{ 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, 1919 },
|
{ PROC_LINKS(undo_all_buffers, 0), "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1790 },
|
||||||
{ 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(redo_all_buffers, 0), "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "w:\\4ed\\code\\4coder_base_commands.cpp", 36, 1864 },
|
||||||
{ 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(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, 1967 },
|
||||||
{ 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, 30 },
|
{ 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__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, 40 },
|
{ 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__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, 50 },
|
{ 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, 30 },
|
||||||
{ 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, 60 },
|
{ 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, 40 },
|
||||||
{ 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, 70 },
|
{ 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, 50 },
|
||||||
{ 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, 84 },
|
{ 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, 60 },
|
||||||
{ 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, 95 },
|
{ 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, 70 },
|
||||||
{ 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, 110 },
|
{ 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, 84 },
|
||||||
{ 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, 120 },
|
{ 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, 95 },
|
||||||
{ 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, 139 },
|
{ 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, 110 },
|
||||||
{ 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, 153 },
|
{ 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, 120 },
|
||||||
{ 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, 168 },
|
{ 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, 139 },
|
||||||
{ 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, 183 },
|
{ 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, 153 },
|
||||||
{ 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, 208 },
|
{ 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, 168 },
|
||||||
{ 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, 249 },
|
{ 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, 183 },
|
||||||
{ PROC_LINKS(interactive_switch_buffer, 0), "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "c:\\4ed\\code\\4coder_lists.cpp", 28, 725 },
|
{ 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, 208 },
|
||||||
{ PROC_LINKS(interactive_kill_buffer, 0), "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "c:\\4ed\\code\\4coder_lists.cpp", 28, 744 },
|
{ 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, 249 },
|
||||||
{ 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, 817 },
|
{ PROC_LINKS(interactive_switch_buffer, 0), "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "w:\\4ed\\code\\4coder_lists.cpp", 28, 725 },
|
||||||
{ 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_kill_buffer, 0), "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "w:\\4ed\\code\\4coder_lists.cpp", 28, 744 },
|
||||||
{ PROC_LINKS(interactive_open, 0), "interactive_open", 16, "Interactively opens a file.", 27, "c:\\4ed\\code\\4coder_lists.cpp", 28, 889 },
|
{ 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, 817 },
|
||||||
{ PROC_LINKS(command_lister, 0), "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "c:\\4ed\\code\\4coder_lists.cpp", 28, 971 },
|
{ PROC_LINKS(interactive_new, 0), "interactive_new", 15, "Interactively creates a new file.", 33, "w:\\4ed\\code\\4coder_lists.cpp", 28, 856 },
|
||||||
{ 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, 546 },
|
{ PROC_LINKS(interactive_open, 0), "interactive_open", 16, "Interactively opens a file.", 27, "w:\\4ed\\code\\4coder_lists.cpp", 28, 889 },
|
||||||
{ 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, 555 },
|
{ PROC_LINKS(command_lister, 0), "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "w:\\4ed\\code\\4coder_lists.cpp", 28, 971 },
|
||||||
{ 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, 565 },
|
{ 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, 546 },
|
||||||
{ 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, 575 },
|
{ 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, 555 },
|
||||||
{ 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, 696 },
|
{ 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, 565 },
|
||||||
{ 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, 703 },
|
{ 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, 575 },
|
||||||
{ 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, 710 },
|
{ 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, 15 },
|
||||||
{ 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, 717 },
|
{ 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, 21 },
|
||||||
{ 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, 724 },
|
{ 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, 27 },
|
||||||
{ 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, 731 },
|
{ 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, 33 },
|
||||||
{ 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, 738 },
|
{ 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, 39 },
|
||||||
{ 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, 745 },
|
{ 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, 45 },
|
||||||
{ 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, 752 },
|
{ 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, 51 },
|
||||||
{ 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, 763 },
|
{ 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, 57 },
|
||||||
{ 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, 836 },
|
{ 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, 63 },
|
||||||
{ 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(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, 69 },
|
||||||
{ 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, 31 },
|
{ 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, 75 },
|
||||||
{ 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, 52 },
|
{ 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_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, 61 },
|
{ 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, 31 },
|
||||||
{ 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, 70 },
|
{ 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, 52 },
|
||||||
{ 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, 79 },
|
{ 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, 61 },
|
||||||
{ 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, 88 },
|
{ 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, 70 },
|
||||||
{ 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, 103 },
|
{ 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, 79 },
|
||||||
{ 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, 120 },
|
{ 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, 88 },
|
||||||
{ 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, 365 },
|
{ 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, 103 },
|
||||||
{ 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, 392 },
|
{ 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, 120 },
|
||||||
{ 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, 491 },
|
{ 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, 365 },
|
||||||
{ 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, 508 },
|
{ 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, 392 },
|
||||||
{ 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, 521 },
|
{ 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, 491 },
|
||||||
{ 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, 538 },
|
{ 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, 508 },
|
||||||
{ 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, 552 },
|
{ 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, 521 },
|
||||||
{ 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, 569 },
|
{ 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, 538 },
|
||||||
{ 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, 591 },
|
{ 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, 552 },
|
||||||
{ 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, 608 },
|
{ 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, 569 },
|
||||||
{ 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, 104 },
|
{ 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, 591 },
|
||||||
{ 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, 19 },
|
{ 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, 608 },
|
||||||
{ 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, 28 },
|
{ 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, 104 },
|
||||||
{ 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, 39 },
|
{ 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, 19 },
|
||||||
{ 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, 72 },
|
{ 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, 28 },
|
||||||
{ 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, 114 },
|
{ 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, 39 },
|
||||||
{ 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, 121 },
|
{ 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, 72 },
|
||||||
{ 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(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, 114 },
|
||||||
{ 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, 22 },
|
{ 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, 121 },
|
||||||
{ 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, 128 },
|
{ 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(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, 162 },
|
{ 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, 22 },
|
||||||
{ 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, 177 },
|
{ 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, 128 },
|
||||||
{ 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, 183 },
|
{ 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, 162 },
|
||||||
{ 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, 928 },
|
{ 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, 177 },
|
||||||
{ 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, 934 },
|
{ 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, 183 },
|
||||||
{ 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, 940 },
|
{ 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, 928 },
|
||||||
{ 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, 948 },
|
{ 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, 934 },
|
||||||
{ 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, 955 },
|
{ 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, 940 },
|
||||||
{ 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, 978 },
|
{ 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, 948 },
|
||||||
{ 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, 1313 },
|
{ 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, 955 },
|
||||||
{ 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, 1320 },
|
{ 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, 978 },
|
||||||
{ 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, 1326 },
|
{ 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, 1313 },
|
||||||
{ 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, 1332 },
|
{ 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, 1320 },
|
||||||
{ 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, 1347 },
|
{ 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, 1326 },
|
||||||
{ 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, 268 },
|
{ 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, 1332 },
|
||||||
{ 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, 278 },
|
{ 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, 1347 },
|
||||||
{ 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, 290 },
|
{ 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, 268 },
|
||||||
{ 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, 296 },
|
{ 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, 278 },
|
||||||
{ 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, 337 },
|
{ 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, 290 },
|
||||||
{ 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, 352 },
|
{ 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, 296 },
|
||||||
{ 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, 371 },
|
{ 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, 337 },
|
||||||
{ 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, 445 },
|
{ 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, 352 },
|
||||||
{ 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, 451 },
|
{ 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, 371 },
|
||||||
{ 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, 670 },
|
{ 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, 445 },
|
||||||
{ 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, 46 },
|
{ 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, 451 },
|
||||||
{ 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, 54 },
|
{ 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, 670 },
|
||||||
{ 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, 62 },
|
{ 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, 46 },
|
||||||
{ 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, 70 },
|
{ 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, 54 },
|
||||||
{ 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, 76 },
|
{ 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, 62 },
|
||||||
{ 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, 82 },
|
{ 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, 70 },
|
||||||
{ 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, 88 },
|
{ 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, 76 },
|
||||||
{ 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, 94 },
|
{ 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, 82 },
|
||||||
{ 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, 100 },
|
{ 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, 88 },
|
||||||
{ PROC_LINKS(comment_line, 0), "comment_line", 12, "Insert '//' at the beginning of the line after leading whitespace.", 66, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 126 },
|
{ 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, 94 },
|
||||||
{ PROC_LINKS(uncomment_line, 0), "uncomment_line", 14, "If present, delete '//' at the beginning of the line after leading whitespace.", 78, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 138 },
|
{ 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, 100 },
|
||||||
{ PROC_LINKS(comment_line_toggle, 0), "comment_line_toggle", 19, "Turns uncommented lines into commented lines and vice versa for comments starting with '//'.", 92, "c:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 150 },
|
{ PROC_LINKS(comment_line, 0), "comment_line", 12, "Insert '//' at the beginning of the line after leading whitespace.", 66, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 126 },
|
||||||
{ 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, 234 },
|
{ PROC_LINKS(uncomment_line, 0), "uncomment_line", 14, "If present, delete '//' at the beginning of the line after leading whitespace.", 78, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 138 },
|
||||||
{ 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, 39 },
|
{ PROC_LINKS(comment_line_toggle, 0), "comment_line_toggle", 19, "Turns uncommented lines into commented lines and vice versa for comments starting with '//'.", 92, "w:\\4ed\\code\\4coder_combined_write_commands.cpp", 46, 150 },
|
||||||
{ 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, 49 },
|
{ 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, 234 },
|
||||||
{ 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, 64 },
|
{ 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, 39 },
|
||||||
{ PROC_LINKS(miblo_increment_basic, 0), "miblo_increment_basic", 21, "Increment an integer under the cursor by one.", 45, "c:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 29 },
|
{ 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, 49 },
|
||||||
{ PROC_LINKS(miblo_decrement_basic, 0), "miblo_decrement_basic", 21, "Decrement an integer under the cursor by one.", 45, "c:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 44 },
|
{ 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, 64 },
|
||||||
{ PROC_LINKS(miblo_increment_time_stamp, 0), "miblo_increment_time_stamp", 26, "Increment a time stamp under the cursor by one second. (format [m]m:ss or h:mm:ss", 81, "c:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 231 },
|
{ PROC_LINKS(miblo_increment_basic, 0), "miblo_increment_basic", 21, "Increment an integer under the cursor by one.", 45, "w:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 29 },
|
||||||
{ PROC_LINKS(miblo_decrement_time_stamp, 0), "miblo_decrement_time_stamp", 26, "Decrement a time stamp under the cursor by one second. (format [m]m:ss or h:mm:ss", 81, "c:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 237 },
|
{ PROC_LINKS(miblo_decrement_basic, 0), "miblo_decrement_basic", 21, "Decrement an integer under the cursor by one.", 45, "w:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 44 },
|
||||||
{ PROC_LINKS(miblo_increment_time_stamp_minute, 0), "miblo_increment_time_stamp_minute", 33, "Increment a time stamp under the cursor by one minute. (format [m]m:ss or h:mm:ss", 81, "c:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 243 },
|
{ PROC_LINKS(miblo_increment_time_stamp, 0), "miblo_increment_time_stamp", 26, "Increment a time stamp under the cursor by one second. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 231 },
|
||||||
{ PROC_LINKS(miblo_decrement_time_stamp_minute, 0), "miblo_decrement_time_stamp_minute", 33, "Decrement a time stamp under the cursor by one minute. (format [m]m:ss or h:mm:ss", 81, "c:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 249 },
|
{ PROC_LINKS(miblo_decrement_time_stamp, 0), "miblo_decrement_time_stamp", 26, "Decrement a time stamp under the cursor by one second. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 237 },
|
||||||
{ PROC_LINKS(kill_rect, 0), "kill_rect", 9, "Delete characters in a rectangular region. Range testing is done by unwrapped-xy coordinates.", 93, "c:\\4ed\\code\\4coder_experiments.cpp", 34, 44 },
|
{ PROC_LINKS(miblo_increment_time_stamp_minute, 0), "miblo_increment_time_stamp_minute", 33, "Increment a time stamp under the cursor by one minute. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 243 },
|
||||||
{ PROC_LINKS(multi_line_edit, 0), "multi_line_edit", 15, "Begin multi-line mode. In multi-line mode characters are inserted at every line between the mark and cursor. All characters are inserted at the same character offset into the line. This mode uses line_char coordinates.", 221, "c:\\4ed\\code\\4coder_experiments.cpp", 34, 125 },
|
{ PROC_LINKS(miblo_decrement_time_stamp_minute, 0), "miblo_decrement_time_stamp_minute", 33, "Decrement a time stamp under the cursor by one minute. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\4coder_miblo_numbers.cpp", 36, 249 },
|
||||||
{ PROC_LINKS(rename_parameter, 0), "rename_parameter", 16, "If the cursor is found to be on the name of a function parameter in the signature of a function definition, all occurences within the scope of the function will be replaced with a new provided string.", 200, "c:\\4ed\\code\\4coder_experiments.cpp", 34, 386 },
|
{ PROC_LINKS(kill_rect, 0), "kill_rect", 9, "Delete characters in a rectangular region. Range testing is done by unwrapped-xy coordinates.", 93, "w:\\4ed\\code\\4coder_experiments.cpp", 34, 44 },
|
||||||
{ PROC_LINKS(write_explicit_enum_values, 0), "write_explicit_enum_values", 26, "If the cursor is found to be on the '{' of an enum definition, the values of the enum will be filled in sequentially starting from zero. Existing values are overwritten.", 170, "c:\\4ed\\code\\4coder_experiments.cpp", 34, 693 },
|
{ PROC_LINKS(multi_line_edit, 0), "multi_line_edit", 15, "Begin multi-line mode. In multi-line mode characters are inserted at every line between the mark and cursor. All characters are inserted at the same character offset into the line. This mode uses line_char coordinates.", 221, "w:\\4ed\\code\\4coder_experiments.cpp", 34, 125 },
|
||||||
{ PROC_LINKS(write_explicit_enum_flags, 0), "write_explicit_enum_flags", 25, "If the cursor is found to be on the '{' of an enum definition, the values of the enum will be filled in to give each a unique power of 2 value, starting from 1. Existing values are overwritten.", 194, "c:\\4ed\\code\\4coder_experiments.cpp", 34, 699 },
|
{ PROC_LINKS(rename_parameter, 0), "rename_parameter", 16, "If the cursor is found to be on the name of a function parameter in the signature of a function definition, all occurences within the scope of the function will be replaced with a new provided string.", 200, "w:\\4ed\\code\\4coder_experiments.cpp", 34, 386 },
|
||||||
|
{ PROC_LINKS(write_explicit_enum_values, 0), "write_explicit_enum_values", 26, "If the cursor is found to be on the '{' of an enum definition, the values of the enum will be filled in sequentially starting from zero. Existing values are overwritten.", 170, "w:\\4ed\\code\\4coder_experiments.cpp", 34, 693 },
|
||||||
};
|
};
|
||||||
static int32_t fcoder_metacmd_ID_replace_all_occurrences = 0;
|
static int32_t fcoder_metacmd_ID_write_explicit_enum_flags = 0;
|
||||||
static int32_t fcoder_metacmd_ID_seek_beginning_of_textual_line = 1;
|
static int32_t fcoder_metacmd_ID_seek_beginning_of_textual_line = 1;
|
||||||
static int32_t fcoder_metacmd_ID_seek_end_of_textual_line = 2;
|
static int32_t fcoder_metacmd_ID_seek_end_of_textual_line = 2;
|
||||||
static int32_t fcoder_metacmd_ID_seek_beginning_of_line = 3;
|
static int32_t fcoder_metacmd_ID_seek_beginning_of_line = 3;
|
||||||
|
@ -588,146 +590,147 @@ static int32_t fcoder_metacmd_ID_reverse_search = 90;
|
||||||
static int32_t fcoder_metacmd_ID_search_identifier = 91;
|
static int32_t fcoder_metacmd_ID_search_identifier = 91;
|
||||||
static int32_t fcoder_metacmd_ID_reverse_search_identifier = 92;
|
static int32_t fcoder_metacmd_ID_reverse_search_identifier = 92;
|
||||||
static int32_t fcoder_metacmd_ID_replace_in_range = 93;
|
static int32_t fcoder_metacmd_ID_replace_in_range = 93;
|
||||||
static int32_t fcoder_metacmd_ID_query_replace = 94;
|
static int32_t fcoder_metacmd_ID_replace_in_buffer = 94;
|
||||||
static int32_t fcoder_metacmd_ID_query_replace_identifier = 95;
|
static int32_t fcoder_metacmd_ID_replace_in_all_buffers = 95;
|
||||||
static int32_t fcoder_metacmd_ID_query_replace_selection = 96;
|
static int32_t fcoder_metacmd_ID_query_replace = 96;
|
||||||
static int32_t fcoder_metacmd_ID_save_all_dirty_buffers = 97;
|
static int32_t fcoder_metacmd_ID_query_replace_identifier = 97;
|
||||||
static int32_t fcoder_metacmd_ID_delete_file_query = 98;
|
static int32_t fcoder_metacmd_ID_query_replace_selection = 98;
|
||||||
static int32_t fcoder_metacmd_ID_save_to_query = 99;
|
static int32_t fcoder_metacmd_ID_save_all_dirty_buffers = 99;
|
||||||
static int32_t fcoder_metacmd_ID_rename_file_query = 100;
|
static int32_t fcoder_metacmd_ID_delete_file_query = 100;
|
||||||
static int32_t fcoder_metacmd_ID_make_directory_query = 101;
|
static int32_t fcoder_metacmd_ID_save_to_query = 101;
|
||||||
static int32_t fcoder_metacmd_ID_move_line_up = 102;
|
static int32_t fcoder_metacmd_ID_rename_file_query = 102;
|
||||||
static int32_t fcoder_metacmd_ID_move_line_down = 103;
|
static int32_t fcoder_metacmd_ID_make_directory_query = 103;
|
||||||
static int32_t fcoder_metacmd_ID_duplicate_line = 104;
|
static int32_t fcoder_metacmd_ID_move_line_up = 104;
|
||||||
static int32_t fcoder_metacmd_ID_delete_line = 105;
|
static int32_t fcoder_metacmd_ID_move_line_down = 105;
|
||||||
static int32_t fcoder_metacmd_ID_open_file_in_quotes = 106;
|
static int32_t fcoder_metacmd_ID_duplicate_line = 106;
|
||||||
static int32_t fcoder_metacmd_ID_open_matching_file_cpp = 107;
|
static int32_t fcoder_metacmd_ID_delete_line = 107;
|
||||||
static int32_t fcoder_metacmd_ID_view_buffer_other_panel = 108;
|
static int32_t fcoder_metacmd_ID_open_file_in_quotes = 108;
|
||||||
static int32_t fcoder_metacmd_ID_swap_buffers_between_panels = 109;
|
static int32_t fcoder_metacmd_ID_open_matching_file_cpp = 109;
|
||||||
static int32_t fcoder_metacmd_ID_kill_buffer = 110;
|
static int32_t fcoder_metacmd_ID_view_buffer_other_panel = 110;
|
||||||
static int32_t fcoder_metacmd_ID_save = 111;
|
static int32_t fcoder_metacmd_ID_swap_buffers_between_panels = 111;
|
||||||
static int32_t fcoder_metacmd_ID_reopen = 112;
|
static int32_t fcoder_metacmd_ID_kill_buffer = 112;
|
||||||
static int32_t fcoder_metacmd_ID_undo = 113;
|
static int32_t fcoder_metacmd_ID_save = 113;
|
||||||
static int32_t fcoder_metacmd_ID_redo = 114;
|
static int32_t fcoder_metacmd_ID_reopen = 114;
|
||||||
static int32_t fcoder_metacmd_ID_undo_all_buffers = 115;
|
static int32_t fcoder_metacmd_ID_undo = 115;
|
||||||
static int32_t fcoder_metacmd_ID_redo_all_buffers = 116;
|
static int32_t fcoder_metacmd_ID_redo = 116;
|
||||||
static int32_t fcoder_metacmd_ID_open_in_other = 117;
|
static int32_t fcoder_metacmd_ID_undo_all_buffers = 117;
|
||||||
static int32_t fcoder_metacmd_ID_lister__quit = 118;
|
static int32_t fcoder_metacmd_ID_redo_all_buffers = 118;
|
||||||
static int32_t fcoder_metacmd_ID_lister__activate = 119;
|
static int32_t fcoder_metacmd_ID_open_in_other = 119;
|
||||||
static int32_t fcoder_metacmd_ID_lister__write_character = 120;
|
static int32_t fcoder_metacmd_ID_lister__quit = 120;
|
||||||
static int32_t fcoder_metacmd_ID_lister__backspace_text_field = 121;
|
static int32_t fcoder_metacmd_ID_lister__activate = 121;
|
||||||
static int32_t fcoder_metacmd_ID_lister__move_up = 122;
|
static int32_t fcoder_metacmd_ID_lister__write_character = 122;
|
||||||
static int32_t fcoder_metacmd_ID_lister__move_down = 123;
|
static int32_t fcoder_metacmd_ID_lister__backspace_text_field = 123;
|
||||||
static int32_t fcoder_metacmd_ID_lister__wheel_scroll = 124;
|
static int32_t fcoder_metacmd_ID_lister__move_up = 124;
|
||||||
static int32_t fcoder_metacmd_ID_lister__mouse_press = 125;
|
static int32_t fcoder_metacmd_ID_lister__move_down = 125;
|
||||||
static int32_t fcoder_metacmd_ID_lister__mouse_release = 126;
|
static int32_t fcoder_metacmd_ID_lister__wheel_scroll = 126;
|
||||||
static int32_t fcoder_metacmd_ID_lister__repaint = 127;
|
static int32_t fcoder_metacmd_ID_lister__mouse_press = 127;
|
||||||
static int32_t fcoder_metacmd_ID_lister__write_character__default = 128;
|
static int32_t fcoder_metacmd_ID_lister__mouse_release = 128;
|
||||||
static int32_t fcoder_metacmd_ID_lister__backspace_text_field__default = 129;
|
static int32_t fcoder_metacmd_ID_lister__repaint = 129;
|
||||||
static int32_t fcoder_metacmd_ID_lister__move_up__default = 130;
|
static int32_t fcoder_metacmd_ID_lister__write_character__default = 130;
|
||||||
static int32_t fcoder_metacmd_ID_lister__move_down__default = 131;
|
static int32_t fcoder_metacmd_ID_lister__backspace_text_field__default = 131;
|
||||||
static int32_t fcoder_metacmd_ID_lister__write_character__file_path = 132;
|
static int32_t fcoder_metacmd_ID_lister__move_up__default = 132;
|
||||||
static int32_t fcoder_metacmd_ID_lister__backspace_text_field__file_path = 133;
|
static int32_t fcoder_metacmd_ID_lister__move_down__default = 133;
|
||||||
static int32_t fcoder_metacmd_ID_lister__write_character__fixed_list = 134;
|
static int32_t fcoder_metacmd_ID_lister__write_character__file_path = 134;
|
||||||
static int32_t fcoder_metacmd_ID_interactive_switch_buffer = 135;
|
static int32_t fcoder_metacmd_ID_lister__backspace_text_field__file_path = 135;
|
||||||
static int32_t fcoder_metacmd_ID_interactive_kill_buffer = 136;
|
static int32_t fcoder_metacmd_ID_lister__write_character__fixed_list = 136;
|
||||||
static int32_t fcoder_metacmd_ID_interactive_open_or_new = 137;
|
static int32_t fcoder_metacmd_ID_interactive_switch_buffer = 137;
|
||||||
static int32_t fcoder_metacmd_ID_interactive_new = 138;
|
static int32_t fcoder_metacmd_ID_interactive_kill_buffer = 138;
|
||||||
static int32_t fcoder_metacmd_ID_interactive_open = 139;
|
static int32_t fcoder_metacmd_ID_interactive_open_or_new = 139;
|
||||||
static int32_t fcoder_metacmd_ID_command_lister = 140;
|
static int32_t fcoder_metacmd_ID_interactive_new = 140;
|
||||||
static int32_t fcoder_metacmd_ID_auto_tab_whole_file = 141;
|
static int32_t fcoder_metacmd_ID_interactive_open = 141;
|
||||||
static int32_t fcoder_metacmd_ID_auto_tab_line_at_cursor = 142;
|
static int32_t fcoder_metacmd_ID_command_lister = 142;
|
||||||
static int32_t fcoder_metacmd_ID_auto_tab_range = 143;
|
static int32_t fcoder_metacmd_ID_auto_tab_whole_file = 143;
|
||||||
static int32_t fcoder_metacmd_ID_write_and_auto_tab = 144;
|
static int32_t fcoder_metacmd_ID_auto_tab_line_at_cursor = 144;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations = 145;
|
static int32_t fcoder_metacmd_ID_auto_tab_range = 145;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_substring_locations = 146;
|
static int32_t fcoder_metacmd_ID_write_and_auto_tab = 146;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations_case_insensitive = 147;
|
static int32_t fcoder_metacmd_ID_list_all_locations = 147;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 148;
|
static int32_t fcoder_metacmd_ID_list_all_substring_locations = 148;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations_of_identifier = 149;
|
static int32_t fcoder_metacmd_ID_list_all_locations_case_insensitive = 149;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 150;
|
static int32_t fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 150;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations_of_selection = 151;
|
static int32_t fcoder_metacmd_ID_list_all_locations_of_identifier = 151;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 152;
|
static int32_t fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 152;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations_of_type_definition = 153;
|
static int32_t fcoder_metacmd_ID_list_all_locations_of_selection = 153;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 154;
|
static int32_t fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 154;
|
||||||
static int32_t fcoder_metacmd_ID_word_complete = 155;
|
static int32_t fcoder_metacmd_ID_list_all_locations_of_type_definition = 155;
|
||||||
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_direct = 156;
|
static int32_t fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 156;
|
||||||
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_same_panel_direct = 157;
|
static int32_t fcoder_metacmd_ID_word_complete = 157;
|
||||||
static int32_t fcoder_metacmd_ID_goto_next_jump_direct = 158;
|
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_direct = 158;
|
||||||
static int32_t fcoder_metacmd_ID_goto_prev_jump_direct = 159;
|
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_same_panel_direct = 159;
|
||||||
static int32_t fcoder_metacmd_ID_goto_next_jump_no_skips_direct = 160;
|
static int32_t fcoder_metacmd_ID_goto_next_jump_direct = 160;
|
||||||
static int32_t fcoder_metacmd_ID_goto_prev_jump_no_skips_direct = 161;
|
static int32_t fcoder_metacmd_ID_goto_prev_jump_direct = 161;
|
||||||
static int32_t fcoder_metacmd_ID_goto_first_jump_direct = 162;
|
static int32_t fcoder_metacmd_ID_goto_next_jump_no_skips_direct = 162;
|
||||||
static int32_t fcoder_metacmd_ID_newline_or_goto_position_direct = 163;
|
static int32_t fcoder_metacmd_ID_goto_prev_jump_no_skips_direct = 163;
|
||||||
static int32_t fcoder_metacmd_ID_newline_or_goto_position_same_panel_direct = 164;
|
static int32_t fcoder_metacmd_ID_goto_first_jump_direct = 164;
|
||||||
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_sticky = 165;
|
static int32_t fcoder_metacmd_ID_newline_or_goto_position_direct = 165;
|
||||||
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_same_panel_sticky = 166;
|
static int32_t fcoder_metacmd_ID_newline_or_goto_position_same_panel_direct = 166;
|
||||||
static int32_t fcoder_metacmd_ID_goto_next_jump_sticky = 167;
|
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_sticky = 167;
|
||||||
static int32_t fcoder_metacmd_ID_goto_prev_jump_sticky = 168;
|
static int32_t fcoder_metacmd_ID_goto_jump_at_cursor_same_panel_sticky = 168;
|
||||||
static int32_t fcoder_metacmd_ID_goto_next_jump_no_skips_sticky = 169;
|
static int32_t fcoder_metacmd_ID_goto_next_jump_sticky = 169;
|
||||||
static int32_t fcoder_metacmd_ID_goto_prev_jump_no_skips_sticky = 170;
|
static int32_t fcoder_metacmd_ID_goto_prev_jump_sticky = 170;
|
||||||
static int32_t fcoder_metacmd_ID_goto_first_jump_sticky = 171;
|
static int32_t fcoder_metacmd_ID_goto_next_jump_no_skips_sticky = 171;
|
||||||
static int32_t fcoder_metacmd_ID_goto_first_jump_same_panel_sticky = 172;
|
static int32_t fcoder_metacmd_ID_goto_prev_jump_no_skips_sticky = 172;
|
||||||
static int32_t fcoder_metacmd_ID_newline_or_goto_position_sticky = 173;
|
static int32_t fcoder_metacmd_ID_goto_first_jump_sticky = 173;
|
||||||
static int32_t fcoder_metacmd_ID_newline_or_goto_position_same_panel_sticky = 174;
|
static int32_t fcoder_metacmd_ID_goto_first_jump_same_panel_sticky = 174;
|
||||||
static int32_t fcoder_metacmd_ID_view_jump_list_with_lister = 175;
|
static int32_t fcoder_metacmd_ID_newline_or_goto_position_sticky = 175;
|
||||||
static int32_t fcoder_metacmd_ID_copy = 176;
|
static int32_t fcoder_metacmd_ID_newline_or_goto_position_same_panel_sticky = 176;
|
||||||
static int32_t fcoder_metacmd_ID_cut = 177;
|
static int32_t fcoder_metacmd_ID_view_jump_list_with_lister = 177;
|
||||||
static int32_t fcoder_metacmd_ID_paste = 178;
|
static int32_t fcoder_metacmd_ID_copy = 178;
|
||||||
static int32_t fcoder_metacmd_ID_paste_next = 179;
|
static int32_t fcoder_metacmd_ID_cut = 179;
|
||||||
static int32_t fcoder_metacmd_ID_paste_and_indent = 180;
|
static int32_t fcoder_metacmd_ID_paste = 180;
|
||||||
static int32_t fcoder_metacmd_ID_paste_next_and_indent = 181;
|
static int32_t fcoder_metacmd_ID_paste_next = 181;
|
||||||
static int32_t fcoder_metacmd_ID_execute_previous_cli = 182;
|
static int32_t fcoder_metacmd_ID_paste_and_indent = 182;
|
||||||
static int32_t fcoder_metacmd_ID_execute_any_cli = 183;
|
static int32_t fcoder_metacmd_ID_paste_next_and_indent = 183;
|
||||||
static int32_t fcoder_metacmd_ID_build_search = 184;
|
static int32_t fcoder_metacmd_ID_execute_previous_cli = 184;
|
||||||
static int32_t fcoder_metacmd_ID_build_in_build_panel = 185;
|
static int32_t fcoder_metacmd_ID_execute_any_cli = 185;
|
||||||
static int32_t fcoder_metacmd_ID_close_build_panel = 186;
|
static int32_t fcoder_metacmd_ID_build_search = 186;
|
||||||
static int32_t fcoder_metacmd_ID_change_to_build_panel = 187;
|
static int32_t fcoder_metacmd_ID_build_in_build_panel = 187;
|
||||||
static int32_t fcoder_metacmd_ID_close_all_code = 188;
|
static int32_t fcoder_metacmd_ID_close_build_panel = 188;
|
||||||
static int32_t fcoder_metacmd_ID_open_all_code = 189;
|
static int32_t fcoder_metacmd_ID_change_to_build_panel = 189;
|
||||||
static int32_t fcoder_metacmd_ID_open_all_code_recursive = 190;
|
static int32_t fcoder_metacmd_ID_close_all_code = 190;
|
||||||
static int32_t fcoder_metacmd_ID_load_project = 191;
|
static int32_t fcoder_metacmd_ID_open_all_code = 191;
|
||||||
static int32_t fcoder_metacmd_ID_project_fkey_command = 192;
|
static int32_t fcoder_metacmd_ID_open_all_code_recursive = 192;
|
||||||
static int32_t fcoder_metacmd_ID_project_go_to_root_directory = 193;
|
static int32_t fcoder_metacmd_ID_load_project = 193;
|
||||||
static int32_t fcoder_metacmd_ID_setup_new_project = 194;
|
static int32_t fcoder_metacmd_ID_project_fkey_command = 194;
|
||||||
static int32_t fcoder_metacmd_ID_setup_build_bat = 195;
|
static int32_t fcoder_metacmd_ID_project_go_to_root_directory = 195;
|
||||||
static int32_t fcoder_metacmd_ID_setup_build_sh = 196;
|
static int32_t fcoder_metacmd_ID_setup_new_project = 196;
|
||||||
static int32_t fcoder_metacmd_ID_setup_build_bat_and_sh = 197;
|
static int32_t fcoder_metacmd_ID_setup_build_bat = 197;
|
||||||
static int32_t fcoder_metacmd_ID_project_command_lister = 198;
|
static int32_t fcoder_metacmd_ID_setup_build_sh = 198;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_functions_current_buffer = 199;
|
static int32_t fcoder_metacmd_ID_setup_build_bat_and_sh = 199;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 200;
|
static int32_t fcoder_metacmd_ID_project_command_lister = 200;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_functions_all_buffers = 201;
|
static int32_t fcoder_metacmd_ID_list_all_functions_current_buffer = 201;
|
||||||
static int32_t fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 202;
|
static int32_t fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 202;
|
||||||
static int32_t fcoder_metacmd_ID_select_surrounding_scope = 203;
|
static int32_t fcoder_metacmd_ID_list_all_functions_all_buffers = 203;
|
||||||
static int32_t fcoder_metacmd_ID_select_next_scope_absolute = 204;
|
static int32_t fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 204;
|
||||||
static int32_t fcoder_metacmd_ID_select_prev_scope_absolute = 205;
|
static int32_t fcoder_metacmd_ID_select_surrounding_scope = 205;
|
||||||
static int32_t fcoder_metacmd_ID_place_in_scope = 206;
|
static int32_t fcoder_metacmd_ID_select_next_scope_absolute = 206;
|
||||||
static int32_t fcoder_metacmd_ID_delete_current_scope = 207;
|
static int32_t fcoder_metacmd_ID_select_prev_scope_absolute = 207;
|
||||||
static int32_t fcoder_metacmd_ID_scope_absorb_down = 208;
|
static int32_t fcoder_metacmd_ID_place_in_scope = 208;
|
||||||
static int32_t fcoder_metacmd_ID_open_long_braces = 209;
|
static int32_t fcoder_metacmd_ID_delete_current_scope = 209;
|
||||||
static int32_t fcoder_metacmd_ID_open_long_braces_semicolon = 210;
|
static int32_t fcoder_metacmd_ID_scope_absorb_down = 210;
|
||||||
static int32_t fcoder_metacmd_ID_open_long_braces_break = 211;
|
static int32_t fcoder_metacmd_ID_open_long_braces = 211;
|
||||||
static int32_t fcoder_metacmd_ID_if0_off = 212;
|
static int32_t fcoder_metacmd_ID_open_long_braces_semicolon = 212;
|
||||||
static int32_t fcoder_metacmd_ID_write_todo = 213;
|
static int32_t fcoder_metacmd_ID_open_long_braces_break = 213;
|
||||||
static int32_t fcoder_metacmd_ID_write_hack = 214;
|
static int32_t fcoder_metacmd_ID_if0_off = 214;
|
||||||
static int32_t fcoder_metacmd_ID_write_note = 215;
|
static int32_t fcoder_metacmd_ID_write_todo = 215;
|
||||||
static int32_t fcoder_metacmd_ID_write_block = 216;
|
static int32_t fcoder_metacmd_ID_write_hack = 216;
|
||||||
static int32_t fcoder_metacmd_ID_write_zero_struct = 217;
|
static int32_t fcoder_metacmd_ID_write_note = 217;
|
||||||
static int32_t fcoder_metacmd_ID_comment_line = 218;
|
static int32_t fcoder_metacmd_ID_write_block = 218;
|
||||||
static int32_t fcoder_metacmd_ID_uncomment_line = 219;
|
static int32_t fcoder_metacmd_ID_write_zero_struct = 219;
|
||||||
static int32_t fcoder_metacmd_ID_comment_line_toggle = 220;
|
static int32_t fcoder_metacmd_ID_comment_line = 220;
|
||||||
static int32_t fcoder_metacmd_ID_snippet_lister = 221;
|
static int32_t fcoder_metacmd_ID_uncomment_line = 221;
|
||||||
static int32_t fcoder_metacmd_ID_set_bindings_choose = 222;
|
static int32_t fcoder_metacmd_ID_comment_line_toggle = 222;
|
||||||
static int32_t fcoder_metacmd_ID_set_bindings_default = 223;
|
static int32_t fcoder_metacmd_ID_snippet_lister = 223;
|
||||||
static int32_t fcoder_metacmd_ID_set_bindings_mac_default = 224;
|
static int32_t fcoder_metacmd_ID_set_bindings_choose = 224;
|
||||||
static int32_t fcoder_metacmd_ID_miblo_increment_basic = 225;
|
static int32_t fcoder_metacmd_ID_set_bindings_default = 225;
|
||||||
static int32_t fcoder_metacmd_ID_miblo_decrement_basic = 226;
|
static int32_t fcoder_metacmd_ID_set_bindings_mac_default = 226;
|
||||||
static int32_t fcoder_metacmd_ID_miblo_increment_time_stamp = 227;
|
static int32_t fcoder_metacmd_ID_miblo_increment_basic = 227;
|
||||||
static int32_t fcoder_metacmd_ID_miblo_decrement_time_stamp = 228;
|
static int32_t fcoder_metacmd_ID_miblo_decrement_basic = 228;
|
||||||
static int32_t fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 229;
|
static int32_t fcoder_metacmd_ID_miblo_increment_time_stamp = 229;
|
||||||
static int32_t fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 230;
|
static int32_t fcoder_metacmd_ID_miblo_decrement_time_stamp = 230;
|
||||||
static int32_t fcoder_metacmd_ID_kill_rect = 231;
|
static int32_t fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 231;
|
||||||
static int32_t fcoder_metacmd_ID_multi_line_edit = 232;
|
static int32_t fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 232;
|
||||||
static int32_t fcoder_metacmd_ID_rename_parameter = 233;
|
static int32_t fcoder_metacmd_ID_kill_rect = 233;
|
||||||
static int32_t fcoder_metacmd_ID_write_explicit_enum_values = 234;
|
static int32_t fcoder_metacmd_ID_multi_line_edit = 234;
|
||||||
static int32_t fcoder_metacmd_ID_write_explicit_enum_flags = 235;
|
static int32_t fcoder_metacmd_ID_rename_parameter = 235;
|
||||||
|
static int32_t fcoder_metacmd_ID_write_explicit_enum_values = 236;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#define FCODER_HASH_FUNCTIONS_CPP
|
#define FCODER_HASH_FUNCTIONS_CPP
|
||||||
|
|
||||||
static u64
|
static u64
|
||||||
table_hash_u8(u8 *v, i32 size){
|
table_hash_u8(u8 *v, umem size){
|
||||||
u64 hash = 0;
|
u64 hash = 0;
|
||||||
for (u8 *p = v, *e = v + size; p < e; p += 1){
|
for (u8 *p = v, *e = v + size; p < e; p += 1){
|
||||||
u8 k = *p;
|
u8 k = *p;
|
||||||
|
@ -26,7 +26,7 @@ table_hash_u8(u8 *v, i32 size){
|
||||||
return(hash);
|
return(hash);
|
||||||
}
|
}
|
||||||
static u64
|
static u64
|
||||||
table_hash_u16(u16 *v, i32 size){
|
table_hash_u16(u16 *v, umem size){
|
||||||
u64 hash = 0;
|
u64 hash = 0;
|
||||||
for (u16 *p = v, *e = v + size; p < e; p += 1){
|
for (u16 *p = v, *e = v + size; p < e; p += 1){
|
||||||
u16 k = *p;
|
u16 k = *p;
|
||||||
|
@ -39,7 +39,7 @@ table_hash_u16(u16 *v, i32 size){
|
||||||
return(hash);
|
return(hash);
|
||||||
}
|
}
|
||||||
static u64
|
static u64
|
||||||
table_hash_u32(u32 *v, i32 size){
|
table_hash_u32(u32 *v, umem size){
|
||||||
u64 hash = 0;
|
u64 hash = 0;
|
||||||
for (u32 *p = v, *e = v + size; p < e; p += 1){
|
for (u32 *p = v, *e = v + size; p < e; p += 1){
|
||||||
u32 k = *p;
|
u32 k = *p;
|
||||||
|
@ -52,7 +52,7 @@ table_hash_u32(u32 *v, i32 size){
|
||||||
return(hash);
|
return(hash);
|
||||||
}
|
}
|
||||||
static u64
|
static u64
|
||||||
table_hash_u64(u64 *v, i32 size){
|
table_hash_u64(u64 *v, umem size){
|
||||||
u64 hash = 0;
|
u64 hash = 0;
|
||||||
for (u64 *p = v, *e = v + size; p < e; p += 1){
|
for (u64 *p = v, *e = v + size; p < e; p += 1){
|
||||||
u64 k = *p;
|
u64 k = *p;
|
||||||
|
@ -65,7 +65,7 @@ table_hash_u64(u64 *v, i32 size){
|
||||||
return(hash);
|
return(hash);
|
||||||
}
|
}
|
||||||
static u64
|
static u64
|
||||||
table_hash(void *v, i32 it_size, i32 size){
|
table_hash(void *v, i32 it_size, umem size){
|
||||||
u64 hash = 0;
|
u64 hash = 0;
|
||||||
switch (it_size){
|
switch (it_size){
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -2102,7 +2102,7 @@ open_file_try_current_path_then_binary_path(Application_Links *app, char *file_n
|
||||||
static FILE*
|
static FILE*
|
||||||
open_file(Arena *scratch, String_Const_u8 name){
|
open_file(Arena *scratch, String_Const_u8 name){
|
||||||
Temp_Memory temp = begin_temp(scratch);
|
Temp_Memory temp = begin_temp(scratch);
|
||||||
String_Const_u8 name_copy = string_copy(scratch, name);
|
String_Const_u8 name_copy = push_string_copy(scratch, name);
|
||||||
FILE *file = fopen((char*)name_copy.str, "rb");
|
FILE *file = fopen((char*)name_copy.str, "rb");
|
||||||
end_temp(temp);
|
end_temp(temp);
|
||||||
return(file);
|
return(file);
|
||||||
|
|
|
@ -9,284 +9,7 @@ distribute, and modify this file as you see fit.
|
||||||
|
|
||||||
// TOP
|
// TOP
|
||||||
|
|
||||||
#if !defined(Migrating__Arena)
|
#error Deprecated file
|
||||||
static Partition
|
|
||||||
make_part(void *memory, i32 size){
|
|
||||||
Partition part = {};
|
|
||||||
part.base = (char*)memory;
|
|
||||||
part.pos = 0;
|
|
||||||
part.max = size;
|
|
||||||
return(part);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void*
|
|
||||||
part_allocate(Partition *data, i32 size){
|
|
||||||
void *ret = 0;
|
|
||||||
if (size < 0){
|
|
||||||
size = 0;
|
|
||||||
}
|
|
||||||
if (data->pos + size <= data->max){
|
|
||||||
ret = data->base + data->pos;
|
|
||||||
data->pos += size;
|
|
||||||
}
|
|
||||||
return(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
part_reduce(Partition *data, i32 size){
|
|
||||||
if (size > 0 && size <= data->pos){
|
|
||||||
data->pos -= size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
part_align(Partition *data, i32 boundary){
|
|
||||||
i32 p = data->pos;
|
|
||||||
p += boundary - 1;
|
|
||||||
data->pos = p - p%boundary;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void*
|
|
||||||
part_current(Partition *data){
|
|
||||||
return(data->base + data->pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
static i32
|
|
||||||
part_remaining(Partition *data){
|
|
||||||
return(data->max - data->pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Partition
|
|
||||||
part_sub_part(Partition *data, i32 size){
|
|
||||||
Partition result = {};
|
|
||||||
void *d = part_allocate(data, size);
|
|
||||||
if (d != 0){
|
|
||||||
result = make_part(d, size);
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Temp_Memory
|
|
||||||
begin_temp_memory(Partition *data){
|
|
||||||
Temp_Memory result = {};
|
|
||||||
result.part = data;
|
|
||||||
result.pos = data->pos;
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
end_temp_memory(Temp_Memory temp){
|
|
||||||
temp.part->pos = temp.pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void*
|
|
||||||
push_allocator_allocate(Partition *part, i32 size){
|
|
||||||
return(part_allocate(part, size));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
push_allocator_align(Partition *part, i32 b){
|
|
||||||
part_align(part, b);
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
|
|
||||||
#if defined(FCODER_CUSTOM_H)
|
|
||||||
|
|
||||||
static Arena
|
|
||||||
make_arena(Application_Links *app, i32 chunk_size, i32 initial_align){
|
|
||||||
Arena arena = {};
|
|
||||||
arena.app = app;
|
|
||||||
arena.chunk_size = chunk_size;
|
|
||||||
arena.align = initial_align;
|
|
||||||
return(arena);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Arena
|
|
||||||
make_arena(Application_Links *app, i32 chunk_size){
|
|
||||||
return(make_arena(app, chunk_size, 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
static Arena
|
|
||||||
make_arena(Application_Links *app){
|
|
||||||
return(make_arena(app, 4096, 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
arena_release_all(Arena *arena){
|
|
||||||
Application_Links *app = arena->app;
|
|
||||||
for (Partition_Chained *part = arena->part, *prev = 0;
|
|
||||||
part != 0;
|
|
||||||
part = prev){
|
|
||||||
prev = part->prev;
|
|
||||||
memory_free(app, part, part->part.max);
|
|
||||||
}
|
|
||||||
arena->part = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
arena_change_chunk_size(Arena *arena, i32 chunk_size){
|
|
||||||
arena->chunk_size = chunk_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Partition_Chained*
|
|
||||||
arena__new_part(Arena *arena, i32 new_chunk_size){
|
|
||||||
Application_Links *app = arena->app;
|
|
||||||
i32 memory_size = new_chunk_size + sizeof(Partition_Chained);
|
|
||||||
i32 boundardy = 4096;
|
|
||||||
if (memory_size < boundardy){
|
|
||||||
memory_size = boundardy;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
memory_size = memory_size + boundardy - 1;
|
|
||||||
memory_size = memory_size - memory_size%boundardy;
|
|
||||||
}
|
|
||||||
void *memory = memory_allocate(app, memory_size);
|
|
||||||
Partition_Chained *part = (Partition_Chained*)memory;
|
|
||||||
part->part = make_part(memory, memory_size);
|
|
||||||
part_allocate(&part->part, sizeof(*part));
|
|
||||||
part->prev = arena->part;
|
|
||||||
arena->part = part;
|
|
||||||
return(part);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Partition_Chained*
|
|
||||||
arena__new_part(Arena *arena){
|
|
||||||
return(arena__new_part(arena, arena->chunk_size));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
arena__align_inner(Arena *arena, i32 b){
|
|
||||||
if (arena->align != 1){
|
|
||||||
Partition_Chained *part = arena->part;
|
|
||||||
if (part == 0){
|
|
||||||
part = arena__new_part(arena);
|
|
||||||
}
|
|
||||||
part_align(&part->part, b);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void*
|
|
||||||
arena_allocate(Arena *arena, i32 size){
|
|
||||||
void *result = 0;
|
|
||||||
Partition_Chained *part = arena->part;
|
|
||||||
if (part == 0){
|
|
||||||
part = arena__new_part(arena);
|
|
||||||
}
|
|
||||||
arena__align_inner(arena, arena->align);
|
|
||||||
result = part_allocate(&part->part, size);
|
|
||||||
if (result == 0){
|
|
||||||
i32 new_chunk_size = arena->chunk_size;
|
|
||||||
if (size > new_chunk_size){
|
|
||||||
new_chunk_size = size;
|
|
||||||
}
|
|
||||||
part = arena__new_part(arena, new_chunk_size);
|
|
||||||
arena__align_inner(arena, arena->align);
|
|
||||||
result = part_allocate(&part->part, size);
|
|
||||||
}
|
|
||||||
arena->align = 1;
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
arena_align(Arena *arena, i32 b){
|
|
||||||
arena__align_inner(arena, b);
|
|
||||||
arena->align = b;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Partition*
|
|
||||||
arena_use_as_part(Arena *arena, i32 minimum_part_size){
|
|
||||||
if (minimum_part_size < arena->chunk_size){
|
|
||||||
minimum_part_size = arena->chunk_size;
|
|
||||||
}
|
|
||||||
Partition_Chained *part = arena->part;
|
|
||||||
if (part == 0){
|
|
||||||
part = arena__new_part(arena, minimum_part_size);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
if (part_remaining(&part->part) < minimum_part_size){
|
|
||||||
part = arena__new_part(arena, minimum_part_size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(&part->part);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Temp_Memory_Arena
|
|
||||||
begin_temp_memory(Arena *arena){
|
|
||||||
Temp_Memory_Arena result = {};
|
|
||||||
result.arena = arena;
|
|
||||||
result.part = arena->part;
|
|
||||||
if (result.part != 0){
|
|
||||||
result.pos = result.part->part.pos;
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
end_temp_memory(Temp_Memory_Arena temp){
|
|
||||||
Application_Links *app = temp.arena->app;
|
|
||||||
for (Partition_Chained *part = temp.arena->part, *prev = 0;
|
|
||||||
part != temp.part;
|
|
||||||
part = prev){
|
|
||||||
prev = part->prev;
|
|
||||||
memory_free(app, part, part->part.max);
|
|
||||||
}
|
|
||||||
temp.arena->part = temp.part;
|
|
||||||
if (temp.part != 0){
|
|
||||||
temp.part->part.pos = temp.pos;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static Temp_Memory_Arena_Light
|
|
||||||
temp_memory_light(Temp_Memory_Arena temp){
|
|
||||||
Temp_Memory_Arena_Light light = {};
|
|
||||||
light.part = temp.part;
|
|
||||||
light.pos = temp.pos;
|
|
||||||
return(light);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
end_temp_memory(Arena *arena, Temp_Memory_Arena_Light temp){
|
|
||||||
Temp_Memory_Arena full_temp = {};
|
|
||||||
full_temp.arena = arena;
|
|
||||||
full_temp.part = temp.part;
|
|
||||||
full_temp.pos = temp.pos;
|
|
||||||
end_temp_memory(full_temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void*
|
|
||||||
push_allocator_allocate(Arena *arena, i32 size){
|
|
||||||
return(arena_allocate(arena, size));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
push_allocator_align(Arena *arena, i32 b){
|
|
||||||
arena_align(arena, b);
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
|
|
||||||
Scratch_Block::Scratch_Block(Application_Links *app){
|
|
||||||
scratch = context_get_arena(app);
|
|
||||||
temp = begin_temp_memory(scratch);
|
|
||||||
}
|
|
||||||
|
|
||||||
Scratch_Block::~Scratch_Block(){
|
|
||||||
end_temp_memory(temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
Scratch_Block::operator Arena*(){
|
|
||||||
return(scratch);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
|
|
||||||
#define push_array(A, T, size) (T*)push_allocator_allocate((A), sizeof(T)*(size))
|
|
||||||
#define push_align(A, b) push_allocator_align((A), (b))
|
|
||||||
#define reset_temp_memory end_temp_memory
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// BOTTOM
|
// BOTTOM
|
||||||
|
|
||||||
|
|
|
@ -12,55 +12,7 @@ distribute, and modify this file as you see fit.
|
||||||
#if !defined(FCODER_ARENA_H)
|
#if !defined(FCODER_ARENA_H)
|
||||||
#define FCODER_ARENA_H
|
#define FCODER_ARENA_H
|
||||||
|
|
||||||
#if !defined(Migrating__Arena)
|
#error Deprecated file
|
||||||
struct Partition{
|
|
||||||
char *base;
|
|
||||||
i32 pos;
|
|
||||||
i32 max;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Temp_Memory{
|
|
||||||
Partition *part;
|
|
||||||
i32 pos;
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(FCODER_CUSTOM_H)
|
|
||||||
|
|
||||||
struct Partition_Chained{
|
|
||||||
Partition_Chained *prev;
|
|
||||||
Partition part;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Arena{
|
|
||||||
struct Application_Links *app;
|
|
||||||
Partition_Chained *part;
|
|
||||||
i32 chunk_size;
|
|
||||||
i32 align;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Temp_Memory_Arena{
|
|
||||||
Arena *arena;
|
|
||||||
Partition_Chained *part;
|
|
||||||
i32 pos;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Temp_Memory_Arena_Light{
|
|
||||||
Partition_Chained *part;
|
|
||||||
i32 pos;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Scratch_Block{
|
|
||||||
Scratch_Block(Application_Links *app);
|
|
||||||
~Scratch_Block();
|
|
||||||
operator Arena *();
|
|
||||||
|
|
||||||
Arena *scratch;
|
|
||||||
Temp_Memory_Arena temp;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -12,241 +12,7 @@ distribute, and modify this file as you see fit.
|
||||||
#if !defined(FCODER_TABLE_H)
|
#if !defined(FCODER_TABLE_H)
|
||||||
#define FCODER_TABLE_H
|
#define FCODER_TABLE_H
|
||||||
|
|
||||||
#define TableHashEmpty 0
|
#error Deprecated file
|
||||||
#define TableHashDeleted 1
|
|
||||||
#define TableHashMin 0x10000000
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
typedef u32 Hash_Function(void *item, void *arg);
|
|
||||||
typedef i32 Compare_Function(void *key, void *item, void *arg);
|
|
||||||
|
|
||||||
struct Table{
|
|
||||||
u32 *hash_array;
|
|
||||||
char *data_array;
|
|
||||||
i32 count, max;
|
|
||||||
i32 item_size;
|
|
||||||
};
|
|
||||||
|
|
||||||
static i32
|
|
||||||
table_required_mem_size(i32 table_size, i32 item_size){
|
|
||||||
i32 hash_size = ((table_size*sizeof(u32)) + 7) & ~7;
|
|
||||||
i32 mem_size = hash_size + table_size*item_size;
|
|
||||||
return(mem_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
table_init_memory(Table *table, void *memory, i32 table_size, i32 item_size){
|
|
||||||
i32 hash_size = table_size * sizeof(u32);
|
|
||||||
hash_size = (hash_size + 7) & ~7;
|
|
||||||
|
|
||||||
table->hash_array = (u32*)memory;
|
|
||||||
table->data_array = (char*)(table->hash_array) + hash_size;
|
|
||||||
|
|
||||||
table->count = 0;
|
|
||||||
table->max = table_size;
|
|
||||||
table->item_size = item_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
static i32
|
|
||||||
table_at_capacity(Table *table){
|
|
||||||
i32 result = true;
|
|
||||||
if (table->count * 8 < table->max * 7){
|
|
||||||
result = false;
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static i32
|
|
||||||
table_add(Table *table, void *item, void *arg, Hash_Function *hash_func, Compare_Function *comp_func){
|
|
||||||
Assert(table->count * 8 < table->max * 7);
|
|
||||||
|
|
||||||
u32 hash = (hash_func(item, arg) | TableHashMin);
|
|
||||||
i32 i = hash % table->max;
|
|
||||||
i32 start = i;
|
|
||||||
u32 *inspect = table->hash_array + i;
|
|
||||||
|
|
||||||
while (*inspect >= TableHashMin){
|
|
||||||
if (*inspect == hash){
|
|
||||||
if (comp_func(item, table->data_array + i*table->item_size, arg) == 0){
|
|
||||||
return(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
++i;
|
|
||||||
++inspect;
|
|
||||||
if (i == table->max){
|
|
||||||
i = 0;
|
|
||||||
inspect = table->hash_array;
|
|
||||||
}
|
|
||||||
Assert(i != start);
|
|
||||||
}
|
|
||||||
*inspect = hash;
|
|
||||||
memcpy(table->data_array + i*table->item_size, item, table->item_size);
|
|
||||||
++table->count;
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static i32
|
|
||||||
table_find_pos(Table *table, void *search_key, void *arg, i32 *pos, i32 *index, Hash_Function *hash_func, Compare_Function *comp_func){
|
|
||||||
Assert((table->count - 1) * 8 < table->max * 7);
|
|
||||||
|
|
||||||
u32 hash = (hash_func(search_key, arg) | TableHashMin);
|
|
||||||
i32 i = hash % table->max;
|
|
||||||
i32 start = i;
|
|
||||||
u32 *inspect = table->hash_array + i;
|
|
||||||
|
|
||||||
while (*inspect != TableHashEmpty){
|
|
||||||
if (*inspect == hash){
|
|
||||||
if (comp_func(search_key, table->data_array + i*table->item_size, arg) == 0){
|
|
||||||
if (pos) *pos = i*table->item_size;
|
|
||||||
if (index) *index = i;
|
|
||||||
return(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
++i;
|
|
||||||
++inspect;
|
|
||||||
if (i == table->max){
|
|
||||||
i = 0;
|
|
||||||
inspect = table->hash_array;
|
|
||||||
}
|
|
||||||
if (i == start) break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void*
|
|
||||||
table_find_item(Table *table, void *search_key, void *arg, Hash_Function *hash_func, Compare_Function *comp_func){
|
|
||||||
void *result = 0;
|
|
||||||
i32 pos;
|
|
||||||
if (table_find_pos(table, search_key, arg, &pos, 0, hash_func, comp_func)){
|
|
||||||
result = table->data_array + pos;
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
table_remove_index(Table *table, i32 index){
|
|
||||||
table->hash_array[index] = TableHashDeleted;
|
|
||||||
--table->count;
|
|
||||||
}
|
|
||||||
|
|
||||||
static i32
|
|
||||||
table_remove_match(Table *table, void *search_key, void *arg, Hash_Function *hash_func, Compare_Function *comp_func){
|
|
||||||
i32 result = false;
|
|
||||||
i32 index;
|
|
||||||
if (table_find_pos(table, search_key, arg, 0, &index, hash_func, comp_func)){
|
|
||||||
table_remove_index(table, index);
|
|
||||||
result = true;
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
table_clear(Table *table){
|
|
||||||
table->count = 0;
|
|
||||||
memset(table->hash_array, 0, table->max*sizeof(*table->hash_array));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
table_rehash(Table *src, Table *dst, void *arg, Hash_Function *hash_func, Compare_Function *comp_func){
|
|
||||||
Assert((dst->count + src->count - 1) * 7 < dst->max * 8);
|
|
||||||
Assert(dst->item_size == src->item_size);
|
|
||||||
|
|
||||||
i32 count = src->count;
|
|
||||||
i32 item_size = src->item_size;
|
|
||||||
u32 *hash_item = src->hash_array;
|
|
||||||
char *data_item = src->data_array;
|
|
||||||
for (i32 i = 0, c = 0;
|
|
||||||
c < count;
|
|
||||||
++i, ++hash_item, data_item += item_size){
|
|
||||||
if (*hash_item >= TableHashMin){
|
|
||||||
++c;
|
|
||||||
table_add(dst, data_item, arg, hash_func, comp_func);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static u32
|
|
||||||
tbl_string_hash(void *item, void *arg){
|
|
||||||
String_Const_u8 *string = (String_Const_u8*)item;
|
|
||||||
u32 x = 5381;
|
|
||||||
(void)arg;
|
|
||||||
u8 *str = string->str;
|
|
||||||
umem len = string->size;
|
|
||||||
for (umem i = 0; i < len; i += 1){
|
|
||||||
u8 c = str[i];
|
|
||||||
x = ((x << 5) + x) + c;
|
|
||||||
}
|
|
||||||
return(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
static i32
|
|
||||||
tbl_string_compare(void *a, void *b, void *arg){
|
|
||||||
String_Const_u8 *stra = (String_Const_u8*)a;
|
|
||||||
String_Const_u8 *strb = (String_Const_u8*)b;
|
|
||||||
i32 result = (!string_match(*stra, *strb));
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Offset_String{
|
|
||||||
umem offset;
|
|
||||||
umem size;
|
|
||||||
};
|
|
||||||
|
|
||||||
static u32
|
|
||||||
tbl_offset_string_hash(void *item, void *arg){
|
|
||||||
Offset_String *string = (Offset_String*)item;
|
|
||||||
u32 x = 5381;
|
|
||||||
u8 *str = ((u8*)arg) + string->offset;
|
|
||||||
umem size = string->size;
|
|
||||||
for (umem i = 0; i < size; i += 1){
|
|
||||||
u8 c = str[i];
|
|
||||||
x = ((x << 5) + x) + c;
|
|
||||||
}
|
|
||||||
return(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
static i32
|
|
||||||
tbl_offset_string_compare(void *a, void *b, void *arg){
|
|
||||||
Offset_String *ostra = (Offset_String*)a;
|
|
||||||
Offset_String *ostrb = (Offset_String*)b;
|
|
||||||
String_Const_u8 stra = SCu8((u8*)arg + ostra->offset, ostra->size);
|
|
||||||
String_Const_u8 strb = SCu8((u8*)arg + ostrb->offset, ostrb->size);
|
|
||||||
i32 result = (!string_match(stra, strb));
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct String_Space{
|
|
||||||
char *space;
|
|
||||||
i32 pos;
|
|
||||||
i32 new_pos;
|
|
||||||
i32 max;
|
|
||||||
};
|
|
||||||
|
|
||||||
static Offset_String
|
|
||||||
strspace_append(String_Space *space, char *str, i32 len){
|
|
||||||
Offset_String result = {};
|
|
||||||
if (space->new_pos + len <= space->max){
|
|
||||||
result.offset = space->new_pos;
|
|
||||||
result.size = len;
|
|
||||||
|
|
||||||
memcpy(space->space + space->new_pos, str, len);
|
|
||||||
space->new_pos = space->pos + len;
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
strspace_keep_prev(String_Space *space){
|
|
||||||
space->pos = space->new_pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
strspace_discard_prev(String_Space *space){
|
|
||||||
space->new_pos = space->pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -559,7 +559,7 @@ generate_hot_directory_file_list(Application_Links *app, Lister *lister){
|
||||||
info < one_past_last;
|
info < one_past_last;
|
||||||
info += 1){
|
info += 1){
|
||||||
if (info->folder) continue;
|
if (info->folder) continue;
|
||||||
String_Const_u8 file_name = string_copy(&lister->arena, SCu8(info->filename, info->filename_len));
|
String_Const_u8 file_name = push_string_copy(&lister->arena, SCu8(info->filename, info->filename_len));
|
||||||
char *is_loaded = "";
|
char *is_loaded = "";
|
||||||
char *status_flag = "";
|
char *status_flag = "";
|
||||||
|
|
||||||
|
|
|
@ -190,7 +190,7 @@ parse_project__config_data__version_0(Arena *arena, String_Const_u8 file_dir, Co
|
||||||
|
|
||||||
// Set new project directory
|
// Set new project directory
|
||||||
{
|
{
|
||||||
project->dir = string_copy(arena, file_dir);
|
project->dir = push_string_copy(arena, file_dir);
|
||||||
|
|
||||||
project->load_path_array.paths = push_array(arena, Project_File_Load_Path, 1);
|
project->load_path_array.paths = push_array(arena, Project_File_Load_Path, 1);
|
||||||
project->load_path_array.count = 1;
|
project->load_path_array.count = 1;
|
||||||
|
@ -231,12 +231,12 @@ parse_project__config_data__version_0(Arena *arena, String_Const_u8 file_dir, Co
|
||||||
if (config_compound_var(parsed, fkey_command_name, j, &compound)){
|
if (config_compound_var(parsed, fkey_command_name, j, &compound)){
|
||||||
String_Const_u8 cmd = {};
|
String_Const_u8 cmd = {};
|
||||||
if (config_compound_string_member(parsed, compound, "cmd", 0, &cmd)){
|
if (config_compound_string_member(parsed, compound, "cmd", 0, &cmd)){
|
||||||
command->cmd = string_copy(arena, cmd);
|
command->cmd = push_string_copy(arena, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
String_Const_u8 out = {};
|
String_Const_u8 out = {};
|
||||||
if (config_compound_string_member(parsed, compound, "out", 1, &out)){
|
if (config_compound_string_member(parsed, compound, "out", 1, &out)){
|
||||||
command->out = string_copy(arena, out);
|
command->out = push_string_copy(arena, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
b32 footer_panel = false;
|
b32 footer_panel = false;
|
||||||
|
@ -268,7 +268,7 @@ parse_project__extract_pattern_array(Arena *arena, Config *parsed, char *root_va
|
||||||
for (Config_Get_Result_Node *node = list.first;
|
for (Config_Get_Result_Node *node = list.first;
|
||||||
node != 0;
|
node != 0;
|
||||||
node = node->next, i += 1){
|
node = node->next, i += 1){
|
||||||
String_Const_u8 str = string_copy(arena, node->result.string);
|
String_Const_u8 str = push_string_copy(arena, node->result.string);
|
||||||
array_out->patterns[i].absolutes = string_split_wildcards(arena, str);
|
array_out->patterns[i].absolutes = string_split_wildcards(arena, str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -293,13 +293,13 @@ parse_project__config_data__version_1(Arena *arena, String_Const_u8 root_dir, Co
|
||||||
Project *project = push_array_zero(arena, Project, 1);
|
Project *project = push_array_zero(arena, Project, 1);
|
||||||
|
|
||||||
// Set new project directory
|
// Set new project directory
|
||||||
project->dir = string_copy(arena, root_dir);
|
project->dir = push_string_copy(arena, root_dir);
|
||||||
|
|
||||||
// project_name
|
// project_name
|
||||||
{
|
{
|
||||||
String_Const_u8 str = {};
|
String_Const_u8 str = {};
|
||||||
if (config_string_var(parsed, "project_name", 0, &str)){
|
if (config_string_var(parsed, "project_name", 0, &str)){
|
||||||
project->name = string_copy(arena, str);
|
project->name = push_string_copy(arena, str);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
project->name = SCu8("");
|
project->name = SCu8("");
|
||||||
|
@ -366,7 +366,7 @@ parse_project__config_data__version_1(Arena *arena, String_Const_u8 root_dir, Co
|
||||||
|
|
||||||
String_Const_u8 str = {};
|
String_Const_u8 str = {};
|
||||||
if (config_compound_string_member(parsed, src, "path", 0, &str)){
|
if (config_compound_string_member(parsed, src, "path", 0, &str)){
|
||||||
dst->path = string_copy(arena, str);
|
dst->path = push_string_copy(arena, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
config_compound_bool_member(parsed, src, "recursive", 1, &dst->recursive);
|
config_compound_bool_member(parsed, src, "recursive", 1, &dst->recursive);
|
||||||
|
@ -466,9 +466,9 @@ parse_project__config_data__version_1(Arena *arena, String_Const_u8 root_dir, Co
|
||||||
config_compound_bool_member(parsed, src, "cursor_at_end", 5,
|
config_compound_bool_member(parsed, src, "cursor_at_end", 5,
|
||||||
&cursor_at_end);
|
&cursor_at_end);
|
||||||
|
|
||||||
dst->name = string_copy(arena, name);
|
dst->name = push_string_copy(arena, name);
|
||||||
dst->cmd = string_copy(arena, cmd_str);
|
dst->cmd = push_string_copy(arena, cmd_str);
|
||||||
dst->out = string_copy(arena, out);
|
dst->out = push_string_copy(arena, out);
|
||||||
dst->footer_panel = footer_panel;
|
dst->footer_panel = footer_panel;
|
||||||
dst->save_dirty_files = save_dirty_files;
|
dst->save_dirty_files = save_dirty_files;
|
||||||
dst->cursor_at_end = cursor_at_end;
|
dst->cursor_at_end = cursor_at_end;
|
||||||
|
@ -599,8 +599,8 @@ project_deep_copy__pattern_array(Arena *arena, Project_File_Pattern_Array *src_a
|
||||||
static Project
|
static Project
|
||||||
project_deep_copy__inner(Arena *arena, Project *project){
|
project_deep_copy__inner(Arena *arena, Project *project){
|
||||||
Project result = {};
|
Project result = {};
|
||||||
result.dir = string_copy(arena, project->dir);
|
result.dir = push_string_copy(arena, project->dir);
|
||||||
result.name = string_copy(arena, project->name);
|
result.name = push_string_copy(arena, project->name);
|
||||||
project_deep_copy__pattern_array(arena, &project->pattern_array, &result.pattern_array);
|
project_deep_copy__pattern_array(arena, &project->pattern_array, &result.pattern_array);
|
||||||
project_deep_copy__pattern_array(arena, &project->blacklist_pattern_array, &result.blacklist_pattern_array);
|
project_deep_copy__pattern_array(arena, &project->blacklist_pattern_array, &result.blacklist_pattern_array);
|
||||||
|
|
||||||
|
@ -612,7 +612,7 @@ project_deep_copy__inner(Arena *arena, Project *project){
|
||||||
Project_File_Load_Path *dst = result.load_path_array.paths;
|
Project_File_Load_Path *dst = result.load_path_array.paths;
|
||||||
Project_File_Load_Path *src = project->load_path_array.paths;
|
Project_File_Load_Path *src = project->load_path_array.paths;
|
||||||
for (i32 i = 0; i < path_count; ++i, ++dst, ++src){
|
for (i32 i = 0; i < path_count; ++i, ++dst, ++src){
|
||||||
dst->path = string_copy(arena, src->path);
|
dst->path = push_string_copy(arena, src->path);
|
||||||
dst->recursive = src->recursive;
|
dst->recursive = src->recursive;
|
||||||
dst->relative = src->relative;
|
dst->relative = src->relative;
|
||||||
}
|
}
|
||||||
|
@ -627,13 +627,13 @@ project_deep_copy__inner(Arena *arena, Project *project){
|
||||||
Project_Command *src = project->command_array.commands;
|
Project_Command *src = project->command_array.commands;
|
||||||
for (i32 i = 0; i < command_count; ++i, ++dst, ++src){
|
for (i32 i = 0; i < command_count; ++i, ++dst, ++src){
|
||||||
if (src->name.str != 0){
|
if (src->name.str != 0){
|
||||||
dst->name = string_copy(arena, src->name);
|
dst->name = push_string_copy(arena, src->name);
|
||||||
}
|
}
|
||||||
if (src->cmd.str != 0){
|
if (src->cmd.str != 0){
|
||||||
dst->cmd = string_copy(arena, src->cmd);
|
dst->cmd = push_string_copy(arena, src->cmd);
|
||||||
}
|
}
|
||||||
if (src->out.str != 0){
|
if (src->out.str != 0){
|
||||||
dst->out = string_copy(arena, src->out);
|
dst->out = push_string_copy(arena, src->out);
|
||||||
}
|
}
|
||||||
dst->footer_panel = src->footer_panel;
|
dst->footer_panel = src->footer_panel;
|
||||||
dst->save_dirty_files = src->save_dirty_files;
|
dst->save_dirty_files = src->save_dirty_files;
|
||||||
|
@ -1074,9 +1074,9 @@ project_generate_bat_script(Arena *scratch, String_Const_u8 opts, String_Const_u
|
||||||
|
|
||||||
Temp_Memory temp = begin_temp(scratch);
|
Temp_Memory temp = begin_temp(scratch);
|
||||||
|
|
||||||
String_Const_u8 cf = string_copy(scratch, code_file);
|
String_Const_u8 cf = push_string_copy(scratch, code_file);
|
||||||
String_Const_u8 od = string_copy(scratch, output_dir);
|
String_Const_u8 od = push_string_copy(scratch, output_dir);
|
||||||
String_Const_u8 bf = string_copy(scratch, binary_file);
|
String_Const_u8 bf = push_string_copy(scratch, binary_file);
|
||||||
|
|
||||||
cf = string_mod_replace_character(cf, '/', '\\');
|
cf = string_mod_replace_character(cf, '/', '\\');
|
||||||
od = string_mod_replace_character(od, '/', '\\');
|
od = string_mod_replace_character(od, '/', '\\');
|
||||||
|
@ -1358,8 +1358,8 @@ CUSTOM_DOC("Open a lister of all commands in the currently loaded project.")
|
||||||
for (i32 i = 0;
|
for (i32 i = 0;
|
||||||
i < current_project.command_array.count;
|
i < current_project.command_array.count;
|
||||||
i += 1){
|
i += 1){
|
||||||
options[i].string = string_copy(scratch, current_project.command_array.commands[i].name);
|
options[i].string = push_string_copy(scratch, current_project.command_array.commands[i].name);
|
||||||
options[i].status = string_copy(scratch, current_project.command_array.commands[i].cmd);
|
options[i].status = push_string_copy(scratch, current_project.command_array.commands[i].cmd);
|
||||||
options[i].user_data = IntAsPtr(i);
|
options[i].user_data = IntAsPtr(i);
|
||||||
}
|
}
|
||||||
begin_integrated_lister__basic_list(app, "Command:", activate_project_command, 0, 0, options, option_count, 0, view);
|
begin_integrated_lister__basic_list(app, "Command:", activate_project_command, 0, 0, options, option_count, 0, view);
|
||||||
|
|
|
@ -9,6 +9,77 @@ and list all locations.
|
||||||
// Search Iteration Systems
|
// Search Iteration Systems
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#if Migrate__Match_Iterator
|
||||||
|
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations)
|
||||||
|
CUSTOM_DOC("Queries the user for a string and lists all exact case-sensitive matches found in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_substring_locations)
|
||||||
|
CUSTOM_DOC("Queries the user for a string and lists all case-sensitive substring matches found in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations_case_insensitive)
|
||||||
|
CUSTOM_DOC("Queries the user for a string and lists all exact case-insensitive matches found in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_substring_locations_case_insensitive)
|
||||||
|
CUSTOM_DOC("Queries the user for a string and lists all case-insensitive substring matches found in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations_of_identifier)
|
||||||
|
CUSTOM_DOC("Reads a token or word under the cursor and lists all exact case-sensitive mathces in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations_of_identifier_case_insensitive)
|
||||||
|
CUSTOM_DOC("Reads a token or word under the cursor and lists all exact case-insensitive mathces in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations_of_selection)
|
||||||
|
CUSTOM_DOC("Reads the string in the selected range and lists all exact case-sensitive mathces in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations_of_selection_case_insensitive)
|
||||||
|
CUSTOM_DOC("Reads the string in the selected range and lists all exact case-insensitive mathces in all open buffers.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations_of_type_definition)
|
||||||
|
CUSTOM_DOC("Queries user for string, lists all locations of strings that appear to define a type whose name matches the input string.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
CUSTOM_COMMAND_SIG(list_all_locations_of_type_definition_of_identifier)
|
||||||
|
CUSTOM_DOC("Reads a token or word under the cursor and lists all locations of strings that appear to define a type whose name matches it.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
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.")
|
||||||
|
{
|
||||||
|
NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
static void
|
static void
|
||||||
search_key_alloc(Heap *heap, Search_Key *key, umem *size, i32 count){
|
search_key_alloc(Heap *heap, Search_Key *key, umem *size, i32 count){
|
||||||
count = clamp_top(count, ArrayCount(key->words));
|
count = clamp_top(count, ArrayCount(key->words));
|
||||||
|
@ -38,11 +109,6 @@ search_key_alloc(Heap *heap, Search_Key *key, umem *size, i32 count){
|
||||||
for (i32 i = 0; i < count; ++i){
|
for (i32 i = 0; i < count; ++i){
|
||||||
key->words[i].str = char_ptr;
|
key->words[i].str = char_ptr;
|
||||||
key->words[i].size = 0;
|
key->words[i].size = 0;
|
||||||
#if 0
|
|
||||||
key->words[i].str = char_ptr;
|
|
||||||
key->words[i].size = 0;
|
|
||||||
key->words[i].memory_size = size[i];
|
|
||||||
#endif
|
|
||||||
char_ptr += size[i];
|
char_ptr += size[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -774,74 +840,10 @@ CUSTOM_DOC("Reads a token or word under the cursor and lists all locations of st
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Word Complete Command
|
// Word Complete Command
|
||||||
//
|
//
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
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.")
|
|
||||||
{
|
|
||||||
View_ID view = get_active_view(app, AccessOpen);
|
|
||||||
Buffer_ID buffer = view_get_buffer(app, view, AccessOpen);
|
|
||||||
if (buffer != 0){
|
|
||||||
Managed_Scope scope = view_get_managed_scope(app, view);
|
|
||||||
|
|
||||||
local_persist b32 completion_state_initialized = false;
|
|
||||||
local_persist Data_Table completion_table = {};
|
|
||||||
|
|
||||||
b32 reset_completion_state = false;
|
|
||||||
u64 rewrite = 0;
|
|
||||||
managed_variable_get(app, scope, view_rewrite_loc, &rewrite);
|
|
||||||
if (rewrite != RewriteWordComplete){
|
|
||||||
reset_completion_state = true;
|
|
||||||
}
|
|
||||||
managed_variable_set(app, scope, view_next_rewrite_loc, RewriteWordComplete);
|
|
||||||
|
|
||||||
if (!completion_state_initialized || reset_completion_state){
|
|
||||||
table_clear(&completion_table);
|
|
||||||
completion_table = make_Data_table_app_links(app);
|
|
||||||
|
|
||||||
Scratch_Block scratch(app);
|
|
||||||
|
|
||||||
i64 pos = view_get_cursor_pos(app, view);
|
|
||||||
i64 start_pos = scan(app, boundary_alpha_numeric_underscore_utf8, buffer, Scan_Backward, pos);
|
|
||||||
if (start_pos < pos){
|
|
||||||
i64 check = scan(app, boundary_alpha_numeric_underscore_utf8, buffer, Scan_Forward, start_pos);
|
|
||||||
if (pos <= check){
|
|
||||||
Range_i64 range = Ii64(start_pos, pos);
|
|
||||||
String_Const_u8 match_prefix = push_buffer_range(app, scratch, buffer, range);
|
|
||||||
|
|
||||||
String_Match_Flag has_flags = StringMatch_CaseSensitive|StringMatch_RightSideSloppy;
|
|
||||||
String_Match_List not_flags = StringMatch_LeftSideSloppy;
|
|
||||||
|
|
||||||
i64 size = buffer_get_size(app, buffer);
|
|
||||||
String_Match_List forward = buffer_find_all_matches(app, scratch, buffer, 0, Ii64(pos, size), match_prefix,
|
|
||||||
&character_predicate_alpha_numeric_underscore_utf8, Scan_Forward);
|
|
||||||
String_Match_List backward = buffer_find_all_matches(app, scratch, buffer, 0, Ii64(0, start_pos), match_prefix,
|
|
||||||
&character_predicate_alpha_numeric_underscore_utf8, Scan_Backward);
|
|
||||||
|
|
||||||
string_match_list_filter_flags(&forward , has_flags, not_flags);
|
|
||||||
string_match_list_filter_flags(&backward, has_flags, not_flags);
|
|
||||||
|
|
||||||
String_Match_List list = string_match_list_merge_nearest(&forward, &backward, range);
|
|
||||||
|
|
||||||
for (String_Match *node = list.first;
|
|
||||||
node != 0;
|
|
||||||
node = node->next){
|
|
||||||
node->range.end = scan(app, boundary_alpha_numeric_underscore_utf8, node->buffer, Scan_Forward, node->range.end);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
static Word_Complete_State complete_state = {};
|
static Word_Complete_State complete_state = {};
|
||||||
|
|
||||||
CUSTOM_COMMAND_SIG(word_complete)
|
CUSTOM_COMMAND_SIG(word_complete)
|
||||||
|
@ -993,6 +995,7 @@ CUSTOM_DOC("Iteratively tries completing the word to the left of the cursor with
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// BOTTOM
|
// BOTTOM
|
||||||
|
|
|
@ -20,12 +20,15 @@ Time to rewrite _ALL_ of this s***f.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define Migrate__Match_Iterator 1
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|
||||||
|
#if !Migrate__Match_Iterator
|
||||||
// TODO(allen): deprecate all this
|
// TODO(allen): deprecate all this
|
||||||
typedef i32 Seek_Potential_Match_Direction;
|
typedef i32 Seek_Potential_Match_Direction;
|
||||||
enum{
|
enum{
|
||||||
|
@ -104,6 +107,7 @@ struct Word_Complete_State{
|
||||||
i32 word_end;
|
i32 word_end;
|
||||||
i32 initialized;
|
i32 initialized;
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,160 @@
|
||||||
|
/*
|
||||||
|
* 4coder tables
|
||||||
|
*/
|
||||||
|
|
||||||
|
// TOP
|
||||||
|
|
||||||
|
internal u64
|
||||||
|
table_hash(Data key){
|
||||||
|
return(table_hash_u8((u8*)key.data, key.size) | bit_63);
|
||||||
|
}
|
||||||
|
|
||||||
|
global_const u64 table_empty_slot = 0;
|
||||||
|
global_const u64 table_erased_slot = 1;
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
|
internal Table_Data_u64
|
||||||
|
make_table_Data_u64(Base_Allocator *allocator, u32 slot_count){
|
||||||
|
Table_Data_u64 table = {};
|
||||||
|
table.allocator = allocator;
|
||||||
|
slot_count = clamp_bot(8, slot_count);
|
||||||
|
Data mem = base_allocate(allocator, slot_count*(sizeof(*table.hashes) + sizeof(*table.keys) + sizeof(*table.vals)));
|
||||||
|
block_zero(mem.data, mem.size);
|
||||||
|
table.memory = mem.data;
|
||||||
|
table.hashes = (u64*)table.memory;
|
||||||
|
table.keys = (Data*)(table.hashes + slot_count);
|
||||||
|
table.vals = (u64*)(table.keys + slot_count);
|
||||||
|
table.slot_count = slot_count;
|
||||||
|
table.used_count = 0;
|
||||||
|
table.dirty_count = 0;
|
||||||
|
return(table);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal Table_Lookup
|
||||||
|
table_lookup(Table_Data_u64 *table, Data key){
|
||||||
|
u64 *hashes = table->hashes;
|
||||||
|
u32 slot_count = table->slot_count;
|
||||||
|
|
||||||
|
u64 hash = table_hash(key);
|
||||||
|
u32 first_index = hash % slot_count;
|
||||||
|
u32 index = first_index;
|
||||||
|
Table_Lookup result = {};
|
||||||
|
result.hash = hash;
|
||||||
|
for (;;){
|
||||||
|
if (hash == hashes[index]){
|
||||||
|
if (data_match(key, table->keys[index])){
|
||||||
|
result.index = index;
|
||||||
|
result.found_match = true;
|
||||||
|
result.found_empty_slot = false;
|
||||||
|
result.found_erased_slot = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (table_empty_slot == hashes[index]){
|
||||||
|
result.index = index;
|
||||||
|
result.found_empty_slot = true;
|
||||||
|
result.found_erased_slot = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (table_erased_slot == hashes[index] && !result.found_erased_slot){
|
||||||
|
result.index = index;
|
||||||
|
result.found_erased_slot = true;
|
||||||
|
}
|
||||||
|
index += 1;
|
||||||
|
if (index >= slot_count){
|
||||||
|
index = 0;
|
||||||
|
}
|
||||||
|
if (index == first_index){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal b32
|
||||||
|
table_read(Table_Data_u64 *table, Data key, u64 *val_out){
|
||||||
|
b32 result = false;
|
||||||
|
Table_Lookup lookup = table_lookup(table, key);
|
||||||
|
if (lookup.found_match){
|
||||||
|
*val_out = table->vals[lookup.index];
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void
|
||||||
|
table_insert__inner(Table_Data_u64 *table, Table_Lookup lookup, Data key, u64 val){
|
||||||
|
Assert(lookup.found_empty_slot || lookup.found_erased_slot);
|
||||||
|
table->hashes[lookup.index] = lookup.hash;
|
||||||
|
table->keys[lookup.index] = key;
|
||||||
|
table->vals[lookup.index] = val;
|
||||||
|
table->used_count += 1;
|
||||||
|
if (lookup.found_empty_slot){
|
||||||
|
table->dirty_count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal b32
|
||||||
|
table_rehash(Table_Data_u64 *dst, Table_Data_u64 *src){
|
||||||
|
b32 result = false;
|
||||||
|
u32 src_slot_count = src->slot_count;
|
||||||
|
if ((dst->dirty_count + src->used_count)*8 < dst->slot_count*7){
|
||||||
|
u64 *src_hashes = src->hashes;
|
||||||
|
for (u32 i = 0; i < src_slot_count; i += 1){
|
||||||
|
if (HasFlag(src_hashes[i], bit_63)){
|
||||||
|
Data key = src->keys[i];
|
||||||
|
Table_Lookup lookup = table_lookup(dst, key);
|
||||||
|
table_insert__inner(dst, lookup, key, src->vals[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal b32
|
||||||
|
table_insert(Table_Data_u64 *table, Data key, u64 val){
|
||||||
|
b32 result = false;
|
||||||
|
Table_Lookup lookup = table_lookup(table, key);
|
||||||
|
if (!lookup.found_match){
|
||||||
|
if ((table->dirty_count + 1)*8 >= table->slot_count*7){
|
||||||
|
i32 new_slot_count = table->slot_count;
|
||||||
|
if (table->used_count*2 >= table->slot_count){
|
||||||
|
new_slot_count = table->slot_count*4;
|
||||||
|
}
|
||||||
|
Table_Data_u64 new_table = make_table_Data_u64(table->allocator, new_slot_count);
|
||||||
|
table_rehash(&new_table, table);
|
||||||
|
base_free(table->allocator, table->memory);
|
||||||
|
*table = new_table;
|
||||||
|
lookup = table_lookup(table, key);
|
||||||
|
Assert(lookup.found_empty_slot);
|
||||||
|
}
|
||||||
|
table_insert__inner(table, lookup, key, val);
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal b32
|
||||||
|
table_erase(Table_Data_u64 *table, Data key){
|
||||||
|
b32 result = false;
|
||||||
|
Table_Lookup lookup = table_lookup(table, key);
|
||||||
|
if (lookup.found_match){
|
||||||
|
table->hashes[lookup.index] = table_erased_slot;
|
||||||
|
block_zero_struct(&table->keys[lookup.index]);
|
||||||
|
table->vals[lookup.index] = 0;
|
||||||
|
table->used_count -= 1;
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
|
// BOTTOM
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* 4coder tables
|
||||||
|
*/
|
||||||
|
|
||||||
|
// TOP
|
||||||
|
|
||||||
|
#if !defined(FCODER_TABLES_H)
|
||||||
|
#define FCODER_TABLES_H
|
||||||
|
|
||||||
|
struct Table_Lookup{
|
||||||
|
u64 hash;
|
||||||
|
u32 index;
|
||||||
|
b8 found_match;
|
||||||
|
b8 found_empty_slot;
|
||||||
|
b8 found_erased_slot;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Table_u64_u64{
|
||||||
|
Base_Allocator *allocator;
|
||||||
|
void *memory;
|
||||||
|
u64 *keys;
|
||||||
|
u64 *vals;
|
||||||
|
u32 slot_count;
|
||||||
|
u32 used_count;
|
||||||
|
u32 dirty_count;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Table_Data_u64{
|
||||||
|
Base_Allocator *allocator;
|
||||||
|
void *memory;
|
||||||
|
u64 *hashes;
|
||||||
|
Data *keys;
|
||||||
|
u64 *vals;
|
||||||
|
u32 slot_count;
|
||||||
|
u32 used_count;
|
||||||
|
u32 dirty_count;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Table_u64_Data{
|
||||||
|
Base_Allocator *allocator;
|
||||||
|
void *memory;
|
||||||
|
u64 *keys;
|
||||||
|
Data *vals;
|
||||||
|
u32 slot_count;
|
||||||
|
u32 used_count;
|
||||||
|
u32 dirty_count;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Table_Data_Data{
|
||||||
|
Base_Allocator *allocator;
|
||||||
|
void *memory;
|
||||||
|
u64 *hashes;
|
||||||
|
Data *keys;
|
||||||
|
Data *vals;
|
||||||
|
u32 slot_count;
|
||||||
|
u32 used_count;
|
||||||
|
u32 dirty_count;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOTTOM
|
|
@ -581,22 +581,22 @@ lister_add_item(Lister *lister, Lister_Prealloced_String string, Lister_Prealloc
|
||||||
static void*
|
static void*
|
||||||
lister_add_item(Lister *lister, Lister_Prealloced_String string, String_Const_u8 status,
|
lister_add_item(Lister *lister, Lister_Prealloced_String string, String_Const_u8 status,
|
||||||
void *user_data, umem extra_space){
|
void *user_data, umem extra_space){
|
||||||
return(lister_add_item(lister, string, lister_prealloced(string_copy(&lister->arena, status)),
|
return(lister_add_item(lister, string, lister_prealloced(push_string_copy(&lister->arena, status)),
|
||||||
user_data, extra_space));
|
user_data, extra_space));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void*
|
static void*
|
||||||
lister_add_item(Lister *lister, String_Const_u8 string, Lister_Prealloced_String status,
|
lister_add_item(Lister *lister, String_Const_u8 string, Lister_Prealloced_String status,
|
||||||
void *user_data, umem extra_space){
|
void *user_data, umem extra_space){
|
||||||
return(lister_add_item(lister, lister_prealloced(string_copy(&lister->arena, string)), status,
|
return(lister_add_item(lister, lister_prealloced(push_string_copy(&lister->arena, string)), status,
|
||||||
user_data, extra_space));
|
user_data, extra_space));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void*
|
static void*
|
||||||
lister_add_item(Lister *lister, String_Const_u8 string, String_Const_u8 status, void *user_data, umem extra_space){
|
lister_add_item(Lister *lister, String_Const_u8 string, String_Const_u8 status, void *user_data, umem extra_space){
|
||||||
return(lister_add_item(lister,
|
return(lister_add_item(lister,
|
||||||
lister_prealloced(string_copy(&lister->arena, string)),
|
lister_prealloced(push_string_copy(&lister->arena, string)),
|
||||||
lister_prealloced(string_copy(&lister->arena, status)),
|
lister_prealloced(push_string_copy(&lister->arena, status)),
|
||||||
user_data, extra_space));
|
user_data, extra_space));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -619,7 +619,7 @@ lister_add_theme_item(Lister *lister,
|
||||||
static void*
|
static void*
|
||||||
lister_add_theme_item(Lister *lister, String_Const_u8 string, i32 index,
|
lister_add_theme_item(Lister *lister, String_Const_u8 string, i32 index,
|
||||||
void *user_data, i32 extra_space){
|
void *user_data, i32 extra_space){
|
||||||
return(lister_add_theme_item(lister, lister_prealloced(string_copy(&lister->arena, string)), index,
|
return(lister_add_theme_item(lister, lister_prealloced(push_string_copy(&lister->arena, string)), index,
|
||||||
user_data, extra_space));
|
user_data, extra_space));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
4ed.cpp
2
4ed.cpp
|
@ -902,7 +902,7 @@ App_Init_Sig(app_init){
|
||||||
dynamic_workspace_init(&models->mem.heap, &models->lifetime_allocator, DynamicWorkspace_Global, 0, &models->dynamic_workspace);
|
dynamic_workspace_init(&models->mem.heap, &models->lifetime_allocator, DynamicWorkspace_Global, 0, &models->dynamic_workspace);
|
||||||
|
|
||||||
// NOTE(allen): file setup
|
// NOTE(allen): file setup
|
||||||
working_set_init(system, &models->working_set, arena, &vars->models.mem.heap);
|
working_set_init(system, &models->working_set, arena);
|
||||||
models->working_set.default_display_width = DEFAULT_DISPLAY_WIDTH;
|
models->working_set.default_display_width = DEFAULT_DISPLAY_WIDTH;
|
||||||
models->working_set.default_minimum_base_display_width = DEFAULT_MINIMUM_BASE_DISPLAY_WIDTH;
|
models->working_set.default_minimum_base_display_width = DEFAULT_MINIMUM_BASE_DISPLAY_WIDTH;
|
||||||
|
|
||||||
|
|
|
@ -196,7 +196,7 @@ DOC_SEE(The_4coder_Clipboard)
|
||||||
String_Const_u8 *str = working_set_clipboard_index(&models->working_set, item_index);
|
String_Const_u8 *str = working_set_clipboard_index(&models->working_set, item_index);
|
||||||
String_Const_u8 result = {};
|
String_Const_u8 result = {};
|
||||||
if (str != 0){
|
if (str != 0){
|
||||||
result = string_copy(arena, *str);
|
result = push_string_copy(arena, *str);
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
@ -558,7 +558,7 @@ Push_Buffer_Base_Name(Application_Links *app, Arena *arena, Buffer_ID buffer_id)
|
||||||
Editing_File *file = imp_get_file(models, buffer_id);
|
Editing_File *file = imp_get_file(models, buffer_id);
|
||||||
String_Const_u8 result = {};
|
String_Const_u8 result = {};
|
||||||
if (api_check_buffer(file)){
|
if (api_check_buffer(file)){
|
||||||
result = string_copy(arena, string_from_file_name(&file->base_name));
|
result = push_string_copy(arena, string_from_file_name(&file->base_name));
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
@ -569,7 +569,7 @@ Push_Buffer_Unique_Name(Application_Links *app, Arena *out, Buffer_ID buffer_id)
|
||||||
Editing_File *file = imp_get_file(models, buffer_id);
|
Editing_File *file = imp_get_file(models, buffer_id);
|
||||||
String_Const_u8 result = {};
|
String_Const_u8 result = {};
|
||||||
if (api_check_buffer(file)){
|
if (api_check_buffer(file)){
|
||||||
result = string_copy(out, string_from_file_name(&file->unique_name));
|
result = push_string_copy(out, string_from_file_name(&file->unique_name));
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
@ -580,7 +580,7 @@ Push_Buffer_File_Name(Application_Links *app, Arena *arena, Buffer_ID buffer_id)
|
||||||
Editing_File *file = imp_get_file(models, buffer_id);
|
Editing_File *file = imp_get_file(models, buffer_id);
|
||||||
String_Const_u8 result = {};
|
String_Const_u8 result = {};
|
||||||
if (api_check_buffer(file)){
|
if (api_check_buffer(file)){
|
||||||
result = string_copy(arena, string_from_file_name(&file->canon));
|
result = push_string_copy(arena, string_from_file_name(&file->canon));
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
@ -1005,7 +1005,7 @@ DOC_SEE(Buffer_Save_Flag)
|
||||||
if (!skip_save){
|
if (!skip_save){
|
||||||
Arena *scratch = &models->mem.arena;
|
Arena *scratch = &models->mem.arena;
|
||||||
Temp_Memory temp = begin_temp(scratch);
|
Temp_Memory temp = begin_temp(scratch);
|
||||||
String_Const_u8 name = string_copy(scratch, file_name);
|
String_Const_u8 name = push_string_copy(scratch, file_name);
|
||||||
save_file_to_name(system, models, file, name.str);
|
save_file_to_name(system, models, file, name.str);
|
||||||
end_temp(temp);
|
end_temp(temp);
|
||||||
result = true;
|
result = true;
|
||||||
|
@ -3443,7 +3443,7 @@ DOC_SEE(directory_set_hot)
|
||||||
Models *models = (Models*)app->cmd_context;
|
Models *models = (Models*)app->cmd_context;
|
||||||
Hot_Directory *hot = &models->hot_directory;
|
Hot_Directory *hot = &models->hot_directory;
|
||||||
hot_directory_clean_end(hot);
|
hot_directory_clean_end(hot);
|
||||||
String_Const_u8 result = string_copy(arena, SCu8(hot->string_space, hot->string_size));
|
String_Const_u8 result = push_string_copy(arena, SCu8(hot->string_space, hot->string_size));
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3490,7 +3490,7 @@ DOC_SEE(File_List)
|
||||||
str = (char*)canon.name_space;
|
str = (char*)canon.name_space;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
String_Const_u8 s = string_copy(scratch, string_from_file_name(&canon));
|
String_Const_u8 s = push_string_copy(scratch, string_from_file_name(&canon));
|
||||||
str = (char*)s.str;
|
str = (char*)s.str;
|
||||||
}
|
}
|
||||||
system->set_file_list(list_out, str, 0, 0, 0);
|
system->set_file_list(list_out, str, 0, 0, 0);
|
||||||
|
|
|
@ -19,17 +19,18 @@
|
||||||
#include "4coder_base_types.h"
|
#include "4coder_base_types.h"
|
||||||
#include "4ed_font.h"
|
#include "4ed_font.h"
|
||||||
#include "4ed_system.h"
|
#include "4ed_system.h"
|
||||||
|
#include "4coder_table.h"
|
||||||
|
|
||||||
#include "4coder_base_types.cpp"
|
#include "4coder_base_types.cpp"
|
||||||
#include "4coder_string_match.cpp"
|
#include "4coder_string_match.cpp"
|
||||||
#include "4coder_stringf.cpp"
|
#include "4coder_stringf.cpp"
|
||||||
#include "4coder_app_links_allocator.cpp"
|
#include "4coder_app_links_allocator.cpp"
|
||||||
|
#include "4coder_hash_functions.cpp"
|
||||||
|
#include "4coder_table.cpp"
|
||||||
|
|
||||||
#include "4coder_lib/4coder_arena.cpp"
|
|
||||||
#include "4coder_lib/4coder_heap.cpp"
|
#include "4coder_lib/4coder_heap.cpp"
|
||||||
#define FSTRING_IMPLEMENTATION
|
#define FSTRING_IMPLEMENTATION
|
||||||
#include "4coder_lib/4coder_string.h"
|
#include "4coder_lib/4coder_string.h"
|
||||||
#include "4coder_lib/4coder_table.h"
|
|
||||||
#include "4coder_lib/4coder_utf8.h"
|
#include "4coder_lib/4coder_utf8.h"
|
||||||
|
|
||||||
// TODO(allen): stop this nonsense
|
// TODO(allen): stop this nonsense
|
||||||
|
|
|
@ -95,8 +95,8 @@ internal b32
|
||||||
child_process_call(Models *models, System_Functions *system, String_Const_u8 path, String_Const_u8 command, Child_Process_ID *id_out){
|
child_process_call(Models *models, System_Functions *system, String_Const_u8 path, String_Const_u8 command, Child_Process_ID *id_out){
|
||||||
b32 result = false;
|
b32 result = false;
|
||||||
Scratch_Block scratch(&models->app_links);
|
Scratch_Block scratch(&models->app_links);
|
||||||
String_Const_u8 path_n = string_copy(scratch, path);
|
String_Const_u8 path_n = push_string_copy(scratch, path);
|
||||||
String_Const_u8 command_n = string_copy(scratch, command);
|
String_Const_u8 command_n = push_string_copy(scratch, command);
|
||||||
CLI_Handles cli_handles = {};
|
CLI_Handles cli_handles = {};
|
||||||
if (system->cli_call((char*)path_n.str, (char*)command_n.str, &cli_handles)){
|
if (system->cli_call((char*)path_n.str, (char*)command_n.str, &cli_handles)){
|
||||||
Child_Process_And_ID new_process = child_process_alloc_new(models, &models->child_processes);
|
Child_Process_And_ID new_process = child_process_alloc_new(models, &models->child_processes);
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
internal Buffer_Slot_ID
|
internal Buffer_Slot_ID
|
||||||
to_file_id(i32 id){
|
to_file_id(i32 id){
|
||||||
Buffer_Slot_ID result;
|
Buffer_Slot_ID result = {};
|
||||||
result.id = id;
|
result.id = id;
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ working_set_get_active_file(Working_Set *working_set, Buffer_ID id){
|
||||||
|
|
||||||
// TODO(allen): REWRITE all of working set
|
// TODO(allen): REWRITE all of working set
|
||||||
internal void
|
internal void
|
||||||
working_set_init(System_Functions *system, Working_Set *working_set, Arena *arena, Heap *heap){
|
working_set_init(System_Functions *system, Working_Set *working_set, Arena *arena){
|
||||||
i16 init_count = 16;
|
i16 init_count = 16;
|
||||||
i16 array_init_count = 256;
|
i16 array_init_count = 256;
|
||||||
|
|
||||||
|
@ -150,102 +150,58 @@ working_set_init(System_Functions *system, Working_Set *working_set, Arena *aren
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// NOTE(allen): init canon table
|
working_set->canon_table = make_table_Data_u64(arena->base_allocator, 128);
|
||||||
{
|
working_set->name_table = make_table_Data_u64(arena->base_allocator, 128);
|
||||||
i32 item_size = sizeof(File_Name_Entry);
|
|
||||||
i32 table_size = working_set->file_max;
|
|
||||||
i32 mem_size = table_required_mem_size(table_size, item_size);
|
|
||||||
void *mem = heap_allocate(heap, mem_size);
|
|
||||||
memset(mem, 0, mem_size);
|
|
||||||
table_init_memory(&working_set->canon_table, mem, table_size, item_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE(allen): init name table
|
|
||||||
{
|
|
||||||
i32 item_size = sizeof(File_Name_Entry);
|
|
||||||
i32 table_size = working_set->file_max;
|
|
||||||
i32 mem_size = table_required_mem_size(table_size, item_size);
|
|
||||||
void *mem = heap_allocate(heap, mem_size);
|
|
||||||
memset(mem, 0, mem_size);
|
|
||||||
table_init_memory(&working_set->name_table, mem, table_size, item_size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal 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 = {};
|
|
||||||
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);
|
|
||||||
table_init_memory(&btable, mem, new_max, table->item_size);
|
|
||||||
table_clear(&btable);
|
|
||||||
table_rehash(table, &btable, 0, hash_func, comp_func);
|
|
||||||
heap_free(heap, table->hash_array);
|
|
||||||
*table = btable;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Editing_File*
|
internal Editing_File*
|
||||||
working_set_contains_basic(Working_Set *working_set, Table *table, String_Const_u8 name){
|
working_set_contains__generic(Working_Set *working_set, Table_Data_u64 *table, String_Const_u8 name){
|
||||||
Editing_File *result = 0;
|
Editing_File *result = 0;
|
||||||
|
u64 val = 0;
|
||||||
File_Name_Entry *entry = (File_Name_Entry*)
|
if (table_read(table, make_data(name.str, name.size), &val)){
|
||||||
table_find_item(table, &name, 0, tbl_string_hash, tbl_string_compare);
|
result = working_set_index(working_set, to_file_id((Buffer_ID)val));
|
||||||
if (entry){
|
|
||||||
result = working_set_index(working_set, entry->id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal b32
|
internal b32
|
||||||
working_set_add_basic(Heap *heap, Working_Set *working_set, Table *table, Editing_File *file, String_Const_u8 name){
|
working_set_add__generic(Table_Data_u64 *table, Buffer_ID id, String_Const_u8 name){
|
||||||
working_set__grow_if_needed(table, heap, 0, tbl_string_hash, tbl_string_compare);
|
return(table_insert(table, make_data(name.str, name.size), id));
|
||||||
|
|
||||||
File_Name_Entry entry;
|
|
||||||
entry.name = name;
|
|
||||||
entry.id = file->id;
|
|
||||||
b32 result = (table_add(table, &entry, 0, tbl_string_hash, tbl_string_compare) == 0);
|
|
||||||
return(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
working_set_remove_basic(Working_Set *working_set, Table *table, String_Const_u8 name){
|
working_set_remove__generic(Table_Data_u64 *table, String_Const_u8 name){
|
||||||
table_remove_match(table, &name, 0, tbl_string_hash, tbl_string_compare);
|
table_erase(table, make_data(name.str, name.size));
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Editing_File*
|
internal Editing_File*
|
||||||
working_set_contains_canon(Working_Set *working_set, String_Const_u8 name){
|
working_set_contains_canon(Working_Set *working_set, String_Const_u8 name){
|
||||||
Editing_File *result = working_set_contains_basic(working_set, &working_set->canon_table, name);
|
return(working_set_contains__generic(working_set, &working_set->canon_table, name));
|
||||||
return(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal b32
|
internal b32
|
||||||
working_set_canon_add(Heap *heap, Working_Set *working_set, Editing_File *file, String_Const_u8 name){
|
working_set_canon_add(Working_Set *working_set, Editing_File *file, String_Const_u8 name){
|
||||||
b32 result = working_set_add_basic(heap,working_set, &working_set->canon_table, file, name);
|
return(working_set_add__generic(&working_set->canon_table, file->id.id, name));
|
||||||
return(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
working_set_canon_remove(Working_Set *working_set, String_Const_u8 name){
|
working_set_canon_remove(Working_Set *working_set, String_Const_u8 name){
|
||||||
working_set_remove_basic(working_set, &working_set->canon_table, name);
|
working_set_remove__generic(&working_set->canon_table, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Editing_File*
|
internal Editing_File*
|
||||||
working_set_contains_name(Working_Set *working_set, String_Const_u8 name){
|
working_set_contains_name(Working_Set *working_set, String_Const_u8 name){
|
||||||
return(working_set_contains_basic(working_set, &working_set->name_table, name));
|
return(working_set_contains__generic(working_set, &working_set->name_table, name));
|
||||||
}
|
}
|
||||||
|
|
||||||
internal b32
|
internal b32
|
||||||
working_set_add_name(Heap *heap, Working_Set *working_set, Editing_File *file, String_Const_u8 name){
|
working_set_add_name(Heap *heap, Working_Set *working_set, Editing_File *file, String_Const_u8 name){
|
||||||
b32 result = working_set_add_basic(heap, working_set, &working_set->name_table, file, name);
|
return(working_set_add__generic(&working_set->name_table, file->id.id, name));
|
||||||
return(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
working_set_remove_name(Working_Set *working_set, String_Const_u8 name){
|
working_set_remove_name(Working_Set *working_set, String_Const_u8 name){
|
||||||
working_set_remove_basic(working_set, &working_set->name_table, name);
|
working_set_remove__generic(&working_set->name_table, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Editing_File*
|
internal Editing_File*
|
||||||
|
@ -347,7 +303,7 @@ file_bind_file_name(System_Functions *system, Heap *heap, Working_Set *working_s
|
||||||
block_copy(file->canon.name_space, canon_file_name.str, size);
|
block_copy(file->canon.name_space, canon_file_name.str, size);
|
||||||
file_name_terminate(&file->canon);
|
file_name_terminate(&file->canon);
|
||||||
system->add_listener((char*)file->canon.name_space);
|
system->add_listener((char*)file->canon.name_space);
|
||||||
b32 result = working_set_canon_add(heap, working_set, file, string_from_file_name(&file->canon));
|
b32 result = working_set_canon_add(working_set, file, string_from_file_name(&file->canon));
|
||||||
Assert(result);
|
Assert(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -477,8 +433,8 @@ buffer_bind_name(Models *models, Heap *heap, Arena *scratch, Working_Set *workin
|
||||||
Buffer_Name_Conflict_Entry *entry = &conflicts[i];
|
Buffer_Name_Conflict_Entry *entry = &conflicts[i];
|
||||||
entry->buffer_id = file_ptr->id.id;
|
entry->buffer_id = file_ptr->id.id;
|
||||||
|
|
||||||
entry->file_name = string_copy(scratch, string_from_file_name(&file_ptr->canon));
|
entry->file_name = push_string_copy(scratch, string_from_file_name(&file_ptr->canon));
|
||||||
entry->base_name = string_copy(scratch, base_name);
|
entry->base_name = push_string_copy(scratch, base_name);
|
||||||
|
|
||||||
String_Const_u8 b = base_name;
|
String_Const_u8 b = base_name;
|
||||||
if (i > 0){
|
if (i > 0){
|
||||||
|
|
|
@ -35,8 +35,8 @@ struct Working_Set{
|
||||||
Plat_Handle edit_finished_timer;
|
Plat_Handle edit_finished_timer;
|
||||||
b32 do_not_mark_edits;
|
b32 do_not_mark_edits;
|
||||||
|
|
||||||
Table canon_table;
|
Table_Data_u64 canon_table;
|
||||||
Table name_table;
|
Table_Data_u64 name_table;
|
||||||
|
|
||||||
// TODO(allen): do(update clipboard system to exist fully in the custom layer)
|
// TODO(allen): do(update clipboard system to exist fully in the custom layer)
|
||||||
String_Const_u8 clipboards[64];
|
String_Const_u8 clipboards[64];
|
||||||
|
@ -51,11 +51,6 @@ struct Working_Set{
|
||||||
i32 default_minimum_base_display_width;
|
i32 default_minimum_base_display_width;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct File_Name_Entry{
|
|
||||||
String_Const_u8 name;
|
|
||||||
Buffer_Slot_ID id;
|
|
||||||
};
|
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
file_mark_edit_finished(Working_Set *working_set, Editing_File *file);
|
file_mark_edit_finished(Working_Set *working_set, Editing_File *file);
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@
|
||||||
//#define FM_PRINT_COMMANDS
|
//#define FM_PRINT_COMMANDS
|
||||||
|
|
||||||
#include "../4coder_base_types.h"
|
#include "../4coder_base_types.h"
|
||||||
# include "../4coder_lib/4coder_arena.h"
|
|
||||||
# include "../4coder_lib/4coder_arena.cpp"
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
# define FSTRING_IMPLEMENTATION
|
# define FSTRING_IMPLEMENTATION
|
||||||
|
|
|
@ -17,10 +17,8 @@
|
||||||
#include "4coder_API/4coder_version.h"
|
#include "4coder_API/4coder_version.h"
|
||||||
#include "4coder_API/4coder_keycodes.h"
|
#include "4coder_API/4coder_keycodes.h"
|
||||||
|
|
||||||
# include "4coder_lib/4coder_arena.h"
|
|
||||||
#include "4coder_base_types.cpp"
|
#include "4coder_base_types.cpp"
|
||||||
#include "4coder_stringf.cpp"
|
#include "4coder_stringf.cpp"
|
||||||
# include "4coder_lib/4coder_arena.cpp"
|
|
||||||
# define FSTRING_IMPLEMENTATION
|
# define FSTRING_IMPLEMENTATION
|
||||||
# include "4coder_lib/4coder_string.h"
|
# include "4coder_lib/4coder_string.h"
|
||||||
#include "4coder_lib/4cpp_lexer.h"
|
#include "4coder_lib/4cpp_lexer.h"
|
||||||
|
@ -73,11 +71,11 @@ generate_custom_headers(Arena *arena){
|
||||||
String_Const_char name_string = unit_custom.set.items[i].name;
|
String_Const_char name_string = unit_custom.set.items[i].name;
|
||||||
|
|
||||||
List_String_Const_char macro_list = {};
|
List_String_Const_char macro_list = {};
|
||||||
string_list_push(arena, ¯o_list, string_mod_upper(string_copy(arena, name_string)));
|
string_list_push(arena, ¯o_list, string_mod_upper(push_string_copy(arena, name_string)));
|
||||||
string_list_push_lit(arena, ¯o_list, "_SIG");
|
string_list_push_lit(arena, ¯o_list, "_SIG");
|
||||||
func_4ed_names.names[i].macro = string_list_flatten(arena, macro_list);
|
func_4ed_names.names[i].macro = string_list_flatten(arena, macro_list);
|
||||||
|
|
||||||
func_4ed_names.names[i].public_name = string_mod_lower(string_copy(arena, name_string));
|
func_4ed_names.names[i].public_name = string_mod_lower(push_string_copy(arena, name_string));
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE(allen): Output
|
// NOTE(allen): Output
|
||||||
|
|
|
@ -27,14 +27,12 @@
|
||||||
#include "4coder_lib/4coder_utf8.h"
|
#include "4coder_lib/4coder_utf8.h"
|
||||||
|
|
||||||
#if defined(FRED_SUPER)
|
#if defined(FRED_SUPER)
|
||||||
# include "4coder_lib/4coder_arena.h"
|
|
||||||
# include "4coder_lib/4coder_heap.h"
|
# include "4coder_lib/4coder_heap.h"
|
||||||
|
|
||||||
# include "4coder_lib/4coder_string.h"
|
# include "4coder_lib/4coder_string.h"
|
||||||
|
|
||||||
#include "4coder_base_types.cpp"
|
#include "4coder_base_types.cpp"
|
||||||
|
|
||||||
# include "4coder_lib/4coder_arena.cpp"
|
|
||||||
# include "4coder_lib/4coder_heap.cpp"
|
# include "4coder_lib/4coder_heap.cpp"
|
||||||
# define FSTRING_IMPLEMENTATION
|
# define FSTRING_IMPLEMENTATION
|
||||||
# include "4coder_lib/4coder_string.h"
|
# include "4coder_lib/4coder_string.h"
|
||||||
|
|
|
@ -34,3 +34,8 @@ buffer_find_hard_start -> get_line_indent_info
|
||||||
|
|
||||||
get_active_view -> get_active_view_DEP
|
get_active_view -> get_active_view_DEP
|
||||||
view_compute_cursor -> view_compute_cursor_DEP
|
view_compute_cursor -> view_compute_cursor_DEP
|
||||||
|
|
||||||
|
list__parameters
|
||||||
|
list_query__parameters
|
||||||
|
list_identifier__parameters
|
||||||
|
list_type_definition__parameters
|
||||||
|
|
Loading…
Reference in New Issue