summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLostNeophyte <[email protected]>2022-11-29 08:50:24 +0100
committerGitHub <[email protected]>2022-11-29 08:50:24 +0100
commitf5454fb86087f9f7372f3be7af797d9dc0297d6e (patch)
treee73190e39b1d7710774278bd9d6ee6e44eb67108
parent84ce0803e119a961106ddd88896366ad58989167 (diff)
feat(alpha): allow configuring highlight groups (#3532)
* fix(alpha): make highlights overridable Co-authored-by: CPea <[email protected]> * feat: make opts overridable * refactor: add default autostart to opts * feat: default_button_opts * Apply suggestions from code review Co-authored-by: kylo252 <[email protected]> Co-authored-by: CPea <[email protected]> Co-authored-by: kylo252 <[email protected]>
-rw-r--r--lua/lvim/core/alpha.lua21
-rw-r--r--lua/lvim/core/alpha/dashboard.lua40
2 files changed, 36 insertions, 25 deletions
diff --git a/lua/lvim/core/alpha.lua b/lua/lvim/core/alpha.lua
index 58b787ed..8d69ebbc 100644
--- a/lua/lvim/core/alpha.lua
+++ b/lua/lvim/core/alpha.lua
@@ -4,8 +4,16 @@ function M.config()
local lvim_dashboard = require "lvim.core.alpha.dashboard"
local lvim_startify = require "lvim.core.alpha.startify"
lvim.builtin.alpha = {
- dashboard = { config = {}, section = lvim_dashboard.get_sections() },
- startify = { config = {}, section = lvim_startify.get_sections() },
+ dashboard = {
+ config = {},
+ section = lvim_dashboard.get_sections(),
+ opts = { autostart = true },
+ },
+ startify = {
+ config = {},
+ section = lvim_startify.get_sections(),
+ opts = { autostart = true },
+ },
active = true,
mode = "dashboard",
}
@@ -23,6 +31,10 @@ local function resolve_buttons(theme_name, entries)
local button_element = selected_theme.button(entry[1], entry[2], entry[3])
-- this became necessary after recent changes in alpha.nvim (06ade3a20ca9e79a7038b98d05a23d7b6c016174)
button_element.on_press = on_press
+
+ button_element.opts =
+ vim.tbl_extend("force", button_element.opts, entry[4] or lvim.builtin.alpha[theme_name].section.buttons.opts)
+
table.insert(val, button_element)
end
return val
@@ -41,8 +53,13 @@ local function resolve_config(theme_name)
resolved_section[name][k] = v
end
end
+
+ resolved_section[name].opts = el.opts or {}
end
+ local opts = lvim.builtin.alpha[theme_name].opts or {}
+ selected_theme.config.opts = vim.tbl_extend("force", selected_theme.config.opts, opts)
+
return selected_theme.config
end
diff --git a/lua/lvim/core/alpha/dashboard.lua b/lua/lvim/core/alpha/dashboard.lua
index a1ba7c5a..26c7e053 100644
--- a/lua/lvim/core/alpha/dashboard.lua
+++ b/lua/lvim/core/alpha/dashboard.lua
@@ -114,31 +114,25 @@ function M.get_sections()
hl = "Number",
},
}
- local buttons = {}
- local status_ok, dashboard = pcall(require, "alpha.themes.dashboard")
- if status_ok then
- local function button(sc, txt, keybind, keybind_opts)
- local b = dashboard.button(sc, txt, keybind, keybind_opts)
- b.opts.hl_shortcut = "Include"
- return b
- end
- buttons = {
- val = {
- button("f", lvim.icons.ui.FindFile .. " Find File", "<CMD>Telescope find_files<CR>"),
- button("n", lvim.icons.ui.NewFile .. " New File", "<CMD>ene!<CR>"),
- button("p", lvim.icons.ui.Project .. " Projects ", "<CMD>Telescope projects<CR>"),
- button("r", lvim.icons.ui.History .. " Recent files", ":Telescope oldfiles <CR>"),
- button("t", lvim.icons.ui.FindText .. " Find Text", "<CMD>Telescope live_grep<CR>"),
- button(
- "c",
- lvim.icons.ui.Gear .. " Configuration",
- "<CMD>edit " .. require("lvim.config"):get_user_config_path() .. " <CR>"
- ),
+ local buttons = {
+ opts = {
+ hl_shortcut = "Include",
+ spacing = 1,
+ },
+ entries = {
+ { "f", lvim.icons.ui.FindFile .. " Find File", "<CMD>Telescope find_files<CR>" },
+ { "n", lvim.icons.ui.NewFile .. " New File", "<CMD>ene!<CR>" },
+ { "p", lvim.icons.ui.Project .. " Projects ", "<CMD>Telescope projects<CR>" },
+ { "r", lvim.icons.ui.History .. " Recent files", ":Telescope oldfiles <CR>" },
+ { "t", lvim.icons.ui.FindText .. " Find Text", "<CMD>Telescope live_grep<CR>" },
+ {
+ "c",
+ lvim.icons.ui.Gear .. " Configuration",
+ "<CMD>edit " .. require("lvim.config"):get_user_config_path() .. " <CR>",
},
- }
- end
-
+ },
+ }
return {
header = header,
buttons = buttons,