got 4coder_casey.cpp working with API updates.

master
Allen Webster 2016-06-13 14:54:26 -04:00
parent 33c8339c92
commit 6ec67c0913
8 changed files with 1260 additions and 1122 deletions

View File

@ -16,6 +16,7 @@
#define BUFFER_REPLACE_RANGE_SIG(n) int n(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *str, int len) #define BUFFER_REPLACE_RANGE_SIG(n) int n(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *str, int len)
#define BUFFER_SEEK_SIG(n) int n(Application_Links *app, Buffer_Summary *buffer, int start_pos, int seek_forward, unsigned int flags) #define BUFFER_SEEK_SIG(n) int n(Application_Links *app, Buffer_Summary *buffer, int start_pos, int seek_forward, unsigned int flags)
#define BUFFER_SET_SETTING_SIG(n) int n(Application_Links *app, Buffer_Summary *buffer, int setting, int value) #define BUFFER_SET_SETTING_SIG(n) int n(Application_Links *app, Buffer_Summary *buffer, int setting, int value)
#define BUFFER_SAVE_SIG(n) int n(Application_Links *app, Buffer_Summary *buffer, char *filename, int filename_len)
#define GET_VIEW_FIRST_SIG(n) View_Summary n(Application_Links *app) #define GET_VIEW_FIRST_SIG(n) View_Summary n(Application_Links *app)
#define GET_VIEW_NEXT_SIG(n) void n(Application_Links *app, View_Summary *view) #define GET_VIEW_NEXT_SIG(n) void n(Application_Links *app, View_Summary *view)
#define GET_VIEW_SIG(n) View_Summary n(Application_Links *app, int index) #define GET_VIEW_SIG(n) View_Summary n(Application_Links *app, int index)
@ -28,7 +29,7 @@
#define VIEW_SET_HIGHLIGHT_SIG(n) int n(Application_Links *app, View_Summary *view, int start, int end, int turn_on) #define VIEW_SET_HIGHLIGHT_SIG(n) int n(Application_Links *app, View_Summary *view, int start, int end, int turn_on)
#define VIEW_SET_BUFFER_SIG(n) int n(Application_Links *app, View_Summary *view, int buffer_id) #define VIEW_SET_BUFFER_SIG(n) int n(Application_Links *app, View_Summary *view, int buffer_id)
#define VIEW_OPEN_FILE_SIG(n) int n(Application_Links *app, View_Summary *view, char *filename, int filename_len, int do_in_background) #define VIEW_OPEN_FILE_SIG(n) int n(Application_Links *app, View_Summary *view, char *filename, int filename_len, int do_in_background)
#define VIEW_KILL_FILE_SIG(n) int n(Application_Links *app, View_Summary *view, Buffer_Identifier buffer) #define VIEW_KILL_BUFFER_SIG(n) int n(Application_Links *app, View_Summary *view, Buffer_Identifier buffer)
#define GET_USER_INPUT_SIG(n) User_Input n(Application_Links *app, unsigned int get_type, unsigned int abort_type) #define GET_USER_INPUT_SIG(n) User_Input n(Application_Links *app, unsigned int get_type, unsigned int abort_type)
#define GET_COMMAND_INPUT_SIG(n) User_Input n(Application_Links *app) #define GET_COMMAND_INPUT_SIG(n) User_Input n(Application_Links *app)
#define GET_EVENT_MESSAGE_SIG(n) Event_Message n(Application_Links *app) #define GET_EVENT_MESSAGE_SIG(n) Event_Message n(Application_Links *app)
@ -58,6 +59,7 @@ extern "C"{
typedef BUFFER_REPLACE_RANGE_SIG(Buffer_Replace_Range_Function); typedef BUFFER_REPLACE_RANGE_SIG(Buffer_Replace_Range_Function);
typedef BUFFER_SEEK_SIG(Buffer_Seek_Function); typedef BUFFER_SEEK_SIG(Buffer_Seek_Function);
typedef BUFFER_SET_SETTING_SIG(Buffer_Set_Setting_Function); typedef BUFFER_SET_SETTING_SIG(Buffer_Set_Setting_Function);
typedef BUFFER_SAVE_SIG(Buffer_Save_Function);
typedef GET_VIEW_FIRST_SIG(Get_View_First_Function); typedef GET_VIEW_FIRST_SIG(Get_View_First_Function);
typedef GET_VIEW_NEXT_SIG(Get_View_Next_Function); typedef GET_VIEW_NEXT_SIG(Get_View_Next_Function);
typedef GET_VIEW_SIG(Get_View_Function); typedef GET_VIEW_SIG(Get_View_Function);
@ -70,7 +72,7 @@ extern "C"{
typedef VIEW_SET_HIGHLIGHT_SIG(View_Set_Highlight_Function); typedef VIEW_SET_HIGHLIGHT_SIG(View_Set_Highlight_Function);
typedef VIEW_SET_BUFFER_SIG(View_Set_Buffer_Function); typedef VIEW_SET_BUFFER_SIG(View_Set_Buffer_Function);
typedef VIEW_OPEN_FILE_SIG(View_Open_File_Function); typedef VIEW_OPEN_FILE_SIG(View_Open_File_Function);
typedef VIEW_KILL_FILE_SIG(View_Kill_File_Function); typedef VIEW_KILL_BUFFER_SIG(View_Kill_Buffer_Function);
typedef GET_USER_INPUT_SIG(Get_User_Input_Function); typedef GET_USER_INPUT_SIG(Get_User_Input_Function);
typedef GET_COMMAND_INPUT_SIG(Get_Command_Input_Function); typedef GET_COMMAND_INPUT_SIG(Get_Command_Input_Function);
typedef GET_EVENT_MESSAGE_SIG(Get_Event_Message_Function); typedef GET_EVENT_MESSAGE_SIG(Get_Event_Message_Function);
@ -103,6 +105,7 @@ struct Application_Links{
Buffer_Replace_Range_Function *buffer_replace_range; Buffer_Replace_Range_Function *buffer_replace_range;
Buffer_Seek_Function *buffer_seek; Buffer_Seek_Function *buffer_seek;
Buffer_Set_Setting_Function *buffer_set_setting; Buffer_Set_Setting_Function *buffer_set_setting;
Buffer_Save_Function *buffer_save;
Get_View_First_Function *get_view_first; Get_View_First_Function *get_view_first;
Get_View_Next_Function *get_view_next; Get_View_Next_Function *get_view_next;
Get_View_Function *get_view; Get_View_Function *get_view;
@ -115,7 +118,7 @@ struct Application_Links{
View_Set_Highlight_Function *view_set_highlight; View_Set_Highlight_Function *view_set_highlight;
View_Set_Buffer_Function *view_set_buffer; View_Set_Buffer_Function *view_set_buffer;
View_Open_File_Function *view_open_file; View_Open_File_Function *view_open_file;
View_Kill_File_Function *view_kill_file; View_Kill_Buffer_Function *view_kill_buffer;
Get_User_Input_Function *get_user_input; Get_User_Input_Function *get_user_input;
Get_Command_Input_Function *get_command_input; Get_Command_Input_Function *get_command_input;
Get_Event_Message_Function *get_event_message; Get_Event_Message_Function *get_event_message;
@ -150,6 +153,7 @@ app_links->buffer_read_range = external_buffer_read_range;\
app_links->buffer_replace_range = external_buffer_replace_range;\ app_links->buffer_replace_range = external_buffer_replace_range;\
app_links->buffer_seek = external_buffer_seek;\ app_links->buffer_seek = external_buffer_seek;\
app_links->buffer_set_setting = external_buffer_set_setting;\ app_links->buffer_set_setting = external_buffer_set_setting;\
app_links->buffer_save = external_buffer_save;\
app_links->get_view_first = external_get_view_first;\ app_links->get_view_first = external_get_view_first;\
app_links->get_view_next = external_get_view_next;\ app_links->get_view_next = external_get_view_next;\
app_links->get_view = external_get_view;\ app_links->get_view = external_get_view;\
@ -162,7 +166,7 @@ app_links->view_set_mark = external_view_set_mark;\
app_links->view_set_highlight = external_view_set_highlight;\ app_links->view_set_highlight = external_view_set_highlight;\
app_links->view_set_buffer = external_view_set_buffer;\ app_links->view_set_buffer = external_view_set_buffer;\
app_links->view_open_file = external_view_open_file;\ app_links->view_open_file = external_view_open_file;\
app_links->view_kill_file = external_view_kill_file;\ app_links->view_kill_buffer = external_view_kill_buffer;\
app_links->get_user_input = external_get_user_input;\ app_links->get_user_input = external_get_user_input;\
app_links->get_command_input = external_get_command_input;\ app_links->get_command_input = external_get_command_input;\
app_links->get_event_message = external_get_event_message;\ app_links->get_event_message = external_get_event_message;\

View File

@ -928,7 +928,7 @@ CUSTOM_COMMAND_SIG(close_all_code){
View_Summary view = app->get_active_view(app); View_Summary view = app->get_active_view(app);
for (int i = 0; i < buffers_to_close_count; ++i){ for (int i = 0; i < buffers_to_close_count; ++i){
app->view_kill_file(app, &view, buffer_identifier(buffers_to_close[i])); app->view_kill_buffer(app, &view, buffer_identifier(buffers_to_close[i]));
} }
} }

1049
4ed.cpp

File diff suppressed because it is too large Load Diff

1101
4ed_api_implementation.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@ -5171,17 +5171,17 @@ do_step_file_view(System_Functions *system,
activation_key = char_to_upper(activation_key); activation_key = char_to_upper(activation_key);
if (activation_key != 0){ if (activation_key != 0){
count = keys->count; count = keys->count;
for (i = 0; i < count; ++i){ for (i = 0; i < count; ++i){
key = get_single_key(keys, i); key = get_single_key(keys, i);
if (char_to_upper(key.character) == activation_key){ if (char_to_upper(key.character) == activation_key){
target->active = b->id; target->active = b->id;
result.is_animating = true; result.is_animating = true;
break; break;
}
} }
} }
} }
}
}break; }break;
case guicom_scrollable_slider: case guicom_scrollable_slider:

View File

@ -370,6 +370,15 @@ skip_whitespace(String str){
return(result); return(result);
} }
String
chop_whitespace(String str){
String result = {0};
int i = str.size;
for (; i > 0 && char_is_whitespace(str.str[i-1]); --i);
result = substr(str, 0, i);
return(result);
}
int int
is_comment(String str){ is_comment(String str){
int result = 0; int result = 0;
@ -385,7 +394,7 @@ is_comment(String str){
char* char*
generate_custom_headers(){ generate_custom_headers(){
char *filename = "4coder_custom_api.h"; char *filename = "4coder_custom_api.h";
String data = file_dump("custom_api_spec.txt"); String data = file_dump("custom_api_spec.cpp");
int line_count = 0; int line_count = 0;
String line = {0}; String line = {0};
@ -409,10 +418,11 @@ generate_custom_headers(){
String parse = line; String parse = line;
parse = skip_whitespace(parse); parse = skip_whitespace(parse);
parse = chop_whitespace(parse);
if (parse.size > 0){ if (parse.size > 0){
if (!is_comment(parse)){ if (!is_comment(parse)){
Function_Signature *sig = sigs + sig_count; Function_Signature *sig = sigs + sig_count;
memset(sig, 0, sizeof(Function_Signature)); memset(sig, 0, sizeof(*sig));
++sig_count; ++sig_count;
@ -427,8 +437,24 @@ generate_custom_headers(){
parse = substr(parse, pos); parse = substr(parse, pos);
if (parse.size > 0){ if (parse.size > 0){
sig->args = parse; char end = parse.str[parse.size - 1];
sig->valid = 1; int valid = true;
switch (end){
case ')':
sig->args = parse;
break;
case ';':
--parse.size;
sig->args = parse;
break;
default:
valid = false;
break;
}
sig->valid = valid;
if (max_name_size < sig->name.size){ if (max_name_size < sig->name.size){
max_name_size = sig->name.size; max_name_size = sig->name.size;
@ -437,7 +463,7 @@ generate_custom_headers(){
} }
if (!sig->valid){ if (!sig->valid){
printf("custom_api_spec.txt(%d) : generator warning : invalid function signature\n", printf("custom_api_spec.cpp(%d) : generator warning : invalid function signature\n",
line_count); line_count);
} }
} }
@ -500,8 +526,7 @@ generate_custom_headers(){
); );
fprintf(file, "};\n"); fprintf(file, "};\n");
fprintf(file, fprintf(file, "#define FillAppLinksAPI(app_links) do{");
"#define FillAppLinksAPI(app_links) do{");
for (int i = 0; i < sig_count; ++i){ for (int i = 0; i < sig_count; ++i){
Function_Signature *sig = sigs + i; Function_Signature *sig = sigs + i;
@ -515,7 +540,7 @@ generate_custom_headers(){
name_buffer, name_buffer name_buffer, name_buffer
); );
} }
fprintf(file," } while(false)\n"); fprintf(file, " } while(false)\n");
fclose(file); fclose(file);

View File

@ -1,67 +1,70 @@
// Command exectuion // Command exectuion
void Exec_Command(Application_Links *app, int command_id) void Exec_Command(Application_Links *app, int command_id);
int Exec_System_Command(Application_Links *app, View_Summary *view, Buffer_Identifier buffer, char *path, int path_len, char *command, int command_len, unsigned int flags) int Exec_System_Command(Application_Links *app, View_Summary *view, Buffer_Identifier buffer, char *path, int path_len, char *command, int command_len, unsigned int flags);
// File system navigation // File system navigation
int Directory_Get_Hot(Application_Links *app, char *out, int capacity) int Directory_Get_Hot(Application_Links *app, char *out, int capacity);
int Get_4ed_Path(Application_Links *app, char *out, int capacity) int Get_4ed_Path(Application_Links *app, char *out, int capacity);
int File_Exists(Application_Links *app, char *filename, int len) int File_Exists(Application_Links *app, char *filename, int len);
int Directory_CD(Application_Links *app, char *dir, int *len, int capacity, char *rel_path, int rel_len) int Directory_CD(Application_Links *app, char *dir, int *len, int capacity, char *rel_path, int rel_len);
File_List Get_File_List(Application_Links *app, char *dir, int len) File_List Get_File_List(Application_Links *app, char *dir, int len);
void Free_File_List(Application_Links *app, File_List list) void Free_File_List(Application_Links *app, File_List list);
// Direct buffer manipulation // Direct buffer manipulation
Buffer_Summary Get_Buffer_First(Application_Links *app) Buffer_Summary Get_Buffer_First(Application_Links *app);
void Get_Buffer_Next(Application_Links *app, Buffer_Summary *buffer) void Get_Buffer_Next(Application_Links *app, Buffer_Summary *buffer);
Buffer_Summary Get_Buffer(Application_Links *app, int index) Buffer_Summary Get_Buffer(Application_Links *app, int index);
Buffer_Summary Get_Parameter_Buffer(Application_Links *app, int param_index) Buffer_Summary Get_Parameter_Buffer(Application_Links *app, int param_index);
Buffer_Summary Get_Buffer_By_Name(Application_Links *app, char *filename, int len) Buffer_Summary Get_Buffer_By_Name(Application_Links *app, char *filename, int len);
int Refresh_Buffer(Application_Links *app, Buffer_Summary *buffer) int Refresh_Buffer(Application_Links *app, Buffer_Summary *buffer);
int Buffer_Read_Range(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *out) int Buffer_Read_Range(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *out);
int Buffer_Replace_Range(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *str, int len) int Buffer_Replace_Range(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *str, int len);
//int Buffer_Set_Pos(Application_Links *app, Buffer_Summary *buffer, int pos) //int Buffer_Set_Pos(Application_Links *app, Buffer_Summary *buffer, int pos);
int Buffer_Seek(Application_Links *app, Buffer_Summary *buffer, int start_pos, int seek_forward, unsigned int flags) int Buffer_Seek(Application_Links *app, Buffer_Summary *buffer, int start_pos, int seek_forward, unsigned int flags);
int Buffer_Set_Setting(Application_Links *app, Buffer_Summary *buffer, int setting, int value) int Buffer_Set_Setting(Application_Links *app, Buffer_Summary *buffer, int setting, int value);
int Buffer_Save(Application_Links *app, Buffer_Summary *buffer, char *filename, int filename_len);
// View manipulation // View manipulation
View_Summary Get_View_First(Application_Links *app) View_Summary Get_View_First(Application_Links *app);
void Get_View_Next(Application_Links *app, View_Summary *view) void Get_View_Next(Application_Links *app, View_Summary *view);
View_Summary Get_View(Application_Links *app, int index) View_Summary Get_View(Application_Links *app, int index);
View_Summary Get_Active_View(Application_Links *app) View_Summary Get_Active_View(Application_Links *app);
int Refresh_View(Application_Links *app, View_Summary *view) int Refresh_View(Application_Links *app, View_Summary *view);
int View_Auto_Tab(Application_Links *app, View_Summary *view, int start, int end, int tab_width, unsigned int flags) int View_Auto_Tab(Application_Links *app, View_Summary *view, int start, int end, int tab_width, unsigned int flags);
Full_Cursor View_Compute_Cursor(Application_Links *app, View_Summary *view, Buffer_Seek seek) Full_Cursor View_Compute_Cursor(Application_Links *app, View_Summary *view, Buffer_Seek seek);
int View_Set_Cursor(Application_Links *app, View_Summary *view, Buffer_Seek seek, int set_preferred_x) int View_Set_Cursor(Application_Links *app, View_Summary *view, Buffer_Seek seek, int set_preferred_x);
int View_Set_Mark(Application_Links *app, View_Summary *view, Buffer_Seek seek) int View_Set_Mark(Application_Links *app, View_Summary *view, Buffer_Seek seek);
int View_Set_Highlight(Application_Links *app, View_Summary *view, int start, int end, int turn_on) int View_Set_Highlight(Application_Links *app, View_Summary *view, int start, int end, int turn_on);
int View_Set_Buffer(Application_Links *app, View_Summary *view, int buffer_id) int View_Set_Buffer(Application_Links *app, View_Summary *view, int buffer_id);
int View_Open_File(Application_Links *app, View_Summary *view, char *filename, int filename_len, int do_in_background) // TODO(allen): Make sure this is just right.
int View_Kill_File(Application_Links *app, View_Summary *view, Buffer_Identifier buffer) int View_Open_File(Application_Links *app, View_Summary *view, char *filename, int filename_len, int do_in_background);
int View_Kill_Buffer(Application_Links *app, View_Summary *view, Buffer_Identifier buffer);
// Directly get user input // Directly get user input
User_Input Get_User_Input(Application_Links *app, unsigned int get_type, unsigned int abort_type) User_Input Get_User_Input(Application_Links *app, unsigned int get_type, unsigned int abort_type);
User_Input Get_Command_Input(Application_Links *app) User_Input Get_Command_Input(Application_Links *app);
Event_Message Get_Event_Message(Application_Links *app) Event_Message Get_Event_Message(Application_Links *app);
Mouse_State Get_Mouse_State(Application_Links *app) Mouse_State Get_Mouse_State(Application_Links *app);
// Queries and information display // Queries and information display
int Start_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags) int Start_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags);
void End_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags) void End_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags);
void Print_Message(Application_Links *app, char *string, int len) void Print_Message(Application_Links *app, char *string, int len);
//GUI_Functions* Get_GUI_Functions(Application_Links *app) //GUI_Functions* Get_GUI_Functions(Application_Links *app);
//GUI* Get_GUI(Application_Links *app, int view_id) //GUI* Get_GUI(Application_Links *app, int view_id);
// Color settings // Color settings
void Change_Theme(Application_Links *app, char *name, int len) void Change_Theme(Application_Links *app, char *name, int len);
void Change_Font(Application_Links *app, char *name, int len) void Change_Font(Application_Links *app, char *name, int len);
void Set_Theme_Colors(Application_Links *app, Theme_Color *colors, int count) void Set_Theme_Colors(Application_Links *app, Theme_Color *colors, int count);

View File

@ -452,10 +452,8 @@ CUSTOM_COMMAND_SIG(casey_kill_to_end_of_line)
CUSTOM_COMMAND_SIG(casey_paste_and_tab) CUSTOM_COMMAND_SIG(casey_paste_and_tab)
{ {
// NOTE(allen): Paste puts the mark at the beginning and the cursor at
// the end of the pasted chunk, so it is all set for cmdid_auto_tab_range
exec_command(app, cmdid_paste); exec_command(app, cmdid_paste);
exec_command(app, cmdid_auto_tab_range); exec_command(app, auto_tab_range);
} }
CUSTOM_COMMAND_SIG(casey_seek_beginning_of_line_and_tab) CUSTOM_COMMAND_SIG(casey_seek_beginning_of_line_and_tab)
@ -514,13 +512,18 @@ SwitchToOrLoadFile(struct Application_Links *app, String FileName, bool CreateIf
{ {
if(app->file_exists(app, FileName.str, FileName.size) || CreateIfNotFound) if(app->file_exists(app, FileName.str, FileName.size) || CreateIfNotFound)
{ {
#if 0
push_parameter(app, par_name, expand_str(FileName)); push_parameter(app, par_name, expand_str(FileName));
// TODO(casey): Do I have to check for existence, or can I pass a parameter // TODO(casey): Do I have to check for existence, or can I pass a parameter
// to interactive open to tell it to fail if the file isn't there? // to interactive open to tell it to fail if the file isn't there?
exec_command(app, cmdid_interactive_open); exec_command(app, cmdid_interactive_open);
#endif
// NOTE(allen): This opens the file and puts it in &view
app->view_open_file(app, &view, expand_str(FileName), false);
Result.buffer = app->get_buffer_by_name(app, FileName.str, FileName.size); Result.buffer = app->get_buffer_by_name(app, FileName.str, FileName.size);
Result.Loaded = true; Result.Loaded = true;
Result.Switched = true; Result.Switched = true;
} }
@ -607,7 +610,7 @@ CUSTOM_COMMAND_SIG(casey_find_corresponding_file)
int MaxExtensionLength = 3; int MaxExtensionLength = 3;
int Space = (int)(buffer.file_name_len + MaxExtensionLength); int Space = (int)(buffer.file_name_len + MaxExtensionLength);
String FileNameStem = make_string(buffer.file_name, (int)(extension.str - buffer.file_name), 0); String FileNameStem = make_string(buffer.file_name, (int)(extension.str - buffer.file_name), 0);
String TestFileName = make_string(app->push_memory(app, Space), 0, Space); String TestFileName = make_string(app->memory, 0, Space);
for(int ExtensionIndex = 0; for(int ExtensionIndex = 0;
ExtensionCount; ExtensionCount;
++ExtensionIndex) ++ExtensionIndex)
@ -646,11 +649,16 @@ CUSTOM_COMMAND_SIG(casey_save_and_make_without_asking)
buffer.exists; buffer.exists;
app->get_buffer_next(app, &buffer)) app->get_buffer_next(app, &buffer))
{ {
#if 0
push_parameter(app, par_name, buffer.file_name, buffer.file_name_len); push_parameter(app, par_name, buffer.file_name, buffer.file_name_len);
push_parameter(app, par_buffer_id, buffer.buffer_id); push_parameter(app, par_buffer_id, buffer.buffer_id);
exec_command(app, cmdid_save); exec_command(app, cmdid_save);
#endif
app->buffer_save(app, &buffer, buffer.file_name, buffer.file_name_len);
} }
#if 0
String dir = make_string(app->memory, 0, app->memory_size); String dir = make_string(app->memory, 0, app->memory_size);
append(&dir, BuildDirectory); append(&dir, BuildDirectory);
for(int At = 0; for(int At = 0;
@ -677,6 +685,40 @@ CUSTOM_COMMAND_SIG(casey_save_and_make_without_asking)
else{ else{
app->clear_parameters(app); app->clear_parameters(app);
} }
#endif
// NOTE(allen): The parameter pushing made it a little easier
// to deal with this particular pattern where two similar strings
// were both used. Now both strings need to exist at the same
// time on the users side.
int size = app->memory_size/2;
String dir = make_string(app->memory, 0, size);
String command = make_string((char*)app->memory + size, 0, size);
append(&dir, BuildDirectory);
for(int At = 0;
At < dir.size;
++At)
{
if(dir.str[At] == '/')
{
dir.str[At] = '\\';
}
}
append(&command, dir);
if(append(&command, "build.bat"))
{
View_Summary view = app->get_active_view(app);
app->exec_system_command(app, &view,
buffer_identifier(GlobalCompilationBufferName, (int)strlen(GlobalCompilationBufferName)),
dir.str, dir.size,
command.str, command.size,
CLI_OverlapWithConflict);
}
exec_command(app, cmdid_change_active_panel);
} }
internal bool internal bool
@ -1105,9 +1147,13 @@ OpenProject(Application_Links *app, char *ProjectFileName)
// was originally, so that new appends overwrite old ones. // was originally, so that new appends overwrite old ones.
dir.size = dir_size; dir.size = dir_size;
append(&dir, info->filename); append(&dir, info->filename);
#if 0
push_parameter(app, par_name, dir.str, dir.size); push_parameter(app, par_name, dir.str, dir.size);
push_parameter(app, par_do_in_background, 1); push_parameter(app, par_do_in_background, 1);
exec_command(app, cmdid_interactive_open); exec_command(app, cmdid_interactive_open);
#endif
app->view_open_file(app, 0, dir.str, dir.size, true);
++TotalOpenAttempts; ++TotalOpenAttempts;
} }
} }
@ -1233,7 +1279,7 @@ DEFINE_MODAL_KEY(modal_d, casey_kill_to_end_of_line);
DEFINE_MODAL_KEY(modal_e, write_character); // TODO(casey): Available DEFINE_MODAL_KEY(modal_e, write_character); // TODO(casey): Available
DEFINE_MODAL_KEY(modal_f, casey_paste_and_tab); DEFINE_MODAL_KEY(modal_f, casey_paste_and_tab);
DEFINE_MODAL_KEY(modal_g, goto_line); DEFINE_MODAL_KEY(modal_g, goto_line);
DEFINE_MODAL_KEY(modal_h, cmdid_auto_tab_range); DEFINE_MODAL_KEY(modal_h, auto_tab_range);
DEFINE_MODAL_KEY(modal_i, move_up); DEFINE_MODAL_KEY(modal_i, move_up);
DEFINE_MODAL_KEY(modal_j, seek_white_or_token_left); DEFINE_MODAL_KEY(modal_j, seek_white_or_token_left);
DEFINE_MODAL_KEY(modal_k, move_down); DEFINE_MODAL_KEY(modal_k, move_down);
@ -1295,13 +1341,19 @@ HOOK_SIG(casey_file_settings)
treat_as_code = IsCode(ext); treat_as_code = IsCode(ext);
treat_as_project = match(ext, make_lit_string("prj")); treat_as_project = match(ext, make_lit_string("prj"));
} }
#if 0
push_parameter(app, par_buffer_id, buffer.buffer_id); push_parameter(app, par_buffer_id, buffer.buffer_id);
push_parameter(app, par_lex_as_cpp_file, treat_as_code); push_parameter(app, par_lex_as_cpp_file, treat_as_code);
push_parameter(app, par_wrap_lines, !treat_as_code); push_parameter(app, par_wrap_lines, !treat_as_code);
push_parameter(app, par_key_mapid, mapid_file); push_parameter(app, par_key_mapid, mapid_file);
exec_command(app, cmdid_set_settings); exec_command(app, cmdid_set_settings);
#endif
app->buffer_set_setting(app, &buffer, BufferSetting_Lex, treat_as_code);
app->buffer_set_setting(app, &buffer, BufferSetting_WrapLine, !treat_as_code);
app->buffer_set_setting(app, &buffer, BufferSetting_MapID, mapid_file);
if(treat_as_project) if(treat_as_project)
{ {
OpenProject(app, buffer.file_name); OpenProject(app, buffer.file_name);