summaryrefslogtreecommitdiff
path: root/lua/warp/strategy/grid.lua
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2024-03-12 17:55:15 +0000
committerJosh Rahm <rahm@google.com>2024-03-12 17:55:15 +0000
commitff00585c7c9e0cac8d1c75a8cb60fd82519b6856 (patch)
treeaac8be23bb829061a780bec5dc968f47988d038d /lua/warp/strategy/grid.lua
parent8bb88b81a307746ceaf8e3b10137399d980f8903 (diff)
downloadnvim-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.lua91
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