#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