summaryrefslogtreecommitdiffstats
path: root/lua/core/conf.lua
diff options
context:
space:
mode:
authorSquibid <me@zacharyscheiman.com>2023-11-24 21:38:31 -0500
committerSquibid <me@zacharyscheiman.com>2023-11-24 21:38:31 -0500
commitf35b13d669867209427449840ff0930a732591dc (patch)
tree3acb658ec5d01f456c49a097d56f736cbfbbfc7d /lua/core/conf.lua
parentebf9d2d1c4682068f5116f7efc1568ce5adf4f1b (diff)
downloadnvim-f35b13d669867209427449840ff0930a732591dc.tar.gz
nvim-f35b13d669867209427449840ff0930a732591dc.tar.bz2
nvim-f35b13d669867209427449840ff0930a732591dc.zip
more stuff too lazy to seperate
Diffstat (limited to '')
-rw-r--r--lua/core/conf.lua81
1 files changed, 81 insertions, 0 deletions
diff --git a/lua/core/conf.lua b/lua/core/conf.lua
new file mode 100644
index 0000000..72dd9bf
--- /dev/null
+++ b/lua/core/conf.lua
@@ -0,0 +1,81 @@
+local pickers = require("telescope.pickers")
+local finders = require("telescope.finders")
+local previewers = require("telescope.previewers")
+local conf = require("telescope.config").values
+local actions = require("telescope.actions")
+local action_state = require("telescope.actions.state")
+
+local M = {}
+
+local function genmenu()
+ local list = {}
+ local function add(name, plug)
+ if not plug then
+ table.insert(list, name)
+ elseif package.loaded[plug] then
+ table.insert(list, name)
+ end
+ end
+
+ add('Edit Config', nil)
+ add('Update Plugins', 'dep')
+ add('Keybinds', 'telescope')
+ add('Colorscheme', 'telescope')
+
+ return list
+end
+
+function M.configmenu()
+ pickers.new({
+ prompt_title = "Nvim Config Menu",
+ finder = finders.new_table { results = genmenu() },
+ sorter = conf.generic_sorter(),
+ previewer = previewers.new_buffer_previewer {
+ define_preview = function(self, entry)
+ local lines = {
+ 'a'
+ }
+ if entry.value == "Edit Config" then
+ lines = misc.readf(os.getenv('XDG_CONFIG_HOME')..'/nvim/init.lua')
+ local ft = vim.filetype.match({
+ filename = os.getenv('XDG_CONFIG_HOME')..'/nvim/init.lua' })
+ require("telescope.previewers.utils").highlighter(self.state.bufnr, ft)
+ elseif entry.value == "Colorscheme" then
+ lines = vim.fn.getcompletion('', 'color')
+ for k, v in pairs(lines) do
+ if v.find(v, '.ext') then
+ table.remove(lines, k)
+ break
+ end
+ end
+ end
+ vim.api.nvim_buf_set_lines(self.state.bufnr, 0, -1, false, lines)
+ end
+ },
+
+ attach_mappings = function(bufnr, map)
+ actions.select_default:replace(function()
+ actions.close(bufnr)
+ local selection = action_state.get_selected_entry()
+ if selection[1] == 'Edit Config' then
+ vim.cmd('e $XDG_CONFIG_HOME/nvim/init.lua')
+ elseif selection[1] == '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
+ elseif selection[1] == 'Keybinds' then
+ require('telescope.builtin').keymaps()
+ elseif selection[1] == 'Colorscheme' then
+ require('core.theme').switcher()
+ end
+ end)
+ return true
+ end,
+ }):find()
+end
+
+return M