| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | 
							- local conditions = require "lvim.core.lualine.conditions"
 
- local colors = require "lvim.core.lualine.colors"
 
- local function diff_source()
 
-   local gitsigns = vim.b.gitsigns_status_dict
 
-   if gitsigns then
 
-     return {
 
-       added = gitsigns.added,
 
-       modified = gitsigns.changed,
 
-       removed = gitsigns.removed,
 
-     }
 
-   end
 
- end
 
- local branch = lvim.icons.git.Branch
 
- if lvim.colorscheme == "lunar" then
 
-   branch = "%#SLGitIcon#" .. lvim.icons.git.Branch .. "%*" .. "%#SLBranchName#"
 
- end
 
- return {
 
-   mode = {
 
-     function()
 
-       return " " .. lvim.icons.ui.Target .. " "
 
-     end,
 
-     padding = { left = 0, right = 0 },
 
-     color = {},
 
-     cond = nil,
 
-   },
 
-   branch = {
 
-     "b:gitsigns_head",
 
-     icon = branch,
 
-     color = { gui = "bold" },
 
-   },
 
-   filename = {
 
-     "filename",
 
-     color = {},
 
-     cond = nil,
 
-   },
 
-   diff = {
 
-     "diff",
 
-     source = diff_source,
 
-     symbols = {
 
-       added = lvim.icons.git.LineAdded .. " ",
 
-       modified = lvim.icons.git.LineModified .. " ",
 
-       removed = lvim.icons.git.LineRemoved .. " ",
 
-     },
 
-     padding = { left = 2, right = 1 },
 
-     diff_color = {
 
-       added = { fg = colors.green },
 
-       modified = { fg = colors.yellow },
 
-       removed = { fg = colors.red },
 
-     },
 
-     cond = nil,
 
-   },
 
-   python_env = {
 
-     function()
 
-       local utils = require "lvim.core.lualine.utils"
 
-       if vim.bo.filetype == "python" then
 
-         local venv = os.getenv "CONDA_DEFAULT_ENV" or os.getenv "VIRTUAL_ENV"
 
-         if venv then
 
-           local icons = require "nvim-web-devicons"
 
-           local py_icon, _ = icons.get_icon ".py"
 
-           return string.format(" " .. py_icon .. " (%s)", utils.env_cleanup(venv))
 
-         end
 
-       end
 
-       return ""
 
-     end,
 
-     color = { fg = colors.green },
 
-     cond = conditions.hide_in_width,
 
-   },
 
-   diagnostics = {
 
-     "diagnostics",
 
-     sources = { "nvim_diagnostic" },
 
-     symbols = {
 
-       error = lvim.icons.diagnostics.BoldError .. " ",
 
-       warn = lvim.icons.diagnostics.BoldWarning .. " ",
 
-       info = lvim.icons.diagnostics.BoldInformation .. " ",
 
-       hint = lvim.icons.diagnostics.BoldHint .. " ",
 
-     },
 
-     -- cond = conditions.hide_in_width,
 
-   },
 
-   treesitter = {
 
-     function()
 
-       return lvim.icons.ui.Tree
 
-     end,
 
-     color = function()
 
-       local buf = vim.api.nvim_get_current_buf()
 
-       local ts = vim.treesitter.highlighter.active[buf]
 
-       return { fg = ts and not vim.tbl_isempty(ts) and colors.green or colors.red }
 
-     end,
 
-     cond = conditions.hide_in_width,
 
-   },
 
-   lsp = {
 
-     function(msg)
 
-       msg = msg or "LS Inactive"
 
-       local buf_clients = vim.lsp.buf_get_clients()
 
-       if next(buf_clients) == nil then
 
-         -- TODO: clean up this if statement
 
-         if type(msg) == "boolean" or #msg == 0 then
 
-           return "LS Inactive"
 
-         end
 
-         return msg
 
-       end
 
-       local buf_ft = vim.bo.filetype
 
-       local buf_client_names = {}
 
-       local copilot_active = false
 
-       -- add client
 
-       for _, client in pairs(buf_clients) do
 
-         if client.name ~= "null-ls" and client.name ~= "copilot" then
 
-           table.insert(buf_client_names, client.name)
 
-         end
 
-         if client.name == "copilot" then
 
-           copilot_active = true
 
-         end
 
-       end
 
-       -- add formatter
 
-       local formatters = require "lvim.lsp.null-ls.formatters"
 
-       local supported_formatters = formatters.list_registered(buf_ft)
 
-       vim.list_extend(buf_client_names, supported_formatters)
 
-       -- add linter
 
-       local linters = require "lvim.lsp.null-ls.linters"
 
-       local supported_linters = linters.list_registered(buf_ft)
 
-       vim.list_extend(buf_client_names, supported_linters)
 
-       local unique_client_names = vim.fn.uniq(buf_client_names)
 
-       local language_servers = "[" .. table.concat(unique_client_names, ", ") .. "]"
 
-       if copilot_active then
 
-         language_servers = language_servers .. "%#SLCopilot#" .. " " .. lvim.icons.git.Octoface .. "%*"
 
-       end
 
-       return language_servers
 
-     end,
 
-     color = { gui = "bold" },
 
-     cond = conditions.hide_in_width,
 
-   },
 
-   location = { "location" },
 
-   progress = {
 
-     "progress",
 
-     fmt = function()
 
-       return "%P/%L"
 
-     end,
 
-     color = {},
 
-   },
 
-   spaces = {
 
-     function()
 
-       local shiftwidth = vim.api.nvim_buf_get_option(0, "shiftwidth")
 
-       return lvim.icons.ui.Tab .. " " .. shiftwidth
 
-     end,
 
-     padding = 1,
 
-   },
 
-   encoding = {
 
-     "o:encoding",
 
-     fmt = string.upper,
 
-     color = {},
 
-     cond = conditions.hide_in_width,
 
-   },
 
-   filetype = { "filetype", cond = nil, padding = { left = 1, right = 1 } },
 
-   scrollbar = {
 
-     function()
 
-       local current_line = vim.fn.line "."
 
-       local total_lines = vim.fn.line "$"
 
-       local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" }
 
-       local line_ratio = current_line / total_lines
 
-       local index = math.ceil(line_ratio * #chars)
 
-       return chars[index]
 
-     end,
 
-     padding = { left = 0, right = 0 },
 
-     color = "SLProgress",
 
-     cond = nil,
 
-   },
 
- }
 
 
  |