summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.luacheckrc1
-rw-r--r--lua/bootstrap.lua9
-rw-r--r--lua/core/dashboard.lua13
-rw-r--r--lua/core/info.lua4
-rw-r--r--lua/interface/text.lua24
5 files changed, 44 insertions, 7 deletions
diff --git a/.luacheckrc b/.luacheckrc
index 804484fc..8c965f6b 100644
--- a/.luacheckrc
+++ b/.luacheckrc
@@ -22,6 +22,7 @@ stds.nvim = {
"get_runtime_dir",
"get_config_dir",
"get_cache_dir",
+ "get_version",
-- vim = { fields = { "cmd", "api", "fn", "o" } },
},
}
diff --git a/lua/bootstrap.lua b/lua/bootstrap.lua
index 85d39d2d..5e333d8a 100644
--- a/lua/bootstrap.lua
+++ b/lua/bootstrap.lua
@@ -32,6 +32,15 @@ function _G.get_cache_dir()
return lvim_cache_dir
end
+function _G.get_version(type)
+ local lvim_full_ver = vim.fn.system("git -C " .. get_runtime_dir() .. "/lvim describe --tag")
+ if type == "short" then
+ return vim.fn.split(lvim_full_ver, "-")[1]
+ else
+ return string.sub(lvim_full_ver, 1, #lvim_full_ver - 1)
+ end
+end
+
function M:init()
self.runtime_dir = get_runtime_dir()
self.config_dir = get_config_dir()
diff --git a/lua/core/dashboard.lua b/lua/core/dashboard.lua
index 0ade4657..44c4e38c 100644
--- a/lua/core/dashboard.lua
+++ b/lua/core/dashboard.lua
@@ -69,7 +69,18 @@ M.setup = function()
vim.g.dashboard_session_directory = lvim.builtin.dashboard.session_directory
- vim.g.dashboard_custom_footer = lvim.builtin.dashboard.footer
+ local lvim_site = "lunarvim.org"
+ local lvim_version = get_version "short"
+ local num_plugins_loaded = #vim.fn.globpath(get_runtime_dir() .. "/site/pack/packer/start", "*", 0, 1)
+
+ local text = require "interface.text"
+ vim.g.dashboard_custom_footer = text.align_center({ width = 0 }, {
+ "LunarVim loaded " .. num_plugins_loaded .. " plugins ",
+ "",
+ "v" .. lvim_version,
+ "",
+ lvim_site,
+ }, 0.49) -- Use 0.49 as  counts for 2 characters
require("core.autocmds").define_augroups {
_dashboard = {
diff --git a/lua/core/info.lua b/lua/core/info.lua
index 67e45d1c..b8d51a8c 100644
--- a/lua/core/info.lua
+++ b/lua/core/info.lua
@@ -97,7 +97,7 @@ function M.toggle_popup(ft)
local caps_text = "* Capabilities list: "
local caps_text_len = caps_text:len()
local enabled_caps = text.format_table(client_enabled_caps, 3, " | ")
- enabled_caps = text.shift_left(enabled_caps, caps_text_len)
+ enabled_caps = text.shift_right(enabled_caps, caps_text_len)
enabled_caps[1] = fmt("%s%s", caps_text, enabled_caps[1]:sub(caps_text_len + 1))
vim.list_extend(lsp_info, enabled_caps)
end
@@ -155,7 +155,7 @@ function M.toggle_popup(ft)
vim.list_extend(content, section)
end
- return text.align(popup, content, 0.5)
+ return text.align_left(popup, content, 0.5)
end
local function set_syntax_hl()
diff --git a/lua/interface/text.lua b/lua/interface/text.lua
index f68cc491..6bf280e8 100644
--- a/lua/interface/text.lua
+++ b/lua/interface/text.lua
@@ -13,20 +13,36 @@ local function max_len_line(lines)
return max_len
end
---- Center align lines relatively to the parent container
+--- Left align lines relatively to the parent container
-- @param container The container where lines will be displayed
-- @param lines The text to align
-- @param alignment The alignment value, range: [0-1]
-function M.align(container, lines, alignment)
+function M.align_left(container, lines, alignment)
local max_len = max_len_line(lines)
local indent_amount = math.ceil(math.max(container.width - max_len, 0) * alignment)
- return M.shift_left(lines, indent_amount)
+ return M.shift_right(lines, indent_amount)
+end
+
+--- Center align lines relatively to the parent container
+-- @param container The container where lines will be displayed
+-- @param lines The text to align
+-- @param alignment The alignment value, range: [0-1]
+function M.align_center(container, lines, alignment)
+ local output = {}
+ local max_len = max_len_line(lines)
+
+ for _, line in ipairs(lines) do
+ local padding = string.rep(" ", (math.max(container.width, max_len) - line:len()) * alignment)
+ table.insert(output, padding .. line)
+ end
+
+ return output
end
--- Shift lines by a given amount
-- @params lines The lines the shift
-- @param amount The amount of spaces to add
-function M.shift_left(lines, amount)
+function M.shift_right(lines, amount)
local output = {}
local padding = string.rep(" ", amount)