aboutsummaryrefslogtreecommitdiff
path: root/vis-text-objects.c
blob: a4fe36f412e62886fa7eedc5bab1dad2b5c98cf3 (plain) (blame)
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
#include "vis-core.h"
#include "text-objects.h"
#include "util.h"

void vis_textobject(Vis *vis, enum VisTextObject id) {
	if (id < LENGTH(vis_textobjects)) {
		vis->action.textobj = &vis_textobjects[id];
		action_do(vis, &vis->action);
	}
}

TextObject vis_textobjects[] = {
	[VIS_TEXTOBJECT_INNER_WORD]           = { .txt = text_object_word                          },
	[VIS_TEXTOBJECT_OUTER_WORD]           = { .txt = text_object_word_outer                    },
	[VIS_TEXTOBJECT_INNER_LONGWORD]       = { .txt = text_object_longword                      },
	[VIS_TEXTOBJECT_OUTER_LONGWORD]       = { .txt = text_object_longword_outer                },
	[VIS_TEXTOBJECT_SENTENCE]             = { .txt = text_object_sentence                      },
	[VIS_TEXTOBJECT_PARAGRAPH]            = { .txt = text_object_paragraph                     },
	[VIS_TEXTOBJECT_OUTER_SQUARE_BRACKET] = { .txt = text_object_square_bracket, .type = OUTER },
	[VIS_TEXTOBJECT_INNER_SQUARE_BRACKET] = { .txt = text_object_square_bracket, .type = INNER },
	[VIS_TEXTOBJECT_OUTER_CURLY_BRACKET]  = { .txt = text_object_curly_bracket,  .type = OUTER },
	[VIS_TEXTOBJECT_INNER_CURLY_BRACKET]  = { .txt = text_object_curly_bracket,  .type = INNER },
	[VIS_TEXTOBJECT_OUTER_ANGLE_BRACKET]  = { .txt = text_object_angle_bracket,  .type = OUTER },
	[VIS_TEXTOBJECT_INNER_ANGLE_BRACKET]  = { .txt = text_object_angle_bracket,  .type = INNER },
	[VIS_TEXTOBJECT_OUTER_PARANTHESE]     = { .txt = text_object_paranthese,     .type = OUTER },
	[VIS_TEXTOBJECT_INNER_PARANTHESE]     = { .txt = text_object_paranthese,     .type = INNER },
	[VIS_TEXTOBJECT_OUTER_QUOTE]          = { .txt = text_object_quote,          .type = OUTER },
	[VIS_TEXTOBJECT_INNER_QUOTE]          = { .txt = text_object_quote,          .type = INNER },
	[VIS_TEXTOBJECT_OUTER_SINGLE_QUOTE]   = { .txt = text_object_single_quote,   .type = OUTER },
	[VIS_TEXTOBJECT_INNER_SINGLE_QUOTE]   = { .txt = text_object_single_quote,   .type = INNER },
	[VIS_TEXTOBJECT_OUTER_BACKTICK]       = { .txt = text_object_backtick,       .type = OUTER },
	[VIS_TEXTOBJECT_INNER_BACKTICK]       = { .txt = text_object_backtick,       .type = INNER },
	[VIS_TEXTOBJECT_OUTER_ENTIRE]         = { .txt = text_object_entire,                       },
	[VIS_TEXTOBJECT_INNER_ENTIRE]         = { .txt = text_object_entire_inner,                 },
	[VIS_TEXTOBJECT_OUTER_FUNCTION]       = { .txt = text_object_function,                     },
	[VIS_TEXTOBJECT_INNER_FUNCTION]       = { .txt = text_object_function_inner,               },
	[VIS_TEXTOBJECT_OUTER_LINE]           = { .txt = text_object_line,                         },
	[VIS_TEXTOBJECT_INNER_LINE]           = { .txt = text_object_line_inner,                   },
};