move config menu
This commit is contained in:
71
lua/cfgmenu.lua
Normal file
71
lua/cfgmenu.lua
Normal 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, {})
|
Reference in New Issue
Block a user