tangled
alpha
login
or
join now
robinwobin.dev
/
artio.nvim
3
fork
atom
minimal extui fuzzy finder for neovim
3
fork
atom
overview
issues
pulls
pipelines
feat(builtins): add livegrep builtin
robinwobin.dev
3 months ago
4c932e7d
8a6f329e
+34
1 changed file
expand all
collapse all
unified
split
lua
artio
builtins.lua
+34
lua/artio/builtins.lua
···
57
57
})
58
58
end
59
59
60
60
+
builtins.livegrep = function()
61
61
+
local win = vim.api.nvim_get_current_win()
62
62
+
local buf = vim.api.nvim_win_get_buf(win)
63
63
+
local n = vim.api.nvim_buf_line_count(buf)
64
64
+
local lst = {} ---@type integer[]
65
65
+
for i = 1, n do
66
66
+
lst[#lst + 1] = i
67
67
+
end
68
68
+
69
69
+
local pad = #tostring(lst[#lst])
70
70
+
71
71
+
return artio.generic(lst, {
72
72
+
prompt = "livegrep",
73
73
+
on_close = function(row, _)
74
74
+
vim.schedule(function()
75
75
+
vim.api.nvim_win_set_cursor(win, { row, 0 })
76
76
+
end)
77
77
+
end,
78
78
+
format_item = function(row)
79
79
+
return vim.api.nvim_buf_get_lines(buf, row - 1, row, true)[1]
80
80
+
end,
81
81
+
preview_item = function(row)
82
82
+
return buf, function(w)
83
83
+
vim.api.nvim_set_option_value('cursorline', true, { scope = 'local', win = w })
84
84
+
vim.api.nvim_win_set_cursor(w, { row, 0 })
85
85
+
end
86
86
+
end,
87
87
+
get_icon = function(row)
88
88
+
local v = tostring(row.v)
89
89
+
return ("%s%s"):format((" "):rep(pad - #v), v)
90
90
+
end,
91
91
+
})
92
92
+
end
93
93
+
60
94
local function find_helptags()
61
95
local buf = vim.api.nvim_create_buf(false, true)
62
96
vim.bo[buf].buftype = "help"