summaryrefslogtreecommitdiff
path: root/plugin/warp.vim
blob: 6b1fe681e2d4deb99f3eb9c442fb984cfef7225f (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
41
42
43
44
45
46
47
48
49
" 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.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.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.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.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 <Plug>(warp-grid) <cmd>WarpGrid<cr>
noremap <Plug>(warp-words) <cmd>WarpWords<cr>
noremap <Plug>(warp-line) <cmd>WarpLine<cr>

onoremap v<Plug>(warp-grid) <cmd>WarpGrid<cr>
onoremap v<Plug>(warp-words) <cmd>WarpWords<cr>
onoremap V<Plug>(warp-line) <cmd>WarpLine<cr>