return { "nvim-lualine/lualine.nvim", dependencies = "nvim-tree/nvim-web-devicons", opts = function() local icons = require("fschauen.util.icons") local window = require("fschauen.window") local autoformat = require("fschauen.util.autoformat").lualine() local component = require("lualine.fschauen.component") local diagnostics = component.colored_if_focused("diagnostics") local filetype = component.colored_if_focused("filetype") local status = component.colored_if_focused("fschauen.status") local whitespace = component.colored_if_focused("fschauen.whitespace") local spell = { function() return "󰓆" end, cond = function() return vim.o.spell end, } local wrap = { function() return "󰖶" end, cond = function() return vim.o.wrap end, } local sections = { lualine_a = { "fschauen.mode", }, lualine_b = { { "branch", icon = icons.git.Branch, cond = window.is_medium }, }, lualine_c = { "fschauen.filename", status, }, lualine_x = { diagnostics, "fschauen.searchcount", { filetype, cond = window.is_medium }, }, lualine_y = { spell, wrap, autoformat, { "fileformat", cond = window.is_medium }, "progress", }, lualine_z = { "location", whitespace, }, } return { options = { icons_enabled = true, component_separators = { left = "", right = "" }, section_separators = { left = "", right = "" }, }, sections = sections, inactive_sections = sections, extensions = { "fugitive", "quickfix", "nvim-tree", "lazy", "man", "trouble", }, } end, }