From 181797de7edb18aa33b9bc576fbcad8cd7ec2903 Mon Sep 17 00:00:00 2001 From: rootiest Date: Sat, 21 Sep 2024 06:54:36 -0400 Subject: [PATCH] feat: introduce status updates for Neovim Updater in lualine statusline --- lua/data/keys.lua | 93 +++++++++++++++++++++++++----- lua/plugins/nvim_updater.lua | 8 ++- lua/plugins/statusline/lualine.lua | 55 ++++++++++++++++++ 3 files changed, 139 insertions(+), 17 deletions(-) diff --git a/lua/data/keys.lua b/lua/data/keys.lua index a55079c..923272a 100644 --- a/lua/data/keys.lua +++ b/lua/data/keys.lua @@ -550,10 +550,17 @@ M.group = { group = "MiniMap", icon = { icon = "", color = "green" }, }, - nvimup = { -- Neovim Updater menu - lhs = "qu", - group = "Neovim Updater", - icon = { icon = "", color = "red" }, + nvimup = { + { -- Neovim Updater menu + lhs = "qu", + group = "Neovim Updater", + icon = { icon = "", color = "red" }, + }, + { -- Neovim Updater Commits menu + lhs = "quc", + group = "New Commits", + icon = { icon = "", color = "green" }, + }, }, } @@ -566,31 +573,52 @@ M.groups = { } M.nvimup = { - { + { -- Update Neovim from source "quU", ":UpdateNeovim", desc = "Update Neovim", }, - { + { -- Update Neovim from source in debug mode "quD", function() require("nvim_updater").update_neovim({ build_type = "Debug" }) end, desc = "Debug Build Neovim", }, - { + { -- Update Neovim from source in release mode "quR", function() require("nvim_updater").update_neovim({ build_type = "Release" }) end, desc = "Release Build Neovim", }, - { - "quC", + { -- Remove Neovim Source directory + "quX", function() require("nvim_updater").remove_source_dir() end, - desc = "Clean Neovim Source", + desc = "Remove Neovim Source", + }, + { -- Show new nvim source commits in Telescope + "quct", + function() + require("nvim_updater").show_new_commits_in_telescope() + end, + desc = "Show New Commits in Telescope", + }, + { -- Show new nvim source commits in DiffView + "qucd", + function() + require("nvim_updater").show_new_commits_in_diffview() + end, + desc = "Show New Commits in DiffView", + }, + { -- Show new nvim source commits in terminal + "qucc", + function() + require("nvim_updater").show_new_commits() + end, + desc = "Show New Commits in terminal", }, } @@ -637,14 +665,14 @@ M.minifiles = { function() minifiles_toggle(vim.api.nvim_buf_get_name(0), true) end, - desc = "Open mini.files (Directory of Current File)", + desc = "Open mini.files", }, { "fM", function() minifiles_toggle(vim.uv.cwd(), true) end, - desc = "Open mini.files (cwd)", + desc = "Open mini.files (CWD)", }, { -- Mini.files ".", @@ -653,6 +681,13 @@ M.minifiles = { end, desc = "Open mini.files", }, + { -- Mini.files + "sf", + function() + minifiles_toggle(vim.api.nvim_buf_get_name(0), true) + end, + desc = "Open mini.files", + }, } --- Misc keymaps @@ -820,9 +855,19 @@ M.precog = { } M.qalc = { - { -- Open Qalc + -- { -- Open Qalc + -- "qc", + -- "Qalc", + -- desc = "Qalc", + -- }, + { -- Set a key mapping to run :Qalc and enter insert mode "qc", - "Qalc", + function() + -- Run the Qalc command + vim.cmd("Qalc") + -- Enter insert mode directly + vim.cmd("startinsert") + end, desc = "Qalc", }, } @@ -992,7 +1037,7 @@ M.substitute = { M.overrides = { { -- De-map 's' to avoid conflicts with mini.surround lhs = "s", - rhs = "", + rhs = "", -- This disables the keymap desc = "Surround", mode = { "n", "x" }, }, @@ -1048,6 +1093,24 @@ M.telescope = { mode = "n", }, }, + filebrowser = { + { + "e", + function() + require("telescope").extensions.file_browser.file_browser() + end, + desc = "Telescope File Browser", + mode = "n", + }, + { + "sF", + function() + require("telescope").extensions.file_browser.file_browser() + end, + desc = "Telescope File Browser", + mode = "n", + }, + }, } M.toggleterm = { diff --git a/lua/plugins/nvim_updater.lua b/lua/plugins/nvim_updater.lua index 8834d7d..f2ac307 100644 --- a/lua/plugins/nvim_updater.lua +++ b/lua/plugins/nvim_updater.lua @@ -2,8 +2,12 @@ local data = require("data") return { -- Neovim Updater "rootiest/nvim-updater.nvim", - lazy = false, - opts = {}, + opts = { + verbose = true, + check_for_updates = true, + update_interval = (60 * 60) * 6, -- 6 hours + default_keymaps = false, + }, keys = function() -- Add Neovim Updater menu data.func.add_keymap(data.keys.group.nvimup) diff --git a/lua/plugins/statusline/lualine.lua b/lua/plugins/statusline/lualine.lua index d1490e7..6b897d2 100644 --- a/lua/plugins/statusline/lualine.lua +++ b/lua/plugins/statusline/lualine.lua @@ -12,6 +12,48 @@ local music_stats = require("utils.music_stats") local data = require("data") local funcs = data.func +-- Setup NeoMiniMap extension +-- local minimap_extension = require("neominimap.statusline").lualine_default +local neominimap = require("neominimap.statusline") +local minimap_extension = { + sections = { + lualine_a = { + neominimap.plugin_name, + }, + lualine_b = { + { -- Branch + "branch", + separator = "", + padding = { left = 1, right = 0 }, + }, + }, + lualine_c = { + neominimap.shortname, + }, + lualine_y = { + { -- Progress + "progress", + separator = "", + padding = { left = 0, right = 1 }, + icon = "", + }, + neominimap.position, + }, + lualine_z = { + { -- Time + "datetime", + style = "%a %R", + icon = " ", + padding = { left = 0, right = 1 }, + on_click = function() + vim.cmd("Telescope oldfiles") + end, + }, + }, + }, + filetypes = { "neominimap" }, +} + -- Use lualine by default if vim.g.statusline == nil then vim.g.statusline = "lualine" @@ -248,6 +290,18 @@ return { -- Lualine end, padding = { left = 0, right = 1 }, }, + { -- Neovim Updater Status + function() + return require("nvim_updater").get_statusline().icon_text + end, + color = function() + return require("nvim_updater").get_statusline().color + end, + on_click = function() + require("nvim_updater").show_new_commits(true) + end, + padding = { left = 1, right = 1 }, + }, }, lualine_y = { { -- NeoCodeium Status @@ -356,6 +410,7 @@ return { -- Lualine "quickfix", "symbols-outline", "trouble", + minimap_extension, }, }