if vim.g.did_load_lualine_plugin then return end vim.g.did_load_lualine_plugin = true local navic = require('nvim-navic') navic.setup {} ---Indicators for special modes, ---@return string status local function extra_mode_status() -- recording macros local reg_recording = vim.fn.reg_recording() if reg_recording ~= '' then return ' @' .. reg_recording end -- executing macros local reg_executing = vim.fn.reg_executing() if reg_executing ~= '' then return ' @' .. reg_executing end -- ix mode ( in insert mode to trigger different builtin completion sources) local mode = vim.api.nvim_get_mode().mode if mode == 'ix' then return '^X: (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)' end return '' end require('lualine').setup { globalstatus = true, sections = { lualine_a = { 'mode' }, lualine_b = { 'branch', 'diff', 'diagnostics' }, lualine_c = { "overseer" }, -- lualine_c = { -- -- nvim-navic -- navic.get_location, cond = navic.is_available -- }, lualine_x = { 'encoding', 'fileformat', 'filetype' }, lualine_y = { 'progress' }, lualine_z = { -- (see above) { extra_mode_status }, }, }, options = { theme = 'auto', -- component_separators = { left = '', right = ''}, component_separators = { left = '', right = '' }, -- section_separators = { left = '', right = ''}, section_separators = { left = '', right = '' }, ignore_focus = { "dapui_scopes", "dapui_breakpoints", "dapui_stacks", "dapui_watches", "dap-repl", "dapui_console" }, }, -- Example top tabline configuration (this may clash with other plugins) -- tabline = { -- lualine_a = { -- { -- 'tabs', -- mode = 1, -- }, -- }, -- lualine_a = { -- { -- 'buffers', -- show_filename_only = true, -- show_bufnr = true, -- mode = 4, -- filetype_names = { -- TelescopePrompt = 'Telescope', -- dashboard = 'Dashboard', -- fzf = 'FZF', -- }, -- buffers_color = { -- -- Same values as the general color option can be used here. -- active = 'lualine_b_normal', -- Color for active buffer. -- inactive = 'lualine_b_inactive', -- Color for inactive buffer. -- }, -- }, -- }, -- lualine_b = { -- lualine_c = {}, -- lualine_x = {}, -- lualine_y = {}, -- lualine_z = {}, -- Commented out so that buffers and file path are on the same line -- }, winbar = { lualine_a = { -- { -- "navic", -- color_correction = nil, -- navic_opts = nil -- } }, lualine_b = {}, lualine_c = { { 'filename', path = 1, file_status = true, newfile_status = true, }, { function() return navic.get_location() end, cond = function() return navic.is_available() end }, }, -- lualine_x = { -- { -- 'filename', -- path = 1, -- file_status = true, -- newfile_status = true, -- }, -- }, lualine_y = {'location'}, lualine_z = {'searchcount','selectioncount'}, }, extensions = { 'fugitive', 'fzf', 'toggleterm', 'quickfix' }, }