From d1d5853517685cc9a7968784b9b0c4b505fd7bfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sun, 26 Jul 2020 16:47:19 +0200 Subject: vis: remove z> rightmost pairwise selection combinator --- main.c | 44 -------------------------------------------- 1 file changed, 44 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index a75d0b8..fb46399 100644 --- a/main.c +++ b/main.c @@ -88,9 +88,6 @@ static const char *selections_intersect(Vis*, const char *keys, const Arg *arg); static const char *selections_complement(Vis*, const char *keys, const Arg *arg); /* subtract selections from mark */ static const char *selections_minus(Vis*, const char *keys, const Arg *arg); -/* pairwise combine selections from mark */ -static const char *selections_combine(Vis*, const char *keys, const Arg *arg); -static Filerange combine_rightmost(const Filerange*, const Filerange*); /* adjust current used count according to keys */ static const char *count(Vis*, const char *keys, const Arg *arg); /* move to the count-th line or if not given either to the first (arg->i < 0) @@ -286,7 +283,6 @@ enum { VIS_ACTION_SELECTIONS_INTERSECT, VIS_ACTION_SELECTIONS_COMPLEMENT, VIS_ACTION_SELECTIONS_MINUS, - VIS_ACTION_SELECTIONS_COMBINE_RIGHTMOST, VIS_ACTION_TEXT_OBJECT_WORD_OUTER, VIS_ACTION_TEXT_OBJECT_WORD_INNER, VIS_ACTION_TEXT_OBJECT_LONGWORD_OUTER, @@ -1031,11 +1027,6 @@ static const KeyAction vis_action[] = { VIS_HELP("Subtract selections from mark") selections_minus }, - [VIS_ACTION_SELECTIONS_COMBINE_RIGHTMOST] = { - "vis-selections-combine-rightmost", - VIS_HELP("Pairwise combine: rightmost") - selections_combine, { .combine = combine_rightmost } - }, [VIS_ACTION_TEXT_OBJECT_WORD_OUTER] = { "vis-textobject-word-outer", VIS_HELP("A word leading and trailing whitespace included") @@ -1790,41 +1781,6 @@ static const char *selections_minus(Vis *vis, const char *keys, const Arg *arg) return keys; } -static Filerange combine_rightmost(const Filerange *r1, const Filerange *r2) { - if (!r1) - return *r2; - if (!r2) - return *r1; - return r1->start < r2->start || (r1->start == r2->start && r1->end < r2->end) ? *r2 : *r1; -} - -static const char *selections_combine(Vis *vis, const char *keys, const Arg *arg) { - Win *win = vis_window(vis); - View *view = vis_view(vis); - enum VisMark mark = vis_mark_used(vis); - Array a = view_selections_get_all(view); - Array b = vis_mark_get(win, mark); - Array sel; - array_init_from(&sel, &a); - - Filerange *r1 = array_get(&a, 0), *r2 = array_get(&b, 0); - for (size_t i = 0, j = 0; r1 || r2; r1 = array_get(&a, ++i), r2 = array_get(&b, ++j)) { - Filerange new = arg->combine(r1, r2); - if (text_range_valid(&new)) - array_add(&sel, &new); - } - - vis_mark_normalize(&sel); - selections_set(vis, view, &sel); - vis_cancel(vis); - - array_release(&a); - array_release(&b); - array_release(&sel); - - return keys; -} - static const char *replace(Vis *vis, const char *keys, const Arg *arg) { if (!keys[0]) { vis_keymap_disable(vis); -- cgit v1.2.3