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, }