1
store.nvim[github]
1
2
Store.nvim is a Neovim plugin that provides an intuitive modal
3
interface for browsing and discovering awesome Neovim plugins.
4
5
It features a clean UI that allow users to explore plugins
6
interactively. The plugin includes live README preview with
7
markdown rendering and syntax highlighting, smart filtering
8
capabilities for searching plugins by name, and other cool stuff
9
:)
10
11
12
13
╭────────────────────────────────────────────────────────────────────────────╮
14
│ ▟▀▘▀▛▘▞▀▖▛▀▖█▛▘ plugin store Sort: Recently Updated │
15
│ ▄█▘ ▌ ▚▄▘▛▜▖▙▄▖ .nvim Filter: author:folke; │
16
╰────────────────────────────────────────────────────────────────────────────╯
17
╭─ List ─ Install ────────────────── 11/6172 ╮ ╭─ Readme ─ Docs ─────────────╮
18
│ ✶944 neoconf.nvim manage global… │ │ neoconf.nvim │
19
│ ✶2.5k sidekick.nvim your neovim AI… │ │ manage global and │
20
│ ✶7.9k tokyonight.nvim a clean, dark… │ │ project-local settings │
21
│ ✶7.3k snacks.nvim a collection o… │ │ │
22
│ ✶17k telescope.nvim find, filter,… │ │ INSTALLATION │
23
│ ✶1.5k lazydev.nvim faster LuaLS s… │ │ { │
24
│ ✶8.6k nvim-cmp completion eng… │ │ "folke/neoconf.nvim", │
25
│ ✶4.1k todo-comments.nvim highlight and… │ │ opts = {}, │
26
│ ✶5.4k oil.nvim edit your file… │ │ keys = { │
27
│ ✶5.7k noice.nvim highly experim… │ │ { "<leader>s" } │
28
│ ✶6.7k trouble.nvim a pretty diagn… │ │ }, │
29
│ │ │ } │
30
╰────────────────────────────────────────────╯ ╰─────────────────────────────╯
31
32
34
35
M.sorts = {
36
most_stars = {
37
label = "Most Stars",
38
key = "s",
39
key_col = 5,
40
fn = function(a, b, _)
41
return (a.stars.curr or 0) > (b.stars.curr or 0)
42
end,
43
},
44
rising_stars_monthly = {
45
label = "Rising Stars (monthly)",
46
key = "m",
47
key_col = 14,
48
fn = function(a, b, _)
49
return (a.stars.monthly or 0) > (b.stars.monthly or 0)
50
end,
51
},
52
rising_stars_weekly = {
53
label = "Rising Stars (weekly)",
54
key = "w",
55
key_col = 14,
56
fn = function(a, b, _)
57
return (a.stars.weekly or 0) > (b.stars.weekly or 0)
58
end,
59
},
M.sorts = {
most_stars = {
label = "Most Stars",
key = "s",
key_col = 5,
fn = function(a, b, _)
return (a.stars.curr or 0) > (b.stars.curr or 0)
end,
},
rising_stars_monthly = {
label = "Rising Stars (monthly)",
key = "m",
key_col = 14,
fn = function(a, b, _)
return (a.stars.monthly or 0) > (b.stars.monthly or 0)
end,
},
rising_stars_weekly = {
label = "Rising Stars (weekly)",
key = "w",
key_col = 14,
fn = function(a, b, _)
return (a.stars.weekly or 0) > (b.stars.weekly or 0)
end,
},
function Filter:apply_filter()
vim.cmd("stopinsert")
local query = self:_get_current_query()
local on_value = self.config.on_value
-- Call callback after cleanup
if on_value then
on_value(query)
end
self.config.on_exit()
local close_error = self:close()
return close_error
end
function M.open_url(url)
if not url or type(url) ~= "string" then
return "Invalid URL: must be a non-empty string"
end
-- Validate URL format for security
if not url:match("^https?://[%w%-%.%_%~%:/%?%#%[%]%@%!%$%&%'%(%)%*%+%,%;%=]+$") then
return "Invalid URL format: " .. url
end
if not vim.ui.open then
return "vim.ui.open not available - please update to Neovim 0.10+"
end
vim.ui.open(url)
end
function M.debounce(func, delay)
local timer = nil
return function(...)
local args = { ... }
if timer then
vim.fn.timer_stop(timer)
end
timer = vim.fn.timer_start(delay, function()
func(unpack(args))
timer = nil
end)
end
end