diff --git a/lua/custom/plugins/statusline.lua b/lua/custom/plugins/statusline.lua new file mode 100644 index 00000000..1f422aff --- /dev/null +++ b/lua/custom/plugins/statusline.lua @@ -0,0 +1,38 @@ +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, +}