summaryrefslogtreecommitdiff
path: root/editor.h
diff options
context:
space:
mode:
Diffstat (limited to 'editor.h')
-rw-r--r--editor.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/editor.h b/editor.h
new file mode 100644
index 0000000..578a91e
--- /dev/null
+++ b/editor.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include <time.h>
+#include "buffer.h"
+
+struct editor_state {
+ int cursor_x, cursor_y;
+ int cursor_display_x;
+ int row_offset;
+ int col_offset;
+ int screen_rows;
+ int screen_cols;
+ int row_count;
+ struct editor_row* rows;
+ int dirty;
+ char* filename;
+ char status_message[80];
+ time_t status_message_time;
+ struct editor_syntax* syntax;
+};
+
+void init_editor(struct editor_state* editor);
+
+void editor_set_status_message(struct editor_state* editor, const char* format, ...);
+void editor_refresh_screen(struct editor_state* editor);
+char* editor_prompt(struct editor_state* editor, char* prompt, void (*callback)(struct editor_state*, char*, int));
+
+void editor_insert_char(struct editor_state* editor, int c);
+void editor_insert_newline(struct editor_state* editor);
+void editor_delete_char(struct editor_state* editor);
+void editor_find(struct editor_state* editor);
+void editor_scroll(struct editor_state* editor);
+void editor_draw_rows(struct editor_state* editor, struct append_buffer* buffer);
+void editor_draw_status_bar(struct editor_state* editor, struct append_buffer* buffer);
+void editor_draw_message_bar(struct editor_state* editor, struct append_buffer* buffer);