move config menu

This commit is contained in:
2023-10-22 18:08:38 -04:00
parent 25931d94ef
commit 4a91fa2d65
3 changed files with 10 additions and 11 deletions

71
lua/cfgmenu.lua Normal file
View File

@ -0,0 +1,71 @@
-- helper functions that can come in handy ------------------------------------
local function run(cmd)
local x = io.popen(cmd)
if not x then return 1 end
local y = x:read("*a")
x:close()
return y
end
-- custom menu for simpler neovim managment -----------------------------------
local function genmenu()
local list = {}
local function add(name, plug)
if not plug then
table.insert(list, name)
return
end
if package.loaded[plug] then
table.insert(list, name)
end
end
add('edit config', nil)
add('update plugins', 'dep')
add('show keybinds', 'telescope')
add('change colorscheme', 'telescope')
add('new plugins', 'telescope')
return list
end
local function configmenu()
local list = genmenu()
vim.ui.select(list, { vpt = 'Config Menu' },
function(choice)
if choice == 'edit config' then
vim.cmd('e $XDG_CONFIG_HOME/nvim/init.lua')
end
if choice == 'update plugins' then
require('dep').sync()
if package.loaded['nvim-treesitter'] then
vim.cmd('TSUpdate')
end
if package.loaded['mason'] then
require('mason.api.command').MasonUpdate()
end
end
if choice == 'show keybinds' then
require('telescope.builtin').keymaps()
end
if choice == 'change colorscheme' then
vim.cmd("Colorscheme")
end
-- search though plugins (powered by nvim.sh)
if choice == 'new plugins' then
local result = run("curl -s https://nvim.sh/s")
local array = {}
for s in string.gmatch(result, "[^\r\n]+") do
table.insert(array, s)
end
local header = table.remove(array, 1)
vim.ui.select(array, { vpt = header }, function(choice)
end)
end
end)
end
vim.keymap.set('n', '<leader>m', configmenu, {
desc = "Neovim config manager menu",
})
vim.api.nvim_create_user_command("ConfigMenu", configmenu, {})