39 lines
1.3 KiB
Lua
39 lines
1.3 KiB
Lua
return {
|
|
'echasnovski/mini.statusline',
|
|
dependencies = { 'nvim-tree/nvim-web-devicons' }, -- optional for icons
|
|
opts = function(_, opts)
|
|
local statusline = require 'mini.statusline'
|
|
|
|
-- Add new section function
|
|
statusline.section_target = function()
|
|
local target = require('custom.utils'):get_target()
|
|
return target and (' ' .. target) or ''
|
|
end
|
|
|
|
-- Override content.active to include target
|
|
opts.content = opts.content or {}
|
|
opts.content.active = function()
|
|
local mode, git, diagnostics, filename, fileinfo, target, location =
|
|
statusline.section_mode(),
|
|
statusline.section_git(),
|
|
statusline.section_diagnostics(),
|
|
statusline.section_filename(),
|
|
statusline.section_fileinfo(),
|
|
statusline.section_target(),
|
|
statusline.section_location()
|
|
|
|
return statusline.combine_groups {
|
|
{ hl = 'MiniStatuslineModeNormal', strings = { mode } },
|
|
{ hl = 'MiniStatuslineDevinfo', strings = { git, diagnostics } },
|
|
'%<',
|
|
{ hl = 'MiniStatuslineFilename', strings = { filename } },
|
|
{ hl = 'MiniStatuslineFileinfo', strings = { fileinfo } },
|
|
{ hl = 'MiniStatuslineTarget', strings = { target } },
|
|
{ hl = 'MiniStatuslineLocation', strings = { location } },
|
|
}
|
|
end
|
|
|
|
return opts
|
|
end,
|
|
}
|