From b6807d63cd284a73969f81da7c4b5213880c8bc5 Mon Sep 17 00:00:00 2001 From: Squibid Date: Sun, 22 Oct 2023 18:08:38 -0400 Subject: move config menu --- lua/cfgmenu.lua | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 lua/cfgmenu.lua (limited to 'lua/cfgmenu.lua') diff --git a/lua/cfgmenu.lua b/lua/cfgmenu.lua new file mode 100644 index 0000000..7335079 --- /dev/null +++ b/lua/cfgmenu.lua @@ -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', 'm', configmenu, { + desc = "Neovim config manager menu", +}) +vim.api.nvim_create_user_command("ConfigMenu", configmenu, {}) -- cgit v1.2.1