aboutsummaryrefslogtreecommitdiff
path: root/include/ecex.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ecex.h')
-rw-r--r--include/ecex.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/include/ecex.h b/include/ecex.h
new file mode 100644
index 0000000..cefee9b
--- /dev/null
+++ b/include/ecex.h
@@ -0,0 +1,124 @@
+#ifndef ECEX_H
+#define ECEX_H
+
+#include "types.h"
+#include "buffers.h"
+#include "eval.h"
+
+ecex_t *ecex_new(void);
+void ecex_free(ecex_t *ed);
+
+int ecex_reserve_buffers(ecex_t *ed, size_t needed);
+int ecex_add_buffer(ecex_t *ed, buffer_t *buffer);
+
+buffer_t *ecex_create_buffer(ecex_t *ed,
+ const char *name,
+ const char *path,
+ int read_only);
+
+buffer_t *ecex_find_buffer(ecex_t *ed, const char *name);
+int ecex_switch_buffer(ecex_t *ed, const char *name);
+
+buffer_t *ecex_current_buffer(ecex_t *ed);
+ecex_window_t *ecex_current_window(ecex_t *ed);
+size_t ecex_window_count(ecex_t *ed);
+int ecex_sync_current_buffer(ecex_t *ed);
+
+int ecex_split_window_vertically(ecex_t *ed);
+int ecex_split_window_horizontally(ecex_t *ed);
+int ecex_other_window(ecex_t *ed);
+int ecex_previous_window(ecex_t *ed);
+int ecex_delete_window(ecex_t *ed);
+int ecex_delete_other_windows(ecex_t *ed);
+int ecex_balance_windows(ecex_t *ed);
+
+int ecex_next_buffer(ecex_t *ed);
+int ecex_previous_buffer(ecex_t *ed);
+int ecex_kill_buffer(ecex_t *ed, const char *name);
+
+int ecex_keep_jit_module(ecex_t *ed, void *module);
+
+int ecex_set_config_path(ecex_t *ed, const char *path);
+const char *ecex_config_path(ecex_t *ed);
+int ecex_reload_config(ecex_t *ed);
+
+int ecex_register_command(ecex_t *ed, const char *name, ecex_command_fn fn);
+int ecex_execute_command(ecex_t *ed, const char *name);
+void ecex_set_clipboard_callbacks(ecex_t *ed,
+ ecex_clipboard_get_fn get_fn,
+ ecex_clipboard_set_fn set_fn,
+ void *userdata);
+const char *ecex_clipboard_get(ecex_t *ed);
+int ecex_clipboard_set(ecex_t *ed, const char *text);
+
+int ecex_bind_key(ecex_t *ed, const char *key, const char *command);
+const char *ecex_lookup_key(ecex_t *ed, const char *key);
+
+int ecex_define_major_mode(ecex_t *ed, const char *name);
+int ecex_major_mode_by_name(ecex_t *ed, const char *name);
+const char *ecex_major_mode_name(ecex_t *ed, int mode);
+int ecex_buffer_set_major_mode(buffer_t *buffer, int mode);
+int ecex_buffer_set_major_mode_by_name(ecex_t *ed, buffer_t *buffer, const char *name);
+const char *ecex_buffer_major_mode_name(ecex_t *ed, buffer_t *buffer);
+int ecex_bind_mode_key(ecex_t *ed, const char *mode_name, const char *key, const char *command);
+const char *ecex_lookup_key_for_buffer(ecex_t *ed, buffer_t *buffer, const char *key);
+int ecex_key_sequence_has_prefix_for_buffer(ecex_t *ed, buffer_t *buffer, const char *prefix);
+int ecex_auto_set_major_mode(ecex_t *ed, buffer_t *buffer);
+
+int ecex_list_commands(ecex_t *ed);
+int ecex_list_buffers(ecex_t *ed);
+
+buffer_t *ecex_create_interactive_buffer(ecex_t *ed, const char *name);
+int ecex_interactive_append_line(ecex_t *ed,
+ buffer_t *buffer,
+ const char *text,
+ ecex_interactive_line_fn fn,
+ const char *payload,
+ void *userdata);
+int ecex_interactive_activate_current_line(ecex_t *ed);
+
+int ecex_find_file(ecex_t *ed, const char *path);
+int ecex_save_current_buffer(ecex_t *ed);
+int ecex_write_current_buffer(ecex_t *ed, const char *path);
+int ecex_compile(ecex_t *ed, const char *command);
+int ecex_grep(ecex_t *ed, const char *command);
+int ecex_rerun_compile(ecex_t *ed);
+int ecex_rerun_grep(ecex_t *ed);
+int ecex_next_interactive_action(ecex_t *ed);
+int ecex_previous_interactive_action(ecex_t *ed);
+int ecex_comment_region(ecex_t *ed);
+int ecex_uncomment_region(ecex_t *ed);
+void ecex_request_prompt(ecex_t *ed, ecex_prompt_request_t request, const char *message);
+void ecex_clear_prompt_request(ecex_t *ed);
+
+const char *ecex_complete_command(ecex_t *ed, const char *query);
+
+int ecex_set_font(ecex_t *ed, const char *path);
+float ecex_get_font_size(ecex_t *ed);
+int ecex_set_font_size(ecex_t *ed, float size);
+int ecex_adjust_font_size(ecex_t *ed, float delta);
+
+void ecex_set_bg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_fg_color(ecex_t *ed, float r, float g, float b);
+
+void ecex_set_status_bg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_status_fg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_status_border_color(ecex_t *ed, float r, float g, float b);
+
+void ecex_set_cursor_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_region_bg_color(ecex_t *ed, float r, float g, float b);
+
+void ecex_set_minibuffer_bg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_minibuffer_fg_color(ecex_t *ed, float r, float g, float b);
+
+void ecex_set_completion_fg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_completion_enabled(ecex_t *ed, int enabled);
+
+void ecex_set_interactive_highlight_bg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_interactive_highlight_fg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_current_line_bg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_search_bg_color(ecex_t *ed, float r, float g, float b);
+void ecex_set_line_numbers_enabled(ecex_t *ed, int enabled);
+void ecex_set_current_line_enabled(ecex_t *ed, int enabled);
+
+#endif