| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353 | local M = {}M.config = function()  O.plugin.galaxyline = {    active = true,    colors = {      alt_bg = "#2E2E2E",      grey = "#858585",      blue = "#569CD6",      green = "#608B4E",      yellow = "#DCDCAA",      orange = "#FF8800",      purple = "#C586C0",      magenta = "#D16D9E",      cyan = "#4EC9B0",      red = "#D16969",      error_red = "#F44747",      warning_orange = "#FF8800",      info_yellow = "#FFCC66",      hint_blue = "#9CDCFE",    },  }endM.setup = function()  -- if not package.loaded['galaxyline'] then  --   return  -- end  local status_ok, gl = pcall(require, "galaxyline")  if not status_ok then    return  end  -- NOTE: if someone defines colors but doesn't have them then this will break  local palette_status_ok, colors = pcall(require, O.colorscheme .. ".palette")  if not palette_status_ok then    colors = O.plugin.galaxyline.colors  end  local condition = require "galaxyline.condition"  local gls = gl.section  gl.short_line_list = { "NvimTree", "vista", "dbui", "packer" }  table.insert(gls.left, {    ViMode = {      provider = function()        -- auto change color according the vim mode        local mode_color = {          n = colors.blue,          i = colors.green,          v = colors.purple,          [""] = colors.purple,          V = colors.purple,          c = colors.magenta,          no = colors.blue,          s = colors.orange,          S = colors.orange,          [""] = colors.orange,          ic = colors.yellow,          R = colors.red,          Rv = colors.red,          cv = colors.blue,          ce = colors.blue,          r = colors.cyan,          rm = colors.cyan,          ["r?"] = colors.cyan,          ["!"] = colors.blue,          t = colors.blue,        }        vim.api.nvim_command("hi GalaxyViMode guifg=" .. mode_color[vim.fn.mode()])        return "▊"      end,      separator_highlight = { "NONE", colors.alt_bg },      highlight = { "NONE", colors.alt_bg },    },  })  -- print(vim.fn.getbufvar(0, 'ts'))  vim.fn.getbufvar(0, "ts")  table.insert(gls.left, {    GitIcon = {      provider = function()        return "  "      end,      condition = condition.check_git_workspace,      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.orange, colors.alt_bg },    },  })  table.insert(gls.left, {    GitBranch = {      provider = "GitBranch",      condition = condition.check_git_workspace,      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.left, {    DiffAdd = {      provider = "DiffAdd",      condition = condition.hide_in_width,      icon = "  ",      highlight = { colors.green, colors.alt_bg },    },  })  table.insert(gls.left, {    DiffModified = {      provider = "DiffModified",      condition = condition.hide_in_width,      icon = " 柳",      highlight = { colors.blue, colors.alt_bg },    },  })  table.insert(gls.left, {    DiffRemove = {      provider = "DiffRemove",      condition = condition.hide_in_width,      icon = "  ",      highlight = { colors.red, colors.alt_bg },    },  })  table.insert(gls.left, {    Filler = {      provider = function()        return " "      end,      highlight = { colors.grey, colors.alt_bg },    },  })  -- get output from shell command  function os.capture(cmd, raw)    local f = assert(io.popen(cmd, "r"))    local s = assert(f:read "*a")    f:close()    if raw then      return s    end    s = string.gsub(s, "^%s+", "")    s = string.gsub(s, "%s+$", "")    s = string.gsub(s, "[\n\r]+", " ")    return s  end  -- cleanup virtual env  local function env_cleanup(venv)    if string.find(venv, "/") then      local final_venv = venv      for w in venv:gmatch "([^/]+)" do        final_venv = w      end      venv = final_venv    end    return venv  end  local PythonEnv = function()    if vim.bo.filetype == "python" then      local venv = os.getenv "CONDA_DEFAULT_ENV"      if venv ~= nil then        return "  (" .. env_cleanup(venv) .. ")"      end      venv = os.getenv "VIRTUAL_ENV"      if venv ~= nil then        return "  (" .. env_cleanup(venv) .. ")"      end      return ""    end    return ""  end  table.insert(gls.left, {    VirtualEnv = {      provider = PythonEnv,      event = "BufEnter",      highlight = { colors.green, colors.alt_bg },    },  })  table.insert(gls.right, {    DiagnosticError = {      provider = "DiagnosticError",      icon = "  ",      highlight = { colors.red, colors.alt_bg },    },  })  table.insert(gls.right, {    DiagnosticWarn = {      provider = "DiagnosticWarn",      icon = "  ",      highlight = { colors.orange, colors.alt_bg },    },  })  table.insert(gls.right, {    DiagnosticInfo = {      provider = "DiagnosticInfo",      icon = "  ",      highlight = { colors.yellow, colors.alt_bg },    },  })  table.insert(gls.right, {    DiagnosticHint = {      provider = "DiagnosticHint",      icon = "  ",      highlight = { colors.blue, colors.alt_bg },    },  })  table.insert(gls.right, {    TreesitterIcon = {      provider = function()        if next(vim.treesitter.highlighter.active) ~= nil then          return "  "        end        return ""      end,      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.green, colors.alt_bg },    },  })  local get_lsp_client = function(msg)    msg = msg or "LSP Inactive"    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    local lsps = ""    for _, client in ipairs(clients) do      local filetypes = client.config.filetypes      if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then        -- print(client.name)        if lsps == "" then          -- print("first", lsps)          lsps = client.name        else          if not string.find(lsps, client.name) then            lsps = lsps .. ", " .. client.name          end          -- print("more", lsps)        end      end    end    if lsps == "" then      return msg    else      return lsps    end  end  table.insert(gls.right, {    ShowLspClient = {      provider = get_lsp_client,      condition = function()        local tbl = { ["dashboard"] = true, [" "] = true }        if tbl[vim.bo.filetype] then          return false        end        return true      end,      icon = " ",      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.right, {    LineInfo = {      provider = "LineColumn",      separator = "  ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.right, {    PerCent = {      provider = "LinePercent",      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.right, {    Tabstop = {      provider = function()        return "Spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth") .. " "      end,      condition = condition.hide_in_width,      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.right, {    BufferType = {      provider = "FileTypeName",      condition = condition.hide_in_width,      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.right, {    FileEncode = {      provider = "FileEncode",      condition = condition.hide_in_width,      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.right, {    Space = {      provider = function()        return " "      end,      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.short_line_left, {    BufferType = {      provider = "FileTypeName",      separator = " ",      separator_highlight = { "NONE", colors.alt_bg },      highlight = { colors.grey, colors.alt_bg },    },  })  table.insert(gls.short_line_left, {    SFileName = {      provider = "SFileName",      condition = condition.buffer_not_empty,      highlight = { colors.grey, colors.alt_bg },    },  })  --table.insert(gls.short_line_right[1] = {BufferIcon = {provider = 'BufferIcon', highlight = {colors.grey, colors.alt_bg}}})endreturn M
 |