aboutsummaryrefslogtreecommitdiff
path: root/include/ecex.h
blob: cefee9b2d3457e3e2cc9bfee145606f4b0d8d82f (plain)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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