4coder/custom/4coder_default_framework.h

152 lines
3.1 KiB
C
Raw Permalink Normal View History

/*
2017-04-15 21:47:23 +00:00
4coder_default_framework.cpp - Sets up the basics of the framework that is used for default 4coder behaviour.
*/
// TOP
#if !defined(FCODER_DEFAULT_FRAMEWORK_H)
#define FCODER_DEFAULT_FRAMEWORK_H
////////////////////////////////
2019-09-04 05:31:35 +00:00
typedef i64 Rewrite_Type;
enum{
Rewrite_None,
2020-05-13 00:51:22 +00:00
Rewrite_NoChange,
2019-09-04 05:31:35 +00:00
Rewrite_Paste,
Rewrite_WordComplete
};
////////////////////////////////
struct ID_Line_Column_Jump_Location{
Buffer_ID buffer_id;
2019-02-26 23:17:53 +00:00
i32 line;
i32 column;
2017-04-15 21:47:23 +00:00
};
typedef ID_Line_Column_Jump_Location ID_Based_Jump_Location;
struct ID_Pos_Jump_Location{
Buffer_ID buffer_id;
i64 pos;
};
struct Name_Line_Column_Location{
2019-06-01 23:58:28 +00:00
String_Const_u8 file;
2019-02-26 23:17:53 +00:00
i32 line;
i32 column;
};
struct Parsed_Jump{
b32 success;
Name_Line_Column_Location location;
i32 colon_position;
b32 is_sub_jump;
b32 sub_jump_indented;
b32 sub_jump_note;
b32 is_ms_style;
b32 has_rust_arrow;
};
struct ID_Pos_Jump_Location_Array{
struct ID_Pos_Jump_Location *jumps;
2019-02-26 23:17:53 +00:00
i32 count;
};
////////////////////////////////
#define POINT_STACK_DEPTH 100
struct Point_Stack_Slot{
Buffer_ID buffer;
Managed_Object object;
};
struct Point_Stack{
Point_Stack_Slot markers[POINT_STACK_DEPTH + 1];
i32 top;
i32 bot;
};
////////////////////////////////
2019-10-20 01:32:38 +00:00
typedef i32 Fallback_Dispatch_Result_Code;
enum{
FallbackDispatch_Unhandled,
FallbackDispatch_DidCall,
FallbackDispatch_DelayedUICall,
};
struct Fallback_Dispatch_Result{
Fallback_Dispatch_Result_Code code;
Custom_Command_Function *func;
};
2018-08-05 07:09:18 +00:00
////////////////////////////////
2019-08-16 02:53:11 +00:00
typedef void View_Render_Hook(Application_Links *app, View_ID view, Frame_Info frame_info, Rect_f32 inner);
////////////////////////////////
2019-10-14 22:57:47 +00:00
function b32
do_buffer_kill_user_check(Application_Links *app, Buffer_ID buffer, View_ID view);
2018-08-05 07:09:18 +00:00
2019-10-14 22:57:47 +00:00
function b32
do_4coder_close_user_check(Application_Links *app, View_ID view);
2018-08-05 07:09:18 +00:00
////////////////////////////////
struct Buffer_Modified_Node{
Buffer_Modified_Node *next;
Buffer_Modified_Node *prev;
Buffer_ID buffer;
};
struct Buffer_Modified_Set{
Arena arena;
Buffer_Modified_Node *free;
Buffer_Modified_Node *first;
Buffer_Modified_Node *last;
Table_u64_u64 id_to_node;
};
////////////////////////////////
struct Fade_Range{
Fade_Range *next;
Buffer_ID buffer_id;
f32 t;
f32 full_t;
ARGB_Color color;
2020-05-03 15:00:28 +00:00
b32 negate_fade_direction;
Range_i64 range;
void (*finish_call)(Application_Links *app, struct Fade_Range *range);
void *opaque[4];
};
struct Fade_Range_List{
Fade_Range *first;
Fade_Range *last;
i32 count;
};
#endif
////////////////////////////////
struct Implicit_Map_Result{
String_ID map;
Custom_Command_Function *command;
};
typedef Implicit_Map_Result Implicit_Map_Function(Application_Links *app,
String_ID buffer_language,
String_ID global_mode,
Input_Event *event);
global Implicit_Map_Function *implicit_map_function = 0;
// BOTTOM