1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | CUSTOM_COMMAND_SIG( jason_enter_normal_mode ) { jason_set_current_keymap( app, mapid_command); Theme_Color colors[] = { { Stag_Cursor, 0xffff5533 }, { Stag_At_Cursor, 0xff00aacc }, { Stag_Margin_Active, 0xffff5533 }, }; set_theme_colors( app, colors, ArrayCount( colors ) ); }; void SwitchModeTo(struct Application_Links* app, Custom_Command_Function* SwitchModeTo) { SwitchModeTo(app); }; CUSTOM_COMMAND_SIG(jason_seek_beginning_line_and_switch_to_insert_mode) { exec_command(app, seek_beginning_of_line); View_Summary view = get_active_view(app, AccessAll); Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessProtected); char *ParsingRegion = (char *)malloc(sizeof(buffer.size)); buffer_read_range(app, &buffer, 0, buffer.size, ParsingRegion); for(int charIndex{view.cursor.pos}; charIndex < buffer.size; ++charIndex) { if(ParsingRegion[charIndex] == '\t' || ParsingRegion[charIndex] == ' ') { //Do nothing } else { Buffer_Seek bufferSeek{}; bufferSeek.type = buffer_seek_pos; bufferSeek.pos = charIndex; view_set_cursor(app, &view, bufferSeek, true); break; } }; free(ParsingRegion); ParsingRegion = nullptr; SwitchModeTo(app, jason_enter_insert_mode); }; |
This code does 'work' in a sense as my cursor will move to correct spot and I can sometimes even type a couple letters but eventually the program will just crash. Anyone able to see where my issue is? Am I misusing the API?