From 5382ab6ad23a2c42c54641898ab1408d99637bce Mon Sep 17 00:00:00 2001 From: dlond Date: Tue, 27 May 2025 04:50:02 +1200 Subject: [PATCH] configured statusline --- lua/custom/plugins/statusline.lua | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lua/custom/plugins/statusline.lua 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, +}