diff options
author | Josh Rahm <rahm@google.com> | 2024-03-12 17:55:15 +0000 |
---|---|---|
committer | Josh Rahm <rahm@google.com> | 2024-03-12 17:55:15 +0000 |
commit | ff00585c7c9e0cac8d1c75a8cb60fd82519b6856 (patch) | |
tree | aac8be23bb829061a780bec5dc968f47988d038d /lua/warp/strategy/grid.lua | |
parent | 8bb88b81a307746ceaf8e3b10137399d980f8903 (diff) | |
download | nvim-warp-ff00585c7c9e0cac8d1c75a8cb60fd82519b6856.tar.gz nvim-warp-ff00585c7c9e0cac8d1c75a8cb60fd82519b6856.tar.bz2 nvim-warp-ff00585c7c9e0cac8d1c75a8cb60fd82519b6856.zip |
strategy -> col_selectors
Diffstat (limited to 'lua/warp/strategy/grid.lua')
-rw-r--r-- | lua/warp/strategy/grid.lua | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/lua/warp/strategy/grid.lua b/lua/warp/strategy/grid.lua deleted file mode 100644 index bc37b56..0000000 --- a/lua/warp/strategy/grid.lua +++ /dev/null @@ -1,91 +0,0 @@ -local vim = assert(vim) - -local M = {} - -local hsel1 = "tnshrdlcmwfpgkbvjxy" -- 19 -local hsel2 = "aeiouzq" -- 7 - -local function char_at(s, i) - local m = (i % #s) + 1 - return string.sub(s, m, m) -end - -local function make_big_line() - local col = 0 - local line = '' - - local v = '' - local c = nil - local i = 0 - local col_map = {} - while true do - v = char_at(hsel1, i) - if c then - if col_map[c .. v] then break end - col_map[c .. v] = col - end - c = char_at(hsel2, i) - col = col + 1 - if col_map[v .. c] then break end - col_map[v .. c] = col - line = line .. v .. c - col = col + 1 - i = i + 1 - end - - return line, col_map -end - -local big_line, col_map = make_big_line() - -M.strategy = function() - local filter - - return { - display = function() - local curpos = vim.api.nvim_win_get_cursor(0) - local line_at = vim.fn.getline(curpos[1]) - local unfiltered = big_line:sub(1, #line_at + 1) - local line = unfiltered - - if filter then - line = "" - local i = 1 - while i <= #unfiltered do - local curch = char_at(unfiltered, i - 1) - if curch == filter then - line = line .. char_at(unfiltered, i) - else - line = line .. ' ' - end - i = i + 1 - end - end - - return line - end, - - on_char = function(ch) - if not filter then - if ch == '$' or ch == '^' then - vim.cmd("normal! " .. ch) - return false - elseif not ch:match('[a-z]') then - vim.cmd("normal! f" .. ch) - return false - else - filter = ch - return true - end - else - if col_map[filter .. ch] then - vim.cmd("normal! " .. col_map[filter .. ch] .. "|") - end - end - - return false - end - } -end - -return M |