From 9026a0e25d4e3ebfe2cac7d7a724cb8211fac4f1 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 17 Dec 2022 15:56:13 +0100 Subject: [PATCH] feat(ui): made it look a little less like a Mason rip-off :) --- lua/lazy/view/commands.lua | 6 +++--- lua/lazy/view/init.lua | 5 +++-- lua/lazy/view/render.lua | 27 ++++++++++++++++++++++----- lua/lazy/view/text.lua | 6 +++--- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/lua/lazy/view/commands.lua b/lua/lazy/view/commands.lua index fab0bd0..7cd0e0b 100644 --- a/lua/lazy/view/commands.lua +++ b/lua/lazy/view/commands.lua @@ -7,7 +7,7 @@ local M = {} ---@param cmd string ---@param plugins? LazyPlugin[] function M.cmd(cmd, plugins) - cmd = cmd == "" and "show" or cmd + cmd = cmd == "" and "home" or cmd local command = M.commands[cmd] if command == nil then Util.error("Invalid lazy command '" .. cmd .. "'") @@ -30,8 +30,8 @@ M.commands = { log = function(plugins) Manage.log({ clear = true, mode = "log", plugins = plugins }) end, - show = function() - View.show() + home = function() + View.show("home") end, help = function() View.show("help") diff --git a/lua/lazy/view/init.lua b/lua/lazy/view/init.lua index b5db8b5..57f3688 100644 --- a/lua/lazy/view/init.lua +++ b/lua/lazy/view/init.lua @@ -5,6 +5,7 @@ local Config = require("lazy.core.config") local M = {} M.modes = { + { name = "home", key = "H", desc = "Go back to plugin list" }, { name = "install", key = "I", desc = "Install missing plugins" }, { name = "update", key = "U", desc = "Update all plugins. This will also update the lockfile" }, { name = "sync", key = "S", desc = "Run install, clean and update" }, @@ -14,7 +15,7 @@ M.modes = { { name = "restore", key = "R", desc = "Updates all plugins to the state in the lockfile" }, { name = "profile", key = "P", desc = "Show detailed profiling", toggle = true }, { name = "debug", key = "D", desc = "Show debug information", toggle = true }, - { name = "help", key = "?", hide = true, desc = "Toggle this help page", toggle = true }, + { name = "help", key = "?", desc = "Toggle this help page", toggle = true }, { plugin = true, name = "update", key = "u", desc = "Update this plugin. This will also update the lockfile" }, { @@ -38,7 +39,7 @@ function M.setup() end function M.show(mode) - M.mode = mode or M.mode + M.mode = mode or M.mode or "home" require("lazy.view.colors").setup() if M._buf and vim.api.nvim_buf_is_valid(M._buf) then diff --git a/lua/lazy/view/render.lua b/lua/lazy/view/render.lua index 0ff5e6f..9359ac6 100644 --- a/lua/lazy/view/render.lua +++ b/lua/lazy/view/render.lua @@ -94,15 +94,32 @@ function M:get_plugin(row) end function M:title() - self:append(" lazy.nvim ", "LazyH1"):center():nl() - self:append("press "):append("", "LazySpecial"):append(" for help"):center():nl() - self:append("https://github.com/folke/lazy.nvim", "LazyMuted"):center():nl() - + self:nl():nl() local View = require("lazy.view") + for _, mode in ipairs(View.modes) do if not mode.hide and not mode.plugin then local title = " " .. mode.name:sub(1, 1):upper() .. mode.name:sub(2) .. " (" .. mode.key .. ") " - self:append(title, View.mode == mode.name and "LazyButtonActive" or "LazyButton"):append(" ") + if mode.name == "home" then + if View.mode == "home" then + title = " lazy.nvim 鈴 " + else + title = " lazy.nvim (H) " + end + end + + if View.mode == mode.name then + if mode.name == "home" then + self:append(title, "LazyH1") + else + self:append(title, "LazyButtonActive") + self:highlight({ ["%(.%)"] = "LazySpecial" }) + end + else + self:append(title, "LazyButton") + self:highlight({ ["%(.%)"] = "LazySpecial" }) + end + self:append(" ") end end self:nl() diff --git a/lua/lazy/view/text.lua b/lua/lazy/view/text.lua index ac009f4..d6f042a 100644 --- a/lua/lazy/view/text.lua +++ b/lua/lazy/view/text.lua @@ -137,9 +137,9 @@ function Text:center() end function Text:trim() - while #self._lines > 0 and #self._lines[1] == 0 do - table.remove(self._lines, 1) - end + -- while #self._lines > 0 and #self._lines[1] == 0 do + -- table.remove(self._lines, 1) + -- end while #self._lines > 0 and #self._lines[#self._lines] == 0 do table.remove(self._lines)