local config = { options = { icons_enabled = true, theme = "auto", globalstatus = true, disabled_filetypes = { statusline = {}, winbar = {}, }, ignore_focus = {}, component_separators = { left = "|", right = "|" }, section_separators = { left = "", right = "" }, refresh = { statusline = 1000, tabline = 1000, winbar = 1000, }, }, sections = { lualine_a = { "mode" }, lualine_b = { "" }, lualine_x = { "diagnostics", "encoding", "fileformat", "filetype" }, lualine_y = { "progress" }, lualine_z = { "location" }, lualine_c = {}, }, tabline = {}, winbar = {}, inactive_winbar = {}, extensions = {}, } local function ins_left(component) table.insert(config.sections.lualine_c, component) end local function ins_right(component) table.insert(config.sections.lualine_x, 1, component) end ins_right({ -- Lsp server name . function() local msg = "No Active Lsp" local buf_ft = vim.api.nvim_buf_get_option(0, "filetype") local clients = vim.lsp.get_active_clients() if next(clients) == nil then return msg end for _, client in ipairs(clients) do local filetypes = client.config.filetypes if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then return client.name end end return msg end, icon = " LSP:", color = { fg = "#ff6b6b" }, }) return { "nvim-lualine/lualine.nvim", lazy = false, opts = config, dependencies = { "nvim-tree/nvim-web-devicons", }, }