From 329f41609621f29ac6b58dcc33cd41bf437c02c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Fri, 23 Oct 2015 21:02:13 +0200 Subject: vis: introduce vis_textobject API --- vis.c | 40 ++++++++-------------------------------- 1 file changed, 8 insertions(+), 32 deletions(-) (limited to 'vis.c') diff --git a/vis.c b/vis.c index 514d0d1..cc2514c 100644 --- a/vis.c +++ b/vis.c @@ -166,36 +166,6 @@ static Movement moves[] = { [MOVE_WINDOW_LINE_BOTTOM] = { .view = view_lines_bottom, .type = LINEWISE|JUMP|IDEMPOTENT }, }; -/* these can be passed as int argument to textobj(&(const Arg){ .i = TEXT_OBJ_* }) */ -enum { - TEXT_OBJ_INNER_WORD, - TEXT_OBJ_OUTER_WORD, - TEXT_OBJ_INNER_LONGWORD, - TEXT_OBJ_OUTER_LONGWORD, - TEXT_OBJ_SENTENCE, - TEXT_OBJ_PARAGRAPH, - TEXT_OBJ_OUTER_SQUARE_BRACKET, - TEXT_OBJ_INNER_SQUARE_BRACKET, - TEXT_OBJ_OUTER_CURLY_BRACKET, - TEXT_OBJ_INNER_CURLY_BRACKET, - TEXT_OBJ_OUTER_ANGLE_BRACKET, - TEXT_OBJ_INNER_ANGLE_BRACKET, - TEXT_OBJ_OUTER_PARANTHESE, - TEXT_OBJ_INNER_PARANTHESE, - TEXT_OBJ_OUTER_QUOTE, - TEXT_OBJ_INNER_QUOTE, - TEXT_OBJ_OUTER_SINGLE_QUOTE, - TEXT_OBJ_INNER_SINGLE_QUOTE, - TEXT_OBJ_OUTER_BACKTICK, - TEXT_OBJ_INNER_BACKTICK, - TEXT_OBJ_OUTER_ENTIRE, - TEXT_OBJ_INNER_ENTIRE, - TEXT_OBJ_OUTER_FUNCTION, - TEXT_OBJ_INNER_FUNCTION, - TEXT_OBJ_OUTER_LINE, - TEXT_OBJ_INNER_LINE, -}; - static TextObject textobjs[] = { [TEXT_OBJ_INNER_WORD] = { text_object_word }, [TEXT_OBJ_OUTER_WORD] = { text_object_word_outer }, @@ -947,8 +917,7 @@ static const char *movement(Vis *vis, const char *keys, const Arg *arg) { } static const char *textobj(Vis *vis, const char *keys, const Arg *arg) { - vis->action.textobj = &textobjs[arg->i]; - action_do(vis, &vis->action); + vis_textobject(vis, arg->i); return keys; } @@ -2824,3 +2793,10 @@ out: va_end(ap); } + +void vis_textobject(Vis *vis, enum VisTextObject textobj) { + if (textobj < LENGTH(textobjs)) { + vis->action.textobj = &textobjs[textobj]; + action_do(vis, &vis->action); + } +} -- cgit v1.2.3