Skip to content

Commit

Permalink
refactor modules
Browse files Browse the repository at this point in the history
  • Loading branch information
siduck committed Jul 24, 2022
1 parent 8b4d7aa commit 5501044
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 28 deletions.
19 changes: 19 additions & 0 deletions lua/nvchad_ui/config.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-- config

local options = {
statusline = {
separator_style = "default", -- default/round/block/arrow
overriden_modules = nil,
},

-- lazyload it when there are 1+ buffers
tabufline = {
enabled = true,
lazyload = true,
overriden_modules = nil,
},
}

options = require("core.utils").load_override(options, "NvChad/ui")

return options
29 changes: 16 additions & 13 deletions lua/nvchad_ui/init.lua
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
-- config
local M = {}
local config = require "nvchad_ui.config"

local M = {
statusline = {
separator_style = "default", -- default/round/block/arrow
overriden_modules = nil,
},
-- lazyload tabufline
require "nvchad_ui.tabufline.lazyload"(config.tabufline)

-- lazyload it when there are 1+ buffers
tabufline = {
enabled = true,
lazyload = true,
overriden_modules = nil,
},
}
M.statusline = function()
return require("nvchad_ui.statusline").run(config.statusline)
end

M.tabufline = function()
return require("nvchad_ui.tabufline").run(config.tabufline)
end

M.setup = function()
vim.opt.statusline = "%!v:lua.require('nvchad_ui').statusline()"
vim.opt.tabline = "%!v:lua.require('nvchad_ui').tabufline()"
end

return M
12 changes: 4 additions & 8 deletions lua/nvchad_ui/statusline/init.lua
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
local statusline_opts = require("nvchad_ui").statusline

return {
setup = function(opts)
statusline_opts = vim.tbl_deep_extend("force", statusline_opts, opts.statusline or {})

vim.g.statusline_sep_style = statusline_opts.separator_style
run = function(config)
vim.g.statusline_sep_style = config.separator_style

local modules = require "nvchad_ui.statusline.modules"

if statusline_opts.overriden_modules then
modules = vim.tbl_deep_extend("force", modules, statusline_opts.overriden_modules())
if config.overriden_modules then
modules = vim.tbl_deep_extend("force", modules, config.overriden_modules())
end

return table.concat {
Expand Down
10 changes: 3 additions & 7 deletions lua/nvchad_ui/tabufline/init.lua
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
local tabufline_opts = require("nvchad_ui").tabufline

return {
setup = function(opts)
tabufline_opts = vim.tbl_deep_extend("force", tabufline_opts, opts.tabufline or {})

run = function(opts)
local modules = require "nvchad_ui.tabufline.modules"

-- merge user modules :D
if tabufline_opts.overriden_modules then
modules = vim.tbl_deep_extend("force", modules, tabufline_opts.overriden_modules())
if opts.overriden_modules then
modules = vim.tbl_deep_extend("force", modules, opts.overriden_modules())
end

local result = modules.bufferlist() .. (modules.tablist() or "") .. modules.buttons()
Expand Down

0 comments on commit 5501044

Please sign in to comment.