-- [nfnl] Compiled from fnl/dots/plugins/feline.fnl by https://github.com/Olical/nfnl, do not edit.
local _local_1_ = require("dots.prelude")
local autoload = _local_1_["autoload"]
local utils = _local_1_["utils"]
local a = _local_1_["a"]
local str = _local_1_["str"]
local colors = _local_1_["colors"]
local feline = autoload("feline")
local function setup()
  vim.opt.termguicolors = true
  local modes = {n = {text = "NORMAL", color = colors.neutral_aqua}, i = {text = "INSERT", color = colors.neutral_yellow}, c = {text = "CMMAND", color = colors.neutral_aqua}, ce = {text = "NORMEX", color = colors.neutral_aqua}, cv = {text = "EX", color = colors.neutral_aqua}, ic = {text = "INSCOMP", color = colors.neutral_aqua}, no = {text = "OP-PENDING", color = colors.neutral_aqua}, r = {text = "HIT-ENTER", color = colors.neutral_aqua}, ["r?"] = {text = "CONFIRM", color = colors.neutral_aqua}, R = {text = "REPLACE", color = colors.neutral_aqua}, Rv = {text = "VIRTUAL", color = colors.neutral_aqua}, s = {text = "SELECT", color = colors.neutral_aqua}, S = {text = "SELECT", color = colors.neutral_aqua}, t = {text = "TERM", color = colors.neutral_aqua}, v = {text = "VISUAL", color = colors.neutral_blue}, V = {text = "VISUAL LINE", color = colors.neutral_blue}, ["\22"] = {text = "VISUAL BLOCK", color = colors.neutral_blue}}
  local bar_bg = colors.bg_main
  local horiz_separator_color = colors.light1
  local function or_empty(x)
    return (x or "")
  end
  local function spaces(x)
    if x then
      return (" " .. x .. " ")
    else
      return ""
    end
  end
  local function get_current_filepath()
    local file = utils["shorten-path"](vim.fn.bufname(), 30, 30)
    if a["empty?"](file) then
      return ""
    elseif vim.bo.readonly then
      return ("RO " .. file)
    elseif (vim.bo.modifiable and vim.bo.modified) then
      return (file .. " \226\151\143")
    else
      return (file .. " ")
    end
  end
  local function vim_mode_hl(use_as_fg_3f)
    local color = modes[vim.fn.mode()].color
    if use_as_fg_3f then
      return {bg = bar_bg, fg = color}
    else
      return {bg = color, fg = bar_bg}
    end
  end
  local function git_status_provider()
    local function _5_(_241)
      return ("master" ~= _241)
    end
    local function _7_()
      local t_6_ = vim.b
      if (nil ~= t_6_) then
        t_6_ = t_6_.gitsigns_status_dict
      else
      end
      if (nil ~= t_6_) then
        t_6_ = t_6_.head
      else
      end
      return t_6_
    end
    return or_empty(utils["keep-if"](_5_, _7_()))
  end
  local function vim_mode()
    return (" " .. (modes[vim.fn.mode()].text or vim.fn.mode) .. " ")
  end
  local function lsp_progress_provider()
    return vim.lsp.status()
  end
  local function lsp_diagnostic_component(kind, color)
    local function _10_()
      return (0 ~= #vim.diagnostic.get(0, {severity = kind}))
    end
    local function _11_()
      return spaces(#vim.diagnostic.get(0, {severity = kind}))
    end
    return {enabled = _10_, provider = _11_, left_sep = "", right_sep = "", hl = {fg = bar_bg, bg = color}}
  end
  local function coordinates()
    local _let_12_ = vim.api.nvim_win_get_cursor(0)
    local line = _let_12_[1]
    local col = _let_12_[2]
    return (" " .. line .. ":" .. col .. " ")
  end
  local function inactive_separator_provider()
    if (vim.fn.winnr() ~= vim.fn.winnr("j")) then
      return string.rep("\226\148\128", vim.api.nvim_win_get_width(0))
    else
      return ""
    end
  end
  local components = {active = {}, inactive = {}}
  local function _14_()
    return vim_mode_hl(false)
  end
  local function _15_()
    return vim_mode_hl(true)
  end
  components.active[1] = {{provider = vim_mode, hl = _14_}, {provider = get_current_filepath, left_sep = " ", hl = {fg = colors.light4}}, {provider = git_status_provider, left_sep = " ", hl = _15_}}
  local function _16_()
    return (0 < #vim.lsp.buf_get_clients())
  end
  components.active[2] = {{provider = lsp_progress_provider, left_sep = " ", right_sep = " ", enabled = _16_}}
  local function _17_()
    return vim_mode_hl(true)
  end
  local function _18_()
    return vim_mode_hl(false)
  end
  components.active[3] = {{provider = vim.bo.filetype, right_sep = " ", hl = _17_}, lsp_diagnostic_component(vim.diagnostic.severity.INFO, colors.neutral_green), lsp_diagnostic_component(vim.diagnostic.severity.HINT, colors.neutral_aqua), lsp_diagnostic_component(vim.diagnostic.severity.WARN, colors.neutral_yellow), lsp_diagnostic_component(vim.diagnostic.severity.ERROR, colors.neutral_red), {provider = coordinates, hl = _18_}}
  components.inactive[1] = {{provider = inactive_separator_provider, hl = {bg = "NONE", fg = horiz_separator_color}}}
  utils["highlight-add"]("StatusLineNC", {bg = "NONE", fg = colors.light1})
  return feline.setup({theme = {fg = colors.light1, bg = colors.bg_main}, components = components})
end
return {utils.plugin("Famiu/feline.nvim", {config = setup})}
