diff options
Diffstat (limited to 'lua/lvim/core/lualine/components.lua')
| -rw-r--r-- | lua/lvim/core/lualine/components.lua | 98 | 
1 files changed, 74 insertions, 24 deletions
| diff --git a/lua/lvim/core/lualine/components.lua b/lua/lvim/core/lualine/components.lua index c88bf82b..e4148e20 100644 --- a/lua/lvim/core/lualine/components.lua +++ b/lua/lvim/core/lualine/components.lua @@ -12,10 +12,35 @@ local function diff_source()    end  end +local statusline_hl = vim.api.nvim_get_hl_by_name("StatusLine", true) +local cursorline_hl = vim.api.nvim_get_hl_by_name("CursorLine", true) +local normal_hl = vim.api.nvim_get_hl_by_name("Normal", true) + +vim.api.nvim_set_hl(0, "SLCopilot", { fg = "#6CC644", bg = statusline_hl.background }) +vim.api.nvim_set_hl(0, "SLGitIcon", { fg = "#E8AB53", bg = cursorline_hl.background }) +vim.api.nvim_set_hl(0, "SLBranchName", { fg = normal_hl.foreground, bg = cursorline_hl.background }) +vim.api.nvim_set_hl(0, "SLProgress", { fg = "#ECBE7B", bg = statusline_hl.background }) + +local location_color = nil +local branch = lvim.icons.git.Branch +local separator = lvim.icons.ui.LineMiddle + +if lvim.colorscheme == "tokyonight" then +  location_color = "SLBranchName" +  branch = "%#SLGitIcon#" .. lvim.icons.git.Branch .. "%*" .. "%#SLBranchName#" + +  local status_ok, tnc = pcall(require, "tokyonight.colors") +  if status_ok then +    local tncolors = tnc.setup { transform = true } +    vim.api.nvim_set_hl(0, "SLSeparator", { fg = cursorline_hl.background, bg = tncolors.black }) +    separator = "%#SLSeparator#" .. lvim.icons.ui.LineMiddle .. "%*" +  end +end +  return {    mode = {      function() -      return " " +      return " " .. lvim.icons.ui.Target .. " "      end,      padding = { left = 0, right = 0 },      color = {}, @@ -23,9 +48,8 @@ return {    },    branch = {      "b:gitsigns_head", -    icon = " ", +    icon = branch,      color = { gui = "bold" }, -    cond = conditions.hide_in_width,    },    filename = {      "filename", @@ -35,7 +59,12 @@ return {    diff = {      "diff",      source = diff_source, -    symbols = { added = "  ", modified = " ", removed = " " }, +    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 }, @@ -49,7 +78,9 @@ return {        if vim.bo.filetype == "python" then          local venv = os.getenv "CONDA_DEFAULT_ENV" or os.getenv "VIRTUAL_ENV"          if venv then -          return string.format("  (%s)", utils.env_cleanup(venv)) +          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 "" @@ -60,12 +91,17 @@ return {    diagnostics = {      "diagnostics",      sources = { "nvim_diagnostic" }, -    symbols = { error = " ", warn = " ", info = " ", hint = " " }, -    cond = conditions.hide_in_width, +    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 "" +      return lvim.icons.ui.Tree      end,      color = function()        local buf = vim.api.nvim_get_current_buf() @@ -87,12 +123,17 @@ return {        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" then +        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 @@ -106,26 +147,35 @@ return {        vim.list_extend(buf_client_names, supported_linters)        local unique_client_names = vim.fn.uniq(buf_client_names) -      return "[" .. table.concat(unique_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, +    separator = separator,      color = { gui = "bold" },      cond = conditions.hide_in_width,    }, -  location = { "location", cond = conditions.hide_in_width, color = {} }, -  progress = { "progress", cond = conditions.hide_in_width, color = {} }, +  location = { "location", color = location_color }, +  progress = { +    "progress", +    fmt = function() +      return "%P/%L" +    end, +    color = {}, +  }, +    spaces = {      function() -      if not vim.api.nvim_buf_get_option(0, "expandtab") then -        return "Tab size: " .. vim.api.nvim_buf_get_option(0, "tabstop") .. " " -      end -      local size = vim.api.nvim_buf_get_option(0, "shiftwidth") -      if size == 0 then -        size = vim.api.nvim_buf_get_option(0, "tabstop") -      end -      return "Spaces: " .. size .. " " +      local shiftwidth = vim.api.nvim_buf_get_option(0, "shiftwidth") +      return lvim.icons.ui.Tab .. " " .. shiftwidth      end, -    cond = conditions.hide_in_width, -    color = {}, +    separator = separator, +    padding = 1,    },    encoding = {      "o:encoding", @@ -133,7 +183,7 @@ return {      color = {},      cond = conditions.hide_in_width,    }, -  filetype = { "filetype", cond = conditions.hide_in_width }, +  filetype = { "filetype", cond = nil, padding = { left = 1, right = 1 } },    scrollbar = {      function()        local current_line = vim.fn.line "." @@ -144,7 +194,7 @@ return {        return chars[index]      end,      padding = { left = 0, right = 0 }, -    color = { fg = colors.yellow, bg = colors.bg }, +    color = "SLProgress",      cond = nil,    },  } | 
