From d7415ac09d7afecc430d64ea17b57ceab7432c2e Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Tue, 12 Mar 2024 23:04:21 +0000 Subject: Big refactor to warp. Now two lines are displayed for row-choosing. Made row-choosing modular as well. --- plugin/warp.vim | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) (limited to 'plugin') diff --git a/plugin/warp.vim b/plugin/warp.vim index 95391a1..6b1fe68 100644 --- a/plugin/warp.vim +++ b/plugin/warp.vim @@ -1,16 +1,44 @@ " Uses a strategy that allows the user to select an arbitrary line and column by " using 2x2 key strokes. Is more complex, but most powerful. -command! WarpFull lua require('warp').run(require('warp.col_selectors.grid').grid_strategy, require('warp.win_selectors.prompt')) +command! WarpFull + \ lua require('warp').run( + \ require('warp.win_selectors.prompt'), + \ require('warp.row_selectors.grid').with_opts({ two_columns = true }), + \ require('warp.col_selectors.grid')) " Uses a strategy that allows the user to select an arbitrary line and column by " using 2x2 key strokes. Is more complex, but most powerful. -command! WarpGrid lua require('warp').run(require('warp.col_selectors.grid').grid_strategy) +command! WarpGrid + \ lua require('warp').run( + \ require('warp.win_selectors.null'), + \ require('warp.row_selectors.grid').with_opts({ two_columns = true }), + \ require('warp.col_selectors.grid')) " Has the user select the column based on nows. -command! WarpWords lua require('warp').run(require('warp.col_selectors.words').words_strategy) +command! WarpWords lua require('warp').run( + \ require('warp.win_selectors.null'), + \ require('warp.row_selectors.grid').with_opts({ two_columns = true }), + \ require('warp.col_selectors.words')) " Warps to the line and leaves the cursor on the current line. -command! WarpLine lua require('warp').run(require('warp.col_selectors.null').null_strategy) +command! WarpLine lua require('warp').run( + \ require('warp.win_selectors.null'), + \ require('warp.row_selectors.grid').with_opts({ two_columns = true }), + \ require('warp.col_selectors.null')) + +" Warps to the column and leaves the cursor on the same line +command! WarpCol lua require('warp').run( + \ require('warp.win_selectors.null'), + \ require('warp.row_selectors.null'), + \ require('warp.col_selectors.grid')) + +" Warps to a window +command! WarpWin + \ lua require('warp').run( + \ require('warp.win_selectors.prompt'), + \ require('warp.row_selectors.null'), + \ require('warp.col_selectors.null')) + noremap (warp-grid) WarpGrid noremap (warp-words) WarpWords @@ -18,4 +46,4 @@ noremap (warp-line) WarpLine onoremap v(warp-grid) WarpGrid onoremap v(warp-words) WarpWords -onoremap v(warp-line) WarpLine +onoremap V(warp-line) WarpLine -- cgit