Implement insert mode

This commit is contained in:
Matúš Púll 2025-03-31 20:28:42 +02:00
parent 05213ff3e6
commit 5478f30554

View file

@ -9,6 +9,7 @@
using std::string;
using std::vector;
#define ESC 27
#define adds(s) addstr(s.c_str())
enum mode_type { insert, normal };
@ -24,7 +25,7 @@ void set(int r, int s, char ch) { file.find(r)->text[s] = ch; }
void add_line(int r, string text = "") { file.insert(r, text); }
void remove_line(int r) { file.remove(r); }
void insert_char(int r, int s, char ch) { file.find(r)->text.insert(s, string{ch}); }
void remove_char(int r, int s) { file.find(r)->text.erase(s); }
void remove_char(int r, int s) { file.find(r)->text.erase(s,1); }
// For normal mode not to write to terminal
void step_back() {
@ -169,13 +170,21 @@ int main(int argc, char* argv[]) {
case 'i':
mode = insert;
break;
case ESC:
break;
}
break;
case insert:
switch(ch) {
case ESC:
mode = normal;
break;
default:
insert_char(row, col++, ch);
print_line(row);
break;
}
}
refresh();
}