summaryrefslogtreecommitdiff
path: root/line.h
blob: e74b17ebf72478b61f428b99fc7adeb9bbb10bce (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
#ifndef _LINE_H
#define _LINE_H

#include <stddef.h>

#define TAB_WIDTH 4

typedef struct {
	int index;
	int size;
	char* chars;
	int render_size;
	char* render;
	unsigned char* highlight;
	int highlight_open_comment;
} line_t;

struct editor_state;

int row_x_to_display_x(line_t*, int x);
int row_display_x_to_x(line_t*, int display_x);

void editor_update_line(struct editor_state*, line_t*);
void editor_insert_line(struct editor_state*, int at, char *string, size_t length);
void editor_delete_line(struct editor_state*, int at);

void line_insert_char(struct editor_state*, line_t*, int at, int c);
void line_append_string(struct editor_state*, line_t*, char* string, size_t length);
void line_delete_char(struct editor_state*, line_t*, int at);

void free_line(line_t*);

#endif